BAB III PERANCANGAN PROGRAM 3.1
Perancangan Program Aplikasi
3.1.1
Requirement Spesification 1. Program dibuat menggunakan M icrosoft Visual Studio 2005. 2. M etode yang digunakan pada proses kriptografi adalah MM B (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
54
Gambar 3.1 Flowchart Diagram Enkripsi – Dekripsi
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’.
Secara ringkas, menu-menu dapat digambarkan seperti gambar berikut ini :
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 MM B 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’
66
Gambar 3.13 State Transition Diagram ‘Theory’
67
Gambar 3.14 State Transition Diagram ‘Process’
Gambar 3.15 State Transition Diagram ‘Animation Speed’
68
Gambar 3.16 State Transition Diagram ‘Help’