BAB IV
IMPLEMENTASI DAN PENGUJIAN
Pada bagian ini, diberikan gambaran implementasi dan pengujian perangkat lunak AVISteg berdasarkan hasil perancangan perangkat lunak pada Bab III.
4.1 Implementasi
4.1.1.1
4.1.1.2
Penjelasan implementasi perangkat lunak ini meliputi pembahasan mengenai lingkungan implementasi, implementasi arsitektur, implementasi fungsional, serta implementasi layar antarmuka perangkat lunak.
4.1.1 Lingkungan
Implementasi
Perangkat Lunak AVISteg diimplementasikan pada lingkungan perangkat keras dan perangkat lunak sebagai berikut.
Lingkungan Perangkat Keras
Perangkat keras yang digunakan dalam pengembangan perangkat lunak AVISteg adalah seperangkat komputer dengan spesifikasi sebagai berikut :
1. Prosesor Pentium IV 2.26 GHz 2. RAM 256 MB
3. Harddisk 20 GB 4. Monitor 15”
Lingkungan Perangkat Lunak
Perangkat lunak AVISteg dikembangkan pada komputer dengan lingkungan sistem operasi Microsoft Windows XP Professional. Bahasa yang digunakan dalam implementasi perangkat lunak AVISteg adalah bahasa objek Pascal, sedangkan kompilator yang digunakan adalah Borland Delphi 7.0.
4.1.2 Implementasi
Arsitektur
Berdasarkan hasil perancangan arsitektur, diimplementasikan tiga buah modul dalam perangkat lunak AVISteg disertai modul utama dan modul-modul non fungsional. Implementasi modul dalam Borland Delphi menggunakan unit-unit dalam file berekstensi *.pas. Dalam unit-unit tersebut, terdapat fungsi dan prosedur yang digunakan untuk fungsionalitas suatu modul. Pemetaan modul-modul perangkat lunak AVISteg dalam unit-unit *.pas dapat dilihat pada Tabel IV-1 berikut ini :
Tabel IV-1 Pemetaan Modul dalam Unit Implementasi Perangkat Lunak AVISteg
No. Nama Proses Rancangan Modul Implementasi
0 AVISteg Modul Utama Unit Utama (utama.pas) 1.1 Penyisipan data Modul penyisipan data Unit Steganogafi (proses.pas) 1.2 Ekstraksi data Modul ekstraksi data Unit Steganogafi (proses.pas) 1.1.1
Pembacaan File Media Prosedur OpenFileMedia Prosedur InisiasiOpenFileMedia Prosedur OpenFileMedia
1.1.2 Pembacaan File Data Prosedur OpenFileData Prosedur InisiasiOpenFileData Prosedur OpenFileData
1.1.3 Penyisipan Bit Data Prosedur ProsesSisip Prosedur ProsesSisip 1.1.4 Pembacaan File Media Prosedur OpenFileMedia Prosedur OpenFileMedia 1.1.5 Penulisan File Hasil
Ekstraksi
Prosedur ProsesEkstrak Prosedur ProsesEkstrak Prosedur SaveFile
4.1.3 Implementasi
Fungsional
Penerapan steganografi pada file AVI meliputi dua proses, yaitu proses penyisipan data dan proses ekstraksi data.
4.1.3.1
1.
Proses Penyisipan Data
Proses penyisipan data menerima file AVI sebagai media, file data yang akan disisipkan, dan kunci penyisipan. Aktifitas yang dilakukan pada proses ini adalah :
Konversi AVI ke BMP
Pada proses konversi fileAVI ke BMP, file AVI dijalankan dengan MediaPlayer pada Delphi. Tiap-tiap frame pada file AVI di-copy menjadi file BMP. Sehingga akan diperoleh file-file BMP sebanyak jumlah frame pada fileAVI.
Penulis telah mencoba beberapa metode lain untuk mengkonversi file AVI menjadi BMP, namun proses-proses tersebut mengalami kegagalan dalam hal pengalokasian memori.
2. 3.
4.1.3.2
1. 2. Penyisipan data ke BMPPada proses penyisipan data dari file BMP, pertama-tama dilakukan pengecekan apakah kunci sudah terisi. Jika kunci sudah terisi, maka lanjut ke proses berikutnya. Jika kunci belum terisi, maka akan menampilkan pesan kesalahan.
Proses selanjutnya adalah menyisipkan bit-bit data ke dalam kumpulan fileBMP yang dihasilkan pada langkah (1) untuk bit yang bersesuaian. Kunci disisipkan pada file BMP pertama, sedangkan data rahasia disembunyikan pada file-file berikutnya.
Konversi BMP ke AVI
Penulis telah mencoba beberapa metoda untuk mengkonversi file-file BMP menjadi sebuah file AVI. Namun proses-proses tersebut mengalami kegagalan dalam hal pengalokasian memori.
Proses Ekstraksi Data
Proses ekstraksi data menerima file AVI yang telah disisipi data dan kunci ekstraksi. Aktifitas yang dilakukan pada proses ini adalah :
Konversi AVI ke BMP
Karena pada proses penyisipan data, penulis tidak melakukan proses konversi file BMP ke AVI, maka masukan dari proses ekstraksi data ini bukan file AVI, melainkan kumpulan file BMP. Sehingga tidak ada proses konversi file AVI menjadi file BMP pada proses ekstraksi data.
Ekstraksi data dari BMP
Pada proses ekstraksi data dari file BMP, pertama-tama dilakukan pengecekan apakah kunci yang dimasukkan untuk proses ekstraksi sama dengan kunci yang tersimpan pada file BMP pertama.
Jika kunci sudah sesuai, proses selanjutnya adalah mengambil bit data pada file BMP kedua dan seterusnya, kemudian mengubahnya menjadi karakter untuk digabungkan dan disimpan di suatu media penyimpanan.
4.1.4 Implementasi
Layar
Antarmuka
Implementasi antarmuka dikembangkan dengan pendekatan metode berorientasi objek. Hal ini dilakukan karena adanya kemudahan pengaturan komponen visual pada kompilator Borland Delphi 7.0. Antarmuka AVISteg diimplementasikan dalam bentuk kelas jendela (window). Komponen masukan-keluaran visual diimplementasikan dari kelas-kelas visual dasar yang disediakan Borland Delphi 7.0. Rancangan antarmuka pada AVISteg diimplementasikan dalam modul-modul yang dapat dilihat pada tabel IV-2.
Tabel IV-2 Pemetaan Rancangan Layar dengan Implementasi
Modul Layar Implementasi
Unit Utama (utama.pas) Layar Utama Layar Buka File
Kelas TformUtama Kelas TopenDialog Unit Perihal (perihal.pas) Layar Perihal Kelas TaboutBox Unit Bantuan
(bantuan.pas)
Layar Bantuan Kelas TformBantuan
4.1.4.1 Layar Utama
Layar utama diimplementasikan sebagai berikut.
Gambar IV-1 Implementasi Layar Utama
Layar utama diimplementasikan dalam unit Utama. Dalam unit ini terdapat implementasi:
1. Kelas TFormUtama, merupakan kelas implementasi layar utama. Melalui layar ini, perangkat lunak berinteraksi langsung dengan pengguna. Masukan berupa perintah dari pengguna diterima melalui layar utama ini. Layar utama menerima
perintah membuka file media, membuka file data, membaca kunci, menyisipkan data, mengekstraksi data, menampilkan perihal dan bantuan, dan keluar dari aplikasi.
2. Kelas TOpenDialog, merupakan kelas implementasi layar Buka File. Pengguna memberikan masukan berupa nama file yang akan dibuka melalui layar ini.
3. Kelas TSaveDialog, merupakan kelas implementasi layar Simpan File. Pengguna memberikan masukan berupa nama file yang akan disimpan melalui layar ini.
4.1.4.2
4.1.4.3
4.2 Pengujian
Layar Perihal
Layar Perihal diimplementasikan dalam unit Perihal yang berisi Kelas TAboutBox, merupakan kelas implementasi layar Perihal.
Layar Bantuan
Layar Bantuan diimplementasikan dalam unit Bantuan yang berisi Kelas TformBantuan, merupakan kelas implementasi layar Bantuan.
Pada bagian ini dilakukan pengujian terhadap perangkat lunak yang telah diimplementasikan. Kemudian hasil pengujian dianalisis untuk menentukan pencapaian tujuan pengujian berdasarkan kriteria pengujian.
4.2.1 Tujuan
Pengujian
Pengujian dilakukan untuk membuktikan kebenaran dan kesesuaian aplikasi dengan spesifikasi perangkat lunak pada bagian analisis. Melalui pengujian ini akan dinyatakan apakah implementasi perangkat lunak memenuhi spesifikasi kebutuhannya.
Selain itu, pengujian juga dilakukan untuk mengetahui kinerja perangkat lunak. Melalui pengujian ini diharapkan dapat muncul rekomendasi mengenai tata cara serta kondisi pemakaian perangkat lunak agar memberikan kualitas kinerja yang optimal.
4.2.2 Kriteria
Pengujian
Pengujian kebenaran perangkat lunak dan kesesuaian dengan spesifikasinya dinyatakan berhasil jika aplikasi mampu menjalankan fungsi-fungsi berdasarkan spesifikasi secara benar. Sebaliknya pengujian dinyatakan gagal jika ada fungsi perangkat lunak dalam spesifikasi yang tidak dapat dijalankan pada proses pengujian. Jika pengujian dinyatakan gagal, maka hasil implementasi aplikasi secara keseluruhan dinyatakan tidak benar dan tidak sesuai dengan spesifikasi kebutuhan.
Pengujian kemampuan perangkat lunak dinyatakan berhasil bila aplikasi berjalan secara normal dalam berbagai kasus uji. Pada pengujian ini, kegagalan eksekusi aplikasi pada kondisi uji yang diberikan menyatakan batas kinerja perangkat lunak. Jika hasil pengujian dinyatakan gagal, tidak berarti implementasi aplikasi gagal tetapi artinya adalah aplikasi tidak dapat berjalan normal pada kondisi tersebut. Kondisi ini yang akan menjadi rekomendasi batasan kinerja aplikasi.
4.2.3 Rancangan Hasil Uji
Rancangan kasus uji dibuat agar pengujian dapat terstruktur dan mencakup seluruh kriteria pengujian di atas. Kasus uji dirancang berdasarkan kriteria pengujian.
4.2.3.1
1. 2.
3.
4.2.3.2
Kasus Uji Kebenaran Perangkat Lunak
Kasus uji ini dibuat untuk membuktikan kebenaran dan kesesuaian aplikasi dengan spesifikasi kebutuhannya.
Penyisipan sebuah file data ke dalam sebuah file video.
Ekstraksi sebuah file video yang telah disisipi data untuk mendapatkan file data yang valid.
Pemutaran file video baik sebelum file disisipi data maupun setelah file disisipi data.
Kasus Uji Kinerja Perangkat Lunak
Pengujian aplikasi dilakukan dengan variasi ukuran dan format file data untuk disisipkan ke dalam file video yang sama. Ukuran file data dalam pengujian adalah 1 KB, 3 KB, 7 KB, dan 25 KB. Pengujian ini dibuat untuk mengetahui ukuran data yang optimal dalam proses penyisipan serta untuk mengukur kualitas file video setelah disisipi data.
4.2.4 Pelaksanaan
Pengujian
Pengujian dilakukan dalam lingkungan sistem operasi Windows XP Profesional dengan spesifikasi perangkat keras sebagai berikut :
1. Prosesor Pentium IV 2.26 GHz 2. RAM 256 MB 3. Harddisk 20 GB 4. Monitor 15”
4.2.4.1
1. 2. 3. 4.4.2.4.2
1.Pengujian Kebenaran Perangkat Lunak
Pengujian dilakukan secara sekuensial, dimulai dengan menjalankan aplikasi AVISteg.
Pemutaran file AVI sebelum disisipi data. Proses pengujian sebagai berikut. a. Masukkan nama file AVI yang akan disisipi data
b. Putar file AVI
Penyisipan sebuah file data ke dalam sebuah file AVI. Proses pengujian sebagai berikut.
a. Masukkan nama file data yang akan disisipkan b. Masukkan kunci
c. Lakukan proses penyisipan
d. Simpan file AVI yang telah disisipi data.
Pemutaran file AVI setelah disisipi data. Proses pengujian sebagai berikut. a. Masukkan nama file AVI yang akan diekstraksi
b. Putar file AVI
Ekstraksi sebuah file AVI yang telah disisipi data untuk mendapatkan file data yang valid. Proses pengujian sebagai berikut.
a. Masukkan kunci yang sama dengan kunci saat melakukan penyisipan b. Lakukan proses ekstraksi
c. Simpan file data hasil ekstraksi.
Pengujian Kinerja Perangkat Lunak
Pengujian aplikasi dilakukan dengan menggunakan berbagai ukuran dan format file data untuk kasus penyisipan ke file AVI yang sama.
2. 3. 4. 5. 1. 2.
Pengujian kedua menggunakan file media “clock.avi”. Pengujian ketiga menggunakan file media “lizard.avi”. Pengujian keempat menggunakan file media “sharon.avi”. Pengujian kelima menggunakan file media “google5.avi”.
Pengukuran kualitas file AVI ditinjau secara subjektif dan objektif.
Pengukuran secara subjektif dilakukan dengan mengamati gambar fileBMP asli dan fileBMP yang telah disisipi data.
Pengukuran secara objektif dilakukan dengan:
a. Menghitung kecepatan penyisipan data.
Kecepatan (data rate) dihitung dengan rumus:
di mana DR menyatakan kecepatan dalam satuan kbps (kilobytespersecond), D menyatakan ukuran berkas data (dalam byte) dan t menyatakan waktu proses (dalam milidetik).
b. Menghitung nilai PSNR (Peak Signal to Noise Ratio).
PSNR sangat umum digunakan sebagai ukuran kualitas dalam kompresi gambar, suara, dan video digital. PSNR sangat mudah didefinisikan dengan cara menghitung Mean Squared Error (MSE) terlebih dahulu, dimana gambar asli dinyatakan sebagai f(x,y) yang terdiri dari N × N pixel dan gambal hasil pengolahan adalah g(x,y), dengan persamaan berikut:
(4-1)
Besaran PSNR dalam satuan desibel (dB) dihitung dengan menggunakan persamaan:
(4-2)
4.2.5 Hasil
Pengujian
Setiap proses pengujian dilakukan minimal sebanyak satu kali dan dicatat hasilnya. Sebuah kasus uji akan diulang proses pengujiannya jika hasilnya meragukan. Untuk pengujian yang dilakukan beberapa kali, maka hasil pengujian yang dicatat adalah hasil terbaik dari beberapa pengujian tersebut.
4.2.5.1 Hasil Pengujian Kebenaran Perangkat Lunak
Hasil pengujian kebenaran perangkat lunak dapat dilihat dalam tabel IV-3. Proses ekstraksi dinyatakan berhasil jika file data yang dihasilkan valid. File hasil ekstraksi dinyatakan valid jika sesuai dengan data sebelum disisipkan dan dapat dibuka atau dijalankan sebagaimana mestinya.
Tabel IV-3 Hasil Pengujian Kebenaran Perangkat Lunak
No. Proses Hasil Keterangan
1 Pemutaran file AVI sebelum disisipi data
Berhasil
2 Penyisipan data Gagal Data berhasil disimpan dalam kumpulan file BMP, tetapi tidak berhasil disimpan dalam file AVI
3 Pemutaran file AVI setelah disisipi data
Gagal Karena hasil penyisipan data adalah kumpulan file BMP, maka tidak dapat diputar
4 Ekstraksi untuk mendapatkan data valid
Berhasil Data valid berhasil didapatkan dari kumpulan file BMP
4.2.5.2 Hasil Pengujian Kinerja Perangkat Lunak
Hasil pengujian kinerja perangkat lunak dapat dilihat dalam tabel IV-4. Penjelasan parameter tabel tersebut sebagai berikut:
File data : adalah nama file data
Ukuran data : adalah ukuran file data dalam satuan byte
Waktu penyisipan : adalah lama penyisipan data dalam satuan detik
Kecepatan penyisipan : adalah banyak byte data yang disisipkan per satuan waktu, kecepatan diukur dalam satuan kbps.
Kualitas gambar : adalah kualitas gambar kumpulan fileBMP yang dinilai secara subjektif oleh pengamat.
PSNR : adalah perbandingan kuadrat kekuatan sinyal rata-rata kumpulan file BMP setelah disisipi data dengan selisih kekuatan sinyal sebelum dan setelah disisipi data (persamaan 4-2), PSNR diukur dalam satuan desibel (dB).
Tabel IV-4 Hasil Pengujian Kinerja Perangkat Lunak
No. Nama File Ukuran Data Waktu Penyisipan Kecepatan Penyisipan Kualitas Gambar PSNR
1 tes.txt 1 KB 4.23 detik 0.236 kpbs Baik 33.103 dB 2 ITB.jpg 3 KB 4.70 detik 0.638 kpbs Baik 32.167 dB 3 Utama.pas 7 KB 4.93 detik 1.420 kpbs Baik 31.305 dB 4 Data.doc 25 KB 5.02 detik 4.980 kpbs Baik 30.181 dB
Ukuran file AVI adalah 35 KB.
Tabel IV-5 Hasil Pengujian Kinerja Perangkat Lunak
No. Nama File Ukuran Data Waktu Penyisipan Kecepatan Penyisipan Kualitas Gambar PSNR
1 tes.txt 1 KB 4.62 detik 0.216 kpbs Baik 33.080 dB 2 ITB.jpg 3 KB 4.77 detik 0.629 kpbs Baik 32.175 dB 3 Utama.pas 7 KB 5.10 detik 1.373 kpbs Baik 29.777 dB 4 Data.doc 25 KB 5.18 detik 4.826 kpbs Baik 28.916 dB
Ukuran file AVI adalah 81 KB.
Tabel IV-6 Hasil Pengujian Kinerja Perangkat Lunak
No. Nama File Ukuran Data Waktu Penyisipan Kecepatan Penyisipan Kualitas Gambar PSNR
1 tes.txt 1 KB 11.09 detik 0.090 kpbs Baik 28.605 dB 2 ITB.jpg 3 KB 11.45 detik 0.262 kpbs Baik 27.256 dB 3 Utama.pas 7 KB 13.37 detik 0.524 kpbs Baik 26.291 dB 4 Data.doc 25 KB 24.14 detik 1.036 kpbs Baik 25.397 dB
Ukuran file AVI adalah 175 KB.
Tabel IV-7 Hasil Pengujian Kinerja Perangkat Lunak
No. Nama File Ukuran Data Waktu Penyisipan Kecepatan Penyisipan Kualitas Gambar PSNR
1 tes.txt 1 KB 42.74 detik 0.023 kpbs Baik 28.300 dB 2 ITB.jpg 3 KB 45.19 detik 0.066 kpbs Baik 27.132 dB 3 Utama.pas 7 KB 46.11 detik 0.152 kpbs Baik 26.245 dB 4 Data.doc 25 KB 46.88 detik 0.533 kpbs Baik 25.360 dB
Ukuran file AVI adalah 1112 KB.
Tabel IV-8 Hasil Pengujian Kinerja Perangkat Lunak
No. Nama File Ukuran Data Waktu Penyisipan Kecepatan Penyisipan Kualitas Gambar PSNR
1 tes.txt 1 KB 503.47 detik 0.002 kpbs Baik 24.008 dB 2 ITB.jpg 3 KB 522.08 detik 0.006 kpbs Baik 21.187 dB 3 Utama.pas 7 KB 540.16 detik 0.013 kpbs Baik 20.624 dB 4 Data.doc 25 KB 569.39 detik 0.044 kpbs Baik 20.846 dB
4.2.6 Analisis Hasil Uji
Perangkat lunak yang diimplementasikan belum sesuai dengan spesifikasi kebutuhan pada bagian analisis dan perancangan. Pada proses penyisipan, data berhasil disimpan dalam kumpulan file BMP, tetapi tidak berhasil disimpan dalam file AVI. Karena hasil penyisipan data adalah kumpulan file BMP, maka data tidak dapat diputar. Data valid berhasil didapatkan dari kumpulan file BMP.
Hasil pengujian kinerja perangkat lunak relatif baik. Waktu penyisipan data bergantung kepada ukuran data yang akan disisipkan. Selain itu, kecepatan penyisipan juga dipengaruhi oleh ukuran file AVI dan kecepatan prosesor pada komputer yang digunakan untuk menjalankan AVISteg. Format data tidak mempengaruhi kecepatan penyisipan. Hal ini disebabkan pembacaan semua tipe file data ke dalam format string biner.
Ukuran tiap file BMP yang dihasilkan adalah 400 x 300 pixel. Tiap pixel dapat disisipi data sebesar 3 bit. Sehingga tiap file BMP dapat disisipi sebanyak 360000 bit data atau 45 kilobyte data. Dengan demikian dalam satu buah file AVI dapat disisipi data sebesar :
d = 45 (n- 1) (4-3)
d : ukuran data yang dapat disisipkan (dalam kilobyte)