BAB 3 ANALISIS DAN PERANCANGAN PROGRAM
Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear sequential (waterfall). Metode ini terdiri dari empat tahapan yaitu, analisis, perancangan, pengkodean/pembuatan, dan percobaan/implementasi (Pressman, 2001: 29). Tahap analisis, perancangan dan pembuatan akan dibahas dalam Bab 3 ini, sedangkan tahap percobaan atau implementasi akan dilanjutkan di Bab 4. 3.1 Analisis Masalah Seiring dengan perkembangan teknologi, kemanan data manjadi hal yang sangat penting, mengingat pertukaran data dan informasi dapat terjadi dengan sangat mudah dan cepat. Kriptografi merupakan salah satu cara paling umum untuk mengamankan suatu informasi. Selain mudah dalam mengimplementasikannya, teknik ini juga tidak membutuhkan medium perantara. Banyak algoritma telah dikembangkan salah satunya dengan menggunakan algoritma Rijndael AES. Tetapi seberapa rumitpun algoritma yang dipakai untuk enkripsi ini, masalah keamanan data tetap ada karena ada pihak-pihak yang juga mengembangkan teknik dekripsi untuk mencuri data tersebut. Hal ini dikarenakan enkripsi tidak dilakukan secara tersembunyi. Satu contoh klasik untuk menganalogikan kriptografi dan steganografi adalah persoalan tahanan di penjara (prisoner’s problem). Misalkan, ada dua orang tahanan, si A dan si B yang berada di dalam sel terpisah, satu-satunya cara mereka berkomunikasi adalah lewat surat dengan perantara seorang sipir penjara si C. A
63
menulis surat pada selmbar kertas, lalu surat tersebut diserahkan kepada si C. C tentu saja dapat membaca isi surat tersebut sebelum disampaikan kepada si B. Hal yang sama juga dilakukan si B bila si B hendak membalas pesan dari si A. Misalkan si A ingin menulis pesan rahasia kepada si B mengenai rencana waktu pelarian mereka dari penjara. Pesan tersebut bunyinya adalah: “Lari jam satu”. Jika dengan menggunakan kriptografi, maka bunyi pesan tersebut akan diubah menjadi ciphertext: “xasdkl#89*pq”. Si C yang menyampaikan pesan tersebut pasti curiga dan menduga si A mengirimkan suatu pesan rahasia dan mulai berusaha untuk memecahkan ciphertext tersebut. Steganografi (penyisipan data ke dalam medium) memberi sudut pandang lain kepada pemecahan masalah pengiriman pesan tersebut. Dengan menggunakan steganografi, maka setiap huruf pesan rahasia akan disisipkan ke dalam setiap awal pada pesan yang akan dikirim, menjadi : “Lupakan asal rumor itu, jaga agar matamu sehat atau turunkan ubanmu” si C yang menyampaikan pesan tidak akan curiga dan menganggap si A mungkin sedang bercanda dengan si B.
3.2 Usulan Pemecahan Masalah Setelah melihat masalah keamanan data tersebut dan mempelajarinya, maka diputuskan untuk merancang suatu program aplikasi yang dapat menggabungkan kriptografi dengan steganografi. Kriptografi yang akan digunakan adalah dengan menggunakan algoritma Rijndael AES. Hasil dari enkripsi tersebut akan disisipkan ke dalam audio file dengan metode Least Significant Bit. Medium audio file yang dipilih adlaah file yang bertipe WAV, karena merupakan tipe uncompressed audio
64
file yang mempunyai jumlah bit yang cukup banyak, sehingga dapat memuat jumlah pesan dalam jumlah yang cukup besar, dan hasil audio yang telah disisipkan juga tidak akan terlalu berpengaruh pada kualitasnya.
3.3 Perancangan Program Aplikasi 3.3.1
Requirement Spesification
1. Program dibuat menggunakan Java 2 Standard Edition 2. Metode yang digunakan pada proses kriptografi adalah Rijndael AES 128 bit 3. File medium yang digunakan bertipe WAV 4. Data yang disisipkan dapat berupa data teks, gambar, ataupun suara
3.3.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.
65
Object
Oriented
Programming
(OOP)
adalah
sebuah
paradigma
pemrograman yang menggunakan class dan object dan interaksinya untuk 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 modulmodul 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.
66
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.4 Perancangan Layar 3.4.1
Rancangan Layar Utama (Hide) Pada layar File Steganography user dapat mengenkripsi file dengan metode Rijndael AES dan LSB pada file .wav. User diberikan fasilitas untuk memilih file yang akan dienkripsi atau didekripsi, file .wav yang menjadi carrier, dan file hasil jadi dari tahap steganografi dengan tombol “...”. Lalu dengan menekan tombol “Hide” maka file otomatis akan disisipkan ke dalam file carrier. X
File Steganography Menu Hide Extract Plain text
...
67
Password From
...
To
... Hide
Gambar 3.1 Rancangan Layar Utama (Hide)
68
3.4.2
Rancangan Layar Extract Pada layar ini, user dapat mengambil plaintext yang telah disisipkan di dalam file .wav. User diberi kebebasan untuk membuka file .wav hasil steganografi, dan menentukan tempat untuk menyimpan pesan hasil dari proses ekstraksi. Tersedia juga tombol “Extract”, untuk melakukan proses dekripsi, dan ekstraksi dari file carrier tersebut. Proses dapat berjalan dengan baik, jika password, dan file .wav steganografi sesuai. X
File Steganography Menu Hide
Extract ...
From Password
...
Plain text
Extract
Gambar 3.2 Rancangan Layar Extract
3.5 Perancangan Program Pada program simulasi ini, digunakan konsep Object Oriented Programming untuk mengembangkannya oleh karena itu dipilih Unified Modeling Language
69
(UML) untuk merancang arsitektur program. UML yang digunakan meliputi perancangan class diagram dan sequence diagram.
70
3.5.1
Class Diagram Class diagram adalah diagram yang menggambarkan class-class yang digunakan dalam perancangan program dan hubungan antar class. Berikut adalah class diagram yang digunakan dalam program simulasi:
Gambar 3.3 Class Diagram
71
3.5.2
Use Case Diagram Program Aplikasi Steganografi
Gambar 3.4 Use Case Diagram File Steganography
Pada Use Case Diagram dapat dilihat, pertama user memilih file plain- text yang akan dienkripsi dan disisipkan. User juga harus mengisi password dalam format hexadecimal. File carrier, dan file output steganografi juga harus dipilih.
72
Setelah itu, dengan menekan tombol Hide, maka proses enkripsi dengan metode Rijndael AES dan steganografi dengan menggunakan metode LSB akan jalan. Pada posisi si penerima pesan. User harus menginputkan nama file wav yang akan di ekstrak, password yang diisi juga harus sama dengan password yang diisi pada saat penyisipan data, dan yang terakhir user harus mengisi nama file yang akan menjadi file output. Dengan menekan tombol Extract, maka proses dekripsi dan proses LSB akan jalan.
3.5.3
Sequence Diagram Sequence diagram adalah diagram yang menunjukkan urutan penukaran pesan oleh sejumlah object (dan seorang aktor yang optional) di dalam melakukan tugas tertentu.
73
74
Gambar 3.5 Sequence Diagram File Steganography 3.5.4
State Transition Diagram STD atau State Transition Diagram menggambarkan sebuah sistem yang real-time dan sistem yang on-line. STD merupakan suatu keadaan yang menggambarkan suatu keadaan pada waktu tertenu (Yourdon, 2006). Perubahan keadaan dapat terjadi karena suatu kejadian dan sebagai akibat dari kejadian tersebut maka akan muncul suatu aksi yang menyebabkan keadaan berubah. STD membantu dalam memberikan gambaran secara keseluruhan dari program. STD untuk program aplikasi ini dapat dilihat pada gambar 3.6, gambar 3.7, dan gambar 3.8.
Gambar 3.6 State Transition Diagram Menu Utama
75
Gambar 3.7 State Transition Diagram tab Hide
76
Gambar 3.8 State Transition Diagram tab Extract
3.5.5
Menu Menu-menu yang terdapat pada program simulasi ini adalah seperti yang dijelaskan pada tabel berikut ini:
Tabel 3.1 Menu-Menu Program Aplikasi Menu
Tujuan
File Steganography
Membuka layar File Steganography
Tab Hide
Membuka layar Hide
77
Tab Extract
Membuka layar Extract
Exit
Keluar dari program