DAFTAR PUSTAKA
Basuki, Achmad. 2005. Pengolahan Citra Digital Menggunakan Visual Basic. Graha Ilmu. Yogyakarta.
Binanto, Iwan. 2010. Multimedia Digital Dasar Teori + Pengembangan. Yogyakarta. Penerbit ANDI.
Fahmi. 2007. Studi dan Implementasi Watermarking Citra Digital Dengan
Menggunakan Fungsi Hash. Bandung: Program Studi Teknik Informatika,
Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.
Jajoo, P., Sharma, S., Bhadu, A. & Sharma, V., 2011. Hiding Information by using
Image Steganography, 2011 3rd International Conference on Machine
Learning and Computing (ICMLC 2011).
Krisnawati.2008. Metode Least Significant Bit (LSB) dan End Of File (EOF) untuk
Menyisipkan Teks ke Dalam Citra Grayscale. Seminar Nasional Informatika
2008 (semnasIF 2008) UPN “Veteran” Yogyakarta, 24 Mei 2008.
Laskar, S.A. 2013. Steganography Based On Random Pixel Selection For Efficient
Data Hiding. International Journal Of Computer Engineering and Technology
(IJCET) 4(2):31-44.
Munir, R. 2006. Kriptografi. Bandung. Penerbit : Informatika.
Nath, Joyshree, Sankar Das, Shalabh Agarwal & Asoke Nath. 2011. A Challenge in
Hiding Encrypted Message in LSB dan LSB+1 Bit Position in Various Cover Style. Journal of Global Research in Computer Science. ISSN: 2229-371X
Vol. 2 No. 4 April 2011.
Putra, D. 2010. Pengolahan Citra Digital. Yogyakarta. Penerbit: ANDI.
Rana, M.S, Sangwan, B.S. & Jangir, J.S. 2012. Art of Hiding: An Introduction to
Steganography. International Journal Of Engineering And Computer Science.Volume 1 Issue 1 Oct 2012 Page No. 11-22.
Saefullah, A., Himawan & Agani, N. 2012. Aplikasi Steganografi Untuk
Menyembunyikan Teks dalam Media Image dengan Dengan Menggunakan Metode LSB. Seminar Nasional Teknologi Informasi & Komunikasi Terapan
Sugiono, etal. 2008. Watermarking Pada File Audio PCM WAVE Dengan Metode
Echo Data Hiding. Konferensi Nasional Sistem dan Informatika 2008; Bali,
Nopember 15, 2008.
Sutoyo, T., Mulyanto. E., Suhartono, V., Nurhayati, O.D. & Wijanarto. 2009. Teori
Pengolahan Citra Digital. Penerbit ANDI. Yogyakarta.
Bab I BAB 3
Bab IIANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem adalah merupakan proses untuk memperoleh pemahaman yang terhadap kebutuhan sistem sehingga diperoleh gambaran kerja yang akan dilakukan sistem. Hal ini akan membantu pemodelan rancang bangun sistem yang nantinya akan diimplementasikan dalam bentuk nyata.
3.1.1 Analisis Masalah
Pada penelitian ini dilakukan penyisipian pesan berupa teks ke dalam file citra penampung (cover image) berformat BMP dan JPG dengan teknik steganografi. Pesan disisipkan dengan menggunakan algoritma Least Significant Bit +1 (LSB+1) dan algoritma Modified Least Significant Bit (MLSB). Setelah pesan teks disisipkan, maka dilakukan perubahan kontras terhadap stego image hasil penyisipan dengan nilai kontras yang bervariasi. Setelah dilakukan perubahan kontras, maka dilakukan ekstraksi pesan teks dari dalam stego image untuk menghitung ketahanan masing-masing algoritma terhadap perubahan kontras.
Salah satu cara untuk mengidentifikasi permasalah dengan penggunaan diagram Ishikawa (fishbone diagram). Diagram Ishikawa adalah sebuah alat grafis yang digunakan untuk mengidentifikasi, mengeksplorasi dan menggambarkan suatu masalah serta sebab dan akibat dari masalah tersebut. Diagram ini juga sering disebut sebagai diagram sebab-akibat atau diagram tulang ikan. Identifikasi terhadap permasalahan akan membantu analisis persyaratan sistem yang nantinya akan dikembangkan.
Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem
Pada diagram Ishikawa diatas masalah utama ditunjukkan oleh segi empat paling kanan (kepala ikan), sedangkan kategori ditunjukkan oleh segi empat yang dihubungkan oleh sebuah garis ke tulang utama (garis horizontal yang terhubung ke kepala ikan). Selanjutnya sebab akibat yang muncul ditunjukkan oleh tulang-tulang kecil yang diwakili oleh garis panah yang mengarah ke tulang-tulang kategori masalah.
3.1.2 Analisis Persyaratan (Requirement Analysis)
Analisis persyaratan sebuah sistem dikelompokkan ke dalam dua bagian besar yaitu, analisis persyaratan fungsional dan analisis persyaratan non-fungsional.
3.1.2.1Analisis Persyaratan Fungsional
Persyaratan fungsional adalah segala sesuatu yang harus dimiliki oleh sistem. Persyaratan fungsional sistem yang akan dirancang antara lain sebagai berikut:
1. Sistem harus menyediakan sumberdaya untuk melakukan penyisipan dan ekstraksi dengan menerapkan algoritma LSB+1 dan MLSB, dimana untuk keamanannya ekstraksi digunakan kunci.
Pemilik File
Data teks
Informasi pada file teks mudah dimanipulasi
2. Pada penerapan steganografi sistem harus menyediakan sumberdaya untuk menerapkan algoritma LSB dan MLSB.
3.1.2.2Analisis Persyaratan Non-Fungsional
Persyaratan non-fungsional adalah persyaratan apa yang harus dilakukan sistem. Seringkali berupa batasan atau sesuatu yang menjadi perhatian stakeholder sebuah sistem. Persyaratan non-fungsional yang harus dipenuhi oleh sistem yang dirancang adalah sebagai berikut adalah pembuatan tabel hasil pengujian untuk merepresentasikan hasil proses penyisipan serta esktraksi dari masing-masing algoritma.
3.1.2.3Pemodelan Persyaratan Sistem dengan Use Case
Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan fungsionalitasnya. Perancangan fungsionalitas perangkat lunak perbandingan steganografi teks ke dalam file audio yang nantinya akan dikembangkan dimodelkan dengan diagram use case. Aktor yang nantinya akan berinteraksi dengan sistem adalah pengguna. Pengguna dikategori sebagai dua entitas yang saling bertukar informasi yaitu, pengirim dan penerima.
Sesuai dengan analisis kebutuhan sistem, beberapa hal yang nantinya harus dilakukan sistem adalah:
1. Melakukan penyisipan teks ke dalam file citra dengan algoritma LSB+1 dan MLSB.
2. Melakukan ekstraksi teks dari dalam file citra tersisip.
3. Membandingkan teks hasil ekstraksi terhadap ke dua algoritma diatas.
Berdasarkan informasi kebutuhan sistem dan aktor yang berperan, diagram use
Gambar 3.2 Use Case Diagram Sistem yang Akan dikembangkan
Pada diagram tersebut tampak bahwa seorang User (pengguna) hanya bekerja dengan mengakses use case perangkat lunak steganografi. Pengguna tidak perlu mengetahui secara persis proses apa saja yang terjadi pada setiap tahap. Dengan demikian untuk memutuskan proses apa yang nantinya dilakukan pada setiap tahap menjadi tanggung jawab sistem.
Berikut ini merupakan dokumentasi naratif untuk use case Proses Penyisipan. Tabel 3.1 Dokumentasi Naratif Use Case Penyisipan
Nama use case Analisis Ketahanan Citra Stego Metode LSB+1 Dan MLSB Terhadap Perubahan Kontras Citra
Aktor User
Deskripsi
Use case yang mendeskripsikan fungsi pengamanan file teks
dengan penyisipan ke dalam file citra.
Pre-condition File citra ber format JPG dan BMP.
Typical course of Aksi aktor Respon sistem
Analisis Ketahanan Citra Stego Metode LSB+1 Dan MLSB Terhadap Perubahan Kontras Citra
Perangkat lunak Steganografi
Penyisipan
Esktraksi <<uses>>
<<uses>>
event Langkah 1: User memilih Menu File dari menu utama.
Langkah 3: User memilih salah satu algoritma penyisipan.
Langkah 5: User memilih proses Penyisipan.
Langkah 6: User memasukkan file citra dengan memilih tombol File Citra.
Langkah 8: User memasukkan file teks dengan memilih tombol File Teks.
Langkah 10: User memilih tombol Sisip untuk melakukan penyisipan.
Langkah 2: Sistem menampilkan algoritma LSB+1 dan MLSB.
Langkah 4: Sistem merespon dengan menampilkan salah satu form LSB+1 dan MLSB.
Aksi aktor Respon sistem
- -
Activity diagram untuk use case kontrol proses Penyisipan terlihat sebagai
berikut.
User Sistem
Gambar 3.3 Activity Diagram Kontrol Proses Penyisipan
Pada dokumentasi naratif use case dan activity diagram terlihat bahwa kontrol proses dilakukan dengan menjaga tahapan penyisipan berlangsung sesuai dengan mekanisme yang seharusnya dan kemudian sistem memutuskan apa saja yang harus
Memilih Menu File
Memilih sub Menu LSB+1 & MLSB
Memasukkan File Citra
Lengkap? Tampilkan kesalahan Tidak
Memilih tombol Sisip Ya
Penyisipan teks dan perubahan kontras
Menyimpan Stego Image Dan menghitung MSE
Mengkonfirmasi keberhasilan proses Tampilkan Form
dilakukan oleh sistem pada setiap tahapan dengan memanggil modul program yang sesuai untuk memproses pesan. Berikut ini merupakan dokumentasi naratif untuk use
case Proses Ekstraksi.
Tabel 3.2 Dokumentasi Naratif Use Case Ekstraksi
Nama use case Analisis Ketahanan Citra Stego Metode LSB+1 Dan MLSB Terhadap Perubahan Kontras Citra
Aktor User
Deskripsi Use case yang mendeskripsikan fungsi ekstraksi teks penyisip dengan mengeluarkan teks dari file stego image.
Pre-condition Citra yang di-ekstraksi ber format JPG dan BMP.
Typical course of event
Aksi aktor Respon sistem
Langkah 1: User memilih Menu File dari menu utama.
Langkah 3: User memilih salah satu form algoritma ekstraksi.
Langkah 5: User memilih proses Ekstraksi.
Langkah 6: User memasukkan file
stego image dengan memilih
tombol File Citra.
Langkah 8: User memilih tombol Ekstraksi untuk melakukan ekstraksi. menampilkan salah satu program.
Langkah 7: Sistem menampilkan nama-nama file stego image.
Alternate course
Aksi aktor Respon sistem
- -
Post condition File teks telah diekstraksi dari file stego image
Activity diagram untuk use case Proses Ekstraksi terlihat sebagai berikut.
User sistem
Gambar 3.4 Activity Diagram Kontrol Proses Ekstraksi Memilih tombol Ekstraksi
Menampilkan pesan kesalahan
Menampilkan teks dan menghitung jumlah teks
Mengkonfirmasi keberhasilan proses Memilih Menu File
Memilih tombol File Citra
User memilih file stego image
Lengkap ?
Menampilkan file stego image
Tidak
Ya
Pada dokumentasi naratif use case dan activity diagram terlihat bahwa kontrol proses dilakukan dengan menjaga tahapan ekstraksi berlangsung sesuai dengan mekanisme yang seharusnya dan kemudian sistem memutuskan apa saja yang harus dilakukan oleh sistem pada setiap tahapan dengan memanggil modul program yang sesuai untuk memproses pesan.
3.1.3 Analisis Proses Sistem
Analisis Ketahanan Citra Stego Metode LSB+1 Dan MLSB Terhadap Perubahan Kontras Citra terdiri proses penyisipan dan ekstraksi dapat digambarkan dalam penelitian sebagai Sequence Diagram. Sequence Diagram proses Penyisipan dapat dilihat seperti pada Gambar 3.5.
Gambar 3.5 Sequence Diagram Proses Penyisipan :Penyisipan
Browse File Citra
File Citra
:Baca citra
Nilai Piksel
:Insertion
Insert file teks
Nilai piksel
Biner teks
:Hitung MSE
Nilai MSE
:Bit LSB
Bit LSB
Stego & cover
Sistem ekstraksi memerlukan file stego image yang akan diproses untuk mengeluarkan file teks yang tersisip. Tahap awal dilakukan pembacaan bit-bit LSB pada file stego image yang terdiri dari nilai 0 dan 1.
Sequence Diagram proses Ekstraksi dapat dilihat seperti pada Gambar 3.6.
Gambar 3.6 Sequence Diagram Proses Ekstraksi
Sistem ekstraksi memerlukan file stego image untuk mendapatkan file teks penyisip. Tahap awal dilakukan pembacaan file stego image untuk mendapatkan nilai LSB berupa nilai 0 atau 1 dan selanjutnya 8 bit penyisip yang peroleh dalam bentuk biner dikonversikan ke ASCII.
Langkah-langkah proses Analisis Ketahanan Citra Stego Metode LSB+1 dan MLSB Terhadap Perubahan Kontras Citra adalah sebagai berikut:
a. Membaca nilai piksel citra.
b. Menghitung nilai Red Green Blue (RGB) citra. :Ekstraksi
Browse File Stego Image
File Stego Image
Pinai piksel :Baca citra
Teks Pesan
:Read bit LSB
Bit LSB
c. Melakukan penyisipan teks ke dalam citra dengan masing-masing algoritma diatas.
d. Melakukan proses perubahan kontras terhadap citra hasil penyisipan (stego
image).
e. Melakukan ekstraksi atas stego image. f. Menghitung MSE dan Errro data recovery.
g. Melakukan perbandingan ketahanan atas ke dua algoritma.
3.1.4 Menghitung Nilai RGB Citra
Pada citra warna 24-bit (true color) nilai RGB langsung diuraikan dalam data bitmap berbentuk biner. Untuk membaca nilai RGB-nya, dilakukan dengan membaca data
bitmap yang panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B. Setiap byte data merepresentasikan 8 bit jadi pada citra warna ada 3 byte x 8 bit =
24 bit kandungan warna. Citra warna 24 bit dapat dilihat seperti pada Gambar 3.7.
Gambar 3.7 Citra Warna
Pada citra warna Gambar 3.7 di atas, tiap pixel-nya mengandung 24-bit kandungan warna atau 8-bit untuk masing-masing warna dasar (R, G, dan B), dengan selang nilai warna antara 0 (00000000) sampai 255 (11111111) untuk tiap warna. Sebagai contoh data bitmap citra warna di atas adalah seperti pada Gambar 3.8.
<Header> <data bitmap>
1111000010110100111101111 10000110101101001001101
101101101011010011110001 100100001011111011111000 100101001111011111110001 100100001001010010000001
Piksel 1 Piksel 2
Gambar 3.8 Contoh Nilai Piksel Citra Warna
Pada contoh citra Gambar 3.8 di atas, data pertama adalah header yang berisi informasi nama file, jenis format dan dimensi citra. Di bawah data bitmap terdapat
pixel pertama mempunyai nilai 111100001011010011110111.
Untuk mendapatkan nilai red, green dan blue (RGB), maka setiap nilai pixel pada citra Gambar 3.2 dihitung dengan rumus sebagai berikut:
Nilai R = c Mod 256 ………... (3.1)
Nilai G = (c and 65280) / 256……….……. (3.2)
Nilai B = (c and 16711680) / 65280 ….……….……... (3.3) Dimana c adalah nilai piksel citra.
Pada Gambar 3.2 di atas, nilai piksel (0,0) adalah 111100001011010011110111. Nilai RGB dihitung dengan persamaan 3.1, 3.2 dan 3.3 sebagai berikut:
Nilai komponen R dengan persamaan (3.2):
Nilai R = 111100001011010011110111 mod 100000000 = 11110111 = 247 Nilai komponen G dihitung dengan persamaan (3.3):
Nilai G = (111100001011010011110111 and 1111111100000000)/ 100000000 = 1011 0100 = 180 (desimal)
Nilai komponen B dihitung dengan persamaan (3.4): Nilai B= (111100001011010011110111 and
111111110000000000000000) / 10000000000000000 = 1111 0000 = 240 (desimal)
Sehingga diperoleh nilai piksel (0,0) 11110000 11110000 11111111: R = 11110001 = 247 (desimal)
G = 10110100 = 180 (desimal) B = 10010000 = 240 (desimal)
Tabel 3.3 Matriks Nilai RGB Citra Warna
R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,220 240,170,220 232,180,240 248,165,225 240,180,230 238,185,198 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,130 200,170,200 200,150,200 200,140,154 200,170,245 192,100,100 200,200,200 210,120,120
3.1.5 Algoritma Least Significant Bit +1 (LSB +1)
Pada algoritma LSB+1 dilakukan penyisipan citra asli menjadi stego image, perubahan kontras dan ekstraksi teks dari stego image hasil peningkatan kontras.
3.1.5.1Penyisipan
Pada proses penyisipan dengan algoritma LSB+1 dilakukan dengan menggantikan bit-bit penyisip ke bit-bit nomor 2 terakhir dari byte-byte cover citra yang disebut dengan metode Least Significant Bit +1 (LSB +1). Proses penyisipan dilakukan secara acak, misalnya jika terdapat 25 byte dan 1 byte data berupa huruf kapital S (8 bit= 01010011) yang akan disembunyikan, maka byte yang diganti bit LSB +1-nya dipilih secara acak, misalkan byte nomor 1, 5, 21, 10, 18, 11, 23 dan 8. Jenis warna yang akan disisipi telah ditetapkan yaitu warna blue dan bilangan acak dibangkitkan dengan algoritma Pseudo-Random-Number-Generator (PRNG). Selanjutnya nomor acak tersebut disimpan dalam format teks (.txt) untuk digunakan pada saat ekstraksi.
Tabel 3.4 Matriks Citra yang akan disisipi
Dari tabel 3.2 diatas nilai blue yang akan disisipi adalah: No 1 = 240 dengan biner 11110000
No 5 = 220 dengan biner 11011100 No 21 = 154 dengan biner 10011010 No 10 = 198 dengan biner 11000110 No 18 = 130 dengan biner 10000010 No 11 = 200 dengan biner 11001000 No 23 = 100 dengan biner 01100100 No 8 = 225 dengan biner 11100001
Penyisip adalah huruf S dengan nilai biner 01010011.
No 1 = 240 dengan biner 11110000 disisip dengan 0 menjadi 11110000 = 240 No 5 = 220 dengan biner 11011100 disisip dengan 1 menjadi 11011110 = 222 No 21 = 154 dengan biner 10011010 disisip dengan 0 menjadi 10011000 = 152 No 10 = 198 dengan biner 11000110 disisip dengan 1 menjadi 11000110 = 198 No 18 = 130 dengan biner 10000010 disisip dengan 0 menjadi 10000000 = 128 No 11 = 200 dengan biner 11001000 disisip dengan 0 menjadi 11001000 = 200 No 23 = 100 dengan biner 01100100 disisip dengan 1 menjadi 01100110 = 102 No 8 = 225 dengan biner 11100001 disisip dengan 1 menjadi 11100011 = 227
Hasil penyisipan algoritma LSB+1 dapat dilihat seperti pada Tabel 3.5.
Tabel 3.5 Matriks Citra hasil Penyisipan (stego image)
R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,222 240,170,220 232,180,240 248,165,227 240,180,230 238,185,198 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,128 200,170,200 200,150,200 200,140,152 200,170,245 192,100,102 200,200,200 210,120,120
3.1.5.2Perubahan kontras
dibangkitkan dengan algoritma Pseudo-Random-Number-Generator (PRNG). Rumus untuk peningkatan nilai kontras stego image seperti persamaan 3.4.
fo (x,y) =G(f1(x,y)-P)+P ……… (3.4) dimana:
G = koefisien penguat kontras (diberi nilai 2)
P = nilai grayscale yang dipakai sebagai pusat pengkontrasan (diberi nilai 50).
fo (x,y) = nilai intensitas piksel citra hasil kontras
f1(x,y) = nilai intensitas piksel citra asli.
Pada matriks stego image pada Tabel 3.5, terdiri dari 5 x 5 piksel, berarti ada 25 piksel yang akan disisipi. Selanjutnya bangkitkan nilai secara acak sebanyak 8 angka antara 1 sampai 25 dan misalkan diperoleh angka acak 4, 9, 22, 17, 5, 16, 25 dan 1. Jadi piksel yang akan dirubah kontrasnya adalah piksel nomor 4, 9, 22, 17, 5, 16, 25 dan 1.
Tabel 3.6 Matriks Citra Stego Image yang Diubah Kontras R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,222 240,170,220 232,180,240 248,165,227 240,180,230 238,185,198 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,128 200,170,200 200,150,200 200,140,152 200,170,245 192,100,102 200,200,200 210,120,120
Dari persamaan 3.4 cari nilai piksel nomor 1 yaitu RGB=247, 180, 240 Dimana nilai konstanta G= 0.5, P=50.
Nilai R piksel nomor 1:
fo (1) =G(f1(1)-P)+P = 0.5 (247-50) +50 = 149
Nilai G:
fo (1) =G(f1(1)-P)+P = 0.5 (180-50) +50 = 115
Nilai B:
= 0.5 (240-50) +50 = 145
Nilai RGB piksel nomor 1 =149, 115, 145 Nilai R piksel nomor 4:
Nilai RGB piksel nomor 4 = 146,115,139 Nilai R piksel nomor 5:
Nilai RGB piksel nomor 5 =146,115,136 Nilai R piksel nomor 9:
Nilai G:
fo (9) =G(f1(9)-P)+P = 0.5 (180-50) +50 = 115
Nilai B:
fo (9) =G(f1(9)-P)+P = 0.5 (230-50) +50 = 140
Nilai RGB piksel nomor 9 = 146, 115, 140 Nilai R piksel nomor 16:
fo (16) =G(f1(16)-P)+P = 0.5 (240-50) +50 = 146
Nilai G:
fo (16) =G(f1(16)-P)+P = 0.5 (190-50) +50 = 120
Nilai B:
fo (16) =G(f1(16)-P)+P = 0.5 (200-50) +50 = 125
Nilai RGB piksel nomor 16 = 146,120,125 Nilai R piksel nomor 17:
fo (17) =G(f1(17)-P)+P = 0.5 (210-50) +50 = 130
Nilai G:
Nilai B:
fo (17) =G(f1(17)-P)+P = 0.5 (200-50) +50 = 125
Nilai RGB piksel nomor 17 = 130,115,125 Nilai R piksel nomor 22:
fo (22) =G(f1(22)-P)+P = 0.5 (220-50) +50 = 115
Nilai G:
fo (22) =G(f1(22)-P)+P = 0.5 (170-50) +50 = 110
Nilai B:
fo (22) =G(f1(22)-P)+P = 0.5 (245-50) +50 = 148
Nilai RGB piksel nomor 22 =115,110,148 Nilai R piksel nomor 25:
fo (25) =G(f1(25)-P)+P = 0.5 (210-50) +50 = 130
Nilai G:
fo (25) =G(f1(25)-P)+P = 0.5 (120-50) +50 = 85
Nilai B:
fo (25 =G(f1(25)-P)+P = 0.5 (120-50) +50 = 85
Dari hasil perubahan kontras diatas maka diperoleh matriks citra kontras seperti pada tabel 3.7.
Tabel 3.7 Matriks Citra stego image Hasil Perubahan Kontras R G B R G B R G B R G B R G B 149,115,145 230,185,245 252,170,233 146,115,139 146,115,136 240,170,220 232,180,240 248,165,227 146,115,140 238,185,198 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 146,120,125 130,115,125 200,100,128 200,170,200 200,150,200 200,140,152 115,110,148 192,100,102 200,200,200 130,85,85
3.1.5.3Ekstraksi
Ekstraksi teks dari file stego image dan sudah dirubah nilai kontrasnya dengan menggunakan algoritma LSB+1 adalah dengan membaca bit nomor 7 dari setiap byte piksel citra stego image hasil kontras sesuai dengan kunci nomor acak yaitu 1, 5, 21, 10, 18, 11, 23 dan 8.
Dari tabel 3.4 diatas nilai piksel-piksel:
Nomor 1 yaitu: 149,115,145 dengan nilai blue 145 dan biner 1001 0001, maka data penyisip pada bit nomor 7 yaitu 0.
Nomor 5 yaitu: 146,115,136 dengan nilai blue 136 dan biner 1000 1000, maka data penyisip pada bit nomor 7 yaitu 0.
Nomor 21 yaitu: 115,110,148 dengan nilai blue 148 dan biner 1001 0100, maka data penyisip pada bit nomor 7 yaitu 0.
Nomor 10 yaitu: 238,185,198 dengan nilai blue 198 dan biner 1100 0110, maka data penyisip pada bit nomor 7 yaitu 1.
Nomor 18 yaitu: 200,100,128 dengan nilai blue 128 dan biner 1000 0000, maka data penyisip pada bit nomor 7 yaitu 0.
Nomor 11 yaitu 200,180,200 dengan nilai blue 200 dan biner 1100 1000, maka data penyisip pada bit nomor 7 yaitu 0.
Nomor 23 yaitu 192,100,102 dengan nilai blue 102 dan biner 0110 0110, maka data penyisip pada bit nomor 7 yaitu 1.
Hasil ekstraksi 8 bit diatas adalah 00010011 dengan nilai ASCII = 19. Dari Data penyisip berupa huruf kapital S dengan 8 bit 01010011 dapat dihitung Error data
recovery
S = 00010011 19 = 01010011 --- 01000000
Error data recovery adalah 1/8 * 100 = 12.5 %
3.1.6 Algoritma Modified Least Significant Bit (MLSB)
Pada algoritma MLSB dilakukan penyisipan citra asli menjadi stego image, perubahan kontras dan ekstraksi teks dari stego image hasil peningkatan kontras.
3.1.6.1Penyisipan
Penyisipan dilakukan dengan proses-proses:
11. Proses mengubah data penyisip berupa huruf kapital S dengan nilai biner 00010011. Pada algoritma MLSB pesan di atas diubah menjadi ASCII (hex) menjadi: 53h. Kemudian dilakukan normalisasi dengan tabel Control Symbol seperti Tabel 3.8.
Tabel 3.8 Control Symbol
Hex Representation Operation
1 Bh Define Small Letter
1 Ch Define Capital Letter
1 Dh Define Space
1 Eh Define Number
1 Fh Define end of text
12. Baca data penyisip (ASCII) sampai tanda spasi (20h) yaitu 53.
13. Semua nilai dikurangi dengan nilai puluhan terendah dari {53}, yaitu 40 menjadi 53-40= 13.
14. Data penyisip kelompok pertama adalah 1ch, 13h dimana 1ch adalah Control
Sehingga pesan menjadi: 1ch, 13h, 1fh.
Pesan diatas membutuhkan 3 x 5 bit = 15 bit dan diubah menjadi biner menjadi 11100, 10011, 11111 sebanyak 15 bit. Pesan biner disisipkan ke dalam sebuah file citra asli (cover image) seperti pada Tabel 3.9.
Tabel 3.9 Nilai Piksel Citra Asli
R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,220 240,170,220 232,180,240 248,165,225 240,180,230 238,185,198 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,130 200,170,200 200,150,200 200,140,154 200,170,245 192,100,100 200,200,200 210,120,120
Biner penyisip sebanyak 15 bit yaitu 11100, 10011, 11111 yang akan disembunyikan, maka byte yang diganti bit dipilih secara acak, misalkan byte nomor 1, 5, 21, 10, 18, 11, 23 dan 8. Jenis warna yang akan disisipi telah ditetapkan yaitu warna blue dan bilangan acak dibangkitkan dengan algoritma Pseudo-Random-Number-Generator (PRNG). Selanjutnya nomor acak tersebut disimpan dalam format teks (.txt) untuk digunakan pada saat ekstraksi.
Tabel 3.10 Matriks Citra yang akan disisipi
R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,220 240,170,220 232,180,240 248,165,225 240,180,230 238,185,198 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,130 200,170,200 200,150,200 200,140,154 200,170,245 192,100,100 200,200,200 210,120,120
Dari tabel 3.8 diatas nilai blue yang akan disisipi adalah: No 1 = 240 dengan biner 11110000
No 10 = 198 dengan biner 11000110 No 18 = 130 dengan biner 10000010 No 11 = 200 dengan biner 11001000 No 23 = 100 dengan biner 01100100 No 8 = 225 dengan biner 11100001
Penyisip adalah huruf S dengan nilai biner 01010011.
No 1 = 240 dengan biner 11110000 disisip dengan 0 menjadi 11110000 = 240 No 5 = 220 dengan biner 11011100 disisip dengan 1 menjadi 11011101 = 221 No 21 = 154 dengan biner 10011010 disisip dengan 0 menjadi 10011010 = 154 No 10 = 198 dengan biner 11000110 disisip dengan 1 menjadi 11000111 = 199 No 18 = 130 dengan biner 10000010 disisip dengan 0 menjadi 10000010 = 130 No 11 = 200 dengan biner 11001000 disisip dengan 0 menjadi 11001000 = 200 No 23 = 100 dengan biner 01100100 disisip dengan 1 menjadi 01100101 = 101 No 8 = 225 dengan biner 11100001 disisip dengan 1 menjadi 11100001 = 225
Hasil penyisipan algoritma MLSB dapat dilihat seperti pada Tabel 3.11. Tabel 3.11 Matriks Citra hasil Penyisipan (stego image) R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,221 240,170,220 232,180,240 248,165,225 240,180,230 238,185,199 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,130 200,170,200 200,150,200 200,140,154 200,170,245 192,100,101 200,200,200 210,120,120
3.1.6.2Perubahan kontras
Untuk melakukan perubahan kontras citra yaitu dengan menambah atau mengurangi nilai intensitas piksel pada nilai warna R, G atau B pada piksel secara acak yang dibangkitkan dengan algoritma Pseudo-Random-Number-Generator (PRNG). Rumus untuk peningkatan nilai kontras stego image seperti persamaan 3.4.
angka antara 1 sampai 25 dan misalkan diperoleh angka acak 4, 9, 22, 17, 5, 16, 25 dan 1. Jadi piksel yang akan dirubah kontrasnya adalah piksel nomor 4, 9, 22, 17, 5, 16, 25 dan 1 seperti pada Tabel 3.12.
Tabel 3.12 Matriks Citra Stego Image yang Diubah Kontras R G B R G B R G B R G B R G B 247,180,240 230,185,245 252,170,233 241,180,228 240,180,221 240,170,220 232,180,240 248,165,225 240,180,230 238,185,199 200,180,200 220,180,200 202,150,200 240,200,200 200,190,200 240,190,200 210,180,200 200,100,128 200,170,200 200,150,200 200,140,152 200,170,245 192,100,101 200,200,200 210,120,120
Dari persamaan 3.1 cari nilai piksel nomor 1 yaitu RGB=247, 180, 240 Dimana nilai konstanta G= 0.5, P=50.
Nilai R piksel nomor 1:
fo (1) =G(f1(1)-P)+P = 0.5 (247-50) +50 = 149
Nilai G:
fo (1) =G(f1(1)-P)+P = 0.5 (180-50) +50 = 115
Nilai B:
fo (1) =G(f1(1)-P)+P = 0.5 (240-50) +50 = 145
Nilai RGB piksel nomor 1 =149, 115, 145 Nilai R piksel nomor 4: 241,180,228
Nilai G:
Nilai RGB piksel nomor 4 = 146,115,139 Nilai R piksel nomor 5: 240,180,221
fo (5) =G(f1(5)-P)+P
Nilai RGB piksel nomor 5 =146,115,136 Nilai R piksel nomor 9: 240,180,230
= 140
Nilai RGB piksel nomor 9 = 146, 115, 140 Nilai R piksel nomor 16: 240,190,200
fo (16) =G(f1(16)-P)+P
Nilai RGB piksel nomor 16 = 146,120,125 Nilai R piksel nomor 17: 210,180,200
fo (17) =G(f1(17)-P)+P
Nilai RGB piksel nomor 17 = 130,115,125 Nilai R piksel nomor 22: 210,180,200
Nilai G:
fo (22) =G(f1(22)-P)+P = 0.5 (180-50) +50 = 115
Nilai B:
fo (22) =G(f1(22)-P)+P = 0.5 (200-50) +50 = 125
Nilai RGB piksel nomor 22 =130,115,125 Nilai R piksel nomor 25: 210,120,120
fo (25) =G(f1(25)-P)+P = 0.5 (210-50) +50 = 130
Nilai G:
fo (25) =G(f1(25)-P)+P = 0.5 (120-50) +50 = 85
Nilai B:
fo (25 =G(f1(25)-P)+P = 0.5 (120-50) +50 = 85
Nilai RGB piksel nomor 25 = 130,85,85
Dari hasil perubahan kontras diatas maka diperoleh matriks citra kontras seperti pada tabel 3.13.
3.1.6.3Ekstraksi
Ekstraksi teks dari file stego image dan sudah dirubah nilai kontrasnya dengan menggunakan algoritma LSB adalah dengan membaca bit nomor 8 dari setiap byte piksel citra stego image hasil kontras sesuai dengan kunci nomor acak yaitu 1, 5, 21, 10, 18, 11, 23 dan 8.
Dari tabel 3.11 diatas nilai piksel-piksel:
Nomor 1 yaitu: 149,115,145 dengan nilai blue 145 dan biner 1001 0001, maka data penyisip pada bit nomor 8 yaitu 1.
Nomor 5 yaitu: 146,115,136 dengan nilai blue 136 dan biner 1000 1000, maka data penyisip pada bit nomor 8 yaitu 0.
Nomor 21 yaitu: 200,140,152 dengan nilai blue 152 dan biner 1001 1000, maka data penyisip pada bit nomor 8 yaitu 0.
Nomor 10 yaitu: 238,185,199 dengan nilai blue 199 dan biner 1100 0111, maka data penyisip pada bit nomor 8 yaitu 1.
Nomor 18 yaitu: 200,100,128 dengan nilai blue 128 dan biner 1000 0000, maka data penyisip pada bit nomor 8 yaitu 0.
Nomor 11 yaitu 200,180,200 dengan nilai blue 200 dan biner 1100 1000, maka data penyisip pada bit nomor 8 yaitu 0.
Nomor 23 yaitu 192,100,101 dengan nilai blue 101 dan biner 110 0101, maka data penyisip pada bit nomor 8 yaitu 1.
Nomor 8 yaitu 248,165,225 dengan nilai blue 225 dan biner 1110 0001, maka data penyisip pada bit nomor 8 yaitu 1.
Hasil ekstraksi 8 bit diatas adalah 10010011 dengan nilai ASCII = 147. Dari Data penyisip berupa huruf kapital S dengan 8 bit 01010011 dapat dihitung Errro data
recovery
S = 01010011 147 = 10010011 --- 11000000
3.1.7 Flow Chart Penyisipan Algoritma LSB +1
Adapun flow chart proses penyisipan teks algoritma LSB +1 ke dalam citra digital dapat dilihat seperti pada Gambar 3.9 berikut.
Gambar 3.9 Flow Chart Penyisipan Algoritma LSB +1 Ya
Hitung Nilai Biner Piksel Cover Image
Sisip bit-bit pesan pada bit LSB ke 2 cover pada
piksel sesuai bilangan acak Start
Input Cover Image, Teks
Masih Ada Bit Pesan ?
Stop Tidak
Tampilkan Stego Image Hitung Nilai Biner Pesan
Bangkitkan Bilangan Acak
Simpan Bilangan Acak
Keterangan gambar:
1. Pada cover image dilakukan perhitungan jumlah piksel dan nilai biner cover
image.
2. Pada embed dilakukan perhitungan nilai biner.
3. Dari password dan jumlah piksel dilakukan pembangkitan bilangan acak.
4. Selanjutnya dilakukan pembangkitan bilangan acak sebanyak jumlah piksel cover
image.
5. Lakukan pergantian bit LSB cover image dengan bit embed pada posisi piksel sesuai dengan bilangan acak.
6. Simpan bilangan acak dalam format teks.
3.1.8 Flow Chart Ekstraksi Algoritma LSB +1
Flow chart Ekstraksi LSB +1 adalah proses pendeteksian data teks (embed) dengan
algoritma LSB dapat dilihat seperti pada Gambar 3.10 berikut.
Gambar 3.10 Flow Chart Ekstraksi Algoritma LSB +1 Start
Stego Image
Baca piksel pada posisi bilangan acak Baca bilangan acak
Hitung Nilai Biner Piksel F(i,j) Hitung Jumlah Piksel Stego Image
Gambar 3.11 Flow Chart Ekstraksi Algoritma LSB +1
Keterangan gambar:
Pada proses ekstraksi dilakukan penghitungan nilai piksel dalam nilai warna RGB dan dikonversikan ke nilai biner. Selanjutnya dilakukan pembangkitan bilangan acak sesuai dengan password dan jumlah byte stego image yang dimasukkan. Untuk mengetahui posisi piksel letak bit penyisip, baca bit LSB piksel pada posisi bilangan acak.
3.1.9 Flowchart Penyisipan Algoritma MLSB
Flowchart Penyisipan Algoritma MLSB adalah bagan yang menggambarkan
proses-proses yang terjadi pada penyisipan file citra dengan algoritma MLSB yang dapat dilihat seperti pada Gambar 3.12.
Ya
Masih Ada Piksel Acak?
Stop Tidak
Tampilkan Teks
Konversi 8 bit ASCII Embed Ambil bit LSB +1 F(i,j) bit embed
Gambar 3.12 Flowchart Penyisipan Algoritma MLSB Start
Input File citra dan Teks
Modifikasi Pesan dan Gabung dengan Control Symbol Jumlah bit sampel citra i
Jumlah bit pesan j
Konversi Pesan ASCII(hex) i > j
N
Y
Y N
Konversi 5 Biner
Ganti Bit LSB Byte Sampel Citra(i) dengan bit pesan sesuai bil acak
Pesan (j)=null
Stop Stego Image
Keterangan :
1. File citra dan pesan diinput dan dibaca.
2. Pesan dan ukurannya diubah ke dalam bentuk ASCII (hexadecimal).
3. Pesan dimodifikasi sesuai dengan ketentuan - ketentuan algoritma MLSB dan digabung dengan control symbol-nya.
4. Setelah pesan dimodifikasi maka pesan diubah ke dalam bentuk biner. 5. Bangkitkan bilangan acak sebanyak jumlah bit pesan.
6. Penyisipan dilakukan pada byte sesuai dengan bilangan acak dengan menggunakan teknik algoritma LSB.
7. Jika bit-bit pesan belum habis maka diulangi langkah 5 sampai semua bit-bit
pesan habis disisipkan (j= “null”).
8. Ubah nilai kontras citra stego
9. File citra yang telah disisipi pesan disimpan dengan mengikut sertakan informasi file citra.
3.1.10 Flowchart Ekstraksi Algoritma MLSB
Flowchart Ekstraksi Algoritma MLSB adalah bagan yang menggambarkan
proses-proses yang terjadi pada ekstraksi embed dari stego image dengan algoritma MLSB dapat dilihat seperti pada Gambar 3.13.
Gambar 3.13 Flowchart Ekstraksi Algoritma MLSB Start
Stego Image
Jumlah Piksel
Konversikan Piksel Biner
Gambar 3.14 Flowchart Ekstraksi Algoritma MLSB (Lanjutan) Blok n ASCII
Ambil bit LSB Piksel sesuai bilangan acak i
i = 5 N
Y
N
Konversi Blok (n) ASCII
Control Symbol =1Fh Blok(n)= Control Symbol ?
Stop Teks Penyisip
IF Control Symbol 1Bh = Blok(n)+60 IF Control Symbol 1Ch = Blok(n)+40 IF Control Symbol 1Eh = Blok(n)+30
IF Control Symbol 1Dh = SPC
Y
Gabung Blok(n) Pesan Baca piksel pada posisi bilangan acak
Baca bilangan acak
A
Keterangan :
1. Input file citra stego image
2. Setiap byte piksel diubah kedalam bentuk biner.
3. Pisahkan 2 bit terakhir dari setiap piksel kemudian dikelompokkan menjadi 5 bit per blok.
4. Konversikan setiap blok ke dalam ASCII (hexadecimal).
5. Blok pertama dibandingkan dengan Control Symbol untuk mendefenisikan jenis karakter berikutnya.
- Jika Control Symbol 1Bh maka setiap blok berikutnya yang bukan Control
Symbol ditambah +60
- Jika Control Symbol 1Ch maka setiap blok berikutnya yang bukan Control
Symbol ditambah +40.
- Jika Control Symbol 1Eh maka setiap blok berikutnya yang bukan Control
Symbol ditambah +30
- Jika Control Symbol 1Dh maka menyatakan spasi
6. Langkah ke 3 sampai ke 5 diulangi sampai ditemukannya Control Symbol end of
the text (1Fh).
7. Rekonstruksikan setiap blok data sebagai teks penyisip.
3.2 Perancangan Antarmuka
Dalam membangun aplikasi Analisis Ketahanan Citra Stego Metode LSB+1 dan MLSB terhadap perubahan kontras citra perlu adanya perancangan antar muka yang berfungsi sebagai perantara sistem dengan pengguna (user interface). Dalam perancangan interface diharapkan dapat tercipta kemudahan bagi pengguna (user
friendly) dalam mengoperasikan sistem ini. Rancangan tampilan yang akan bangun
adalah:
1. Merancang Menu Utama yang berfungsi sebagai tempat untuk menampilkan Judul Tugas Akhir, gambar latar serta sub menu aplikasi.
2. Merancang Menu File yang terdiri dari program LSB+1 dan MLSB. 3. Merancang tampilan About, yang terdiri dari :
a. Tampilan judul tugas akhir
b. Tampilan profil penulis serta foto.
d. Tombol berfungsi sebagai tombol untuk keluar.
4. Merancang tampilan Close, yang berfungsi sebagai tombol untuk menutup tampilan Menu Utama.
3.2.1 Rancangan Menu Utama
Rancangan Menu Utama merupakan tampilan yang berfungsi untuk menampilkan menu-menu aplikasi. Pada rancangan ini terdapat judul aplikasi, gambar latar serta sub menu antara lain Penyisipan, About serta Close. Rancangan Menu Utama terlihat seperti pada Gambar 3.15.
Gambar 3.15 Rancangan Menu Utama
Keterangan :
Pada halaman menu utama yang terdapat gambar latar dan terdapat tampilan sub menu pilihan aplikasi yang dapat diakses terdiri dari menu Penyisipan, About serta tombol
Close, yang berfungsi sebagai berikut:
1. Sub Menu Penyisipan berfungsi untuk menampilkan program untuk melakukan proses penyisipan dengan algoritma LSB+1 dan MLSB.
2. Menu About berfungsi untuk menampilkan halaman keterangan. 3. Menu Close berfungsi untuk keluar dari halaman menu utama.
About Close Penyisipan
3.2.2 Rancangan Form Algoritma LSB+1
Rancangan Form Algoritma LSB+1 berfungsi untuk melakukan penyisipan dengan algoritma LSB+1. Rancangan Form Algoritma LSB+1 dapat dilihat seperti pada Gambar 3.16.
Gambar 3.16 Rancangan Form Algoritma LSB+1 Keterangan:
1. Option : berfungsi untuk menampilkan pilihan proses penyisipan atau ekstraksi.
2. Button : berfungsi untuk melakukan memanggil file citra asli. 3. Button : berfungsi untuk melakukan memanggil file teks. 4. Button : berfungsi untuk melakukan proses penyisipan.
Size (byte) 0 Penyisipan 0 Ekstraksi
8 Jumlah Biner huruf
5. Button : berfungsi untuk melakukan proses ekstraksi. 6. Button : berfungsi untuk membersihkan form.
7. Button : berfungsi untuk menutup tampilan form. 8. Picture Box : berfungsi untuk menampilkan citra asli.
9. Picture Box : berfungsi untuk menampilkan citra hasil proses penyisipan. 10. TextBox : berfungsi untuk menampilkan data kunci.
11. TextBox : berfungsi untuk menampilkan isi teks.
12. TextBox : berfungsi untuk menampilkan biner teks.
13. TextBox : berfungsi untuk menampilkan jumlah huruf teks.
14. TextBox : berfungsi untuk menampilkan jumlah biner huruf teks.
15. TextBox : berfungsi untuk menampilkan lama proses.
16. TextBox : berfungsi untuk menampilkan dimensi citra.
17. TextBox : berfungsi untuk menampilkan MSE.
18. TextBox : berfungsi untuk menampilkan nama file citra asli.
19. TextBox : berfungsi untuk menampilkan size citra asli.
20. TextBox : berfungsi untuk menampilkan nama file stego image.
21. TextBox : berfungsi untuk menampilkan ukuran file stego image.
22. TextBox : berfungsi untuk menampilkan nama file teks.
23. TextBox : berfungsi untuk menampilkan nama file kunci.
3.2.3 Rancangan Form Algoritma MLSB
Gambar 3.17 Rancangan Form Algoritma MLSB
Keterangan:
1. Picture Box : berfungsi untuk menampilkan citra asli. 2. TextBox : berfungsi untuk menampilkan isi teks. 3. TextBox : berfungsi untuk menampilkan hexa teks. 4. TextBox : berfungsi untuk menampilkan control symbol
5. Picture Box : berfungsi untuk menampilkan citra hasil proses penyisipan. 6. TextBox : berfungsi untuk menampilkan kunci random.
7. Option : berfungsi untuk menampilkan pilihan proses penyisipan atau ekstraksi.
8. TextBox : berfungsi untuk menampilkan nama file citra asli. Size (byte)
9. TextBox : berfungsi untuk menampilkan size citra asli. 10. TextBox : berfungsi untuk menampilkan lebar citra asli. 11. TextBox : berfungsi untuk menampilkan tinggi citra asli. 12. TextBox : berfungsi untuk menampilkan dimensi citra asli. 13. TextBox : berfungsi untuk menampilkan byte citra asli. 14. TextBox : berfungsi untuk menampilkan nama file teks. 15. TextBox : berfungsi untuk menampilkan size file teks. 16. TextBox : berfungsi untuk menampilkan jumlah huruf teks. 17. TextBox : berfungsi untuk menampilkan jumlah biner teks. 18. TextBox : berfungsi untuk menampilkan nama file stego image. 19. TextBox : berfungsi untuk menampilkan ukuran file stego image. 20. TextBox : berfungsi untuk menampilkan MSE.
21. TextBox : berfungsi untuk menampilkan lama proses.
22. Button : berfungsi untuk melakukan memanggil file citra asli. 23. Button : berfungsi untuk melakukan memanggil file teks.
24. Button : berfungsi untuk melakukan proses penyisipan dan ekstraksi. 25. Button : berfungsi untuk membersihkan form.
26. Button : berfungsi untuk menutup tampilan form.
3.2.4 Rancangan About
Gambar 3.18 Rancangan About Keterangan:
Tampilan foto penulis bersifat tambahan saja (optional) karena foto penulis bisa diganti dengan foto rancangan perangkat keras sistem.
3.2.5 Rancangan Pengujian
Pengujian sistem adalah pengumpulan data hasil penyisipan, perubahan kontras citra hasil penyisipan dan ekstraksi
3.2.5.1Pengujian Erorr Data Recovery
Pengujian Erorr data recovery Citra berfungsi untuk melakukan pengujian dengan menghitung nilai error antara data penyisip teks dengan data teks hasil ekstraksi yang dapat dilihat pada Tabel 3.14.
ANALISIS KETAHANAN CITRA STEGO METODE LSB+1 DAN MLSB TERHADAP PERUBAHAN KONTRAS CITRA
Nama Penulis NIM
Foto Penulis Logo
Tabel 3.14 Rancangan Hasil Pengujian Algoritma LSB+1 dan MLSB No File Citra
Cover
Size File Teks Penyisip
Jumlah Huruf Tersisip
Jumlah Huruf Ekstraksi
Error data recovery(%)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1Implementasi
Implementasi perangkat lunak Analisis Ketahanan Citra Stego Metode LSB+1 Dan MLSB Terhadap Perubahan Kontras Citra adalah tampilan hasil rancangan dari penulisan kode program dimulai dari program Menu Utama, File yang terdiri dari program LSB+1 dan Modified Least Significant Bit (MLSB), About serta Close.
4.1.1 Tampilan Menu Utama
Tampilan Menu Utama berisi gambar latar serta tampilan menu. Tampilan Menu terdiri dari menu Steganografi File, About serta Close. Tampilan Menu Utama dapat dilihat pada Gambar 4.1.
4.1.2 Tampilan Form LSB+1
Tampilan Form Algoritma LSB+1 berfungsi untuk melakukan penyisipan dan ekstraksi dengan algoritma LSB+1. Tampilan Form Algoritma LSB+1 dapat dilihat seperti pada Gambar 4.2.
Gambar 4.2 Tampilan Form LSB+1
Pada Gambar 4.2 diatas terlihat file citra oil-painting.jpg disisipi dengan file teks Pesan2.txt teks dengan jumlah huruf sebanyak 73 karakter menjadi file StegoLSB15.jpg dengan nilai MSE 0.055.
4.1.3 Tampilan Ekstraksi LSB+1
Gambar 4.3 Tampilan Ekstraksi LSB+1
Pada Gambar 4.3 diatas terlihat file stego image StegoLSB15.jpg dengan ukuran 3658589 bytes diekstraksi menghasilkan teks dengan jumlah huruf sebanyak 36 karakter.
4.1.4 Tampilan Form MLSB
Gambar 4.4 Tampilan Form MLSB
Pada Gambar 4.4 diatas terlihat file citra oil-painting.jpg disisipi dengan file teks Pesan2.txt menjadi file StegoMLSB89.jpg dengan nilai MSE 0.036.
4.1.5 Tampilan Ekstraksi MLSB
Tampilan Ekstraksi Modified Least Significant Bit (MLSB) merupakan tampilan berguna untuk melakukan proses ekstraksi pesan dari file stego image dengan algoritma Modified Least Significant Bit. Tampilan Ekstraksi Modified Least
Gambar 4.5 Tampilan Ekstraksi Modified Least Significant Bit (MLSB)
Pada Gambar 4.5 diatas terlihat file stego image StegoMLSB89.jpg dengan ukuran 252112 bytes diekstraksi menghasilkan teks dengan jumlah karakter 82 karakter.
4.1.6 Tampilan About
Gambar 4.6 Tampilan About
4.2Pengujian Sistem
Pengujian sistem adalah pengumpulan data hasil perbandingan steganografi file citra dengan algoritma Least Significant Bit +1 (LSB+1) dengan Modified Least Significant
Bit (MLSB) serta menampilkan nilai Error Data Recovery. Pengujian Erorr data recovery Citra berfungsi untuk melakukan pengujian dengan menghitung nilai error
antara data penyisip teks dengan data teks hasil ekstraksi.
4.2.1 Pengujian dengan algoritma LSB+1
Tabel 4.1 Hasil Pengujian Algoritma LSB+1 informasinya sudah berubah dari aslinya dan inilah yang menyebabkan kegagalan pada nilai error data recovery.
4.2.2 Pengujian dengan algoritma MLSB
Pengujian dengan algoritma MLSB berfungsi untuk menampilkan hasil penyisipan teks ke dalam citra dengan algoritma MLSB yang dapat dilihat pada Tabel 4.2.
6 Citra-6.bmp 1.260 Teks-6 350 355 (ASCII) 75 7 Citra-7.Bmp 1.070 Teks-7 400 401 (ASCII) 85 8 Citra-8. Bmp 1.160 Teks-8 450 453 (ASCII) 65 9 Citra-9. Bmp 63.7 Teks-9 500 501 (ASCII) 53 10 Citra-10.bmp 83.2 Teks-10 550 603 (ASCII) 54
Rata-rata Error data recovery 65.3
BAB 5
KESIMPULAN DAN SARAN
5.1Kesimpulan
Setelah merancang dan mengaplikasikan perangkat lunak perangkat lunak Analisis Ketahanan Citra Stego Metode Least Significant Bit +1 (LSB+1) Dan Modified Least
Significant Bit (MLSB) Terhadap Perubahan Kontras Citra, maka diperoleh hasil
pengujian adalah sebagai berikut:
a. Aplikasi dapat melakukan penyisipan teks ke dalam file citra berformat jpg dan bmp dengan jumlah karakter yang bervariasi.
b. Algoritma MLSB bekerja lebih baik dibandingkan dengan LSB+1, karena nilai
Error Data Recovery hasil ekstraksi yang diperoleh algoritma MLSB sebesar
65.3 % lebih besar dibandingkan LSB+1.
c. Algoritma LSB+1 tidak tahan terhadap perubahan nilai kontras citra hasil penyisipan (stego image) dibandingkan algoritma MLSB.
5.2Saran
Adapun saran-saran yang untuk penelitian maupun pengembangan berikutnya adalah: 1. Membandingkan parameter steganografi dengan metode lainnya antara lain
DWT maupun FFT.
BAB 2
LANDASAN TEORI
2.1Steganografi
Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan pesan dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan. pesan steganografi muncul dengan bentuk lain seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi.
Kata steganografi pada awalnya berasal dari kata steganos, steganos sendiri sebenarnya merupakan kata dari bahasa Yunani. Lebih lengkapnya steganos memiliki arti penyamaran atau penyembunyian dan graphein atau graptos memiliki arti tulisan. Pengertian steganografi yang cukup sering digunakan dalam pembelajaran dengan metodologi sejarah adalah “menulis tulisan yang tersembunyi atau terselubung” (Prihanto, 2010).
Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya, kebanyakan pesan disembunyikan 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 ke dalam algoritma yang digunakan.
Seiring perkembangan teknologi terutama teknologi komputasi juga bertambahnya kebutuhan dan keinginan dengan kontinuitas yang tinggi, steganografi merambah juga ke media digital. Ada dua proses utama dalam steganografi digital yaitu penyisipan (embedding/encoding) dan penguraian (extraction/decoding) pesan. Pesan dapat berupa plaintext, chipertext, citra, atau apapun yang dapat ditempelkan ke dalam bit-stream. Embedding merupakan proses menyisipkan pesan ke dalam berkas yang belum dimodifikasi, yang disebut media cover (cover object). Kemudian media
cover dan pesan yang ditempelkan membuat media stego (stego object). Extraction
adalah proses menguraikan pesan yang tersembunyi dalam media stego. Suatu
password khusus (stego key) juga dapat digunakan secara tersembunyi, pada saat
penguraian selanjutnya dari pesan. Ringkasnya, steganografi adalah teknik menanamkan embedded message pada suatu cover object, dimana hasilnya berupa
stego object.
Adapun proses steganografi selengkapnya ditunjukkan pada Gambar 2.1.
Gambar 2.1 Proses Steganografi (Suryani, 2008)
Pihak yang terkait dengan steganografi antara lain embeddor, extractor, dan
stegoanalyst (Suryani, 2008). Embeddor adalah orang yang melakukan embedding
dengan menggunakan aplikasi steganografi, extractor adalah orang yang melakukan
extract stego image dengan menggunakan aplikasi steganografi. Sedangkan stegoanalyst adalah orang yang melakukan steganalisis. Steganalisis merupakan ilmu
Gambar 2.2 Taksonomi Steganografi (Suryani, 2008)
1. Teknik Steganografi (Technical Steganography)
Teknik ini menggunakan metode sains untuk menyembunyikan pesan. Contohnya adalah penyembunyian pesan dalam chip mikro.
2. Linguistk Steganografi (Linguistic Steganography)
Teknik ini menyembunyikan pesan dalam cara yang tidak lazim. Teknik ini terbagi menjadi dua bagian yaitu Semagrams dan Open Codes.
3. Open Codes
Teknik ini menyembunyikan pesan cara yang tidak umum namun tetap tidak mencurigakan. Teknik ini terbagi menjadi dua bagian yaitu Jargon Code dan
Covered Ciphers.
4. Covered Ciphers
Teknik ini menyembunyikan pesan dalam media pembawa sehingga pesan kemudian dapat diekstrak dari media pembawa tersebut oleh pihak yang mengetahui bagaimana pesan tersembunyi tersebut disembunyikan.
Penilaian sebuah algoritma steganografi yang baik dapat dinilai dari beberapa faktor yaitu:
1. Imperceptibility
Keberadaan pesan dalam media penampung tidak dapat dideteksi. Steganografi
Teknik
Steganografi
Linguistik
Steganografi
Open Codes
Jargon Codes Coverd Ciphers
Semagrams
Virtual Semagrams
2. Fidelity
Mutu media penampung setelah ditambahkan pesan rahasia tidak jauh berbeda dengan mutu media penampung sebelum ditambahkan pesan.
3. Recovery
Pesan rahasia yang telah disisipkan dalam media penampung harus dapat diungkap kembali. Hal ini merupakan syarat mutlak dalam sebuah algoritma steganografi, karena ada banyak cara penyisipan pesan yang tidak terdeteksi namun sulit dalam pembacaan kembali.
4. Robustness
Pesan yang disembunyikan harus tahan terhadap berbagai operasi manipulasi yang dilakukan pada media penampung. Bila pada media penampung dilakukan operasi-operasi manipulasi, maka pesan yang disembunyikan seharusnya tidak rusak (tetap valid jika diekstraksi kembali). Karakteristik steganografi yang baik adalah
imperceptibility tinggi, fidelity tinggi, recovery maksimum dan robustness tinggi.
2.1.1 Metode Steganografi
1. Least Significant Bit Insertion (LSB)
LSB ini adalah cepat dan mudah. Dan juga algoritma tersebut memiliki software steganografi yang mendukung dengan bekerja di antara unsur pokok warna LSB melalui manipulasi pallete (lukisan) (Sutoyo, 2010).
2. Algorithms and Transformation
Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah Discrete Cosine
Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet
yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).
3. Redundant Pattern Encoding
Redundant Pattern Encoding adalah menggambar pesan kecil pada kebanyakan
gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan). Kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar. 4. Spread Spectrum method
Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak
(encrypted) melalui gambar (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image.
2.2Media Cover
Media cover digunakan pada steganografi sebagai media untuk menampung pesan
tersembunyi. Pesan yang disembunyikan tersebut dapat mempunyai hubungan atau bahkan tidak mempunyai hubungan sama sekali dengan media dimana pesan tersebut disisipkan (untuk kasus komunikasi rahasia) atau pesan dapat menyediakan info penting tentang media, seperti informasi autentifikasi, judul, tanggal dan waktu pembuatan, hak cipta, nomor seri kamera digital yang digunakan untuk mengambil gambar, informasi mengenai isi dan akses terhadap citra dan lain sebagainya (Binanto, 2010).
yang dapat dimodifikasi. Beberapa contoh media cover yang digunakan dalam teknik steganografi antara lain adalah:
1. Teks
Dalam algoritma steganografi yang menggunakan teks sebagai media penyisipannya, teks yang telah disisipi pesan rahasia tidak boleh mencurigakan untuk orang yang melihatnya.
2. Suara
Format ini sering dipilih karena biasanya berkas dengan format ini berukuran relatif besar. Sehingga dapat menampung pesan rahasia dalam jumlah yang besar pula.
3. Citra
Format ini paling sering digunakan, karena format ini merupakan salah satu format berkas yang sering dipertukarkan dalam dunia internet. Alasan lainnya adalah banyaknya tersedia algoritma steganografi untuk media penampung yang berupa citra.
4. Video
Format ini merupakan format dengan ukuran berkas yang relatif sangat besar namun jarang digunakan karena ukurannya yang terlalu besar sehingga mengurangi kepraktisannya dan juga kurangnya algoritma yang mendukung format ini.
2.3 Citra Digital
Beberapa definisi citra digital menurut para ahli dipaparkan sebagai berikut:
Menurut Sachs (2010, hal:1), citra digital merupakan suatu gambar yang tersusun dari piksel, dimana tiap pixel merepresentasikan warna (tingkat keabuan untuk gambar hitam putih) pada suatu titik gambar.
Sedangkan menurut Fahmi (2007: hal 7), citra digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut dengan piksel (picture elements).
(quantization) adalah pemberian nilai intensitas warna pada setiap piksel dengan nilai
yang berupa bilangan bulat.
Gambar 2.2 Citra Digital (Citra Bunga)
Agar dapat diolah dengan komputer digital, suatu citra harus fungsi kontinu menjadi nilai-nilai diskrit disebut pencitraan (imaging) atau digitalisasi. Citra yang dihasilkan inilah yang disebut citra digital (Digital Image), dinyatakan sebagai kumpulan piksel dalam matrik dua dimensi. Pada umumnya citra digital berbentuk empat persegi panjang dan dimensi ukurannya dinyatakan tinggi dikalikan dengan lebar atu lebar dikalikan dengan panjang.
Citra digital yang berukuran N x M lazim dinyatakan dengan matriks yang berukuran N baris dan M kolom seperti pada Gambar 2.3
f(x,y)=
Gambar 2.3 Representasi citra digital dalam matriks N x M (Putra, 2010) Warna digital adalah kombinasi dari tiga warna primer yaitu merah, hijau, dan biru (RGB). Setiap warna dapat dispesifikasikan sebagai triplet nilai intensitas RGB, dengan setiap intensitas berkisar antara 0 sampai 255, yaitu:
Red : RGB (255, 0, 0) ……….………….………..………(2.2)
Green : RGB (0, 255, 0) .……….……….……… (2.3)
Dari nilai triplet RGB persamaan (2) sampai (4) di atas dapat dikonversikan ke dalam nilai desimal seperti dibawah ini:
Red : 255*2560 + 0*2561 + 0*2562= 255 + 0 + 0 = 255 ………..………...…(2.5) Green : 0*2560 + 255*2561 + 0*2562= 0 + 65,280 + 0 = 65,280 ………(2.6) Blue : 0*2560 + 0*2561 + 255*2562 = 0 + 0 + 16,711,680 = 16,711,680 ….…(2.7) Rumus dasar mencari nilai RGB citra adalah:
R = COLOR And RGB(255, 0, 0) ….……….……….…. (2.8) G = (COLOR And RGB(0, 255, 0)) / 256 .……….………...… (2.9) B = ((COLOR And RGB(0, 0, 255)) / 256) / 256 ….……….………..…. (2.10) Dari persamaan (2.5) sampai (2.7) diatas, rumus RGB pada persamaan (2.8) sampai (2.10) menjadi:
Nilai R = c and 255 ………... (2.11) Nilai G = (c and 65,280)/256 ..………...……….……..…..….. (2.12) Nilai B = ((c and 16,711,680)/256)/256 ………...………... (2.13) Dimana c adalah nilai intensitas piksel citra.
Ada beberapa format citra digital yang dijumpai, antara lain (Basuki, et al. 2005): 1. Bitmap (BMP)
Format citra ini adalah yang paling umum dan merupakan format standard
windows. Ukuran file-nya besar karena bisa mencapai ukuran megabyte. File ini
merupakan format yang belum terkompresi dan menggunakan sistem warna RGB (Red, Green, Blue) di mana masing-masing warna pixel-nya terdiri dari 3 komponen R, G, dan B yang dicampur menjadi satu. File BMP dapat dibuka dengan berbagai macam software pembuka gambar seperti ACDSee, Paint, Irvan
View dan lain-lain. File BMP tidak bisa (sangat jarang) digunakan di web (internet)
Tabel 2.1 Bitmap Info Header
Nama Field Ukuran (Byte) Keterangan
beSize 4 Memori Header
beWidth 2 Lebar Gambar
beHeight 2 Tinggi Gambar
bePlanes 2 Harus 1
beBitCount 2 Bits per pixel – 1,4,8 atau 24
Tabel 2.2 Bitmap Core Header
Nama Field Ukuran (Byte) Keterangan
bfType 2 Mengandung karakter “BM” yang
mengidentifikasikan tipe file
bfSize 4 Memori file
bfReserved1 2 Tidak dipergunakan
bfReserved2 2 Tidak dipergunakan
bfOffBits 4 Offset untuk memulai data pixel
2. Joint Photographic Expert Group (JPEG/JPG)
Citra dengan format JPEG adalah yang paling terkenal sampai sekarang ini, karena berukuran kecil (hanya puluhan/ratusan KB saja) dan bersifat portable. Citra ini sering digunakan pada bidang fotografi untuk menyimpan file foto hasil perekaman analog to digital converter (ADC). Karena ukurannya kecil maka file ini banyak digunakan di Web (internet).
Format citra JPEG adalah suatu desain untuk mengkompresi citra baik
gray-level maupun citra full-color. JPEG tidak hanya menangani data dalam bentuk citra,
sebuah metode yang efisien untuk menyimpan citra dengan jumlah warna yang sangat banyak seperti foto kamera.
Perbedaan utama antara format JPEG dengan format citra yang lainnya adalah bahwa file JPEG menggunakan metode lossy untuk proses pemampatannya. Pemampatan secara lossy akan membuang sebagian data citra untuk memberikan hasil kompresi yang baik. Hasil file JPEG yang di-dekompres tidak begitu sesuai dengan citra aslinya, tetapi perbedaan ini sangat sulit dideteksi oleh mata manusia (Putra, 2010).
2.3.1 Jenis – jenis Citra Digital
Ada banyak cara untuk menyimpan citra digital di dalam memori. Cara penyimpanan menentukan jenis citra digital yang terbentuk. Beberapa jenis citra digital yang sering digunakan adalah citra biner, citra grayscale dan citra warna.
1. Citra Biner (Monokrom)
Citra biner (monokrom) hanya memiliki 2 warna yaitu hitam dan putih. Dibutuhkan 1 bit di memori untuk menyimpan kedua warna ini.
Gradasi warna :
0 1
Bit 0 = warna hitam Bit 1 = warna putih
2. Citra Grayscale (skala keabuan)
Banyaknya warna tergantung pada jumlah bit yang disediakan di memori untuk menampung kebutuhan warna ini. Citra 2 bit mewakili 4 warna dengan gradasi warna berikut:
0 1 2 3
Citra 3 bit mewakili 8 warna dengan gradasi warna berikut :
Semakin besar jumlah bit warna yang disediakan di memori, semakin halus gradasi warna citra yang ditampilkan di monitor.
3. Citra Warna (True Color)
Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar (RGB = Red Green Blue). Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 255 warna. Berarti setiap piksel mempunyai kombinasi warna sebanyak 28 .28 .28 = 224 = 16 juta warna lebih. Itulah sebabnya format ini dinamakan true color karena mempunyai jumlah warna yang cukup besar sehingga bisa dikatakan hampir mencakup semua warna di alam.
Penyimpanan citra true color di dalam memori berbeda dengan citra
grayscale. Setiap piksel dari citra grayscale 256 gradasi warna diwakili oleh 1 byte.
Sedangkan 1 piksel citra true color diwakili oleh 3 byte, dimana masing – masing byte merepresentasikan warna merah (red), hijau (green) dan biru (blue). Gambar 2.3 adalah contoh citra warna.
Gambar 2.3 Contoh citra warna
2.3.2 Format File Citra Bitmap