BAB 3 PERANCANGAN PROGRAM

advertisement
BAB 3
PERANCANGAN PROGRAM
3.1
Spesifikasi Rumusan Perancangan
Perancangan program aplikasi ini di buat melalui Java 1.5.0 dengan
menggunakan editor Netbeans 5.5
Perancangan program aplikasi di bagi menjadi dua bagian proses yaitu:
•
Encode
Bagian ini adalah bagian penyisipan atau penempelan file/pesan kedalam
cover image yang berformat 24-bit Bitmap, proses ini akan menghasilkan
gambar yang telah disisipi pesan yang di namakan stegoimage.
•
Decode
Proses decode adalah proses pengambilan file/pesan yang telah di sispkan
kedalam media citra berformat 24-bit Bitmap dengan memilih
stegoimage.
3.2
Perancangan Modul
Pada Menu utama berisi dua pilihan yaitu Penyisipan Dan Pengambilan Terdapat
3 form atau modul di dalam program ini yaitu: Modul Utama, Modul Penyisipan, dan
Modul Pengambilan.
22
3.2.1
Modul Utama
Menu utama berisikan 2 tombol yang akan masing-masing menuju pada Menu
Penyisipan dan Menu Pengambilan. Pengguna dapat memilih menu Penyisipan dengan
memilih tombol Penyisipan apabila ingin menempelkan pesan kedalam gambar, bila
ingin mengambil pesan di dalam gambar dapat memilih menu Pengambilan. Modul
Menu utama menggunakan class java yaitu :
1. Main.java
Pada Main.java, pertama kali di buat GUI untuk menu utama dan menjadi penghubung
terhadap 2 menu yang lainya.
Gambar 3.1 Menu Utama
23
3.2.2
Modul Penyisipan
Modul Penyisipan ini adalah modul yang menangani semua penyisipan pesan
kedalam cover image yang berformat 24-bit Bitmap non-compression. Modul ini akan
menghasilkan stegoimage yang berisi pesan yang telah disembunyikan. Modul ini
menggunakan class java antara lain:
1. SelectDataFile.java
2. EncodeStegoImage.java
3. ConcealControl.java
4. LoadBitmapBytes.java
5. BmpFilter.java
6. BMPfile.java
7. SelectCoverFile.java
8. BMPFile.java
Class SelectDataFile.java mempunyai fungsi sebagai menu untuk memilih file
yang disisipkan sebagai pesan, EncodeStegoImage berfungsi untuk menampilkan proses
dalam penyisipan pesan kedalam cover image Class ConcealControl.java adalah class
yang menjadi inti dalam mencode pesan untuk di sisipi kedalam cover image, di dalam
ConcealControl terdapat metode LSB dan MELSBR. LoadBitmapBytes.java berfungsi
untuk mengambil nilai pixel RGB di dalam gambar Bitmap, BmpFilter.java berfungsi
sebagai
validasi
dalam
SelectCoverFile.java adalah
pengambilan
gambar
bitmap
di
dalam
program,
menu yang di tampilkan dalam memilih cover image.
BMPFile.java berfungsi dalam membuat file bitmap baru.
24
Gambar 3.2 Menu Pilih File
Gambar 3.3 Menu Pilih Cover Image
3.2.3
Modul Pengambilan
Pada Modul pengambilan akan mempunyai beberapa menu yaitu: Menu Pilih
StegoImage dan menu Ekstrak Image. Modul ini berfungsi untuk memilih ,memproses
dan mengambil pesan pada stegoimage. Stegoimage harus berformat 24-bit bitmap non-
25
compression dan mempunyai pesan di dalamnya yang telah di sisipi dengan
menggunakan metode MELSBR. Modul ini menggunakan class java antara lain:
1.
DecodeStegoImage.java
2.
SelectStegoImage.java
3.
LoadBitmapBytes.java
4.
RevealControl.java
Class SelectStegoImage.java adalah menu untuk memilih stegoimage yang
berformat 24-bit bmp untuk di ambil pesan tersembunyinya, class DecodeStegoImage
menampilakan proses dalam pengekstrakan pesan di dalam stegoimage, class
RevealControl.java merupakan inti dalam melakukan proses pengekstrakan pesan,
RevealControl bertugas untuk mengambil informasi di dalam stegoimage ( berapa besar
file,nama file, besar k-bits, dll ) dan menulisnya kembali ke bentuk pesan semula.
Berikut rancangan layar pada modul pengambilan
Gambar 3.4 Menu Pilih StegoImage
26
Gambar 3.5 Menu Decode
3.3 Cara Kerja Program
Pada sub bab ini akan di gambarkan secara lebih rinci mengenai program
steganografi ini.
Pada proses penyisipan, hal yang pertama dilakukan program steganografi adalah
menerima input file pesan dan cover image, dilanjutkan dengan membaca pesan dan
menampungnya kedalam array, proses ini ditangani oleh ConcealControl.java. Proses
dilanjutkan dengan membaca cover image, pembacaan cover image menggunakan
fungsi sendiri yaitu LoadBitmapBytes.java ( di karenakan tidak adanya fungsi yang
disediakan oleh java dalam membaca format bitmap ), dalam LoadBitmapBytes diambil
beberapa informasi dari header ( 14 bit pada header dan 40 bit pada information header)
antara lain, berapa ukuran file, berapa bit yang digunakan, ada atau tidaknya kompresi,
dll, lalu ditampung kedalam array.
Tahap selanjutnya adalah penyisipan pesan, proses inti ini dikerjakan oleh
ConcealControl.java. Yang pertama dilakukan adalah menentukan berapa k-bit yang
27
digunakan setiap pixel pada bitmap mempunyai 3 byte ( yaitu RGB, walaupun gambar
tersebut adalah hitam putih) jadi mempunyai total 24 bit, proses penyisipanpun.dimulai
dengan 7 Pixel pertama digunakan untuk menyimpan keterangan mengenai pesan yang
dtempelkan, dengan k-bit yang digunakan adalah k = 2.
Pixel yang ke 0 digunakan untuk menyimpan keterangan berapa k- bit yang
digunakan dalam menyisipkan pesan, pixel yang ke 1 digunakan untuk menyimpan
keterangan berapa panjang ukuran nama file pesan, pixel yang ke 2 – 6 digunakan untuk
menyimpan panjang ukuran data file pesan, pixel yang ke 7 – n digunakan untuk
menyimpan nama file pesan, pixel yang ke n – m digunakan untuk menyimpan data file
pesan. Pixel yang sudah disisipi pesan perlu dilakukan proses pengoptimasian dengan
menggunakan metode MELSBR, yaitu dengan menghitung tingkat error dan
menggunakan pixel yang mempunyai tingkat error yang lebih kecil. Proses
penyisipanpun selesai dilakukan
Setelah proses penyisipan selesai, pembuatan stegoimage pun dilakukan, dengan
menggunakan pixel yang sudah disispi pesan. Proses ini dilakukan pada BMPFile,java.
Pada proses pengambilan, dibutuhkan input file berupa stegoimage. Setelah itu
proses pengambilan pun dilakukan, dengan menggunakan RevealContro.java diambil
beberapa informasi penting mengenai pesan yang telah disisipi antara lain: ukuran file,
nama file, k-bit yang digunakan, panjang nama file, panjang ukuran file.
Pembacaan stegoimage menggunakan class yang sama seperti membaca file
bitmap biasa yaitu LoadBitmapBytes.java, dengan menggunakan informasi mengenai
pesan yang telah disisipi pada pixel ke 0 – 6, pengambilan bit pun dilakukan.
Bit yang telah diambil dari stegoimage, dibentuk kembali menjadi file seperti
aslinya, proses ini dilakukan juga pada RevealControl.java
28
Berikut merupakan diagram alir dari jalannya program dandiagram alir pada
proses penyisipan dan proses pengambilan
3.4
Perancangan Diagram Alir ( flowchart )
Diagram alir adalah alat bantu pemograman yang biasanya di gunakan dalam
menjelaskan cara kerja program. Berikut merupakan diagram alir dari program
steganografi
29
Mulai
Menu Utama
Selesai
Menu Penyisipan
tidak
Menu
Pengambilan
Cukup?
tidak
ya
StegoImage?
Proses Encode
ya
Proses Decode
StegoImage
Pesan
Gambar 3.6 Diagram alir dari program steganografi
30
Start
no
Input : Messages,
Cover Image
no
cek cover
image are 24btimap?
yes
Determine k from
capacity cover
image
Cek if capacity fit
all the message?
yes
Extract bits pixel
and embed data
no
Create new byte
of pixel
Transform k+1th
bit
Calculate
error2(error
transform pixel)
Calculate
error1(error new
pixel)
Create Transform
byte of pixel
error1<error2?
no
yes
use new byte pixel
use transform byte
pixel
Embed pixels to
stego image
is all message
has been
embeded
yes
end
Gambar 3.7 Diagram alir dari proses penyisipan dengan algoritma MELSBR
31
Start
Input :
StegoImage
no
cek if
stegoimage?
yes
Determine k from
Stego image
Extract bits pixel
no
extract data from
pixel
Is all mesage data
has been extracted?
yes
save data
end
Gambar 3.8 Diagram alur dari proses pengambilan
Download