BAB V IMPLENTASI DAN PENGUJIAN Pada bab V ini dibahas mengenai implementasi hasil analisis dan hasil perancangan perangkat lunak yang telah dilakukan pada bab-bab sebelumnya. Implementasi mencakup lingkungan implementasi, data masukan, data keluaran, implementasi kelas, dan implementasi antarmuka. Pada bab ini, juga dijelaskan pengujian perangkat lunak yang mencakup tujuan pengujian, rancangan kasus uji, data pengujian,
skenario
pengujian, hasil pengujian, dan analisis hasil pengujian. Perangkat lunak yang dibangun diberi nama CombinoZM.
5.1 Implementasi Perangkat Lunak 5.1.1 Lingkungan Implementasi Implementasi yang dilakukan menggunakan sebuah perangkat komputer untuk membangun CombinoZM. Perangkat komputer yang digunakan untuk melakukan implementasi memiliki spesifikasi sebagai berikut: 1. Prosessor AMD AthlonTM 64 3000+ 2. RAM 1,5 GB 3. Hard Disk 80 GB 4. Perangkat masukan keyboard dan tetikus 5. Perangkat keluaran monitor
Adapun perangkat lunak yang digunakan dalam melakukan implementasi adalah sebagai berikut: 1. Sistem operasi Windows XP Service Pack 3 2. Eclipse SDK 3.4.2 3. Bahasa Java 4. JDK 1.6
V-1
V-2
Dalam melaksanakan pembangunan CombinoZM diperlukan tambahan plugin pada Eclipse SDK, tambahan plugin tersebut adalah: 1. Eclipse
Modeling
Framework
Service
Data
Objects
(EMF
SDO)
3.2.0.v20060626 2. Graphical Editing Framework 3.2.0.v200606271057 3. Visual Editor 1.2.0.v20060407_S
Tambahan plugin ini berguna untuk memudahkan membangun interface seperti yang ada pada aplikasi Netbeans. Pada Eclipse SDK, jika ingin menambahkan kemampuan ini harus menginstall 3 plugin ini terlebih dahulu.
Pada saat menjalankan aplikasi, harus ditambahkan argument “-Xms256m -Xmx512m” ke VM arguments. Hal ini dilakukan agar memori yang digunakan oleh aplikasi lebih besar, sehingga dapat beroperasi untuk citra dengan ukuran yang besar. Pada contoh argument diatas, memori yang akan digunakan antara 256MB sampai dengan 512MB. 5.1.2 Data Masukan Data masukan yang terlibat pada proses pengenkripsian pesan dan penanaman pesan ke dalam citra adalah : 1. Cover Image : citra yang digunakan untuk menanamkan pesan 2. X0 key : kunci yang digunakan untuk membangkitkan sejumlah pilihan pikselpiksel yang akan dimodifikasi (kumpulan angka pseudorandom) 3. File Message : arsip yang merupakan pesan yang akan disisipkan ke citra 4. M LSB key: kunci yang menentukan jumlah least significant bit yang akan termodifikasi dari 3 komponen warna yang ada 5. MARS key: kunci yang digunakan untuk proses enkripsi pesan
Sedangkan, data masukan yang terlibat pada proses pendekrpsian pesan dan pengekstrakan pesan dari citra adalah: 1. Stego Image: citra yang menyimpan pesan yang akan diekstrak 2. X0 key: kunci yang digunakan untuk membangkitkan sejumlah pilihan pikselpiksel yang akan dimodifikasi (kumpulan angka pseudorandom)
V-3
3. M key: kunci yang menentukan jumlah least significant bit yang akan termodifikasi dari 3 komponen warna yang ada 4. MARS key : kunci dekripsi yang sama dengan kunci yang digunakan untuk melakukan enkripsi 5. STBM key :kunci yang berguna untuk menentukan berapa jumlah piksel yang terlibat untuk menghasilkan pesan 6. File Message Size: ukuran dari pesan yang akan diekstrak
Untuk metode LCG, nilai yang diterima oleh pengguna hanya nilai benih awal sedangkan nilai a, c, dan dihasilkan oleh sistem. Nilai m ditentukan dari dimensi citra yang dimasukkan (cover-image dan stego-image); dan nilai a dan c ditentukan berdasarkan syarat pada dasar teori di bagian penjelesan metode LCG. 5.1.3 Data Keluaran Data keluaran yang dihasilkan pada proses pengekripsian pesan dan penanaman pesan adalah sebuah citra yang telah ditanamkan pesan (stego-image). Sedangkan, data keluaran yang dihasilkan pada proses pendekripsian pesan dan pengekstrakan pesan adalah sebuah pesan yang telah ditanamkan sebelumnya (file message). 5.1.4 Implementasi Kelas Kelas-kelas yang telah dirancang diimplementasikan dengan menggunakan bahasa JAVA. Pada Tabel V-1 dapat dilihat daftar implementasi kelas-kelas yang ada pada CombinoZM beserta keterangannya. Operasi dan atribut untuk setiap kelas dapat dilihat di Lampiran C. Tabel V-1 Penjelasan Kelas Implementasi
Nama Kelas DefinisiPixel
Nama Arsip DefinisiPixel.java
ImageLSB
ImageLSB.java
InterfaceCombinoZM
InterfaceCombinoZM.java
Keterangan Kelas ini memodelkan sebuah piksel pada citra 24-bit bitmap. Kelas ini memodelkan citra sebagai sekumpulan DefinisipikselDefinisiPiksel. Kelas ini merupakan turunan dari kelas javax.swing.JFrame. yang akan menjadi jendela utama aplikasi. Kelas ini akan memanggil prosedur steganografi dan prosedur kriptografi yang ada pada kelas lainnya
V-4
Nama Kelas AboutDialog
Nama Arsip InterfaceCombinoZM.java
LCGmtd
LCGmtd.java
Pesan
Pesan.java
PointLSB
PointLSB.java
ThreeByte
ThreeByte.java
Zhangmtd
Zhangmtd.java
MARS_Algorithm
MARS_Algorithm.java
MARS_ Properties
MARS_Properties.java
Keterangan Kelas ini merupakan turunan dari kelas javax.swing.JDialog yang menjadi wadah untuk memperlihatkan citra dengan ukuran yang sebenarnya. Kelas ini mengimplementasikan operasi LCG untuk menghasilkan sejumlah angka pseudorandom Kelas ini memodelkan pesan yang akan ditanamkan Kelas ini memodelkan sebuah titik pada piksel Kelas ini memiliki atribut yang memodelkan komponen RGB pada format arsip 24-bit bitmap Kelas ini mengimplementasikan algoritma Steganografi Zhang LSB. Kelas ini mengimplementasikan algoritma MARS. Kelas ini sebagai wadah untuk meletakkan property algoritma MARS
5.1.5 Implementasi Antarmuka Subbab ini berisi gambar-gambar hasil implementasi antarmuka dari perangkat lunak yang telah dibangun. Implementasi antar muka window utama dapat dilihat pada Gambar V-1. Pada Gambar V-1, window utama dibagi menjadi 3 bagian besar yaitu top panel, central panel, dan bottom panel.
Top panel terletak di posisi teratas yang terdiri dari : 1. Tombol “Cover Image”: tombol yang berguna untuk melakukan pemilihan terhadap citra yang akan ditanamkan pesan 2. Tombol “File Message”: tombol yang berguna untuk melakukan pemilihan arsip pesan yang akan ditanamkan 3. Tombol “Stego Image”: tombol yang berguna untuk melakukaan pemilihan citra yang berisi pesan, melakukan pemilihan letak dan nama arsip pesan yang akan diekstrak, dan melakukan proses ekstraksi dan dekripsi dari pesan yang ditanamkan sebelumnya.
V-5
Gambar V-1 Window Utama
Central panel terletak ditengah-tengah dan terdiri dari image panel dan key and information file panel. Key and information file panel terdiri dari: 1. Label “Kunci Metode LCG” 2. Label “Kunci Metode Zhang” 3. Label “Kunci X0” 4. Label “Kunci m LSB” 5. Label “Kunci STMB” 6. TextField “Kunci X0”: komponen yang berfunsi untuk tempat memasukkan kunci X0 (benih untuk menghasilkan sekumpulan piksel)
V-6
7. TextField “Kunci M” : komponen yang berfungsi untuk tempat memasukkan kunci M (jumlah least significant bit yang terlibat) 8. TextField “Kunci STBM”: komponen yang berfungsi untuk menampilkan ukuran piksel yang terlibat pada proses penanaman pesan dan yang berfungsi untuk tempat memasukkan jumlah piksel yang terlibat pada saat pengekstrakan pesan 9. Label “Kunci Metode MARS” 10. Label “Kunci MARS” 11. TextField “Kunci MARS”: komponen yang berfungsi untuk memasukkan kunci MARS 12. Label “Informasi Citra dan Arsip Pesan” 13. Label “Ukuran Maksimal Pesan” : label yang berfungsi untuk menunjukkan ukuran maksimum dari arsip pesan yang ingin ditanamkan 14. Label “Lebar Citra”: label yang berfungsi untuk menunjukkan ukuran lebar sebuah citra 15. Label “Tinggi Citra” : label yang berfungsi untuk menunjukkan ukuran tinggi sebuah citra 16. Label “Ukuran Pesan (byte)” 17. TextField “Ukuran Pesan” : komponen yang menampilkan ukuran pesan yang ditanamkan pada saat mode embedding; dan berfungsi untuk memasukkan nilai ukuran arsip pesan yang ingin diekstrak pada mode extracting. 18. Progress Bar : komponen yang memperlihatkan berapa banyak kemajuan yang telah berlangsung selama proses penanaman pesan dan pengenkripsi pesan; dan juga kemajuan yang telah berlangsung selama proses pengekstrakan pesan dan pendekripsian pesan.
Image panel terdiri dari: 1. Cover Image panel: menampilkan citra yang digunakan untuk penanaman pesan dan ukuran citra yang ditampilkan 200x200 piksel. Apabila diklik akan menampilkan citra dalam ukuran yang sebenarnya. 2. Stego Image panel: menampilkan citra yang digunakan untuk pengekstrakan pesan/citra yang dihasilkan dari proses penanaman pesan dan ukuran citra yang
V-7
ditampilkan 200x200 piksel. Apabila diklik akan menampilkan citra dalam ukuran yang sebenarnya.
Gambar V-2 Menampilkan citra dalam ukuran sebenarnya
Bottom panel terletak di posisi paling bawah dan terdiri dari bottom button panel dan bottom mode panel. Bottom button panel terdiri dari: 1. Tombol “Lakukan Penanaman”: tombol yang berfungsi untuk melakukan proses pengenkripsian, prose penanaman pesan, proses menghasilkan pilihan piksel yang dimodifikasi, dan proses penciptaan stego-image
V-8
2. Tombol “Hitung Maksimal File”: tombol yang berfungsi untuk menghasilkan ukuran arsip yang bisa ditanamkan berdasarkan ukuran kunci M, ukuran lebar citra, dan ukuran tinggi citra.
Bottom mode panel terdiri dari: 1. Label “Mode Operasi” 2. Radio Button ”Penanaman”: komponen yang berfungsi apabila diklik akan berpindah ke mode embedding 3. Radio Button “Pengekstrakan”: komponen yang berfungsi apabila diklik akan berpindah ke mode extracting
Gambar V-3 menunjukkan pesan yang muncul ketika terjadi masukkan yang tidak sesuai dengan harapan.
Gambar V-3 Pesan jika terjadi kesalahan masukkan
Gambar V-2 menampilkan sebuah window terdepan menampilkan citra dalam ukuran yang sebenarnya ketika dilakukan pengklikan pada salah satu komponen image panel
5.2 Pengujian Perangkat Lunak Pengujian meliputi tujuan pengujian, rancangan kasus uji, data pengujian, skenario pengujian, hasil pengujian, dan analisis hasil pengujian.
V-9
5.2.1 Tujuan Pengujian Terdapat beberapa hal yang merupakan tujuan dari pengujian perangkat lunak CombinoZM yang dikembangkan dalam Tugas Akhir ini, yaitu: 1. Memeriksa kesesuaian hasil implementasi perangkat lunak dengan spesifikasi kebutuhan yang ada. 2. Mengukur kualitas stego-image setelah ditanamkan pesan. Kualitas dilihat dengan membandingkan antara cover-image dan steg- image. 5.2.2 Rancangan Kasus Uji Pengujian terhadap perangkat lunak CombinoZM ini terdiri dari tiga kasus uji sebagai berikut 5.2.2.1 Kasus Uji Fungsionalitas Perangkat Lunak Memenuhi tujuan pengujian yang pertama, pengujian fungsionalitas dilakukan untuk memeriksa kesuaian perangkat lunak CombinoZM yang telah diimplementasikan dengan hasil analisis dan perancangan perangkat lunak. Pengujian ini dilakukan untuk memastikan bahwa perangkat lunak CombinoZM telah memenuhi seluruh kebutuhan fungsional yang telah didefinisikan.
Gambar V-4 menunjukkan struktur kasus uji yang akan digunakan dalam pengujian fungsionalitas perangkat lunak. Kategori pesan yang akan ditanamkan dibagi menjadi dua yaitu ukuran yang mendekati ukuran maksimal pesan yang dapat ditanamkan dengan m LSB tertentu dan citra tertentu ; dan ukuran pesan yang jauh lebih kecil dari ukuran maksimal pesan yang dapat ditanamkan dengan nilai m LSB tertentu dan citra tertentu. Ekstensi dari arsip pesan dapat berupa ekstensi apa pun. 5.2.2.2 Kasus Uji Kualitas Stego-Image Pengujian kualitas stego-image juga merupakan pengujian performansi perangkat lunak. Pengujian ini dilakukan untuk mengetahui kualitas citra keluaran hasil proses penanaman, apakah memiliki tingkat kerusakan gambar yang rendah atau tinggi. Kualitas ini diukur dengan membandingkan citra masukan dan citra keluaran. Pembandingan dilakukan dengan dua cara, yaitu dengan penampilan visual dan menggunakan PSNR(Peak Signal-to-Noise Ratio).
V-10
Gambar V-4 Struktur kasus uji fungsionalitas
PSNR yang digunakan merupakan ukuran untuk menentukan rasio perbedaan piksel di antara dua buah gambar. Persamaan 5.1 menyatakan perhitungan PSNR yang digunakan dalam pengujian perangkat lunak CombinoZM.
(5.1)
dimana nilai MAX1 untuk dokumen citra adalah 255. Sementara nilai MSE dapat dihitung menggunakan persamaan 5.2.
(5.2)
dimana m dan n adalah ukuran dokumen citra, kemudian I(i,j) dan K(i,j) merupakan nilai piksel pada dokumen citra. Persmaan MSE di atas hanya berlaku untuk citra dengan pewarnaan grayscale. Untuk citra RGB, maka setiap nilai red, green, dan blue digunakan dalam persamaan 5.2, kemudian MSE dibagi dengan tiga.
Satuan yang biasanya digunakan untuk pengukuran menggunakan PSNR adalah satuan desibel (dB). Nilai PSNR yang wajar pada pembandingan dua dokumen citra berkisar 30 dB – 50 dB.
V-11
Gambar V-5 menunjukkan struktur kasus uji yang akan digunakan dalam pengujian kualitas stego-image yang dihasilkan. Pengujian dilakukan untuk nilai m LSB dan nilai ukuran arsip pesan yang bervariasi.
Gambar V-5 Struktur kasus uji kualitas stego-image
5.2.3 Data Pengujian Cover-image yang digunakan sebagai pengujian dapat dilihat pada Tabel V-2. Citra yang berasal dari hasil fotografi merupakan citra yang memiliki kontras rendah. Tabel V-2 Data Pengujian Cover-Image
Nama
Ukuran (piksel)
Ukuran (byte)
kontrasRendah
1536x2048
9.437.238
Jenis kontras (tinggi/ rendah) rendah
gedung
1024x768
2.359.350
tinggi
Tampilan
V-12
Nama
kontrasTinggi
301x300
271.254
Jenis kontras (tinggi/ rendah) tinggi
duck
500x546
819.054
tinggi
4.758.582
rendah
786,486
rendah
senyum
lena
Ukuran (piksel)
1024x1549
512x512
Ukuran (byte)
Tampilan
V-13
Arsip Pesan yang digunakan untuk pengujian dapat dilihat pada Tabel V-3 Tabel V-3 Data Pengujian Arsip Pesan
Nama Testing.java Testing.zip JadwalKuliah.docx Kalender_0910.pdf mrh.jpg
Ukuran(byte) 103 207 17.996 54.226 84.265
Jenis ekstensi java zip docx pdf jpg
5.2.4 Skenario Pengujian Untuk memenuhi tujuan pengujian, skenario pengujian yang dilakukan adalah: 1. Melakukan enkripsi pesan dan penanaman pesan ke dalam sebuah cover-image. Kemudian membuat stego-image-nya. 2. Melakukan ekstraksi pesan dari stego-image dan melakukan dekripsi dari pesan yang diekstrak tersebut, sehingga mendapatkan arsip pesan yang sama sebelum dienkripsi dan ditanamkan ke citra. 5.2.5 Hasil Pengujian Pada subbab ini dijelaskan mengenai pelaksanaan pengujian dan hasil pengujian setiap kasus uji yang telah didefinisikan pada subbab 5.2.2. Data pengujian yang digunakan dapat dilihat pada subbab 5.2.3. 5.2.5.1 Pengujian Fungsionalitas Perangkat Lunak Tabel V-5 menunjukkan ringkasan hasil pengujian fungsionalitas perangkat lunak. Hasil pengujian fungsionalitas dapat dilihat di Lampiran D. Tabel V-4 Ringkasan Pengujian Fungsionalitas Perangkat Lunak
Pengujian Proses enkripsi penanaman Proses ekstraksi dekripsi
Kriteria Keberhasilan Status Citra keluaran telah ditanamkan arsip pesan Berhasil yang terenkripsi Perangkat lunak mengeluarkan arsip pesan Berhasil yang diekstraksi dari stego-image dan menghasilkan arsip pesan yang sama dengan arsip pesan yang ditanamkan ke cover-image
V-14
Pengujian Proses penanaman pesan dengan format citra bitmap namun tidak dalam 24-bit Proses penanaman dengan ukuran pesan yang lebih besar dibandingkan dengan kapasitas maksimal ukuran arsip pesan yang dapat ditanamkan Proses ekstraksi dekripsi dengan masukan kunci yang salah
Kriteria Keberhasilan Status Perangkat lunak mengeluarkan pesan bahwa Berhasil format citra bitmap harus memiliki representasi 24-bit Perangkat lunak menampilkan pesan bahwa Berhasil penanaman tidak dapat dilakukan karena ukuran pesan yang lebih besar dibandingkan dengan kapasitas penanaman
Perangkat lunak mengeluarkan arsip pesan Berhasil yang diekstraksi dari stego-image, namun bukan merupakan arsip pesan yang sesungguhnya
5.2.5.2 Pengujian Kualitas Stego-Image Pengujian kualitas stego image dilakukan dengan 2 cara, yaitu 1. Menanamkan sebuah arsip pesan pada beberapa cover-image dengan nilai m LSB yang bervariasi 2. Menanamkan ukuran arsip pesan yang berbeda dan ekstensi yang berbeda dengan nilai m LSB yang sama pada sebuah beberapa cover-image. Hasil pengujian dapat dilihat pada Lampiran D. 5.2.6 Analisis Hasil Pengujian Dari hasil pengujian, perangkat lunak CombinoZM dapat menangani beberapa ekstensi arsip pesan seperti jpg, java (arsip teks), zip, docx, dan pdf. Teknik gabungan steganografi dan kriptografi berjalan sesuai dengan fungsinya masing-masing.
Pemilihan cover-image yang memiliki kontras tinggi dan cover-image yang kontras rendah tidak akan mempengaruhi hasil dari stego-image.
Dari hasil pengujian,
parameter kontras suatu citra tidak mempengaruhi kualitas dari stego-image
yang
dihasilkan. Parameter yang menentukan suatu cover-image akan menghasilkan stegoimage yang baik adalah nilai m LSB yang dipilih.
Seperti yang dijelaskan di atas dan diperkuat dengan Gambar V-6, kualitas stego-image yang dihasilkan bergantung pada nilai m LSB yang dipilih, semakin besar nilai m LSB
V-15
maka kualitas gambar semakin berkurang/rusak. Pada hasil pengujian, bila m LSB lebih besar dari 8 maka akan terdapat bintik-bintik pada stego-image yang dihasilkan. Stegoimage yang baik dapat dihasilkan dengan memilih nilai m LSB lebih kecil dari 8.
Pada saat memilih nilai m LSB yang lebih kecil dengan nilai ukuran arsip pesan yang sama, akan terjadi peningkatan kualitas stego-image
yang dihasilkan. Pesan yang
disebar pada piksel yang lebih banyak dengan pemilihan m LSB ini menyebabkan perubahan yang terjadi pada cover-image semakin sedikit dan semakin meningkat kualitas dari stego-image.
Gambar V-6 Nilai PSNR dengan nilai m LSB yang bervariasi dan ukuran arsip pesan yang sama
Parameter yang juga ikut menentukan kualitas dari stego-image yang dihasilkan adalah ukuran dari arsip pesan yang ingin ditanamkan. Pada pengujian dengan menggunakan PSNR yang ditunjukkan pada Gambar V-7, dihasilkan kesimpulan bahwa semakin besar ukuran arsip pesan yang ditanamkan maka kualitas dari stego-image semakin menurun. Penentuan ukuran arsip yang sangat berbeda jauh dengan ukuran cover-image akan menentukan kualitas dari stego-image yang dihasilkan, seperti yang ditunjukkan oleh hasil pengujian pada cover-image kontrasRendah di Gambar V-6 dan Gambar V-7 , hasil cover image-nya menghasilkan kualitas yang paling baik dari semua hasil coverimage yang ada karena ukuran cover-image-nya paling besar.
Pemilihan ukuran arsip pesan dan ukuran cover-image akan mempengaruhi lamanya proses untuk melakukan penanaman arsip pesan maupun proses sebaliknya. Dari proses besar enkripsi penanaman terdiri dari bagian-bagian proses yang kecil yaitu proses
V-16
pembacaan cover-image, proses pembacaan arsip pesan, proses enkripsi arsip pesan, proses penentuan piksel mana yang akan dimodifikasi, proses transformasi represntasi dari arsip pesan, proses modifikasi piksel yang digunakan untuk menanam arsip pesan, dan proses pembentukan stego-image; proses pembentukan cover-image dan proses modifikasi piksel yang digunakan untuk menanam arsip pesan merupakan proses yang menyumbang waktu terlama dalam proses besar enkripsi penanaman. Sehingga performansi dari CombinoZM akan bergantung dari ukuran cover-image dan ukuran arsip pesan.
Gambar V-7 Nilai PSNR dengan nilai m LSB tetap dan nilai ukuran pesan yang berubah-ubah
Pengukuran performansi untuk proses besar ekstraksi dan dekripsi sama halnya dengan proses besar enkripsi penanaman. Proses besar ekstraksi dekripsi terdiri dari bagianbagian proses yang kecil yaitu proses penentuan piksel mana yang akan dimodifikasi, proses pengekstrakan arsip pesan, proses perubahan representasi arsip pesan, proses dekripsi dari arsip pesan, dan proses pembentukan arsip pesan. Dari bagian kecil tersebut, proses pembentukan arsip pesan adalah proses yang menentukan berapa lama proses besar ekstraksi dekripsi berlangsung.