BAB 3 ANALIS IS DAN PERANCANGAN PROGRAM
Dalam perancangan dan penyusunan aplikasi ini, digunakan metoda siklus pengembangan sistem yang lazim disebut Waterfall Model. M etode ini terdiri dari enam tahapan yaitu, user requirement, analisis, design, coding atau pengkodean, testing dan implementasi. Di dalam bab ini akan dijelaskan tentang user requirement, analisis, design, coding. Sedangkan testing dan implementasi akan dibahas pada bab selanjutnya.
3.1
Analisis Masalah Seiring dengan
perkembangan
teknologi,
keamanan
dalam berteknologi
merupakan hal yang sangat penting, mengingat pertukaran data dan informasi yang terjadi di antara para user dapat berlangsung sangat mudah dan cepat. Salah satu cara mengamankan data yang paling umum adalah dengan menggunakan metode kriptografi. Hal ini dikarenakan metode kriptografi sangat mudah diimplementasikan. Selain itu, metode kriptografi yang digunakan sangat banyak dan variatif, salah satunya adalah dengan menggunakan algoritma cipher substitusi dan cipher transposisi. M eskipun kriptografi adalah salah satu cara untuk mengamankan data, namun masih ada kekurangannya. Oleh sebab itu, penulis berpendapat ada baiknya bila menggabungkan kriptografi dengan steganografi, untuk mendapatkan keamanan lebih dalam bertransaksi data khususnya yang bersifat rahasia. Penulis memilih metode Least Significant Bit Insertion (LSB) untuk proses steganografinya.
27
28
3.2
Usulan Pemecahan Masalah Setelah melihat masalah-masalah yang ditemukan serta mengingat betapa
pentingnya kebutuhan akan keamanan dalam bertransaksi data dan informasi, penulis memutuskan untuk merancang dan
membuat sebuah program aplikasi yang
menggabungkan kriptografi dan steganografi. Aplikasi kriptografi dirancang dengan menggunakan algoritma cipher substitusi dan cipher transposisi karena algoritma tersebut bermain pada bit sehingga lebih simpel untuk dimodifikasi. Dari hasil enkripsi tersebut akan disisipkan menggunakan metode steganografi LSB. Keuntungan yang paling besar dari algoritma LSB ini adalah cepat dan mudah. Dan juga algoritma tersebut mendukung penyembunyian bermedia image yang berunsur pokok warna melalui manipulasi pallete (lukisan). Adapun media image yang dipilih adalah yang berbasis bitmap (*.bmp), karena *.bmp memiliki ukuran rentang bit yang besar ketimbang JPEG sehingga memudahkan user untuk menyembunyikan data dalam proses steganografi.
3.3
Perancangan Program Aplikasi Pada perancangan program aplikasi ini akan dibahas spesifikasi dasar yang
dibutuhkan untuk membuat aplikasi dan bentuk dari program aplikasi yang dibuat. Spesifikasi itu berupa software, metode, data, dan media yang digunakan dalam aplikasi ini. Sedangkan bentuk program meliputi arsitektur program yang dibuat memakai cara apa.
29
3.3.1 Requirement Spesification Dalam pembuatan aplikasi tentu dibutuhkan spesifikasi dasar, antara lain: a. Program aplikasi dibuat menggunakan Visual C# 2010. b. Visual C# 2010 membutuhkan .NET framework versi 4 c. M etode yang digunakan pada proses kriptografi adalah cipher substitusi dan cipher transposisi. d. Data yang dienkripsi adalah dokumen berekstensi *.txt. e. Proses steganografi menggunakan metode LSB. f. M edia file yang disisipkan berekstensi *.bmp. 3.3.2 Bentuk Program Arsitektur dari sebuah program dapat dilakukan dengan beberapa cara, salah satunya dengan pemrograman berbasis objek. M engacu pada pendapat Adi Nugroho (2009), pemrograman berbasis objek atau yang biasa dikenal sebagai Object Oriented Programming (OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. OOP banyak digunakan karena memiliki beberapa keunggulan, salah satunya karena sifatnya yang reusable. Reusable karena programmer tidak perlu membuat program berulang-ulang untuk modul yang memiliki fungsi yang mirip, oleh karena itu konsep OOP sangat cocok untuk membuat aplikasi yang rumit. Selain reusable konsep dasar OOP antara lain adalah encapsulation, inheritance, dan polymorphism.
30
a. Encapsulation, memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut. b. Inheritance adalah konsep penurunan sifat yang terdapat pada OOP, yang bertujuan untuk memudahkan pemrograman dari yang rumit menjadi yang sederhana sehingga tidak akan membuat konsep pemrograman menjadi rumit. Tujuan inheritance selain untuk memudahkan pemrograman adalah untuk menjaga hubungan antar class. Sehingga baik programmer maupun user dapat dengan mudah mengerti aliran program apabila program telah berkembang menjadi rumit. c. Polymorphism melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan gerakcepat, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polymorphism karena sebuah variabel tunggal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang
31
berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polymorphism melalui penggunaan fungsi kelas pertama.
3.4
Perancangan Graphic User Interface (GUI) Pada rancangan layar utama, user diminta untuk memilih fasilitas yang akan
digunakan. Ada 2 fasilitas yang dipilih, yaitu menu ‘Kriptografi’ dan menu ‘Steganografi’. User pun bisa langsung menggunakan menu ‘Steganografi’ tanpa harus melalui tahap kriptografi terlebih dahulu. Dan ada juga menu ‘Help’ yang terdapat beberapa penjelasan singkat tentang kriptografi dan steganografi.
Gambar 3.1 Rancangan layar utama
32
3.4.1 Rancangan Layar Cryptography (Encode-Decode) Pada rancangan layar cryptography terdapat pilihan submenu ‘Encode’ dan ‘Decode’. User diberikan fasilitas ‘Open File’ atau menulis langsung di layar yang tersedia. Untuk mengeksekusi, user diminta memasukkan password, password tersebut berfungsi untuk mengenkripsi data yang di-input, begitu juga ketika akan didekripsi harus memasukkan password yang sama. Di bawah ini adalah gambar rancangan layar Cryptography (Encode dan Decode).
Gambar 3.2 Rancangan layar Cryptography (Encode-Decode)
3.4.2 Rancangan Layar Steganography Hide Pada rancangan layar Steganography Hide ini, user dapat mengenkripsi file dengan metode Least Significant Bit (LSB) pada image file. User diberikan fasilitas untuk memilih data file dan data image dengan tombol ‘Browse’. Data file yang bisa disimpan di dalam media tersebut bisa berformat apapun, tidak hanya dokumen yang baru di-encode saja.
33
Gambar 3.3 Rancangan layar Steganography Hide
3.4.3 Rancangan Layar Steganography Extract
Gambar 3.4 Rancangan layar Steganography Extract
Pada rancangan layar Steganography Extract dapat dilakukan pengembalian data yang telah disembunyikan sebelumnya dengan memakai menu ‘Steganography Hide’.
34
User diberikan kebebasan untuk membuka file hasil steganografi, dan menentukan tempat untuk menyimpan pesan hasil dari proses ekstraksi. Tersedia juga tombol ‘Extract’, untuk melakukan proses deskripsi, dan ekstraksi dari carrier file tersebut.
3.5
Perancangan Program Dalam perancangan ini akan menggunakan Class Diagram, Data Flow Diagram
(DFD), Flowchart, Use Case Diagram, dan State Transition Diagram untuk menjelaskan perancangan program aplikasi ini. Perancangan/model proses adalah yang memfokuskan pada seluruh proses di dalam sistem yang mentrasformasikan data menjadi informasi (Harris, 2003). M odel proses juga menunjukkan aliran data yang masuk dan keluar pada suatu proses. Biasanya model ini digambarkan dalam bentuk Diagram Arus Data (Data Flow Diagram/DFD). DFD menyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi informasi. 3.5.1 Class Diagram Class
menggambarkan
keadaan
(atribut/properti) suatu sistem, sekaligus
menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class Diagram adalah sebuah spesifikasi yang jika diinstansi akan menghasilkan sebuah obyek dan merupakan inti dari pengembangan dan desain berorientasi obyek. Class Diagram memperlihatkan atau menampilkan struktur dari sebuah sistem, sistem tersebut akan menampilkan sistem kelas, atribut, dan hubungan antara kelas ketika suatu sistem telah selesai dibuat.
35
Gambar 3.5 Class Diagram
3.5.2 DFD Data Flow Diagram (DFD) adalah suatu network yang menggambarkan suatu sistem automata, manual atau gabungan dari keduanya yang penggambarannya disusun dalam bentuk kumpulan komponen sistem yang saling berhubungan sesuai dengan aturan mainnya. DFD adalah suatu model logika data atau proses yang dibuat untuk menggambarkan darimana asal data dan kemana tujuan data yang keluar dari sistem, dimana data disimpan, proses apa yang menghasilkan data tersebut dan interaksi antara data yang tersimpan dan proses yang dikenakan pada data tersebut.
36
Gambar 3.6 Data Flow Diagram Level 0
Gambar di atas adalah DFD Nol yang menjelaskan lebih rinci lagi mengenai proses di dalam aplikasi. Di dalam diagram ini proses dibagi menjadi empat, yaitu Encode System, Decode System, Hide System, dan Extract System. Encode dan Decode System adalah bagian proses pada kriptografi. Hide dan Extract System adalah bagian proses pada steganografi. Di dalam diagram ini juga ada data storage, yaitu tempat penyimpanan data yang telah diproses di dalam sistem.
Gambar 3.7 Data Flow Diagram Konteks
37
Gambar di atas adalah Data Flow Diagram konteks yaitu menjelaskan secara keseluruhan proses yang ada dalam aplikasi, yaitu dengan satu proses secara keseluruhan (kriptografi dan steganografi), dari mana asal data, dan kemana tujuan data yang keluar dari sistem. 3.5.3 Flowchart Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Flowchart juga dapat menjadi alat bantu untuk memudahkan perancangan alur urutan logika suatu program. Ada dua macam flowchart yang menggambar proses dengan komputer, yaitu: a. Flowchart system: menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antara peralatan tersebut, tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, hanya untuk menggambar prosedur dalam sistem yang dibentuk. b. Flowchart program: menggambarkan urutan logika dari suatu prosedur pemecahan masalah. Ada dua jenis metode penggambaran flowchart program, yaitu: a) Conseptual flowchart, menggambarkan alur pemecahan masalah secara global. b) Detail flowchart, menggambarkan alur pemecahan masalah secara rinci.
38
Gambar 3.8 Cryptography Flowchart
Gambar di atas memperlihatkan urutan dan hubungan antara proses dalam kriptografi. Dimulai dengan tampilan awal menu kriptografi, jika user mempunyai file (*.txt) maka bisa membukanya. Namun jika tidak ada, maka user dapat menuliskannya sendiri. Setelah itu user dapat memilih submenu ‘Encode’ dan akan tampil dialog box yang meminta user memasukkan password. Setelah password terisi dengan benar dan
39
menekan tombol ‘OK’ maka proses Encode selesai. Namun jika password tidak terisi dengan benar, maka akan kembali ke dialog box pengisian password. Proses Decode hampir sama dengan Encode yaitu dengan memilih pesan yang telah dienkripsi dan membukanya, lalu memilih submenu ‘Decode’. Setelah itu keluar dialog box pengisian password, password disini harus diisi sama dengan password ketika proses Encode. Jika berbeda maka pesan asli tidak akan terlihat. Jika password diisi dengan benar dan menekan tombol ‘OK’, maka proses Decode telah selesai.
Gambar 3.9 Steganography Flowchart
40
Gambar di atas memperlihatkan urutan dan hubungan antara proses dalam steganografi. Di dalam menu steganografi terdapat dua submenu yang dapat dipilih, yaitu ‘Hide’ dan ‘Extract’. Jika memilih submenu ‘Hide’, maka akan muncul window ‘Steganografi Hide’. Di dalam submenu ini, user diminta memasukkan image yang akan menjadi media untuk penyembunyian pesan dan setelah image dipilih, akan ada tampilan dari image yang dipilih tadi. User juga harus memasukkan file yang akan disembuyikan, setelah itu user bisa menekan tombol ‘Hide’ dan diminta untuk menyimpan hasil dari steganografi Hide ke dalam suatu folder, proses Hide selesai. Di dalam submenu ‘Extract’, user diminta memasukkan image yang ada pesan rahasianya untuk diekstrak, setelah dimasukkan akan ada tampilan gambar dari image yang dipilih di layar ‘Steganografi Extract’. User juga diminta menekan tombol ‘Browse Save to’ untuk menyimpan hasil pengekstrakan di dalam folder yang diinginkan. Sesudah itu user bisa menekan tombol ‘Extract’ dan proses Extract selesai. 3.5.4 Use Case Diagram M engacu pada pendapat M ickey Gousset, Brian Keller, Ajoy Krishnamoorthy, dan M artin Woodward (2010), Use Case Diagram memberikan gambaran grafis dari fungsi suatu sistem. Use Case Diagram merepresentasikan sebuah interaksi antara aktor dengan sistem. Use Case Diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.
41
Gambar 3.10 Cryptography File Use Case Diagram
Pada Use Case Diagram kriptografi dapat dilihat, pertama user memilih menginput atau membuka plaintext file yang akan di-decode. Setelah itu user menekan tombol ‘Encode’ dan muncul dialog box yang memberitahukan agar user mengisi password. Setelah itu proses enkripsi dengan metode cipher kriptografi akan segera berjalan. Pada posisi si penerima pesan. User harus membuka file kriptografi yang akan didecode, password yang diisi juga harus sama dengan password yang diisi pada saat enkripsi. Dan setelah Decode dilakukan dengan mengisi password yang benar, muncul text yang sebelum dienkripsi.
42
Gambar 3.11 Steganography File Use Case Diagram
Pada Use Case Diagram steganografi dapat dilihat, pertama user memilih image yang akan menjadi tempat untuk menyembunyikan file. User juga harus memilih file yang akan disembunyikan. Setelah itu, dengan menekan tombol ‘Hide’, muncul dialog box yang menyatakan image yang telah ada file tersembunyi di dalamnya harus di-save dimana. M aka proses steganografi dengan metode LSB dijalankan. Pada posisi si penerima pesan. User harus membuka nama image yang akan diekstrak. Lalu user harus menyimpan dengan memberi nama file yang akan menjadi output dan menekan tombol ‘Extract’. M aka proses ekstrak steganografi dengan metode LSB dijalankan. 3.5.5 State Transition Diagram State Transition Diagram (STD) adalah jenis diagram yang digunakan dalam ilmu komputer dan bidang terkait untuk menjelaskan perilaku sistem. State Transition Diagram digunakan untuk memberikan deskripsi abstrak tentang perilaku dari suatu
43
sistem. Perilaku ini dianalisis dan direpresentasikan dalam serangkaian peristiwa, yang dapat terjadi dalam satu atau lebih state yang mungkin.
Gambar 3.12 State Transition Diagram menu ‘Cryptography’
State Transition Diagram di atas menjelaskan tentang perilaku sistem kriptografi. Sistem ini dimulai dengan menampilkan layar utama, di dalam layar utama ini user dapat memilih menu yang ada yaitu ‘Cryptography’, ‘Steganography’, ataupun ‘Help’. Jika user memilih menu ‘Cryptography’, maka akan muncul layar kriptografi. Di dalam layar kriptografi ini juga terdapat menu seperti file dan submenu yaitu ‘New’, ‘Open’, ‘Save As’, ‘Exit’. Dan juga menu ‘Cryptography’ yang berisi submenu berupa ‘Encode’ dan ‘Decode’. Setelah user menuliskan atau membuka file, maka user bisa memilih submenu ‘Encode’ ataupun ‘Decode’. Setelah memilih submenu tersebut, maka akan
44
muncul dialog box yang meminta user memasukkan password. Setelah itu menekan tombol ‘OK’ dan hasil dari Encode ataupun Decode terlihat.
Gambar 3.13 State Transition Diagram menu ‘Steganography’
State Transition Diagram di atas menjelaskan tentang perilaku sistem steganografi. User dapat memilih menu ‘Steganography’ di tampilan layar awal. Di dalam menu ‘Steganography’ ada dua submenu yakni, ‘Hide’ dan ‘Extract’. User bisa menyembunyikan pesan dengan memilih submenu ‘Hide’. Setelah memilih submenu ‘Hide’, akan tampil window baru. Disini user bisa memilih image yang akan menjadi media penyembunyian pesan dan file yang akan disembunyikan dengan menekan tombol ‘Browse’ pada ‘Load Image’ dan ‘Load File’. Setelah itu user bisa menekan tombol
45
‘Hide’ untuk menyembunyikan pesan yang sudah dipilih. Jika user telah menekan tombol ‘Hide’, maka akan tampil dialog box untuk menyimpan hasil penyembunyian. Jika operasi penyembunyian sukses, maka akan tampil dialog box yang menyatakan ‘Operation Success’. User bisa mengekstrak pesan dengan memilih submenu ‘Extract’ pada ‘Steganography’. User dapat memilih image dengan menekan tombol ‘Browse’ pada ‘Load Image’. Dan menekan tombol ‘Browse’ pada ‘Save to’ untuk memilih tempat penyimpanan hasil dari pengekstrakan. Setelah itu user bisa menekan tombol ‘Extract’ untuk menjalankan sistemnya. Jika operasi pengekstrakan sukses, maka akan tampil dialog box yang menyatakan ‘Operation Success’.
46
3.5.6 Menu M enu-menu yang terdapat pada program ini adalah seperti yang dijelaskan pada tabel berikut ini: Menu
Tujuan
‘YouCantSeeMe’ File
M embuka layar utama
M enu ‘Cryptography’
Untuk membuka layar Cryptography
Submenu ‘File -> New’
Untuk membuka layar Cryptography yang baru
Submenu ‘File -> Open’
Untuk membuka file (*.txt)
Submenu ‘File -> Save As’
Untuk menyimpan file
Submenu ‘File -> Exit’
Untuk keluar dari layar Cryptography
M enu ‘Steganography Hide’
Untuk membuka layar Steganography Hide
M enu ‘Steganography Extract’
Untuk membuka layar Steganography Extract
M enu ‘Help’
Untuk membuka layar Help Tabel 3.1 Menu-menu program aplikasi
Dalam perancangan pengamanan pesan dengan menggunakan kriptografi dan steganografi telah selesai dilakukan, mencangkup perancangan program aplikasi, perancangan layar, dan perancangan program. Program aplikasi telah dirancang dengan menggunakan kriptografi dengan metode cipher substitusi dan cipher transposisi, sedangkan steganografi dengan metode Least Significant Bit (LSB). Cipher substitusi adalah penggantian setiap karakter teks asli dengan karakter lain. Cipher transposisi dilakukan dengan menggunakan permutasi karakter. Sedangkan Least Significant Bit
47
(LSB) adalah pesan disembunyikan dengan cara menyisipkannya pada bit rendah atau bit paling kanan pada data pixel yang menyusun suatu file image. Dari perancangan itu terdiri dari empat modul utama, yaitu Encode, Decode, Hide, dan Extract. Encode dan Decode merupakan sistem dari modul kriptografi. Encode adalah suatu cara yang sangat berguna untuk menjaga keutuhan suatu informasi atau karakteristik dengan mengubahnya ke bentuk lain yang menggunakan suatu program. Decode adalah proses pengembalian ciphertext menjadi plaintext dari hasil Encode. Sedangkan Hide dan Extract merupakan sistem dari modul steganografi. Hide adalah proses penyembunyian suatu plaintext ke dalam gambar sehingga tidak dapat diketahui bahwa ada pesan di dalam gambar tersebut. Extract adalah suatu cara untuk mengambil pesan yang tersembunyi di suatu media (dalam hal ini adalah gambar).