New Post :

Pengunjung

Diberdayakan oleh Blogger.

Latest Post

Contoh Program dengan Fungsi dan Prosedur (COVID-19 MINGGU KE-2)

Selasa, 17 Maret 2020 | 67komentar

silahkan buat class baru bernama FungsiProsedur. Lalu impor class-class yang dibutuhkan.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
Setelah itu buat variabel global di dalam class FungsiProsedur:
static ArrayList listBuah = new ArrayList();
static boolean isRunning = true;
static InputStreamReader inputStreamReader = new InputStreamReader(System.in);
static BufferedReader input = new BufferedReader(inputStreamReader);
Penjelasan:
  • Variabel listBuah adalah variabel global untuk menyimpan nama-nama buah.
  • Variabel isRunning adalah variabel global untuk membuat loop.
  • Kemudian inputStreamReader dan input adalah objek yang kita butuhkan untuk mengambil input dari keyboard.
Setelah itu, buat masing-masing fungsi.
Fungsi untuk menampilkan menu:
static void showMenu() throws IOException {
        
    System.out.println("========= MENU ========");
    System.out.println("[1] Show All Buah");
    System.out.println("[2] Insert Buah");
    System.out.println("[3] Edit Buah");
    System.out.println("[4] Delete Buah");
    System.out.println("[5] Exit");
    System.out.print("PILIH MENU> ");
    
    int selectedMenu = Integer.valueOf(input.readLine());
    
    switch(selectedMenu){
        case 1:
            showAllBuah();
            break;
        case 2:
            insertBuah();
            break;
        case 3:
            editBuah();
            break;
        case 4:
            deleteBuah();
            break;
        case 5:
            System.exit(0);
            break;
        default:
            System.out.println("Pilihan salah!");
                 
    }
        
}
Fungsi tersebut bertugas untuk menampilkan menu dan menentukan fungsi mana yang akan dipanggil berdasarkan nomer menu yang diinputkan.
Apa itu throws IOException?
Nanti saya akan bahas di kesempatan berikutnya. Untuk saat ini diabaikan saja dulu. Ini karena kita menggunakan Buffereader, jadi throws IOException wajib ditulis.
Fungsi untuk menampilkan data:
static void showAllBuah(){
    if(listBuah.isEmpty()){
       System.out.println("Belum ada data");
    } else {
         // tampilkan semua buah
        for(int i = 0; i < listBuah.size(); i++){
            System.out.println(String.format("[%d] %s",i, listBuah.get(i)));
        }
    }
}
Fungsi tersebut bertugas menampilkan isi dari listBuah. Kalau listBuah kosong, maka akan ditampilkan pesan "Belum ada data".
Fungsi untuk menambah data buah:
static void insertBuah() throws IOException{
    System.out.print("Nama buah: ");
    String namaBuah = input.readLine();
    listBuah.add(namaBuah);
}
Pada fungsi tersebut, kita menggunakan method listBuah.add(namaBuah); untuk menambah data ke dalam listBuah berdasarkan namaBuah yang diberikan.
Fungsi untuk mengubah data buah:
static void editBuah() throws IOException{
    showAllBuah();
    System.out.print("Pilih nomer buah: ");
    int indexBuah = Integer.valueOf(input.readLine());
    
    System.out.print("Nama Baru: ");
    String namaBaru = input.readLine();
    
    // ubah nama buah
    listBuah.set(indexBuah, namaBaru);
}
Pertama kita perlu tampilkan dulu daftar buahnya, lalu kita minta user untuk memilih buah mana yang akan diedit.
Setelah itu, kita update buahnya dengan method listBuah.set(indexBuah, namaBaru);.
Fungsi untuk menghapus buah:
static void deleteBuah() throws IOException{
    showAllBuah();
    System.out.print("Pilih nomer buah: ");
    int indexBuah = Integer.valueOf(input.readLine());
    // hapus buah
    listBuah.remove(indexBuah);
}
Hampir sama seperti edit buah, untuk menghapus buah kita juga butuh nomer indeks buah yang akan dihapus.
Lalu mengapusnya dengan method listBuah.remove(indexBuah);.
Fungsi main:
public static void main(String[] args) throws IOException {
        
    do {
        showMenu();
    } while (isRunning);
    
}
Lengkap sudah, berikut ini bentuk kode lengkapnya.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class FungsiProsedur {
    
    static ArrayList listBuah = new ArrayList();
    static boolean isRunning = true;
    static InputStreamReader inputStreamReader = new InputStreamReader(System.in);
    static BufferedReader input = new BufferedReader(inputStreamReader);
    
    static void showMenu() throws IOException{
        
        System.out.println("========= MENU ========");
        System.out.println("[1] Show All Buah");
        System.out.println("[2] Insert Buah");
        System.out.println("[3] Edit Buah");
        System.out.println("[4] Delete Buah");
        System.out.println("[5] Exit");
        System.out.print("PILIH MENU> ");
        
        int selectedMenu = Integer.valueOf(input.readLine());
        
        switch(selectedMenu){
            case 1:
                showAllBuah();
                break;
            case 2:
                insertBuah();
                break;
            case 3:
                editBuah();
                break;
            case 4:
                deleteBuah();
                break;
            case 5:
                System.exit(0);
                break;
            default:
                System.out.println("Pilihan salah!");
                     
        }
        
        
    }

    static void showAllBuah(){
        if(listBuah.isEmpty()){
           System.out.println("Belum ada data");
        } else {
             // tampilkan semua buah
            for(int i = 0; i < listBuah.size(); i++){
                System.out.println(String.format("[%d] %s",i, listBuah.get(i)));
            }
        }
    }
    
    static void insertBuah() throws IOException{
        System.out.print("Nama buah: ");
        String namaBuah = input.readLine();
        listBuah.add(namaBuah);
    }
    
    static void editBuah() throws IOException{
        showAllBuah();
        System.out.print("Pilih nomer buah: ");
        int indexBuah = Integer.valueOf(input.readLine());
        
        System.out.print("Nama Baru: ");
        String namaBaru = input.readLine();
        
        // ubah nama buah
        listBuah.set(indexBuah, namaBaru);
    }
    
    static void deleteBuah() throws IOException{
        showAllBuah();
        System.out.print("Pilih nomer buah: ");
        int indexBuah = Integer.valueOf(input.readLine());
        // hapus buah
        listBuah.remove(indexBuah);
    }
    
    public static void main(String[] args) throws IOException {
        
        do {
            showMenu();
        } while (isRunning);
        
    }
    
}
Setelah itu, silahkan dijalankan dan perhatikanlah hasilnya.
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 1
Belum ada data
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 2
Nama buah: Apel
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 1
[0] Apel
========= MENU ========
[1] Show All Buah
[2] Insert Buah
[3] Edit Buah
[4] Delete Buah
[5] Exit
PILIH MENU> 
Silahkan coba untuk melakukan insert, edit, dan delete.
CREDIT : petanikode.com
Continue Reading

Variabel Global dan Variabel Lokal pada Java ( COVID 19- MINGGU PERTAMA )

| 69komentar

Variabel global adalah variabel yang bisa diakses dari semua fungsi. Sedangkan variabel lokal adalah variabel yang hanya bisa diakses dari dalam fungsi tempat variabel itu berada.
Bingung?
Mari kita lihat contohnya:
class ProgramKu{

    // ini variabel global
    static String nama = "Programku";
    static String version = "1.0.0";

    static void help(){

        // ini variabel lokal
        String nama = "EKO_DOS";

        // mengakses variabel global di dalam fungso help()
        System.out.println("Nama: " + nama);
        System.out.println("Versi: " + version);
    }

    public static void main(String args[]){
        
        // panggil fungsi help()
        help();
        
        System.out.println("Nama: " + nama);
        System.out.println("Versi: " + version);

    }

}
Hasil outputnya:
Nama: EKO_DOS
Versi: 1.0.0
Nama: Programku
Versi: 1.0.0
Saat pemanggilan fungsi help() kita membuat ulang variabel nama. Sehingga variabel nama menjadi variabel lokal pada fungsi help() dan nilainya berubah menjadi "Petani Kode".
Sedangkan, saat kita akases lagi variabel nama melalui fungsi main() nilainya tetap sama seperti yang didefinisikan.
Continue Reading

beberapa hal terkait keamanan jaringan dan kriptografi

Jumat, 02 September 2016 | 0 komentar

1. KEAMANAN JARINGAN
Keamanan Jaringan  dalam jaringan komputer sangat penting dilakukan untuk memonitor akses jaringan dan mencegah penyalahgunaan sumber daya jaringan yang tidak sah. Tugas keamanan jaringan dikontrol oleh administrator jaringan.
Ada dua elemen utama pembentuk keamanan jaringan : Tembok pengamanan
baik secara fisik maupun maya,yang ditaruh diantara piranti dan layanan jaringan yangdigunakan dan orang-orang yang akan berbuat jahat.
Rencana pengamanan
yang akan diimplementasikan bersama dengan user lainnya, untuk menjaga agar sistem tidak bisa ditembus dari luar.
Jaringan Komputer Lanjut
• Rencana pengamanan, yang akan diimplementasikan bersama dengan user lainnya, untuk menjaga agar sistemtidak bisa ditembus dari luar. Segi-segi keamanan didefinisikan dari kelima point ini.
a. Confidentiality ,Mensyaratkan bahwa informasi (data)hanya bisa diakses oleh pihak yang memiliki wewenang.
b.Integrity Mensyaratkan bahwa informasi hanya dapatdiubah oleh pihak yang memiliki wewenang.
c.Availability Mensyaratkan bahwa informasi tersedia untuk  pihak yang memiliki wewenang ketika dibutuhkan.
d.Authentication Mensyaratkan bahwa pengirim suatuinformasi dapat diidentifikasi dengan benar dan ada jaminan bahwa identitas yang didapat tidak palsu.
e.Nonrepudiation Mensyaratkan bahwa baik pengirimmaupun penerima informasi tidak dapat menyangkal pengiriman dan penerimaan pesan.      
Serangan (gangguan) terhadap keamanan dapat dikategorikan dalam empat kategori utama :
a. Interruption Suatu aset dari suatu sistem diserang sehingga menjadi tidak tersedia atau tidak dapat dipakai oleh yang berwenang. Contohnya adalah perusakan/modifikasi terhadap piranti keras atau saluran jaringan.
b. Interception Suatu pihak yang tidak berwenang mendapatkan akses pada suatu aset. Pihak yang dimaksud bisa berupa orang, program, atau sistem yang lain. Contohnya adalah penyadapan terhadap data dalam suatu jaringan.
c. Modification Suatu pihak yang tidak berwenang dapat melakukan perubahan terhadap suatu aset. Contohnya adalah perubahan nilai pada file data, modifikasi program sehingga berjalan dengan tidak semestinya, dan modifikasi pesan yang sedang ditransmisikan dalam jaringan.
d. Fabrication Suatu pihak yang tidak berwenang menyisipkan objek palsu ke dalam sistem. Contohnya adalah pengiriman pesan palsu kepada orang lain.
Ada beberapa prinsip yang perlu dihindari dalam menangani masalah keamanan :
diam dan semua akan baik-baik saja sembunyi dan mereka tidak akan dapat menemukan anda  teknologi yang digunakan kompleks/rumit, artinya aman.
Definisi Keamanan Jaringan adalah menjaga agar resource digunakan sebagaimana mestinya oleh pemakai yang berhak. Keamanan jaringan komputer sendiri sering dipandang sebagai hasil dari beberapa faktor. Faktor ini bervariasi tergantung pada bahan dasar, tetapi secara normal setidaknya beberapa hal dibawah ini diikutsertakan :
Confidentiality (kerahasiaan).
Integrity (integritas).
Availability (ketersediaan). Keamanan Jaringan juga memiliki Faktor-faktor yang membuat suatu jaringan beresiko untuk kehilangan data. Beberapa faktor Penyebab Resiko Dalam Jaringan Komputer adalah sebagai berikut :
Kelemahan manusia (human error)
Kelemahan perangkat keras komputerai ber
Kelemahan sistem operasi jaringan
Kelemahan sistem jaringan komunikasi
Ancaman Jaringan Komputer    
FISIK
Pencurian perangkat keras komputer atau perangkat jaringan
Kerusakan pada komputer dan perangkat komunikasi jaringan
Wiretapping
Bencana alam
LOGIK
Kerusakan pada sistem operasi atau aplikasi
Virus
Sniffing
Salah satu ancaman keamanan jaringan adalah Hacker. Istilah Hacker Hacker muncul pada awal tahun 1960-an diantara para anggota organisasi mahasiswa Tech Model Railroad Club di Laboratorium Kecerdasan Artifisial Massachusetts Institute of Technology (MIT). Kelompok mahasiswa tersebutmerupakan salah satu perintis perkembangan teknologi komputer dan mereka beroperasi dengan sejumlah komputer mainframe. Kata hacker pertama kali muncul dengan arti positif untuk menyebut seorang anggota yang memiliki keahlian dalam bidang komputer dan mampu membuat program komputer yang lebih baik dari yang telah dirancang bersama. Kemudian pada tahun 1983, analogi hacker semakin berkembang untuk menyebut seseorang yang memiliki obsesi untuk memahami dan menguasai sistem komputer. Pasalnya, pada tahun tersebut untuk pertama kalinya FBI menangkap kelompok kriminal komputer The 414s yang berbasis di Milwaukee AS. 414 merupakan kode area lokal mereka. Kelompok yang kemudian disebut hacker tersebut dinyatakan bersalah atas pembobolan 60 buah komputer, dari komputer milik Pusat Kanker Memorial Sloan-Kettering hingga komputer milik Laboratorium Nasional Los Alamos. Salah seorang dari antara pelaku tersebut mendapatkan kekebalan karena testimonialnya, sedangkan 5 pelaku lainnya mendapatkan hukuman masa percobaan. Kemudian pada perkembangan selanjutnya muncul kelompok lain yang menyebut-nyebut diri hacker, padahal bukan. Mereka ini (terutama para pria dewasa) yang mendapat kepuasan lewat membobol komputer dan mengakali telepon (phreaking). Hacker sejati menyebut orang-orang ini ‘kracker’ dan tidak suka bergaul dengan mereka. Hacker sejati memandang kracker sebagai orang malas, tidak bertanggung jawab, dan tidak terlalu cerdas. Hacker sejati tidak setuju jika dikatakan bahwa dengan menerobos keamanan seseorang telah menjadi hacker. Para hacker mengadakan pertemuan setiap setahun sekali yaitu diadakan setiap pertengahan bulan Juli di Las Vegas. Ajang pertemuan hacker terbesar di dunia tersebut dinamakan Def Con. Acara Def Con tersebut lebih kepada ajang pertukaran informasi dan teknologi yang berkaitan dengan aktivitas hacking.
Kesimpulan yang didapat dari perbedaan seorang hacker dan kraker adalah : Hacker
Orang yang secara diam-diam mempelajari sistem yang biasanya sukar dimengerti untuk kemudian mengelolanya dan men-share hasil ujicoba yang dilakukannya.Hacker tidak merusak sistem
Craker
Orang yang secara diam-diam mempelajari sistem dengam maksud jahat
Muncul karena sifat dasar manusia yang selalu ingin membangun (salah satunya merusak)
Istilah-istilah pada hacker :
Mundane : tahu mengenai hacking tapi tidak mengetahui metode dan prosesnya.
lamer (Script kiddies) : mencoba script-script yang pernah di buat oleh aktivis hacking, tapi tidak paham bagaimana cara membuatnya.
wannabe : paham sedikit metode hacking, dan sudah mulai berhasil menerobos sehingga berfalsafah ; HACK IS MY RELIGION
larva (Newbie) : hacker pemula, teknik hacking mulai dikuasai dengan baik, sering bereksperimen.
hacker : aktivitas hacking sebagai profesi.
wizard : hacker yang membuat komunitas pembelajaran di antara mereka.
guru master of the master hacker : lebih mengarah ke penciptaan “tools tools hacker” yang powerfull yang salah satunya dapat menunjang aktivitas hacking, namun lebih jadi tools pemrograman system yang umum.
2. KRIPTOGRAFI Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya "Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure). Kriptografi adalah cabang dari ilmu matematika yang memiliki banyak fungsi dalam pengamanan data. Kriptografi adalah proses mengambil pesan/message dan menggunakan beberapa fungsi untuk menggenerasi materi kriptografis (sebuah digest atau message terenkripsi).
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita [bruce Schneier - Applied Cryptography]. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan informasi ditangani oleh kriptografi.      
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
 Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.  Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.  Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.  Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:
Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.
Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain). Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).
Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :
Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli). Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
 Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.
Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.
Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti.
Perkembangan komunikasi telah mendorong manusia untuk menyembunyikan informasi yang dimilikinya dari orang lain demi alasan keamanan dan privasi. Seseorang yang berusaha untuk mengembangkan dan membuat kode kriptografi disebut cryptographer. Sedangkan seseorang yang berusaha memecahkan kode tersebut disebut cryptanalists.
Kriptografi telah dikenal sejak 4000 tahun yang lalu. Kriptografi dahulunya adalah usaha untuk mengubah pesan dengan menambah atau mengubah karakter tertentu. Sekarang, telah ditemukan metode kriptografi terbaru yaitu: quantum cryptography.
Physical Cryptography
Physical cryptography meliputi metode untuk menukar tempat (transposition) atau mensubtitusikan karakter tertentu dalam pesan. Substitution Ciphers Adalah metode kriptografi dengan jalan mengganti karakter/simbol tertentu dengan karakter/simbol yang lain. Misal “a“: “x“ dan “b” : “y”, maka “apa kabar” : “xpx kxyxr”. Masalah: (a) tidak aman dan (b) apakah “x” dalam pesan benar-benar “x” atau hasil substitusi? Transposition Ciphers Adalah metode kriptografi dengan menukarkan atau mengacak kata/bagian kata dari pesan dengan aturan tertentu. Contoh: “Aku Cinta Kamu” : “kuA taCin muKa” Steganography Yaitu proses menyembunyikan pesan dalam pesan lain dengan harapan agar pesan yang sesungguhnya tidak dapat dideteksi. Contoh: “Aku Cinta Kamu” : “Aku Sangat Cinta Durian Kamu” Hybrid System Yaitu gabungan dari ketiga metode di atas. Contoh: Mesin Enigma yang dipakai Jerman dalam PD II untuk mengirim pesan ke perahu “U”-nya, menggunakan kombinasi antara subtitusi dan transposisi.
Quantum Cryptography Quantum kriptografi adalah metode enskripsi yang relatif baru. Pada awal tahun 2002, aplikasinya dibatasi untuk laboratorium dan proyek rahasia pemerintah. Proses didasari oleh Prinsip Ketidakpastian Heisenberg yang sebenarnya dipakai dalam teori atom modern. Dalam quantum kriptografi, pesan dikirim dengan menggunakan runtun foton. Jika penerima mengetahui urutan dan polaritas dari foton maka ia bisa menterjemahkan pesan tersebut, Dan
jika seseorang yang berusaha mengintip pesan, beberapa foton akan berubah polaritasnya. Hal ini akan memberi tahu si penerima bahwa pesan telah dibaca orang lain, dan dia bisa meminta si pengirim untuk mengirim ulang pesan dengan polaritas foton yang berbeda. Quantum kriptografi memungkinkan adanya enskripsi yang tidak bisa dipecahkan. Meski demikian biaya yang dibutuhkan sangat mahal dan masih dipakai dalam aplikasi yang terbatas.
Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis. Algoritma tersebut harus memiliki kekuatan untuk melakukan (dikemukakan oleh Shannon):  
 konfusi/pembingungan (confusion), dari teks terang sehingga sulit untuk direkonstruksikan secara langsung tanpa menggunakan algoritma dekripsinya  difusi/peleburan (difusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang.
sehingga dapat digunakan untuk mengamankan informasi. Pada implementasinya sebuah algoritmas sandi harus memperhatikan kualitas layanan/Quality of Service atau QoS dari keseluruhan sistem dimana dia diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi adalah kriptanalisa. Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen teks terang /plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunanhimpunan tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P, elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D. Enkripsi : E(P) = C Dekripsi : D(C) = P atau D(E(P)) = P
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
 kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik  kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
 algoritma sandi klasik classic cryptography  algoritma sandi modern modern cryptography
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
 algoritma sandi kunci rahasia secret-key  algoritma sandi kunci publik publik-key
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut kunci publik(public key) dan kunci pribadi (private key), digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk proses enkripsi maka proses dekripsi harus menggunakan kunci publik pasangannya.
Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Skema ini disebut juga sebagai sistem kriptografi kunci publik karena kunci untuk enkripsi dibuat untuk diketahui oleh umum (public-key) atau dapat diketahui siapa saja, tapi untuk proses dekripsinya hanya dapat dilakukan oleh yang berwenang yang memiliki kunci rahasia untuk mendekripsinya, disebut private-key. Dapat dianalogikan seperti kotak pos yang hanya dapat dibuka oleh tukang pos yang memiliki kunci tapi setiap orang dapat memasukkan surat ke dalam kotak tersebut. Keuntungan algoritma model ini, untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para korensponden untuk mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan skema kunci-simetris, jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.
3. HUBUNGAN ANTARA KEAMANAN JARINGAN DAN KRIPTOGRAFI
Tembok pengaman keamanan yang memberikan proteksi pada jaringan tentunya membutuhkan kriptografi yaitu untuk membuat encripsi data yang digunakan sebagai kunci penganman jaringan tersebut. Dalam jaringan tentunya ada batasan-batasan tertentu siapa saja yang dapat mengakses jaringan tersebut. Untuk memberikan batasan-batasan tersebut masing pengguna jaringan tersebut harus diberi kode-kode unik atau data yang telah dienkripsi untuk dapat mengakses jaringan tersebu
REFERENSI
http://muhammad-ikhsan74.blogspot.co.id/2012/05/pengertian-kriptografi.html
http://sudahkelasduabelas.blogspot.co.id/2013/07/pengertian-keamanan-jaringannetwork.html
Continue Reading
 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Eko Dos Santos - All Rights Reserved
Template Modify by Creating Website
Proudly powered by Blogger