bab iii perancangan program - thesis.binus.ac.idthesis.binus.ac.id/doc/bab3/2010-1-00511-mtif bab...
TRANSCRIPT
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
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 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’
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’