• Tidak ada hasil yang ditemukan

PERANCANGAN DAN IMPLEMENTAS

4.1.2 Perancangan Prosedural

4.1.2.3 Algoritma dan Flowchart Proses Dekrips

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.

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.

Dari tampilan layar di atas dapat dilihat bahwa dalam pembentukan kunci, user dapat memilih 3 pilihan, jika user memilih pilihan 1 yaitu input matriks manual maka secara otomatis tampilan layar yang akan muncul adalah sebagai berikut.

Gambar 4.8 Tampilan Layar Input Matriks Manual.

Pada proses input matriks manual ini, user akan diminta untuk menginput nilai m dan n kemudian menginput entri-entri tiap titik dalam matriks sehingga akan menghasilkan matriks A. Tekan sembarang tombol untuk melakukan proses selanjutnya atau kembali pada tampilan program utama.

Jika dalam tampilan layar bentuk kunci, user memilih pilihan 2 yaitu input kalimat sebagai kunci maka tampilan layar yang muncul adalah sebagai berikut.

Gambar 4.9 Tampilan Layar Input Kalimat sebagai Kunci.

Pada proses input kalimat sebagai kunci ini, user akan diminta untuk menginput sebuah kalimat yang kemudian akan dihitung panjang kalimat, dan kemudian meminta user untuk menginput m dan n sesuai syarat. Selanjutnya akan dibentuk matriks A yang merupakan matriks kunci yang akan digunakan untuk proses enkripsi dan menghitung matriks B yang merupakan invers tergeneralisasi dari matriks kunci yang akan digunakan untuk proses dekripsi.

Jika dalam tampilan layar bentuk kunci, user memilih pilihan 3 maka tampilan akan kembali ke tampilan program utama.

Kemudian user dapat melanjutkan proses dengan memilih pilihan 2 yaitu lihat matriks kunci. Berikut tampilan layar dari lihat matriks kunci.

Gambar 4.10 Tampilan Layar Lihat Matriks Kunci.

Dalam tampilan layar lihat matriks kunci ini, user dapat melihat matriks A yang telah di input oleh user yang merupakan matriks kunci yang akan digunakan untuk proses enkripsi dan matriks B yang merupakan invers tergeneralisasi dari matriks kunci yang digunakan untuk proses dekripsi..

Proses selanjutnya adalah enkripsi pesan, jika user memilih pilihan 3 dalam program utama maka proses enkripsi akan dijalankan. Sebagai catatan, pada proses enkripsi ini pesan yang akan di enkripsi akan dibagi-bagi menjadi blok-blok yang masing-masing blok berisi n bilangan. Apabila pada blok terakhir terdapat hanya n-r bilangan maka program akan menambahkan bilangan secara random. Tampilan layar enkripsi adalah sebagai berikut.

Gambar 4.11 Tampilan Layar Enkripsi.

Dalam proses enkripsi ini, user diminta untuk menginput sebuah pesan yang akan disandikan (plainteks). Dalam proses enkripsi ini, matriks yang digunakan adalah matriks A yang telah diperoleh dari proses pembentukan kunci. Kemudian program akan menghitung cipherteks, dan cipherteks akan ditampilkan.

Proses selanjutnya adalah dekripsi pesan, jika user memilih pilihan 4 dalam program utama maka proses dekripsi akan dijalankan. Tampilan layar dekripsi adalah sebagai berikut.

Gambar 4.12 Tampilan Layar Dekripsi.

Dalam tampilan layar dekripsi terdapat tiga pilihan, jika user memilih pilihan 1 yaitu dekripsi cipher maka secara otomatis progam akan langsung menampilkan cipherteks yang telah tersimpan pada proses enkripsi. Tampilan layar pada dekripsi cipher adalah sebagai berikut.

Dalam proses dekripsi cipher ini, matriks yang digunakan adalah matriks B yang telah diperoleh dari proses pembentukan kunci. Kemudian program akan menghitung plainteksnya, dan plainteks akan ditampilkan.

Jika dalam tampilan layar enkripsi, user memilih pilihan 2 yaitu dekripsi cipher baru maka tampilan layarnya sebagai berikut.

Gambar 4.14 Tampilan Layar Dekripsi Cipher Baru.

Dalam proses dekripsi cipher baru ini, user diminta untuk menginput cipherteks baru dengan syarat cipherteks yang diinput harus menggunakan kunci yang sama dengan kunci yang digunakan user saat enkripsi dan dekripsi pesan sebelumnya, artinya matriks A dan B yang digunakan pada cipherteks yang akan di input harus sama dengan matriks A dan B yang digunakan pada proses enkripsi dan dekripsi pesan sebelumnya.

Sementara pilihan 5 pada program utama adalah tentang penulis, tampilan layarnya sebagai berikut.

Gambar 4.15 Tampilan Layar Tentang Penulis.

Sementara pilihan 6 pada program utama adalah keluar, tampilan layarnya sebagai berikut.

PENUTUP

5.1 Kesimpulan

Setelah melakukan pembahasan pada setiap bab dan subbab dalam skripsi ini, maka dapat ditarik beberapa kesimpulan yaitu:

1. Invers matriks tergeneralisasi adalah invers dari suatu matriks persegi panjang yang memenuhi syarat-syarat invers matriks persegi panjang.

2. Dengan memanfaatkan invers matriks tergeneralisasi pada algoritma Hill Cipher didapatkan algoritma Hill Cipher Tergeneralisasi dengan syarat-syarat yaitu dipilih bilangan prima p, bilangan bulat m, n ∈ Z+, dengan n m, P=(Z≤ p)n, C=(Zp)m

, A = {M Mmxn(Zp)| rank(M) = n}.

3. Algoritma Hill Cipher Tergeneralisasi menggunakan matriks kunci atas

Z

p, karena

Z

p merupakan field.

4. Aplikasi yang dibangun hanya berfungsi untuk melakukan proses pembentukan kunci, enkripsi dan dekripsi, namun tidak dapat mencegah pihak luar untuk mengubah data.

5.2 Saran

Berdasarkan pengalaman dan pengetahuan yang penulis miliki, maka penulis menyarankan untuk para pembaca:

1. Perlu dilakukan penelitian untuk proses enkripsi dan dekripsi pada file data dengan format lainnya, seperti untuk file image dan suara.

2. Untuk enkripsi teks, pada penambahan suku random perlu dibuat algoritma yang bisa menjaga validitas pesan, sehingga proses dekripsi variabel random yang ditambahkan tidak perlu diikutsertakan dalam plainteksnya.

3. Perlu dilakukan penelitian bagaimana perluasan Hill Cipher sehingga dapat diterapkan pada kode ASCII.

4. Implementasi program menggunakan bahasa pemograman lain seperti Java atau Delphi sehingga tampilannya lebih menarik.

Dokumen terkait