BAB V IMPLEMENTASI DAN PENGUJIAN Bab ini mengulas tentang proses implementasi perangkat lunak, dari hasil perancangan yang telah dibuat sebelumnya. Selain itu terdapat hasil-hasil pengujian untuk membuktikan kebenaran kinerja perangkat lunak.
5.1 Implementasi Penjelasan implementasi perangkat lunak ini meliputi pembahasan mengenai lingkungan implementasi, implementasi kelas, serta implementasi layar antarmuka dari perangkat lunak.
5.1.1 Lingkungan implementasi Perangkat lunak TangoStego dikembangkan pada perangkat keras Desktop PC Acer dengan spesifikasi sebagai berikut : 1. Processor Intel Pentium 4 CPU 3.00GHz 2. Memory RAM 1GB 3. Harddisk 40GB
Perangkat lunak TangoStego memiliki spesifikasi sebagai berikut : 1. Sistem operasi Microsoft Windows XP atau Windows Vista 2. IDE Netbeans 6.5 3. Java 2 Micro Edition yang menggunakan Java Development Kit 1.6 Update 11 dan Java Runtime Environment 1.6 Update 11. 4. Sun Java Wireless Toolkit 2.5.2 5.1.2 Implementasi kelas Setiap kelas pada perangkat lunak diimplementasikan dalam sebuah bahasa pemrograman Java. Sebuah kelas akan diimplementasikan dalam sebuah file dimana semua kelas tersebut sesuai dengan kelas perancangan yang telah diuraikan pada V-1
V-2
subbab 4.2.2. kecuali pada kelas MediaMP3 ditambahkan satu implementasi kelas khusus menanganin struktur region. Pada TangoStegoMidlet.java, proses yang dilakukan tidak hanya pada pengaturan interface tetapi juga urut-urutan eksekusi proses. Hal ini membuat TangosStegoMidlet memasukkan kelas Pesan, MP3Audio, Kunci dan Library sebagi atribut utama. Adapun daftar file-file implementasi dari rancangan kelas dapat dilihat pada Tabel V-1.
Pada implementasi proses penyembunyian, berkas audio akan menyisipkan sebuah data tambahan yang berupa informasi pesan yang disisipkan yaitu panjang bit pesan dan nama pesan. Informasi ini akan disisipkan secara merata dengan mengambil byte pertama tiap frame. Informasi tidak akan mengalami proses pengacakan seperti proses utama dan nilainya akan digabungkan pada region yang ditempati.
Tabel V-1 Implementasi kelas-kelas perancangan
Rancangan Kelas
Implementasi Kelas
TangoStegoMidlet
TangoStegoMidlet.java
Manager
Manager.java
MP3Audio
MP3Audio.java Region.java
Pesan
Pesan.jva
Kunci
Kunci.java
Library
Library.java
Karena proses penyembunyian pesan dilakukan pada level bit dan satu byte pertama tiap frame telah dipakai untuk menyimpan informasi pesan maka panjang region minimal 2 byte sehingga panjang pesan yang bisa disembunyikan harus lebih kecil daripada setengah datalength frame. Jika dalam analisis panjang bit pesan tidak memenuhi ketentuan maka proses penyembunyian tidak dapat dilakukan dan akan muncul alert peringatan kepada user.
Pada proses penyembunyian pesan pembacaan berkas audio MP3 dilakukan sebanyak dua kali dimana yang pertama untuk menentukan batas-batas frame dan region dan yang kedua untuk penulisan data pada berkas audio. Hal ini disebabkan karena pada
V-3
bahasa pemrograman Java pada J2ME tidak ada library yang bisa melakukan read dan write data secara bersamaan.
Bahasa Java sebenarnya memiliki fungsi pembangkit nilai MD5, tetapi tidak pada J2ME. Oleh karena itu, untuk membangkitkan nilai MD5 sebagai bilangan seed akan menggunakan sebuah library pembangkit nilai MD5 yang dikembangkan pada platform J2ME untuk CLDC. Library ini terdapat pada [MAC08]. 5.1.3 Batasan Implementasi Perangkat lunak TangoStego yang dikembangkan memiliki batasan sebagai berikut : 1. TangoStego mengasumsikan bahwa proses ekstraksi menerima masukan berkas audio MP3 yang memang mengandung pesan rahasia didalamnya sehingga tidak dilakukan penanganan lanjut apabila berkas tidak mengandung pesan 2. Pesan berupa teks yang dimasukkan secara manual dapat ditampilkan ke layar, tidak bisa disimpan ke dalam file. 3. TangoStego tidak membatasi lamanya proses eksekusi penyembunyian dan ekstraksi pesan. 5.1.4 Implementasi Antarmuka Implementasi tampilan pada TangoStego sesuai dengan perancangan pada subbab 4.2.1 sesuai ilustrasi Gambar V-1 dengan tambahan layar konfirmasi dan layar alert penanda error pada setiap kesalahan yang terjadi. Layar informasi menampilkan pesan konfirmasi beserta tombol ‘Yes’ untuk lanjut dan ‘No’ untuk kembali. Layar error akan menampilkan pesan selama jeda tertentu dan secara otomatis kembali ke layar sebelumnya. Pada implementasi juga ditambahkan sebuah layar sebagai pengisi delay waktu pada saat proses dilakukan. Layar ini disebut juga “waiting screen”. Penambahan layar-layar diluar perancangan terlihat pada ilustrasi Gambar V-2.
Layar konfirmasi akan muncul apabila nama file untuk berkas audio keluaran telah ada sehingga dikonfirmasi apakah file tersebut ditimpa atau tidak. Layar error akan muncul apabila salah satu dari hal berikut terjadi : 1. Berkas audio yang dimasukkan tidak valid yaitu selain berkas audio MP3
V-4
2. Terdapat masukan yang belum lengkap pada proses penyembunyian dan ekstraksi 3. Proses penyembunyian tidak berhasil diselesaikan atau mengalami error 4. Memori tidak mencukupi 5. Masukan pesan dan berkas audio tidak memenuhi ketentuan
Gambar V-1 Implementasi Antarmuka Modul Penyembunyian
V-5
TangoStego Data Hiding Hide messages into mp3 file
Data Extraction Extract messages from mp3 file
Exit
Next
Gambar V-2 Implementasi Antarmuka Menu Utama
Gambar V-3 Implementasi Antarmuka Menu Utama
Gambar V-4 Implementasi Antarmuka Layar Konfirmasi, Layar Notifikasi Error, dan Layar Waiting Screen
V-6
5.2 Pengujian Perangkat Lunak Pada Tugas Akhir ini dilakukan pengujian terhadap kebenaran kinerja perangkat lunak yang mencakup proses penyembunyian dan ekstraksi pesan, serta pengujian kualitas kinerja perangkat lunak dari berkas audio keluaran yang dibandingkan dengan berkas audio yang asli. Berikut ini akan dijelaskan mengenai lingkungan pengujian, kasus uji dan hasilnya masing-masing beserta evaluasi dari hasil pengujian. 5.2.1 Lingkungan Pengujian Pengujian dilakukan pada perangkat mobile phone Sony Ericsson K610i yang dapat menjalankan aplikasi Java dengan konfigurasi CLDC 1.1 dan MIDP 2.0, serta dukungan terhadap API JSR 75. Pengujian kualitas audio MP3 digunakan dengan bantuan Perangkat Lunak Cool Edit 2000. 5.2.2 Tujuan Pengujian Tujuan pada pengujian ini adalah sebagai berikut : 1. Menguji kebenaran proses penyembunyian dan ekstrasi pesan pada berkas audio MP3 2. Menguji dampak perubahan noise berkas audio setelah penyembunyian 5.2.3 Data Uji Berikut adalah berkas audio MP3 yang digunakan pada pengujian : 1. Zoe.mp3 dengan ukuran 51,5 KB dan jumlah frame ada 132 2. Kekkaishi.mp3 dengan ukuran 1,616 KB dan jumlah frame 4003 Sedangkan file pesan untuk pengujian adalah : 1. heri.txt berukuran 35 bytes Isi pesan : paul orang baik dan tidak sombong. 2. sindentosca.txt berukuran 1,030 bytes Isi pesan : Intro: G C Am D G Dulu kita sahabat C
V-7
dengan begitu hangat Am D mengalahkan sinar mentari G Dulu kita sahabat C berteman bagai ulat Am D berharap jadi kupu-kupu Am C G Kini kita berjalan berjauh-jauhan Am C G kau jauhi diriku karena sesuatu Am C G mungkin ku terlalu bertingkah kejauhan Am D namun itu karena ku sayang G C Persahabatan bagai kepompong Am D Mengubah ulat menjadi kupu-kupu G C Persahabatan bagai kepompong Am D Hal yang tak mudah berubah jadi indah G C Persahabatan bagai kepompong Am D Maklumi teman hadapi perbedaan G C Persahabatan bagai kepompong Am D na na na na na.. G Semua yang berlalu C Biarkanlah berlalu Am D Seperti hangatnya mentari
V-8
3. a.jpg berukuran 558 bytes
4. images.jpeg berukuran 2,092 bytes
5. nada.mp3 berukuran 2,635 bytes 5.2.4 Kasus Uji Berdasarkan tujuan pengujian yang didefinisikan pada subbab 5.2.2, maka terdapat dua buah kasus pengujian : 1. Kasus uji 1 – Menguji kebenaran proses penyembunyian dan ekstraksi pesan Pengujian ini dilakukan untuk menguji kebenaran proses penyembunyian dan ekstraksi pesan. Caranya adalah menyembunyikan pesan dengan sebuah kunci lalu mengekstraksinya dengan menggunakan kunci yang sama. Pengujian akan berhasil apabila pesan berhasil disembunyikan dan dapat diekstrak kembali dengan benar. 2. Kasus uji 2 – Menguji kualitas berkas audio MP3 keluaran Pengujian ini dilakukan untuk menguji kualitas dari berkas audio keluaran hasil penyembunyian yaitu dengan membandingkan dengan audio berkas yang asli. Pengujian ini memakai dua cara perbandingan yaitu subjektif dan objektif. Pengujian akan berhasil apabila dari masing-masing cara, didapatkan hasil seperti berikut : 1. Pada cara subjektif, audio dianggap masih terdengar jelas 2. Pada cara objektif, perhitungan nilai PSNR (Peak Signal to Noise Ratio) dengan nilai minimal 30 DB. Perhitungan PSNR ini dilakukan dengan memakai rumus persamaan (5-1).
V-9 2 P1 PSNR = 10log10 2 2 P1 + P0 − 2P1P0
(5-1)
Dimana P1 adalah kekuatan sinyal berkas audio setelah proses penyembunyian pesan dan P0 adalah kekuatan sinyal awal. 5.2.5 Hasil Pengujian Berikut adalah hasil pengujian dari kasus uji yang dilakukan beserta evaluasi dari masing-masing kasus uji 1. Kasus uji 1 Kunci yang digunakan pada pada pengujian kasus ini adalah string heri dan berkas MP3 keluaran diberi nama baru sesuai dengan kunci dan nama file pesan. Hasil penyembunyian pesan ini ditunjukkan pada Tabel V-2. Setelah proses penyembunyian selesai, dilakukan proses ekstraksi dari masing-masing berkas audio. Hasil dari proses ekstraksi dapat dilihat dari pada tabel V-2. Kunci yang dimasukkan harus sama dengan proses penyembunyian sehingga pesan yang dihasilkan juga sama. Dari tabel tersebut terlihat ada dua contoh pada kasus uji ini yang tidak sesuai dengan kebenaran yang diharapkan dari kinerja perangkat lunak yaitu kesalahan input kunci pada ekstraksi dan kapasitas data pada masukan pesan yang melebihi ketentuan harus lebih kecil dari setengah jumlah frame berkas audio MP3.
Tabel V-2 Hasil Pengujian Kasus 1 (Penyembunyian Pesan)
Masukan audio
Zoe.mp3
Kekkaishi.mp3
Masukan pesan heri.txt sindentosca.txt a.jpg
Masukan kunci heri heri heri
Keluaran audio zoe-T-heri.mp3 zoe-T-sindentosca.mp3 zoe-G-a.mp3
images.jpeg
heri
Masukan tidak dapat diproses karena berkas audio tidak mencukupi
nada.mp3
heri
heri.txt sindentosca.txt a.jpg images.jpeg nada.mp3
heri heri heri heri heri
Masukan tidak dapat diproses karena berkas audio tidak mencukupi kekka-T-heri.mp3 kekka-T-sindentosca.mp3 kekka-G-a.mp3 kekka-G-images.mp3 kekka-S-nada.mp3
V-10
Tabel V-3 Hasil pengujian kasus 1 (Ekstraksi Pesan)
Keluaran audio
Masukan kunci
Kesimpulan
heri heri heri heri heri
Pesan keluaran heri.txt tapi dengan isi yang tidak valid sindestosca.txt a.jpg heri.txt sindentosca.txt a.jpg
zoe-T-heri.mp3
hero
zoe-T-sinde.mp3 zoe-G-a.mp3 kekka-T-heri.mp3 kekka-T-sinde.mp3 kekka-G-a.mp3 kekka-Gimages.mp3 kekka-S-nada.mp3
heri
images.jpeg
Diterima
heri
nada.mp3
diterima
Tidak diterima Diterima Diterima Diterima Diterima Diterima
Dari hasil pengujian terbukti bahwa TangoStego sudah berhasil menjalankan proses penyembunyian dan ekstraksi dengan benar. Semua pesan yang sesuai ketentuan berhasil disembunyikan lalu dengan kunci yang sama berhasil diekstraksi ke pesan asli. 2. Kasus uji 2 Hasil pengujian pada kasus ini terlihat dari tabel V-4
Tabel V-4 Hasil Pengujian Kasus 2
Berkas audio asli zoe.mp3 P0 = -14.68dB
Kekkai.mp3 P0 = -19.32dB
Objek Steganografi zoe-T-heri.mp3 P1 = -14.49dB zoe-T-sinde.mp3 P1 = -10.92dB zoe-G-a.mp3 P1 = -11.41dB Kekkai-T-heri.mp3 P1 = -19.45dB Kekkai-T-sinde.mp3 P1 = -19.39dB Kekkai-G-a.mp3 P1 = -19.44 Kekkai-G-image.mp3 P1 = -19.42dB Kekkai-S-nada.mp3 P1 = -19.34dB
Hasil Pengujian Subjektif PSNR baik 37.6dB buruk
9.3dB
buruk
10.9dB
baik
43.5dB
baik
48.9dB
baik
44.2dB
baik
45.8dB
baik
59.7dB
V-11
5.2.6 Evaluasi Hasil Pengujian Perangkat lunak yang diimplementasikan telah sesuai dengan spesifikasi kebutuhan perangkat lunak yang telah dipaparkan sebelumnya. Hal ini dibuktikan dengan keberhasilan perangkat lunak dalam melakukan penyembunyian dan ekstraksi pesan, serta pemutaran berkas audio MP3 sebelum dan sesudah penyembunyian.
Pengujian kinerja perangkat lunak menunjukkan hasil yang memuaskan. Kecepatan proses penyembunyian dan ekstraksi tergantung pada besarnya media steganografi yang
digunakan
dan
besarnya
pesan
yang
disembunyikan.
Akan
tetapi,
ketergantungan ini lebih dipengaruhi oleh besar media. Hal ini dikarenakan proses penyembunyian membutuhkan pembacaan media secara menyeluruh terlebih dahulu untuk menganalisis struktur berkas audio tersebut sedangkan pada proses utamanya dibutuhkan pembacaan media sekali lagi untuk pembagian region dan penulisan bit parity region.
Dari hasil pengujian kasus 2 dapat dianalisis bahwa ada keterkaitan nilai objektif PSNR dengan nilai subjektif. Semakin besar nilai PSNR media maka semakin baik pula kualitas audio tersebut secara subjektif. Jika nilai PSNR yang didapat lebih kecil dari 30 dB maka akan terdengar noise yang sangat jelas terdengar oleh telinga manusia. Nilai PSNR ini sendiri dipengaruhi oleh dua hal yaitu besarnya pesan yang disembunyikan dan struktur media steganografi. Semakin besar pesan yang disembunyikan pada media yang sama, maka semakin besar kecil pula nilai PSNR yang didapat. Tapi terkadang nilai ini bisa berubah tergantung dari penyebaran frame dan kecocokannya dengan panjang bit pesan. Jika bit pesan bisa tersebar merata sesuai jumlah frame maka nilai PSNR yang didapat cenderung naik.