Perancangan. Perancangan Perangkat Lunak PEnentuan Jalur Kritis Dari Suatu Jaringan Kerja Proyek

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.