BAB III PERANCANGAN PROGRAM 3.1 Perancangan Program Aplikasi 3.1.1 Requirement Spesification 1. Program dibuat menggunakan Microsoft Visual Studio 2005. 2. Metode yang digunakan pada proses kriptografi adalah MMB (Modular Multiplication-Based Block cipher). 3. Data yang digunakan berupa input teks. 3.1.2 Bentuk Program Arsitektur dari sebuah program dapat dirancang dengan dua konsep yaitu dengan Object Oriented dan procedural. Procedural programming, yang dikenal juga sebagai imperative programming adalah pemrograman dengan pemanggilan function atau procedure, disebut juga dengan istilah umum routines. Setiap procedure harus mengandung sederetan langkah-langkah algoritma. Procedure-procedure tersebut kemudian dapat dipanggil kapan saja dari program. Procedural Programming adalah konsep pemrograman sederhana dengan menerapkan urutan-urutan langkah. Object Oriented Programming (OOP) adalah sebuah paradigma pemrograman yang menggunakan class dan object dan interaksinya untuk
52 mendesain aplikasi dan program komputer (Deitel, p3). Keunggulan yang membuat OOP semakin marak digunakan adalah karena sifatnya yang reusable, di mana programmer tidak perlu membuat program berulang-ulang untuk modul-modul yang mempunyai kegiatan fungsional yang mirip, sehingga penerapan OOP sangat cocok untuk membuat aplikasi atau program yang rumit. Konsep-konsep dasar dari OOP terdiri dari tiga bagian, antara lain adalah encapsulation, inheritance dan polymorphism. Encapsulation adalah konsep untuk membungkus atribut-atribut dan method-method yang ada pada suatu bagian menjadi sebuah class. Tujuan dari encapsulation adalah untuk memudahkan konsep pemrograman, menyembunyikan informasi yang rahasia, dan untuk memungkinkan pembuatan objek-objek yang mempunyai sifat yang sama. Inheritance adalah konsep penurunan sifat yang terdapat pada OOP, yang bertujuan untuk memudahkan pemrograman dari yang sederhana menjadi yang rumit sehingga tidak akan membuat konsep pemrograman menjadi rumit. Tujuan dari inheritance selain untuk memudahkan pemrograman adalah untuk menjaga hubungan antar class. Sehingga baik programmer maupun user dapat dengan mudah memengerti aliran program apabila program telah berkembang menjadi rumit.
53 Polymorphism adalah konsep OOP di mana sebuah objek dapat berubah bentuk sifatnya ditengah jalannya program. Dasar dari konsep polymorphism adalah konsep inheritance. Pada dasarnya polymorphism adalah sebuah abstract class yang mempunyai virtual method yang diturunkan menjadi beberapa class yang harus mengimplementasikan virtual method tersebut. Tujuan dari polymorphism adalah untuk memantapkan arsitektur pemrograman, karena dengan adanya polymorphism arah hubungan antar class akan menjadi jelas dan method-method dari class tersebut juga akan menjadi jelas. Dengan adanya tiga konsep OOP tersebut, OOP menjadi konsep pemrograman yang handal dan dapat diimplementasikan dalam segala situasi. 3.2 Perancangan Program 3.2.1 Flowchart Diagram
Gambar 3.1 Flowchart Diagram Enkripsi Dekripsi 54
55 3.2.2 Use Case diagram Gambar 3.2 Use Case Diagram Enkripsi Dekripsi
56 3.2.3 Class Diagram Gambar 3.3 Class Diagram Enkripsi - Dekripsi
57 3.2.4 Sequence Diagram Gambar 3.4 Sequence Diagram Enkripsi - Dekripsi
58 3.3 Perancangan Layar 3.3.1 Perancangan Tampilan Perangkat lunak bantu pemahaman ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Studio 2005 dan menggunakan MDI Form (Multiple Document Interface Form) sebagai form induk (main form) dan fasilitas menu editor untuk membuat dan mengatur tampilan menu pull down. Perangkat lunak bantu pemahaman ini dirancang dengan menggunakan beberapa layar, antara lain : 1. Layar Main, berfungsi sebagai layar induk untuk menggabungkan semua layar yang ada. 2. Layar Teori. 3. Layar Proses Pembentukan Kunci, merupakan anak layar dari layar Main. 4. Layar Proses Enkripsi, merupakan anak layar dari layar Main. 5. Layar Proses Dekripsi, merupakan anak layar dari layar Main. 6. Layar Kecepatan Animasi. ini : Secara ringkas, menu-menu dapat digambarkan seperti gambar berikut
59 Gambar 3.5 Menu dan Sub-menu pada Layar Utama 3.3.1.1 Rancangan Layar Main Layar ini merupakan layar induk yang berfungsi untuk menggabungkan semua layar yang ada pada perangkat lunak. Rancangan layar Main ini dapat dilihat pada gambar 3.6 berikut ini :
60 Gambar 3.6 Rancangan Layar Main 3.3.1.2 Rancangan Layar Teori Layar ini berfungsi untuk menampilkan teori-teori yang berhubungan dengan perangkat lunak. Rancangan layar ini dapat dilihat pada gambar 3.7 berikut ini :
61 Gambar 3.7 Rancangan Layar Teori 3.3.1.3 Rancangan Layar Proses Pembentukan Kunci Layar ini berfungsi untuk menampilkan proses pembentukan kunci dari metode MMB secara tahap demi tahap. Rancangan layar ini dapat dilihat pada gambar 3.8 berikut ini :
62 Gambar 3.8 Rancangan Layar Proses Pembentukan Kunci 3.3.1.4 Rancangan Layar Proses Enkripsi Layar ini berfungsi untuk menampilkan proses enkripsi dari metode MMB secara tahap demi tahap. Rancangan layar ini dapat dilihat pada gambar 3.9 berikut ini :
63 Gambar 3.9 Rancangan Layar Proses Enkripsi 3.3.1.5 Rancangan Layar Proses Dekripsi Layar ini berfungsi untuk menampilkan proses dekripsi dari metode MMB secara tahap demi tahap. Rancangan layar ini dapat dilihat pada gambar 3.10 berikut ini :
64 Gambar 3.10 Rancangan Layar Proses Dekripsi 3.3.1.6 Rancangan Layar Kecepatan Animasi Layar ini berfungsi untuk mengatur kecepatan animasi dari proses pembentukan kunci, enkripsi dan dekripsi. Rancangan layar ini dapat dilihat pada gambar 3.11 berikut ini :
65 Gambar 3.11 Rancangan Layar Kecepatan Animasi 3.4 State Transition Diagram Gambar 3.12 State Transition Diagram File
Gambar 3.13 State Transition Diagram Theory 66
67 Gambar 3.14 State Transition Diagram Process Gambar 3.15 State Transition Diagram Animation Speed
Gambar 3.16 State Transition Diagram Help 68