BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1 Implementasi Sistem Tahap implementasi sistem ini merupakan tahap meletakan sistem agar siap untuk dioperasikan. Dalam implementasi Analisis Enkripsi dan Dekripsi File Teks Menggunakan Algoritma Triple DES (Data Encryption Standard) ada beberapa tahapan implementasi sistem yang harus dilakukan, yaitu spesifikasi perangkat keras (hardware), perangkat lunak (software), implementasi antarmuka (interface) dan pengujian sistem. 4.2 Perangkat Pendukung Dalam pembuatan aplikasi/program ini tentunya dibutuhkan perangkat keras (hardware) dan perangkat lunak (software). Berikut spesifikasi perangkat keras dan perangkat lunak yang digunakan dalam pembangunan aplikasi/program. 4.2.1 Perangkat Keras (Hardware) Berikut ini beberapa spesifikasi komputer atau perangkat keras yang digunakan dalam pembangunan aplikasi/program: a. Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz. b. Memory (RAM) 4G, VGA 2773 MB dan Hard disk drive (HDD) 500GB. c. Mouse. 4.2.2 Perangkat Lunak (Software) Berikut ini beberapa spesifikasi perangkat lunak yang digunakan dalam pembangunan aplikasi/program: a. Sistem operasi Windows 7. b. JDK (Java Development Kit). 69
70
c. NetBeans IDE 7.4. d. StarUML. e. Balsamiq Mockups. 4.3 Implementasi Antarmuka (Interface) Implementasi antarmuka merupakan proses tahapan yang dilakukan pada analisis perancangan atau design yang diimplementasikan ke bentuk aplikasi yang dibangun dengan menggunakan perangkat lunak (software). 1. Tampilan Menu Encrypt Tampilan menu encrypt merupakan tampilan pada saat file asli (plainteks) akan diubah menjadi cipherteks (enkripsi). Dapat dilihat pada Gambar 4.1.
Gambar 4.1. Tampilan menu encrypt 2. Tampilan Menu Decrypt Tampilan menu decrypt merupakan tampilan pada saat file cipherteks (enkripsi) akan diubah menjadi file asli (plainteks). Dapat dilihat pada Gambar 4.2.
71
Gambar 4.2. Tampilan menu decrypt 4.4 Implementasi Kode Program Implementasi kode program merupakan penerjemahan design dalam bahasa pemrograman yang dapat dikenali oleh komputer atau alur program yang sudah dibuat dengan menggunakan perangkat lunak (software). Tahap ini akan dilakukan implementasi dari Analisis Enkripsi dan Dekripsi File Teks Menggunakan Algoritma Triple DES (Data Encryption Standard) ke dalam bentuk source code dapat dilihat pada Gambar 4.3. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
package pkg3des; import java.security.MessageDigest; import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; public class TripleDESProcess { public TripleDESProcess(){ } public byte[] encrypt(byte[] src, String secretKey) throws Exception { MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[]digestOfPassword = md.digest(secretKey.getBytes("utf8"));
Gambar 4.3. Kode Program Triple DES
72
Kode program triple des merupakan kode program yang berfungsi untuk melakukan proses enkripsi dan dekripsi. Proses enkripsi terdapat pada kode program public byte[] encrypt(byte[] src, String secretKey) throws Exception.
Fungsi secretKey digunakan ketika akan memasukan password
atau kunci untuk melakukan proses enkripsi dan dekripsi. Ketika password atau kunci sudah dimasukan, akan diproses atau diubah ke bentuk biner atau fungsi hash (SHA-1) yang terdapat pada kode program MessageDigest md = MessageDigest.getInstance("SHA-1"). 16 17 18 19 20 21 22 23
byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); SecretKey key = new SecretKeySpec(keyBytes, "DESede"); Cipher cipher = Cipher.getInstance("DESede"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] buf = cipher.doFinal(src); byte[] base64Bytes = Base64.encodeBase64(buf); return base64Bytes; }
Gambar 4.4. Kode Program Triple DES (lanjutan) SecretKey key = new SecretKeySpec(keyBytes, "DESede")
fungsi ini
digunakan untuk proses pembangkitan kunci dengan tipe data Byte. Fungsi dari triple DES terdapat pada kode "DESede". Fungsi kode ini untuk proses ketika plainteks diubah menjadi biner dan diubah ke heksadesimal (enkripsi) cipher.init(Cipher.ENCRYPT_MODE, key).
73
24 25 26 27 28 29 30 31 32 33 34 35 36
public byte[] decrypt(byte[] enc, String secretKey) throws Exception { byte[] message = Base64.decodeBase64(enc); MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] digestOfPassword = md.digest(secretKey.getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); SecretKey key = new SecretKeySpec(keyBytes, "DESede"); Cipher decipher = Cipher.getInstance("DESede"); decipher.init(Cipher.DECRYPT_MODE, key); byte[] baseBytes = decipher.doFinal(message); return baseBytes; }
Gambar 4.5. Kode Program Triple DES (lanjutan) Kode program lanjutan ini berfungsi untuk proses dekripsi terdapat pada kode program public byte[] decrypt(byte[] enc, String secretKey) throws Exception.
4.5 Pengujian Sistem Pengujian aplikasi ini menggunakan metode pengujian black-box. Pengujian black-box merupakan pengujian yang berfokus pada spesifikasi fungsional pada perangkat lunak. 4.5.1 Rencana Pengujian Rencana pengujian selengkapnya dapat dilihat pada Tabel 4.1.
Kelas Uji Menu Utama Menu Encrypt Menu Decrypt Menu Help
Tabel 4.1. Rencana Pengujian Detail Pengujian Menampilkan seluruh menu Menampilkan form encrypt Menampilkan form decrypt Menampilkan informasi tentang aplikasi dan cara penggunaan
Jenis pengujian Black-Box Black-Box Black-Box Black-Box
4.5.2 Kasus dan Hasil Pengujian Berdasarkan rencana pengujian, maka dapat dilakukan pengujian pada aplikasi ini sebagai berikut:
74
1. Pengujian Menu Utama Pengujian menu utama merupakan pengujian fungsionalitas dengan cara memilih menu utama yang akan dilihat. Dapat dilihat pada Tabel 4.2 pengujian menu utama. Tabel 4.2. Pengujian Menu Utama HASIL NO SKENARIO KETERANGAN SUKSES GAGAL 1 Klik semua menu √ Tampil semua menu Masuk semua 2 Tampil semua halaman √ halaman 2. Pengujian Menu Encrypt Pengujian menu encrypt merupakan pengujian fungsionalitas dengan cara memeriksa apakah button-button dapat berfungsi dengan baik atau tidak. Dapat dilihat pada Tabel 4.3 pengujian menu encrypt. Tabel 4.3. Pengujian Menu Encrypt HASIL NO SKENARIO SUKSES GAGAL Klik button pada source 3 √ file Klik button pada 4 √ destination file 5 Klik button encrypt √
KETERANGAN Masuk ke direktori file yang akan di enkripsi Menyimpan file yang akan di enkripsi Proses enkripsi file
3. Pengujian Menu Decrypt Pengujian menu decrypt merupakan pengujian fungsionalitas dengan cara memeriksa apakah button-button dapat berfungsi dengan baik atau tidak. Dapat dilihat pada Tabel 4.4 pengujian menu decrypt.
NO 6
7 8
Tabel 4.4. Pengujian Menu Decrypt HASIL SKENARIO SUKSES GAGAL Klik button pada source file
√
Klik button pada destination file Klik button decrypt
√ √
KETERANGAN Masuk ke direktori file yang sudah di enkripsi Menyimpan file yang akan di dekripsi Proses dekripsi file
75
4. Pengujian Menu Help Pengujian menu help merupakan pengujian fungsionalitas yang berisi informasi aplikasi dan cara penggunaan. Dapat dilihat pada Tabel 4.5 pengujian menu help.
9
Tabel 4.5. Pengujian Menu Help HASIL SKENARIO SUKSES GAGAL Klik menu help √
10
Tampil isi menu help
NO
√
KETERANGAN Tampil menu help Tampil isi menu help
5. Pengujian Menu Report Pengujian menu report merupakan pengujian fungsionalitas yang berisi hasil proses enkripsi dan dekripsi. Dapat dilihat pada Tabel 4.6 pengujian menu report.
NO 11 12
Tabel 4.6. Pengujian Menu Report HASIL SKENARIO KETERANGAN SUKSES GAGAL Klik menu report √ Tampil menu report Tampil isi menu Tampil isi menu report √ report
4.5.3 Kesimpulan dan Hasil Pengujian Berdasarkan hasil dari pengujian dengan semua uji kasus seperti yang diperlihatkan pada tabel rencana pengujian Tabel 4.1, maka dapat diambil kesimpulan bahwa pelaksanaan pengujian terhadap aplikasi Analisi Enrkipsi dan Dekripsi File Teks Menggunakan Algoritma Triple DES sesuai dengan spesifikasi pengujian yang telah ditentukan dan untuk semua uji kasus yang telah dilakukan dinyatakan “Berhasil”. Akan tetapi tidak menutup kemungkinan dapat terjadi kesalahan suatu saat, pada saat aplikasi digunakan. Sehingga membutuhkan proses maintenance (pemeliharaan) untuk lebih mengetahui kekurangan dari aplikasi.