BAB IV IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dibahas mengenai implementasi modul aplikasi integrasi kriptografi dan steganografi beserta faktor pendukung yang dibutuhkan oleh sistem, serta hasil pengujian terhadap sistem.
4.1
Implementasi
Implementasi di bagi menjadi 2 (dua) bagian, yaitu implementasi program, dan implementasi interface.
4.1.1 Implementasi Program Aplikasi ini dibuat dengan menggunakan bahasa pemrograman PHP dan MySql sebagai databasenya. Pada bab ini, penulis akan membahas tentang beberapa proses utama yang ada di sistem yang menjadi titik berat penulisan tugas akhir ini, yaitu :
Program enkripsi
Program dekripsi
57
58
4.1.1.1 Program Enkripsi Program enkripsi dalam aplikasi ini meliputi perubahan plainteks menjadi chiperteks (kriptografi) dan penggantian bit yang paling tidak berpengaruh dari gambar (steganografi).
perubahan plainteks menjadi chiperteks (kriptografi) function Enkripsi($plainText,$e,$n){ $isiTeks = ""; $jumlahKarakter = strlen($plainText); $jumlahKarakterMax = ceil($jumlahKarakter/1); for($i=0;$i<$jumlahKarakterMax;$i++){ $karakter = substr($plainText,$i,1); $kode = 0; for($j=0;$j<1;$j++){ $kode = $kode + (ord($karakter[$j]))*bcpow(256,$j); } $kode = bcpowmod($kode,$e,$n); $isiTeks .= $kode." "; } return $isiTeks; }
Program penggantian bit yang paling tidak berpengaruh dari gambar (steganografi) function gantiFull($binaryChiper){ global $r,$g,$b,$width,$height,$imageOutput,$imageOutputTemp; $panjangBiner = strlen($binaryChiper); $x=0; $y=0; for($i=5;$i<=$width;$i++){ for($j=5;$j<=$height;$j++){ if($x > ($panjangBiner-1)){ continue; } $rNew[$i][$j] = gantiBit($r[$i][$j],substr($binaryChiper,$y,1)); $x++; if($x > ($panjangBiner-1)){ $rNew[$i][$j] = $r[$i][$j]; continue; } $gNew[$i][$j] = gantiBit($g[$i][$j],substr($binaryChiper,$y+1,1)); $x++; if($x > ($panjangBiner-1)){ $gNew[$i][$j] = $g[$i][$j]; continue; } $bNew[$i][$j] = gantiBit($b[$i][$j],substr($binaryChiper,$y+2,1)); imagesetpixel($imageOutput,$i,$j,imagecolorallocate($imageOutputTemp,$rNew[$i][$j], $gNew[$i][$j],$bNew[$i][$j])); $y+=3; $x++; if($x > ($panjangBiner-1)){ $bNew[$i][$j] = $b[$i][$j]; continue; } } }
imagepng($imageOutput,"../resource/download/umb.png",0,PNG_NO_FILTER) die("problem saving image"); imagedestroy($imageOutput); return 1; }
or
59
4.1.1.2 Program Dekripsi Program dekripsi dalam aplikasi ini meliputi perubahan stegoteks menjadi chiperteks
(steganografi)
dan
perubahan
chiperteks
menjadi
(kriptografi).
Perubahan stegoteks menjadi chiperteks (steganografi) function GetBiner($r,$g,$b,$height,$width){ $newBin = ""; for($i=5;$i<=$width;$i++){ for($j=5;$j<=$height;$j++){ $redBin = decbin($r[$i][$j]); $greenBin = decbin($g[$i][$j]); $blueBin = decbin($b[$i][$j]); $bin1 = substr($redBin,-1,1); $bin2 = substr($greenBin,-1,1); $bin3 = substr($blueBin,-1,1); $newBin = $newBin.$bin1.$bin2.$bin3; } } if(strlen($newBin)>44){ for($k=0;$k<strlen($newBin);$k++){ if(substr($newBin,$k,44) "00000000000000000000000000000000000000000000" substr($newBin,$k+44,4) != "0000"){ $newBin = substr($newBin,0,$k); } } } return $newBin; }
Perubahan chiperteks menjadi plainteks (kriptografi) function Dekripsi($chiperText,$d,$n){ $isiTeks = ""; $char = split(" ",$chiperText); $jumlahKarakter = count($char);
for($i=0;$i<$jumlahKarakter;$i++){ $code = bcpowmod($char[$i],$d,$n); while(bccomp($code,"0")!=0){ $ascii = $code%256; $code = floor($code/256); $isiTeks .= chr($ascii); } } return $isiTeks; }
== &&
plainteks
60
4.1.2 Implementasi Antar Muka 4.1.2.1 Implementasi Halaman Beranda Ketika aplikasi integrasi kriptografi dan steganografi pertama kali diakses, maka aplikasi akan menampilkan halaman beranda yang berisi informasi singkat mengenai aplikasi ini.
Gambar 4.1 Implementasi Halaman Beranda
4.1.2.2 Implementasi Halaman Enkripsi Jika menu enkripsi diklik, maka aplikasi akan membawa pengguna ke halaman enkripsi yang berisi daftar pengguna aplikasi yang sudah terdaftar
61
Gambar 4.2 Implementasi Halaman Enkripsi
4.1.2.3 Implementasi Halaman Enkripsi Lanjutan
Jika salah satu nama pengguna diklik dalam daftar pengguna yang terdaftar, maka pengguna akan dibawa ke halaman enkripsi lanjutan yang berisi formulir yang meminta pengguna memasukkan plainteks dan penampung.
Gambar 4.3 Implementasi Halaman Enkripsi Lanjutan
62
4.1.2.4 Implementasi Halaman Masuk/Login
Jika menu dekripsi diklik dan pengguna belum masuk ke dalam aplikasi, maka aplikasi akan membawa pengguna ke halaman masuk yang berisi formulir untuk masuk ke aplikasi.
Gambar 4.4 Implementasi Halaman Masuk/Login
4.1.2.5 Implementasi Halaman Dekripsi
Jika menu dekripsi diklik dan pengguna sudah masuk ke dalam aplikasi, maka aplikasi akan membawa pengguna ke halaman dekripsi yang berisi formulir yang meminta pengguna untuk memasukkan stegoteks.
63
Gambar 4.5 Implementasi Halaman Dekripsi
4.1.2.6 Implementasi Halaman Daftar
Jika menu daftar diklik, maka aplikasi akan membawa pengguna ke halaman daftar yang berisi formulir yang harus diisi pengguna agar dirinya dapat dikirimi stegoteks oleh pengguna lain.
Gambar 4.6 Implementasi Halaman Daftar
64
4.2
Pengujian Fungsionalitas Aplikasi Pengujian akan dilakukan dengan menggunakan metode blackbox untuk
lebih memfokuskan pada keperluan fungsional dari aplikasi. Dengan metode ini, maka validitas fungsi akan diuji, apakah menghasilkan keluaran yang sesuai dengan yang diharapkan atau tidak. Pengujian fungsionalitas pada aplikasi ini dilakukan untuk mengetahui apakah aplikasi berjalan sesuai dengan yang telah dirancang. Pengujian dan analisis dari aplikasi ini dititik beratkan pada sukses atau tidaknya proses enkripsi dan dekripsi.
4.2.1 Lingkungan Pengujian Aplikasi ini hosting pada server localhost, sedangkan klien pada aplikasi ini adalah notebook ASUS A42JC-VX178D dengan spesifikasi : -
Intel Core i5 460M 2.53Ghz (up to 2.8Ghz with Intel Turbo Boost)
-
DDR3 4GB
-
HDD 500GB
-
Nvidia G310M 1GB
-
14" WXGA LED 1366*768
65
4.2.2 Skenario Pengujian Pengujian aplikasi ini dilakukan pada tanggal 2 November 2011. Item yang diuji terdiri fungsi enkripsi, fungsi dekripsi. Tabel 4.1Skenario pengujian NO
Item yang
Sifat
diuji
Cara Pengujian
Hasil yang diharapkan
Pengguna mengunggah Normal
1.
Dokumen teks bertipe
Aplikasi mengembalikan hasil
.txt dan penampung
berupa stegoteks
bertipe.png
Fungsi
Pengguna mengunggah
Enkripsi
Dokumen teks bertipe Tidak Normal
Aplikasi akan memberikan
bukan .txt dan
informasi kesalahan
penampung bertipe bukan .png. Normal 2.
Fungsi Dekripsi
Pengguna mengunggah
Aplikasi akan memberikan hasil
stegoteks bertipe .png
berupa plainteks
Pengguna mengunggah Tidak Normal
stegoteks bertipe bukan .png
Aplikasi akan menampilkan informasi kesalahan
4.2.3 Hasil Pengujian Tabel 4.2Hasil pengujian NO
Item yang diuji
Sifat
Cara Pengujian
Hasil yang diharapkan
Hasil Pengujian
Pengguna mengunggah Normal
1.
Dokumen teks bertipe
Aplikasi mengembalikan
.txt dan penampung
hasil berupa stegoteks
Sesuai
bertipe.png
Fungsi
Pengguna mengunggah
Enkripsi Tidak Normal
Dokumen teks bertipe bukan .txt dan penampung bertipe
Aplikasi akan memberikan informasi kesalahan
Sesuai
bukan .png. Normal 2.
Fungsi Dekripsi
Tidak Normal
Pengguna mengunggah
Aplikasi akan memberikan
stegoteks bertipe .png
hasil berupa plainteks
Pengguna mengunggah stegoteks bertipe bukan .png
Aplikasi akan menampilkan informasi kesalahan
Sesuai
Sesuai
66
4.2.4 Analisis Hasil Pengujian Berikut merupakan analisis hasil pengujian dari kedua item (fungsi enkripsi dan fungsi dekripsi) yang telah diuji. 1. fungsi enkripsi, hasil pengujian pada fungsi enkripsi dapat sesuai karena aplikasi telah dirancang agar hanya dapat menerima dokumen teks bertipe .txt dan penampung bertipe .png. 2. fungsi dekripsi, hasil pengujian fungsi dekripsi dapat sesuai karena aplikasi telah dirancang agar dapat hanya menerima stegoteks bertipe .png.