BAB 4
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan.
Perancangan merupakan tahap kedua dari siklus hidup pengembangan sistem perangkat lunak. Perancangan memiliki tujuan untuk menentukan kondisi akhir yang
diharapkan dari perangkat lunak yang akan dibangun dan merumuskan cara yang harus dilakukan untuk memperoleh hasil tersebut.
Pada perangkat lunak dengan algoritma Hill Cipher Tergeneralisasi ini, tahap perancangan yang dilakukan mencakup perancangan struktur program dan
perancangan prosedural
4.1.1 Perancangan Struktur Program
Struktur program disebut juga hierarki kontrol, merepresentasikan organisasi komponen program modul serta mengimplikasikan suatu hierarki kontrol. Suatu
hierarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadianurutan dari keputusan, atau pengulangan operasi.
Banyak notasi yang berbeda yang digunakan untuk merepresentasikan hierarki kontrol, yang paling umum adalah diagram pohon.
Struktur program GenHillCrypt diperlihatkan pada Gambar 4.1 berikut.
4.1.2 Perancangan Prosedural
Perancangan prosedural terjadi setelah data, perancangan struktur program dibangun. Dalam dunia nyata, spesifikasi prosedural diperlukan untuk menetapkan detail
algoritma yang akan digunakan dalam suatu bahasa ibu seperti bahasa Indonesia. Perancangan prosedural harus menentukan detail desain, prosedural tanpa ada
ambiguitas. Oleh karena itu, untuk menghindari adanya ambiguitas pada perancangan prosedural, perancangan prosedural perangkat lunak Hill Cipher Tergeneralisasi
menggunakan algoritma dan flowchart.
4.1.2.1 Algoritma dan Flowchart Proses Pembentukan Kunci
Prosedur ini digunakan untuk melakukan proses pembentukan kunci. Didalam prosedur ini akan dipanggil beberapa prosedur-prosedur pendukung yang telah
dijelaskan di atas. Rincian prosesnya dipaparkan oleh algoritma berikut: 1. Mulai.
2. Input pilihan apakah akan melakukan proses pembentukan kunci dengan cara input matriks Pil=1 atau input kalimat.
3. Jika pilihan = 1 maka lanjut ke langkah 5. 4. Jika tidak, lanjut ke langkah 9.
5. Input matriks mxn. 6. Periksa apakah mn.
7. Jika tidak, kembali ke langkah 5. 8. Jika ya, input entri tiap titik dalam matriks mulai dari titik 1,1 sampai titik m,
n sehingga menghasilkan matriks A dan lanjut ke langkah 14. 9. Input kalimat.
10. Ubah teks menjadi integer. 11. Hitung panjang kalimat t.
12. Periksa apakah mn atau mn sama dengan panjang kalimat. 13. Jika tidak, kembali ke langkah 9.
14. Jika ya, matriks A dapat dibentuk. 15. Hitung B
= A
T
A
-1
A
T
. 16. Periksa B
apakah ada atau tidak.
17. Jika tidak, kembali ke langkah 2. 18. Jika ya, maka akan diperoleh matriks B.
19. Diperoleh matriks A dan B, matriks A merupakan matriks kunci yang digunakan untuk mengenkripsi pesan dan matriks B merupakan invers tergeneralisasi dari
matriks kunci yang digunakan untuk mendekripsi pesan. 20. Selesai.
Gambaran aliran proses kerja dari prosedur pembentukan kunci di atas dapat ditunjukkan oleh gambar pada flowchart berikut.
no yes
yes no
no yes
yes no
Gambar 4.2 Flowchart prosedur pembentukan kunci.
Start
Pil=1
input matriks
mxn input kalimat
ubah teks menjadi integer
cek mn,
mn=t bentuk
matriks A cek
mn
input entri tiap titik dalam matriks
hitung B
cek B
matriks A dan B
Stop Hitung panjang
kalimat t
4.1.2.2 Algoritma dan Flowchart Proses Enkripsi
Prosedur ini digunakan untuk melakukan proses enkripsi. Di dalam prosedur ini akan dipanggil beberapa prosedur-prosedur pendukung yang telah dijelaskan di atas.
Rincian prosesnya dipaparkan oleh algoritma berikut: 1. Mulai.
2. Input pesan yang akan dienkripsi. 3. Input matriks A.
4. Periksa matriks A apakah mempunyai pasangan kunci dan memenuhi syarat valid sebagai kunci.
5. Jika tidak, kembali ke langkah 3. 6. Jika ya, konversikan plainteks menjadi angka atas
Z
29.
7. Periksa panjang plainteks apakah panjang plainteks sama dengan banyak kolom matriks A atau kelipatannya.
8. Jika tidak, lengkapi panjang plainteks dengan bilangan acak atas
Z
29.
9. Jika ya, hitung cipherteks perblok dimana plainteks dibagi-bagi sesuai dengan kolom dari A.
10. Konversikan cipherteks menjadi char. 11. Gabungkan cipherteks.
12. Selesai.
Gambaran aliran proses kerja dari prosedur enkripsi dapat ditunjukkan oleh gambar pada flowchart berikut:
yes no
no
yes
Gambar 4.3 Flowchart prosedur enkripsi.
Start
input plainteks
input matriks A
cek A konversi plainteks
menjadi integer
cek panjang plainteks
Lengkapi plainteks
hitung cipherteks perblok
cipherteks
Stop konversi cipherteks
menjadi char
4.1.2.3 Algoritma dan Flowchart Proses Dekripsi
Prosedur ini digunakan untuk melakukan proses dekripsi. Seperti halnya prosedur enkripsi, prosedur ini juga menggunakan prosedur-prosedur pendukung. Rincian
prosesnya dapat dipaparkan oleh algoritma dan flowchart berikut: 1. Mulai.
2. Input cipherteks. 3. Input matriks B.
4. Konversikan cipherteks menjadi integer atas
Z
29.
5. Periksa apakah panjang plainteks sama dengan banyak kolom B atau kelipatannya. 6. Jika tidak, kembali ke langkah 2.
7. Jika ya, hitung plainteks perblok dimana cipherteks dibagi-bagi sesuai dengan kolom dari B.
8. Konversikan plainteks menjadi char. 9. Gabungkan plainteks.
10. Selesai.
Gambaran aliran proses kerja dari prosedur dekripsi dapat ditunjukkan oleh gambar pada flowchart berikut.
no
yes
Gambar 4.4 Flowchart prosedur dekripsi.
Start
input cipherteks
input matriks B
konversi cipherteks menjadi integer
cek panjang cipherteks
hitung plainteks perblok
plainteks
Stop konversi plainteks
menjadi char
4.2 Implementasi
Implementasi dari perangkat lunak merupakan tahap akhir dari proses pengembangan perangkat lunak setelah melalui tahapan perancangan. Agar proses implementasi dari
perangkat lunak dapat bekerja secara sempurna, maka terlebih dahulu perangkat lunak tersebut harus diuji untuk mengetahui kelemahan dan kesalahan yang ada untuk
kemudian dievaluasi. Untuk selanjutnya dalam implementasi huruf kecil digunakan untuk plainteks sedangkan huruf kapital digunakan untuk cipherteks.
Dari algoritma dan flowchart pada setiap proses yang telah dipaparkan sebelumnya, maka implementasi dari perangkat lunak adalah sebagai berikut.
Jika program dijalankan, lakukan pemanggilan terhadap program yaitu dengan mengetik gen_hill maka tampilan yang muncul adalah tampilan layar utama seperti
berikut.
Gambar 4.5 Tampilan Layar Utama.
Tekan sembarang tombol untuk masuk ke program utama, berikut merupakan tampilan layar program utama.
Gambar 4.6 Tampilan Layar Program Utama.
Dari tampilan layar di atas dapat dilihat bahwa ada 6 pilihan proses yang dapat dipilih oleh user, jika user memilih proses 1 yaitu bentuk kunci maka secara otomatis
tampilan layar yang akan muncul adalah sebagi berikut.
Gambar 4.7 Tampilan Layar Bentuk Kunci.