Utilization filtering to increase capacity message on PVD (Pixel Value Differences) steganography

(1)

(2)

(3)

PEMANFAATAN FILTERISASI UNTUK MENINGKATKAN

DAYA TAMPUNG PESAN PADA STEGANOGRAFI

PIXEL VALUE DIFFERENCES (PVD)

MUHAMAD AZHARI

SEKOLAH PASCA SARJANA

INSTITUT PERTANIAN BOGOR

BOGOR

2012


(4)

(5)

PERNYATAAN MENGENAI TESIS DAN

SUMBER INFORMASI

Saya menyatakan bahwa tesis berjudul Pemanfaatan Filterisasi untuk Meningkatkan Daya Tampung Pesan pada Steganografi Pixel Value Differences

(PVD) merupakan karya saya. Tesis dibuat dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.

Bogor, Agustus 2012

Muhamad Azhari


(6)

(7)

ABSTRACT

MUHAMAD AZHARI. Utilization filtering to Increase Capacity Message on PVD (Pixel Value Differences) Steganography. Under direction of SUGI GURITMAN, and AHMAD RIDHA.

On technique Pixel Value Differences (PVD) steganography before the secret message is inserted, the cover image of the first divided into blocks that do not overlap each other (non-overlapping pixel blocks) The excess value of the pixel is used to determine the amount of message bits that can be inserted. If the difference is large, then the message can be inserted in large numbers and vice versa Image processing operations may affect the difference in value of adjacent pixels in an image Therefore, by applying the filter in the PVD steganography is expected to increase the capacity of the message which is owned by a cover. Filtering done to the cover before the message is inserted. Type of filtration used is blur, emboss, and sharp. Research shows sharp have greatest increase their capacity without degrading performance value of Peak Signal to Noise Ratio (PSNR). Steganography application which developed is used in the process of inserting message, extracting messages, measuring the capacity of the message and PSNR value.


(8)

(9)

RINGKASAN

MUHAMAD AZHARI. Pemanfaatan Filterisasi untuk Meningkatkan Daya Tampung Pesan pada Steganografi Pixel Value Differences (PVD). Dibimbing oleh SUGI GURITMAN dan AHMAD RIDHA.

Steganografi merupakan salah satu teknik yang digunakan dalam pengiriman pesan rahasia. Teknik tersebut bekerja dengan cara menyembunyikan pesan rahasia dalam sebuah media yang disebut cover. Sebuah file cover yang siap untuk dikirim dikenal dengan istilah stego image. Namun, penyembunyian pesan dalam jumlah besar kerap kali menimbulkan distorsi. Sehingga stego image

terlihat menjadi tidak wajar. Teknik Pixel Value Differences (PVD) diterapkan untuk mengatasi distorsi tersebut dengan cara membagi citra cover menjadi blok-blok piksel yang tidak saling tumpang tindih (non-overlapping pixel blocks). Setiap nilai kedua blok piksel cover dihitung selisihnya untuk digunakan dalam menentukan besarnya bit pesan yang akan disisipkan. Selisih piksel yang besar dapat menampung pesan dalam jumlah besar demikian sebaliknya selisih yang kecil hanya memiliki daya tampung yang sedikit.

Upaya peningkatan daya tampung pesan terus dilakukan yaitu dengan melakukan operasi pengolahan citra terhadap cover. Sebelum cover disisipi pesan proses filterisasi diterapkan terhadap citra yang akan dijadikan cover. Jenis filterisasi yang digunakan yaitu blur, emboss, dan sharp. Penelitian membuktikan filter sharp merupakan jenis filter yang paling besar meningkatkan daya tampung pesan tanpa menurunkan capaian nilai Peak Signak to Noise Ratio (PSNR).

Penelitian dilakukan di Laboratorium Net Centric Computing Departemen Ilmu Komputer FMIPA-IPB. Cover yang digunakan pada penelitian berupa citra 24 bit berformat bmp. Adapun pesan yakni citra 24 bit berformat bmp dan plain

teks. Aplikasi steganografi yang dikembangkan pada penelitian ini digunakan dalam proses penyisipan pesan, pengambilan pesan, pengukuran daya tampung pesan dan nilai PSNR.


(10)

© Hak Cipta milik IPB, tahun 2012

Hak Cipta dilindungi Undang-Undang

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan yang wajar IPB.

Dilarang mengumumkan dan memperbanyak sebagian atau seluruh Karya tulis dalam bentuk apa pun tanpa izin IPB


(11)

PEMANFAATAN FILTERISASI UNTUK MENINGKATKAN

DAYA TAMPUNG PESAN PADA STEGANOGRAFI

PIXEL VALUE DIFFERENCES (PVD)

MUHAMAD AZHARI

Tesis

Sebagai salah satu syarat untuk memperoleh gelar Magister Komputer pada

Program Studi Magister Ilmu Komputer

SEKOLAH PASCA SARJANA

INSTITUT PERTANIAN BOGOR

BOGOR

2012


(12)

(13)

Judul Tesis : Pemanfaatan Filterisasi untuk Meningkatkan Daya Tampung Pesan pada Steganografi Pixel Value Differences (PVD)

Nama : Muhamad Azhari

NRP : G651090021

Disetujui, Komisi Pembimbing

Dr. Sugi Guritman Ahmad Ridha, S.Kom, MS

Ketua Anggota

Diketahui,

Ketua Program Studi Dekan Sekolah Pascasarjana

Ilmu Komputer

Dr. Yani Nurhadryani, S.Si, MT Dr. Ir. Dahrul Syah, M.Sc, Agr


(14)

(15)

PRAKATA

Segala puji adalah kepunyaan Allahu azza wa jalla. Shalawat serta salam semoga selalu tercurah kepada Rosulullah Muhammad shalallahu ‘alayhi wassalam, sahabatnya, dan pengikutnya yang setia di atas sunnah beliau hingga akhir zaman. Amin.

Topik yang diangkat pada penelitian ini yakni “Pemanfaatan Filterisasi untuk Meningkatkan Daya Tampung Pesan pada Steganografi Pixel Value Differences (PVD)”. Seiring rampungnya pengerjaan tesis ini penulis mengucapkan terimakasih kepada.

1 Bapak Dr . Sugi Guritman sebagai ketua komisi pembimbing dan Bapak Ahmad Ridha S.Kom, MS sebagai anggota komisi pembimbing yang telah banyak memberikan arahan dalam penelitian dan penulisan tesis.

2 Bapak Endang Purnama Giri S.Kom, M.Kom selaku penguji dan Bapak Toto Haryanto S.Kom, M.Si selaku moderator sidang akhir yang telah memberikan masukan untuk kesempurnaan tesis.

3 Segenap teman-teman Pascasarjana Ilkom IPB khususnya Angkatan XI. 4 Istri dan buah hati tercinta yang selalu sabar menemani pada hari-hari di kala

mengerjakan tesis.

5 Ayah, ibu, dan adik-adik yang memberikan fikiran dan sumbangsihnya dalam penyelesaian tesis ini.

Semoga karya ilmiah yang jauh dari sempurna ini bermanfaat bagi penulis dan juga bagi rekan-rekan yang ingin mempelajari topik yang penulis bahas.

Bogor, Agustus 2012


(16)

RIWAYAT HIDUP

Penulis (Muhamad Azhari) dilahirkan di Jakarta pada 17 Juli 1975 sebagai anak sulung dari pasangan Ir. Bakri Lakatjong, MKom, MT dan Sri Gunarti Harahap. Setelah lulus dari SMAN 34 Jakarta penulis melanjutkan pendidikan tinggi ke universitas Gunadarma Depok pada program studi Teknik Komputer lulus pada tahun 1999 dengan gelar Sarjana Komputer (S.Kom.).

Penulis adalah staf dosen pada program studi Ilmu Komputer Universitas Mulawarman (Unmul) sejak tahun 2006 sampai sekarang. Pada tahun 2009, penulis diterima sebagai mahasiswa Sekolah Pascasarjana program studi Ilmu Komputer IPB. Penelitian berjudul “Pemanfaatan Filterisasi untuk Meningkatkan Daya Tampung Pesan pada Steganografi Pixel Value Differences (PVD)” merupakan tesis yang menjadi tugas akhir untuk memperoleh gelar Magister Ilmu Komputer.


(17)

DAFTAR ISI

Halaman

DAFTAR ISI ... xv

DAFTAR TABEL ... xvii

DAFTAR GAMBAR ... xviii

DAFTAR LAMPIRAN... xix

1 PENDAHULUAN ... 1

1.1 Latar Belakang... 1

1.2 Perumusan Masalah ... 3

1.3 Tujuan Penelitian ... 3

1.4 Ruang Lingkup Penelitian... 3

2 TINJAUAN PUSTAKA... 4

2.1 Steganografi... 4

2.2 Least Significant Bit (LSB) ... 5

2.3 Algoritma LSB ... 6

2.4 Citra 7 2.5 Pengolahan Citra... 8

2.6 Filterisasi ... 10

2.7 Dokumen Bitmap... 11

2.8 Algoritma Pixel Value Difference (PVD) ... 12

2.9 Peak Signal to Noise Ratio (PSNR)... 15

2.10 Pengujian Perangkat Lunak... 16

2.11 Antarmuka Grafis (GUI) ... 16

3 METODE ... 19

3.1 Waktu dan Tempat... 19

3.2 Bahan dan Data... 19

3.3 Perangkat Lunak dan Keras... 19

3.4 Metodelogi Penelitian ... 20

3.4.1 Penyisipan Pesan ... 20

3.4.2 Filterisasi ... 21

3.4.3 Ekstraksi Pesan ... 22

4 HASIL DAN PEMBAHASAN ... 23

4.1 Pembuatan Aplikasi ... 23

4.1.1 Alat dan Data... 23

4.1.2 Algoritme dan Perancangan Aplikasi ... 24

4.1.3 Perancangan Antarmuka Grafis (GUI) ... 27

4.2 Implementasi ... 30


(18)

4.4 Hasil dan Percobaan... 35

4.4.1 Filterisasi ... 37

4.4.2 Hasil Percobaan ... 37

4.4.2.1 PSNR ... 40

4.4.2.2 Daya Tampung Pesan ... 41

5 SIMPULAN DAN SARAN ... 43

5.1 Simpulan ... 43

5.2 Saran ... 43

DAFTAR PUSTAKA ... 44


(19)

DAFTAR TABEL

Halaman

1 Daya tampung pesan pada setiap daerah rentang ... 25

2 Nilai piksel file cover48pix.bmp ... 33

3 Nilai piksel file 4pixel.bmp ... 33

4 Nilai piksel filelayer red file stegoku1.bmp ... 33

5 Nilai piksel file layergreenfile stegoku1.bmp ... 34

6 Nilai piksel file layerblue file stegoku1.bmp... 34

7 Output file testpxpy.m... 34


(20)

DAFTAR GAMBAR

Halaman

1 Proses penyisipan pesan ... 4

2 Penyisipan pesan LSB... 5

3 Model warna RGB dalam koordinat Cartesian... 7

4 Grid piksel citra ... 8

5 Piksel 8 bit RGB ... 9

6 Matriks piksel. ... 9

7 Filterisasi citra dengan matriks 3x3. ... 11

8 Struktur dokumen bitmap ... 11

9 Sistem scanning steganografi PVD... 13

10 Pengembangan GUI pada proses RPL ... 17

11 Lebar jangkauan Rj dengan Wj∈{8, 8, 16, 32, 64, 128} . ... 20

12 Tahapan penyisipan pesan steganografi PVD ... 21

13 Tahapan ekstraksi pesan steganografi PVD ... 22

14 Aliran data proses penyisipan dan ekstraksi pesan... 24

15 Flowchart penyisipan pesan steganografi PVD ... 25

16 Flowchart ekstraksi pesan steganografi PVD ... 27

17 Layout halaman depan... 29

18 Layout halaman penyisipan pesan teks dan image... 30

19 Layout halaman pengambilan pesan ... 30

20 Halaman depan aplikasi steganografi PVD... 31

21 Halaman ekstraksi pesan image aplikasi steganografi PVD ... 32

22 Halaman ekstraksi pesan teks aplikasi steganografi PVD ... 33

23 Citra bakal cover... 37

24 Citra pesan ... 37

25 Visualisasi filterisasi citra airplane.bmp ... 39

26 Visualisasi filterisasi citra baboon.bmp ... 39

27 Visualisasi filterisasi citra fractal.bmp ... 40

28 Visualisasi filterisasi citra pepper.bmp ... 40

30 Capaian PSNR pada cover airplane.bmp ... 41

31 Daya tampung pesan pada tiap filterisasi cover 256x256 piksel ... 42


(21)

DAFTAR LAMPIRAN

Halaman

1 Source code... 47

2 Hasil percobaan cover Airplane.bmp (256x256 piksel)... 70

3 Hasil percobaan cover Baboon.bmp (256x256 piksel) ... 71

4 Hasil percobaan cover Fractal.bmp (256x256 piksel) ... 72

5 Hasil percobaan cover Pepper.bmp (256x256 piksel) ... 73

6 Hasil percobaan cover Airplane2.bmp (512x512 piksel)... 74

7 Hasil percobaan cover Baboon2.bmp (512x512 piksel) ... 75

8 Hasil percobaan cover Fractal2.bmp (512x512 piksel) ... 76


(22)

(23)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Berbagai tindak kejahatan informasi semakin sering terjadi. Kejahatan itu dapat terjadi dalam hitungan detik. Kenyataan tersebut menunjukkan keamanan informasi perlu terus diupayakan. Teknik pengamanan tidak dapat lagi semata-mata hanya mengandalkan pada keamanan fisik namun perlu juga ditunjang dengan teknik-teknik keamanan informasi yang bersifat non-fisik (Guritman 2003).

Tindak kejahatan informasi rawan terjadi dalam proses pengiriman pesan maka diperlukan teknik untuk mengamankannya. Kriptografi dan steganografi merupakan teknik keamanan yang umum digunakan dalam pengiriman sebuah pesan. Kedua teknik tersebut mempunyai perbedaan. Pada teknik kriptografi pesan diacak terlebih dahulu sebelum dikirim sehingga isi pesan tidak dipahami oleh pihak-pihak yang tidak berhak membaca pesan tersebut.

Sementara itu pada steganografi sebuah media dibutuhkan untuk menyembunyikan pesan rahasia, media itu disebut cover. Sebuah file cover yang siap untuk dikirim dikenal dengan istilah stego image. Penyembunyian pesan dalam cover tidak terlihat sehingga tidak menimbulkan kecurigaan bagi pihak-pihak yang tidak berkepentingan (Johnson & Jajodia 1998). Namun, penyisipan pesan dalam jumlah yang besar kerap kali menimbulkan distorsi sehingga stego image yang dihasilkan terlihat tidak wajar (Chang 2004). Oleh karena itu, penerapan steganografi membutuhkan metode yang tepat agar mampu menghasilkan stego image yang memiliki tampilan secara visual/statistical yang wajar, tidak mencurigakan, dan memiliki daya tampung pesan yang mencukupi (Zang & Wang 2005).

Least Significant Bit (LSB) merupakan metode yang umum digunakan dalam steganografi (Bender 1996). Metode ini menyisipkan k bit pesan dalam k

bit LSB cover (Chang 2004). Lindayati (2007) menemukan bahwa pesan mampu disisipkan pada cover sampai sebesar level 4 LSB. Meskipun demikian, implementasi teknik LSB memiliki kelemahan. Pada level 3 saja sudah terlihat distorsi pada stego image yang dihasilkan (Amirtharajan 2010). Sebelumnya Wu


(24)

(2003) mengemukakan bahwa distorsi tersebut besarnya semakin meningkat seiring penambahan level LSB.

Upaya perbaikan dilakukan oleh Wu (2003) melalui teknik Pixel Value Differences (PVD). Sebelum pesan disisipkan ke dalam LSB cover, citra cover

dibagi terlebih dahulu menjadi blok-blok yang tidak saling tumpang tindih (non- overlapping pixel blocks). Setiap blok berisi dua piksel yang saling berdekatan. Kemudian, selisih nilai kedua piksel tersebut digunakan untuk menentukan besarnya bit pesan yang dapat disisipkan. Selisih piksel yang banyak dapat menampung pesan yang besar demikian sebaliknya selisih yang kecil hanya memiliki daya tampung yang sedikit.

Umumnya, dalam sebuah image piksel-piksel menyebar secara berkelompok sehingga pada daerah halus (smooth area) didapati nilai selisih antara piksel-piksel yang berdekatan kecil. Namun, sebaliknya pada daerah kontras (contrast area) nilai selisih antara piksel-piksel yang berdekatan besar. Oleh karena itu, image dengan daerah halus yang luas hanya dapat disisipi sedikit pesan rahasia, sebaliknya image dengan daerah kontras yang luas dapat disisipi banyak pesan (Rojali 2009; Wang et al. 2006).

Sementara itu, penelitian yang dilakukan oleh Kekre et al. (2010), Gopalan dan Shi (2010) menyatakan bahwa pemilihan jenis cover sangat menentukan besarnya kapasitas pesan yang dapat disisipkan. Format file digital yang dapat digunakan sebagai cover dalam steganografi dapat berbentuk image, audio, video, dan multimedia (Sridevi et al. 2009). Penggunaan cover berupa image dengan berbagai jenisnya telah diusahakan untuk meningkatkan kapasitas pesan.

Operasi pengolahan citra terhadap cover belum banyak dilakukan. Salah satu operasi pengolahan citra yang dapat memberikan pengaruh terhadap nilai-nilai piksel dalam sebuah image yakni filterisasi (Pramukanto 2001). Pengaruh tersebut diharapkan dapat meningkatkan daya tampung pesan pada sebuah cover.

Berdasarkan hal tersebut perlu dilakukan penelitian lebih lanjut terhadap media cover yang digunakan untuk steganografi PVD. Oleh karena itu, untuk mengetahui pemanfaatan filterisasi dalam meningkatkan daya tampung pesan pada cover steganografi PVD maka penelitian ini dilakukan.


(25)

1.2 Perumusan Masalah

Berdasarkan latar belakang tersebut muncul beberapa masalah yang dirumuskan sebagai berikut:

1 Bagaimana mengimplementasikan teknik steganografi PVD dalam sebuah aplikasi?

2 Bagaimana mengukur kapasitas daya tampung pesan yang dimiliki sebuah

cover?

3 Jenis filterisasi apakah yang dapat meningkatkan daya tampung pesan?

1.3 Tujuan Penelitian

Tujuan utama dari penelitian ini adalah sebagai berikut:

1 Menghasilkan aplikasi steganografi PVD yang dapat diimplementasikan untuk pesan berupa image dan teks.

2 Mengetahui kapasitas daya tampung pesan yang dimiliki oleh sebuah image. 3 Menemukan jenis filterisasi yang dapat meningkatkan daya tampung pesan

pada steganografi PVD.

1.4 Ruang Lingkup Penelitian

Ruang lingkup penelitian dibatasi pada:

1 Penggunaan cover berukuran 24 bit RGB dengan format BMP.

2 Pesan rahasia yang digunakan merupakan plain teks dan image BMP 24 RGB. 3 Filterisasi yang digunakan pada penelitian ini adalah jenis sharpen, blur, dan


(26)

BAB II

TINJAUAN PUSTAKA

2.1 Steganografi

Ada banyak metode komunikasi untuk menyembunyikan sebuah pesan rahasia. Metode-metode tersebut termasuk diantaranya teknik menyembunyikan pesan menggunakan tinta yang tidak tampak, microdots, teknik pengaturan kata, tanda tangan digital, jalur tersembunyi, dan komunikasi spektrum lebar (Munir 2006). Selain itu, ada juga kriptographi dan steganographi yang selama ini dikenal.

Kata steganografi (steganography) berasal dari bahasa Yunani steganos

yang artinya tersembunyi atau terselubung dan graphein berarti menulis sehingga kurang lebih artinya menulis (tulisan) terselubung. Pengertian lain dari steganografi, yaitu sebuah teknik penyembunyian pesan. Sebuah pesan yang disisipi (diekstrak) ke suatu media sebagai pembawa pesan (Long Truong 2002).

Pada Gambar 1 sebuah fungsi penyisipan digunakan untuk menyembunyikan pesan atau message dalam sebuah file cover. Proses penyisipan pesan ke dalam cover menghasilkan sebuah file baru yang disebut stego image. Demikian pula pada proses pengambilan pesan dari stego image digunakan sebuah fungsi ekstraksi. Penyembunyian pesan tidak menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur apabila dibandingkan dengan file semula. Steganografi bertujuan untuk merahasiakan atau menyembunyikan keberadaan sebuah pesan atau sebuah informasi. Penambahan stego key dapat digunakan untuk memastikan hanya orang yang mengetahui kunci rahasia saja yang bisa membaca pesan tersembunyi tersebut sehingga penyembunyian pesan semakin sempurna (Zollner 1998).


(27)

2.2 Least Significant Bit (LSB)

Sebuah image terbentuk dari banyak piksel. Sederet bit disusun untuk membentuk sebuah piksel yang ada. Deretan bit yang membentuk piksel tersebut dipisahkan menjadi dua bagian, yaitu Least Significant Bit (LSB) dan Most Significant Bit(MSB). Jika setiap piksel dibentuk dari 8 bit maka LSB yaitu 4 bit pada posisi belakang yang bernilai kecil dan MSB yakni 4 bit sisanya.

Pada steganografi, metode LSB merupakan salah satu metode yang umum digunakan pada saat ini. Metode LSB bekerja dengan cara menyisipkan k bit pesan rahasia ke dalam k bitLSB piksel cover (Bender 1996). Pada image bitmap

24 bit, setiap piksel (titik) terdiri atas susunan tiga warna merah, hijau, dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Perubahan bit pada posisi-posisi LSB tidak besar pengaruhnya terhadap kombinasi warna yang dihasilkan oleh komponen warna pada gambar. Dengan demikian, perubahan warna yang terjadi tidak terlihat jelas.

Gambar 2 merupakan ilustrasi dari perubahan bit-bit LSB pada satu piksel warna. Kemudian, penyisipan informasi dilakukan pada bit-bit tersebut. Bit-bit LSB pada 4 bit akhir dalam 1 byte(8 bit).

Gambar 2 Penyisipan pesan pada LSB.

Contoh data tiga pikseldari gambar berukuran 24-bit, yaitu: 00100111 11101001 11001000

00100111 11001000 11101001 11001000 00100111 11101001

Diketahui nilai biner dari karakter ‘A’ adalah 10000011. Oleh karena itu, data setelah penanaman karakter ‘A’ adalah sebagai berikut:

00100111 11101000 11001000 100 00100110 11001000 11101000 000


(28)

11001000 00100111 11101001 11, perubahan hanya pada bit-bit yang digarisbawahi (Johnson & Jajodia 1998).

2.3 Algoritme LSB

Metode LSB memiliki algoritme penyisipan pesan sebagai berikut (Rojali 2009):

1 Membagi komponen nilai dari warna piksel cover menjadi komponen nilai

Red, Green, dan Blue (RGB).

2 Mengubah komponen nilai RGB tersebut menjadi nilai biner. 3 Mengubah pesan menjadi nilai biner.

4 Menganti komponen LSB bit cover dengan bit pesan.

5 Setelah pesan rahasia disisipkan ke dalam cover kemudian bit cover yang baru diubah kembali ke dalam nilai desimal.

6 Menggabungkan kembali nilai-nilai desimal RGB sehingga menjadi nilai warna untuk stego image.

Pada proses penyisipan pesan ke dalam k-LSB cover digunakan persamaan (1) berikut:

... (1) Keterangan :

Is=(x,y) adalah intensitas piksel(x,y) dari stego image

Io=(x,y), adalah intensitas piksel (x,y) dari cover

B(x,y) adalah nilai desimal dari suatu blok yang ditempelkan pada piksel (x,y) dan mod(.) merupakan operasi modular.

Sebagai contoh, untuk penyisipan 4-LSB (yaitu k=4), dengan blok pertama data rahasia berisi empat bit yaitu 1001, maka B(0,0)=10012=9,

I0(0,0)=100010102=138, sehingga menghasilkan intensitas piksel pada stego

imageIs(0,0)=138–mod(138,24)+9 =138-10+9=137= 100010012. Proses ekstraksi pesan menjalankan algoritme sebagai berikut:


(29)

1 Konversi nilai desimal stego image kedalam nilai biner dengan panjang 8 bit.

2 Ambil nilai biner stego image sebanyak k bit LSB yang digunakan untuk menghasilkan pesan rahasia.

2.4 Citra

Sebuah citra merupakan bentuk representasi dua dimensi (2-D) dari intensitas cahaya yang ditulis sebagai fungsi f(x,y). Citra digitaldapat ditampilkan dalam bentuk matriks dua dimensi (Gambar 6). Baris dan kolom matriks merupakan posisi citra sedangkan elemennya menyatakan nilai warna pada posisi tersebut. Elemen pada citra digital disebut piksel. Setiap piksel merupakan perpaduan dari 3 komponen warna dasar yaitu R (Red), G (Green), dan B (Blue). Pada model warna RGB setiap warna yang dihasilkan disusun berbasiskan koordinat cartesius. Warna hitam berfungsi sebagai titik pusat koordinat (R=0, G=0, B=0), dan warna putih berada pada titik terjauh (R=255, G=255, B=255) sedangkan warna abu-abu berada pada suatu titik tempat ke tiga warna merah, hijau dan biru memiliki nilai yang sama (contoh: R=50, G =50 , B=50) (Gonzalez 2002). Model warna RGB dapat ditampilkan pada Gambar 3.

Gambar 3 Model warna RGB dalam koordinat Cartesian.

(Sumber: www.siggraph.org/education/materials/HyperGraph/color/ colorgb.htm).

Green

(1,1,0) Yellow

Red

(1,0,1) Magenta

Blue

(0,0,0) Black

(1,1,1) White (0,1,1) Cyan


(30)

2.5 Pengolahan Citra

Sebuah citra kaya informasi. Agar citra yang mengalami gangguan mudah diinterpretasi (baik oleh manusia maupun mesin), maka dapat dilakukan manipulasi terhadap citra tersebut menjadi citra lain yang kualitasnya lebih baik. Seringkali sebuah citra yang dimiliki mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau (noise), warnanya terlalu kontras, kurang tajam, kabur (blurring), dan sebagainya. Bidang studi yang menyangkut hal ini adalah pengolahan citra (image processing). Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik.

Gambar 4 Grid piksel citra.

Semua citra digital yang ditampilkan di layar komputer merupakan sederetan atau sekumpulan piksel (picture element). Citra tersebut dikatakan sebagai citra digital karena bentuk representasinya berupa bilangan (numbers)dan komputer mengenal dalam urutan ‘0’ dan ‘1’.

Citra digital bitmap (citra bitmap) secara teknis sering disebut sebagai

raster images. Citra digital jenis ini tersusun atas titik-titik yang disebut piksel (pixel=picture element) (Gambar 4). Setiap piksel memiliki nilai (value atau

number) yang menunjukkan intensitas keabuan pada piksel tersebut. Setiap titik piksel tersebut memiliki koordinat (x,y). Setiap piksel yang ada pada citra disimpan dengan kedalaman warna 1, 4, 8, 16, 24, atau 32 bit per piksel sebagai representasi nilai intensitas piksel. Umumnya piksel citra disimpan pada kedalaman warna 8 bit. Hal ini berarti ada sebanyak 28 derajat keabuan yakni dari 0 sampai dengan 255.


(31)

Citra bitmap ada tiga macam yaitu citra biner, citra berwarna, dan citra hitam-putih (grayscale). Citra biner hanya mempunyai dua nilai keabuan, 0 dan 1. Oleh karena itu, 1 bit sudah cukup untuk merepresentasikan nilai piksel. Citra berwarna citra yang lebih umum. Warna yang terlihat pada citra bitmap merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru. Setiap piksel tersusun atas tiga komponen warna yaitu R (red), G (green), B (blue). Kombinasi dari ketiga warna tersebut menghasilkan warna yang khas untuk piksel bersangkutan.

Pada Gambar 5 diilustrasikan sebuah citra dengan 256 warna, setiap piksel panjangnya 8 bit, tetapi komponen warna RGB-nya disimpan dalam tabel RGB yang disebut pallete. Setiap komponen panjangnya 8 bit. Jadi, ada 256 nilai keabuan untuk warna merah, ada 256 nilai keabuan untuk warna hijau, dan ada 256 nilai keabuan untuk warna biru. Nilai setiap pikseltidak menyatakan derajat keabuannya secara langsung tetapi nilai piksel menyatakan indeks pada tabel RGB yang memuat nilai keabuan merah (R), nilai keabuan hijau (G), dan nilai keabuan biru (B) untuk pikselyang bersangkutan.

Gambar 5 Piksel 8 bit RGB.

Citra digital merupakan suatu matriks tempat indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya yang disebut sebagai elemen gambar piksel (pixel/ picture element/ pels) menyatakan tingkat keabuan pada titik tersebut (Gambar 6). Manipulasi dapat dilakukan pada sebuah citra berupa manipulasi pada tingkatan piksel (Gonzales, 2002).


(32)

2.6 Filterisasi

Seringkali sebuah citra digital memiliki kualitas yang tidak baik, terkadang kelebihan cahaya (overexposed), agak kabur (blurry) atau tidak fokus. Bahkan untuk tujuan tertentu terkadang diperlukan manipulasi citra untuk mendapatkan tampilan efek-efek khusus, embossing, blurring dan sebagainya.

Beberapa program aplikasi desktop publisher dapat digunakan untuk tujuan pengolahan/pengeditan citra (image processing/ editing) yakni Adobe Photoshop, GIMP dan Aldus PhotoStyler. Aplikasi tersebut mempunyai fasilitas pengolahan citra otomatis. Fasilitas pengolahan citra customize atau convolution yang disediakan dalam operasi filterisasi. Filterisasi tersebut dapat dilakukan dengan teknik yang sederhana dengan algoritme dan teknik-teknik transformasi citra yang sederhana. Misalnya, dalam menampilkan efek sharping, blurring, embossing, walaupun memerlukan proses transformasi citra yang kompleks. Namun algoritme yang mengendalikannya sangat sederhana.

Filter merupakan operasi neighbourhood yaitu nilai dari piksel yang diberikan pada citra keluaran ditentukan oleh suatu algoritme pada sekumpulan piksel citra masukan. Algoritme dalam transformasi citra khususnya pada filterisasi digital dilakukan dengan memodifikasi nilai digital piksel tampilan warna citra berdasarkan pertimbangan nilai digital warna dari piksel yang bersangkutan dan tetangga (neighbourhood) (Wijaya & Prijono 2007).

Umumnya dalam proses filterisasi digunakan operasi konvolusi matriks. Matriks dua dimensi yang terdiri atas kolom dan baris digunakan sebagai Filter. Filter tersebut bisa berukuran 3 X 3, 5 X 5 atau 7 X 7 yang mempunyai nilai koefisien kernel tertentu tengantung kepada fungsinya. Koefisien sel kernel

merupakan bilangan integer antara -999 sampai +999. Operasi filter dilakukan dengan mengubah nilai-nilai seluruh piksel suatu citra berdasarkan nilai piksel asli dan piksel di sekitarnya (neighbour pixel). Perubahan nilai piksel ditentukan oleh harga-harga yang digunakan pada kernel(template).

Operasi konvolusi dilakukan dengan cara mengalikan nilai piksel yang menjadi target perubahan beserta ke delapan piksel tetangganya dengan harga koefisien pada posisi sel kernel yang bersangkutan, lalu menjumlahkannya. Nilai


(33)

baru yang dihasilkan kemudian menggantikan nilai awal piksel citra (Pramukanto 2001). Hal tersebut dijelaskan pada Gambar 7 berikut.

Gambar 7 Filterisasi citra dengan matriks 3x3.

Pada filter dengan ukuran matriks tertentu, misalnya 3 X 3 (Gambar 7), diisikan harga koefisien pada ke sembilan sel kernel berdasarkan tujuan filterisasi. Pada contoh ini digunakan filter dengan harga koefisien: 0, 1, 0, 0, 0, 0, 0, 0, 0 dengan operasi konvolusi antara piksel citra dengan matriks filter yaitu (40x0)+ (42x1)+ (46x0)+ (46x0)+ (50x0)+ (55x0)+ (52x0)+ (56x0)+ (58x0) dihasilkan piksel keluaran bernilai 42 = 42.

2.7 Dokumen Bitmap

Salah satu format gambar/citra adalah bitmap (bmp). Pada suatu dokumen

bitmap dapat tersimpan 1 bit warna (hitam/putih) sampai dengan 24 bit warna (true color). Struktur format dokumen ini seperti terlihat pada Gambar 8.


(34)

Format bitmap tersebut memiliki 4 bagian yaitu header, info header,

optional pallete, dan image data. Bagian header bitmap berisikan 14 byte data yang berisikan informasi yang menyatakan identifikasi sebagai suatu dokumen bitmap, besar atau ukuran data pada dokumen ini, beserta informasi awal pembacaan dokumen bitmap. Bagian info header sepanjang 40 byte berisikan informasi tinggi dan lebar citra, jumlah bit/piksel, resolusi, besarnya dokumen, jenis kompresi (bila ada) serta definisi yang berhubungan dengan warna yang dipakai. Bagian optional palette mencatat warna-warna yang dipaksakan/penting untuk dipakai dalam bitmap yang kurang dari 24 bit (true color bitmap). Jadi bagian ini dapat ada ataupun tidak. Pada true color bitmap tidak ada optional palette. Bagian image data berisikan data yang dikonversi sebagai warna tampilan gambar/citra pada layar monitor.

Dokumen bitmap mudah dibuat. Data dari tiap piksel dapat diambil dengan mengacu pada sistem koordinat. Manipulasi tiap piksel dilakukan dengan mudah sesuai dengan kapasitas warna yang dapat disimpan. Namun, dokumen bitmap memiliki kekurangan yakni ukuran memori dokumen file bitmap lebih besar daripada file bentuk lain. Selain itu, dokumen bitmap sulit untuk diubah skala resolusinya. Perubahan pada skala resolusi terkadang akan mengakibatkan perubahaan pada kepadatan warnanya (Rojali 2009).

2.8 Algoritme Piksel Value Differencing (PVD)

Penelitian awal algoritme PVD dilakukan oleh (Wu & Tsai, 2003). Proses penyembunyian pesan dalam sebuah cover dilakukan dengan cara menghitung selisih nilai antara dua piksel cover yang terdekat (non overlapping pixel block). Selisih digunakan untuk menentukan jumlah data yang dapat disisipkan berdasarkan jangkauan tabel yang dipilih. Jika selisihnya besar maka pesan disisipkan dalam jumlah yang besar demikian sebaliknya. Sehingga pada teknik PVD pesan dapat disembunyikan dalam jumlah yang besar. Walaupun terdapat

loophole (kelemahan) yang dapat diketahui oleh stegoanalisis namun penyembunyian pesan rahasia menggunakan teknik PVD tidak mampu dilihat oleh pandangan manusia ( Zang & Wang, 2004).


(35)

Penyisipan pesan ke dalam LSB cover didahului dengan membagi citra

cover menjadi blok-blok yang tidak saling tumpang tindih. Setiap blok tersebut berisi dua piksel yang saling berdekatan yaitu P(i,x) dan P(i,y) kemudian selisih di antara keduanya dihitung sebagai di dengan menggunakan persamaan (2) berikut.

di= |P(i,x)-P(i,y)|

………..(2) Pencarian selisih antara dua piksel terdekat dilakukan menggunakan arah seperti pada Gambar 9. Keberadaan tabel jangkauan dibutuhkan pada penerapan teknik PVD ini karena jumlah pesan yang disisipkan besarnya menyesuaikan dengan nilai jangkauan yang ada pada tabel tersebut. Tabel jangkauan dibuat berdasarkan kemampuan daya tangkap yang ada pada manusia (Simple Human Visual System) dalam membedakan tingkat kehalusan dan kekontrasan (Wu & Tsai 2003). Selisih piksel yang besar sehingga daerah menjadi kontras dapat menampung pesan yang besar demikian sebaliknya selisih yang kecil yang merupakan daerah halus maka hanya memiliki daya tampung yang sedikit.

Gambar 9 Sistem scanning steganografi PVD (Wu &Tsai 2003).

Selisih yang diperoleh digunakan untuk mencari batas bawah (lj) dan batas

atas (uj) berdasarkan tabel jangkauan yang dipilih (Gambar 11). Selisih nilai lj dan

uj kemudian ditambah 1 ditetapkan sebagai wj sehingga diperoleh nilai ti yakni kapasitas daya tampung pesan pada dua piksel yang berdekatan (hiding capacity of two consecutive pixels) dengan menggunakan persamaan (3).

ti = log(wj)


(36)

Nilai ti yang kemudian digunakan untuk mencari nilai selisih dua piksel yang baru (d i) dengan menjumlahkan nilai desimal ti dengan batas bawah tabel jangkauan (ti + lj). Langkah selanjutnya adalah menghitung nilai P(i,x) dan P(i,y) yang telah disisipkan pesan (P(i,x) dan P(i,y)) menggunakan persamaan (4) (Wang

et al. 2006).

………..(4) Proses penyisipan dan ekstraksi pesan pada algoritme steganografi PVD adalah sebagai berikut.

Proses Penyisipan Pesan

1 Untuk setiap piksel yang berurutan ( P(i,x) dan P(i,y) ) pada cover image

hitung selisihnya sebagai di. Berdasarkan nilai dicarilah nilai batas bawah

(lj) dan batas atas (uj) dari tabel jangkauanRj. 2 Hitung nilai wj = uj-lj+1.

3 Hitung nilai ti=log(wj) dengan basis logaritma 2.

4 Nilai tiadalah menentukan jumlah bit pesan yang dapat disisipkan.

5 Ambil pesan sepanjang ti , ti adalah nilai desimal dari ti.

6 Hitung nilai di = ti + lj.

7 Hitung nilai m yang merupakan nilai mutlak dari selisih didan di.

8 Carilah nilai P(i,x) dan P(i,y) dengan menggunakan persamaan (4).

Proses Ekstraksi Pesan

Pada proses ekstraksi pesan, pencarian selisih pikselterdekat sesuai dengan Gambar 6. Selengkapnya proses ekstraksi pada algoritme PVD sebagai berikut.

1 Untuk setiap titik yang berurutan (P(i,x) dan P(i,y) ) pada stego image


(37)

Berdasarkan nilai di carilah nilai batas bawah (lj) dan batas atas (uj) dari

tabel jangkauan Rj. 2 Hitung nilai wj = uj-lj +1

3 Hitung nilai ti=log(wj) dengan basis logaritma 2.

4 Nilai ti adalah menentukan jumlah bit pesan yang telah disisipkan.

5 Hitung ti= di- lj , konversi nilai tikedalam biner dengan panjang ti

6 Hasil konversi nilai tikedalam biner dengan panjang ti merupakan pesan

yang disembunyikan.

2.9 Peak Signal to Noise Ratio (PSNR)

PSNR adalah sebuah nilai untuk menyatakan tingkat noise milik sebuah

image yang telah disisipi pesan. PSNR diukur dalam satuan Desibel (db). Semakin besar nilai PSNR perbedaan antara stego image dan cover image

semakin kecil, sebaliknya semakin kecil nilai PSNR menunjukkan bahwa perbedaan antara stego image dan cover image semakin besar (Medeni 2010). Menurut Cole (2003) nilai PSNR dikatakan baik jika bernilai di atas 20. Hal ini juga bermakna jika nilai di bawah 20 maka distorsi yang terjadi antara stego image dan cover image sangat besar.

Nilai Mean Square Error (MSE) digunakan untuk menyatakan penyimpangan yang terjadi antara cover image dan stego image. Jika MSE bernilai besar maka penyimpanganyang terjadi besar. Gambar dengan komponen warna Red, Green dan Blue memiliki tiga komponen nilai MSE maka menghitungnya dengan membuat rata-rata nilai MSE seluruh kompunen warna tersebut.

Persamaan untuk mencari PSNR sebagai berikut : PSNR = 10 Log10 (2552 / MSE )

……….(5)

Sedangkan formula untuk menghitung nilai MSE adalah sebagai berikut :

MSE =

[

]

2 1 1 ) , ( ) , ( 1 = = − M x N y y x K y x I MxN ……….(6)


(38)

Keterangan:

I(x,y) = data cover image K(x,y) = data stego image

M = lebar image

N = tinggi image

2.10 Pengujian Perangkat Lunak

Membangun perangkat lunak dimulai dari tahap pembuatan konsep abstrak yakni menspesifikasi dan merancang perangkat lunak hingga ke tahap implementasi yang dapat dilihat baru kemudian dilakukan tes.

Tes dilakukan untuk menguji coba perangkat lunak sehingga dapat diketahui kekurangan-kekurangan yang ada pada perangkat lunak. Ketika melakukan tes, bentuk perangkat lunak harus sudah didefinisikan standarisasinya sehingga kekurangan-kekurangan dapat dilengkapi. Programmer dapat menguji perangkat lunak dengan melihat konstruksi dan komposisinya atau dengan melatih fungsi-fungsi dan menguji hasilnya.

Sebuah perangkat lunak memiliki banyak komponen di dalamnya. Tes yang dilakukan dengan cara komponen per komponen dalam perangkat lunak disebut unit tes. Unit tes merupakan tes yang dilakukan pada setiap individu modul program sebelum diintegrasikan dengan modul-modul program yang lain. Unit tes juga terkadang disebut modul tes. Unit yang dapat dites adalah fungsi-fungsi, subrutin, prosedur atau method. Unit kadang-kadang dapat berupa grup kecil atau modul-modul yang saling berhubungan yang senantiasa dieksekusi layaknya sebuah grup. Tujuan dari unit tes untuk mengidentifikasi dan memperbaiki error-error yang mungkin sebelum menjadi perangkat lunak yang besar. Error akan semakin sulit diketahui dan diperbaiki jika modul-modul sudah disatukan (Satzinger et al. 2007).

2.11 Antarmuka Grafis (GUI)

Perancangan GUI secara fisik adalah merancang tampilan pada layar monitor. Perancangan tersebut berbentuk form atau halaman web, jenisnya dapat berupa:


(39)

1 Menu pilihan 2 Form isian (entry)

3 Penyajian informasi (report, query) 4 Kotak dialog jika diperlukan

5 Fasilitas bantuan (Help) jika diperlukan

Perancangan GUI menfokuskan pada tiga daerah rancangan yaitu rancangan antarmuka antara modul-modul perangkat lunak, rancangan antarmuka antara perangkat lunak dengan entitas eksternal, dan rancangan antarmuka antara perangkat lunak dengan pengguna perangkat lunak (manusia dengan komputer). Perancangan tersebut dikendalikan oleh data yang mengalir di antara modul-modul dan karakteristik bahasa pemrograman yang diimplementasikan pada perangkat lunak.

Pada perancangan GUI diperlukan runtutan untuk memudahkan pembuatan GUI. Proses pembuatan GUI terdiri dari desain fase dan implemetasi fase. Runtutan tersebut tampak pada Gambar 10.

Gambar 10 Pengembangan GUI proses RPL (MathWorks 1997).

Gambar 10 menunjukkan proses pengembangan GUI dilakukan dari tahap desain ke implementasi. Arah panah berputar menunjukkan setiap proses yang ada dapat mengalami pengulangan bahkan sampai beberapa kali apabila dibutuhkan. Meskipun pengembangan sudah berada pada tahapan implementasi namun apabila diperlukan proses-proses yang sudah dilakukan pada tahapan sebelumnya dapat dilakukan kembali.


(40)

Perancangan GUI membutuhkan banyak informasi maka diagram alir dibutuhkan untuk menggambarkan transformasi data ketika bergerak di dalam sistem. Kebutuhan data dan kontrol dari setiap entitas harus ditentukan untuk perancangan GUI yang sesuai. Semua aliran data dari modul ke modul pada aplikasi harus sesuai untuk memastikan data sudah sesuai dengan kebutuhan.


(41)

BAB III

METODE

3.1 Waktu dan Tempat

Penelitian dilaksanakan di Laboratorium Net Centric Computing

Departemen Ilmu Komputer IPB dimulai bulan Oktober 2011 sampai dengan Juni 2012.

3.2 Bahan dan data

Penelitian ini menggunakan citra gambar 24 bit berformat bmp sebagai bahan cover. Adapun pesan berupa citra gambar 24 bit berformat bmp dan plain

teks. Jumlah citra yang digunakan untuk cover sebanyak lima buah yang dipilih mengacu pada penyebaran warna kontras dan halusnya masing-masing citra tersebut, sedangkan pesan dipilih disesuaikan dengan daya tampung masing-masing cover.

3.3 Perangkat Lunak dan Keras

Perangkat lunak dan keras yang digunakan pada penelitian ini sebagai berikut: 1 Microsoft Windows XP

2 MathWorks Matlab versi 6.5 3 Adobe Photoshop CS

Perangkat lunak tersebut dioperasikan pada notebook HP 500 series dengan spesifikasi sebagai berikut:

1 Processor Intel Mobile 2,13 Gigahertz 2 Memori sebesar 1 Gigabyte

3 Intel display adapter 128 Megabyte 4 Harddisk 80 Gigabyte


(42)

3.4 Metodelogi Penelitian 3.4.1 Penyisipan Pesan

Metode penyisipan pesan pada steganografi PVD dilakukan dengan cara membagi-bagi piksel pada cover image menjadi sepasang-sepasang yang saling berdekatan dan tidak saling menumpuk (non-ovelapping block pixel). Nilai setiap piksel berubah setelah disisipi dengan bit pesan (data embedding). Jumlah bit pesan yang disisipkan bergantung pada selisih setiap pasang piksel tersebut. Besarnya bit yang disisipkan disesuaikan dengan tabel jangkauan yang digunakan. Pada penelitian ini digunakan tabel jangkauan seperti Gambar 11.

Gambar 11 Lebar jangkauan Rj dengan Wj∈{8, 8, 16, 32, 64, 128} (Wu, 2003). Selisih sebesar 0 sampai 7 berada pada rentang R1 dan selisih sebesar 8 sampai 15 pada rentang R2 . Pada R1 dan R2 ditetapkan bit pesan yang dapat


(43)

disisipkan sebesar 3 bit. Pada rentang R3 dapat disisipkan pesan sebesar 4 bit, R4 sebesar 5 bit, R5 sebesar 6 bit dan R6 sebesar 7 bit.

Metode yang digunakan pada proses penyisipan pesan ke dalam cover

dijelaskan seperti diagram alir pada Gambar 12.

Gambar 12 Tahapan penyisipan pesan steganografi PVD.

Proses penyisipan pesan pada penelitian ini dimulai dengan melakukan filterisasi terhadap cover-cover yang ingin disisipi pesan. Setelah pesan disiapkan maka proses penyisipan dilakukan menggunakan teknik steganografi PVD dengan hasil output berupa file stego image.

3.4.2 Filterisasi

Filterisasi dilakukan terhadap cover menggunakan filter customize

berukuran 3x3 yang disediakan oleh perangkat lunak Adobe Photoshop. Jenis filter yang akan digunakan pada proses tersebut, sharpen, blur, emboss


(44)

Implementasi dari masing-masing cover pada aplikasi steganografi PVD diamati untuk mengukur peningkatan daya tampung pesan dan nilai PSNR.

3.4.3 Ekstraksi pesan

Pada proses ekstraksi pesan metode yang digunakan seperti ditampilkan diagram alir pada Gambar 13.

Gambar 13 Tahapan ekstraksi pesan steganografi pvd.

Setelah file stego image dihasilkan dari proses penyisipan pesan maka tahapan selanjutnya yakni melakukan proses ekstraksi pesan yaitu mengambil pesan rahasia yang tersimpan pada sebuah cover. Pada tahapan ini output berupa file pesan rahasia yang disembunyikan pada cover.


(45)

BAB IV

HASIL DAN PEMBAHASAN

Kapasitas daya tampung pesan pada steganografi PVD semakin besar jumlahnya jika cover yang digunakan berupa image dengan kontras yang luas. Hal itu dikarenakan jumlah selisih antara dua piksel yang berdekatan pada cover

semakin besar jumlahnya, bitstream pesan yang dapat disisipkan pada setiap dua piksel cover semakin besar pula jumlahnya. Sebagaimana yang terlihat pada tabel jangkauan (Tabel 1) yang digunakan pada penelitian ini. Semakin besar selisih piksel maka bit pesan yang diambil untuk disisipkan berada pada rentang yang lebih besar.

Karakteristik piksel-piksel yang berdekatan pada sebuah citra umumnya memiliki selisih yang tidak besar. Selisih piksel hanya berada pada rentang R1 dan

range R2, sehingga citra tersebut hanya mampu menampung sedikit bit pesan (Rojali 2009). Teknik pengolahan citra dapat dilakukan dalam rangka meningkatkan nilai selisih piksel-piksel tersebut. Salah satu teknik pengolahan citra yang dapat dilakukan yakni filterisasi. Proses tersebut dapat merubah nilai piksel-piksel yang dimiliki sebuah citra. Oleh karena itu, sebelum sebuah citra dijadikan cover dilakukan proses filterisasi customize terhadap citra-citra cover

tersebut.

4.1 Pembuatan Aplikasi Steganografi PVD 4.1.1 Alat dan Data

Pada penelitian ini aplikasi steganografi PVD dikembangkan menggunakan pemrograman script lewat Matlab versi 6.5 yang berjalan pada sistem operasi Microsoft Windows XP SP2. Aplikasi terdiri atas dua menu yaitu penyisipan dan pengambilan pesan. Menu-menu tersebut dibangun dengan m file dan GUI. Input data cover berupa file gambar berformat bmp dengan mode RGB sedangkan pesan yang disisipkan berupa plain teks dan file gambar berformat bmp bermode RGB.

Aliran data dilakukan dengan menginput data cover dan pesan rahasia yang ingin disembunyikan. Setelah itu proses penyisipan pesan dilakukan. Aliran data


(46)

berakhir dengan menghasilkan data output stego image. Pada proses pengambilan pesan, aliran data dimulai dengan menginput data stego image dan berakhir pada output data pesan rahasia. Kedua proses ini tampak pada Gambar 14.

4.1.2 Algoritme dan Perancangan Aplikasi

Aplikasi steganografi PVD memiliki dua menu dalam implementasinya yakni embeded message (penyisipan pesan) dan extract message (pengambilan pesan). Gambar 15 merupakan algoritme yang digunakan untuk pengembangan

embeded message (penyisipan pesan) pada aplikasi steganografi PVD.

Pada algoritme penyisipan pesan dilakukan tiga proses penyisipan pesan yang sama pada setiap layerRed, Green dan Blue. Dimulai dengan menginput cover

berformat bmp yang memiliki tiga layer RGB. Kemudian, dari setiap layer tersebut dua piksel yang berdekatan (gx, gx+1) dihitung selisihnya, masing-masing

disimpan dalam variabel dred, dgreen, dblue. Nilai selisih tersebut kemudian dimutlakan (absolute value) yang dihitung sebesar dabs (masing-masing disimpan dalam variabel dabsred, dabsgreen, dabsblue). Mengacu kepada tabel jangkauan

Input data Cover

Proses Penyisipan

Pesan

Output data stego image Input data

Pesan

Input data Cover

Proses Pengambilan

Pesan

Output Pesan Rahasia


(47)

(Gambar 9) maka dapat ditetapkan daerah rentang dari nilai dabs tersebut terdapat lima daerah rentang yang ditetapkan pada penelitian ini. Adapun rentang 1 dengan kisaran antara 0 sampai dengan 7, rentang 2 dengan kisaran antara 8 sampai dengan 15, rentang 3 dengan kisaran antara 15 sampai dengan 31, rentang 4 dengan kisaran antara 32 sampai dengan 63, rentang 5 dengan kisaran antara 64 sampai dengan 127 dan rentang 6 dengan kisaran antara 128 sampai dengan 255. Algoritme dilanjutkan dengan menentukan daerah rentang untuk dabs. Penentuannya ditetapkan dengan menghitung nilai ti yang merupakan seberapa banyak bit dari bitstream pesan yang dapat disisipkan. Nilai ti dihitung pada setiap iterasi saat menghitung selisih antara dua piksel. Nilai ti dihitung dengan melakukan operasi log terhadap nilai selisih batas bawah dan batas atas dari rentang yang bersesuaian. Operasi log menghasilkan ketetapan bahwa pada selisih piksel 0 sampai 7 dan 8 sampai 15 dapat disisipkan 3 bit pesan, selisih 16 sampai 31 disisipkan 4 bit, selisih 32 sampai 63 disisipkan 5 bit, selisih 64 sampai 127 disisipkan 6 bit dan selisih 128 sampai dengan 255 disisipkan 7 bit (Tabel 1).

Tabel 1 Daya tampung pesan pada setiap daerah rentang

Rentang 1 2 3 4 5 6

lb (batas bawah) 0 8 16 32 64 128

ub (batas atas) 7 15 31 63 127 255

ti (jumlah bit yang disisipkan) 3 3 4 5 6 7

Input pesan berupa citra RGB memiliki tiga layer. Setiap layer memiliki nilai piksel yang berbeda. Sebelum disisipkan nilai piksel-piksel tersebut dikonversi terlebih dahulu menjadi format string binary (binstream). Setelah dihitung nilai ti maka bitstream pesan diambil sepanjang (length)ti dan disimpan dalam messbindata. Kemudian bitstream messbindata dikonversi menjadi nilai desimal (messdecdata), dijumlahkan dengan batas bawah rentang pada tabel jangkauan (lj) menjadi nilai selisih untuk dua piksel yang baru (dx). Selisih

absolut dari d dan dx adalah nilai m yang dibutuhkan pada persamaan (4) untuk menghitung nilai dua piksel yang baru (px, py).


(48)

Input pesan berupa plain teks, string binary (binstream) pesan dibagi menjadi tiga bagian. Setelah dihitung nilai ti maka diambil bintstream sepanjang

(length)ti dan disimpan dalam messbindata. Proses pengambilan bitstream pesan sepanjang ti dilanjutkan menghitung nilai-nilai messbindata, mesdecdata,dx, dan

m ini terus berulang seiring iterasi yang dilakukan pada setiap dua piksel cover (gx, gx+1). Iterasi dihentikan sampai semua bitstream pesan disisipkan dalam

piksel cover sehinggamenghasilkan nilai-nilai piksel baru (px,py) yang digunakan untuk membentuk stego image. Aplikasi ini selain menghasilkan stego image

pada menu penyisipan pesan juga menghasilkan nilai PSNR, daya tampung maksimal, dan ukuran dimensi pesan yang digunakan untuk pengambilan pesan.

Adapun algoritme yang digunakan untuk pengembangan menu extracted message (pengambilan pesan) disajikan pada Gambar 15.


(49)

Stego image merupakan image berformat RGB maka dalam algoritme pengambilan pesan dilakukan juga tiga proses pengambilan pesan yang sama pada masing-masing layer. Pengambilan pesan diawali dengan menginput stego image. Kemudian dari setiap layer stego image dua piksel yang berdekatan (gx, gx+1)

dihitung selisihnya, masing-masing disimpan dalam variabel dxred, dxgreen, dxblue. Nilai selisih tersebut kemudian dimutlakkan (absolute value) yang dihitung sebesar dxabs (masing-masing disimpan dalam variabel dxabsred, dxabsgreen, dxabsblue).

Mengacu kepada tabel jangkauan dapat ditetapkan rentang area dari nilai

dxabs tersebut. Seperti pada proses penyisipan pesan, demikian pula pada pengambilan pesan digunakan juga tabel jangkauan yang memiliki lima daerah rentang. Rentang tersebut yaitu rentang 1 dengan kisaran antara 0 sampai dengan 7, rentang 2 dengan kisaran antara 8 sampai dengan 15, rentang 3 dengan kisaran antara 15 sampai dengan 31, rentang 4 dengan kisaran antara 32 sampai dengan 63, rentang 5 dengan kisaran antara 64 sampai dengan 127 dan rentang 6 dengan kisaran antara 128 sampai dengan 255.

Pada setiap iterasi yang menghitung selisih dua piksel berdekatan pada

stego image, rentang-rentang pada tabel jangkauan digunakan untuk menentukan besarnya tistego, yaitu besaran yang digunakan untuk menentukan berapa banyak bit pesan yang telah disisipkan pada dua piksel stego image. Perhitungan tistego

dimulai dengan menghitung wj yaitu mengurangkan batas atas dengan batas

bawah (uj-lj+1). Kemudian dilakukan operasi log terhadap wj yang hasilnya

merupakan besarnya tistego maka hasil operasi log terhadap wj ditetapkan jika

selisih piksel 0 sampai 7 dan 8 sampai 15 dapat disisipkan 3 bit pesan, selisih 16 sampai 31 disisipkan 4 bit, selisih 32 sampai 63 disisipkan 5 bit, selisih 64 sampai 127 disisipkan 6 bit dan selisih 128 sampai dengan 255 disisipkan 7 bit (Tabel 1).

4.1.3 Perancangan Antarmuka Grafis (GUI)

Aplikasi ini dilengkapi dengan GUI agar user mudah menggunakannya. Aplikasi dilengkapi dengan menu bar dan tombol-tombol eksekusi. Perancangannya dibuat mudah untuk digunakan. Tag name yang dipilih memakai istilah-istilah umum keamanan informasi. Perancangan GUI untuk aplikasi ini


(50)

keseluruhan terdiri dari lima halaman interface yaitu halaman depan, menu penyisipan pesan teks, menu penyisipan pesan image, menu pengambilan pesan teks, dan menu pengambilan pesan image. Halaman depan merupakan halaman tampilan pertama aplikasi. Pada menu bar halaman depan terdapat menu penyisipan pesan dan pengambilan pesan. Menu penyisipan pesan terdiri dari dua submenu yakni menu penyisipan teks dan image. User dapat memilih file yang dijadikan cover dan pesan. Kedua file tersebut secara visual ditampilkan pada layar interface. Tombol build stego digunakan untuk menyisipkan pesan ke dalam cover sekaligus menyimpan file stego image ke dalam memori dan menampilkannya pada jendela tampilan. Aplikasi ini juga akan menampilkan jumlah maksimal bit pesan dimiliki sebuah cover, nilai PSNR, dan besarnya ukuran pesan yang disisipkan.

Menu pengambilan pesan terdiri dari dua submenu yakni menu pengambilan pesan teks dan image. Filestego image dipilih pada menu tersebut. User diminta untuk memasukan ukuran pesan untuk mengambil pesan rahasia. Ukuran panjang baris dan kolom pesan digunakan untuk mengambil pesan berbentuk image

sedangkan ukuran panjang string pesan digunakan untuk mengambil pesan berbentuk plain teks. Proses ekstraksi pesan menampilkan pesan pada jendela tampilan sekaligus menyimpan file ekstraksi pesan ke dalam memori. Gambar 16, 17, dan 18 merupakan layout dari GUI pada aplikasi steganografi PVD.


(51)

Gambar 17 Layout halaman penyisipan pesan teks dan image.


(52)

4.2 Implementasi

Aplikasi steganografy PVD pada penelitian dibuat menggunakan pemrograman script Matlab 6.5 dinamakan dengan m-file. Dibutuhkan lima buah

script m-file dalam mengembangkan aplikasi tersebut. Dua script m-file

merupakan isi program sebagai implementasi dari algoritme penyisipan pesan dan pengambilan pesan, tiga buah script m-file untuk mengimplementasikan grafik antarmuka. Script m-file untuk penyisipan pesan berjumlah 515 line number dan pengambilan pesan berjumlah 293 line number. Implementasi dalam pengerjaan persamaan (4) membutuhkan fungsi tersendiri yang dibuat dengan script m-file

sebanyak 56 line number. Script m-file seluruhnya dapat dilihat pada lampiran 1. Lima buah filefigure dibuat untuk pengembangan grafik antarmuka. Setiap komponen yang ada pada file figure tersebut dikendalikan oleh sebuah script m-file. File figure halaman depan membutuhkan script m-file sebanyak 118 line number, halaman penyisipan pesan (embededmessage) membutuhkan script m-file

sebanyak 882 line number dan halaman pengambilan pesan (extractmessage)

membutuhkan script m-file sebanyak 456 line number.


(53)

Gambar 20 Halaman penyisipan pesan aplikasi steganografi PVD.


(54)

Gambar 22 Halaman pengambilan pesan teks aplikasi steganografi PVD. 4.3 Pengujian Aplikasi

Sebelum aplikasi digunakan, unit tes dilakukan untuk menguji aplikasi. Pengujian menggunakan menggunakan file cover48pix.bmp sebagai cover, file

4pixel.bmp sebagai pesan, dan file stego image disimpan dalam file

stegoku1.bmp. Gambar 23 dan 24 merupakan visualisasi dari file-file tersebut.

Gambar 23 File cover cover48pix.bmp dan pesan 4pixel.bmp


(55)

Nilai piksel yang dimiliki file-file yang digunakan dalam unit tes adalah seperti yang tampak pada tabel 2, tabel 3.

Tabel 2 Nilai piksel file cover48pix.bmp

Layer: Red

137 125 131 136 123 123 124 255

255 147 129 177 154 135 148 137

255 255 139 135 150 185 142 140

255 255 137 123 230 169 148 150

255 181 137 123 135 132 133 150

255 255 255 255 255 255 255 255

Layer: Green

28 4 17 27 0 0 2 255

255 49 12 109 63 25 51 29

255 255 32 24 54 124 37 33

255 255 27 0 214 93 51 54

255 115 29 0 23 19 19 54

255 255 255 255 255 255 255 255

Layer: Blue

164 155 160 163 153 153 154 255

255 173 158 196 177 163 173 164

255 255 166 162 174 201 167 165

255 255 163 153 237 189 173 174

255 198 164 153 162 160 161 174

255 255 255 255 255 255 255 255

Tabel 3 Nilai piksel file 4pixel.bmp

Layer: red Layer: green Layer: blue

0 0 244 33 34 234

255 255 255 255 0 255

Stego image yang dihasilkan dalam unit tes memiliki nilai piksel seperti yang disajikan pada tabel 4, 5, dan 6.

Tabel 4 Nilai piksel layer red file stegoku1.bmp

135 127 130 138 128 119 62 317

233 169 134 173 160 129 147 138

255 255 139 135 150 185 142 140

255 255 137 123 230 169 148 150

255 181 137 123 135 132 133 150


(56)

Tabel 5 Nilai piksel layer green file stegoku1.bmp

32 1 17 27 6 -5 2 256

232 71 -3 124 61 26 51 29

255 255 32 24 54 124 37 33

255 255 27 0 214 93 51 54

255 115 29 0 23 19 19 54

255 255 255 255 255 255 255 255

Tabel 6 Nilai piksel layer blue file stegoku1.bmp

164 155 158 166 159 147 173 237

261 168 156 199 178 163 176 161

255 255 166 162 174 201 167 165

255 255 163 153 237 189 173 174

255 198 164 153 162 160 161 174

255 255 255 255 255 255 255 255

Aplikasi menggunakan fungsi newpixel (newpixel.m) untuk menghitung persamaan (4). Fungsi tersebut diuji kebenarannya dengan membuat sebuah

script m-file (testpxpy.m). Tabel 7 memperlihatkan nilai piksel dari output file

testpxpy.m.

Tabel 7 Output file testpxpy.m

Data Input Data Output

P(i,x) P(i,y) P'(i,x) P'(i,y)

137 125 135 127

131 136 130 138

123 123 128 119

124 255 62 317

255 147 233 169

129 177 134 173

154 135 160 129

Perbandingan nilai piksel dari kedua output yang dihasilkan yaitu output file stego image aplikasi (fungsi newpixel) dan output script m-file testpxpy.m membuktikan kebenaran algoritme aplikasi. Walaupun pada ujicoba ditemukan nilai-nilai piksel yang berada di luar jangkauan (out of range) yaitu berada di luar


(57)

[0..255], namun hal ini sedikit sekali ditemukan sehingga secara visual tidak mempengaruhi pesan (Luo et al. 2009). Apabila output filestego image disimpan dalam file stegoku1.bmp, nilai-nilai piksel yang berada di luar jangkauan dinormalisasi ke dalam format 24 bit. Tabel 8 menunjukkan nilai-nilai piksel yang dimiliki file stegoku1.bmp.

Tabel 8 Nilai piksel file stegoku1.bmp

Layer: Red

135 127 130 138 128 119 62 255

233 169 134 173 160 129 147 138

255 255 139 135 150 185 142 140

255 255 137 123 230 169 148 150

255 181 137 123 135 132 133 150

255 255 255 255 255 255 255 255

Layer: Green

32 1 17 27 6 0 2 255

232 71 0 124 61 26 51 29

255 255 32 24 54 124 37 33

255 255 27 0 214 93 51 54

255 115 29 0 23 19 19 54

255 255 255 255 255 255 255 255

Layer: Blue

164 155 158 166 159 147 173 237

255 168 156 199 178 163 176 161

255 255 166 162 174 201 167 165

255 255 163 153 237 189 173 174

255 198 164 153 162 160 161 174

255 255 255 255 255 255 255 255

Unit tes juga dilakukan pada proses ekstraksi pesan. File pesan yang disembunyikan pada file stego image stegoku1.bmp diekstrak sehingga didapatkan file pesan yang diinginkan. Hasil ekstraksi membuktikan bahwa aplikasi berjalan dengan benar dan dapat digunakan dalam melakukan penelitian.

4.4 Hasil dan Percobaan

Empat buah citra yang dijadikan sebagai cover pada penelitian ini masing-masing berukuran 512x512 piksel dan 256x256 piksel disajikan pada Gambar 25.


(58)

Airplane.bmp Baboon.bmp

Fractal.bmp Pepper.bmp

Gambar 25 Citra bakal cover.

Percobaan menggunakan dua pesan berbentuk plain teks dan empat pesan berbentuk image. Gambar 26 menyajikan image pesan yang digunakan.

Barcode.bmp Flower.bmp Peta.bmp Sby.bmp


(59)

4.4.1 Filterisasi

Tahapanfilterisasidilakukan menggunakan Adobe Photoshop CS. Matriks (kernel) yang digunakan untuk customize filter pada penelitian ini adalah sebagai berikut.

1. Blur:

1 1 1 1 2 1

1 1 1 2 4 2

1 1 1 1 2 1

2. Sharpen:

-1 -1 -1 0 -1 0 -1 9 -1 -1 5 -1 -1 -1 -1 0 -1 0

3. Emboss:

-2 -1 0

-1 1 1

0 1 2

Sebelum sebuah citra diinput untuk dijadikan cover dalam aplikasi, citra-citra tersebut difilterisasi terlebih dahulu. Gambar 27, 28, 29, dan 30 merupakan hasil filterisasi yang dilakukan terhadap citra-citra bakal cover tersebut.

4.4.2 Hasil Percobaan

Citra cover yang digunakan pada penelitian ini yakni sebesar 256x256 piksel berukuran 192 Kilobyte (KB) dan cover 512x512 piksel berukuran 769 KB. Adapun pesan yang disisipkan berukuran 5 KB, 10 KB, 21 KB, 31 KB, 43 KB, 50 KB, 60 KB, 80 KB dan 100 KB.


(60)

Citra sebelum difilter Citra dengan filter blur1 Citra dengan filter blur2

Citra dengan filter emboss Citra dengan filter sharp1 Citra dengan filter sharp2 Gambar 27 Visualisasi proses filterisasi terhadap citra airplane.bmp.

Citra sebelum difilter Citra dengan filter blur1 Citra dengan filter blur2

Citra dengan filter emboss Citra dengan filter sharp1 Citra dengan filter sharp2 Gambar 28 Visualisasi proses filterisasi terhadap citra baboon.bmp.


(61)

Citra sebelum difilter Citra dengan filter blur1 Citra dengan filter blur2

Citra dengan filter emboss Citra dengan filter sharp1 Citra dengan filter sharp2 Gambar 29 Visualisasi proses filterisasi terhadap citra fractal.bmp.

Citra sebelum difilter Citra dengan filter blur1 Citra dengan filter blur2

Citra dengan filter emboss Citra dengan filter sharp1 Citra dengan filter sharp2 Gambar 30 Visualisasi proses filterisasi terhadap citra pepper.bmp.


(62)

4.4.2.1 PSNR

PSNR merupakan nilai yang dihasilkan pada percobaan dalam penelitian ini. Percobaan menghasilkan nilai PSNR seluruhnya bernilai di atas 20 db. Hal ini menunjukkan bahwa noise yang ditimbulkan setelah cover disisipi pesan berada di atas batas minimal (Cole 2003). Oleh karena itu, stego image yang dihasilkan memiliki tingkat keamanan yang baik. Gambar 31 menunjukkan capaian nilai PSNR yang dilakukan pada percobaan.

Cover: Airplane 192 KB ; Pesan: Barcode 21 KB

36.1114, 313905 36.6608, 392955 Sharp2 36.4303, 325122 Emboss 36.4432, 315405 Blur2 35.9469, 360381 Sharp1 35.9492, 310092 Blur1 250000 270000 290000 310000 330000 350000 370000 390000 410000

35.9 36 36.1 36.2 36.3 36.4 36.5 36.6 36.7

PSNR (db) D a y a T a m p u n g P e s a n ( b it )

Cover: Airplane.bmp (769 KB); Pesan: Sby.bmp (100 KB)

35.2302, 1202991 Blur1 35.6804, 1544820 Sharp2 37.3198, 1378095 Sharp1 36.8871, 1258593 Emboss 36.4636, 1216128 Blur2 36.3474, 1220637 1000000 1100000 1200000 1300000 1400000 1500000 1600000

35 35.5 36 36.5 37 37.5

PSNR D a y a T a m p u n g P e s a n ( b it )


(63)

4.4.2.2 Daya Tampung Pesan

Percobaan pertama dilakukan dengan menggunakan cover berukuran 256x256 piksel dan pesan berukuran 21 KB. Tampak dalam Gambar 32, salib sumbu x yang menyatakan kapasitas daya tampung pesan sebuah cover nilainya meningkat setelah dilakukan filterisasi. Namun tidak pada filter blur, daya tampung pesan cover mengalami penurunan. Demikian juga pada Gambar 33, diagram menunjukkan bahwa daya tampung pesan pada cover berukuran 512x512 berkapasitas 756 KB terjadi peningkatan setelah dilakukan filterisasi.

Filter sharp1 merupakan jenis filter yang dapat meningkatkan daya tampung pesan sebuah cover dengan maksimal. Daya tampung awal sebesar 313 905 bit mampu meningkat sampai dengan 392 955 bit, terjadi peningkatan sebesar 79050 bit dalam menampung pesan. Filterisasi dapat meningkatkan daya tampung pesan sebuah cover.

Filter sharp dan emboss mampu meningkatkan daya tampung pesan pada sebuah cover. Pada cover berukuran 192 KB daya tampung pesan rata-rata meningkat sebesar 4% dengan menggunakan filter sharp1. Pada ukuran cover

yang lebih besar yaitu 756 KB, daya tampung pesan meningkat rata-rata sebesar 7%. Bila dirata-ratakan pada kedua cover tersebut, maka filter sharp1 dapat menaikkan daya tampung sebesar 5.5%.

Ukuran Cover: 192 KB

313905 345698 381312 310986 392955 351903 446730 434298 0 50000 100000 150000 200000 250000 300000 350000 400000 450000

airplane.bmp baboon.bmp fractal.bmp pepper.bmp

Cover D a y a T a m p u n g P e s a n ( b it ) Normal Blur1 Blur2 Emboss Sharp1 Sharp2

Gambar 32 Daya tampung pesan pada cover berukuran 192 KB dengan berbagai jenis filterisasi.


(64)

Ukuran Cover: 756 KB 1220637 1383279 1431057 1218492 1544820 1696287 1748427 1924245 0 200000 400000 600000 800000 1000000 1200000 1400000 1600000 1800000 2000000

airplane.bmp baboon.bmp fractal.bmp pepper.bmp

Cover D a y a T a m p u n g P e s a n ( b it ) Normal Blur1 Blur2 Emboss Sharp1 Sharp2

Gambar 33 Daya tampung pesan pada cover berukuran 756 KB dengan berbagai jenis filterisasi


(65)

BAB V

SIMPULAN DAN SARAN

5.1 Simpulan

Penelitian ini menghasilkan simpulan sebagai berikut:

1 Aplikasi steganografi PVD yang dikembangkan pada penelitian ini dapat digunakan untuk mengetahui daya tampung pesan yang dimiliki oleh sebuah cover.

2 Filterisasi dapat digunakan untuk meningkatkan daya tampung pesan yang dimiliki sebuah cover dengan tetap mempertahankan nilai PSNR di atas ambang 20.

3 Filter sharp mampu meningkatkan daya tampung pesan cover paling besar dibandingkan jenis-jenis filter lainnya yang digunakan pada penelitian ini.

5.2 Saran

Penelitian lebih lanjut disarankan untuk menerapkan hal-hal sebagai berikut: 1 Beberapa jenis tabel jangkauan perlu digunakan untuk mencari daya

tampung yang lebih besar.

2 Perancangan algoritme untuk mempercepat waktu proses.

3 Nilai-nilai piksel yang berada di luar jangkauan perlu diatasi dengan merancang algoritme yang tepat.


(66)

DAFTAR PUSTAKA

Amirtharajan R, Akila R, Deepikachowdavarapu P, 2010. A Comparative Analysis of Image Steganography. International Journal of Computer Applications 2:41-47

Bender W, Gruhl D, Morimoto N, Lu A. 1996. Techniques for data hiding. IBM Systems Journal 35:313-336

Chang CC , Tseng HW. 2004. Steganographic method for digital images using side match. Pattern Recognition Letter 25:1431-1437. [Elsevier BV]. www.elsevier.com/locate/j.patrec.2004.05.006.pdf [17 Mar 2010].

Cole E. 2003. Hiding in Plain Sight Steganography and the Art of Covert Communication. Indiana: Wiley.

Gonzales RC, Richard E. Woods. 2002. Digital Image Processing. New York: Addison Wesley.

Gopalan K, Shi Q. 2010. Audio Steganography using Bit Modification – A Tradeoff on Perceptibility and Data Robustness for Large Payload Audio Embedding. Di dalam: Proceedings of 19th International Conference on Computer Communications and Networks; Zurich, 2-5 Agu 2010. Switzerland: ICCCN. hlm 1-6.

Guritman S. 2003. Pengantar Kriptografi. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam IPB.

Hair J, Bush R, Ortinau D. 2006. Marketing Research. New York: McGraw-Hill. Hearn D, Baker MP. 2004. Graphics Principles and Practice In C. New Jersey:

Prentice Hall.

Johnson NF, Jajodia S. 1998. Exploring Steganography: Seeing the Unseen. Computer 31: 26-34

Lindayati. 2007. Steganografi berbasis Least Significant Bit (LSB) pada gambar dengan penyisipan berukuran variabel [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.

Luo W, Huang F, Huang J. 2011. A more secure steganography based on adaptive pixel-value differencing scheme. Multimedia Tools Appl. 52:407-430

[MathWorks] MathWorks. 1997. Building GUIs with MATLABVersion 5. Natick: The MathWorks, Inc.


(67)

Medeni M.B O, Souidi EM. 2010. A Generalization of the PVD Steganographic Method. International Journal of Computer Science and Information Security

(IJCSIS) 8:156-159.

Nugroho EP, Ratnasari K, Ramadhani KN, Putro BL. 2009. Rekayasa Perangkat Lunak. Bandung: Politeknik Telkom.

Pramukanto Q. 2001. Mengolah citra gambar dan foto digital. http://eb ookbrowse. com/mengolah-citra-g ambar- dan-f ot o- di gital-pdf -d143663573. [ 20 Agu 2011]

Purnomo MH, Muntasa A. 2010. Konsep Pengolahan Citra Digital dan Ekstraksi Fitur. Yogyakarta: Graha Ilmu.

Rojali. 2009. Perbaikan dan Evaluasi Kinerja Algoritme Piksel Value Differencing

(PVD) [tesis]. Bogor. Fakultas Matematika dan Ilmu Pengetahuan Alam. IPB. Satzinger J, Jackson R, Burd S. 2007. Systems Analysis and Design in Changing

World. Kanada: Thomson Course Technology.

Sekaran U. 2003. Research Methods for Business. New York: John Wiley & Sons. Sridevi R, Damoradam A, Narasimham SVL. 2009. Efficient Method of Audio Steganography by Modified LSB Algorithm and Strong Encryption Key With Enhanced Security. JATIT 5, 6:768-771.

Wang C, Wu N, Tsai C, Hwang M. 2006. A high quality steganographic method with piksel-value differencing and modulus function. The Journal of Systems and Software 81:150-158.

Wijaya M C, Prijono A. 2007. Pengolahan Citra Digital Menggunakan Matlab Image Processing Toolbox. Bandung: Informatika.

Wu D, Tsai W. 2003. A steganographic method for images by pixel-value differencing. Pattern Recognition Letters 24: 1613–1626.

Zhang X, Wang S. 2004. Vulnerability fo Pixel-Value Differencing Steganography to Histogram Analysis and Modification for Enhanced Security. Pattern Recognition Letters 25: 331–339.

Zhang X, Wang S. 2005. Steganography Using Multiple-Base Notational System and Human Vision Sensitivity. IEEESignal Processing Letters 12:67-70. Zollner J, Federrath H, Klimant H, Pfitzmann A, Piotraschke R, Westfeld A,

Wicke G , Wolf G. 1998. Modeling the security of steganographic systems. Di dalam: Proceeding. 2nd Workshop on Information Hiding; Portland, 14-17 Apr 1998. LNCS 1525, hlm 345-355.


(68)

(69)

Lampiran 1 Source code

GUI halaman depan

function varargout = depan(varargin) % DEPAN M-file for depan.fig

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @depan_OpeningFcn, ... 'gui_OutputFcn', @depan_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin & isstr(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function depan_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = depan_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;

function embedtext_Callback(hObject, eventdata, handles) embededmessagetext

function embedimage_Callback(hObject, eventdata, handles) embededmessage

function extractmessagetext_Callback(hObject, eventdata, handles) extractmessagetext

function extractimage_Callback(hObject, eventdata, handles) extractmessage

function axes10_CreateFcn(hObject, eventdata, handles) imshow('logoipb.bmp')

Penyisipan pesan image

%read in cover image filename covername = cov;

%read in message image filename messagename = mess;

%inisialisasi variabel red tred=[];

wjred=0; tired=0; tixred=0;


(70)

Lanjutan tnred=0; pixelred=[]; pxred=[]; pyred=[]; matrixdatared=[]; matrixdataxred=[]; tmessred=[]; ttred=0;

%inisialisasi variabel green tgreen=[]; wjgreen=0; tigreen=0; tixgreen=0; tngreen=0; pixelgreen=[]; pxgreen=[]; pygreen=[]; matrixdatagreen=[]; matrixdataxgreen=[]; tmessgreen=[]; ttgreen=0;

%inisialisasi variabel blue tblue=[]; wjblue=0; tiblue=0; tixblue=0; tnblue=0; pixelblue=[]; pxblue=[]; pyblue=[]; matrixdatablue=[]; matrixdataxblue=[]; tmessblue=[]; ttblue=0; %tabel jangkauan

lb=[0 8 16 32 64 128]; %lowerbound ub=[7 15 31 63 127 255]; %upperbound bitditampung=[3 3 4 5 6 7];

%open cover image files [row,col,layer]=size(cov); cov=double(cov);

%open message image files [rowmess,colmess,layermess]=size(mess); mess=double(mess);

%memecah nilai R G B cover redcov=cov(:,:,1); redcov=double(redcov); [rowred,colred]=size(redcov); greencov=cov(:,:,2); greencov=double(greencov); [rowgreen,colgreen]=size(greencov); bluecov=cov(:,:,3); bluecov=double(bluecov); [rowblue,colblue]=size(bluecov); %memecah nilai R G B message redmess=mess(:,:,1);


(71)

Lanjutan [rowredmess,colredmess]=size(redmess); greenmess=mess(:,:,2); greenmess=double(greenmess); [rowgreenmess,colgreenmess]=size(greenmess); bluemess=mess(:,:,3); bluemess=double(bluemess); [rowbluemess,colbluemess]=size(bluemess); %convert to binary matrix 8bit

redmessbin = dec2bin(redmess,8); redmessbinstream = [];

greenmessbin = dec2bin(greenmess,8); greenmessbinstream = [];

bluemessbin = dec2bin(bluemess,8); bluemessbinstream = [];

%Convert RED binary matrix message to binary stream %REDMESSBINSTREAM

[rowredmessbin,colredmessbin]=size(redmessbin); for i=1:rowredmessbin

for j=1:colredmessbin

redmessbinstream = [redmessbinstream redmessbin(rowredmessbin*(j-1) + i)];

end end

lengthmessred=length(redmessbinstream);

[redbinstreamrow,redbinstreamcol]=size(redmessbinstream); %Convert green binary matrix message to binary stream %greenMESSBINSTREAM

[rowgreenmessbin,colgreenmessbin]=size(greenmessbin); for i=1:rowgreenmessbin

for j=1:colgreenmessbin

greenmessbinstream = [greenmessbinstream greenmessbin(rowgreenmessbin*(j-1) + i)]; end

end

lengthmessgreen=length(greenmessbinstream);

[greenbinstreamrow,greenbinstreamcol]=size(greenmessbinstream); %Convert blue binary matrix message to binary stream

%blueMESSBINSTREAM

[rowbluemessbin,colbluemessbin]=size(bluemessbin); for i=1:rowbluemessbin

for j=1:colbluemessbin

bluemessbinstream = [bluemessbinstream bluemessbin(rowbluemessbin*(j-1) + i)]; end

end

lengthmessblue=length(bluemessbinstream);

[bluebinstreamrow,bluebinstreamcol]=size(bluemessbinstream); %RED operation %cek bitspace

for x=0:1:row-1 %traverse through all the pixel value on for y=0:2:col-1

gred=redcov(1+x,1+y:2+y); gred=double(gred);

dred=gred(1,2)-gred(1,1); %d=difference between 2 pixel dred=redcov(1+x,2+y)-redcov(1+x,1+y);

dabsred= abs(dred); %absolute value to make 0<=d<=255 %menentukan lebar jangkauan dap sehingga diketahui ti


(72)

Lanjutan

for i=1:1:6

if(dabsred >= lb(i)&& dabsred <= ub(i)) wjred=ub(i)-lb(i)+1; tired=log2(wjred); end end tred=[tred;tired]; end end bitspacered=sum(tred); lengthmessred; if lengthmessred>bitspacered

comment=('PROCESS TERMINATED----UKURAN PESAN TERLALU BESAR') return

end

%green operation %cek bitspace

for x=0:1:row-1 %traverse through all the pixel value on for y=0:2:col-1

ggreen=greencov(1+x,1+y:2+y);

ggreen=double(ggreen);

dgreen=ggreen(1,2)-ggreen(1,1);

dgreen=greencov(1+x,2+y)-greencov(1+x,1+y);

dabsgreen= abs(dgreen); %absolute value to make0<=d<=255

%menentukan lebar jangkauan dap sehingga diketahui ti for i=1:1:6

if(dabsgreen >= lb(i)&& dabsgreen <= ub(i)) wjgreen=ub(i)-lb(i)+1; tigreen=log2(wjgreen); end end tgreen=[tgreen;tigreen]; end end bitspacegreen=sum(tgreen); if lengthmessgreen>bitspacegreen

comment=('PROCESS TERMINATED----UKURAN PESAN TERLALU BESAR') return

end

%blue operation %cek bitspace

for x=0:1:row-1 %traverse through all the pixel value on for y=0:2:col-1

gblue=bluecov(1+x,1+y:2+y); gblue=double(gblue);

dblue=gblue(1,2)-gblue(1,1); %d=difference between 2 pixel dblue=bluecov(1+x,2+y)-bluecov(1+x,1+y);

dabsblue= abs(dblue); %absolute value to make 0<=d<=255 %menentukan lebar jangkauan dap sehingga diketahui ti

for i=1:1:6

if(dabsblue >= lb(i)&& dabsblue <= ub(i)) wjblue=ub(i)-lb(i)+1; tiblue=log2(wjblue); end end tblue=[tblue;tiblue]; end end


(73)

Lanjutan

bitspaceblue=sum(tblue);

if lengthmessblue>bitspaceblue

comment=('PROCESS TERMINATED----UKURAN PESAN TERLALU BESAR') return

end

%mencari selisih dua nilai pixel (desimal) terdekat

for x=0:1:row-1 %traverse through all the pixel value on for y=0:2:col-1

gred=redcov(1+x,1+y:2+y); gred=double(gred);

dred=gred(1,2)-gred(1,1); %d=difference between 2 pixel dred=redcov(1+x,2+y)-redcov(1+x,1+y);

dabsred= abs(dred); %absolute value to make 0<=d<=255 %menentukan lebar jangkauan dap sehingga diketahui ti

for i=1:1:6

if(dabsred >= lb(i)&& dabsred <= ub(i)) wjred=ub(i)-lb(i)+1;

tired=log2(wjred); end

end

ttred=tired+tixred;

if tired+tixred < lengthmessred

redmessbindata=redmessbinstream(1+tnred:tired+tixred); tnred=tired+tixred;

tixred=tnred;

%convert bitstream to decimal

redmessdecdata=bin2dec(redmessbindata); dxred=redmessdecdata+lb(tired-1); %calculate m mred=abs(dxred-dabsred); mred/2; dabsred; [pxred,pyred]=newpixel(gred(1,1),gred(1,2),dabsred,dxred,mred); pixelred=[pixelred; pxred pyred];

matrixdatared={(redmessbindata)};

matrixdataxred=[matrixdataxred; matrixdatared]; else

redmessbindata=redmessbinstream(1+tnred:lengthmessred); %tnred=tired+tixred

%convert bitstream to decimal

redmessdecdata=bin2dec(redmessbindata); dxred=redmessdecdata+lb(tired-1);

%calculate m

mred=abs(dxred-dabsred);

[pxred,pyred]=newpixel(gred(1,1),gred(1,2),dabsred,dxred,mred); pixelred=[pixelred; pxred pyred];

matrixdatared={(redmessbindata)};

matrixdataxred=[matrixdataxred; matrixdatared]; break, end

end %endif

if ttred>=lengthmessred break, end end %endfor col

end %endfor row

%mencari selisih dua nilai pixel (desimal) terdekat


(1)

(2)

(3)

(4)

(5)

(6)