BAB III ANALISIS MASALAH Bab ini membahas analisis terhadap masalah yang terdapat pada Tugas Akhir ini mencakup bagaimana proses penyisipan dan ekstraksi pesan pada citra GIF menggunakan metode adaptif, serta analisis mengenai ukuran pesan yang dapat disisipkan untuk sebuah berkas citra GIF.
3.1
PENYISIPAN PESAN PADA CITRA GIF
Sistem yang dibangun untuk menyisipkan pesan pada citra GIF membutuhkan beberapa masukan, yaitu citra GIF, pesan yang akan disisipkan, dan kunci yang dibutuhkan untuk menjadi nilai seed yang berperan untuk membangkitkan bilangan semu acak.
Gambar III-1 Diagram proses penyisipan pesan pada citra GIF
III-1
III-2
Pada Tugas Akhir ini versi citra GIF yang digunakan adalah GIF89a dan format citra yang digunakan adalah citra berwarna. Format citra
binary image tidak dapat
digunakan karena pada metode ini dibutuhkan citra yang mengandung minimum dua warna. Secara umum sistem untuk melakukan proses penyisipan pesan pada citra GIF menggunakan metode adaptif digambarkan pada Gambar III-1. 3.1.1
Pembangkitan Bilangan Semu Acak
Bilangan semu acak dibutuhkan pada proses penyisipan untuk menjadi acuan piksel mana saja yang akan disisipkan oleh bit pesan. Untuk memenuhi kebutuhan tersebut bilangan semu acak dibangkitkan dengan menggunakan algoritma Linear Congruential Generator (LCG). Pada kasus ini nilai X0 yang digunakan adalah masukan pengguna dan nilai modulus (m) sama dengan ukuran berkas citra GIF yang akan disisipkan pesan, agar tidak terjadi pengulangan bilangan semu acak yang dibangkitkan. Dari nilai m dan X0 yang didapat, nilai a dan b ditentukan menggunakan batasan berikut. 1. 0 ( (
2. 0 ) (
3. 0 ) * (
Elemen impunan bilangan semu acak hasil pembangkitan menggunakan algoritma LCG tidak akan berulang jika nilai-nilai pada persamaan LCG sesuai dengan syarat sebagai berikut [KNU97]. 1. c dan m adalah bilangan relatif prima 2. a – 1 dapat habis dibagi dengan semua faktor bilangan prima dari m
III-3
3. a – 1 adalah kelipatan 4 jika m adalah kelipatan 4 3.1.2
Dekompresi Citra GIF
Sebelum dilakukan proses penyisipan pesan, citra GIF terlebih dahulu didekompresi dan diubah menjadi bentuk bitmap. Hal ini dikarenakan citra GIF menggunakan kompresi LZW yang akan mereduksi bit yang bersifat berulang. Hasil dari dekompresi citra GIF adalah sebuah kode bitmap untuk tiap piksel yang merupakan indeks dari warna palet yang terdapat pada berkas citra GIF tersebut. Proses dekompresi citra GIF akan mengikuti algoritma sebagai berikut. read a character k; output k; w = k; while ( read a character k ) { entry = dictionary entry for k; output entry; add w + entry[0] to dictionary; w = entry; }
3.1.3
Penyisipan Pesan Menggunakan Metode Adaptif
Proses penyisipan pesan menggunakan metode adaptif terdiri dari beberapa tahap, yaitu pemilihan piksel secara semu acak, pencarian nilai paritas warna palet, dan pengecekan nilai paritas dan penyisipan pesan. Setelah dilakukan dekompresi pada citra GIF yang menghasilkan sebuah citra berkode bitmap, maka selanjutnya citra yang digunakan untuk proses penyisipan pesan disebut citra bitmap. 3.1.3.1 Pemilihan Piksel Secara Semu Acak Piksel-piksel pada citra bitmap akan dipilih secara semu acak menggunakan himpunan bilangan semu acak yang dibangkitkan dengan menggunakan algoritma LCG. Sebelumnya piksel-piksel yang terdapat pada citra bitmap akan diberi nomor urut terlebih dahulu, dimulai dari piksel yang terletak paling atas kiri ke kanan, lalu
III-4
ke baris selanjutnya, dari kiri ke kanan, dan begitu seterusnya. Misalnya dibaca sebuah berkas citra bitmap yang mempunyai data seperti berikut. 144 188 218 192 188 225 231 64 238 231 44 252 221 255 161 200
44 205 163 116 218 221 208 238 221 198 252 202 126 0 195 177
198 202 64 218 221 198 238 192 116 245 182 85 252 255 135 227
163 188 218 192 198 231 163 75 238 240 44 252 231 9 16 66
54 211 173 126 225 163 33 238 221 208 252 202 116 28 35 17
198 192 75 218 163 33 238 202 167 245 182 95 252 72 74 32
163 147 157 211 218 182 192 157 54 225 231 211 173 33 75 238 238 231 240 219 54 252 252 211 231 126 176 160 132 72 143 136
198 192 85 218 202 126 238 202 116 245 192 85 252 193 160 28
173 167 218 192 116 231 173 85 238 240 54 252 240 131 162 57
75 211 192 167 225 221 44 238 231 229 252 211 188 8 197 242
198 211 95 218 211 177 238 211 126 252 192 95 252 19 22 34
192 198 218 202 177 231 182 95 238 173 64 252 240 42 39 13
177 218 192 116 225 221 54 238 231 33 252 221 198 92 139 35
198 192 163 54 105 218 218 221 221 177 198 231 238 182 211 105 167 238 252 173 202 75 105 252 252 250 200 176 106 220 40 83
Sekumpulan data piksel pada berkas ini akan diberikan nomor urut, dari atas kiri ke bawah kanan, dengan penomoran dari kiri ke kanan, dimulai dari angka urut 0. Setelah piksel diberikan nomor urut, bilangan semu acak yang telah dibangkitkan menjadi acuan piksel mana yang akan disisipkan pesan. 3.1.3.2 Pencarian Nilai Paritas Warna Palet Pada metode adaptif pesan disisipkan berdasarkan nilai paritas dari warna palet pada suatu piksel yang telah dipilih secara semu acak. Nilai paritas dari warna palet pada citra bitmap akan ditentukan menggunakan persamaan 2, sehingga
domain hasil dari persamaan tersebut adalah 0 atau 1. Sebagai contoh, dari beberapa warna palet pada sebuah berkas citra bitmap dihitung paritasnya sebagai berikut. 554401 R: 85, G: 68, B: 1 85 68 1 2 0
6f4c36 R: 111, G: 76, B: 54 111 76 54 2 1 611c0d R: 97, G: 28, B: 13 97 28 13 2 0
6f2f17 R: 111, G: 47, B: 23 111 47 23 2 1
752f0d R: 117, G: 47, B: 13 117 47 13 2 1
752f17 R: 117, G: 47, B: 23 117 47 23 2 1
III-5
7c7c74 R: 124, G: 124, B: 116 124 124 116 2 0
daa336 R: 218, G: 163, B: 64 218 163 64 2 1
b87c2c R: 184, G: 124, B: 44 184 124 44 2 0
fcb636 R: 252, G: 182, B: 54 252 182 54 2 0
3.1.3.3 Pengecekan Paritas dan Penyisipan Pesan Pengecekan paritas dan penyisipan pesan pada citra bitmap menggunakan metode adaptif terdiri dari beberapa proses, yaitu pengecekan nilai paritas dan modifikasi piksel, dan menambah informasi pesan pada comment extension, yang merupakan fitur dari citra GIF. Sebagai contoh, pesan yang akan disisipkan adalah ‘A’, maka pada awalnya pesan akan diubah menjadi bit pesan, dalam hal ini ‘A’ diubah menjadi
bit pesan 0 0 1 0 1 0 0 1. Berkas citra bitmap yang akan digunakan untuk contoh proses penyisipan adalah Gambar III-2. Setelah pesan diubah menjadi bit pesan, maka proses selanjutnya adalah pengecekan nilai paritas dan modifikasi piksel, dan dilanjutkan dengan menambah informasi tambahan pada comment extension.
Gambar III-2 Contoh citra GIF yang digunakan untuk penyisipan pesan
1. Pengecekan Nilai Paritas dan Modifikasi Piksel Setelah nilai paritas dari warna palet sebuah citra bitmap ditentukan, proses penyisipan pesan berlanjut pada tahap pengecekan paritas. Piksel yang telah dipilih secara semu acak menjadi tempat penyisipan pesan akan dicek nilai paritasnya dengan bit pesan. Jika perbandingan menghasilkan persamaan bit, maka piksel tersebut tidak dimodifikasi dan pengecekan berlanjut kepada piksel selanjutnya. Jika
III-6
terjadi perbedaan bit, maka piksel tersebut akan dimodifikasi warnanya dengan cara mencari
warna
tetangga
terdekat
menggunakan
persamaan
& ' ' ' yang memiliki nilai paritas yang berbeda. Warna tetangga terdekat mempunyai nilai d yang terkecil dibanding warna awal dan jika pada awalnya piksel tersebut mempunyai paritas warna palet 1, maka dicari warna tetangga terdekat yang mempunyai nilai paritas 0. Lalu warna tetangga terdekat tersebut akan menggantikan warna awal pada piksel tersebut. Sebagai contoh pada sebuah proses penyisipan pesan, digunakan variabel 5, dan
1 untuk keperluan persamaan LCG. Nilai seed yang digunakan minimum sebesar
ukuran citra GIF, dalam hal ini ditentukan nilai seed * 6, dan ukuran citra GIF
yang akan disisipkan pesan sebesar 256. Angka-angka tersebut akan dimasukkan ke
dalam persamaan LCG % 5 % 1 256. Persamaan ini menghasilkan himpunan bilangan semu acak A={6,31,156,13,66,75,120,89,190,183,148,229,…}. Bilangan semu acak ini menentukan piksel mana yang akan dipilih menjadi tempat penyisipan pesan. 144 188 218 192 188 225 231 64 238 231 44 252 221 255 161 200
44 198 205 202 163 64 116 218 218 221!! 221 198 208 238 238 192 221 116 198 245 252 182 202 85 126 252 0 255 195 135 177 227
163 188 218 192 198 231 163 75 238 240 44 252 231 9 16 66
54 198 211 192 173 75 126 218 225 163 163 33 33 238 238 202 221 167 208 245 252 182 202 95 116 252 28 72 35 74 $ 17 32
163! 157 218 192 54 231 173 75 238 240 # 54 252 231 176 132 143
147 198 211 192 182 85 157 218 225 202 211 126 33 238 " 238 202 231 116 219 245 252 192 211 85 # 126 252 160 193 72 160 136 28
173 167 218 192 116 231##$ 173 85 238 240 54 252 240 131 162 57
75 198 211 211 192 95 167 218 225 211!" 221 177 44 238 238 211 231 126 229 252 252 192 211 95 188 252 8 19 197 22 242 34
192 198 218 202 177 231 182 95 238 173 ! 64 252 240 42 39 13
177 218 192 116 225 221 54 238 231 33 252 221 198 92 139 35
198 163 105 218 221 198 238 211 167 252 202 $ 105$ 252 200 106 40
192 54 218 221 177 231 182 105 238 173 75 252 250 176 220 83
III-7
Keterangan:
163! : piksel bernomor urut 6 bernilai 163 yg akan disisipkan bit pesan pertama
Setelah ditentukan piksel yang akan disisipkan pesan, maka dicek nilai paritas warna palet dari piksel tersebut. Jika menggunakan contoh pencarian paritas warna palet pada subbab 3.1.2.3, proses pengecekan dan penyisipan pesan adalah sebagai berikut. Pesan : 00101001 Proses pengecekan paritas dan penyisipan pesan: Tabel III-1 Proses pengecekan paritas dan penyisipan pesan Nomor piksel 6
Indeks warna 163
Warna palet 611c0d
Paritas 0
Hasil Modifikasi 0
Keterangan
31
54
6f2f17
1
0
156
173
daa336
1
1
13
177
752f17
1
0
Dilakukan modifikasi
66
221
7c7c74
0
1
Dilakukan modifikasi
75
211
554401
0
0
120
202
6f4c36
1
0
89
231
752f0d
1
1
Dilakukan modifikasi
Dilakukan modifikasi
Dari proses pengecekan paritas dan penyisipan pesan, dapat dilihat bahwa terdapat beberapa piksel yang harus dimodifikasi karena terjadi perbedaan saat perbandingan nilai paritas warna palet. Proses modifikasi piksel adalah dengan cara mencari warna tetangga terdekat pada palet yang mempunyai nilai paritas berbeda. Proses ini diawali dengan
pencarian
warna
tetangga
terdekat
menggunakan
persamaan
& ' ' ' . Diambil contoh modifikasi piksel nomor 31 yang bernilai 157. Untuk membantu proses modifikasi ini, diberikan sebuah palet warna dari Gambar III-2 yang digambarkan pada Gambar III-3. Lebih lengkapnya proses ini akan dijelaskan sebagai berikut.
III-8
Gambar III-3 Palet warna dari Gambar III-2
Warna awal
: 6f2f17 R: 111, G: 47, B: 23
Paritas warna palet
: 111 47 23 2 1
Proses pencarian warna tetangga terdekat (dibatasi pada beberapa warna saja): Tabel III-2 Proses penghitungan jarak warna tetangga terdekat
Warna tetangga 611c0d 752f17 752f0d 894c2c
Jarak (+ & ,- ' ,. - /- ' /. - 0- ' 0. -) 25,632 11,662 6 43,336
Nilai paritas warna tetangga 0 1 1 1
Dari hasil penghitungan warna tetangga terdekat, warna palet 752f0d mempunyai nilai jarak terkecil, namun karena paritas warna ini 1, maka warna ini tidak bisa menjadi warna pengganti piksel nomor 6. Oleh karena itu dicari warna palet dengan jarak terkecil dan paritas yang berbeda, dalam kasus ini bernilai 0. Dihasilkan warna palet 611c0d, yang mempunyai jarak 25,632 dan memiliki nilai paritas 0, yang menjadi warna pengganti untuk piksel nomor 6. Nilai piksel nomor 6 diganti menjadi nilai indeks untuk warna 611c0d, yaitu 163. Setelah semua modifikasi dilakukan, maka berkas citra bitmap akan menjadi sebagai berikut.
III-9
144 188 218 192 188 225 231 64 238 231 44 252 221 255 161 200
44 198 205 202 163 64 116 218 218 --3!! 221 198 208 238 238 192 221 116 198 245 252 182 202 85 126 252 0 255 195 135 177 227
163 188 218 192 198 231 163 75 238 240 44 252 231 9 16 66
54 198 211 192 173 75 126 218 225 163 163 33 33 238 238 202 221 167 208 245 252 182 202 95 116 252 28 72 35 74 $ 17 32
163! 157 218 192 54 231 173 75 238 240 # 54 252 231 176 132 143
147 198 211 192 182 85 157 218 225 202 211 126 33 238 " 238 .41 231 116 219 245 252 192 211 85 # 126 252 160 193 72 160 136 28
173 167 218 192 116 231##$ 173 85 238 240 54 252 240 131 162 57
75 198 211 211 192 95 167 218 225 211!" 221 177 44 238 238 211 231 126 229 252 252 192 211 95 188 252 8 19 197 22 242 34
192 198 218 202 177 231 182 95 238 173 ! 64 252 240 42 39 13
.12 218 192 116 225 221 54 238 231 33 252 221 198 92 139 35
198 163 105 218 221 198 238 211 167 252 202 $ 105$ 252 200 106 40
Keterangan:
163!
" .41
: piksel yang disisipkan pesan : piksel yang dimodifikasi
2. Menambah Informasi Pesan Pada Comment Extension Pada proses penyisipan pesan perlu diketahui pula ukuran pesan yang disisipkan. Citra GIF memiliki fitur comment extension yang merupakan suatu blok pada data stream pada berkas citra GIF yang bertujuan untuk memperbolehkan sistem pengkode citra GIF untuk menambahkan metadata ataupun informasi tambahan mengenai berkas citra GIF tersebut. Informasi yang ditambahkan ke dalam comment extension adalah ukuran pesan dan nama berkas yang berisi pesan yang disisipkan. Hal ini diperlukan untuk memberi informasi akhir pesan kepada sistem pengekstraksian pesan. Informasi akhir pesan akan menjadi batas akhir pembacaan pesan saat proses ekstraksi. Pembacaan pesan akan dilakukan maksimal sebanyak ukuran pesan. Nama berkas pesan yang disisipkan disimpan pada comment extension untuk keperluan pengekstrasian pesan. Pesan tambahan bertipe string yang akan dimasukkan pada sistem saat penyisipan pesan ke dalam citra GIF. Berikut contoh pseudo-code dari penambahan comment extension pada citra GIF.
192 .12 218 221 177 231 182 105 238 173 75 252 250 176 220 83
III-10
write.gif(comment=“1#pesan.txt”);
Angka 1 adalah ukuran pesan, dalam satuan byte, sedangkan “pesan.txt” adalah nama berkas pesan yang disisipkan pada citra GIF. 3.1.4
Kompresi Citra GIF
Setelah dilakukan penyisipan pesan pada citra bitmap, maka akan dilakukan kompresi untuk mengubahnya kembali menjadi citra GIF dengan tambahan comment extension yang sudah dijelaskan pada subbab sebelumnya. Proses kompresi citra GIF mengikuti algoritma sebagai berikut. w = NIL; while ( read a character k ) { if wk exists in the dictionary w = wk; else add wk to the dictionary; output the code for w; w = k; }
3.2
EKSTRAKSI PESAN PADA CITRA GIF
Sistem yang dibangun untuk pengekstraksian pesan pada citra GIF membutuhkan beberapa masukan agar proses ekstraksi pesan dapat berjalan, yaitu stego-object, dalam hal ini citra yang telah disisipkan pesan dan kunci yang digunakan untuk membangkitkan bilangan semu acak. Mengikuti proses penyisipan, proses ekstraksi juga menggunakan format citra GIF89a. Secara umum sistem untuk melakukan proses ekstraksi pesan pada citra GIF menggunakan metode adaptif digambarkan pada Gambar III-4.
III-11
Gambar III-4 Diagram proses ekstraksi pesan pada citra GIF
3.2.1
Dekompresi Citra GIF
Sebelum dilakukan pembacaan informasi pada citra GIF, citra ini sendiri akan didekompresi agar dapat dibaca nilai tiap piksel dalam representasi matriks. Proses dekompresinya sama dengan proses dekompresi pada tahap penyisipan pesan. Elemen dari tiap piksel adalah indeks dari warna palet yang dituju yang terdapat pada palet warna berkas citra GIF tersebut. Hasil dekompresi citra GIF adalah citra berkode bitmap, yang selanjutnya pada subbab ini disebut citra bitmap. 3.2.2
Pembacaan Informasi Pada Comment Extension
Proses ekstraksi dimulai dari pembacaan informasi tambahan yang disimpan pada comment extension pada berkas citra GIF, yaitu ukuran pesan dan nama berkas pesan. Informasi ukuran pesan dibutuhkan untuk mengetahui batas akhir pembacaan pesan pada piksel nantinya. Dari komentar yang dituliskan di comment extension yang
III-12
contohnya dijelaskan pada subbab 3.1.2.3.2 didapat bahwa ukuran pesan sebesar 1 byte dan “pesan.txt” adalah nama berkas pesan yang disisipkan. Sehingga dapat ditentukan batas pembacaan pesan adalah saat selesai membaca bit pesan kedelapan. 3.2.3
Pembangkitan Bilangan Semu Acak
Setelah kunci dimasukkan ke dalam sistem, kunci tersebut akan menjadi nilai seed dari persamaan LCG yang berfungsi untuk membangkitkan himpunan bilangan semu acak. Himpunan bilangan semu acak ini memberikan informasi piksel mana yang disisipkan pesan dan menjadi acuan piksel mana yang akan dibaca pada proses pembacaan pesan. 3.2.4
Penelusuran Piksel dan Pengambilan Pesan
Setelah himpunan bilangan semu acak diketahui, maka piksel-piksel yang mempunyai nomor urut sesuai bilangan semu acak yang dibangkitkan akan ditelusuri dan tiap piksel tersebut dicari nilai paritas dari warna paletnya. Sekumpulan nilai paritas warna palet dari piksel-piksel tersebut adalah bit pesan yang akan dikembalikan oleh proses ekstraksi sebagai pesan yang disisipkan. Melanjutkan contoh yang dijelaskan pada subbab 3.1, akan dicontohkan proses
ekstraksi pesan. Dengan menggunakan kunci 256, dan menggunakan berkas citra GIF Gambar III-2 yang telah disisipkan pesan, akan dicontohkan proses penelusuran piksel dan pengambilan pesan.
III-13
Berkas citra yang dibaca: 144 188 218 192 188 225 231 64 238 231 44 252 221 255 161 200
44 205 163 116 218 221 208 238 221 198 252 202 126 0 195 177
198 202 64 218 227 198 238 192 116 245 182 85 252 255 135 227
163 188 218 192 198 231 163 75 238 240 44 252 231 9 16 66
54 211 173 126 225 163 33 238 221 208 252 202 116 28 35 17
198 192 75 218 163 33 238 202 167 245 182 95 252 72 74 32
163 147 157 211 218 182 192 157 54 225 231 211 173 33 75 238 238 231 240 219 54 252 252 211 231 126 176 160 132 72 143 136
198 192 85 218 202 126 238 186 116 245 192 85 252 193 160 28
173 167 218 192 116 231 173 85 238 240 54 252 240 131 162 57
75 211 192 167 225 221 44 238 231 229 252 211 188 8 197 242
198 211 95 218 211 177 238 211 126 252 192 95 252 19 22 34
192 198 218 202 177 231 182 95 238 173 64 252 240 42 39 13
163 218 192 116 225 221 54 238 231 33 252 221 198 92 139 35
198 192 163 163 105 218 218 221 221 177 198 231 238 182 211 105 167 238 252 173 202 75 105 252 252 250 200 176 106 220 40 83
Dengan menggunakan m=256, dilakukan proses pembangkitan bilangan semu acak dengan menggunakan persamaan yang sama dengan persamaan yang digunakan pada proses
penyisipan
pesan,
yaitu
% 5 % 1 256.
Setelah
proses
pembangkitan himpunan bilangan semu acak didapat sebuah himpunan bilangan semu acak A={6, 31, 156, 13, 66, 75, 120, 89, 190, 183, 148, 229, …}. Himpunan bilangan semu acak ini akan menentukan piksel mana yang akan dicari nilai paritas warna paletnya. 144 188 218 192 188 225 231 64 238 231 44 252 221 255 161 200
44 198 205 202 163 64 116 218 218 227!! 221 198 208 238 238 192 221 116 198 245 252 182 202 85 126 252 0 255 195 135 177 227
163 188 218 192 198 231 163 75 238 240 44 252 231 9 16 66
54 198 211 192 173 75 126 218 225 163 163 33 33 238 238 202 221 167 208 245 252 182 202 95 116 252 28 72 35 74 $ 17 32
163! 157 218 192 54 231 173 75 238 240 # 54 252 231 176 132 143
147 198 211 192 182 85 157 218 225 202 211 126 33 238 " 238 186 231 116 219 245 252 192 211 85 # 126 252 160 193 72 160 136 28
173 167 218 192 116 231##$ 173 85 238 240 54 252 240 131 162 57
75 198 211 211 192 95 167 218 225 211!" 221 177 44 238 238 211 231 126 229 252 252 192 211 95 188 252 8 19 197 22 242 34
192 198 218 202 177 231 182 95 238 173 ! 64 252 240 42 39 13
163 218 192 116 225 221 54 238 231 33 252 221 198 92 139 35
198 163 105 218 221 198 238 211 167 252 202 $ 105$ 252 200 106 40
192 163 218 221 177 231 182 105 238 173 75 252 250 176 220 83
III-14
Keterangan: 163!
: piksel yang disisipkan pesan
Setelah piksel-piksel yang disisipkan pesan teridentifikasi, dilakukan penesuluran tiap piksel dan dicari nilai paritas warna palet dari tiap piksel yang dibaca. Piksel yang akan dicari nilai paritasnya mempunyai batas akhir pembacaan, yaitu sebesar ukuran pesan yang didapat pada informasi tambahan yang dibaca pada comment extension. Proses pencarian nilai paritas dijelaskan pada Tabel III-3. Tabel III-3 Proses pencarian nilai paritas piksel Nomor piksel 6
Indeks warna
Warna palet
Paritas
163
611c0d
0
31
163
611c0d
0
156
173
daa336
1
13
163
611c0d
0
66
221
7c7c74
1
75
211
554401
0
120
186
6f4c41
0
89
231
752f0d
1
Proses selanjutnya setelah nilai paritas dari piksel ditemukan adalah pembacaan pesan. Nilai paritas yang ditemukan diurutkan sesuai urutan pembacaan piksel, dan kumpulan nilai paritas tersebut adalah bit-bit dari pesan yang disisipkan. Dari Tabel III-3 didapat bahwa pesan yang disisipkan adalah 00101001. 3.3
ANALISIS UKURAN PESAN YANG DAPAT DISISIPKAN
Pada Tugas Akhir ini pesan disisipkan pada nilai paritas warna palet tiap piksel. Dapat disimpulkan bahwa pada satu piksel maksimum hanya dapat disisipkan satu bit pesan. Sehingga dalam satu buah berkas citra GIF, sebuah pesan dapat disisipkan kedalam citra GIF dengan ukuran maksimum banyaknya piksel dalam berkas tersebut. Perlu diperhatikan bahwa jika pesan yang disisipkan berukuran sebesar
III-15
maksimum ukuran pesan yang dapat disisipkan, bisa berarti citra GIF yang disisipkan pesan mengalami penurunan kualitas yang cukup besar. Ukuran pesan yang dapat disisipkan bergantung pada ukuran berkas citra GIF yang menjadi media penyisipan pesan, makin besar ukuran berkas citra GIF dalam satuan piksel, maka ukuran pesan yang dapat disisipkan pesan adalah sama dengan jumlah piksel yang terdapat pada GIF. Dari hasil analisis ukuran pesan di atas, maka didapat persamaan penghitungan ukuran maksimum pesan sebagai berikut. 5
67 8
Keterangan: p
: ukuran pesan
m : ukuran panjang citra GIF dalam satuan piksel n
: ukuran lebar citra GIF dalam satuan piksel
Dalam persamaan ini ukuran luas piksel dibagi dengan konstanta 8 karena ukuran pesan yang akan dicari adalah dalam satuan byte, sedangkan hasil perkalian panjang dan lebar citra GIF dalam satuan bit.