OPTIMASI PENYISIPAN CITRA DENGAN ALGORITMA GENETIKA DAN MODIFIED LEAST SIGNIFICANT BIT
TESIS
SATRIA F RAMADHAN S.
177038047
PROGRAM STUDI S-2 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2020
OPTIMASI PENYISIPAN CITRA DENGAN ALGORITMA GENETIKA DAN MODIFIED LEAST SIGNIFICANT BIT
TESIS
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika
SATRIA F RAMADHAN S.
177038047
PROGRAM STUDI S-2 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2020
i
PERNYATAAN ORISINALITAS
OPTIMASI PENYISIPAN CITRA DENGAN ALGORITMA GENETIKA DAN MODIFIED LEAST SIGNIFICANT BIT
Dengan ini saya mengakui bahwa tesis ini adalah hasil karya sendiri, kecuali kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 26 Agustus 2020
SATRIA F RAMADHAN S 177038047
iii
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan dibawah ini:
Nama : SATRIA F RAMADHAN S
NIM : 177038047
Program Studi : Teknik Informatika Jenis Karya Ilmiah : Tesis
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalty Free Right) atas Tesis saya yang berjudul:
OPTIMASI PENYISIPAN CITRA DENGAN ALGORITMA GENETIKA DAN MODIFIED LEAST SIGNIFICANT BIT
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan Tesis saya tanpa meminta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan atau sebagai pemilik hak cipta.
Demikian pernyataan ini dibuat dengan sebenarnya.
Medan, 26 Agustus 2020
SATRIA F RAMADHAN 177038047
Telah diuji pada Tanggal:
PANITIA PENGUJI TESIS
Ketua : 1. Dr. Poltak Sihombing, M.Kom Anggota : 2. Dr. Sutarman, M.Sc
3. Prof. Drs. Mahyudin K.M Nasution, M.IT.,Ph.D
4. Prof. Dr. Muhammad Zarlis
v
RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap : SATRIA F RAMADHAN S
Tempat dan Tanggal Lahir : Binjai 23 Febuari 1994
Alamat Rumah : Jl Kenari No 12, LK V, Mencirim, Binjai Timur
Handphone : 082249490294
E-mail : [email protected]
DATA PENDIDIKAN
SD : SDN 020271 Binjai
SLTP : SMPN 3 Binjai
SLTA : SMAN 2 Binjai
S1 : S-1 Ilmu Komputer FASILKOM-TI USU
S2 : Magister S-2 Teknik Informatika FASILKOM-
TI USU
UCAPAN TERIMA KASIH
Pertama-tama penulis panjatkan puji syukur kehadirat Tuhan Yang Maha Esa atas segala rahmat dan karunia-Nya berupa pengetahuan, kesehatan dan kesempatan yang diberikan kepada penulis sehingga dapat menyelesaikan tesis ini dengan baik. Tesis penulis yang berjudul : “OPTIMASI PENYISIPAN CITRA DENGAN ALGORITMA GENETIKA DAN MODIFIED LEAST SIGNIFICANT BIT” merupakan salah satu syarat akademik penulis sebagai mahasiswa S2, program studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI), Universitas Sumatera Utara (USU), Medan dalam menyelesaikan jenjang pendidikan S2.
Dalam kesempatan ini, penulis hendak memberikan penghargaan dan ucapan terima kasih yang sebesar-besarnya kepada :
1. Pejabat Rektor Universitas Sumatera Utara, Bapak Prof. Dr. Runtung Sitepu, S.H.
M.Hum atas kesempatan yang diberikan kepada saya untuk mengikuti dan menyelesaikan pendidikan Program Pasca Sarjana.
2. Dekan Fakultas Ilmu Komputer Universitas Sumatera Utara, Bapak Prof. Dr. Opim Salim Sitompul, Ketua Program Studi Magister (S2) Teknik Informatika Bapak Prof. Dr. Muhammad Zarlis, dan Sekretaris Program Studi Magister (S2) Teknik Informatika, Bapak Dr. Syahril Efendi, M.IT beserta seluruh dosen yang telah banyak memberikan ilmu pengetahuan selama masa perkuliahan serta seluruh staff pegawai pada Program Studi S2 Teknik Informatika Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom, selaku pembimbing utama yang telah memberikan bimbingan dan masukan kepada penulis hingga selesainya tesis ini.
4. Bapak Dr. Sutarman, M.Sc, selaku pembimbing kedua yang telah banyak memberikan bimbingan, tuntunan, masukan serta motivasi kepada penulis.
5. Bapak Prof. Drs. Mahyuddin K.M Nasution, M.IT., Ph.D, selaku pembanding/penguji tesis yang senantiasa memberikan masukan dan saran kepada penulis agar tesis ini menjadi lebih baik lagi.
6. Bapak Prof. Dr. Muhammad Zarlis, selaku penguji yang telah banyak memberikan masukan serta saran kepada penulis agar tesis ini menjadi lebih baik lagi.
Secara khusus penulis mengucapkan rasa terima kasih sedalam-dalamnya kepada orang tua penulis tercinta dan tersayang, Ibu Mega Nirwana S.Sos dan
vii
Bapak Philipus Sitepu S.H, M.Hum yang telah memberikan perhatian, pengertian, kasih sayang, motivasi serta dukungan berupa material dan spiritual kepada penulis.
Penulis juga meyampaikan rasa terima kasih kepada Adinda Tersayang Fullah Afrah Walid dan seluruh keluarga dari berbagai kalangan yang sudah banyak membantu, memberikan motivasi, perhatian serta dukungan kepada penulis. Tak lupa untuk rekan-rekan penulis selama menempuh pendidikan Pasca Sarjana yang sudah penulis anggap sebagai keluarga yaitu KOM A 2017, terima kasih untuk kekompakan, keakraban, dan kerjasama selama ini dan penulis selalu merindukannya serta penulis sangat menyadari bahwa masih banyak kekurangan dalam penyusunan tesis ini. Tak lupa penulis mengharapkan kritik dan saran yang sifatnya membangun dari pembaca demi kesempurnaan dari penelitian selanjutnya.
Dengan harapan ridho Tuhan Yang Maha Esa, maka penulis berharap semoga tesis ini dapat dikembangkan lagi menjadi lebih baik serta dapat bermanfaat bagi semua pihak khususnya dalam dunia pendidikan dan teknologi Informasi.
Medan, 26 Agustus 2020
SATRIA F RAMADHAN S 177038047
ABSTRAK
Penyisipan data kedalam media digital cenderung merubah ukuran besar file media cover, ini disebabkan karena piksel yang disisipi memiliki ukuran yang berbeda dengan nilai penyisip yaitu dengan nilai yang lebih besar atau lebih kecil, misalnya nilai piksel 10 disisipkan dengan data yang berukuran lebih besar atau lebih kecil dari nilai 10. Sehingga nilai pikselnya semakin jauh dari nilai 10, hal ini menyebabkan nilai Mean Squared Error (MSE) media penampung (cover) menjadi bertambah besar. Pada penelitian ini dilakukan pemilihan piksel-piksel pada citra yang sesuai dengan nilai data penyisip sebagai tempat penyisipan dengan algoritma Genetika (GA). Penyisipan data pada piksel yang terpilih dengan algoritma GA dilakukan dengan menggunakan algoritma Modified Least Significant Bit (MLSB) pada posisi bit least significant bits (LSB). Hasil penelitian secara keseluruhan diperoleh nilai rata-rata MSE hasil penyisipan dengan algoritma GA-MLSB menurun seiring dengan penambahan nilai parameter genetika yaitu nilai probabilitas crossover (Pc) yaitu 0.031, 0.030, 0.029 dan 0.028 serta peningkatan rata-rata MSE sebesar 3.51 %. Hal ini disebabkan karena algoritma genetika dapat memilih piksel-piksel yang sesuai bagi penyisipan dengan algoritma MLSB yang dapat memampatkan biner-biner penyisip menjadi lima bit setiap karakter dan kemudian menyisipkan bit-bit data pada posisi LSB. Perubahan bit-bit pada posisi LSB tidak memiliki pengaruh yang besar terhadap citra yang disisipkan sehingga dapat diperoleh nilai MSE yang tidak terlalu besar.
Kata kunci: Steganografy Modified Least Significant Bit, algoritma genetika
ix
ABSTRACT
Inserting data into digital media tends to change the large size of the media cover file, this is because the inserted pixel has a different size from the insertion value, ie with a larger or smaller value, for example a pixel value of 10 is inserted with larger or smaller data of value 10. So that the pixel value is farther away from the value of 10, this causes the value of Mean Squared Error (MSE) of the media of the cover (cover) to become larger. In this research, the selection of pixels in the image is in accordance with the value of the insertion data as the insertion place with the Genetic algorithm (GA). Insertion of data on selected pixels with the GA algorithm is done using the Modified Least Significant Bit (MLSB) algorithm at the position of the least significant bits (LSB). The overall research results obtained the average value of MSE insertion results with the GA-MLSB algorithm decreased along with the addition of genetic parameter values namely crossover probability values (Pc) namely 0.031, 0.030, 0.029 and 0.028 and an average increase of MSE of 3.51%. This is because the genetic algorithm can select pixels that are suitable for insertion with the MLSB algorithm which can compress the insertion binaries into five bits per character and then insert data bits in the LSB position. Changing the bits in the LSB position does not have a large effect on the embedded image so that a MSE value that is not too large can be obtained.
Keywords: Steganografy, Modified Least Significant Bit, Genetic Algorithm
DAFTAR ISI
Halaman
LEMBAR PERSETUJUAN ... i
LEMBAR PERNYATAAN ORISINALITAS ... ii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ... iii
LEMBAR PANITIA PENGUJI TESIS ... iv
RIWAYAT HIDUP ... v
UCAPAN TERIMA KASIH ... vi
ABSTRAK ... viii
ABSTRACT ... ix
DAFTAR ISI ... x
DAFTAR TABEL ... xii
DAFTAR GAMBAR ... xiii
BAB 1 : PENDAHULUAN 1.1 Latar Belakang Masalah ... 1
1.2 Perumusan Masalah ... 2
1.3 Batasan Masalah ... 2
1.4 Tujuan Penelitian ... 3
1.5 Manfaat Penelitian ... 3
BAB 2 : LANDASAN TEORI 2.1 Citra ... 5
2.1.1 Citra Digital ... 5
2.1.2 Representasi Warna Digital ... 6
2.2 Algoritma Genetika ... 9
2.2.1 Teknik pengkodean (Encoding techniques) ... 10
2.2.2 Pembangkitkan populasi awal dan kromosom ... 11
2.2.3 Evaluasi fitness ... 12
2.2.4 Seleksi ... 12
2.2.5 Crossover ... 13
2.2.6 Mutasi ... 14
2.2.7 Parameter Algoritma Genetika ... 15
2.3 Steganografi ... 15
2.4 Algoritma Steganografi MLSB ... 17
2.4.1 Perceptron ... 19
2.4.2 Multi Layer Perceptron (MLP) ... 23
2.5 Perhitungan Mean Square Error (MSE), Peak Signal to Noise Ratio (PSNR) dan Bit Recovery Rate (BRR) ... 24
2.6 Penelitian Terkait ... 25
BAB 3 : METODOLOGI PENELITIAN 3.1 Analisis ... 27
3.2 Diagram Blok Penelitian ... 27
3.3 Diagram Blok Penyisipan ... 28
xi
3.4 Diagram Blok Ekstraksi ... 29
3.5 Pemilihan Piksel-Piksel dengan Algoritma Genetika ... 30
3.5.1 Pendefenisian individu ... 31
3.5.2 Seleksi ... 32
3.5.3 Crossover ... 32
3.6 Pemetaan Nilai Piksel Baru ... 32
3.7 Analisa Data ... 33
3.7.1 Pemilihan Piksel Penyisipan (alpha) ... 34
3.7.2 Perhitungan Nilai Fitness Piksel Alpha ... 40
3.7.3 Pendeteksian Alpha Kembali ... 50
3.8 Penyisipan Teks dengan Algoritma MLSB ... 53
3.9 Perhitungan kualitas citra ... 55
BAB 4 : HASIL DAN PEMBAHASAN 4.1 Pendahuluan ... 57
4.1.1 Alat Yang Digunakan ... 58
4.1.2 Data Yang Digunakan ... 59
4.2 Hasil Pengujian ... 60
4.2.1 Hasil Pengujian 1 ... 61
4.2.2 Hasil Pengujian 2 ... 62
4.2.3 Hasil Pengujian 3 ... 63
4.2.4 Hasil Pengujian 4 ... 64
4.2.5 Nilai Rata-Rata MSE Semua Pengujian ... 67
4.3 Pembahasan ... 68
BAB 5 : KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 71
5.2 Saran ... 71 DAFTAR PUSTAKA ...
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel 2.1 Control Symbol ... 21
Tabel 2.2 Sampel Data ... 22
Tabel 2.3 Sampel Biner ... 22
Tabel 2.4 Sampel Biner Hasil Penyisipan ... 22
Tabel 2.5 Stego (Sampel Biner Hasil Penyisipan) ... 22
Tabel 2.6 Stego audio ... 22
Tabel 2.7 Blok-blok pesan ... 23
Tabel 3.1 Uniform Crossover Dengan Mask Dan Inverse Mask ... 33
Tabel 3.2 Nilai Fitness Citra 5 x 5 Piksel ... 41
Tabel 3.3 Nilai Fitness Komulatif ... 42
Tabel 3.4 Individu Terpilih ... 42
Tabel 3.5 Individu Yang Akan Disilangkan Dipilih Secara Random ... 43
Tabel 3.6 Mutasi Terhadap Gen pada Kromosom ... 43
Tabel 3.7 Individu Baru Hasil Mutasi ... 44
Tabel 3.8 Control Symbol ... 51
xiii
DAFTAR GAMBAR
Halaman
Gambar 2.1. Kordinat Citra Digital ... 6
Gambar 2.2. Siklus Algoritma Genetika ... 8
Gambar 2.3. Pengkodean Biner ... 9
Gambar 2.4. Pengkodean Oktal ... 9
Gambar 2.5. Pengkodean Heksadesimal ... 9
Gambar 2.6. Pengkodean Permutasi ... 10
Gambar 2.7. Pengkodean Nilai ... 10
Gambar 2.8. Contoh Kromosom dengan Pengkodean Pohon ... 10
Gambar 2.9 Proses Steganografi ... 18
Gambar 2.10 Taksonomi Steganografi ... 19
Gambar 3.1. Blok Diagram Penelitian ... 28
Gambar 3.2. Blok Diagram Penyisipan ... 29
Gambar 3.3. Blok Diagram Ekstraksi ... 26
Gambar 3.4. Nilai Piksel Citra 5x5 ... 34
Gambar 3.5. Pencarian Titik Pusat Window Dari Posisi (1,1) ... 34
Gambar 3.6. Pencarian Titik Pusat Window Dari Posisi (1,2) ... 35
Gambar 3.7. Pencarian Titik Pusat Window Dari Posisi (1,3) ... 35
Gambar 3.8 Pencarian Titik Pusat Window Dari Posisi (2,1) ... 36
Gambar 3.9. Pencarian Titik Pusat Window Dari Posisi (2,2) ... 33
Gambar 3.10. Pencarian Titik Pusat Window Dari Posisi (2,3) ... 37
Gambar 3.11. Pencarian Titik Pusat Window Dari Posisi (3,1) ... 38
Gambar 3.12 Pencarian Titik Pusat Window Dari Posisi (3,2) ... 39
Gambar 3.13 Pencarian Titik Pusat Window Dari Posisi (3,3) ... 39
Gambar 3.14 Piksel-Piksel Alpha ... 40
Gambar 3.15 Seleksi Roulette Wheel ... 41
Gambar 3.16 Matriks Citra Pendeteksian Alpha Kembali ... 44
Gambar 3.17 Pencarian Titik Pusat Window Dari Posisi (1,2) ... 45
Gambar 3.18 Pencarian Titik Pusat Window Dari Posisi (1,3) ... 46
Gambar 3.20 Pencarian Titik Pusat Window Dari Posisi (2,2) ... 47
Gambar 3.21 Pencarian Titik Pusat Window Dari Posisi (2,3) ... 48
Gambar 3.22 Pencarian Titik Pusat Window Dari Posisi (3,1) ... 49
Gambar 3.23 Pencarian Titik Pusat Window Dari Posisi (3,2) ... 50
Gambar 3.24 Pencarian Titik Pusat Window Dari Posisi (3,3) ... 50
Gambar 3.25 Citra Hasil Proses Genetika ... 50
Gambar 3.26 Citra Yang Akan Disisipi ... 51
Gambar 3.27 Matriks Citra Cover Image... 52
Gambar 3.28 Matriks Citra Biner Cover Image ... 52
Gambar 3.29 Matriks Citra Biner Stego Image... 53
Gambar 3.30 Matriks Citra Grayscale Stego Image ... 53
Gambar 3.31 Matriks Citra Biner Stego Image... 54
Gambar 3.32 Bit Bit Teks Penyisip ... 54
Gambar 3.33 Citra Input (Original Image) ... 55
Gambar 3.34 Citra Ouput (Stego Image) ... 55
Gambar 4.1 Citra Cover (Cover Image)... 59
Gambar 4.2 Grafik Pengujian-1 ... 61
Gambar 4.3 Grafik Pengujian-2 ... 63
Gambar 4.4 Grafik Pengujian-3 ... 65
Gambar 4.5 Grafik Pengujian-4 ... 66 Gambar 4.6 Grafik Rata-rata MSE Semua Pengujian... 68
xv
DAFTAR LAMPIRAN
Halaman Listing Program ...
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Penyisipan data kedalam media digital cenderung merubah ukuran besar file media cover, ini disebabkan karena piksel yang disisipi memiliki ukuran yang berbeda dengan nilai penyisip yaitu dengan nilai yang lebih besar atau lebih kecil, misalnya nilai piksel 10 disisipkan dengan data yang berukuran lebih besar atau lebih kecil dari nilai 10.
Sehingga nilai pikselnya semakin jauh dari nilai 10, hal ini menyebabkan nilai Mean Squared Error (MSE) media penampung (cover) menjadi bertambah besar.
Algoritma Least Significant Bit (LSB) adalah algoritma klasik serta sangat populer dipakai untuk melakukan penyisipan data ke dalam media cover dimana prinsip kerja dari algoritma ini adalah mensubstitusi bit terakhir setiap byte data dengan bit-bit penyisip. Pada algoritma ini untuk satu bit data penyisip memerlukan satu byte data media cover, jadi setiap satu karakter teks penyisip memerlukan delapan byte data media cover karena satu byte sama delapan bit (Seyyedi, 2013). Kelemahan algoritma ini adalah data teks yang disisipkan dengan algoritma ini mudah diketahui keberadaannya karena bit-bit penyisip berada pada bit LSB setiap byte data dari media cover (Utami, 2009).
Algoritma Modified Least Significant Bit (MLSB) merupakan perubahan dari algoritma Least Significant Bit yang dipakai dalam menyisipkan data ke dalam media digital. Prinsip kerja algoritma ini adalah dengan memodifikasi bit-bit data tiap 1 byte yang memiliki nilai 8 bit kode ASCII menjadi 5 bit. Langkah awal adalah mengkonversi terlebih dahulu bit-bit penyisip dengan nilai ASCII. Kemudian dikombinasikan dengan bilangan ASCII Control Symbols selanjutnya dilakukan pengurangan dengan nilai bit yang terendah. Sebelum disisipkan ke media cover, maka bit-bit penyisip dikonversi ke dalam bilangan biner untuk mendapatkan 5 bit setiap byte penyisip.
2
Berdasarkan penelitian terdahulu Barus (2015) dimana dilakukan perbandingan penyisipan teks ke file suara (audio) menggunakan algoritma MLSB yang memiliki kualitas audio yang lebih baik dilihat berdasarkan nilai Signal to Noise Ratio (SNR) yang lebih tinggi dibandingkan dengan algoritma LSB.
Menurut penelitian Wulandari (2017), dimana disebutkan penyisipan dengan algoritma MLSB pada suatu citra asli tidak menunjukkan perbedaan yang signifikan dengan citra stego nya karena nilai Means Square Error (MSE) yang tergolong rendah dimana juga membuktikan bahwa hasil citra stego tergolong sebagai citra yang baik.
Menurut Zaher (2011) pada penelitian mengambil kesimpulan bahwa algoritma MLSB dapat menyisipkan jumlah data yang lebih besar daripada algoritma LSB karena proses konversi menjadi 5 bit per karakter.
Pada penelitian Jatmoko et al (2018) dimana pada penelitian ini dilakukan pengujian kinerja metode LSB dan MSB pada penyisipan teks ke dalam file citra.
Kinerja yang diuji adalah kualitas stego image serta ketahanan terhadap serangan.
Parameter kinerja yang dipakai adalah Mean Square Error (MSE), Peak Signal to Noise Ratio (PSNR) serta Coefficient Correlation (CC). Hasil penelitian diperoleh bahwa metode LSB memberikan hasil kualitas citra stego yang baik dan dari segi ketahanan dari serangan metode MSB unggul pada jenis serangan salt and pepper. Nilai MSE rata- rata yang diperoleh adalah 0.25 dan PSNR adalah sebesar 54.12. Hasil akhir semua stego image mengalami penurunan kualitas sehingga perlu adanya evaluasi secara obyektif yakni menghitung nilai Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR).
Pada penelitian Ciptayani et al (2015) dimana dilakukan kompresi citra fraktal yang merupakan salah satu teknik kompresi yang mampu menghasilkan rasio kompresi yang tinggi dengan kualitas citra hasil kompresi yang baik. Namun memiliki kelemahan lamanya waktu kompresi karena pencocokan antara blok jelajah dan blok ranah yang dilakukan secara Brute Force. Karena itu dilakukan pendekatan dengan algoritma genetika, di mana algoritma peran algoritma genetika disini adalah dalam mencocokkan blok jelajah dan blok ranah. Pada uji coba dilaksanakan dengan menggunakan tiga metode crossover dan tiga metode mutasi, ukuran blok jelajah 4, probabilitas mutasi 0.1, probabilitas crossover 0.5, 0.6, 0.7, 0.8, 0.9 dan 1.0 dengan maksimal generasi adalah 500. Hasil percobaan bahwa citra hasil kompresi terbaik menghasilkan rasio 75.01% dengan waktu kompresi 10.7 detik dan MSE sebesar 0.158839.
Pada algoritma genetika pilihan untuk menentukan nilai parameter dengan menduplikasi cara reproduksi genetika, pembuatan kromosom baru, proses perpindahan gen, serta seleksi alami seperti yang terjadi pada organisme hidup. Algoritma Genetika membuat pencarian pada sebuah populasi dari banyak individu yang merupakan solusi permasalahan bukan hanya dari satu individu saja. Fungsi algoritma Genetika pada penelitian ini adalah untuk memilih piksel-piksel citra yang akan disisipi oleh data, dimana piksel yang terpilih bernilai mendekati nilai data penyisip. Pada penelitian (Sivanandam & Deepa, 2008) algoritma genetika juga memiliki kekurangan, yaitu permasalahan dalam melakukan identifikasi fungsi fitness, mendefinisikan suatu permasalahan, terjadinya konvergensi yang prematur, banyaknya parameter yang akan digunakan seperti jumlah populasi (population size), tingkat mutasi (mutation rate), tingkat persilangan (crossover rate), metode seleksi, dan yang terakhir tidak dapat digunakan untuk permasalahan local optima. Oleh karena itu dalam hal ini bertujuan agar perbedaan nilai piksel piksel-piksel citra asli hampir sama dengan nilai data penyisip yang akan memberikan nilai MSE yang relatif kecil.
Dalam penelitian ini akan dilakukan penyisipan data teks kedalam file citra digital menggunakan algoritma MLSB pada posisi piksel tertentu untuk mendapatkan nilai piksel yang terbaik, dimana piksel-piksel citra yang akan disisipi dipilih dengan algoritma genetika. Berdasarkan latar belakang masalah diatas maka penulis memberi judul penelitian ini dengan Optimasi Penyisipan Citra Dengan Algoritma Genetika dan Modified Least Significant Bit
1.2 Rumusan Masalah
Algoritma genetika merupakan salah satu metode penyelesaian optimasi yang dikenal mampu menghasilkan nilai optimum. Salah satu yang penting dalam algoritma genetika adalah proses seleksi karena sangat berpengaruh untuk pencapaian hasil optimal. Selain kelebihan, algoritma genetika juga memiliki kekurangan (Sivanandam & Deepa, 2008) yaitu permasalahan dalam melakukan identifikasi fungsi fitness, mendefinisikan suatu permasalahan, terjadinya konvergensi yang prematur, banyaknya parameter yang akan digunakan seperti jumlah populasi (population size), tingkat mutasi (mutation rate), tingkat persilangan (crossover rate), metode seleksi, dan yang terakhir tidak dapat digunakan untuk permasalahan local optima. Namun demikian, jika di optimasi dengan Algoritma MLSB, membuat Algoritma Genetika menjadi terarah proses heuristiknya.
4
Algoritma MLSB berperan dalam proses penginisialisasian kromosom dan proses repair dalam mencari nilai MSE terbaik nantinya.
1.3 Batasan Masalah
Dalam penelitian ini penulis membuat batasan masalah yaitu:
1. File citra yang disisipi (cover image) adalah berformat jpg.
2. Data penyisip pesan berformat .txt.
3. Parameter genetika nilai probablitas mutasi (Pm) yang digunakan adalah 0.1, probabilitas crossover (Pc) sebesar 0.2; 0.4; 0.6; dan 0.8 dengan serta banyak generasi 100, 200, 300 dan 400.
4. Aturan pada pemilihan piksel pada citra sebagai piksel yang akan ditetapkan nilainya dengan algoritma genetika dirancang oleh penulis sesuai dengan penelitian Patil & Karhe (2013).
5. Parameter penyisipan yang digunakan untuk penentuan noise adalah Mean Squared Error (MSE) dan parameter ekstraksi adalah Bit Recovery Rate (BRR)
1.4 Tujuan Penelitian
Tujuan penelitian adalah untuk mendapatkan nilai MSE yang terbaik hasil penyisipan data pada citra cover atau penampung.
1.5 Manfaat Penelitian Manfaat penelitian ini adalah:
1. Diperoleh informasi apakah algoritma genetika dapat digunakan untuk melakukan pemilihan nilai piksel yang sesuai pada citra sebagai tempat penyisipan data.
2. Diperolehnya informasi apakah penyisipan data pada posisi yang sesuai dengan algoritma genetika dan penyisipan dengan algoritma MLSB akan menghasilkan nilai MSE terbaik pada citra stego.
3. Hipotesa pada penelitian ini adalah hasil akhir yang diharapkan pada penelitian ini adalah file stego image hasil penyisipan akan memiliki nilai MSE yang relatif kecil, karena nilai piksel yang disisipi sudah ditetapkan sebelumnya.
4. Dampak negatif yang mungkin akan diperoleh adalah running time pada proses ekstraksi akan lebih lama, karena untuk melakukan pencarian data penyisip
diperlukan informasi pembanding berupa control symbol yang menandakan jenis apa data penyisipnya, selain itu juga karena data tersisip tidak merata pada semua piksel citra, tetapi tersebar kesemua piksel pada citra.
BAB 2
LANDASAN TEORI
2.1 Pengertian Citra
Fakta sebuah citra analog adalah merupakan citra yang memiliki sifat continue seperti halnya tampilan sceen di monitor televisi analog, hasil foto X-Ray, foto yang dicetak pada kertas, lukisan pada kertas canvas, tampilan alamiah pemandangan, hasil foto CT scan, citra-citra yang terekam pada casset tape dan lain-lain sebagainya. Citra ini secara langsung tidak dapat diproses pada komputer digital. Pada citra jenis ini harus terlebih dahulu dikonversi dari mode analog ke digital dengan alat yang disebut digitizer. Pada umumnya citra analog diproduksi oleh peralatan atau mesin analog, kamera analog, video analog, hasil citra dari CT scan, hasil sensor ultrasound USG dan lainnya (Sutoyo, 2010).
2.1.1 Citra Digital
Proses sampling merupakan menetapkan nilai intensitas warna pada pixel di kordinat tertentu sebuah citra dimana umumnya dihitung warna rata-rata dari citra analog dan dibulatkan. Sumber dari citra digital adalah melalui proses sampling dari citra diskrit dimana pada citra analog terdiri dari i rows serta j column sehingga menjadi citra diskrit dan pertemuan antara rows serta column pada kordinat tertentu yang disebut sebagai pixel. Sebagai contoh adalah point diskrit pada rows i dan column j adalah disebut dengan Piksel[i,j].
Citra digital adalah merupakan suatu fungsi f(r,c) dengan dimensi r row dan c column dengan r dan c merupakan kordinat spasial serta amplitudo f di titik kordinat f(r,c) yang disebut nilai intensitas warna pada titik tersebut di citra digital. Jika nilai intensitas pada kordinat r, c dan nilai amplitudo f secara keseluruhan berhingga bernilai diskrit, maka citra tersebut adalah citra digital (Sutoyo, 2010). Adapun titik kordinad spasial dari sebuah gambaran digital dari citra seperti yang dapat dilihat seperti pada Gambar 2.1.
Gambar 2.1 Sebuah Citra Digital dengan Kordinatnya
Warna digital adalah merupakan penggabungan dari 3 warna dasar yaitu merah, hijau dan biru yang merupakan sebuah inovasi teknik dasar citra digital untuk mendapatkan warna-warna pada citra digital (Sutoyo, 2010). Warna-warna RGB merupakan suatu model pewarnaan kalau digabungkan akan menghasilkan jenis warna yang banyak disebabkan tiap warna dasar bisa diberikan selang nilai warna. Pada layar monitor, rentang warna terkecil adalah 0 serta yang paling tinggi adalah 255 dimana pilihan skala warna ini karena setiap satu byte data memiliki 8 bit bilangan binernya dimana nilai ini juga diadopsi pada komputer digital dan dengan metode ini, maka diperoleh warna kombinasi dengan jumlah 256 * 256 * 256 adalah 1.677.726 jumlah warna, dimana satu warna dapat dianggap seperti satu vektor pada ruang tri dimensi yang digunakan dalam operasi matematika, yang mana koordinatnya direpresentasikan kedalam tiga komponen yaitu x, y dan z. Sebagai contoh sebuah vektor dapat ditulis seperti w = (r,g,b) dimana nilai warna piksel tersebut adalah warna komponen Red, Green dan Blue. Maka untuk satu kelompok warna bisa juga ditulis dengan nilai RGB (30-75-255) dimana sebuah warna putih nilai komponen RGB (255-255-255) serta warna hitam nilai RGB (0-0-0) (Gonzalez, 2003).
0 0
Kordinat asal
1 2 3
4 5
1 2 3 4 5 N-1
M-1
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
*
*
*
*
* 0 *
Piksel
7
2.1.2 Warna Digital
Adapun warna-warna digital adalah gabungan dari warna-warna RGB dimana setiap warna dapat dinyatakan sebagai tiga pasang nilai intensitas warna RGB pada piksel tertentu dengan setiap nilai intensitas pikselnya berada pada kisaran 0 sampai 255, yaitu:
Merah-Red : RGB (255-0-0) ……….………..……….…...… (2.1) Hijau-Green : RGB (0-255-0) .……….….…...… (2.2) Biru-Blue : RGB (0-0-255) …..……….…... (2.3) Pada tiga warna diatas di-convers dengan nilai bilangan decimal:
Merah-Red : 255x2560 + 0x2561 + 0x2562= 255+ 0+0=255 ……...…..…… (2.4) Hijau-Green : 0x2560 + 255x2561 + 0x2562 = 0 + 65,280 + 0 =65.280 .…….… (2.5) Biru-Blue : 0x2560 + 0x2561 + 255x2562 = 0+0+16.711.680= 16.711.680 … (2.6) dimana rumus dasar untuk menghitung nilai RGB sebagai berikut ini:
Merah-Red = Color And RGB(255 0 0) ...…...………..……….….. (2.7) Hijau-Green = (Color And RGB(0 255 0)) / 256 .…...…….…….…...… (2.8) Biru-Blue = ((Color And RGB(0 0 255)) / 256) / 256 ….……...….……..….. (2.9) Dari persamaan diatas, maka rumus untuk nilai warna RGB adalah:
Red = c and 255 ………...………... (2.10) Green = (c and 65.280)/256 …………...…...……….……..…..…... (2.11) Blue = ((c and 16.711.680)/256)/256 …………...……...………... (2.12)
2.2 Algoritma Genetika
Teknik algoritma genetika ini merupakan sebuah teknik optimisasi dengan cara penelusuran yang berprinsip pada ilmu genetika biologi dan seleksi alam dimana algoritma ini berlatar belakang pada proses biologis teori evolusi Darwin. Dalam algoritma genetika, seleksi, mutasi dan crossover merupakan hal yang utama dimana genetika ini tidak sama seperti teknik pencarian yang biasa atau umum. Proses pada algoritma ini dimulai dengan sekumpulan inisialisasi dari penyelesaian masalah acak yang disebut populasi. Populasi terdiri dari kumpulan kromosom yang disebut gen dimana nilai gen dapat berupa bilangan atau angka, bialangan biner, simbol maupun karakter yang tergantung pada masalah yang akan dihadapi.
Kromosom-kromosom pada populasi akan melakukan evolution jurnay secara berkelanjutan atau dikatakan sebuah generasi yang mana tiap generasi memiliki tingkat
keberhasilan nilai solusi dari kromosom-kromosom tersebut dievaluasi untuk tiap problem yang dihadapi dengan menggunakan patokan yang berupa sebut saja nilai fitness.
Pada umumnya siklus proses dari algoritma genetika dimulai dari sejumlah ‘n’
kromosom pada populasi acak genetika dan dilakukan evaluasi fitness untuk kromosom yang ada pada sebuah populasi. Kemudian dilakukan dengan menyeleksi kromosom tersebut dengan cara memilih dua kromosom untuk induk dari masing-masing populasi yang memiliki nilai fitness yang paling baik atau besar. Selanjutnya dilakukan persilangan atau dua kromosom induk diatas untuk menghasilkan keturunan. Apabila tidak terjadi crossover, keturunan yang dihasilkan merupakan hasil penggandaan parent. Setelah crossover, maka proses selanjutnya adalah mutasi dengan probabilitas mutasi yang telah ditentukan. Selanjutnya, offspring baru ditempatkan dalam populasi yang baru. Offspring yang baru digunakan untuk perulangan proses berikutnya. Apabila kondisi akhir sesuai dengan yang diharapkan, maka proses akan dihentikan, dan akan dikembalikan kepada solusi terbaik dalam populasi tersebut. Siklus algoritma genetika dapat dilihat seperti pada Gambar 2.2.
Gambar 2.2 Siklus Pada Algoritma Genetika (Sivanandam & Deepa, 2008)
2.2.1 Teknik pengkodean (Encoding Techniques)
Pada kromosom terdapat gen-gen dan agar dapat diproses pada algoritma genetika, maka diperlukan koding atas gen tersebut dalam model kromosom yang berisi gen-gen yang mengandung informasi berupa kode-kode yang tersimpan pada kromosom.
Sebuah gen dapat berupa bentuk bit, bilangan nyata (0, 1, 2 ...), sebuah string, daftar rule-rule, kombinasi kode, elemen permutasi dan program atau bentuk lain yang bisa dipakai pada algoritma genetika. Beberapa jenis teknik pengkodean menurut
Initial Population
Evaluation
Fitnes Individu Selection
Crossover
Mutation
New Population
9
Sivanandam & Deepa (2008) diantaranya : a. Pengkodean biner (binary encoding)
Pada pengkodean ini dimana pada masing-masing kromosom melakukan koding berupa sebuah string atau biner dimana setiap bit dalam string merepresentasikan beberapa karakteristik dari penyelesaian dimana setiap string bit merupakan salah satu solusi dimana hasil ini tidak merupakan sebuah solusi yang paling baik.
Keseluruhan string yang terbentuk dapat mewakili sebuah angka.
Cromosome A 0 0 1 1 0 0 1 0 1 0 1 1
Cromosome B 0 1 0 1 1 1 0 0 1 0 0 1
Gambar 2.3 Koding Biner (Sivanandam & Deepa, 2008) b. Pengkodingan oktal (octal encoding)
Pada pengkodean oktal ini memakai tipe string yang memiliki nilai bilangan oktal (0-7).
Kromosom 1 0 3 4 6 7 2 1 6
Kromosom 2 1 5 7 2 3 3 1 4
Gambar 2.4 Pengkodean Oktal (Sivanandam & Deepa, 2008) c. Pengkodean heksadesimal (hexadesimal encoding)
Pada pengkodingan ini memakai jenis string yang mengandung bilangan heksadesimal (0-9 dan A-F).
Cromosome X 7 F E A
Cromosome Y 3 9 F 2
Gambar 2.5 Pengkodingan Heksadesimal (Sivanandam & Deepa, 2008) d. Pengkodingan Permutasi (permutation encoding)
Kromosom adalah merupakan serangkaian huruf atau angka yang mewakili bilangan secara berurutan. Terkadang koreksi harus dilakukan setelah operasi genetika selesai. Dalam pengkodean permutasi, pada kromosom yang terdiri dari data tipe string integer ataupun nilai yang sebenarnya adalah mewakili bilangan secara berurutan.
Cromosome A 4 4 7 0 0 3 7 7 8
Cromosome B 3 9 9 4 2 2 0 2 3
Gambar 2.6 Pengkodingan Permutasi (Sivanandam & Deepa, 2008) e. Pengkodingan Nilai (value encoding)
Pada pengkodean ini dimana kromosom adalah representasi dari beberapa nilai yang dapat berupa sesuatu yang ada hubungannya dengan masalah, bentuk angka, bilangan nyata (0, 1, 2, ...) ataupun karakter ke beberapa objek yang unik.
Pengkodean jenis ini menghasilkan yang terbaik pada masalah-masalah yang tertentu juga.
Kromosom 1 2.11254 3.0214 1.8874 2.9874 1.5278 Kromosom 2 FFGHAFGBEIFLKIIIDIEDFFLDFFRRT Kromosom 3 (Left) (back) (right) (back) (right)
Gambar 2.7 Pengkodean Nilai (Sivanandam & Deepa, 2008) f. Pengkodean Pohon (tree encoding)
Pengkodean jenis ini sebagian besar dipakai bagi mengembangkan ekspresi program dalam pemrograman genetika. Pada pengkodean ini dimana pada setiap kromosom direpresentasikan sebagai sebuah pohon untuk bebagai objek antara lain sebagai sebuah fungsi ataupun syntax bahasa program. Hasil dari pengkodean ini pada penyusunan program untuk masalah mencari fungsi dengan inputan berupa numerik. Pengkodean Pohon dapat dilihat seperti pada Gambar 2.8.
(+x (/5 y))
Gambar 2.8 Kromosom Pada Pengkodean Pohon +
x /
5 y
11
2.2.2 Pembangkitkan Populasi Awal Dan Kromosom
Sebuah populasi merupakan kumpulan solusi dari masalah sebab setiap kromosom yang terdapat pada populasi merepresentasikan sebuah solusi. Pembangkitkan populasi awal merupakan proses pembuatan individu-individu yang merupakan kromosom dengan cara acak ataupun dengan cara tertentu.
Ukuran populasi awal memberikan dampak yang besar terhadap kinerja algoritma dimana hal ini sangat tergantung pada masalah dan jenis operator genetika yang hendak digunakan. Ukuran populasi memiliki efek langsung terhadap ukuran memori, kecepatan konvergensi dan kecepatan pencarian algoritma. Apabila ukuran populasi teralu besar, algoritma genetika cenderung membutuhkan waktu lebih lama untuk menemukan sebuah solusi, sebaliknya bila ukuran populasi terlalu kecil, maka algoritma genetika akan sulit menemukan solusi yang optimal.
2.2.3 Evaluasi fitness
Zhang et al. (2010) mengatakan fungsi fitness didisain untuk merepresentasikan kekuatan adaptasi indvidu terhadap lingkungan dan pada umumnya algoritma genetika mencari solusi optimal dengan memaksimalkan atau meminimalisasi fungsi fitness dimana suatu individu dievaluasi dengan dasar fungsi fitness-nya juga sebagai ukuran kinerja algoritma genetika yang dipakai. Pada proses seleksi dan evolusi alam, setiap individu dengan nilai fitness yang tertinggi saja yang dapat bertahan sedangkan yang rendah akan mati ataupun punah.
2.2.4 Seleksi
Pada tahapan seleksi, kromosom individu dipilih dan dirangking menggunakan nilai fungsi fitness dengan tujuan untuk mendefiniskan kemampuan/kualitas individu tersebut.
Beberapa jenis metode seleksi yaitu :
a. Seleksi roda roulette (roulete wheel selection)
Dasar seleksi roulette adalah pencarian liner dengan memakai sebuah roda yang terdiri dari beberapa slot pada roda dimana perbandingan ukurannya sama dengan nilai fitness pada individu-individu. Langkah-langkah pada seleksi roulette wheel adalah sebagai berikut:
1. Hitung angka numerik dari fitness dari setiap kromosom pada semua populasi.
2. Hitung angka numerik dari fitness pada masing-masing kromosom dan probabilitas seleksi mereka dengan membagi fitness kromosom individu melalui penjumlahan nilai fitness dari keseluruhan populasi.
3. Bagi roulette wheel menjadi sektor – sektor menurut probabilitas yang telah dihitung dalam tahap kedua.
4. Putar roda sebanyak ‘N’ kali. Ketika roulette berhenti, sektor yang terpilih merupakan individu yang terpilih.
Berikut probabilitas seleksi roulette wheel pada persamaan 2.13.
𝑝𝑠(𝑎
𝑖) =
𝑓(𝑎𝑖)∑𝑛𝑖=1𝑓(𝑎𝑖) ...(2.13) dimana :
j = 1, 2, ..., n n = ukuran populasi
𝑓(𝑎𝑖)= nilai fitness dari individu 𝑎𝑖
b. Seleksi peringkat linier (linear ranking selection)
Seleksi peringkat dalam algoritma genetika diperkenalkan oleh Baker untuk mengeliminasi kekurangan dari pemilihan proporsinal. Pada metode seleksi peringkat linier, individu dipilih berdasarkan nilai fitness dan kemudian peringkat tersebut ditentukan terhadap individu. Individu terbaik mendapat peringkat ‘N’ dan yang terburuk mendapat peringkat ‘1’. Probabilitas seleksi kemudian ditetapkan secara linier terhadap individu berdasarkan peringkat mereka.
𝑃𝑖 = 1
𝑁(𝑛−+ (𝑛+− 𝑛−) 𝑖−1
𝑁−1) ...(2.14) dimana :
𝑖 ∈ {1, … . . , 𝑁}
𝑃𝑖 = probabilitas seleksi individu
𝑛−
𝑁 = probabilitas seleksi individu terburuk
𝑛+
𝑁 = probabilitas seleksi individu terbaik
c. Seleksi peringkat eksponensial (exponential ranking selection)
Baik seleksi exponential ranking maupun seleksi linear ranking adalah sama.
Perbedaan keduanya terletak pada perhitungan probabilitas seleksi. Pada algoritma exponential ranking individu yang terbaik diberikan peringkat ‘N’ dan yang terburuk
13
diberikan ‘1’. Teknik ini berbeda dari linear ranking selection dimana probabilitas seleksi exponential ranking dipengaruh secara eksponensial.
𝑃𝑖 =∑ 𝑐𝑁−𝑖
𝑐𝑁−𝑗 𝑁𝑗=1
...(2.15) dimana :
0 < 𝑐 < 1
∑𝑁𝑗=1𝑐𝑁−𝑗 menormalisasikan probabilitas untuk memastikan ∑𝑁𝑖=1𝑃𝑖 = 1
d. Seleksi Turnamen
Pada seleksi Turnamen dimana individu-individu dipilih secara random dari semua populasi dimana mereka saling berkompetisi satu dengan yang lainnya dimana pada seleksi ini setiap individu yang angka numerik fitness-nya tertinggi akan menang dan berhak untuk untuk proses algoritma genetika berikutnya.
e. Seleksi Acak
Pada seleksi jenis ini dimana individu akan memilih cecara acak sebuah parent dari populasi. Dalam hal gangguan kode genetika, secara rata – rata seleksi acak lebih sedikit mengganggu dibandingkan seleksi roda roulette.
2.2.5 Crossover
Crossover merupakan proses pengambilan solusi kedua induk dan menghasilkan keturunan (Sivanandam & Deepa, 2008). Crossover berfungsi sebagai penghasil kromosom offspring dari kombinasi gen-gen dari dua kromosom induk. Adapun probabilitas crossover ditetapkan agar dapat mengendalikan jumlah terjadinya crossover.
Beberapa jenis crossover menurut Umbarkar & Sheth (2015) : a. One point crossover
Jenis ini memakai fragmentasi satu point dari induk dan kemudian mengkombinasikan induk tersebut pada titik yang telah ditentukan untuk menghasilkan offspring. Pertama, parent yang akan disilangkan dipilih terlebih dahulu, kemudian titik crossover 𝑝𝑖 (𝑖 = 0 𝑠𝑎𝑚𝑝𝑎𝑖 𝑛 − 1) ditentukan secara acak.
Offspring dihasilkan dengan menggabungkan kedua parent pada titik crossover yang telah ditentukan sebelumnya.
Induk 1 1 0 1 0 | 1 0 0 1 0
Induk 2 1 0 1 1 | 1 0 1 1 0
Offspring 1 1 0 1 0 | 1 0 1 1 0
Offspring 2 1 0 1 1 | 1 0 0 1 0
b. K-Point crossover
Pada prinsipnya crossover ini sama seperti one point crossover yaitu menggunakan titik crossover acak untuk menggabungkan kedua parent. Untuk memberikan kombinasi yang baik dari parents, maka dipilih lebih dari satu titik crossover untuk menghasilkan offpring. Parent yang akan disilangkan dipilih terlebih dahulu, kemudian titik crossover 𝑃1𝑖 𝑡𝑜 𝑃𝑘−1𝑖(𝑖 = 0 𝑠𝑎𝑚𝑝𝑎𝑖 𝑛 − 1) dipilih secara acak, selanjutnya kedua parent digabungkan pada titik – titik crossover untuk menghasilkan offspring.
Induk 1 Parent 1 1 0 | 1 0 | 1 0 0 | 1 0
Induk 2 Parent 2 1 1 | 0 0 | 1 0 1 | 1 0
Offspring 1 Offspring 1 1 0 | 0 0 | 1 0 0 | 1 0
Offspring 2 Offspring 2 1 1 | 1 0 | 1 0 1 | 1 0
c. Shuffle crossover
Shuffle crossover menggunakan teknik yang sama dengan one point crossover dimana dengan cara yang sama akan mengacak kedua gen parents, kemudian menerapkan one point crossover secara acak yaitu pemilihan titik crossover dan mengkombinasikan kedua parents untuk memperoleh dua offspring dan selanjutnya setiap gen pada offspring tidak diacak lagi karena telah diacak.
Tentukan titik acak
Induk 1 1 1 1 0 1 0 0 1 0
Induk 2 1 0 0 0 1 0 1 1 0
Acak gen seperti mengacak titik
Offspring 1 0 1 0 1 1 0 1 1 0
Offspring 2 0 0 1 1 1 0 0 1 0
15
Tentukan titik one point crossover
Induk 1 0 1 0 1 | 1 0 1 1 0
Induk 2 0 0 1 1 | 1 0 0 1 0
Terapkan one point crossover pada gen parents
Induk 1 0 1 0 1 | 1 0 0 1 0
Induk 2 0 0 1 1 | 1 0 1 1 0
Tentukan titik non-acak sama seperti titik pengacakan
Off Spring-1 1 1 1 0 0 1 1 0 1
Off Spring-2 0 1 0 0 0 1 0 0 1
Kembalikan gen pada off spring
Off Spring-1 0 0 1 1 0 1 1 0 0
Off Spring-2 0 1 0 1 0 1 0 1 1
d. Uniform crossover
Uniform crossover tidak membagi kromosom untuk rekombinasi. Tiap gen yang terdapat pada offspring dihasilkan dengan menyalin gen tersebut dari parent yang terpilih berdasarkan bit yang sesuai ke dalam mask persilangan binary yang panjangnya sama dengan panjang parent kromosom. Mask persilangan dibangkitkan secara bervariasi untuk setiap pasang parent kromosom. Jumlah titik crossover pada awalnya tidak ditentukan. Jadi, offspring merupakan gabungan gen dari kedua parent.
Parent 1 1 2 3 4 5 6 7 8 9
Parent 2 3 4 5 6 7 8 9 10 11
Mask 1 0 1 0 1 1 1 1 0
Inverse Mask 0 1 0 1 0 0 1 0 1
Off Spring A 1 4 3 6 5 6 9 10 9
Off Spring B 3 2 5 4 7 8 7 8 11
e. Average crossover
Average crossover merupakan teknik crossover berbasis nilai. Crossover ini hanya menghasilkan sebuah offspring dari dua parents yang disilangkan. Offspring yang dihasilkan merupakan nilai rata – rata dari kedua parents.
Parent A 3 4 6 4 5 4 6 4 2
Parent B 4 4 7 6 7 3 7 2 2
Off Spring AB 3 4 5 3 2 6 8 9 3
f. Discrete crossover
Jenis ini menggunakan bilangan ril acak untuk menghasilkan satu offspring dari kedua parents. Bilangan riel acak tersebut akan menentukan dari gen parents mana yang akan diturunkan ke offspring. Cara kerja crossover ini sama dengan uniform crossover yaitu memilih gen dari kedua parents secara seragam, tetapi hanya menghasilkan satu offspring.
Parent A 0 0 0 1 0 1 1 0 0
Parent B 0 1 1 1 0 1 0 0 1
Off Spring AB 0 0 1 1 0 1 0 0 1
2.2.6 Mutasi
Mutasi bertujuan untuk menambahkan keberagaman ciri genetika populasi yaitu dengan cara memasukkan materi genetika baru ke dalam individu yang ada. Mutasi juga berperanan penting untuk mengeliminasi gen-gen yang tidak muncul dari populasi kromosom diakibatkan proses seleksi bisa memuncul kembali gen yang belum muncul pada populasi awal.
Terdapat beberapa jenis mutasi, diantaranya:
a. Bit inversion
Melakukan proses invers pada bit yang terseleksi, misal bit 0 berubah jadi 1 dan sebaliknya bit 1 berubah jadi 0.
Contoh :
11001001 => 10001001 b. Permutation Encoding
Mutasi ini dilakukan dengan cara mengambil dua value dari gen-gen serta menukarnya.
Contoh : 2 3 4 5 8 9 7 => 1 8 3 4 5 6 2 9 7
17
2.2.7 Parameter Algoritma Genetika
Adapun parameter algoritma ini adalah berupa jumlah populasi dalam satu generasi, nilai kemungkinan kawin silang (Pc), nilai kemungkinan bermutasi (Pm) dimana nilainya harus diatur sedemikian rupa. Pada ukuran populasi yang dipakai ini sangat bergantung kepada masalah yang hendak diselesaikan. Ukuran populasi yang lebih besar akan diperlukan untuk masalah yang lebih kompleks guna mencegah terjadinya konvergensi prematur, dalam hal ini dihasilkannya optimum lokal.
Probabilitas crossover (Pc) adalah parameter dasar pada crossover yang menggambarkan seberapa sering crossover akan dilakukan. Didalam populasi, sebanyak Pc*N individu yang mengalami pindah silang pada tiap generasi. Struktur individu baru akan semakin cepat dihasilkan, apabila nilai Pc yang diberikan akan makin besar dimana nilai Pc yang terlalu besar berakibat cepat menghilangkan kromosom yang merupakan kandidat solusi terbaik. Sebaliknya angka eksplorasi akan menurun dan terjadi stagnasi apabila nilai Pc yang diberikan terlalu rendah.
Probabilitas mutasi (Pm) merupakan parameter mutasi dimana populasi baru akan mengalami regenerasi secara random setelah proses kawin silang (crossover).
Keturunan segera dihasilkan setelah crossover tanpa ada perubahan apapun apabila tidak ada mutasi dan jika ada satu atau lebih bagian dari kromosom akan berubah apabila mutasi dilakukan. Seluruh kromosom akan berubah susunan gennya jika nilai kemungkinan mutasinya sebesar 100% dan sebaliknya apabila probabilitas mutasi sebesar 0% maka tidak ada perubahan pada kromosom.
2.3 Steganografi
Steganografi adalah ilmu dalam menyembunyikan atau menyamarkan sesuatu data penting kedalam sebuah media cover dimana orang tidak akan menyadari adanya data pada dalam media cover tersebut. Sejarah metode steganografi berasal dari merupakan bahasa Yunani yaitu dari kata stegganos yang berarti disamarkan atau disembunyikan dan graphein atau graptos memiliki arti tulisan (Dilawar, 2014).
Metode steganografi sudah ada sejak 2500 tahun yang lalu yang digunakan pada bidang spionase, political, military, diplomat dan kegunaan personal sebagai tools.
Tehnik stegganografi yang umum adalah biasanya menyandikan komunikasi dengan cara menyembunyikan data ataupun menyamarkan informasi yang penting dan rahasia.
Maka dapat dilihat bahwa prinsip yang mendasar pada metode steganografi lebih difokuskan pada merahasikan proses komunikasi dan bukan pada datanya (Arya, 2017).
Dengan kemajuan teknologi maka proses komputasi juga bertambah sesuai keperluan dan kemauan dengan frekuensi yang banyak. Teknik steganografi juga masuk kedalam dunia digital. Terdapat 2 proses tang utama pada metode steganografi yaitu penyisipan (embedding) serta ekstraksi data dimana data dapat berupa plainteks, chiperteks, citra maupun suara yang dapat disisipkan pada bit-stream. Proses embedding adalah menempelkan data pada file yang belum termodifikasi yang disebut cover media lalu cover media dan data yang disisipkan tersebut disebut media stego (stego object). Proses ekstraksi atau penguraian adalah pengambilan kembali informasi yang sudah ditempelkan pada media stego dimana dapat juga digunakan suatu sandi khusus secara tersembunyi pada saat penyisipan serta digunakan juga pada saat penguraian data. Adapun proses steganografi secara lengkapnya dapat dilihat seperti pada Gambar 2.9.
Gambar 2.9 Proses Steganografi (Jiansheng et al. 2017)
Pihak yang berhubungan dengan proses-proses steganografi antara lain embeddor, extractor, dan stegoanalyst (Jiansheng et al. 2017) dimana embeddor adalah pihak yang mengerjakan penyisipan (embedding) dengan memakai suatu aplikasi dengan metode steganografi, dimana pihak extractor adalah pihak yang melakukan penguraian atau pengambilan kembali data yang tersisip pada media stego dengan memakai sebuah aplikasi steganografi. Berbeda dengan seorang stegoanalyst adalah pihak atau orang yang mau melakukan pengujian ketahanan media stego terhadap serangan dimana
19
steganalisis adalah sebuah ilmu untuk mendeteksi data penyisip yang tersembunyi dalam media stego yang dapat dilihat seperti pada Gambar 2.10.
Gambar 2.10 Sebuah Diagram Taksonomi Steganografi (Jiansheng et al. 2017) 1. Teknik Steganografi
Pada teknik steganografi umumnya menggunakan metode sains untuk menyamarkan data penyisip dan sebagai contoh adalah penyembunyian data pada microchip.
2. Linguistk Steganografi
Pada cara ini dilakukan penyembunyian data dengan cara yang unik dimana cara ini digolongkan menjadi 2 golongan jenis yaitu Semmagrams dan Open Codes.
3. Open Codes
Cara (open codes) yaitu penyembunyian data dengan cara yang tidak lazim akan tetapi tetap tidak mencurigakan dimana dengan cara ini dibagi jadi dua golongan seperti jenis Jarrgon Code dan jenis Convered Ciphers.
4. Convered Ciphers
Cara jenis ini penyembunyian informasi pada penampung seperti citra atau video, sehingga informasi tersebut kemudian dapat diekstrak kembali.
Untuk menilai sebuah media stego hasil algoritma steganografi yang baik adalah sebagai berikut:
1. Tidak Terdeteksi (Imperceptibility)
Penilaian terhadap keberadaan data penyisip pada media stego tidak dapat terdeteksi.
Stegganografi
Tehnik Stegganografi
Linguistik Stegganografi
Semmagrams Oppen Codes
Teks Semmagrams Virrtual
Semmagrams
Converd Ciphers Jarrgon Codes
2. Mutu Stego Media (Fidelity)
Penilaian ini adalah diaman kualitas stego media adalah hampir sama atau tidak jauh beda dengan media cover sebelum disisipi.
3. Pengambilan Kembali (Recovery)
Penilaian ini dimana data yang telah disembunyikan dalam media stego-nya harus dapat diambil kembali, karena pada metode steganografi yang terpenting adalah informasinya dapat diperoleh kembali.
4. Ketahanan dari Serangan (Robustness)
Pada penilaian ini, data yang ditempelkan pada media cover harus tahan terhadap bermacam-macam operasi serangan serta manipulasi atas media stego. Jika pada media stego dilakukan proses manipulasi, maka data yang tersisip hendaknya tidak rusak atau tetap valid jika diurai kembali.
2.4 Algoritma Steganografi Modified Least Significant Bit (MLSB)
Algoritma MLSB ini dipakai dalam meng-encode data penyisip dengan memakai teknik perubahan tingkatan bit-bit penyisip dengan menggunakan tabel Control Symbol (Zaher, 2011). Modifikasi data penyisip pada algoritma ini adalah dimana satu karakter atau satu byte dengan 8 bit ASCII code lalu dirubah menjadi 5 bit dimana setiap karakter atau string atau angka numeric di-encode menjadi 5 bit yang akan ditempel pada dalam media cover dengan teknik Least Significant Bit (LSB). Adapun penyisipan dengan algoritma ini dilakukan sebagai berikut:
1. Ubah data penyisip dengan kode hexadecimal sesuai dengan tabel ASCII dan data penyisip berupa teks adalah “STEGO with 05 bits” dengan jumlah bit dalam bilangan biner adalah 18 x 8 bit = 144 bit. Data diatas dirubah ke bilangan ASCII (HEX) menjadi: 53h, 54h, 45h, 47h, 4fh, 20h, 77h, 69h,74h, 68h, 20h, 30h, 35h, 20h, 62h, 69h,74h,73h. Selanjutnya akan dinormalisasi menggunakan tabel Control Symbol seperti Tabel 2.1.
21
Tabel 2.1 Daftar Control Symbol (Zaher, 2011).
Bilangan Hexa Keterangan 1 B hex Huruf kecil 1 C hex Huruf besar 1 D hex Spasi kosong
1 E hex Angka
1 F hex Akhir dari data
2. Konversikan data penyisip kedalam bilangan ASCII sampai ditemukan tanda spasi 20 hex yaitu 53, 54, 45, 47, 4f.
3. Pada data penyisip tersebut, nilai terendahnya adalah 40 dan semua nilai dikurangi dengan 40 menjadi seperti 53-40= 13, 54-40= 14, 45-40= 05, 47-40 = 07, 4.f-40 = f.
4. Maka terbentuklah normalisasi data penyisip grup satu adalah 1c hex, 13 hex, 14 hex, 05 hex, 07 hex, 0f dimana 1ch adalah Control Symbol sebagai tanda huruf besar (capital).
5. Pada data penyisip grup yang kedua adalah 77 hex, 69 hex,74 hex, 68 hex nilai terendah adalah 60 dan semua data dikurangi dengan 60 menjadi (77-60) 17, (69- 60) 09, (74-60)14, (68-60) 08.
6. Dan selanjutnya data grup ini dikombinasikan dengan grup yang pertama dengan diberi nilai Control Symbol 1d hex sebagai tanda spasi dan 1bh sebagai tanda huruf kecil, sehingga data penyisip menjadi 1d hex, 1b hex, 17 hex, 09 hex, 14 hex, 08 hex.
7. Pada data grup ketiga adalah 30 hex, 35 hex memiliki nilai terendah adalah 30 dan semua nilai data dikurangi 30 menjadi: (30-30) 0 dan (35-30) 05.
8. Selanjutnya semua grup data diatas dikombinasikan dan ditambah dengan Control Symbol 1d hex sebagai tanda spasi, 1e hex sebagai tanda bilangan angka menjadi 1d hex, 1e hex, 00 hex, 05 hex.
9. Data grup keempat adalah 62 hex, 69 hex,74 hex,73 hex memiliki nilai terendah sebesar 60 dan semua data dikurangi dengan 60 menjadi (62-60) 02, (69-60)
09, (74-60) 14, (73-60) 13.
10. Selanjutnya data grup keempat tersebut dikombinasikan dengan data grup satu, dua dan tiga diatas ditambah dengan Control Symbol 1b hex sebagai tanda huruf kecil, menjadi 1d hex, 1b hex, 02 hex, 09 hex, 14 hex, 13 hex dan akhir data (1f hex).
Data biner tersebut diatas, ditempelkan pada media cover seperti pada Tabel 2.2.
Tabel 2.2 Media Cover
5 2 4 9 4 6 4 6 2 8
0 8 0 0 0 0 5 7 4 1
5 6 4 5 4 4 1 5 2 F
3 D 1 D 2 A 0 0 4 D
0 1 7 C 0 1 1 2 4 5
6 8 0 0 0 1 1 1 0 5
File media cover diatas diubah ke bilangan biner lalu seperti pada Tabel 2.3.
Tabel 2.3 Media Cover Biner
11010010 11001001 11000110 11000110 10101000 10001000 10000000 10000000 11010111 11000001 11010110 11000101 11000100 10010101 10101111 10111101 10011101 10101010 10000000 11001101 10000001 11111100 10000001 10010010 11000101 11101000 10000000 10000001 10010001 10000101
Proses penempelan terjadi pada tiap piksel dari biner terakhir menghasilkan stego media seperti pada Tabel 2.4.
Tabel 2.4 Nilai Biner Stego Media Hasil Penyisipan 11010011 11001001 11000111 11000110 10101000 10001001 10000000 10000000 11010111 11000001 11010111 11000100 11000101 10010100 10101110 10111101 10011100 10101011 10000000 11001100 10000001 11111101 10000001 10010011 11000101 11101000 10000000 10000001 10010001 10000101
Hasil penyisipan dari media cover, dapat ditampilkan nilai piksel media cover menjadi seperti pada Tabel 2.5.
23
Tabel 2.5 Stego Media Hasil Penyisipan
5 3 4 9 4 7 4 6 2 8
0 9 0 0 0 0 5 7 4 1
5 7 4 4 4 5 1 4 2 E
3 D 1 C 2 B 0 0 4 C
0 1 7 D 0 1 1 3 4 5
6 8 0 0 0 1 1 1 0 5
Adapun pengambilan atau ektraksi kembali data penyisip dari file stego media adalah dengan menggunakan algoritma MLSB adalah:
1. Input file media stego.
2. Konversi setiap byte media stego ke nilai biner.
3. Ambil satu bit terakhir pada setiap byte data dari media stego lalu dikelompokkan menjadi 5 bit per blok.
4. Ubah nilai setiap blok ke dalam bilangan ASCII (hexadecimal).
5. Selanjutnya blok pertama diperbandingkan ke nilai pada Control Symbol agar diperoleh jenis karakternya:
- Jika nilai ASCII-nya 1Bh maka untuk tiap blok seterusnya yang bukan Control Symbol akan ditambah 60
- Jika nilai ASCII-nya 1Ch maka untuk tiap blok seterusnya yang bukan Control Symbol ditambah 40
- Jika nilai ASCII-nya 1Eh maka untuk tiap blok seterusnya yang bukan Control Symbol ditambah 30
- Jika nilai ASCII-nya 1Dh maka menyatakan spasi
6. Ulangi langkah ke poin ke 3 sampai poin ke 5 sampai ditemukannya Control Symbol yang berarti akhir dari data penyisip dengan karakter 1Fh.
7. Lakukan rekonstruksi tiap-tiap blok data menjadi penyisip (embed)
Sebagai contoh dari perolehan kembali penyisip dari dalam media stego seperti yang terlihat pada Tabel 2.6.
Tabel 2.6 Media Stego
01010011 01001001 01000111 01000110 00101000 00001001 00000000 00000000 01010111 01000001 01010111 01000100 01000101 00010100 00101110 00111101 00011100 00101011 00000000 01001100 00000001 01111101 00000001 00010011 01000101 01101000 00000000 00000001 00010001 00000101
1. Ambil 1 bit paling akhir dari setiap byte media stego dan masukkan dalam kelompok 5 bit satu blok yang ada pada Tabel 2.7.
Tabel 2.7 Blok-blok Data Penyisip
1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1
2. Selanjutnya ubah tiap blok menjadi bilangan ASCII (hexadecimal) seperti:
1c hex, 13 hex, 14 hex, 05 hex, 07 hex, 0f hex
3. Pada data diatas, karakter yang pertama yaitu adalah 1c hex lalu diperbandingkan ke Control Symbol dengan hasil tanda huruf kapital, maka setiap blok seterusnya yang bukan merupakan Control Symbol ditambah 40 menjadi seperti: 53 hex, 54 hex, 45 hex, 47 hex, 4f hex
4. Kumpulkan semua blok data lalu direkonstruksi menjadi karakter penyisip (embed) menjadi : S.T.E.G.O
2.5 Mean Square Error (MSE), Peak Signal to Noise Ratio (PSNR) dan Bit Recovery Rate (BRR)
Nilai MSE adalah merupakan angka atau nilai kuadrat rata-rata dari error yaitu perbedaan antara citra sebelum diproses dengan citra sesudah proses dimana makin kecil nilainya, maka makin kecil error atau perbedaannya. Nilai MSE digunakan untuk mengukur rata-rata error media asli dengan media stego.
MSE = 1
𝑁∑𝑛𝑖=1(𝑆 − 𝑆𝑒)2 ………. (2.16) Dimana MSE = Mean Square Error
N = dimensi citra
S = nilai piksel citra asli
Se = nilai piksel citra hasil pengolahan
Jika diketahui jumlah sampel (N) 10 (S-Se) (S-Se)2
S1 = 50 S1e = 50 S-Se = 0 0
S2 = 40 S2e = 55 S-Se = 15 225
S3 = 30 S3e = 30 S-Se = 0 0
S4 = 0 S4e = 15 S-Se = 15 225
S5 = 80 S5e = 75 S-Se = 5 25
25
S6 = 110 S6e = 100 S-Se = 10 100
S7 = 30 S7e = 30 S-Se = 0 0
S8 = 20 S8e = 20 S-Se = 0 0
S9 = 10 S9e = 20 S-Se = 10 100
S10 = 10 S10e = 10 S-Se = 0 0
∑ (S-Se)2 675 MSE = 1/10 x (675) = 67.5
PSNR = 10 x log10 (𝑁𝑚𝑎𝑥
√𝑀𝑆𝐸) Nmax = 110
PSNR = 10 x log (110
√67.5) PSNR = 10 x log (110
8.21) PSNR = 10 x log(13.39) PSNR = 10 x 1.12 = 12.2
Bit Recovery Ratio berfungsi dalam pengukuran performansi algoritma penyisipan yaitu dengan membandingkan jumlah bit pesan yang ditanamkan pada media cover dengan jumlah bit pesan yang dapat diperoleh kembali (ekstraksi). Rumus Bit Recovery Ratio penyisipan dapat dilihat seperti persamaan (2.17).
Ratio =
[
Jumlah Bit Hasil Ekstraks𝑖Jumlah Bit Yang disisipi
] 𝑥 100 %
... (2.17)2.6 Penelitian terkait
Pada jurnal Zaher (2011) dengan penelitiannya yang berjudul Modified Least Significant Bit (MLSB) dilakukan penyisipan data yang mana pada bit-bit penyisip di konversi ke nilai biner menjadi 5 bit setiap teks. Algoritma merupakan perubahan (modifikasi) dari algoritma LSB yang digunakan untuk mengkoding sebuah data ke dalam file. Algoritma ini memanipulasi beberapa tingkat bit-bit penyisip sebelum mengkoding data tersebut. Modifikasi data teks dengan algoritma ini dilakukan yang umumnya bit-bit teks yang seharusnya 1 karakter memiliki nilai 8 bit ASCII code dan dimodifikasi menjadi 5 bit. Setiap karakter teks akan diperlakukan dengan 8-bit kode ASCII mereka dan kemudian kode akan dikonversi ke kode 5-bit menggunakan teknik MLSB.