V-1
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
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
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
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
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
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
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
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).
PSNR=10log10 P12 P12+ P02− 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 Masukan pesan Masukan kunci Keluaran audio
Zoe.mp3
heri.txt heri zoe-T-heri.mp3
sindentosca.txt heri zoe-T-sindentosca.mp3
a.jpg heri zoe-G-a.mp3
images.jpeg heri
Masukan tidak dapat diproses karena berkas audio tidak mencukupi
nada.mp3 heri
Masukan tidak dapat diproses karena berkas audio tidak mencukupi
Kekkaishi.mp3
heri.txt heri kekka-T-heri.mp3
sindentosca.txt heri kekka-T-sindentosca.mp3
a.jpg heri kekka-G-a.mp3
images.jpeg heri kekka-G-images.mp3
nada.mp3 heri kekka-S-nada.mp3
Tabel V-3 Hasil pengujian kasus 1 (Ekstraksi Pesan)
Keluaran audio Masukan kunci Pesan keluaran Kesimpulan zoe-T-heri.mp3 hero heri.txt tapi dengan
isi yang tidak valid Tidak diterima zoe-T-sinde.mp3 heri sindestosca.txt Diterima
zoe-G-a.mp3 heri a.jpg Diterima
kekka-T-heri.mp3 heri heri.txt Diterima
kekka-T-sinde.mp3 heri sindentosca.txt Diterima
kekka-G-a.mp3 heri a.jpg Diterima
kekka-G-
images.mp3 heri images.jpeg Diterima
kekka-S-nada.mp3 heri nada.mp3 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 Objek Steganografi Hasil Pengujian Subjektif PSNR zoe.mp3
P0 = -14.68dB
zoe-T-heri.mp3 P1 = -14.49dB
baik 37.6dB
zoe-T-sinde.mp3 P1 = -10.92dB
buruk 9.3dB
zoe-G-a.mp3 P1 = -11.41dB
buruk 10.9dB
Kekkai.mp3 P0 = -19.32dB
Kekkai-T-heri.mp3 P1 = -19.45dB
baik 43.5dB
Kekkai-T-sinde.mp3 P1 = -19.39dB
baik 48.9dB
Kekkai-G-a.mp3 P1 = -19.44
baik 44.2dB
Kekkai-G-image.mp3 P1 = -19.42dB
baik 45.8dB
Kekkai-S-nada.mp3 P1 = -19.34dB
baik 59.7dB
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.