• Tidak ada hasil yang ditemukan

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.2. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian apakah sistem berhasil melakukan proses penyisipan, kompresi, dekompresi, dan ekstraksi citra pesan menggunakan algoritma Spread Spectrum dan algoritma Huffman. Citra pesan yang akan digunakan adalah citra yang berukuran 60 x 60 piksel dan menggunakan citra cover berukuran 1500 x 1000 piksel.

Tampilan dari citra pesan dan citra cover dapat dilihat pada gambar 4.8 dan gambar 4.9 berikut ini.

Gambar 4.8. Citra pesan 60 x 60 piksel

Gambar 4.8 menampilkan sebuah citra dengan ukuran 500 x 500 piksel.

Gambar 4.9. Citra cover 1500 x 1000 piksel

Gambar 4.9 menampilkan sebuah citra dengan ukuran 1500 x 1000 piksel.

4.2.1. Pengujian Embedding

Pada tahap ini pertama dilakukan dengan cara menekan button "Open Message" untuk menginputkan file citra pesan yang akan diproses. Kemudian tekan button "Random Key"

untuk mengacak kunci LCG. Dan sistem akan menampilkan nilai dari hasil pengacakan kunci. Selanjutnya tekan button "Open Cover" untuk menginputkan citra cover sebagai wadah citra pesan yang akan disisipkan. Setelah itu tekan button "Embed" untuk melakukan proses penyisipan citra pesan kedalam citra cover. Kemudian tekan button "Save Image"

untuk menyimpan citra yang telah dilakukan proses penyisipan. Tampilan dari proses penyisipan dapat dilihat pada gambar 4.10.

Gambar 4.10. Hasil Proses Embedding

Gambar 4.10 menunjukkan hasil penyisipan citra pesan kedalam citra cover.

4.2.2. Pengujian Compression

Pada tahap ini pertama dilakukan dengan cara menekan button "Open Image" untuk menginputkan file citra dimana file yang akan digunakan adalah file "Stego Image".

Kemudian tekan tombol button "Compress" untuk dilakukannya proses kompresi pada citra stego serta menyimpan hasil kompresi dan kamus kompresinya. Dan sistem akan menampilkan informasi-informasi setelah berhasilnya proses kompresi di dalam GroupBox

"info". Tampilan dari hasil proses kompresi dapat dilihat pada gambar 4.11.

Gambar 4.11. Proses Compression

Pada gambar 4.11 dapat dilihat informasi-informasi setelah berhasilnya proses kompresi yaitu, Original Size, Running Time, Compressed Size, Ratio of Compression, Compression Ratio, Space Saving.

4.2.3. Pengujian Decompression

Pada tahap ini pertama dilakukan dengan cara menekan button "Open File" untuk menginputkan file kompresi dan file kamus kompresinya. Kemudian tekan tombol button

"Decompress" untuk dilakukannya proses dekompresi pada file kompresi yang telah dimasukkan sebelumnya. Dan sistem akan menampilkan nilai running time dalam satuan (ms). Tampilan dari hasil proses dekompresi dapat dilihat pada gambar 4.12.

Gambar 4.12. Hasil Proses Decompression

Pada gambar 4.12 menunjukkan file kompresi yang telah didekompresi menghasilkan sebuah citra stego yang sebelumnya telah dilakukan proses kompresi dan sistem juga menampilkan nilai running time dari proses dekompresi tersebut.

4.2.4. Pengujian Extraction

Pada tahap ini pertama dilakukan dengan cara menekan button "Open Stego Image" untuk menginputkan file citra stego. Kemudian tekan button "Open Key" untuk menginputkan kuncil LCG yang telah disimpan sebelumnya. Selanjutnya tekan button "Extract" untuk melakukan proses ekstraksi pada citra stego serta sistem akan menampilkan nilai ukuran panjang dan lebar pesan citra yang telah diekstrak. Tampilan dari hasil proses ekstraksi dapat dilihat pada gambar 4.13.

Gambar 4.13. Hasil Proses Extraction

Pada gambar 4.13 menunjukkan hasil ekstraksi citra stego dimana pada proses ekstraksi citra pesan dapat keluarkan dari citra cover. Dan sistem juga menampilkan nilai running time yang didapat dari proses ekstraksi berlangsung.

4.2.5. Pengujian Comparison

Pada tahap ini pertama dilakukan dengan cara menekan button "Open Image A" dan button

"Open Image B" untuk menginputkan file citra untuk membandingkan kesaaman kedua citra tersebut. Kemudian tekan button "Check" untuk melakukan proses pengecekkan kesamaan kedua citra yang akan dibandingkan dengan menggunakan algoritma MSE dan PSNR. Tampilan dari hasil proses komparasi dapat dilihat pada gambar 4.14.

Gambar 4.14. Hasil Proses Comparison

Pada gambar 4.14 dapat dilihat hasil proses komparasi antara kedua citra, yaitu citra pesan awal dan citra pesan hasil dari proses ekstraksi yang telah dilakukan sebelumnya.

Dapat dilihat hasil dalam skema kerja implementasi algoritma kombinasi steganografi Spread Spectrum dan kompresi Huffman pada penyisipan gambar dalam gambarmenunjukkan kesesuaian citra pesan dengan hasil ekstraksi terakhir. Hal tersebut membuktikan bahwa implementasi diatas memenuhi parameter keutuhan data.

4.2.6. Perhitungan Manual

Berikut ini merupakan proses perhitungan manual dari penyisipan sebuah citra berukuran 2 x 2 piksel yang ada pada gambar 2.5 kedalam citra berukuran 8 x 16 piksel seperti pada gambar 4.15 dibawah ini.

Gambar 4.15. Citra Cover 8 x 16 piksel 1. Pembangkitan Pseudonoise signal :

pembangkitan pseudonoise dengan bibit pembangkitan yang ditentukan berdasarkan kata kunci “ANRI”.

A = 01000001 N = 01001110 

00001111 R = 01010010 

01011101 I = 01001001 

00010100 20 (desimal)

Setelah mendapatkan nilai dari kata kunci (20), nilai tersebut digunakan sebagai bibit awal pembangkitan bilangan acak. Perhitungan pembangkitan bilangan acak sesuai dengan rumus pembangkitan bilangan acak LCG adalah sebagai berikut:

Xn+1 = (aXn + c) mod m dengan ketentuan dimana c dan m relatif prima.

a = 22, c = 5, m = 72 Xn = bilangan bulat ke-n

Perhitungannya adalah sebagai berikut.

X1 = (22 * 20 + 5) mod 72 hasilnya X1 = 13 X2 = (22 * 13 + 5) mod 72 hasilnya X2 = 3 X3 = (22 * 3 + 5) mod 72 hasilnya X3 = 71 X4 = (22 * 71 + 5) mod 72 hasilnya X4 = 55

Selanjutnya dari lima kali penyebaran didapatkan hasil sebagai berikut "13 3 71 55" yang diubah kedalam bentuk biner menjadi “00001101 00000011 01000111 00110111”.

Pseudonoise signal yang akan digunakan adalah :

0000110100000011 0100011100110111

2. Menghitung pesan yang akan disisip dengan menggunakan metode Spread Spectrum : Nilai yang akan disisipkan pada citra cover merupakan nilai RGB dari citra pesan yang dapat dilihat pada gambar 4.16 berikut.

0 1

0

R = 255 G = 255 B = 255

R = 20 G = 150

B = 50

1

R = 100 G = 10 B = 20

R = 0 G = 0 B = 0

Gambar 4.16. Citra Pesan

Kemudian nilai RGB tersebut dilakukan proses pengalian dengan skalarnya yaitu 4, dan kemudian dilakukan perhitungan modulasi yaitu (XOR) dengan nilai pseudonoise signal. Hasil perhitungan ini dapat dilihat pada tabel 4.1 berikut.

Tabel 4.1. Perhitungan Spread Spectrum

Piksel(x,y) Nilai Pengalian skalar 4 Modulasi dengan Pseudo Noise

(0,0) setelah dilakukan Spread Spectrum. Pesan yang akan disisip adalah sebagai berikut.

111100101111110010111000110010001111001011111100101110001100100011110010

3. Penyisipan pesan kedalam citra cover :

Tabel 4.2. Nilai RGB Asli Pada Citra Cover

0 1 2 3 4 5 6 7

3

B = 200 B = 200 B = 200 B = 200 B = 200 B = 200 B = 200 B = 200

Nilai-nilai pesan akan disisipkan kedalam cover dengan menggunakan metode LSB.

Dan berikut hasil penyisipan dapat dilihat pada tabel 4.3 berikut ini.

Tabel 4.3. Hasil Penyisipan Kedalam Citra Cover

0 1 2 3 4 5 6 7

0

00000001 00000001 00000001 00000001 00000001 00000000 00000001 00000000 01100101 01100100 01100100 01100101 01100101 01100101 01100101 01100100 11001001 11001000 11001001 11001001 11001000 11001000 11001001 11001000

1

00000001 00000000 00000000 00000001 00000000 00000000 00000001 00000001 01100101 01100101 01100100 01100101 01100100 01100101 01100101 01100100 11001000 11001000 11001001 11001001 11001001 11001001 11001001 11001000

2

00000001 00000001 00000000 00000001 00000001 00000000 00000001 00000000 01100100 01100101 01100100 01100100 01100100 01100101 01100101 01100101 11001001 11001000 11001001 11001000 11001000 11001001 11001000 11001000

3

00000001 00000001 00000000 00000000 00000001 00000000 00000000 00000000 01100101 01100101 01100100 01100101 01100100 01100101 01100100 01100100 11001001 11001001 11001001 11001001 11001000 11001001 11001001 11001000

4

00000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 01100100 01100101 01100101 01100100 01100101 01100100 01100100 01100100 11001000 11001001 11001000 11001000 11001000 11001001 11001001 11001000

5

00000000 00000001 00000001 00000001 00000001 00000001 00000000 00000001 01100100 01100100 01100101 01100101 01100101 01100100 01100100 01100100 11001001 11001001 11001001 11001001 11001000 11001000 11001001 11001000

6

00000000 00000000 00000000 00000001 00000000 00000001 00000000 00000001 01100101 01100101 01100100 01100100 01100101 01100100 01100100 01100100 11001000 11001000 11001001 11001000 11001001 11001000 11001001 11001001

7

00000001 00000001 00000000 00000001 00000000 00000001 00000000 00000001 01100101 01100101 01100100 01100100 01100101 01100101 01100100 01100101 11001001 11001001 11001000 11001000 11001001 11001001 11001000 11001001

8

00000000 00000000 00000001 00000001 00000000 00000001 00000000 00000000 01100100 01100100 01100100 01100101 01100100 01100100 01100100 01100100 11001000 11001000 11001001 11001001 11001001 11001001 11001001 11001000

9

00000000 00000001 00000001 00000000 00000001 00000001 00000000 00000000 01100100 01100100 01100101 01100100 01100101 01100100 01100100 01100101 11001001 11001001 11001000 11001000 11001000 11001000 11001000 11001001

10

00000001 00000001 00000001 00000001 00000000 00000001 00000000 00000001 01100100 01100100 01100101 01100100 01100101 01100100 01100100 01100100 11001001 11001001 11001001 11001000 11001001 11001000 11001001 11001001

11

00000000 00000000 00000000 00000001 00000001 00000000 00000001 00000001 01100100 01100101 01100100 01100100 01100100 01100100 01100101 01100101 11001000 11001001 11001000 11001000 11001000 11001000 11001000 11001001

12

00000000 00000000 00000000 00000000 00000000 00000001 00000000 00000001 01100100 01100101 01100101 01100100 01100100 01100100 01100100 01100101 11001000 11001001 11001000 11001000 11001001 11001001 11001000 11001001

13

00000000 00000001 00000001 00000000 00000001 00000001 00000000 00000000 01100100 01100100 01100101 01100100 01100101 01100100 01100100 01100101 11001001 11001001 11001000 11001000 11001000 11001000 11001000 11001001

14

00000000 00000000 00000001 00000000 00000000 00000001 00000000 00000001 01100101 01100100 01100101 01100101 01100101 01100100 01100100 01100100 11001000 11001001 11001000 11001001 11001001 11001000 11001001 11001001

15

00000000 00000000 00000001 00000001 00000000 00000001 00000001 00000001 01100100 01100100 01100101 01100100 01100101 01100100 01100101 01100101 11001000 11001000 11001000 11001000 11001001 11001000 11001000 11001001

16

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100 01100100 01100100 01100100 01100100 01100100 01100100 01100100 11001000 11001000 11001000 11001000 11001000 11001000 11001000 11001000

17

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100 01100100 01100100 01100100 01100100 01100100 01100100 01100100 11001000 11001000 11001000 11001000 11001000 11001000 11001000 11001000

Pada tabel 4.3 pesan dapat dilihat pada biner terakhir yang dituliskan dengan warna merah.

4. Proses Kompresi dan Dekompresi Huffman :

Pada bagian ini citra cover yang telah disisip akan dilakukan proses kompresi dengan metode Huffman. Nilai yang akan dikompresi merupakan nilai asli dari citra tersebut.

Berikut ini adalah nilai asli dari citra stego.

137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 0 8 0 0 0 16 8 2 0 0 0 164 232 169 42 0

Nilai diatas merupakan nilai desimal dari citra stego. Selanjutnya dilakukan proses pencarian code word untuk setiap masing-masing nilai diatas. Hasil pencarian code word dapat dilihat pada tabel 4.4 berikut ini.

Tabel 4.4. Codeword Huffman

Nilai Codeword Frekuensi Panjang

Codeword Panjang*Frekuensi

4 0010111 1 7 7

232 1100000 1 7 7

Pada tabel 4.4 didapatkan nilai codeword yang merupakan hasil pembentukkan dari hasil pohon Huffman. Selanjutnya setiap nilai asli pada citra cover digantikan dengan nilai codeword sesuai dengan yang tertera pada tabel 4.4 sehingga akan didapatkan string bit hasil kompresi sebagai berikut.

Selanjutnya string bit diatas akan dibagi setiap delapan karakter, tetapi karena pada karakter terakhir hanya memiliki 4 karakter maka ditambahkan karakter "1" sebanyak 4 sehingga menghasilkan panjang 8 dan ditambahkan nilai 4 pada akhir string bit untuk menyatakan bahwa ada penambahan 4 karakter baru pada string bit diatas. Dan berikut adalah hasil string bit setelah penambahan karakter baru.

011001001000100000110000011111100111101000110011111010101010111110011011

Dan berikut ini adalah hasil kompresi dalam bentuk nilai desimal.

100 136 48 126 122 51 234 175 155 5 168 149 120 171 247 130 213 15 129 193 202 179 20 64 64 136 120 107 13 69 213 104 135 74 221 167 188 138 12 85 229 104 73 69 175 164 215 210 115 41 99 117 53 30 219 93 18 27 70 172 173 252 223 255 91 246 54 43 142 251 126 207 248 238 157 140 127 187 187 187 187 187 187 187 46 39 47 83 54 205 171 230 3 85 108 128 61 72 1 58 255 4

Pada proses dekompresi nilai desimal diambil kembali dan kemudian dirubah kedalam bentuk string bit dengan melakukan pembuangan sesuai dengan nilai terakhir dan kemudian string bit tersebut dilakukan penggantian sesuai dengan tabel 4.4.

5. Perhitungan Pengekstrakan Citra Stego :

Pada proses ini metode perhitungan tidak memiliki perbedaan yang begitu jauh dengan proses penyisipan. Pada proses ini diambil kembali pesan yang disisipkan dengan metode LSB sejumlah pesan yang disisipkan. Berikut ini adalah pesan yang dilakukan proses

Pada pesan diatas dilakukan proses demodulasi (XOR) dengan pseudonoise signal dan pembagian dengan skalarnya dapat dilihat pada tabel 4.5 berikut.

Tabel 4.5. Proses Spread Spectrum

Piksel(x,y) Pesan Demodulasi dengan Pseudonoise Signal Nilai

(0,0)

11110010111111001011100011001000 11111111111111111111111111111111 255 11110010111111001011100011001000 11111111111111111111111111111111 255 11110010111111001011100011001000 11111111111111111111111111111111 255

(1,0)

00001101000011000100100000110111 00000000000011110000111100000000 20 11111101000011000100100011000111 11110000000011110000111111110000 150 00001101111111000100011111000111 00000000111111110000000011110000 50

(0,1)

00000010111100110100100000110111 00001111111100000000111100000000 100 00001101000000111011011111000111 00000000000000001111000011110000 10 00001101000011000100100000110111 00000000000011110000111100000000 20

(1,1)

00001101000000110100011100110111 00000000000000000000000000000000 0 00001101000000110100011100110111 00000000000000000000000000000000 0 00001101000000110100011100110111 00000000000000000000000000000000 0

Dari perhitungan diatas dapat disimpulkan bahwa semua proses diatas dapat dilakuka

BAB 5

Dokumen terkait