• Tidak ada hasil yang ditemukan

BAB II DASAR TEORI

2.4 Algoritma LZW

Algoritma LZW dikembangkan dari metode pemampatan yang dibuat oleh Ziv dan Lempel pada tahun 1977. Algoritma ini melakukan pemampatan dengan menggunakan kamus, dimana fragmen-fragmen teks diganti dengan indeks yang diperoleh dari sebuah kamus. Prinsip sejenis juga digunakan dalam sandi Braille, di mana sandi-sandi khusus digunakan untuk menunjukkan kata-kata yang ada. Pendekatan ini bersifat adaptif dan efektif karena banyak karakter dapat disandikan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Prinsip pemampatan tercapai jika referensi dalam bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan string aslinya.

2.4.1 Algoritma pemampatan LZW

Algoritma pemampatan LZW sebagai berikut :

1. Kamus diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. P menunjukkan karakter pertama dalam laju karakter. 3. C menunjukkan karakter berikutnya dalam laju karakter. 4. Apakah string (P + C) terdapat dalam kamus ?

• Jika ya, maka P adalah P + C (gabungkan P dan C menjadi string baru).

i. Keluaran sebuah sandi untuk menggantikan string P.

ii. Tambahkan string (P + C) ke dalam kamus dan berikan nomor / sandi berikutnya yang belum digunakan dalam kamus untuk string tersebut. iii. String P menggantikan string C.

5. Apakah masih ada karakter berikutnya dalam laju karakter ? Jika ya, maka kembali ke langkah 2.

Jika tidak, maka keluaran sandi yang menggantikan string P, lalu terminasi proses berhenti.

Sebagai contoh, string “ABBABABAC” akan dimampatkan dengan algoritma LZW. Isi kamus pada awal proses diset dengan tiga karakter dasar yang ada: “A”, “B”, dan “C”. Tahapan proses pemampatan ditunjukkan pada Tabel 2.1. Kolom posisi menyatakan posisi sekarang dari laju karakter dan kolom karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom kamus menyatakan string baru yang sudah ditambahkan ke dalam kamus dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom keluaran menyatakan sandi keluaran yang dihasilkan oleh langkah pemampatan. Hasil proses pemampatan ditunjukkan pada Gambar 2.5.

Tabel 2.1 Tahapan proses pemampatan LZW

Langkah Posisi Karakter Kamus Keluaran

1. 1 A [4] A B [1] 2. 2 B [5] B B [2] 3. 3 B [6] B A [2] 4. 4 A [7] A B A [4] 5. 6 A [8] A B A C [7] 6. 9 C - - - [3]

Gambar 2.5 Hasil Pemampatan LZW

Proses penirmampatkan pada LZW dilakukan dengan prinsip yang sama seperti proses pemampatan. Algoritma penirmampatkan dijelaskan sub bab 2.4.2. Pada awalnya, kamus diinisialisasi dengan semua karakter dasar yang ada. Lalu pada setiap langkah, sandi dibaca satu per satu dari laju sandi. Dikeluarkan string dari kamus yang berkorespondensi dengan sandi tersebut, dan ditambahkan string baru ke dalam kamus. Tahapan proses penirmampatkan ini ditunjukkan pada Tabel 2.2. Metode LZW yang diterapkan dalam penelitian ini berbentuk dinamis, dimana hanya dilakukan satu kali pembacaan terhadap berkas yang akan dimampatkan balik. Penyandian data dilakukan secara bersamaan dengan proses penambahan string baru ke dalam kamus.

2.4.2 Algoritma penirmampatkan LZW

Algoritma penirmampatkan LZW sebagai berikut :

1. Kamus diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. CW menunjukkan sandi pertama dari laju sandi (menunjuk ke salah satu karakter dasar).

3. Lihat kamus dan keluaran string dari sandi tersebut (string CW) ke laju karakter.

4. String PW menggantikan string CW, dimana CW menunjukkan sandi berikutnya dari laju sandi.

5. Apakah string CW terdapat dalam kamus ? . Jika ada, maka : i. keluaran string CW ke laju karakter

ii. P menunjukkan string PW

iii. C menunjukkan karakter pertama dari string CW

iv. Tambahkan string (P+C) ke dalam kamus. Jika tidak, maka : a. P menggantikan string PW

b. C menggantikan karakter pertama dari string.PW

c. Keluaran string (P+C) ke laju karakter dan tambahkan string tersebut ke dalam kamus (sekarang berkorespondensi dengan CW); 6. Apakah terdapat sandi lagi di laju sandi ? Jika ya, maka kembali ke

langkah 4. Jika tidak, maka terminasi proses berhenti.

Tabel 2.2 Tahapan proses penirmampatkan LZW

Langkah Sandi Keluaran Kamus

1. [1] A - - - 2. [2] B [4] A B 3. [2] B [5] B B 4. [4] A B [6] B A 5. [7] A B A [7] A B A 6. [3] C [8] A B A C 2.5 Steganografi

Steganografi adalah suatu teknik untuk menyembunyikan informasi yang bersifat pribadi dengan sesuatu yang hasilnya akan tampak seperti informasi normal lainnya. Steganografi biasanya sering disalah artikan dengan kriptografi karenanya keduanya sama-sama bertujuan untuk melindungi informasi yang berharga. Perbedaan yang mendasar antara keduanya yaitu steganografi berhubungan dengan informasi tersembunyi sehingga tampak seperti tidak ada informasi tersembunyi sama sekali. Jika seseorang mengamati objek yang menyimpan informasi tersembunyi tersebut, dan tidak menyangka bahwa terdapat pesan rahasia dalam objek tersebut. Hal ini menyebabkan seseorang tidak akan berusaha memecahkan informasi dari objek tersebut.

(tersembunyi) dan Graptos (tulisan). Steganografi di dunia modern biasanya mengacu pada informasi atau suatu arsip yang telah disembunyikan ke dalam suatu arsip citra digital, audio, atau video. Satu hal penting yang menjadi kelebihan steganografi adalah kemampuannya untuk menipu persepsi manusia, manusia tidak memiliki insting untuk mencurigai adanya arsip-arsip yang memiliki informasi yang tersembunyi di dalamnya, terutama bila arsip tersebut tampak seperti arsip normal lainnya. Namun, begitu terbentuk pula suatu teknik yang dikenal dengan steganalysis, yaitu suatu teknik yang digunakan untuk mendeteksi penggunaan steganografi pada suatu arsip. Seorang steganalyst tidak berusaha untuk melakukan dekripsi terhadap informasi yang tersembunyi dalam suatu arsip, yang dilakukan adalah berusaha untuk menemukannya. Terdapat beberapa cara yang dapat digunakan untuk mendeteksi steganografi seperti melakukan pengamatan terhadap suatu arsip dan membandingkannya dengan salinan arsip yang dianggap belum direkayasa, atau berusaha mendengarkan dan membandingkan perbedaannya dengan arsip lain bila arsip tersebut adalah dalam bentuk audio.PP

[11]

P P

2.5.1 Sejarah Steganografi

Seperti kriptografi, penggunaan steganografi sebetulnya telah digunakan berabad-abad yang lalu bahkan sebelum istilah steganografi itu sendiri muncul. Berikut adalah contoh penggunaan steganografi di masa lalu:

1. Selama terjadinya Perang Dunia ke-2, tinta yang tidak tampak telah digunakan untuk menulis informasi pada lembaran kertas sehingga saat kertas tersebut jatuh di tangan pihak lain hanya akan tampak seperti lembaran kertas kosong biasa. Cairan seperti air kencing, susu, vinegar, dan jus buah digunakan sebagai media penulisan sebab bila salah satu elemen tersebut dipanaskan, tulisan akan menggelap dan tampak melalui mata manusia.

2. Pada sejarah Yunani kuno, masyarakatnya biasa menggunakan seorang pembawa pesan sebagai perantara pengiriman pesan. Pengirim pesan tersebut akan dicukur rambutnya, untuk kemudian dituliskan suatu pesan

pada kepalanya yang sudah botak. Setelah pesan dituliskan, pembawa pesan harus menunggu hingga rambutnya tumbuh kembali untuk dapat mengirimkan pesan kepada pihak penerima. Pihak penerima kemudian akan mencukur rambut pembawa pesan tersebut untuk melihat pesan yang tersembunyi.

3. Metode lain yang digunakan oleh masyarakat Yunani kuno adalah dengan menggunakan lilin sebagai media penyembunyi pesan mereka. Pesan dituliskan pada suatu lembaran, dan lembaran tersebut akan ditutup dengan lilin untuk menyembunyikan pesan yang telah tertulis. Pihak penerima kemudian akan menghilangkan lilin dari lembaran tersebut untuk melihat pesan yang disampaikan oleh pihak pengirim.

2.5.2 Kegunaan Steganografi

Seperti perangkat keamanan lainnya, steganografi dapat digunakan untuk berbagai macam alasan, beberapa diantaranya untuk alasan yang baik, namun dapat juga untuk alasan yang tidak baik. Untuk tujuan legitimasi dapat digunakan pengamanan seperti citra dengan tanda air dengan alasan untuk perlindungan hak cipta. Digital tanda air (yang juga dikenal dengan sidik jari, yang dikhususkan untuk hal-hal menyangkut hak cipta) sangat mirip dengan steganografi karena menggunakan metode penyembunyian dalam arsip, yang muncul sebagai bagian asli dari arsip tersebut dan tidak mudah dideteksi oleh kebanyakan orang. Steganografi juga dapat digunakan sebagai cara untuk membuat pengganti suatu nilai hash satu arah (yaitu pengguna mengambil suatu masukan panjang variabel dan membuat sebuah keluaran panjang statis dengan tipe string untuk melakukan verifikasi bahwa tidak ada perubahan yang dibuat pada variabel masukan yang asli).

Selain itu juga, steganografi dapat digunakan sebagai catatan tag untuk citra langsung. Terakhir, steganografi juga dapat digunakan untuk melakukan perawatan atas kerahasiaan informasi yang berharga, untuk menjaga data tersebut dari kemungkinan sabotase, pencuri, atau dari pihak yang tidak berwenang. Sayangnya, steganografi juga dapat digunakan untuk alasan yang ilegal. Sebagai

contoh, jika seseorang telah mencuri data mereka dapat menyembunyikan arsip curian tersebut ke dalam arsip lain dan mengirimkannya keluar tanpa menimbulkan kecurigaan siapapun karena tampak seperti email atau arsip normal. Selain itu, seseorang dengan hobi menyimpan pornografi, atau lebih parah lagi menyimpannya dalam hard disk. Mereka dapat menyembunyikan hobi buruknya melalui steganografi. Begitu pula dengan masalah terorisme, steganografi dapat digunakan oleh para teroris untuk menyamarkan komunikasi mereka dari pihak luar.PP

[9]

2.5.3 Metode Steganografi

Terdapat banyak metode yang digunakan dalam menyembunyian data ke dalam data lainnya. Berikut adalah penjelasan mengenai beberapa metode yang banyak digunakan dalam steganografi.

1. Metode Penanaman

Steganografi menyimpan pesan rahasia dalam suatu arsip yang biasanya diparameteri oleh suatu kunci-stego, dan pendeteksian atau pembacaan atas informasi tersembunyi tersebut dapat dilihat pada gambar 2.6.

Kunci-stego

Kunci-stego Proses

penanaman

Stego < jenis data > Sampul

< Jenis Data > ekstraksiProses Menanam

< Jenis Data >

Menanam < Jenis Data >

Gambar 2.6 Proses steganografi dengan metode penanaman

Metode penanaman ini juga biasa disebut dengan metode injection karena pesan rahasia disuntikkan langsung pada arsip lainnya dengan sedikit pengacakan atau enkripsi.PP

[9]

2. Metode Least Significant Bit

Dalam kawasan citra, steganografi dilakukan dengan metode penggantian atau penyisipan bit pada LSB atau sering disebut manipulasi derau (noise

manipulation). Disebut demikian karena pesan rahasia pada citra yang disisipkan,

akan mengubah piksel tertentu pada citra. Jika perubahan tersebut terlihat, akan nampak seperti derau pada citra tersebut. Pendekatan ini melibatkan citra berformat tak berugi, dan pesan disisipkan dan diambil secara langsung, tanpa melibatkan proses alih ragam. Sedangkan dalam kawasan alih ragam, proses dilakukan dengan melibatkan manipulasi dari algoritma alih ragam citra.

Citra Awal A0 A1 A5 A4 A3 A7 A6

Lokasi Bit dari piksel yang akan disisipi P0 A1 A5 A4 A3 A7 A6 Pesan Rahasia

Citra Stego/Pembawa = Citra Awal + sia

Pesan Raha

Lokasi Bit yang telah disisipi

data

Dalam metode penyisipan LSB seperti yang ditunjukkan oleh Gambar 2.7, steganografi dilakukan dengan cara mengganti satu bit piksel citra awal (A0) dengan bit-bit dari pesan rahasia (P0) yang akan disembunyikan. Berkas citra pembawa yang telah disisipi pesan rahasia, atau disebut juga berkas atau citra stego, dapat dikirimkan ke penerima. Penerima dapat mengekstraksi pesan tersebut atau melakukan desteganografi dari citra pembawa sehingga mendapatkan bit-bit pesan tersembunyi dari citra pembawa.

Beberapa versi dari metode LSB telah bermunculan. Kini sangat memungkinkan untuk menggunakan menggunakan pembangkit nomer acak yang diinisialisasi dengan kunci-stego dan mengkombinasikan keluarannya dengan data masukan, dan kemudian menyembunyikannya dalam suatu arsip citra. Kehadiran seorang pengawas tidak cukup untuk meyakinkan keberhasilan penambahan sebuah pesan di lokasi tertentu (pada rentetan bit tertentu), karena pengawas itu sendiri sangat mungkin mengubah letak dari pesan rahasia tersebut, walaupun tidak mengetahui lokasi dari pesan rahasia tersebut atau tidak dapat membacanya karena telah dienkripsi. Karena itulah penggunaan kunci-stego menjadi penting karena keamanan atas suatu sistem pengaman tidak dapat didasarkan pada kerahasiaan dari algoritmanya itu sendiri, namun karena adanya keberadaan dari suatu kunci rahasia.PP

[13]

PP Gambar 2.8 menunjukkan proses tersebut.

Posisi pembangkit

Urutan

Penanaman Tulisan yang harus ditanam

Data citra

Kunci pengguna Letak Urutan Citra Stego

Gambar 2.8 Proses penggunaan kunci-stego pada steganografi

Metode LSB pada umumnya beroperasi pada citra bitmap. Data yang disembunyikan tidak dapat dikategorikan sebagai tanda air karena jika terjadi perubahan kecil pada citra tersebut (pemotongan, pemampatan, atau degradasi warna), maka informasi tersembunyi tersebut akan hilang walaupun perubahan yang terjadi selama proses penanaman tidak terlihat. PP

[9]

2.5.4 Algoritma Penyisipan data

Algoritma penyisipan data menggunakan metode penyisipan LSB yaitu menyisipkan satu bit pada posisi bit yang terendah.Terdapat dua tahap yaitu penyandian dan pengawasandian. Langkah-langkahnya adalah sebagai berikut : Penyandian

Langkah 1 Buat palet baru sebanyak 128 dari hasil reduksi warna. Jika data citra 24 bit dibuat menjadi hanya 8 bit.

Langkah 2 Mengubah tiap piksel citra menjadi deretan bit-bit dalam bentuk 8-bit.

Langkah 3 Tiap 8-bit piksel sebuah citra diubah ke dalam indeks warna, indeks tersebut menunjukkan nomor palet warna. Misal : nilai 5 merupakan palet warna biru.

Langkah 4 Mengubah data sisipan kedalam deretan bit-bit dalam bentuk 8-bit. Misal : karakter ’A’ dalam bit ’01110001’.

Mengambil satu bit data sisipan untuk dsisipkan ke piksel pertama dari citra uji.

M = N + i (2.1)

M = nilai palet baru

N = nilai palet yang disisipi data i = bit data

Dalam satu piksel hanya dapat disisipi 1-bit data saja. Dari persamaan tersebut dapat diketahui nilai palet baru setelah penyisipan. Jika data yang disispi ’0’ maka nilai palet tidak berubah, namun jika data sisipan bernilai ’1’ maka akan merubah nilai palet. Perubahan nilai palet akan merubah warna.

Langkah 5 Membuat palet baru yang sama dengan palet awal. Berarti nomor palet 0,1...127 mempunyai warna sama dengan nomor palet 128,129,...255. Palet baru ini digunakan untuk memanipulasi warna palet yang mengalami perubahan saat disisipi data.

Langkah 6 Melakukan langkah 1 sampai ke 5 untuk piksel selanjutnya per baris sampai data sisipan habis.

Pengawasandian

Langkah 1 Memindai per baris piksel dalam satu citra

Langkah 2 M < N berarti tidak ada data sisipan. Jika M > N berarti terdapat data sisipan. Dalam contoh : nilai N = 5, jika N<5 berarti tidak ada data sisipan. Jika N>5 berarti ada data sisipan.

Langakah 3 Bit yang ada pada piksel ditampung sementara sampai tersusun 8-bit. Dari bit-bit yang telah tersusun diubah menjadi satu karakter kembali. Misal dari bit-bit yang tersusun ’01110001’ atau kembali menjadi karakter ’A’.

BAB III

PERANCANGAN PROGRAM

Pada perancangan program ini dijelaskan spesifikasi perangkat-keras dan perangkat-lunak yang digunakan untuk membuat dan menjalankan program. Berikut penjelasan perangkat-keras dan perangkat-lunak yang digunakan.

3.1 Perangkat-keras

Perangkat-keras yang digunakan untuk membuat dan menjalankan program adalah satu set komputer jinjing (laptop). Berikut spesifikasi perangkat-keras yang digunakan.

1. Merek : HP Compaq nx6120

2. Sistem Komputer : Intel Pentium Centrino M 1,87 GHz

3. Sistem Operasi : Microsoft Windows XP Profesional

Service Pack 2

4. Media Tampilan : VGA (true color 32 bit, 1024 800 piksel) dengan chipset intel Xtreme 128 Mb

5. Media masukan : mouse

6. Memori : 512 MB RAM.

Dokumen terkait