BAB II TINJAUAN PUSTAKA
II.1. Pengertian Citra Citra adalah representasi dari sebuah objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat analog, berupa sinyal-sinyal video, seperti gambar pada monitor televisi atau yang bersifat digital yang dapat langsung disimpan pada suatu pita magnetic. Menurut presisi yang digunakan untuk menyatakan titik-titik kordinat pada domain spatial (bidang), dan untuk menyatakan nilai keabuan atau warna dari suatu citra, maka secara teoritis citra dapat dikelompokkan menjadi empat kelas, yaitu : citra kontinu-kontinu, kontinu-diskrit, diskrit-kontinu, dan diskrit-diskrit. Dimana label pertama menyatakan presisi dari titik-titik koordinat pada bidang citra, sedangkan label kedua menyatakan presisi nilai keabuan atau warna. Kontinu dinyatakan dengan presisi angka tak terhingga, sedangkan diskrit dinyatakan dengan presisi angka terhingga. Komputer digital bekerja dengan angka-angka presisi terhingga. Dengan demikian, hanya citra dari kelas diskrit yang dapat diolah oleh komputer. Citra dari kelas tersebut lebih dikenal dengan citra digital. (Sumber : BN Budi Priyanto, 1992). Citra dalam format BMP lebih bagus dari pada citra dalam format JPEG, yang pada umumnya tidak dimampatkan sehingga tidak ada informasi yang hilang. Terjemahan bebas dari bitmap adalah pemetaan bit. Artinya, nilai intensitas pixel di dalam citra dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8,
9
10
artinya setiap pixel panjangnya 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255. Citra dalam format BMP ada tiga macam : citra biner, citra berwarna, dan citra hitam-putih (grayscale). Citra biner hanya mempunyai dua nilai keabuan, yaitu 0 dan 1. Oleh karena itu, 1 bit sudah cukup untuk merepresentasikan nilai pixel. Citra berwarna adalah citra yang lebih umum. Warna yang terlihat pada citra bitmap merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru. Setiap pixel disusun oleh tiga komponen warna : R (red), G (green), dan B (blue). Kombinasi dari tiga warna RGB tersebut menghasilkan warna yang khas untuk pixel yang bersangkutan. Nilai setiap pixel tidak menyatakan derajat keabuan secara langsung, tetapi nilai pixel menyatakan indeks tabel RGB yang membuat nilai keabuan merah (R), nilai keabuan hijau (G), dan nilai keabuan biru (B) untuk pixel yang bersangkutan. Pada citra hitam-putih, nilai R = G = B untuk menyatakan bahwa citra hitam-putih hanya mempunyai satu kanal warna. Citra hitam-putih umumnya adalah citra 8bit. Citra yang lebih kaya warna adalah citra 24-bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau, dan komponen warna biru. Masing-masing komponen panjangnya 8 bit. Citra 24-bit disebut juga citra 16 juta warna, karena ia mampu menghasilkan 16.777.216 kombinasi warna. (Sumber : BN Budi Priyanto, 1992).
11
II.1.1 Pengertian Citra Digital Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar 2 dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data 2 dimensi. Citra digital merupakan sebuah larik (array) yang berisikan nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu. (Sumber : Darma Putra 2010 : 19) Suatu citra dapat didefenisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keaban dari citra pada titik tersebut. Apabila nilai x,y dan nilai aplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital. (Sumber : Darma Putra 2010 : 19) II.2 Format Citra Format file citra standart yang digunakan saat ini terdiri dari beberapa jenis. Format-format ini digunakan dalam menyimpan citra dalam sebuah file. Setiap format memiliki karakteristik masing-masing. Berikut adalah penjelasan beberapa format umum digunakan saat ini. (Sumber : Darma Putra 2010 : 58) II.2.1 Format Bitmap (.bmp) Format .bmp adalah format penyimpanan standart tanpa kompresi yang umum dapat digunakan untuk menyimpan citra biner hingga citra warna. Format ini terdiri dari beberapa jenis yang setiap jenisnya ditentukan dengan jumlah bit yang digunakan untuk menyimpan nilai sebuah pixel. (Sumber : Darma Putra 2010 : 58)
12
II.2.2 Tagged Image Format (.tif, .tiff) Format .tif merupakan format penyimpanan citra yang digunakan untuk menyimpan citra bitmap hingga citra dengan warna palet terkompresi. Format ini dapat digunakan untuk menyimpan citra yang tidak terkompresi dan juga citra terkompresi. (Sumber : Darma Putra 2010 : 58) II.2.3 Format Portable Network Graphics (.png) Format .png adalah format penyimpanan citra terkompresi. Format ini dapat digunakan pada citra grayscale. Citra dengan palet warna, dan juga citra fullcolor. Format .png juga mampu menyimpan informasi hingga kanal alpha dengan penyimpanan sebesar 1 hingga 16 bit per kanal. (Sumber : Darma Putra 2010 : 59) II.2.4 Format JPEG (.jpg) Format .jpg adalah format sangat umum digunakan saat ini khususnya untuk transmisi citra. Format ini digunakan untuk menyimpan citra hasil kompresi dengan metode JPEG. (Sumber : Darma Putra 2010 : 59) II.2.5 Graphics Interchange Format (.gif) Format .gif digunakan pada citra warna dengan palet 8 bit. Penggunaan umumnya pada aplikasi web. Kualitas yang rendah menyebabkan format tidak terlalu populer di kalangan peneliti pengolahan citra digital. (Sumber : Darma Putra 2010 : 59) II.3 Jenis Citra Nilai suatu pixel memiliki nilai dalam rentang tertentu, dari nilai minimum sampai nilai maksimum. Jangkauan yang digunakan berbeda-beda tergantung dari
13
jenis warnanya. Namun secara umum jangkauannya adalah 0-255. Citra dengan penggambaran seperti ini digolongkan kedalam citra integer. Berikut ini jenisjenis citra berdasarkan nilai pixelnya. (Sumber : Darma Putra 2010 : 39) II.3.1 Citra Biner Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai pixel yaitu hitam dan putih. Citra biner juga disebut sebagai citra B&W (Black and White) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap pixel dari citra biner. (Sumber : Darma Putra 2010 : 40) Citra biner sering kali muncul sebagai hasil dari proses pengolahan seperti segmentasi, pengambangan, morfologi, ataupun dithering. (Sumber : Darma Putra 2010 : 40) II.3.2 Citra Grayscale Citra grayscale merupakan citra digital yang hanya memiliki suatu nilai kanal pada setiap pixelnya, dengan kata lain nilai bagian RED=GREEN=BLUE. Nilai tersebut digunakan untuk menunjukkan tingkat intensitas. Warna yang dimiliki adalah warna dari hitam, keabuan, dan putuh. Tingkatan keabuan disini merupakan warna abu dengan berbagai tingkatan dari hitam hingga mendekatii ptih. Citra grayscale berikut memiliki kedalaman warna 8 bit (256 kombinasi warna keabuan). (Sumber : Darma Putra 2010 : 40) II.3.3 Citra Warna (8 bit) Setiap pixel dari citra warna (8bit) hanya diwakili oleh 8 bit dengan jumlah warna maksimum yang dapat digunakan adalah 256 warna. (Sumber : Darma Putra 2010 : 41)
14
II.3.4 Citra Warna (16 bit) Citra warna 16 bit (biasanya disebut sebagai citra highcolor) dengan setiap pixelnya diwakili dengan 2 byte memory (16 bit). Warna 16 bit memiliki 65.536 warna. Dalam formasi bitnya, nilai merah dan biru mengambil tempat di 5 bit dikanan dan kiri. Komponen hijau memiliki 5 bit ditambah 1 bit ekstra. Pemilihan komponen hijau dengan deret 6 bit dikarenakan penglihatan manusia lebih sensitif terhadap warna hijau. (Sumber : Darma Putra 2010 : 42) II.3.5 Citra Warna (24 bit) Setiap pixel dari citra warna 24 bit diwakili dengan 24 bit sehingga total 16.777.216 variasi warna. Variasi ini sudah lebih dari cukup untuk memvisualisasikan seluruh warna yang dapat dilihat penglihatan manusia. Penglihatan manusia dipercaya hanya dapat membedakan hingga 10 juta warna. Setiap informasi pixel (RGB) disimpan ke dalam 1 byte data. 8 bit pertama menyimpan nilai biru, kemudian diikuti dengan nilai hijau pada 8 bit kedua dan pada 8 bit terakhir merupakan nilai merah. (Sumber : Darma Putra 2010 : 44) II.4. Steganografi II.4.1.Sejarah Steganografi Catatan pertama tentang steganografi ditulis oleh seorang sejarawan Yunani, Herodotus, yaitu ketika Histaeus seorang raja kejam Yunani dipenjarakan oleh Raja Darius di Susa pada abad 5 Sebelum Masehi. Histaeus harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus. Histaeus menulis pesan dengan cara mentato pesan pada kulit kepala seorang budak dan ketika
15
rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristogoras. Cerita lain tentang steganografi datang juga dari sejarawan Yunani, Herodotus, yaitu dengan cara menulis pesan pada papan kayu yang ditutup dengan lilin. Demeratus, seorang Yunani yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes, Demaratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukirnya pada bagian bawah kayu, lalu papan kayu tersebut dimasukkan ke dalam tabung kayu, kemudian tabung kayu ditutup kembali dengan lilin. Pada abad 20, steganografi benar-benar mengalami perkembangan. Selama berlangsung perang Boer, Lord Boden Powell (pendiri gerakan kepanduan) yang bertugas untuk membuat tanda posisi sasaran dari basis artileri tentara Boer. Untuk alasan keamanan, Boden Powell menggambar peta-peta posisi musuh pada sayap kupu-kupu agar gambar - gambar peta sasaran tersebut terkamuflase. Perang Dunia II adalah periode pengembangan teknik-teknik baru steganografi. Pada awal Perang Dunia II walaupun masih digunakan teknik tinta yang tak terlihat, namun teknik-teknik baru mulai dikembangkan seperti menulis pesan rahasia ke dalam kalimat lain yang tidak berhubungan langsung dengan isi pesan rahasia tersebut, kemudian teknik menulis pesan rahasia ke dalam pita koreksi karbon mesin ketik, dan juga teknik menggunakan pin berlubang untuk menandai kalimat terpilih yang digunakan dalam pesan, teknik terakhir adalah microdots yang dikembangkan oleh tentara Jerman pada akhir Perang Dunia II.
16
Dari contoh-contoh steganografi konvensional tersebut dapat dilihat bahwa semua teknik steganografi konvensional berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Seiring
dengan
perkembangan
teknologi
terutama
teknologi
komputerisasi, steganografi merambah juga ke media digital, walaupun steganografi dapat dikatakan mempunyai hubungan erat dengan kriptografi, tetapi kedua metode ini sangat berbeda II.4.2.Pengertian Steganografi Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorang pun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan. Kata steganografi (steganography) berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis” sehingga kurang lebih artinya "menulis (tulisan) terselubung". Teknik ini meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar.( sumber : Munir, 2006 ) Pengertian lain dari Steganografi, yaitu sebuah teknik penyembunyian pesan rahasia, yang biasanya sebuah pesan yang disisipi (diekstrak) kedalam suatu media sebagai pembawa pesan. ( sumber : Long Truong, 2002 ).
17
Kini, istilah steganografi termasuk penyembunyian data digital dalam filefile komputer. Contohnya, si pengirim mulai dengan file gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya). Pada umumnya, pesan steganografi muncul dengan rupa lain seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat diantara garisgaris yang kelihatan. II.4.3. cara kerja Steganografi Steganografi merupakan salah satu cara untuk menyembunyikan suatu pesan / data rahasia di dalam data atau pesan lain yang tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti kuncinya . Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia saat enkripsi tidak dapat dilakukan atau bersamaan dengan enkripsi. Jadi, walaupun enkripsi berhasil dipecahkan (decipher) pesan / data rahasia tetap tidak terlihat. Selain itu, pada kriptografi pesan disembunyikan dengan “diacak” sehingga pada kasus-kasus tertentu dapat dengan mudah mengundang kecurigaan, sedangkan pada steganografi pesan “disamarkan” dalam bentuk yang relatif “aman” sehingga tidak terjadi kecurigaan itu. Steganografi dapat digunakan pada berbagai macam bentuk media, seperti image, audio, dan video.
18
Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) didalam file-file lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. Metode ini termasuk tinta yang tidak tampak, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar. Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar kedalam algoritma yang digunakan. Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan diantaranya : 1. Format image : bitmap (bmp), gif, pcx, jpeg, dll. 2. Format audio : wav, voc, mp3, dll. 3. Format lain : teks file, html, pdf, dll. Kelebihan steganografi dari pada kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan menimbulkan kecurigaan.
19
Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya. Sebuah
pesan
steganografi
(plaintext),
biasanya
pertama-tama
dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya. Perbedaan antara steganografi dengan watermarking terlihat pada pesan yang disembunyikan. Jika pada steganografi pesan rahasia disembunyikan di dalam media penampung dimana media penampung tersebut tidak berarti apa-apa (hanya sebagai pembawa), maka pada watermark justru media penampung tersebut
dilindungi
kepemilikannya dengan
pemberian label
hak cipta
(watermark). Selain itu, jika pada steganografi kekokohan (robustness) data tidak terlalu penting, maka pada watermarking kekokohan watermark merupakan properti utama seba watermark tidak boleh rusak atau hilang meskipun media penampungnya dimanipulasi. (sumber : Munir, 2006). II.4.4. Kriteria Steganografi yang Bagus Steganografi yang dibahas di sini adalah penyembunyian data di dalam citra digital. Meskipun demikian, penyembunyian data dapat juga dilakukan pada wadah berupa suara digital, teks, ataupun video.
20
Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: 1. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. 2. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung. Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak. 3. Data yang disembunyikan harus dapat diungkapkan kembali (recovery). II.4.5. Teknik Penyembunyian Data Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam segmen citra dengan bit-bit data rahasia. Salah satu metode penyembunyian data yang sederhana adalah LSB Modification. Perhatikan contoh sebuah susunan bit pada sebuah byte: 11010010 LSB = Least Significant Bit MSB = Most Siginificant Bit MSB
LSB
Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menyatakan warna keabuan tertentu, maka
21
perubahan satu bit LSB tidak mengubah warna keabuan tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil. Misalkan segmen data citra sebelum perubahan: 00110011
10100010
Segmen data citra setelah „
00110010
11100010
01101111
0 1 1 1 „ disembunyikan:
10100011
11100011
01101111
Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49. Bilangan acak dibangkitkan dengan pseudo-random-number-generator (PRNG) kriptografi. PRNG kriptografi sebenarnya adalah algoritma kriptografi yang digunakan untuk enkripsi. PRNG dibangun dengan algoritma DES (Data Encryption Standard), algoritma hash MD5, dan mode kriptografi CFB (ChiperFeedback Mode). Tujuan dari enkripsi adalah menghasilkan sekumpulan bilangan acak yang sama untuk setiap kunci enkripsi yang sama. Bilangan acak dihasilkan dengan cara memilih bit-bit dari sebuah blok data hasil enkripsi
22
Teknik penyembunyian data untuk citra 8-bit berbeda dengan citra 24-bit. Seperti diketahui berkas citra bitmap terdiri atas bagian header, palet RGB, dan data bitmap. Pada citra 8-bit, setiap elemen data bitmap menyatakan indeks dari peta warnanya di palet RGB. Format citra 8-bit (256 warna)
<palet RGB> R
G
B
1
20
45
24
2
14
13
16
3
12
17
15
46
78
25
… 256
2211135…
Pada citra 24-bit, tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B.
23
Format citra 24-bit (16 juta warna)
2211135…
Pada contoh format citra 24-bit di atas, pixel pertama mempunyai R = 2, G = 2, B = 1. 1. Teknik penggantian bit pada citra bukan 24-bit. Sebelum melakukan penggantian bit LSB, semua data citra yang bukan tipe 24-bit diubah menjadi format 24-bit. Jadi, setiap data pixel sudah mengandung komponen RGB. Setiap byte di dalam data bitmap diganti satu bit LSB-nya dengan bit data yang akan disembunyikan. Jika byte tersebut merupakan komponen hijau (G), maka penggantian 1 bit LSB-nya hanya mengubah sedikit kadar warna hijau, dan perubahan ini tidak terdeteksi oleh mata manusia. 2. Teknik penggantian bit pada citra 24-bit. Karena data bitmap pada citra 24-bit sudah tersusun atas komponen RGB, maka tidak perlu dilakukan perubahan format. Setiap byte di dalam data bitmap diganti satu bit LSB-nya dengan bit data yang akan disembunyikan.
24
3. Perubahan Jumlah Warna Pada citra 8-bit, jumlah warna terbatas, hanya 256 warna. Pengubahan format citra 8-bit menjadi 24-bit akan menghasilkan warna baru (yang semula tidak terdapat di dalam palet RGB). Setiap elemen RGB pada tabel palet berpotensi menjadi 8 warna berbeda setekah proses penggantian bit LSB. Hal ini karena setiap data bitmap terdiri atas 3 byte, maka tersedia 3 bit LSB untuk penggantian. Penggantian 3 bit LSB menghasilkan 23 = 8 kombinasi warna. Dengan demikian, steganografi pada citra 256 warna berpotensi menghasilkan 256 8 = 2048 warna. Untuk menghindari kelebihan warna dari 256, maka sebelum proses penyembunyian data, warna citra 8-bit diturunkan terlebih dahulu menjadi 32 warna (jika jumlah warnanya kurang dari 32, tidak perlu dilakukan penurunan warna). Dengan demikian, jika setiap warna menghasilkan 8 warna baru, jumlah warna seluruhnya maksimum 32 8 = 256 warna. Penurunan jumlah warna dilakukan dengan cara kuantisasi warna (color quantization). Penurunan jumlah warna harus tetap menghasilkan citra yang tampak persis seperti citra semula. Algoritma kuantisasi warna ada beberapa buah, antara
lain
algoritma
diversity.
Prinsip
algoritma
diversity
adalah
memaksimumkan perbedaan warna. Algoritma Diversity 1. Buat histogram citra. Warna yang frekuensi kemunculannya 0 dibuang karena tidak akan digunakan. 2. Pilih warna dengan frekuensi kemunculan tertinggi sebagai warna patokan. Masukkan warna ini ke dalam senarai warna terpilih.
25
3. Cari warna yang mempunyai perbedaan terjauh dengan warna patokan. Masukkan warna tersebut ke dalam senarai warna terpilih. Perbedaan dua buah warna dihitung dengan rumus jarak Euclidean: d = { (r1 – r2)2 + (g1 – g2)2 + (b1 – b2)2 }1/2 yang dalam hal ini, r1, g1, dan b1 adalah komponen RGB dari warna pertama, dan r2, g2, dan b2 adalah komponen RGB dari warna kedua. 4. Untuk setiap warna yang tersisa di dalam list, hitung jaraknya dari masingmasing warna di dalam senarai warna terpilih. Ambil warna yang paling jauh berbeda dengan warna yang sudah dipilih. Lakukan langkah 4 ini berulang kali sampai k warna sudah terpilih. 4. Ukuran Data Yang Disembunyikan Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung. Pada citra 8-bit yang berukuran 256 256 pixel terdapat 65536 pixel, setiap pixel berukuran 1 byte. Setelah diubah menajdi citra 24-bit, ukuran data bitmap menjadi 65536 3 = 196608 byte. Karena setiap byte hanya bisa menyembunyikan satu bit di LSB-nya, maka ukuran
data yang akan
disembunyikan di dalam citra maksimum 196608/8 = 24576 byte. Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya.
26
Semakin besar data disembunyikan di dalam citra, semakin besar pula kemungkinan data tersebut rusak akibat manipulasi pada citra penampung. 5. Teknik Pengungkapan Data Data yang disembunyikan di dalam citra dapat dibaca kembali dengan cara pengungkapan (reveal atau extraction). Posisi byte yang menyimpan bit data dapat diketahui dari bilangan acak yang dibangkitkan oleh PRNG. Karena algoritma kriptografi yang digunakan menggunakan kunci pada proses enkripsi, maka kunci yang sama digunakan untuk membangkitkan bilangan acak. Bilangan acak yang dihasilkan sama dengan bilangan acak yang dipakai pada waktu penyembunyian data. Dengan demikian, bit-bit data rahasia yang bertaburan di dalam citra dapat dikumpulkan kembali. II.5. Watermaking Watermarking merupakan suatu bentuk dari steganography (ilmu yang mempelajari bagaimana menyembunyikan suatu data pada data yang lain), dalam mempelajari teknik-teknik bagaimana penyimpanan suatu data (digital) kedalam data host digital yang lain (istilah host digunakan untuk data atau sinyal digital yang ditumpangi)”. (sumber : Scheineider, 1994). II.5.1. Definisi Watermark Digital Ada beberapa pengertian mengenai watermark digital yang dapat diperoleh dari berbagai referensi, baik itu dari paper-paper ilmiah maupun dari sumbersumber lain yang penulis dapatkan dari Internet. Watermarking World (2002) mendefinisikan watermark sebagai data tersembunyi yang ditambahkan pada sinyal pelindung (cover signal), sedemikian rupa sehingga penambahan tersebut
27
tidak terlihat. Watermark dapat juga merupakan suatu pola yang terbentuk oleh kumpulan bit data tertentu, yang disisipkan kedalam file citra, audio ataupun video yang mengidentifikasikan informasi hakcipta file tersebut (sumber : Webopedia, 2003). Lebih jauh lagi watermark bisa juga berupa kode yang membawa informasi mengenai pemilik hak cipta, pencipta, pembeli yang sah dan segala sesuatu yang diperlukan untuk menangani hak kepemilikan media digital. Watermark sengaja ditanamkan secara permanen pada data digital sedemikian hingga pengguna yang berwenang dapat dengan mudah membacanya, disisi lain watermark tersebut haruslah tidak mengubah isi media kecuali sedikit atau perubahan tersebut tidaklah tampak atau kurang begitu tampak bagi indera manusia (sumber : Barni et al, 1998). Dari beberapa definisi diatas ada benang merah yang dapat ditarik untuk memberikan definisi watermark digital, yaitu sebuah watermark merupakan sebuah pola/kode/data tertentu yang membawa informasi tertentu sesuai dengan tujuannya dan sengaja ditanamkan secara permanen kedalam data media induknya. II.5.2. Framework Watermarking Digital Jika watermark merupakan sesuatu yang ditanamkan, maka watermarking merupakan proses penanaman watermark tersebut. Secara umum framework sebuah algoritma watermarking tersusun atas tiga bagian, yaitu [(sumber : Duan and King, 1999) dan (sumber Mohanty, 1999)] : 1. Watermark, 2. Algoritma penyisipan watermark (enkoder), dan
28
3. Algoritma pendeteksian watermark (dekoder). Watermark dapat berupa representasi identitas kepemilikan media digital,maupun informasi lain yang dipandang perlu untuk ditanamkan kedalam media
yang bersangkutan. Algoritma penyisipan watermark menangani
bagaimana sebuah watermark ditanamkan pada media induknya. Algoritma pendeteksian watermark menentukan apakah didalam sebuah media digital terdeteksi watermark yang sesuai atau tidak. II.5.3. Karakteristik Watermark Digital Ada beberapa karakteristik atau sifat khusus tertentu yang harus dimiliki oleh sebuah watermark. Sifat-sifat tersebut sangat bergantung kepada aplikasi watermarking yang akan dibuat, atau dengan kata lain tidak ada sekelompok sifat tertentu yang harus dipenuhi oleh semua teknik watermarking. Meskipun demikian ada beberapa sifat yang secara umum dipunyai aplikasi watermarking. Sifat-sifat tersebut diantaranya adalah sebagai berikut [(sumber Swanson et al, 1998) dan (sumber : Langelaar et al, 2000) : a.
Perceptual transparency
Sebagian besar aplikasi watermarking mengharuskan algoritma watermarking digital menanamkan watermark sedemikian hingga ia tidak mempengaruhi kualitas media yang disisipi watermark. Media yang telah ditanami watermak haruslah sulit dibedakan dengan media aslinya oleh indera manusia. Atau dengan kata lain penanaman watermark pada citra haruslah tidak terdeteksi oleh indera
29
penglihatan manusia dan penanaman watermark pada audio haruslah tidak dikenali oleh indera pendengaran. b.
Robustness
Untuk watermark yang memang ditujukan untuk membuktikan keotentikan media induk, atau yang disebut dengan fragile watermark, tidak disyaratkan memiliki sifat ini. Tetapi jika watermark digunakan untuk aplikasi yang lain, diperlukan watermark yang selalu tertanam didalam media induk, meskipun media induknya mengalami penurunan kualitas akibat serangan. c.
Security
Dalam banyak aplikasi watermarking, proses penanaman watermark haruslah aman sedemikian hingga pihak yang tidak berhak harus tidak dapat mendeteksi keberadaan data yang ditanamkan, dan mampu menghilangkan data tersebut. Sekali lagi keamanan disini juga sangat bergantung pada aplikasinya. Sebuah prosedur penanaman watermark dikatakan aman jika ia tidak dapat dipecahkan kecuali pihak yang tidak berhak tersebut memiliki akses terhadap kunci yang mengendalikan proses penyisipan data pada media induk. d. Public vs Private Watermarking Dalam beberapa aplikasi, seperti copyright protection, pengekstrakan watermark bisa saja membutuhkan media aslinya. Teknik ini disebut dengan private atau nonoblivious watermarking. Sedangkan pada aplikasi yang lain, seperti copy protection dan indexing, proses pendeteksian watermark seharusnya tidak memiliki akses terhadap media asli yang belum terwatermak. Teknik ini sering disebut sebagai public, blind, atau oblivious watermarking.
30
Klasifikasi Teknik Watermarking Digital Dalam satu dasawarsa terakhir ini cukup banyak teknik-teknik watermarking yang sudah diusulkan oleh para peneliti.
Teknik-teknik
tersebut
berdasarkan
domain
kerjanya,
dapat
diklasifikasikan menjadi tiga kelompok, yaitu: 1. Teknik watermarking yang bekerja pada domain spasial (spatial domain watermarking). 2. Teknik watermarking yang bekerja pada domain transform / frekuensi (transform domain watermarking) 3. Teknik yang bekerja pada kedua domain diatas (hybrid techniques watermarking). II.6. Definisi Spread Spectrum Sebuah teknik transmisi dimana kode pseudo noise, independent dari data informasi, yang digunakan sebagai gelombang modulasi untuk “menyebarkan” energi sinyal melalui sebuah bandwidth jauh lebih besar dari pada bandwidth sinyal informasi. Pada penerima, sinyal di-“kumpulkan” menggunakan replika kode pseudo-noise yang telah disinkronisasikan.
II.6.1. Prinsip Dasar Sistem Spread Spectrum II.6.1.1. Direct Sequence Spread Sebuah pseudo noise sequence pnt dibuat pada modulator, yang digunakan sebagai konjungsi dengan sebuah modulasi PSK M-ary untuk menggeser fase dari PSK secara psudorandom pada chipping rate Rc (=1/Tc), yaitu sebuah frekuensi yang berupa perkalian integer dari Rs (=1/Ts). bandwidth yang ditransmisikan
31
ditentukan oleh chip rate dan baseband filtering. Modulasi PSK memerlukan demodulasi yang koheren.
Gambar II.1. Direct Sequence Spread (Sumber: Jurnal Spread Spectrum,Wicaksono. Muhammad.A Jurusan Teknik Elektro FT UGM,Yogyakarta) II.6.1.2. Frequency Hopping Spread Spectrum Sebuah pseudo noise sequence pnt dibuat pada modulator, yang digunakan sebagai konjungsi dengan sebuah modulasi FSK M-ary untuk menggeser frekuensi pembawa dari PSK secara psudorandom pada hopping rate Rh. Sinyal yang ditransmisikan melingkupi beberapa frekuensi dalam satu waktu, masingmasing untuk satu periode Th (=1/Rh), disebut sebagai dwell time. FHSS membagi bandwidth yang ada ke dalam N kanal dan hop diantara kanal-kanal tersebut menurut PN sequence. Transmitter dan receiver mengikuti pola frekuensi hop yang sama.
32
Gambar II.2. Frequency Hopping Spread Spectrum (Sumber: Jurnal Spread Spectrum,Wicaksono. Muhammad.A Jurusan Teknik Elektro FT UGM,Yogyakarta) II.6.1.3. Prinsip dasar dari Direct Sequence Spread Spectrum (DSSS) Untuk modulasi BPSK building block dari system DSSS sebagai berikut :
Gambar II.3. Direct Sequence Spread Spectrum (DSSS) (Sumber: Jurnal Spread Spectrum,Wicaksono. Muhammad.A Jurusan Teknik Elektro FT UGM,Yogyakarta)
Input : -
Binary data dt dengan rate Rs = 1/Ts (= bitrate Rb untuk BPSK )
-
Pseudo-noise code pnt dengan chip rate Rc = 1/Tc ( sebuah integer dari Rs)
33
II.6.1.3.1 Spreading Pada transmitter, binary data dt ( untuk BPSK,I dan Q untuk QPSK) adalah “secara langsung” dikalikan dengan PN sequence pnt yang terpisah dari baseband
yang
binary
data,untuk
memproduksi
sinyal
baseband
yang
ditransmisikan txb.txb = dt.pnt.efek dari perkalian dt dengan PN sequence adalah untuk menyebarkan baseband bandwidth Rb dari Dt ke baseband bandwidth Rc. II.6.1.3.2 Despreading Sinyal spread spectrum tidak bias dideteksi dengan penerima narrowband konvensional.pada receiver,sinyal baseband rxb yang diterima dikalikan dengan PN sequence pnt. 1. Jika pnt = pnt dan disinkronisasi ke PN sequence pada data yang diterima,kemudian binary data yang dipulihkan diproduksi pada dt.akibat perkalian dari sinyal spread spectrum rxb dengan PN sequence pnt digunakan pada transmitter adalah untuk despread bandwidth rxb ke Rs. 2. Jika pnr ≠ pnt,kemudian tidak terjadi despread.sinyal dr memiliki spread spectrum.penerima tidak mengetahui PN sequence dari transmitter sehingga tidak bias memproduksi kembali data yang telah dikirim. II.7. Sekilas Sejarah Java Bahasa pemrograman java
dimulai dari sebuah tim pengembangan
software dari Sun Microsystem yang dipimpin oleh james Gosling dan Patrick
34
Naughton. Pada tahun 1991, Sun Microsystem mengembangkan sebuah bahasa pemrograman yang berukuran kecil untuk diimplementasikan pada alat elektronik rumah tangga seperti switchbox TV kabel. Berhubungan alat tersebut tidak memiliki banyak memori, maka bahasa yang digunakan harus sangat kecil dan menghasilkan kode yang kecil pula. Permasalahan lainnya adalah alat-alat tersebut memiliki CPU yang berbeda-beda karena dibuat oleh manufactur yang berbeda. Jadi sangatlah diharuskan bahasa pemrograman tersebuttidak terikat pada sebuah arsitektur mesin tertentu saja. (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:1) Oleh karena itu adanya keharusan sebuah pemrograman yang kecil, menghasilkan kode yang kecil pula dan harus platform independen (tidak terikat pada platform) membuat tim pada proyek tersebut terinspirasi oleh ide pemrograman yang sama yang telah ditemukan oleh Niklaus Wirth, Penemu pascal. Jadi penemu pascal memiliki pemikiran tentang sebuah software bahasa pemrograman portable dan tidak tergantung pada sebuah platform atau mesin. Bahasa pemrogaman komersial yang disebut UCSD pascal tersebut menghasilkan kode intermediate yang diperuntukkan bagi sebuah mesin virtual. Jadi, kode asli dari bahasa pemrograman tersebut tidak tergantung pada mesin ataupun platform sistem operasi karena USCD pascal menghasilkan intermediate code yang selanjutnya akan dikompilasi atau diterjemahkan oleh mesin virtual ke kode mesin dimana kode tersebut dijalankan. (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:2)
35
Pada tahun-tahun tersebut sangat pesat. Namun saat itu browser juga masih jarang ditemui. Pada tahun 1994 kebanyakan orang menggunakan mosaic, yaitu sebuah browser nonkomersial yang dibuat oleh Marc Anderseen pada tahun 1993 di supercomputing center universitas illinois. Pada pertengahan tahun 1994 para pengembang java menyadari bahwa mereka dapat saja membangun sebuah browser yang lebih flexibel dari pada yang lainnya. Selanjutnya dibuatlah HotJava browser yang dikerjakan oleh patrick Naughton dan Jonathan Payne. Tujuan utama dari pembuatan browser tersebut tidak lain adalah untuk mempromosikan bahasa java dan memamerkan kekuatannya. Java juga memiliki kekuatan pada aplikasi yang disebut applet yang disebut juga berhubungan dengan browser. (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:2) Booming bahasa java dimulai pada tahun 1995 ketika Netscape memutuskan untuk menggunakan java pada web browsernya, yaitu Netscape Navigator apada tahun 1996. Hal ini kemudian diikuti oleh raksasa – raksasa software seperti IBM, Symantec, Inprise dan masih banyak yang lain termasuk Microsoft dengan internet explorernya. Sun sendiri merilis java pertama kalinya pada tahun 1996, kemudian diikuti dengan versi 1.02 beberapa bulan kemudian. Pada awalnya java masi mampu memenuhi kebutuhan para pengembang untuk membangun software secara profesional. Baru pada tahun 1998 muncul versi java 1.2 yang dirilis pada bulan Desember dan beberapa hari kemudian namanya diganti dengan java 2. (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:3)
36
II.7.1. Java Language Spesification, API, JDK dan IDE Java language spesification adalah teknis dari bahasa pemrograman java yang didalamnya terdapat aturan penulisan sintaks dan semantik java. Referensi lengkap tentang java language spesification dapat dilihat pada website resmi java, yaitu http://java.sun.com/docs/books/jl. Api adalah Aplication Programming Interface yaitu sebuah layer yang berisi class-class yang sudah didefinisikan dan antarmuka pemrograman yang akan membantu para pengembangan aplikasi dalam perancangan sebuah aplikasi. Pada saat ini dikenal ada tiga macam API dari java, yaitu: a. J2SE, yaitu Java 2 Standard Edition adalah sebuah API yang dapat digunakan untuk mengembangkan aplikasi-aplikasi yang bersifat client – side standalone atau applet. b. J2EE, yaitu Java 2 Enterprise Edition adalah API yang digunakan untuk melakukan pengembangan aplikasi-aplikasi yang bersifat server-side seperti Java Servlet, dan Java Server Pages. c. J2ME, yaitu Java 2 Micro Edition adalah API yang merupakan subset dari J2SE tetapi memiliki kegunaan untuk mengembangkan aplikasi pada handheld device seperti Smart Phone atau PDA tentu saja yang didalamnya telah ditanamkaninterpreter java. (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:4) IDE (Integreted Development Environment), yaitu sebuah lingkungan pengembangan aplikasi lengkap dan dapt membantu proses pengembangan
37
sebuah aplikasi menjadi lebih cepat. Berikut ini situs web download java dan netbeans.
Gambar II.3. Situs Resmi Java (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:5)
Gambar II.4. Website Untuk Mendownload NetBeans Terbaru (Sumber: Sulistiani, Sri. Membangun GUI dengan JAVA Netbean 6.5 : 2010:5)