• Tidak ada hasil yang ditemukan

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem

Implementasi sistem merupakan tahap dimana hasil perancangan yang telah dibuat sebelumnya diimplementasikan dengan menggunakan suatu bahasa pemrograman tertentu sehingga menjadi suatu aplikasi yang dapat digunakan. Sistem yang dibuat menggunakan bahasa pemrograman java pada editor Netbeans IDE.

Pada sistem ini terdapat 6 form yang dibuat, yaitu form Halaman Utama, form Bangkit Kunci, form Enkripsi-Kompresi, form Dekompresi-Dekripsi, form Bantuan, dan form Tentang. Deskripsi mengenai tampilan tiap form akan dijelaskan pada sub bab berikutnya.

4.1.1.Form Menu Utama

Form Menu Utama merupakan form yang akan pertama kali muncul saat program dijalankan. Pada form ini terdapat label nama aplikasi, juga terdapat 6 buah button, yaitu Bangkit Kunci, Enkripsi-Kompresi, Dekompresi-Dekripsi, Bantuan, Tentang, dan Keluar. Button Bangkit Kunci untuk masuk ke halaman bangkit kunci, button Enkripsi-Kompresi untuk masuk ke halaman enkripsi-kompresi, button Dekompresi-Dekripsi untuk masuk ke halaman dekompresi-dekripsi, button Bantuan untuk masuk ke halaman bantuan sehingga user dapat melihat langkah-langkah penggunaan aplikasi, button Tentang untuk masuk ke halaman tentang, dan button keluar untuk keluar dari aplikasi. Tampilan form Menu Utama dapat dilihat pada Gambar 4.1.

Gambar 4.1. Form Menu Utama

4.1.2.Form Bangkit Kunci

Form bangkit kunci akan tampil setelah user menekan button bangkit kunci pada menu utama. Form ini berfungsi untuk membangkitkan kunci algoritma RSA-CRT yang akan digunakan dalam proses enkripsi dan dekripsi kunci enkripsi teks (kunci

Affine Cipher).

Pada form ini user akan menekan button bangkit kunci sehingga sistem akan memproses pembangkitan kunci RSA-CRT dan akan menampilkannya pada textfield

yang tersedia. Waktu proses pembangkitan kunci akan tampil di bagian bawah form. User dapat menyimpan kunci yang telah dibangkitkan dengan menekan button simpan. Kunci akan tersimpan dalam dua file dengan nama yang sama, namun ekstensi file berbeda. Kunci publik akan tersimpan dengan ekstensi .kpub dan kunci privat aka tersimpan dengan ekstensi .kpriv. Kunci publik digunakan untuk mengenkripsi kunci Affine dan kunci privat digunakan untuk dekripsi kunci Affine. Button kembali untuk kembali ke menu utama. Bentuk tampilan form bangkit kunci dapat dilihat pada Gambar 4.2.

4.1.3.Form Enkripsi – Kompresi

Form enkripsi-kompresi akan tampil setelah user menekan button enkripsi-kompresi pada menu utama. Form ini digunakan dalam proses enkripsi teks dan kompresi teks yang telah dienkripsi. Bentuk tampilan form enkripsi-kompresi dapat dilihat pada Gambar 4.3.

Gambar 4.3. Form Enkripsi - Kompresi

Dalam penggunaannya pertama-tama user akan menginputkan file teks (.doc atau .txt) dengan cara menekan button . Setelah file diinputkan maka secara otomatis kunci affine cipher a dan b akan tergenerate. Isi file teks yang diinputkan akan tampil pada textarea plainteks. Untuk mengenkripsi plainteks user harus menekan button enkripsi dan hasilnya akan tampil pada textarea cipherteks. Simpan cipherteks dengan menekan button simpan dan cipherteks akan disimpan dengan ekstensi file .aff.

Untuk mengenkripsi kunci Affine cipher, user harus menginputkan kunci publik terlebih dahulu dengan menekan button Buka Kunci Publik maka kunci kublik akan tampil pada textfield yang tersedia. Enkripsi kunci affine dengan menekan button Enkripsi Kunci Teks. Hasil enkripsi kunci affine akan tampil pada textarea cipherkey. Simpan cipherkey dengan menekan button simpan cipherkey dan cipherkey akan tersimpan dengan ekstensi file .ckey.

Untuk proses kompresi, user akan menekan button kompresi maka cipherteks akan terkompresi, dan stelah proses kompresi selesai file akan lagnsung tersimpan dengan nama file yang telah ditentukan user dengan ekstensi file .auc. Parameter kompresi (waktu kompresi, Compression Ratio dan Space Saving)akan tampil pada label yang tersedia.

4.1.4.Form Dekompresi – Dekripsi

Form Dekompresi-Dekripsi akan tampil setelah user menekan button dekompresi-dekripsi pada menu utama. Form ini digunakan dalam proses dekompresi cipherteks terkompresi menjadi cipherteks awal dan mendekripsi cipherteks tersebut menjadi plainteks. Bentuk tampilan form Dekompresi-Dekripsi dapat dilihat pada Gambar 4.4.

Gambar 4.4. Form Dekompresi - Dekripsi

Dalam penggunaannya, pertama-tama user menginputkan file terkompresi dengan menekan button , lokasi file akan tampil pada textfield disebelah kanan button. Untuk mendekompresi file terkompresi user menekan button dekompresi maka hasil dekompresi akan tampil dalam textarea cipherteks.

Untuk mendekripsi cipherteks, terlebih dahulu user harus mendekripsi

cipherkey. Buka cipherkey dengan menekan button “Buka Cipherkey” maka cipherkey

akan tampil pada textfield cipherkey. Buka kunci privat untuk dekripsi cipherkey

button “Dekripsi Cipherkey” maka kunci Affine Cipher akan tampil pada textfield

kunci affine.

Setelah kunci affine diperoleh maka proses dekripsi cipherteks dapat dilakukan dengan menekan button “Dekripsi Cipherteks” dan hasilnya akan tampil pada textarea

plainteks. Plainteks dapat disimpan dengan menekan button Simpan Plainteks. Pada bagian keterangan akan ditampilkan waktu proses dekompresi file dan juga waktu proses dekripsi cipherteks.

4.1.5.Form Bantuan

Form Bantuan adalah form yang akan tampil setelah user menekan button bantuan pada menu utama. Form ini berisi cara penggunaan aplikasi dalam proses enkripsi-kompresi dan deenkripsi-kompresi-dekripsi file teks. Bentuk tampilan form bantuan dapat dilihat pada Gambar 4.5.

Gambar 4.5. Form Bantuan

4.1.6.Form Tentang

Form tentang merupakan form yang akan tampil setelah user menekan button tentang di menu utama. Form ini berisi keterangan tentang aplikasi dan penulis. Bentuk tampilan form tentang dapat dilihat pada Gambar 4.6.

Gambar 4.6. Form Tentang 4.2. Pengujian Sistem

Pengujian sistem dilakukan untuk mengetahui apakah aplikasi yang dibuat dapat berjalan sesuai dengan yang telah dirancang sebelumnya. Pengujian akan dilakukan pada proses pembangkitan kunci algoritma RSA-CRT, proses enkripsi file teks, proses enkripsi kunci, proses kompresi cipherteks, proses dekompresi, proses dekripsi kunci dan proses dekripsi cipherteks.

4.2.1.Pengujian Bangkit Kunci

Untuk membangkitkan kunci publik dan kunci privat RSA-CRT user harus menekan button bangkit kunci, maka sistem akan memproses pembangkitan kunci dan hasilnya akan ditampilkan pada masing-masing textfield.Hasil pengujian bangkit kunci dapat dilihat pada Gambar 4.7.

Unutk menyimpan kunci privat dan kunci publik tersebut user harus menekan button simpan. Pengujian simpan kunci privat dan kunci publik dapat dilihat pada Gambar 4.8.

Gambar 4.8. Pengujian Simpan Kunci

Gambar 4.9. MessageBox Kunci Berhasil Disimpan

4.2.2.Pengujian Enkripsi Isi File Teks

Pengujian enkripsi dilakukan terhadap file doc. Tampilan isi file doc yang akan diuji dapat dilihat pada gambar 4.10.

Untuk melakukan enkripsi teks, user terlebih dahulu menginputkan file teks yang akan dienkripsi dengan menekan button . Lalu user dapat memilih file yang ingin dienkripsi. File yang akan dienkripsi harus berekstensi doc atau txt. Input file teks dapat dilihat pada Gambar 4.11.

Gambar 4.11. Input File Teks

Isi dari file yang telah dipilih akan tampil dalam textArea dan lokasi file tersebut akan tampil pada textbox disebelah button . Kunci enkripsi akan muncul otomatis secara acak setelah user menginputkan file teks yang akan dienkripsi, seperti Gambar 4.12.

Enkripsi teks dengan menekan button enkripsi dan cipherteks akan ditampilkan pada textArea cipherteks, seperti Gambar 4.13.

Gambar 4.13. Enkripsi Teks File

User dapat menyimpan file hasil enkripsi dengan menekan button Simpan. Setelah proses sismpan selesai maka akan muncul message box seperti pada Gambar 4.14.

Gambar 4.14. MessageBox Simpan File

4.2.3.Pengujian Enkripsi Kunci

Untuk mengenkripsi kunci, yang pertama harus dilakukan user adalah menginputkan kunci publik dengan menekan button Buka Kunci Publik maka kunci publik akan tampil pada textfield yang tersedia. Lalu user dapat mengenkripsi kunci dengan menekan button Enkripsi Kunci Teks. Perhatikan gambar 4.15 dan 4.16.

Gambar 4.15. Buka Kunci Publik

Gambar 4.16. Enkripsi Kunci Teks

Unutk menyimpan cipherkey, user harus menekan button Simpan Cipherkey maka akan muncul tampilan simpan cipherkey seperti Gambar 4.17.

Gambar 4.17. Save Dialog Cipherkey

4.2.4.Pengujian Kompresi Cipherteks

Pada pengujian kompresi, yang akan dikompres adalah cipherteks dari teks asal. Proses kompresi dilakukan sistem saat user telah menekan button Kompresi. Saat proses kompresi sedang berlangsung semua button yang ada akan menjadi disable. Setelah proses kompresi selesai akan muncul save dialog untuk menyimpan file hasil kompresi. Tampilan save dialog dapat dilihat pada Gambar 4.18.

Gambar 4.18. Save Dialog Hasil Kompresi

Saat proses kompresi selesai, sistem juga akan menampilkan parameter kompresi Rc (Ratio of Compression) dan Ss (Space Saving) pada bagian keterangan di form. Tampilan parameter kompresi dapat dilihat pada Gambar 4.19.

Gambar 4.19. Parameter Kompresi

Gambar 4.20. Isi File Hasil Kompresi

Isi file hasil kompresi berupa bit-bit hasil kompresi yang telah diubah ke dalam bentuk array byte.

4.2.5.Pengujian Dekompresi Cipherteks

Untuk melakukan dekompresi file, pertama-tama user harus menginputkan file terkompresi terlebih dahulu dengan menekan button . Setelah file diinputkan, lokasi file akan ditampilkan dalam textfield disebelah button . Proses dekompresi akan dilakukan setelah user menekan button Dekompresi dan hasilnya akan ditampilkan pada textarea cipherteks, karena hasil dekompresi tersebut merupakan cipherteks yang nantinya akan didekripsi menjadi plainteks. Perhatikan Gambar 4.21 dan 4.22.

Gambar 4.21. Input File Terkompresi

Gambar 4.22. Hasil Dekompresi File

4.2.6.Pengujian Dekripsi Kunci

Untuk mendekripsi kunci enkripsi, user terlebih dahulu harus menginputkan cipherkey serta kunci privat yang dimilikinya. Input cipherkey dengan menekan button “Buka

Cipherkey” dan untuk menginputkan kunci privat tekan button “Buka Private Key”. Perhatikan Gambar 4.23 dan 4.24.

Gambar 4.23. Dialog Open Cipherkey

Gambar 4.24. Dialog Open Private Key

Setelah cipherkey dan private key diinputkan, maka user dapat mendekripsi kunci dengan menekan button “Dekripsi Cipherkey” dan hasilnya akan ditampilkan pada textfield kunci a dan b. Perhatikan gambar 4.25.

Gambar 4.25. Hasil Dekripsi Kunci

4.2.7.Pengujian Dekripsi Cipherteks

Untuk mendekripsi cipherteks terlebih dahulu user mendekripsi kuncinya. Setelah kunci terdekripsi maka user dapat mendekripsi cipherteks kembali menjadi plainteks dengan menekan button “Dekripsi Cipherteks”. Hasil dekripsi dapat dilihat pada Gambar 4.26.

4.2.8.Pengujian Waktu Proses Enkripsi – Dekripsi

Proses enkripsi maupun kompresi dilakukan terhadap isi dari file teks. Pengujian dilakukan terhadap file teks dengan jumlah karakter (panjang string) yang berbeda-beda. Perhatikan Tabel 4.1.

Tabel 4.1. Pengujian Enkripsi – Dekripsi Teks Panjang String

(karakter) Waktu Enkripsi (ms) Waktu Dekripsi (ms)

16 0,47 0,49 0,49 1,01 0,48 0,48 0,45 0,52 0,52 0,59 Rata-rata 0,482 0,618 1200 4,93 3,01 3,65 3,38 2,64 3,11 3,54 2,78 2,7 2,71 Rata-rata 3,492 2,998 5600 37,77 62,87 42,93 42,69 38,8 38,14 46,78 44,39 33,93 34,94 Rata-rata 40,042 44,606 12000 177,13 207,31 149,1 190,44 168,71 165,55 80,97 160,14 42,96 164,68 Rata-rata 123,774 177,624 50000 688,32 868,62 660,48 759,77 647,36 752,71 649,9 755,18 655,2 757,99 Rata-rata 660,252 778,854

Perbandingan waktu rata-rata enkripsi dan dekripsi dapat diilustrasikan pada grafik perbandingan seperti terlihat pada Gambar 4.27.

Gambar 4.27. Grafik Perbandingan Waktu Proses Enkripsi – Dekripsi Teks Berdasarkan grafik pada Gambar 4.27. dapat dilihat bahwa banyaknya karakter berbannding lurus dengan waktu proses enkripsi maupun dekripsi. Dengan demikian dapat disimpulkan bahwa semakin panjang data (semakin banyak karakter) yang akan diproses maka waktu enkripsi maupun dekripsinya juga akan semakin lama.

Pengujian enkripsi dan dekripsi kunci Affine Cipher dapat dilihat pada tabel 4.2. Proses enkripsi dan dekripsi tersebut dilakukan dengan menggunakan algoritma RSA-CRT. Pengujian enkripsi dan dekripsi kunci dilakukan beberapa kali percobaan dengan kunci Affine yang sama yaitu kunci a = 9 dan kunci b = 22.

Tabel 4.2. Pengujian Enkripsi – Dekripsi Kunci

Percobaan Waktu Enkripsi (ms) Waktu Dekripsi (ms) 1 2,19 0,62 2 0,97 1,14 3 1,34 0,67 4 1,17 0,71 5 0,98 0,74 6 1,12 0,71 Rata-rata 1,295 0,765 0 100 200 300 400 500 600 700 800 900 16 1200 5600 12000 50000 W a k tu P ro se s (m s)

Panjang String (karakter)

Waktu Enkripsi Waktu Dekripsi

Berdasarkan tabel 4.2. dapat diketahui bahwa waktu rata-rata yang dibutuhkan unutk enkripsi kunci Affine adalah 1,295 ms dan waktu rata-rata dekripsi adalah 0,765 ms.

Perbandingan waktu enkripsi dan dekripsi kunci Affine Cipher dapat dilihat pada grafik 4.28.

Gambar 4.28. Grafik Perbandingan Waktu Enkripsi-Dekripsi Kunci

Berdasarkan grafik pada gambar 4.28 dapat dilihat bahwa waktu enkripsi dan dekripsi kunci cukup cepat karena tidak melebihi waktu 3 milidetik. Dapatpula dilihat bahwa waktu dekripsi lebih stabil daripada waktu untuk enkripsinya.

4.2.9.Pengujian Waktu Proses Kompresi - Dekompresi

Proses kompresi dilakukan terhadap konten file teks yang telah dienkripsi, sehingga yang akan diproses untuk kompresi dan hasil dari dekompresi merupakan cipherteks dari teks asal. Pengujian kompresi dan dekompresi dilakukan terhadap teks dengan jumlah karakter (panjang string) dan karakter set yang berbeda-beda. Perhatikan Tabel 4.3. 0 0,5 1 1,5 2 2,5 1 2 3 4 5 6 W a k tu P ro ses Waktu Enkripsi (ms) Waktu Dekripsi (ms)

Tabel 4.3. Pengujian Kompresi - Dekompresi Panjang

Data (karakter)

Charset Bit Asli Bit

Kompres Cr Ss (%) Waktu Kompresi (ms) Waktu Dekompresi (ms) 16 1 128 24 0,19 81,25 0,32 1,48 3 128 40 0,31 68,75 0,41 1,68 7 128 56 0,44 56,25 0,48 1,64 12 128 96 0,75 25 0,37 6,88 16 128 144 1,12 -12,5 0,36 2,93 Rata-rata 0,562 43,75 0,388 2,922 1200 1 9600 1208 0,13 87,42 5,72 3 5 9600 3448 0,36 64,08 3,24 4,57 19 9600 10592 1,1 -10,33 13,91 13,53 22 9600 7456 0,78 22,33 3,74 7,94 35 9600 11360 1,18 -18,33 2,98 10,97 Rata-rata 0,71 29,034 5,918 8,002 5600 1 44800 5608 0,13 87,48 2,96 4,72 5 44800 15016 0,34 66,48 4,19 8,86 19 44800 49088 1,09 -9,57 9,42 8,41 22 44800 28576 0,64 36,21 8,22 11,29 35 44800 56216 1,25 -25,48 9,11 8,22 Rata-rata 0,69 31,024 6,78 8,3 12000 1 96000 12008 0,13 87,49 3,93 18,02 5 96000 29984 0,31 68,77 4,36 11,98 19 96000 105816 1,1 -10,22 13,04 16,02 22 96000 60888 0,63 36,58 9,85 18,04 35 96000 120728 1,26 -25,76 16,68 19,45 Rata-rata 0,686 31,372 9,572 16,702 50000 1 400000 50008 0,13 87,5 5,89 84,96 5 400000 125632 0,31 68,59 14,48 87,16 19 400000 427952 1,07 -6,99 46,88 96,83 22 400000 253200 0,633 36,7 34,63 106,67 35 400000 494976 1,24 -23,74 60,02 120,55 Rata-rata 0,6766 32,412 32,38 99,234

Pada tabel 4.3. dapat dilihat bahwa panjang data yang sama dapat memiliki nilai

dan � yang berbeda, hal itu dikarenakan jumlah charset dan frekuensi kemunculan tiap karakter yang berbeda. Pada data dengan panjang 16 karakter, bit awal adalah 128 bit, karena setiap karakter mewakili 8 bit. Berikut penjelasan hasil kompresinya.

1. Charset = 1

Data yang memiliki charset = 1 berarti semua karakter dalam data tersebut adalah sama. Pada percobaan yang dilakukan karakter yang digunakan adalah a yang memiliki kode AUC 0. Sehingga jika dituliskan dalam data terkompres menjadi 0000000000000000 = 16 bit. Padding = 0 karena 16 bit habis dibagi 8. Untuk mengetahui jumlah padding harus ditambahkan bit flag sepanjang 8 bit yang merupakan bit dari jumlah padding tersebut. Karena padding = 0, maka flagnya menjadi 00000000. Maka panjang data hasil kompresi adalah kode AUC + padding + bit flag = 16 bit + 0 bit + 8 bit = 24 bit.

2. Charset = 3

Data yang memiliki charset = 3 berarti mengandung 3 buah karakter berbeda didalamnya. Pada percobaan yang dilakukan karakter tersebut adalah a, b, dan c, yaitu “aaabbbbbbccccaaa” dengan frekuensi kemunculam masing masing karakter adalah 6, 6, dan 4. Sehingga diperoleh kode AUC a = 0, b = 10 dan c = 110. Sehingga jika dituliskan dalam data terkompres menjadi 000101010101010 110110110000 = 27 bit. Padding = 00000 = bit, sehingga jumlah bit dapat dibagi 8. Dengan demikian bit flag menjadi 00000101 = 8 bit. Maka panjang data hasil kompresi adalah 27 bit + 5 bit + 8 bit = 40 bit.

3. Hal yang sama juga berlaku terhadap data dengan panjang dan jumlah charset berbeda pada tabel 4.2.

Berdasarkan Tabel 4.2. dapat dibuat grafik perbandingan hasil kompresi antara panjang data dengan parameter kompresinya. Perhatikan Gambar 4.29 dan 4.30.

Gambar 4.29. Grafik Perbandingan Cr Hasil Kompresi Karakter Homogen dan Heterogen

Gambar 4.30. Grafik Perbandingan Ss Hasil Kompresi Karakter Homogen dan Heterogen

Berdasarkan gambar 4.29. dan 4.30. dapat dilihat bahwa nilai Compression

Ratio (Cr) dan Space Saving (Ss) pada proses kompresi dengan isi konten karakter

homogen cenderung stabil dibandingkan dengan nilai Compression Ratio (Cr) dan

0 0,2 0,4 0,6 0,8 1 1,2 1,4 16 1200 5600 12000 50000 C o mp re ss io n R a ti o

Panjang Data (karakter)

Karakter Homogen Karakter Heterogen -40 -20 0 20 40 60 80 100 16 1200 5600 12000 50000 Sp a ce Sa vi n g ( % )

Panjang Data (karakter)

Karakter Homogen Karatker Heterogen

Space Saving (Ss) pada proses kompresi dengan isi konten karakter heterogen yang cenderung berubah-ubah tergantung dari banyaknya character set dan frekuensi masing-masing character set tersebut.

Gambar 4.31. Grafik Perbandingan Waktu Kompresi dan Dekompresi

Berdasarkan Gambar 4.31. dapat dilihat bahwa waktu dekompresi relatif lebih lama dibandingkan waktu kompresi. Dapat dilihat pula bahwa grafik waktu kompresi dan dekompresi berbanding lurus dengan panjang data yang dikompresi, semakin besar data maka waktu yang dibutuhkan untuk melakukan kompresi dan dekompresi juga akan semakin lama.

0 20 40 60 80 100 120 140 W a k tu P ro se s (m s)

Panjang String (karakter)

Waktu Kompresi Waktu Dekompresi

BAB V

Dokumen terkait