rss

Wednesday, January 27, 2010

Tutorial Membuat Algoritma Qwerty dengan Java

Ilmu pemrograman java sangatlah luas dan bisa diimplementasikan dalam berbagai bidang. Di antaranya adalah kriptografi. Kriptografi sendiri adalah merupakan salah satu cabang ilmu dalam dunia komputer, yaitu berkaitan dengan penyandian atau penyamaran dari teks asli (plain text) menjadi teks yang disamarkan sehingga tidak dapat dimengerti oleh pembacanya (chiper text).

Berikut ini adalah salah satu contoh dari ilmu kriptografi yang dinamakan algoritma Qwerty (originaled by : Dwindy Stanza & Paiman). Sesuai dengan namanya, QWERTY, algoritma ini disesuaikan dengan papan keyboard standard. Prinsip kerjanya kurang lebih seperti ini :

A menempati indeks 0 = Q menempati indeks 0
B menempati indeks 1 = W menempati indeks 1
C menempati indeks 2 = E menempati indeks 2
D menempati indeks 3 = R menempati indeks 3
...
Z menempati indeks 25 = M menempati indeks 25

Itu untuk huruf pertama, sedangkan untuk huruf kedua maka ada pergeseran index, sehingga A tidak lagi menjadi Q, tetapi menjadi W. Dan Q diubah menjadi indeks terakhir sehingga W hingga M bergeser satu indeks. Begitu seterusnya.

A menempati indeks 0 = W menempati indeks 0
B menempati indeks 1 = E menempati indeks 1
C menempati indeks 2 = R menempati indeks 2
D menempati indeks 3 = T menempati indeks 3
...
Z menempati indeks 25 = Q menempati indeks 25

Sebelum membuat implementasi di dalam kode program, buatlah terlebih dahulu komponen-komponen yang dibutuhkan, yaitu
1. JTextField txtPlain
2. JTextField txtChiper
3. JButton btnEncrypt
4. JButton btnDecrypt

Encrypt digunakan untuk menerjemahkan Plain text menjadi chiper text, sedangkan Decrypt menerjemahkan chiper text menjadi plain text.

Untuk implementasi di dalam java, kurang lebih seperti ini untuk action btnEncrypt :


private void btnEncryptActionPerformed(java.awt.event.ActionEvent evt) {
char [] kode = {'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M' };
char [] abc = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };

int ketemu=0;
char tampung = 0;
String plaintext = txtPlain.getText();
char[] ciphertext = new char[plaintext.length()];

if (!plaintext.equals(""))
txtPlain.setText(plaintext);

for(int w = 0; w<=25 ; x++){ if(tampung == abc[x] ){ ketemu = x; } // else{ ketemu = -1; } ciphertext[w] = kode[ketemu]; } char bantu = 0; bantu = kode[0]; // Pergeseran Index for(int i = 0 ; i<=24 ; i++ ) { kode[i] = kode[i+1]; } kode[25] = bantu; } String c; for(int w = 0; w


Sedangkan untuk implementasi pada action button Decrypt adalah seperti berikut :

private void btnDecryptActionPerformed(java.awt.event.ActionEvent evt) {
char [] kode = {'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M' };
char [] abc = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };

int ketemu=0;
char tampung = 0;
String plaintext = txtPlain.getText();
char[] ciphertext = new char[plaintext.length()];

if (!plaintext.equals(""))
txtPlain.setText(plaintext);

for(int w = 0; w<=25 ; x++){ if(tampung == kode[x] ){ ketemu = x; } // else{ ketemu = -1; } ciphertext[w] = abc[ketemu]; } char bantu = 0; bantu = abc[25]; // Pergeseran Index for(int i = 25 ; i>=1 ; i-- ) {
abc[i] = abc[i-1];
}
abc[0] = bantu;
}
String c;
for(int w = 0; w

Untuk hasil, diberi contoh misal plain text = BEDA
maka chiper text = WYYR

selamat mencoba and happy coding !




By : Mr.Stanza

0 comments:


Post a Comment