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 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.
4.1.1.1 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”
4.1.1.2 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.
IV-1
IV-2
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 unitunit *.pas dapat dilihat pada Tabel IV-1 berikut ini : Tabel IV-1 Pemetaan Modul dalam Unit Implementasi Perangkat Lunak AVISteg No. 0 1.1 1.2 1.1.1
Nama Proses AVISteg Penyisipan data Ekstraksi data
1.1.2
Pembacaan File Data
Prosedur OpenFileData
1.1.3 1.1.4 1.1.5
Penyisipan Bit Data Pembacaan File Media Penulisan File Hasil Ekstraksi
Prosedur ProsesSisip Prosedur OpenFileMedia Prosedur ProsesEkstrak
Pembacaan File Media
Rancangan Modul Modul Utama Modul penyisipan data Modul ekstraksi data Prosedur OpenFileMedia
Implementasi Unit Utama (utama.pas) Unit Steganogafi (proses.pas) Unit Steganogafi (proses.pas) Prosedur InisiasiOpenFileMedia Prosedur OpenFileMedia Prosedur InisiasiOpenFileData Prosedur OpenFileData Prosedur ProsesSisip Prosedur OpenFileMedia 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 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 : 1. Konversi AVI ke BMP Pada proses konversi file AVI 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 file AVI. Penulis telah mencoba beberapa metode lain untuk mengkonversi file AVI menjadi BMP, namun proses-proses tersebut mengalami kegagalan dalam hal pengalokasian memori.
IV-3
2. Penyisipan data ke BMP Pada 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 file BMP yang dihasilkan pada langkah (1) untuk bit yang bersesuaian. Kunci disisipkan pada file BMP pertama, sedangkan data rahasia disembunyikan pada file-file berikutnya. 3. 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.
4.1.3.2 Proses Ekstraksi Data Proses ekstraksi data menerima file AVI yang telah disisipi data dan kunci ekstraksi. Aktifitas yang dilakukan pada proses ini adalah : 1. 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. 2. 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.
IV-4
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 Unit Utama (utama.pas)
Layar Layar Utama Layar Buka File Layar Perihal Layar Bantuan
Unit Perihal (perihal.pas) Unit Bantuan (bantuan.pas)
Implementasi Kelas TformUtama Kelas TopenDialog Kelas TaboutBox 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
IV-5
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 Layar Perihal Layar Perihal diimplementasikan dalam unit Perihal yang berisi Kelas TAboutBox, merupakan kelas implementasi layar Perihal.
4.1.4.3 Layar Bantuan Layar Bantuan diimplementasikan dalam unit Bantuan yang berisi Kelas TformBantuan, merupakan kelas implementasi layar Bantuan.
4.2 Pengujian 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.
IV-6
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 Kasus Uji Kebenaran Perangkat Lunak Kasus uji ini dibuat untuk membuktikan kebenaran dan kesesuaian aplikasi dengan spesifikasi kebutuhannya. 1. Penyisipan sebuah file data ke dalam sebuah file video. 2. Ekstraksi sebuah file video yang telah disisipi data untuk mendapatkan file data yang valid. 3. Pemutaran file video baik sebelum file disisipi data maupun setelah file disisipi data.
4.2.3.2 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.
IV-7
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 Pengujian Kebenaran Perangkat Lunak Pengujian dilakukan secara sekuensial, dimulai dengan menjalankan aplikasi AVISteg. 1. Pemutaran file AVI sebelum disisipi data. Proses pengujian sebagai berikut. a. Masukkan nama file AVI yang akan disisipi data b. Putar file AVI 2. 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. 3. Pemutaran file AVI setelah disisipi data. Proses pengujian sebagai berikut. a. Masukkan nama file AVI yang akan diekstraksi b. Putar file AVI 4. 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.
4.2.4.2 Pengujian Kinerja Perangkat Lunak Pengujian aplikasi dilakukan dengan menggunakan berbagai ukuran dan format file data untuk kasus penyisipan ke file AVI yang sama. 1. Pengujian pertama menggunakan file media “cool.avi”.
IV-8
2. Pengujian kedua menggunakan file media “clock.avi”. 3. Pengujian ketiga menggunakan file media “lizard.avi”. 4. Pengujian keempat menggunakan file media “sharon.avi”. 5. Pengujian kelima menggunakan file media “google5.avi”. Pengukuran kualitas file AVI ditinjau secara subjektif dan objektif. 1. Pengukuran secara subjektif dilakukan dengan mengamati gambar file BMP asli dan file BMP yang telah disisipi data. 2. 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.
IV-9
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. 1
Proses Pemutaran file AVI sebelum disisipi data Penyisipan data
Hasil Berhasil
Keterangan
Gagal
3
Pemutaran file AVI setelah disisipi data
Gagal
4
Ekstraksi untuk mendapatkan data valid
Berhasil
Data berhasil disimpan dalam kumpulan file BMP, tetapi tidak berhasil disimpan dalam file AVI Karena hasil penyisipan data adalah kumpulan file BMP, maka tidak dapat diputar Data valid berhasil didapatkan dari kumpulan file BMP
2
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 file BMP 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).
IV-10
Tabel IV-4 Hasil Pengujian Kinerja Perangkat Lunak No.
Nama File
Ukuran Data
1 2 3 4
tes.txt ITB.jpg Utama.pas Data.doc
1 KB 3 KB 7 KB 25 KB
Waktu Penyisipan 4.23 detik 4.70 detik 4.93 detik 5.02 detik
Kecepatan Penyisipan 0.236 kpbs 0.638 kpbs 1.420 kpbs 4.980 kpbs
Kualitas Gambar Baik Baik Baik Baik
Kecepatan Penyisipan 0.216 kpbs 0.629 kpbs 1.373 kpbs 4.826 kpbs
Kualitas Gambar Baik Baik Baik Baik
Kecepatan Penyisipan 0.090 kpbs 0.262 kpbs 0.524 kpbs 1.036 kpbs
Kualitas Gambar Baik Baik Baik Baik
Kecepatan Penyisipan 0.023 kpbs 0.066 kpbs 0.152 kpbs 0.533 kpbs
Kualitas Gambar Baik Baik Baik Baik
Kecepatan Penyisipan 0.002 kpbs 0.006 kpbs 0.013 kpbs 0.044 kpbs
Kualitas Gambar Baik Baik Baik Baik
PSNR 33.103 dB 32.167 dB 31.305 dB 30.181 dB
Ukuran file AVI adalah 35 KB. Tabel IV-5 Hasil Pengujian Kinerja Perangkat Lunak No.
Nama File
Ukuran Data
1 2 3 4
tes.txt ITB.jpg Utama.pas Data.doc
1 KB 3 KB 7 KB 25 KB
Waktu Penyisipan 4.62 detik 4.77 detik 5.10 detik 5.18 detik
PSNR 33.080 dB 32.175 dB 29.777 dB 28.916 dB
Ukuran file AVI adalah 81 KB. Tabel IV-6 Hasil Pengujian Kinerja Perangkat Lunak No.
Nama File
Ukuran Data
1 2 3 4
tes.txt ITB.jpg Utama.pas Data.doc
1 KB 3 KB 7 KB 25 KB
Waktu Penyisipan 11.09 detik 11.45 detik 13.37 detik 24.14 detik
PSNR 28.605 dB 27.256 dB 26.291 dB 25.397 dB
Ukuran file AVI adalah 175 KB. Tabel IV-7 Hasil Pengujian Kinerja Perangkat Lunak No.
Nama File
Ukuran Data
1 2 3 4
tes.txt ITB.jpg Utama.pas Data.doc
1 KB 3 KB 7 KB 25 KB
Waktu Penyisipan 42.74 detik 45.19 detik 46.11 detik 46.88 detik
PSNR 28.300 dB 27.132 dB 26.245 dB 25.360 dB
Ukuran file AVI adalah 1112 KB. Tabel IV-8 Hasil Pengujian Kinerja Perangkat Lunak No.
Nama File
Ukuran Data
1 2 3 4
tes.txt ITB.jpg Utama.pas Data.doc
1 KB 3 KB 7 KB 25 KB
Ukuran file AVI adalah 16193 KB.
Waktu Penyisipan 503.47 detik 522.08 detik 540.16 detik 569.39 detik
PSNR 24.008 dB 21.187 dB 20.624 dB 20.846 dB
IV-11
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) d : ukuran data yang dapat disisipkan (dalam kilobyte) n : banyaknya frame dalam file AVI tersebut
(4-3)