pemanfaatan metode modified least significant bit dan

81
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER PALCOMTECH SKRIPSI Pemanfaatan Metode Modified Least Significant Bit dan Teknik Modification Reshape Transposisi untuk Steganografi Diajukan oleh: YODA HERSAPUTRA 011160053 UNTUK MEMENUHI SEBAGIAN DARI SYARAT-SYARAT GUNA MENCAPAI GELAR SARJANA KOMPUTER PALEMBANG 2020

Upload: others

Post on 26-Oct-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pemanfaatan Metode Modified Least Significant Bit dan

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

PALCOMTECH

SKRIPSI

Pemanfaatan Metode Modified Least Significant Bit dan Teknik

Modification Reshape Transposisi untuk Steganografi

Diajukan oleh:

YODA HERSAPUTRA

011160053

UNTUK MEMENUHI SEBAGIAN DARI SYARAT-SYARAT

GUNA MENCAPAI GELAR SARJANA KOMPUTER

PALEMBANG

2020

Page 2: Pemanfaatan Metode Modified Least Significant Bit dan

i

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

PALCOMTECH

SKRIPSI

Pemanfaatan Metode Modified Least Significant Bit dan Teknik

Modification Reshape Transposisi untuk Steganografi

Diajukan oleh:

YODA HERSAPUTRA

011160053

UNTUK MEMENUHI SEBAGIAN DARI SYARAT-SYARAT

GUNA MENCAPAI GELAR SARJANA KOMPUTER

PALEMBANG

2020

Page 3: Pemanfaatan Metode Modified Least Significant Bit dan

ii

PEMANFAATAN METODE MODIFIED

LEAST SIGNIFICANT BIT DAN TEKNIK

MODIFICATION RESHAPE TRANSPOSISI

UNTUK STEGANOGRAFI

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

PALCOMTECH

HALAMAN PENGESAHAN PEMBIMBING SKRIPSI

NAMA : YODA HERSAPUTRA

NOMOR POKOK : 011160053

PROGRAM STUDI : S1 INFORMATIKA

JENJANG PENDIDIKAN : STRATA SATU ( S1 )

KONSENTRASI : JARINGAN

JUDUL SKRIPSI :

Tanggal: 13 Februari 2021 Mengetahui,

Pembimbing, Ketua,

Guntoro Barovih, S.Kom., M.Kom. Benedictus Effendi, S.T., M.T.

NIDN: 0201048601 NIP : 09.PCT.13

Page 4: Pemanfaatan Metode Modified Least Significant Bit dan

iii

PEMANFAATAN METODE MODIFIED

LEAST SIGNIFICANT BIT DAN TEKNIK

MODIFICATION RESHAPE TRANSPOSISI

UNTUK STEGANOGRAFI

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

PALCOMTECH

HALAMAN PENGESAHAN PENGUJI SKRIPSI

NAMA : YODA HERSAPUTRA

NOMOR POKOK : 011160053

PROGRAM STUDI : S1 INFORMATIKA

JENJANG PENDIDIKAN : STRATA SATU ( S1 )

KONSENTRASI : JARINGAN

JUDUL SKRIPSI :

Tanggal 16 Februari 2021 Mengetahui,

Penguji 1, Penguji 2,

Benedictus Effendi, S.T., M.T. Surahmat, S.Kom., M.Kom.

NIDN : 0221027002 NIDN : 0217058703

Menyetujui,

Ketua,

Benedictus Effendi, S.T., M.T.

NIP : 09.PCT.13

Page 5: Pemanfaatan Metode Modified Least Significant Bit dan

iv

Motto Dan Persembahan

MOTTO :

Orang – orang yang berhenti

belajar

Akan menjadi pemilik masa lalu.

Orang-orang yang masih terus

belajar,akan menjadi pemilik masa

depan

.

(Mario Teguh)

Mempersembahkan kepada :

Ayah dan Ibu yang selalu

mendo’akan.

Saudara-saudarku yang selalu

memberi semangat.

Pembimbing yang selalu sabar

saat membimbing.

Teman-teman seperjuangan

yang selalu mensupport.

Page 6: Pemanfaatan Metode Modified Least Significant Bit dan

v

KATA PENGANTAR

Puji dan syukur kehadirat Allah yang telah memberikan rahmat, kesehatan

serta kesempatan sehingga penulis dapat menyelesaikan skripsi ini. Penelitian

dengan judul β€œPemanfaatan Metode Modified Least Significant Bit dan

Teknik Modification Reshape Transposisi untuk Steganografi” dan saya

mengucapkan terima kasih kepada :

1. Ketua STMIK Palcomtech Palembang Bapak Benedictus Effendi, S.T.,

M.T.

2. Bapak Alfred Tenggono, S.Kom., M.Kom., selaku Ketua Program Studi

S1 Informatika STMIK Palcomtech Palembang,

3. Bapak Guntoro Barovih, S.Kom., M.Kom., selaku pembimbing di STMIK

Palcomtech Palembang,

4. Kedua orang tua, dan seluruh keluarga yang telah memberikan dukungan

dan dorongan semangat dalam menyelesaikan laporan ini.

Akhir kata, semoga penulisan laporan skripsi ini bermanfaat bagi pihak yang

membutuhkan.

Palembang, 16 Februari 2021

Penulis

Page 7: Pemanfaatan Metode Modified Least Significant Bit dan

vi

DAFTAR ISI

HALAMAN JUDUL ................................................................................................ i

HALAMAN PENGESAHAN PEMBIMBING ..................................................... ii

HALAMAN PENGESAHAN PENGUJI ............................................................... iii

HALAMAN MOTO DAN PERSEMBAHAN ...................................................... iv

KATA PENGANTAR ............................................................................................. v

DAFTAR ISI ............................................................................................................ vi

DAFTAR GAMBAR ............................................................................................... ix

DAFTAR TABEL ..................................................................................................... x

DAFTAR LAMPIRAN ............................................................................................ xi

ABSTRAK ............................................................................................................. xii

BAB I PENDAHULUAN

1.1 Latar Belakang .............................................................................................. 1

1.2 Rumusan Masalah ......................................................................................... 3

1.3 Ruang Lingkup .............................................................................................. 3

1.4 Tujuan dan Manfaat Penelitian ..................................................................... 3

1.4.1 Tujuan Penelitian ............................................................................. 3

1.4.2 Manfaat Penelitian ........................................................................... 4

1.5 Sistematika Penulisan ................................................................................... 4

BAB II GAMBARAN UMUM PERANGKAT LUNAK

2.1 Fenomena Perangkat Lunak Yang dibuat .................................................... 6

BAB III TINJAUAN PUSTAKA

3.1 Citra Digital ................................................................................................... 8

Page 8: Pemanfaatan Metode Modified Least Significant Bit dan

vii

3.2 Steganografi ................................................................................................... 9

3.3 Modified Least Significant Bit (MLSB) ....................................................... 9

3.4 Modifikasi pada proses penyisipan pesan ................................................. . 13

3.4.1 Reshape citra ................................................................................... . 14

3.4.2 Teknik Transposisi Pola Spiral ....................................................... . 14

3.4.3 Proses penyisipan dengan metode LSB ......................................... . 15

3.5 Penelitian Terdahulu .................................................................................. . 16

3.6 Activity Diagram ......................................................................................... . 20

3.7 Use Case Diagram ...................................................................................... . 22

3.8 Flowchart Diagram .................................................................................... . 24

BAB IV METODE PENELITIAN

4.1 Waktu Penelitian ........................................................................................ . 26

4.2 Jenis Penelitian ........................................................................................... . 27

4.3 Sumber Data ............................................................................................... . 27

4.4 Analisis dan Perancangan .......................................................................... . 28

4.4.1. Analisis Data ................................................................................... . 28

4.4.2. Perancangan Sistem ........................................................................ . 28

4.5 Pengujian .................................................................................................... . 29

4.5.1 Aspek Mutu (Fidelity)...................................................................... . 29

A. MSE (Mean Square Error) ...................................................... . 29

B. PSNR (Peak Signal to Noise Ratio) ........................................ . 29

4.5.2 Tingkat Ketahanan (Robustness) .................................................... . 30

4.5.3 Pengujian Terhadap Perbandingan Isi Pesan ................................. . 31

BAB V HASIL DAN PEMBAHASAN

5.1 Hasil Analisis .............................................................................................. . 32

5.1.1 Reshaping pada Citra ....................................................................... . 32

A. Dimensi Citra ............................................................................ . 32

B. Informasi Jumlah Tingkatan pada Citra .................................. . 33

C. Proses reshaping ....................................................................... . 35

Page 9: Pemanfaatan Metode Modified Least Significant Bit dan

viii

5.1.2 Konversi MLSB menjadi 5 bit ......................................................... . 39

5.1.3 Penyisipan LSB pada citra ............................................................... . 40

5.1.4 Ekstraksi pesan LSB pada citra ........................................................ . 41

5.2 Pembahasan ................................................................................................ . 42

5.2.1 Program yang Dihasilkan ................................................................. . 42

5.2.2 Pengujian ........................................................................................... . 43

5.2.3 Hasil Pengujian ................................................................................. . 44

5.2.3.1 Hasil Pengujian Berdasarkan Objek Citra yang Berbeda ... . 44

5.2.3.2 Hasil Pengujian Berdasarkan Tipe File yang Berbeda ....... . 46

5.2.3.3 Hasil Pengujian Berdasarkan Panjang Pesan ...................... . 47

5.2.3.4 Hasil Pengujian Tingkat Ketahanan (Robustness) .............. . 48

BAB VI KESIMPULAN DAN SARAN

6.1 Kesimpulan ................................................................................................. . 52

6.2 Saran ............................................................................................................ . 52

DAFTAR PUSTAKA .......................................................................................... . xiv

Page 10: Pemanfaatan Metode Modified Least Significant Bit dan

ix

DAFTAR GAMBAR

Gambar 2.1 Ilustrasi Point Selection dan Directional Selection ......................... 6

Gambar 2.2 Use Case Diagram Steganografi ....................................................... 7

Gambar 3.1 Ilustrasi Penyimpanan Data Rahasia ke dalam Media Digital ........ 9

Gambar 3.2 Penyisipan LSB pada 1 Piksel Warna ............................................. 10

Gambar 3.3 Alur Proses Penyisipan Pesan dengan Metode MLSB ................... 13

Gambar 3.4 Reshaping Citra Dua Dimensi ......................................................... 14

Gambar 3.5 Dimensi Citra Sebelum dan Setelah Reshaping ............................. 15

Gambar 3.6 Penyisipan 5 Bit Data dengan Metode LSB .................................... 15

Gambar 3.7 Mengembalikan Dimensi Citra ........................................................ 16

Gambar 5.1 Citra Tegak Lurus ............................................................................. 32

Gambar 5.2 Citra Mendatar .................................................................................. 33

Gambar 5.3 Citra 3x3 ............................................................................................ 34

Gambar 5.4 Koordinat pada Citra ........................................................................ 35

Gambar 5.5 Nilai Minimal dan Maksimal pada Citra 4x4 ................................. 37

Gambar 5.6 Alur Proses Generate Coordinate by Point .................................... 38

Gambar 5.7 Tampilan Program Dihasilkan ......................................................... 42

Gambar 5.8 Tampilan Informasi Penyisipan Pesan ............................................ 42

Gambar 5.9 Sampel Citra Uji ............................................................................... 43

Gambar 5.11 Hasil Perbandingan Pesan Asli Sebelum dan Sesudah Ekstraksi 45

Gambar 5.12 Perbandingan Citra Asli dengan Citra hasil Penyisipan .............. 45

Page 11: Pemanfaatan Metode Modified Least Significant Bit dan

x

DAFTAR TABEL

Tabel 3.1 Control Symbol ..................................................................................... 10

Tabel 3.2 Penelitian Terdahulu ............................................................................. 16

Tabel 3.3 Simbol Activity ...................................................................................... 20

Tabel 3.4 Simbol Use Case .................................................................................. 22

Tabel 3.5 Simbol Flowchart ................................................................................. 24

Tabel 4.1 Jadwal Penelitian .................................................................................. 26

Tabel 4.2 Nilai PSNR ............................................................................................ 30

Tabel 4.3 Pengujian Serangan Citra Hasil ........................................................... 31

Tabel 5.1 ABCD Rule Point ................................................................................. 36

Tabel 5.2 Poin-poin Pengujian ............................................................................. 44

Tabel 5.3 Hasil Pengujian Berdasarkan Objek Citra yang Berbeda .................. 44

Tabel 5.4 Hasil Pengujian Berdasarkan Tipe File yang Berbeda ....................... 46

Tabel 5.5 Hasil Pengujian Berdasarkan Panjang Pesan ...................................... 47

Tabel 5.6 Hasil Pengujian Ketahanan Citra Terhadap Kecerahan ..................... 48

Tabel 5.7 Hasil Pengujian Ketahanan Citra Terhadap Ketajaman ..................... 49

Tabel 5.8 Hasil Pengujian Ketahanan Citra Terhadap Rotasi ............................ 50

Tabel 5.9 Hasil Pengujian Ketahanan Citra Terhadap Resize (Skala) ............... 50

Page 12: Pemanfaatan Metode Modified Least Significant Bit dan

xi

DAFTAR LAMPIRAN

1. Form Topik dan Judul (Fotocopy)

2. Form Konsultasi (Fotocopy)

3. Surat Pernyataan (Fotocopy)

4. Form Revisi Ujian Pra Komprehensif (Fotocopy)

5. Listing Code

Page 13: Pemanfaatan Metode Modified Least Significant Bit dan

xii

ABSTRAK

Penelitian ini bertujuan untuk menyisipkan pesan dengan menggunakan

metode modified least significant bit (MLSB) sebagai peng-enkripsi pesan dan

teknik modification reshape transposisi pola spiral sebagai penentu di bagian mana

pesan akan disisipkan. Pengujian dilakukan untuk mengetahui kemampuan metode

MLSB dan teknik modification reshape dalam menjaga keutuhan pesan tanpa

adanya kerusakan sedikitpun pada pesan. Hasil penelitian menunjukkan

penggabungan metode MLSB dan teknik modification reshape dapat menjadi

kombinasi yang kuat dengan metode enkripsi MLSB dan penyisipan pola spiral

yang menjadi kunci penyisipan pesan.

Kata kunci – steganografi, mlsb, reshape, re-wrapping

Page 14: Pemanfaatan Metode Modified Least Significant Bit dan

xiii

ABSTRACT

This study aims to enter messages using the modified least significant bit

(MLSB) method as message encryption and modification techniques to reshape

the spiral pattern transposition as a determinant of where the message will be

inserted. The test was carried out to determine the ability of the MLSB method and

modification reshape transposition technique in maintaining the integrity of the

message without the slightest damage to the message. The results showed that the

combination of the MLSB method and modification reshape transposition

technique can be a strong combination with the MLSB encryption method and the

insertion of the spiral pattern which is the key to message insertion.

Keywords - steganography, mlsb., reshape, re-wrapping

Page 15: Pemanfaatan Metode Modified Least Significant Bit dan

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Seiring berkembangnya sistem informasi yang terjadi di masyarakat, tidak

luput dari tindak kejahatan, seperti pencurian informasi penting yang dapat

merugikan pihak-pihak tertentu. Keamanan data merupakan hal penting yang harus

ada dan diterapkan untuk menjaga data tetap aman dan tidak disalahgunakan oleh

pihak yang tidak bertanggung jawab. Salah satu teknik keamanan data yang dapat

dijadikan alternatif untuk menyisipkan pesan rahasia yaitu steganografi.

Steganografi yang dikenal dengan teknik menyisipkan pesan rahasia ke wadah citra

digital.

Salah satu metode steganografi citra digital adalah metode Modified Least

Significant Bit (MLSB) adalah metode pengembangan dari Least Significant Bit

(LSB). Pada metode ini bilangan 8 bit (ASCII) akan dikonversi menjadi bilangan 5

bit. Kemudian dilakukan proses penyisipan ke dalam citra (image) berformat bmp,

jpeg, png dan tiff. Waktu komputasi untuk menyisipkan pesan bergantung pada

panjang pesan yang disisipkan. Semakin besar ukuran pesan, waktu yang

dibutuhkan untuk penyisipan semakin lama. Citra sebelum dan sudah penyisipan

tidak terjadi perubahan sama sekali.

Page 16: Pemanfaatan Metode Modified Least Significant Bit dan

2

Pada penelitian ini data yang disisipkan berupa pesan teks. Dalam

penyisipannya mula-mula pesan akan dikonversikan dari 8 bit menjadi 5 bit ke

dalam media citra 24 bit sebagai wadah penampung pesan. Bit yang telah

dikonversi akan disisipkan ke dalam media citra 24 bit menggunakan metode LSB.

Hasilnya berupa Stego Object. Stego object inilah yang akan dikirim kepada pihak

kedua untuk diekstrak kembali.

Penelitian ini tidak hanya fokus pada Metode LSB yang dimodifikasi.

Proses yang dimodifikasi yaitu reshape citra yang pada umumnya proses reshape

mengubah citra 2 dimensi menjadi vektor 1 dimensi, citra MxN menjadi vektor 1xN

(disusun memanjang). Modifikasi reshape citra dengan teknik transposisi pola

spiral yang dilakukan membagi bagian citra menjadi beberapa level atau lebih,

dimana pesan mulai disisipkan pada level terluar sampai level paling dalam citra.

Dengan kata lain, pola penyisipan pesan disisipkan secara spiral. Tujuan me-

modifikasi proses reshape citra yaitu membuat posisi pesan yang disisipkan

semakin acak dan tidak mudah terbaca informasi yang dirahasikan. Berdasarkan

latar belakang di atas maka penulis akan mengangkat sebuah judul β€œPemanfaatan

Metode Modified Least Significant Bit dan Teknik Modification Reshape

Transposisi untuk Steganografi”.

Page 17: Pemanfaatan Metode Modified Least Significant Bit dan

3

1.2 Rumusan Masalah

Dari penjelasan di atas maka dapat dirumuskan permasalahan pokok yaitu

β€œBagaimana menerapkan metode MLSB serta memodifikasi proses reshape dengan

teknik transposisi dalam penyisipan pesan teks”.

1.3 Ruang Lingkup Penelitian

Ruang lingkup penelitian ini adalah sebagai berikut:

1. Metode enkripsi pesan dengan MLSB (Modified Least Significant Bit).

2. Proses reshape citra dengan teknik transposisi untuk menentukan di bagian

mana pesan akan disisipkan.

3. Algoritma steganografi akan diimplementasikan menggunakan bahasa

pemrograman python.

1.4 Tujuan dan Manfaat Penelitian

1.4.1 Tujuan Penelitian

Tujuan dari penelitian adalah menyisipkan pesan teks ke dalam

media citra menggunakan metode MLSB dan transposisi dengan pola spiral

untuk membuat posisi pesan yang disisipkan semakin teracak dan

meningkatkan keamanan informasi yang dirahasiakan.

Page 18: Pemanfaatan Metode Modified Least Significant Bit dan

4

1.4.2 Manfaat Penelitian

Penelitian ini menghasilkan teknik steganografi dengan

penggabungan MLSB dan teknik transposisi pola spiral dalam penyandian

pesan teks ke dalam media citra penampung dan memberikan keamanan lebih

dalam menyembunyikan data penting untuk terhindar nya dari tindak kejahatan

dari pihak yang tidak bertanggung jawab.

1.5 Sistematika Penulisan

Tugas akhir dengan judul β€œPemanfaatan Metode Modified Least

Significant Bit dan Teknik Modification Reshape Transposisi untuk

Steganografi” secara garis besar disusun dalam enam bab, sistematika

penulisan sebagai berikut:

BAB I PENDAHULUAN

Bab ini membuat tentang latar belakang, rumusan masalah, ruang lingkup,

tujuan dan manfaat penelitian dan sistematika penulisan.

BAB II GAMBARAN UMUM PERANGKAT LUNAK

Bab ini membuat tentang penjelasan secara umum mengenai

pengoperasian perangkat lunak berbasis desktop dalam penerapan sistem.

BAB III TINJAUAN PUSTAKA

Bab ini membuat tentang teori-teori yang menjelaskan tentang teknik

steganografi yang digunakan, yaitu teknik Modified Least Significant Bit

(MLSB) dalam mengenkripsi pesan, dan teknik reshaping untuk menentukan di

bagian mana pesan akan disisipkan.

Page 19: Pemanfaatan Metode Modified Least Significant Bit dan

5

BAB IV METODE PENELITIAN

Bab ini membuat tentang waktu penelitian, jenis penelitian, sumber data,

analisis dan perancangan sistem dan metode pengujian.

BAB V HASIL DAN PEMBAHASAN

Bab ini membuat tentang hasil analisis pada teknik Modified Least

Significant Bit (MLSB), reshaping citra dan hasil pengujian.

Page 20: Pemanfaatan Metode Modified Least Significant Bit dan

6

BAB II

GAMBARAN UMUM PERANGKAT LUNAK

2.1 Fenomena

Proses penyisipan dan ekstraksi pesan dilakukan secara spiral. Teknik

spiral dapat ditentukan di bagian mana penyisipan dimulai dan arah ke depan

(forward) atau kebalikan (backward). Pada perangkat lunak terdapat Point

Selection, diantaranya (A, B, C dan D). Point tersebut untuk menentukan di bagian

penyisipan dan ekstraksi dimulai. Terdapat juga Directional Selection, yaitu searah

jarum jam (Clockwise) atau berlawanan arah jarum jam (Counter Clockwise). Opsi

tersebut untuk menentukan arah penyisipan atau ekstraksi memutar ke kanan atau

memutar ke kiri. Berikut ilustrasi point selection dan directional selection.

Gambar 2.1 Ilustrasi point selection dan directional selection

Page 21: Pemanfaatan Metode Modified Least Significant Bit dan

7

Gambar diatas merupakan ilustrasi pemilihan point dan direction.

Penyisipan atau ekstraksi pada opsi Clockwise (CW) dilakukan dari titik A-B-C-D

dengan titik koordinat yang dihasilkan 1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5 dan opsi

Counter Clockwise (CCW) penyisipan dan ekstraksi dilakukan dari titik A-D-C-B

dengan titik koordinat yang dihasilkan 1, 5, 9, 13, 14, 15, 16, 12, 8, 4, 3, 2, 1.

Gambar 2.2 merupakan use case diagram steganografi yang menggambarkan

interaksi antara pengirim dan penerima dengan sistem.

Gambar 2.2 Use Case Diagram Steganografi

Perangkat lunak juga menampilkan informasi untuk setiap proses

penyisipan dan ekstraksi, diantaranya informasi umum citra (dimensi citra, daya

tampung citra dan jumlah level), informasi reshaping citra (pemetaan titik

penyisipan dan ekstraksi) dan informasi MLSB yaitu mengubah 8 bit menjadi 5 bit

dan sebaliknya.

Page 22: Pemanfaatan Metode Modified Least Significant Bit dan

8

BAB III

TINJAUAN PUSTAKA

3.1 Citra Digital

Citra atau Image merupakan istilah lain dari gambar, yang merupakan

informasi berbentuk visual. Citra mempunyai karakteristik yang tidak dimiliki oleh

data teks, yaitu citra kaya dengan informasi. Ada sebuah peribahasa yang berbunyi

β€œsebuah gambar bermakna lebih dari seribu kata ”a picture is more than a thousand

words” Maksudnya tentu sebuah gambar dapat memberikan informasi yang lebih

banyak daripada informasi tersebut disajikan dalam bentuk kata-kata (Sipayung,

2014).

Citra adalah suatu representasi, kemiripan, atau imitasi dari suatu objek.

Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto,

bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi,

atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan.

Citra digital adalah citra yang dapat diolah komputer. Beberapa format citra digital

yang banyak ditemui adalah BMP, JPEG, GIF, PNG, dan lain-lain (Ricky et al.,

2018).

Page 23: Pemanfaatan Metode Modified Least Significant Bit dan

9

3.2 Steganografi

Steganografi merupakan seni untuk menyembunyikan pesan di dalam

media digital. Steganografi digital menggunakan media digital sebagai wadah

penampung, misalnya citra, audio, teks dan video (Andono et al., 2017). Gambar

3.1 merupakan ilustrasi sederhana dari proses penyimpanan pesan ke dalam media

citra digital dan menghasilkan citra baru dengan pesan di dalamnya.

Sumber: (Andono et al., 2017)

Gambar 3.1 Ilustrasi Penyimpanan Data Rahasia ke dalam Media Digital

3.3 Modified Least Significant Bit (MLSB)

Modified Least Significant Bit (MLSB) atau modifikasi dari algoritma LSB

digunakan untuk meng-encode sebuah identitas ke dalam citra asli. MLSB

menggunakan manipulasi beberapa bit-bit penyisip sebelum meng-encode pesan

tersebut (Zaher, 2011).

Metode Modified Least Significant Bit (MLSB) adalah suatu metode dari

hasil pengembangan metode LSB yang sudah ada. Pada metode MLSB ini, bilangan

yang dipakai adalah bilangan 5 bit hasil konversi dari bilangan 8 bit yang dipakai

pada metode LSB. Kemudian bilangan 5 bit disisipkan ke dalam citra penampung

menggunakan metode LSB (Lubis et al., 2015).

Page 24: Pemanfaatan Metode Modified Least Significant Bit dan

10

Proses konversi nilai citra menjadi data biner (8 bit) yang kemudian 1 bit

dari pesan disisipkan dari barisan paling kanan masing-masing nilai biner citra.

Penyisipan LSB pada citra 24 bit dapat dilihat pada Gambar 3.2.

Sumber: (Lubis et al., 2015)

Gambar 3.2 Penyisipan LSB pada 1 Piksel Warna

Cara kerja algoritma Modified Least Significant Bit (MLSB) adalah

sebagai berikut:

1. Normalisasi dengan tabel Control Symbol.

Control symbol data yang merepresentasikan karakter pesan untuk

mengelompokkan suatu barisan data, seperti yang ditunjukkan oleh Tabel 3.1.

Tabel 3.1 Control Symbol

Hex Representation Operation

1Bh Define small letter

1Ch Define capital letter

1Dh Define space

1Eh Define number

1Fh Define end of text

Sumber: (Zaher, 2011)

Page 25: Pemanfaatan Metode Modified Least Significant Bit dan

11

1) 61h – 7Ah (Small Letter)

Jika karakter pesan yang akan disisipkan merepresentasikan huruf kecil

terlebih dahulu menyisipkan 5 bit pertama menjadi 1Bh dan dilanjutkan

menyisipkan hasil konversi pesan 8 bit ke 5 bit setelahnya.

2) 41h – 5Ah (Capital Letter)

Jika karakter pesan yang akan disisipkan merepresentasikan huruf kapital

terlebih dahulu menyisipkan 5 bit pertama menjadi 1Ch dan dilanjutkan

menyisipkan hasil konversi pesan 8 bit ke 5 bit setelahnya.

3) 20h (Space)

Jika karakter pesan yang akan disisipkan merepresentasi sebuah karakter

spasi putih, maka spasi putih digantikan dengan 5 bit pertama menjadi 1Dh.

4) 30h – 39h (Number)

Jika karakter pesan yang akan disisipkan merepresentasikan angka terlebih

dahulu menyisipkan 5 bit pertama menjadi 1Eh dan dilanjutkan

menyisipkan hasil konversi pesan 8 bit ke 5 bit setelahnya.

5) Akhir Teks (End of Text)

Jika pesan yang disisipkan telah berakhir, disisipkan 5 bit di akhir menjadi

1Fh.

2. Proses mengubah nilai ASCII menjadi 5 bit. Dimisalkan pesan yang akan

disisipkan pesan teks β€œSTEGO with 05 bits”.

1) Pesan β€œSTEGO with 05 bits”, jika diubah ke dalam biner ASCII

membutuhkan memori sebesar 18 x 8 bit = 144 bit.

Page 26: Pemanfaatan Metode Modified Least Significant Bit dan

12

2) Pada algoritma ini pesan β€œSTEGO with 05 bits” diubah menjadi nilai

heksadesimal: 53h, 54h, 45h, 47h, 4Fh, 20h, 77h, 69h, 74h, 68h, 20h, 30h,

35h, 20h, 62h, 69h, 74h, 73h.

3) Normalisasikan pesan dengan tabel Control System dan di-XOR-kan

dengan nilai puluhan terkecil pada ASCII.

a. Membagi kelompok pada pesan sisip dengan tanda spasi putih (20h).

b. Kelompok pertama, barisan huruf kapital adalah 53h, 54h, 45h, 47h,

4Fh. Kemudian XOR-kan dengan karakter terkecil dalam huruf kapital

yaitu 41h (β€˜A’), didapatkan hasil XOR yaitu 1Ch, 12h, 15h, 4h, 6h, Eh,

1Dh.

c. Kelompok kedua, barisan huruf kecil adalah 77h, 69h, 74h, 68h.

Kemudian XOR-kan dengan karakter terkecil dalam huruf kecil yaitu

61h (β€˜a’), didapatkan hasil XOR yaitu 1Bh, 17h, 8h, 15h, 9h, 1Dh.

d. Kelompok ketiga, barisan angka adalah 30h, 35h. Kemudian XOR-kan

dengan karakter terkecil dalam angka yaitu 30h (β€˜0’), didapatkan hasil

XOR yaitu 1Eh, 0h, 5h, 1Dh.

e. Kelompok keempat, barisan huruf kecil adalah 62h, 69h, 74h, 73h.

Kemudian XOR-kan dengan karakter terkecil dalam huruf kecil yaitu

61h (β€˜a’), didapatkan hasil XOR yaitu 1Bh, 3h, 8h, 15h, 12h.

4) Gabungan kelompok pertama, kedua, ketiga, dan keempat. Sehingga pesan

yang akan disisipkan menjadi 1Ch, 12h, 15h, 4h, 6h, Eh, 1Dh, 1Bh, 17h,

8h, 15h, 9h, 1Dh, 1Eh, 0h, 5h, 1Dh, 1Bh, 3h, 8h, 15h, 12h, 1Fh. Jika pesan

ini diubah ke dalam biner ASCII membutuhkan memori sebesar 23 x 5 bit

Page 27: Pemanfaatan Metode Modified Least Significant Bit dan

13

= 115 bit.

5) Pesan akan diubah menjadi data biner dan disisipkan menggunakan teknik

LSB.

3. Proses mengembalikan pesan asli, yaitu dengan meng-XOR-kan kembali byte

pesan sesuai dengan kolompok bilangan dan menghilangkan nilai Control

Symbol.

3.4 Modifikasi pada proses penyisipan pesan

Penyisipan pesan dilakukan beberapa tahap penting. Tahap pertama berada

diproses reshaping, kemudian konversi pesan teks ke dalam bentuk data biner 8 bit

dilanjutkan dengan proses meng-encode 8 bit pesan menjadi 5 bit dengan metode

MLSB sampai tahap terakhir, yaitu penyisipan pesan dengan metode LSB. Alur

proses penyisipan pesan dapat dilihat pada Gambar 3.3.

Gambar 3.3 Alur Proses Penyisipan Pesan dengan Metode MLSB

Page 28: Pemanfaatan Metode Modified Least Significant Bit dan

14

3.4.1 Reshape citra

Proses reshape pada citra bertujuan untuk mengubah citra 2

dimensi menjadi bentuk lebih sederhana. Reshaping citra dua dimensi dapat

dilihat pada Gambar 3.4.

Sumber: (Mulyanto et al., 2019)

Gambar 3.4 Reshaping Citra Dua Dimensi

3.4.2 Teknik Transposisi Pola Spiral

Penggunaan metode pembacaan spiral merupakan penggabungan

dua metode pembacaan secara horizontal dan vertikal, dan penggunaan metode

pembacaan secara spiral akan menghasilkan bentuk untaian pixel gambar yang

lebih rumit dibaca daripada menggunakan metode pembacaan secara

horizontal ataupun vertikal saja (Supriyanto & Ardhianto, 2008).

Teknik transposisi spiral digunakan untuk menentukan di bagian

mana dari citra pesan teks yang akan disisipkan. Citra 4x4 dibagi menjadi

beberapa level dengan jumlah level bergantung dengan dimensi citra.

Kemudian level disusun memanjang menjadi vektor berukuran 1x16.

Page 29: Pemanfaatan Metode Modified Least Significant Bit dan

15

Penyisipan pesan dilakukan pada hasil proses reshape, yaitu vektor citra 1xN.

Proses reshaping citra dapat dilihat pada Gambar 3.5.

Gambar 3.5 Dimensi Citra Sebelum dan Setelah Reshaping

3.4.3 Proses penyisipan dengan metode LSB

Proses penyisipan 5 bit data akan disisipkan di lokasi citra hasil

reshaping. Proses ini membuat 5 bit data tersebar mengacak karena proses

reshape pada citra yang berbeda cara penyusunannya. Proses penyisipan 5 bit

data dengan metode LSB dapat dilihat pada Gambar 3.6.

Gambar 3.6 Penyisipan 5 Bit Data dengan Metode LSB

Page 30: Pemanfaatan Metode Modified Least Significant Bit dan

16

Setelah dilakukan proses penyisipan, dilakukan proses re-

wrapping. Gambar 3.7 menunjukkan proses merubah dimensi 1xN menjadi

MxN dimana panjang dan lebar citra asli telah diketahui.

Gambar 3.7 Mengembalikan Dimensi Citra

3.5 Penelitian Terdahulu

Peneliti mengangkat beberapa jurnal sebagai referensi dan acuan yang

digunakan dalam mengkaji penelitian yang dilakukan, seperti yang ditunjukkan

oleh Tabel 3.2.

Tabel 3.2 Penelitian Terdahulu

Nama Judul Peneliti

Tahun dan

ISSN

Hasil

Digital Watermarking

Pada Citra

Menggunakan Metode

Agung

Sulistyanto

2016 Penyisipan pesan

menggunakan

metode MLSB

Page 31: Pemanfaatan Metode Modified Least Significant Bit dan

17

Modified Least

Significant Bit

(MLSB) Dengan

Penyebaran Pesan

Secara Acak

Menggunakan Metode

Linear Congruential

Generator (LCG):

Studi Laboratorium

ICT Terpadu

Universitas Budi

Luhur

berjalan dengan

baik dan ukuran

bit pesan yang

disisipkan

menjadi lebih

kecil dari

semestinya.

Menggunakan

password untuk

menentukan

posisi acak

penyisipan,

maka keamanan

pesan yang

disisipkan pada

citra terjaga

dengan aman.

Penyisipan Pesan

Teks pada Citra

Menggunakan Metode

LSB dan 2-Wrap

Length

1. Mulyanto

2. Royke

Vincentius

Febriyana

3. Arief

Bramanto

Seminar

Nasional

APTIKOM

(SEMANTIK)

2019

Metode LSB

digunakan untuk

menyisipkan

pesan,

sedangkan teknik

2-wrap length

Page 32: Pemanfaatan Metode Modified Least Significant Bit dan

18

Wicaksono

Putra

digunakan untuk

menentukan

posisi penyisipan

pesan teks ke

dalam citra

untuk

menghasilkan

penyisipan yang

lebih acak

sehingga isi

pesan tidak

mudah diketahui.

Steganografi Berbasis

Least Significant Bit

(LSB) untuk

Menyisipkan Gambar

ke dalam Citra

Gambar

Za’imatun

Niswati

Faktor Exacta

Vol. 5 No. 2,

2012. ISSN:

1979 276X

Penyisipan pesan

menggunakan

metode LSB

berjalan dengan

baik. Ukuran

citra tidak

berubah/tetap

dan tidak

mengakibatkan

kecurigaan akan

adanya pesan

Page 33: Pemanfaatan Metode Modified Least Significant Bit dan

19

rahasia dalam

citra.

1. Perbadingan penelitian pertama yang ditulis oleh Agung Sulistyanto pada

tahun 2016 dengan judul β€œDigital Watermarking Pada Citra

Menggunakan Metode Modified Least Significant Bit (MLSB) Dengan

Penyebaran Pesan Secara Acak Menggunakan Metode Linear

Congruential Generator (LCG): Studi Laboratorium ICT Terpadu

Universitas Budi Luhur” memiliki perbedaan pada cara menentukan

posisi acak pesan, yaitu dengan menggunakan metode LCG. Peneliti

sekarang menggunakan teknik transposisi spiral pada proses reshape untuk

pengacakan pesan.

2. Perbadingan penelitian kedua yang ditulis oleh Mulyanto, Royke

Vincentius Febriyana dan Arief Bramanto Wicaksono Putra pada tahun

2019 dengan judul β€œPenyisipan Pesan Teks pada Citra Menggunakan

Metode LSB dan 2-Wrap Length” memiliki perbedaan pada penyisipan

pesan dengan metode LSB dan teknik pengacakan posisi pesan teks teknik

2-wrap length. Peneliti sekarang menggunakan metode MLSB dan

pengacakan posisi pesan teks dengan teknik transposisi pola spiral.

3. Perbadingan penelitian ketiga yang ditulis oleh Za’imatun Niswati pada

tahun 2012 dengan judul β€œSteganografi Berbasis Least Significant Bit

(LSB) untuk Menyisipkan Gambar ke dalam Citra Gambar” memiliki

perbedaan pada pesan yang disisipkan pada citra digital yaitu berupa objek

Page 34: Pemanfaatan Metode Modified Least Significant Bit dan

20

citra sebagai pesan yang disisipkan ke dalam citra digital dan tidak adanya

proses pengacakan posisi pesan. Peneliti sekarang menggunakan teks yang

dikodekan dengan pengurangan pada bit-bit pesan sebelum penyisipan

dengan metode LSB dan terjadi modifikasi pada proses reshaping citra

untuk pengacakan posisi pesan sisip.

3.6 Activity Diagram

Activity Diagram atau Diagram Aktivitas menggambarkan urutan kegiatan

atau urutan aktifitas dari sebuah sistem. Tujuan dibuatnya Activity Diagram adalah

untuk memudahkan dalam memahami proses bisnis sistem. (Maharani 2018:49).

Simbol-simbol activity diagram dapat dilihat pada Tabel 3.3.

Tabel 3.3 Simbol Activity

Simbol Keterangan

Activities

Akhir penelurusan

Acvitiy menggambarkan proses bisnis,

diisi dengan kata kerja.

Sebuah activity hanya bisa mempunyai

satu alur masuk dan satu alur keluar.

Decision Point

Tidak ada keterangan (pertanyaan) pada

tengah belah ketupat seperti pada

flowchart dan harus mempunyai Guards

Start Point

Awal penelurusan

Sebuah activity diagram selalu dimulai

dengan Start Poin

Page 35: Pemanfaatan Metode Modified Least Significant Bit dan

21

Pada sebuah activity diagram hanya boleh

menggunakan 1 simbol Start Poin

End Point

Akhir penelurusan

Sebuah activity diagram diakhiri dengan

End Poin

Pada sebuah activity diagram boleh

menggunakan >1 simbol End Poin

[ ]

Guard

Sebuah kondisi benar sewaktu melewati

sebuah transisi (contoh : [nilai>70])

Fork

Percabangan

Satu aliran yang menyebabkan dua atau

lebih aktivitas yang dikerjakan secara

bersamaan.

Join

Penggabungan

Beberapa aliran menyatu untuk

melanjutkan aktivitas

Decision Point

Tidak ada keterangan (pernyataan) pada

tengah belah ketupat seperti pada

flowchart dan harus mempunyai Guards.

Swimlane

Sebuah cara untuk mengelompokkan

activity berdasarkan actor

Actor bisa ditulis nama actor

Page 36: Pemanfaatan Metode Modified Least Significant Bit dan

22

Swimlane digambarkan secara vertical,

walaupun kadang-kadang digambarkan

secara horizontal

Sumber : Maharani (2018:46)

3.7 Use Case Diagram

Use case Diagram adalah diagram yang menggambarkan interaksi antara

pengguna dengan sistem. Use case mengambarkan siapa saja actor yang terlibat dan

fungsi apa saja yang dapat digunakan actor pada sistem informasi tersebut.

(Maharani, 2018:45). Simbol-simbol use case diagram dapat dilihat pada Tabel 3.4.

Tabel 3.4 Simbol Use Case

Simbol Keterangan

Actor

Orang atau sistem yang berinteraksi dengan

sistem informasi usulan

Aktor ditempatkan diluar batas sistem

Use Case

Mewakili sebagian besar sistem secara

fungsional.

Ditempatkan di dalam batas sistem

Sertakan nama sistem dalam sistem

boundary bagian atas

Page 37: Pemanfaatan Metode Modified Least Significant Bit dan

23

System Boundary

Menggambarkan ruang lingkup sistem.

Asosiasi

Menghubungkan actor dengan use case yang

berinteraksi.

Include

Relasi yang menggambarkan bahwa sebuah

use case harus menjalankan use case lain

terlebih dahulu sebelum menjalankan

fungsinya.

Arah panah mengarah pada main use case.

Extend

Relasi yang menggambarkan bahwa sebuah

use case bisa berdiri sendiri atau bisa

berjalan tanpa menjalankan main use case

terlebih dahulu.

Generalisasi

Menggambarkan hubungan use case khusus

dengan use case umum. Tanda panah

mengarah ke use case umum.

Sumber : Maharani (2018:46)

Page 38: Pemanfaatan Metode Modified Least Significant Bit dan

24

3.8 Flowchart Diagram

Menurut Sitorus (2015:14), flowchart merupakan urutan logika dari suatu

prosedur pemecahan masalah, sehingga flowchart merupakan langkah-langkah

penyelesaian masalah yang dituliskan dalam simbol-simbol tertentu. Diagram ini

akan menunjukkan alur di dalam program secara logika. Flowchart bertujuan untuk

menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai rapi,

dan jelas menggunakan simbol-simbol yang standar. Simbol-simbol flowchart

dapat dilihat pada Tabel 3.5.

Tabel 3.5 Simbol Flowchart

Simbol Keterangan

Document

Menandakan dokumen, bisa dalam bentuk surat,

formulir, buku atau cetakan.

Multi Document

Dokumen yang digunakan lebih dari satu dalam

simbol ini.

Manual Operation

Proses manual.

Process

Proses yang dilakukan oleh komputer.

Page 39: Pemanfaatan Metode Modified Least Significant Bit dan

25

Predefined Process

Proses apa saja yang tidak terdefinisi termasuk

aktivitas fisik.

Off-page Reference

Terminasi yang mewakili simbol tertentu untuk

digunakan pada aliran lain pada halaman yang

lain.

On-page Reference

Terminasi yang mewakili simbol tertentu untuk

digunakan pada aliran lain yang sama.

Terminator

Terminasi yang menandakan awal dan akhir dari

suatu aliran.

Decision

Pengambilan keputusan.

Display

Layar peraga (monitor).

Manual Input

Pemasukan data secara manual.

Sumber : Sitorus (2015:14)

Page 40: Pemanfaatan Metode Modified Least Significant Bit dan

26

BAB IV

METODE PENELITIAN

4.1 Waktu Penelitian

Penelitian ini di mulai bulan September sampai Desember 2020 agar

penelitian ini terarah dan dapat diselesaikan tepat waktu. Jadwal penelitian dapat

dilihat pada Tabel 4.1.

Tabel 4.1 Jadwal Penelitian

No Kegiatan

September

2020

Oktober

2020

November

2020

Desember

2020

1 2 3 1 2 3 4 5 1 2 3 4 1 2 3

1 Identifikasi

Masalah dan

Pengumpulan

Data Penelitian

2 Membuat

Laporan

Penelitian

3 Analisis

Algoritma

MLSB dan

Reshaping Citra

Page 41: Pemanfaatan Metode Modified Least Significant Bit dan

27

4 Perancangan

Algoritma

Steganografi

5 Pengujian

Algoritma

Steganografi

6 Penyelesaian

Laporan

Penelitian

4.2 Jenis Penelitian

Jenis penelitian ini adalah penelitian eksperimen. Penelitian dengan

mencatat langsung hasil pengujian atau percobaan yang dilakukan. Kesimpulan

atau cara untuk mengumpulkan data dilakukan pengukuran kualitas citra dengan

metode MSE, PSNR, dan uji ketahanan citra hasil dari serangan luar.

4.3 Sumber Data

Penelitian ini menggunakan data objek berupa citra. Jenis citra yang

digunakan, diantaranya *.bmp, *.jpeg, *.png dan *.tiff dengan resolusi 512x512

piksel yang didapatkan dari internet. Kapasitas maksimal pesan bergantung dengan

seberapa besar kapasitas citra.

Page 42: Pemanfaatan Metode Modified Least Significant Bit dan

28

4.4 Analisis dan Perancangan

4.4.1 Analisis Data

1) Reshaping pada citra

Reshape citra MxN menjadi vektor citra 1xN dilakukan untuk

menentukan bit-bit data dimana pesan akan disisipkan.

2) Konversi MLSB menjadi 5 bit

Telah dijelaskan cara kerja metode MLSB dimana data dikonversi

dari 8 bit menjadi 5 bit. Membaca karakter 8 bit (ASCII) dan

tentukan kontrol simbol sebagai penanda kelompok karakter.

3) Penyisipan LSB pada citra

Setelah proses reshaping citra, diketahui dimana bit-bit hasil

konversi MLSB yang akan disisipkan. Pada Gambar 3.6 telah

dijelaskan proses penyisipan 5 bit data dengan metode LSB.

4) Ekstraksi pesan LSB pada citra

Ekstraksi dilakukan dengan mengambil bit dari barisan paling

kanan. Kemudian data bit yang diambil akan dikonversi kembali

5 bit menjadi 8 bit dengan menghilangkan kontrol simbol nya.

4.4.2 Perancangan Sistem

Alat bantu perancangan algoritma steganografi yang dirancang

yaitu menggunakan Unified Modeling Language (UML), diantaranya activity

diagram, use case diagram dan flowchart. Aktor yang terlibat dalam sistem,

yaitu pengguna atau pengirim dengan sistem yang dirancang.

Page 43: Pemanfaatan Metode Modified Least Significant Bit dan

29

4.5 Pengujian

Pengujian dilakukan sebagai tolak ukur keberhasilan dalam penelitian

untuk mengetahui kelebihan serta kekurangan pada sebuah penelitian tersebut.

4.5.1 Aspek Mutu (Fidelity)

Mutu (Fidelity), pengujian dalam hal ini yaitu memeriksa kualitas

citra terhadap manipulasi untuk mengetahui kemiripan citra sebelum dan

sesudah proses penyisipan data.

A. MSE (Mean Square Error)

MSE adalah ukuran yang digunakan untuk menilai seberapa

baik sebuah metode dalam melakukan rekonstruksi atau restorasi citra

relatif terhadap citra aslinya.

𝑀𝑆𝐸 = 1

𝑀π‘₯π‘βˆ‘

𝑀

π‘₯

βˆ‘

𝑁

𝑦

[𝑓1(π‘₯, 𝑦) βˆ’ 𝑓2(π‘₯, 𝑦)]2

Semakin kecil nilai MSE, maka hasil pemrosesan citra semakin

mendekati citra aslinya.

B. PSNR (Peak Signal to Noise Ratio)

PSNR adalah ukuran perbandingan nilai maksimum dari

kedalaman bit citra yang diukur dengan besarnya noise yang

berpengaruh pada sinyal tersebut. Besarnya noise diwakili oleh nilai

MSE.

𝑃𝑆𝑁𝑅 = 20πΏπ‘œπ‘”10 (255

βˆšπ‘€π‘†πΈ)

Page 44: Pemanfaatan Metode Modified Least Significant Bit dan

30

Semakin besar nilai PSNR, maka hasil pemrosesan citra

semakin mendekati citra aslinya.

Kriteria kualitas citra dapat dilihat dari nilai PSNR, seperti

yang ditunjukkan oleh Tabel 4.2.

Tabel 4.2 Nilai PSNR

Nilai PSNR Kualitas Citra

60 dB Excellent, tanpa derau

50 dB Good, terdapat sejumlah derau, tetapi kualitas citra

masih bagus

40 dB Reasonable, terdapat butiran halus atau seperti salju di

dalam citra

30 dB Poor picture, terdapat banyak derau

20 dB Unusable

Sumber: (Hidayat & Hastuti, 2013)

4.5.2 Tingkat Ketahanan (Robustness)

Pengujian dilakukan beberapa uji serangan yang bertujuan untuk

mengetahui tingkat ketahanan citra terhadap serangan luar. Uji serangan yang

dilakukan yaitu diantaranya kecerahan, ketajaman, rotasi dan resize. Pengujian

citra hasil ditunjukkan oleh Tabel 4.3.

Page 45: Pemanfaatan Metode Modified Least Significant Bit dan

31

Tabel 4.3 Pengujian Serangan Citra Hasil

Operasi Dasar Nilai Perubahan Target Hasil Uji Target PSNR (dB)

Kecerahan -5 sampai +25 Success/Failed >= 40dB

Ketajaman -5 sampai +25 Success/Failed >= 40dB

Rotasi 90Β°/180Β°/270Β° Success/Failed >= 40dB

Resize Diperbesar 2x Success/Failed >= 40dB

Sumber: (Farid et al., 2016)

Pengujian menggunakan 4 sampel citra 24-bit, yaitu citra jenis

bmp, jpeg, png dan tiff dengan dimensi yang sama. Citra hasil uji serangan

dikatakan berhasil jika pesan yang tersisip pada citra hasil tidak mengalami

kerusakan setelah meng-decode menggunakan metode MLSB.

4.5.3 Pengujian Terhadap Perbandingan Isi Pesan

Pengujian dilakukan dengan membandingkan isi dan ukuran

pesan sebelum dan sesudah proses steganografi. Pengujian ini dapat dikatakan

berhasil jika pesan asli dan pesan hasil decode sama persis baik isi maupun

ukuran pesannya.

Page 46: Pemanfaatan Metode Modified Least Significant Bit dan

32

BAB V

HASIL DAN PEMBAHASAN

5.1 Hasil Analisis

5.1.1 Reshaping pada Citra

A. Dimensi Citra

1. Besar N lebih kecil dari M

Nilai N atau lebar citra adalah lebar dari citra secara

horizontal dengan nilai maksimal N-1 atau kurang dari tinggi citra.

Gambar 5.1 merupakan ciri citra dengan sisi vertikal lebih

dominan.

Gambar 5.1 Citra Tegak Lurus

Page 47: Pemanfaatan Metode Modified Least Significant Bit dan

33

2. Besar M lebih kecil dari N

Nilai M atau tinggi citra adalah tinggi dari citra secara

vertikal dengan nilai maksimal M-1 atau kurang dari lebar citra.

Gambar 5.2 merupakan ciri citra dengan sisi horizontal lebih

dominan.

Gambar 5.2 Citra Mendatar

B. Informasi Jumlah Tingkatan pada Citra

Citra yang diidentifikasi memiliki lebih dari 1 tingkat (level)

adalah citra dengan besar M dan N lebih dari 2. Dimulai dari citra 3x3.

Citra dengan level 2 dapat dilihat pada Gambar 5.3.

Page 48: Pemanfaatan Metode Modified Least Significant Bit dan

34

Gambar 5.3 Citra 3x3

Jumlah level pada citra didapatkan dengan cara perhitungan berikut.

1. Jika x<y, 𝑙𝑒𝑣𝑒𝑙 =π‘₯

2+ π‘ π‘–π‘ π‘Ž β„Žπ‘Žπ‘ π‘–π‘™ π‘π‘’π‘šπ‘π‘Žπ‘”π‘–π‘Žπ‘›, atau

2. Jika y<x, 𝑙𝑒𝑣𝑒𝑙 =𝑦

2+ π‘ π‘–π‘ π‘Ž β„Žπ‘Žπ‘ π‘–π‘™ π‘π‘’π‘šπ‘π‘Žπ‘”π‘–π‘Žπ‘›

3. Atau dengan cara membulatkan hasil pembagian ke atas.

Citra 3x3 adalah citra terkecil yang memiliki 2 level. Level

pertama [1, 2, 3, 6, 9, 8, 7, 4], level kedua [5]. Mencari banyak level

dengan perhitungan diatas, maka level citra 3x3 adalah sebagai berikut.

𝐿𝑒𝑣𝑒𝑙: 3

2+ π‘ π‘–π‘ π‘Ž β„Žπ‘Žπ‘ π‘–π‘™ π‘π‘’π‘šπ‘π‘Žπ‘”π‘–π‘Žπ‘›

1 + π‘ π‘–π‘ π‘Ž 1

𝐿𝑒𝑣𝑒𝑙: 2

Atau dengan membulatkan ke atas hasil pembagian 3/2, yaitu

𝐿𝑒𝑣𝑒𝑙: 3

2= 1,5 π‘‘π‘–π‘π‘’π‘™π‘Žπ‘‘π‘˜π‘Žπ‘› π‘˜π‘’ π‘Žπ‘‘π‘Žπ‘  π‘šπ‘’π‘›π‘—π‘Žπ‘‘π‘– 2

Page 49: Pemanfaatan Metode Modified Least Significant Bit dan

35

C. Proses Reshaping

Proses reshaping adalah proses untuk memetakan atau

menentukan lokasi pesan yang akan disisipkan. Pada citra 4x4 yang

digambarkan dengan koordinat dan empat (4) poin yang digunakan

sebagai sampel percobaan untuk melakukan proses reshaping,

pemetaan citra dapat dilihat pada Gambar 5.4.

Gambar 5.4 Koordinat pada Citra

Tanda merah merupakan poin-poin penentu dalam proses

reshaping. Pemilihan poin digunakan sebagai tanda atau checkpoint di

mana pesan mulai disisipkan. Hasil proses dan tahapan reshaping yang

dilakukan sebagai berikut.

1. Menentukan poin dan arah. Aturan poin A sebagai titik awal dan

arah searah jarum jam (Clockwise), maka ABCD. Jika berlawanan

maka ADCB.

Page 50: Pemanfaatan Metode Modified Least Significant Bit dan

36

2. Terdapat forward dan backward setiap poin. ABCD merupakan

poin dengan arah maju. Forward dan backward dapat dilihat pada

Tabel 5.1 ABCD Rule Point.

Tabel 5.1 ABCD Rule Point

Points A B C D

Forward [0,0], [1,0], [2,0] [3,0], [3,1], [3,2] [3,3], [2,3], [1,3] [0,3], [0,2], [0,1]

Backward [0,0], [0,1], [0,2] [3,0], [2,0], [1,0] [3,3], [3,2], [3,1] [0,3], [1,3], [2,3]

Forward: x+1

Backward: y+1

Forward: y+1

Backward: x-1

Forward: x-1

Backward: y-1

Forward: y-1

Backward: x+1

Aturan poin:

Poin A: Kenaikan nilai x pada forward dan kenaikan nilai y pada backward

Poin B: Kenaikan nilai y pada forward dan penurunan nilai x pada backward

Poin C: Penurunan nilai x pada forward dan penurunan nilai y pada backward

Poin D: Penurunan nilai y pada forward dan kenaikan nilai x pada backward

3. Menentukan batas minimal dan maksimal nilai x dan y

Batasan nilai x dan y ditentukan untuk menghentikan kenaikan

atau penurunan nilai, jika dimisalkan mendapatkan titik -1 atau titik

melewati dimensi citra. Untuk citra 4x4 (2 level) dimana nilai minimal

yaitu koordinat [0, 0] dan [1, 1]. Nilai maksimal yaitu [2, 2] dan [3, 3].

Nilai minimal dan maksimal citra dapat dilihat pada Gambar 5.5.

Page 51: Pemanfaatan Metode Modified Least Significant Bit dan

37

Gambar 5.5 Nilai Minimal dan Maksimal pada Citra 4x4

Mencari nilai minimal dan maksimal pada level sebagai berikut.

a. Tentukan level citra

b. Hitung nilai minimal x dan y:

π‘šπ‘–π‘›π‘‹ = 𝑙𝑒𝑣𝑒𝑙 βˆ’ 1, π‘šπ‘–π‘›π‘Œ = 𝑙𝑒𝑣𝑒𝑙 βˆ’ 1

c. Hitung nilai maksimal x dan y:

π‘šπ‘Žπ‘˜π‘ π‘‹ = π‘₯ βˆ’ (𝑙𝑒𝑣𝑒𝑙 βˆ’ 1)

π‘šπ‘Žπ‘˜π‘ π‘Œ = 𝑦 βˆ’ (𝑙𝑒𝑣𝑒𝑙 βˆ’ 1)

4. Meng-generate koordinat citra

Tahap ini merupakan tahap pemetaan citra dengan melakukan

iterasi pada checkpoint. Tahap generate sebagai berikut.

1. Tentukan nilai minimal dan maksimal nilai x dan y.

2. Checkpoint terhadap poin-poin yang sudah ditentukan.

3. Lakukan proses kenaikan dan penurunan nilai x atau y sesuai

aturan poin pada Tabel 5.1 ABCD Rule Point.

4. Checkpoint terakhir. Jika belum kembali ke tahap 2.

5. Kombinasikan empat poin sesuai arah (forward/backward).

Page 52: Pemanfaatan Metode Modified Least Significant Bit dan

38

6. Meng-generasi koordinat dihentikan.

Gambar 5.6 Alur Proses Generate Coordinate by Point

Hasil reshaping citra 4x4 pada level 1 dengan dua arah ABCD dan ADCB:

ABCDcw: [0,0], [1,0], [2,0], [3,0], [3,1], [3,2], [3,3], [2,3], [1,3], [0,3], [0,2], [0,1]

ADCBccw: [0,0], [0,1], [0,2], [0,3], [1,3], [2,3], [3,3], [3,2], [3,1], [3,0], [2,0], [1,0]

Page 53: Pemanfaatan Metode Modified Least Significant Bit dan

39

Hasil reshaping citra 4x4 pada level 2 (akhir) dengan dua arah ABCD dan ADCB:

ABCDcw: [1,1], [2,1], [2,2], [1,2]

ADCBccw: [1,1], [1,2], [2,2], [2,1]

5.1.2 Konversi MLSB menjadi 5 bit

Pesan teks sebelum disisipkan ke dalam citra akan dikonversikan

ke 5 bit menggunakan metode MLSB dengan tujuan pesan akan dikodekan

sehingga tidak mudah untuk dibaca secara langsung.

Metode MLSB dapat membantu proses ekstraksi pesan,

dikarenakan pesan yang dikonversi diberikan tanda pesan berupa 1Fh (Define

end of text). Berikut hasil identifikasi pesan β€œSTEGO with 05 bits”.

Hasil konversi: 11100100101010100100001100111011101110111011001000

10101010011110111110000000010111101110110001101000101011001011

111, n = 115.

Ciri-ciri pesan MLSB:

1. Bilangan biner, terdiri dari 1 dan 0.

2. Habis dibagi 5. 115 habis dibagi 5.

3. 5 bit awal merupakan kontrol simbol huruf, angka atau spasi putih.

4. 5 bit terakhir merupakan kontrol simbol 1Fh.

Page 54: Pemanfaatan Metode Modified Least Significant Bit dan

40

5.1.3 Penyisipan LSB pada citra

Pesan hasil konversi MLSB diambil 3 bit untuk disisipkan pada satu

piksel warna yang terdiri dari R, G dan B. Penyisipan dilakukan dengan cara

nilai R/G/B di AND-kan dengan kebalikan nilai 1 dalam biner, kemudian di

OR-kan dengan 1 bit MLSB.

π’…π’†π’„π’Šπ’Žπ’‚π’ & ~𝟏 | π’ƒπ’Šπ’•

Kasus dengan nilai desimal 5 disisipkan nilai bit 0 (1 bit MLSB).

Kasus dengan nilai desimal 43 disisipkan nilai 1 (1 bit MLSB).

Hasil penyisipan merupakan nilai citra baru atau citra hasil yang

telah tersisipkan pesan MLSB di dalamnya.

0000 0101 (5) nilai asli

1111 1110 (~1)

0000 0100 (4)

0000 0000 (0)

0000 0100 (4) hasil penyisipan

and

or

0010 1011 (43) nilai asli

1111 1110 (~1)

0010 1010 (42)

0000 0001 (1)

0010 1011 (43) hasil penyisipan

and

or

Page 55: Pemanfaatan Metode Modified Least Significant Bit dan

41

5.1.4 Ekstraksi pesan LSB pada citra

Proses ekstraksi atau pengambilan 3 bit pada nilai RGB dilakukan

dengan meng-AND nilai R, G atau B dengan nilai desimal 1.

π’…π’†π’„π’Šπ’Žπ’‚π’ & 𝟏

Kasus ekstraksi 1 bit pada nilai desimal 5 pada warna merah (R).

Kasus ekstraksi 1 bit pada nilai desimal 4 pada warna merah (R).

Hasil ekstraksi merupakan 1 bit data yang diambil dari salah satu

kanal warna (RGB). Hasil ekstraksi untuk satu piksel yaitu 3 bit (R, G dan B).

Hasil ekstraksi 3 bit disimpan dan dikumpulkan saat hasil ekstraksi

didapat mencapai 5 bit pada variabel MLSB untuk kemudian dilakukan

pengecekan 5 bit kontrol simbol. Proses ekstraksi selesai sampai ditemukannya

tanda 5 bit akhir (1Fh).

0000 0101 (5) nilai stego

0000 0001 (1)

0000 0001 (1) hasil ekstrasksi

and

0000 0100 (4) nilai stego

0000 0001 (1)

0000 0000 (0) hasil ekstrasksi

and

Page 56: Pemanfaatan Metode Modified Least Significant Bit dan

42

5.2 Pembahasan

5.2.1 Program yang Dihasilkan

Setelah diimplementasikan pada bahasa pemrograman Python 3.7

dihasilkan sebuah aplikasi steganografi dengan metode MLSB dan teknik

reshaping pola spiral, tampilan aplikasi dapat dilihat pada Gambar 5.7.

Gambar 5.7 Tampilan Program Dihasilkan

Gambar 5.8 Tampilan Informasi Penyisipan Pesan

Page 57: Pemanfaatan Metode Modified Least Significant Bit dan

43

5.2.2 Pengujian

Pengujian ini dilakukan untuk mengetahui sejauh mana metode MLSB

dan teknik modifikasi reshape dapat menjaga keutuhan pesan pada beberapa

jenis citra dan ketahanan pesan terhadap operasi dasar citra.

Sampel citra yang digunakan terdiri dari dua citra dengan objek yang

berbeda dan dimensi yang sama. Citra yang digunakan dapat dilihat pada

Gambar 5.9.

Gambar 5.9 Sampel Citra Uji

Sampel citra Lena digunakan karena merupakan citra uji standar yang

sudah lama digunakan di bidang pengolahan citra digital dan citra yang

memiliki tekstur, detail dan shading-nya yang baik. Sedangkan sampel citra

kedua ditentukan secara acak yang dapat ditemukan di internet.

Page 58: Pemanfaatan Metode Modified Least Significant Bit dan

44

Tabel 5.2 Poin-poin Pengujian

Citra (512x512)

Operasi Dasar Target

PSNR Kecerahan Ketajaman Rotasi Resize

Citra Lena -3 dan +5 0.05 dan 2 0-360 x2 >= 40dB

Citra Sunflower -3 dan +5 0.05 dan 2 0-360 x2 >= 40dB

5.2.3 Hasil Pengujian

5.2.3.1 Hasil Pengujian Berdasarkan Objek Citra yang Berbeda

Hasil pengujian pada dua citra yang berbeda objek

berhasil dilakukan dengan nilai PSNR lebih dari 40 dB (citra tanpa

derau), waktu penyisipan 0,169 - 0,173 detik dan waktu ekstraksi 0,169

- 0,175 detik. Hasil pengujian pada dua citra yang berbeda dapat dilihat

pada Tabel 5.3.

Tabel 5.3 Hasil Pengujian Berdasarkan Objek Citra yang Berbeda

Citra

(512x512)

Panjang

Pesan

Size File (Bytes) Running Time (s)

MSE

PSNR

(dB) Asli Stego Penyisipan Ekstraksi

Lena.bmp 96 786,486 786,486

0,169 0,171 0,00035 117,19

Sunflower.bmp 96 786,486 786,486

0,173 0,175 0,00035 117,10

Page 59: Pemanfaatan Metode Modified Least Significant Bit dan

45

Perbandingan pesan sebelum penyisipan dengan pesan hasil ekstraksi sangat

identik atau sama persis, maka proses enkripsi dan deskripsi pesan dikatakan

berhasil. Kecocokan pesan asli dan pesan hasil ekstraksi dapat dilihat pada Gambar

5.11.

Gambar 5.11 Hasil Perbandingan Pesan Asli Sebelum dan Sesudah Ekstraksi

Gambar 5.12 Perbandingan Citra Asli dengan Citra Hasil Penyisipan

Page 60: Pemanfaatan Metode Modified Least Significant Bit dan

46

5.2.3.2 Hasil Pengujian Berdasarkan Tipe File yang Berbeda

Hasil pengujian untuk tipe file yang berbeda, diantaranya bmp,

jpeg, png dan tiff. Pada citra tipe jpeg hasil pengujian gagal. Ini

dikarenakan citra jpeg merupakan citra lossy compression dimana

terdapat data yang hilang pada saat proses kompresi-dekompresi.

Spesifik kerusakan data ada pada nilai RGB yang telah disisipkan 1 bit

data akan terjadi perubahan pada nilai LSB saat proses kompresi dan

ini akan mempengaruhi pesan MLSB di dalamnya. Akibatnya pesan

asli dan pesan hasil ekstraksi sama sekali tidak cocok atau data korup.

Hasil pengujian tipe file yang berbeda dapat dilihat pada Tabel 5.4.

Tabel 5.4 Hasil Pengujian Berdasarkan Tipe File yang Berbeda

Citra

(512x512)

Panjan

g Pesan

Size File (Bytes)

Running Time

(s) MSE

PSNR

(dB)

Hasil

Penguji

an Asli Stego Sisip Ekstrak

Lena.bmp 96

786,486 786,486 0,432 0,438 0,00035 117,19 Success

Lena.jpeg 96

786,486 786,486 0,175 0,171 0,037 77,45 Failed

Lena.png 96

325,562 326,010 0,169 0,177 0,00035 117,19 Success

Lena.tiff 96

786,572 786,572 0,185 0,179 0,00035 117,19 Success

Sunflo...bmp 96

786,486 786,486 0,653 0,533 0,00035 117,19 Success

Sunflo....jpeg 96

42,226 42,175 0,188 0,219 0,835 54,88 Failed

Sunflo….png 96

398,624 398,671 0,219 0,196 0,00035 117,19 Success

Sunflo….tiff 96

786,572 786,572 0,222 0,203 0,00035 117,19 Success

Page 61: Pemanfaatan Metode Modified Least Significant Bit dan

47

Nilai PSNR yang didapatkan di atas 40 dB (citra tanpa derau)

dan hasil pengujian pada citra selain tipe jpeg berhasil dilakukan tanpa

adanya kerusakan (korup) pada pesan dengan waktu penyisipan 0,169 –

0,653 detik dan waktu ekstraksi 0,171 – 0,533 detik.

5.2.3.3 Hasil Pengujian Berdasarkan Panjang Pesan

Hasil pengujian untuk panjang pesan yang berbeda berhasil

dilakukan tanpa adanya kerusakan (korup) pada pesan dengan nilai

PSNR di atas 40 dB dengan waktu penyisipan 0,199 - 0,251 detik dan

waktu ekstraksi 0,174 - 0,688 detik. Hasil pengujian berdasarkan

panjang pesan dapat dilihat pada Tabel 5.5.

Tabel 5.5 Hasil Pengujian Berdasarkan Panjang Pesan

Citra

(512x512)

Panjang Pesan

Running Time (s)

MSE

PSNR

(dB) Penyisipan Ekstraksi

Lena.bmp

18 0,199 0,198 6,612 131,76

96 0,196 0,218 0,00035 117,19

233 0,223 0,174 0,00087 109,33

1000 0,245 0,688 0,00361 96,96

Sunflo...bmp

18 0,229 0,183 6,993 131,31

96 0,243 0,197 0,0035 117,19

233 0,248 0,674 0,00083 109,73

1000 0,251 0,753 0,03625 96,946

Page 62: Pemanfaatan Metode Modified Least Significant Bit dan

48

5.2.3.4 Hasil Pengujian Tingkat Ketahanan (Robustness)

Citra hasil akan dilakukan pengujian terhadap serangan yang

berkemungkinan merusak pesan di dalamnya. Pengujian tersebut akan

mempengaruhi nilai-nilai piksel pada citra hasil dengan tujuan nilai

PSNR di atas 40 dB (citra tanpa derau) dengan pesan hasil ekstraksi

dalam keadaan utuh tanpa adanya kerusakan sedikitpun. Citra hasil

yang akan diuji adalah citra dengan panjang pesan 1000.

Hasil pengujian terhadap serangan kecerahan dengan

menaikkan dan menurunkan kecerahan diantara -5 sampai +25 gagal.

Akibat menaikkan atau menurunkan kecerahan dapat merusak pesan di

dalamnya dengan nilai PSNR kurang dari 40 dB. Hasil pengujian

ketahanan citra terhadap kecerahan dapat dilihat pada Tabel 5.6.

Tabel 5.6 Hasil Pengujian Ketahanan Citra Terhadap Kecerahan

Citra

(512x512)

Kecerahan

Waktu Ekstraksi (s) MSE

PSNR

(dB) Nilai Hasil Uji

Lena Pesan 1000.bmp

-3 Failed 0,202 9,0 29,045

+5 Failed 0,196 25,0 20,172

Sunflower Pesan

1000.bmp

-3 Failed 0,195 8,676 29,369

+5 Failed 0,199 24,536 20,337

Page 63: Pemanfaatan Metode Modified Least Significant Bit dan

49

Hasil pengujian ketahanan citra terhadap serangan ketajaman

dengan nilai 2 (tajam) dan 0.05 (buram). Akibat serangan tersebut dapat

merusak pesan di dalamnya dengan nilai PSNR kurang dari 40 dB.

Hasil pengujian ketahanan citra terhadap ketajaman dapat dilihat pada

Tabel 5.7.

Tabel 5.7 Hasil Pengujian Ketahanan Citra Terhadap Ketajaman

Citra

(512x512)

Ketajaman

Waktu Ekstraksi (s) MSE

PSNR

(dB) Nilai (Faktor) Hasil Uji

Lena

Pesan 1000.bmp

2 Failed 0,2059 19,435 22,594

0.05 Failed 0,2149 16,821 23,881

Sunflower Pesan

1000.bmp

2 Failed 0,2139 14,825 25,099

0.05 Failed 0,1849 15,140 24,770

Hasil pengujian ketahanan citra terhadap serangan rotasi

dengan derajat 90, 180 dan 270 berhasil dilakukan tanpa adanya

kerusakan (korup) pada pesan dengan nilai PSNR tidak mencapai target

40 dB. Nilai PSNR berada di bawah 0 dikarenakan nilai piksel pada

citra tidak berubah tetapi hanya berpindah tempat akibat rotasi.

Sedangkan teknik pembacaan secara spiral memungkinkan untuk

menentukan sudut dimana pesan tersembunyi berada.

Sudut derajat selain 90, 180 dan 270 tidak dapat dijangkau dan

sulit untuk dilakukan oleh sistem dan juga dimensi citra berbeda dengan

dimensi citra hasil, maka perhitungan MSE dan PSNR tidak dapat

Page 64: Pemanfaatan Metode Modified Least Significant Bit dan

50

dilakukan. Hasil pengujian ketahanan citra terhadap rotasi dapat dilihat

pada Tabel 5.8.

Tabel 5.8 Hasil Pengujian Ketahanan Citra Terhadap Rotasi

Citra

(512x512)

Rotasi

Waktu Ekstraksi (s) MSE

PSNR

(dB) Nilai (derajat) Hasil Uji

Lena

90/180/270 Success 0,1829 4621 -24,54

Nilai lain (15) Failed 0,4008 - -

Sunflower

90/180/270 Success 0,1664 6630 -25,13

Nilai lain (45) Failed 0,5091 - -

Hasil pengujian ketahanan citra terhadap skala dengan

diperbesarnya skala pada piksel citra gagal dilakukan dengan pesan

hasil ekstraksi sama sekali tidak benar atau data korup dan juga dimensi

citra skala berbeda dengan dimensi citra hasil, maka perhitungan MSE

dan PSNR tidak dapat dilakukan. Hasil pengujian ketahanan citra

terhadap resize (skala) dapat dilihat pada Tabel 5.9.

Tabel 5.9 Hasil Pengujian Ketahanan Citra Terhadap Resize (Skala)

Citra

(512x512)

Resize

Waktu Ekstraksi (s) MSE

PSNR

(dB) Nilai (Faktor) Hasil Uji

Lena.bmp Diperbesar x2 Failed 0,8527 - -

Sunflower.bmp Diperbesar x2 Failed 0,7787 - -

Page 65: Pemanfaatan Metode Modified Least Significant Bit dan

51

Gambar 5.13 Ciri-ciri kerusakan pesan hasil ekstraksi pada pengujian yang

gagal

Gambar 5.13 menunjukan pesan hasil ekstraksi pada pengujian yang gagal akan

menghasilkan pesan yang acak dan tidak dapat ditemukannya pesan asli maupun

sebagian dari pesan asli. Citra sangat rentan terhadap perubahan yang terjadi pada

nilai warna citra.

Page 66: Pemanfaatan Metode Modified Least Significant Bit dan

52

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Setelah melakukan pengujian terhadap sistem penyisipan dan ekstraksi

dengan metode MLSB dan teknik reshaping pola spiral, penulis menyimpulkan

beberapa hal sebagai berikut.

1. Dapat ditentukannya titik awal penyisipan dan ekstraksi pesan. Poin dan

arah dapat menjadi kunci steganografi.

2. Jenis file citra yang dapat digunakan adalah jenis citra lossless compression

yaitu *.bmp, *.png dan *.tiff.

3. Citra dapat dirotasi dengan nilai derajat 90, 180, 270 tanpa merusak pesan

di dalamnya.

4. Citra hasil penyisipan tidak tahan terhadap perubahan nilai pada piksel yang

dapat mengakibatkan pesan di dalamnya rusak atau data korup.

6.2 Saran

1. Meningkatkan kinerja teknik steganografi dalam proses penyisipan dan

ekstraksi pesan yang lebih baik.

2. Menerapkan steganografi pada media video.

Page 67: Pemanfaatan Metode Modified Least Significant Bit dan

xiv

DAFTAR PUSTAKA

Andono, P.N., Sutojo, T., & Muljono. (2017). Pengolahan Citra Digital.

Yogyakarta:ANDI (Anggota IKAPI).

Darwis, D., & Kisworo. (2017). Teknik Steganografi Untuk Penyembunyian

Pesan Teks Menggunakan Algoritma End Of File. Jurnal Sistem Informasi

Dan Telematika, 8(3).

Farid, N., Nurhadiyono, B., & Rahayu, Y. (2016). Implementasi Metode

Steganografi Least Significant Bit Dengan Algoritma Hill Cipher Pada Citra

Bitmap. Jurnal Techno.COM, 15(2), 109–116.

Handoyo, A. E., Setiadi, D. R. I. M., Rachmawanto, E. H., Sari, C. A., & Susanto,

A. (2018). Teknik Penyembunyian dan Enkripsi Pesan pada Citra Digital

dengan Kombinasi Metode LSB dan RSA. Jurnal Teknologi Dan Sistem

Komputer, 6(1). https://doi.org/10.14710/jtsiskom.6.1.2018.37-43

Hidayat, E. Y., & Hastuti, K. (2013). Analisis Steganografi Metode Least

Significant Bit (LSB) dengan Penyisipan Sekuensial dan Acak Secara

Kuantitatif dan Visual. Techno.COM, 12(3).

Lubis, A. A., Wong, N. P., Arfiandi, I., Damanik, V. I., & Maulana, A. (2015).

Steganografi pada Citra dengan Metode MLSB dan Enkripsi Triple

Transposition Vigenere Cipher. JSM STMIK Mikroskil, 16(2).

Maharani, M. A. 2018. β€œAnalisa Dan Perancangan Sistem Informasi Dengan

Codeigniter dan Laravel”. Yogyakarta : CV LOKOMEDIA.

Muadzani, A., Nurhayati, O. D., & Windasari, I. P. (2016). Penyisipan Media

Teks dan Citra Menggunakan Teknik Steganografi pada Media Pembawa

Citra Digital. Jurnal Teknologi Dan Sistem Komputer, 4(3).

https://doi.org/10.14710/jtsiskom.4.3.2016.470-478

Mulyanto, Febriyana, R. V., & Arief, B. W. P. (2019). Penyisipan Pesan Teks

pada Citra Menggunakan Metode LSB dan 2-Wrap Length. Seminar

Nasional APTIKOM.

Niswati, Z. A. I. (2012). Steganografi Berbasis Least Significant Bit ( LSB ) untuk

Menyisipkan Gambar ke dalam Citra Gambar. 5(2), 181–191.

Page 68: Pemanfaatan Metode Modified Least Significant Bit dan

xv

Ratnasari, A. P., & Dwiyanto, F. A. (2020). Metode Steganografi Citra Digital.

Sains, Aplikasi, Komputasi Dan Teknologi Informasi, 2(2).

https://doi.org/10.30872/jsakti.v2i2.3300

Ricky, M., Setyaningsih, F. A., & Dipenogoro, M. (2018). Analisis Kompresi

Steganography Pada Citra Digital Dengan Menggunakan Metode Least

Significant Bit Berbasis Mobile Android. Jurnal Coding, 06(03).

Sipayung, W. (2014). Perancangan Citra Watermaking Pada Citra Digital

Menggunakan Metode Discrete Cosine Transform ( DCT ). Pelita

Informatika Budi Darma, 7(3).

Sitorus, Lamhot. 2015. β€œAlgoritma dan Pemrograman”. Yogyakarta: Andi Offset.

Sulistyanto, A. (2016). Digital Watermarking Pada Citra Menggunakan Metode

Modified Least Significant Bit (MLSB) Dengan Penyebaran Pesan Secara

Acak Menggunakan Metode Linear Congruential Generator (LCG): Studi

Laboratorium ICT Terpadu Universitas Budi Luhur.

Supriyanto, A., & Ardhianto, E. (2008). Penyandian File Gambar dengan Metode

Substitusi dan Transposisi. Jurnal Teknologi Informasi, 8(2).

Zaher, M. A. (2011). Modified Least Significant Bit (MLSB). Computer and

Information Science, 4(1).

Page 69: Pemanfaatan Metode Modified Least Significant Bit dan

FORMULIR

SURAT PERSETUJUAN TOPIK & JUDUL SKRIPSI

Ko& Formutir:FIT.PCT.BAAK.PSB.&{ lnstltusl : Sll,lll( PATCO{TECH

l(epada Y$.|(a.Prodi AEf,ed..kCggrLn,., , S'Kor'', lvl'k''*' 'dltemFt

Dengan hormat,Saya yang Bertanda tangan di bawah ini :

P.dembang ht.,S.s2.tsn bt r uel*'

SI INFORFATIKA

- Dlpebanyak l loll : Asll. dlserahlon ke QAAK dan copy diarslp Mahaslsra- Form lnt ralb dlkemballlan ke BAAI( pada saat pengumpulan berkas untuk pengafrm

u$an komprehemslf

sadi

No NPM Nama rPt( SemesterSesi

leLler* No.HP

1. oilt boo63 Ynrla llerscr7utrq ,,+o lx(g) Poq, obT> 297.4 65a5

2.

3.

Salah SrtuMeinalukan rtrlnel dsrnan too$t :

k<ar;rga*a,... fu aa....,Denran melamolrlen deckrlosi awal oenclitlan vans Erdirl dari :

L2.

3.4.

Objek knelitlanApa yang akan diteliti dari objekMetode Pengembangan/analisis yang digunakanTuiuan I hasil varn diharaokan dari oenelitian

Reknmandrci Nema Pmlrimhino' l'artm tav\ fa-.^'t, i" (.iaoa - M.ra

Mcnyetujui, IPembantu KettlaorA

4.--nt; I/i I

L,

Mengetahui,

Judul skripsi fdalam bahasa lndonesia dan lnggris]:

1. A*tliae-

Diusulkan judul nomor : ..,..,......,,,........

PemohorLMahasirwa 1,

,$&.o,n,, l.lQm

Menyetujul,Pembimb

Page 70: Pemanfaatan Metode Modified Least Significant Bit dan

Institusi

Tahun Akademik

NO NPM Nama Prodi Semester123

Judul Laporan SKRIPSI :

PertemuanKe -

Tanggal Konsultasi Batas Waktu Perbaikan Paraf Pembimbing

Palembang,                                                                  Dosen  Pembimbing

…………………………………………….

Materi yang Dibahas / Catatan Perbaikan

FORMULIR

KONSULTASI LAPORAN SKRIPSI STMIK

Kode Formulir : STMIK PALCOMTECH

FM-PCT-BAAK-PSB-045 :

011160053 Yoda Hersaputra S1 Informatika 9

2021

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Guntoro Barovih, S.Kom., M.Kom.

07-12-2020

09-12-2020

14-12-2020

18-12-2020

23-12-2020

27-12-2020

02-01-2021

09-01-2021

11-01-2021

12-01-2021

13-01-2021

16-01-2021

17-01-2021

17-01-2021

20-01-2021

Metode Modified Least Significant Bit (MLSB)

Ciri - ciri pesan MLSB

Penyisipan pesan MLSB pada nilai RGB

Teknik Reshaping Citra

Penulisan Bab 4

Proses Reshaping Citra

Pemetaan koordinat citra pada proses reshape

--- // ---

--- // ---

Penulisan Bab 5

Proses penyisipan dan ekstraksi pesan MLSB

--- // ---

Hasil pengujian metode MLSB dan Teknik Reshaping

--- // ---

--- // ---

Pemanfaatan Metode Modified Least Significant Bit dan Teknik Modification Reshape Transposisi untuk Steganografi

Page 71: Pemanfaatan Metode Modified Least Significant Bit dan

FORMULIR PENGAJUAN UJIAN KOMPREHENSIF SKRIPSI STMIK

Kode Formulir FM-PCT-BAAK-PSB-047

Institusi : STMIK PALCOMTECH

Saya yang bertanda tangan di bawah ini :

Nama :

NPM :

Program Studi :

Semester :

IPK :

No. HP :

Judul Skripsi :

Dosen Pembimbing :

Dengan ini bersedia mengikuti Ujian Skripsi dan memenuhi semua persyaratan yang telah ditentukan oleh STMIK

PALCOMTECH.

Demikianlah surat pernyataan kesediaan mengikuti Ujian Skripsi ini saya ajukan. Atas perhatiannya saya ucapkan

terima kasih.

Palembang, ……………..

Menyetujui Mengetahui Hormat Saya,

Ka Prodi S1 SI/IF Pembimbing

( ) ( ) ( )

……………………………………………………………………………………………………………

Diceklist oleh BAAK STMIK PALCOMTECH

KELENGKAPAN UJIAN SKRIPSI

Lulus OPDIK/PKKMB (dicek BAAK) β–‘ Memo dari Keuangan (diproses BAAK) β–‘

Fotokopi Sertifikat TOEFL β–‘ Syarat Wisuda

Seminar/Pelatihan/Workshop min 5 buah β–‘

Berkas Laporan Skripsi (2 rangkap) β–‘ Pasfoto warna 3x4 (3 lembar) dan 4x6 (3

lembar) β–‘

Form Konsultasi bimbingan (asli) β–‘ Ijazah SMA/SMK yang telah dilegalisir CAP

BASAH β–‘

Surat Pernyataan Ujian Skripsi (asli) β–‘ Buku sumbangan 2 buah, tahun terbit

minimal 2 tahun sebelum wisuda β–‘

Form topik dan judul Skripsi (Fotokopi) β–‘ Fotokopi KTP dan KK β–‘

Surat balasan riset (asli) β–‘ Form wisudawan β–‘

Form Revisi Ujian Proposal (Fotokopi) β–‘ Form Kuesioner β–‘

Palembang, ……………………………

Mengetahui, Dicek Oleh,

Ka. BAAK, Staff BAAK,

( ) ( )

Yoda Hersaputra

011160053

S1 Informatika

9

3.70

082283746505

Pemanfaatan Metode Modified Least Significant Bit dan Teknik Modification Reshape Transposisi untuk Steganografi

Guntoro Barovih, S.Kom., M.Kom.

27 Januari 2021

Alfred Tenggono,S.Kom., M.Kom.

Yoda HersaputraGuntoro Barovih, S.Kom., M.Kom.

Page 72: Pemanfaatan Metode Modified Least Significant Bit dan

FORMULIR REVISI UJIAN SKRIPSI STMIK

Kode Formulir FM-PCT-BAAK-PSB-055

Institusi : STMIK PALCOMTECH

Revisi Ujian Skripsi

Mahasiswa Sekolah Tinggi Manajemen Informatika dan Komputer PalComTech

Program Studi : S1 Informatika Topik Skripsi : Keamanan Data Ujian ke- : I (Satu)

Tanggal Pelaksanaan : 16 Februari 2021 Judul Skripsi : Pemanfaatan Metode Modified Least Significant Bit dan Teknik Modification Reshape Transposisi untuk Steganografi

No NPM Nama Semester

1 011160053 Yoda Hersaputra IX (Sembilan)

Revisi diselesaikan paling lambat tanggal ………………………

No Revisi Nama Penguji Tanda Tangan

1 1. Penulisan menggunakan ejaan Bahasa Indonesia yang baik dan benar

2. Perbaikan judul sesuai dengan apa yang akan diteliti/dikerjakan

3. Konsistensi penulisan

Benedictus

Effendi., S.T., M.T.

2

1. Pertajam ruang lingkup

2. Perbaikan judul sesuai dengan apa yang akan diteliti/dikerjakan

3. Pengujian ditambahkan gambar hasil pengujian dan bukti perubahan bit data (hex)

4. Perbaikan penulisan, margin, font dll

Surahmat, S.Kom.,

M.Kom.

3 Guntoro Barovih,

S.Kom., M.Kom.

Palembang, 16 Februari 2021

Ketua Program Studi,

Alfred Tenggono, S.Kom., M.Kom.

Page 73: Pemanfaatan Metode Modified Least Significant Bit dan

List File:

1. CONST.py 2. Main.py 3. MLSB.py 4. ReadWrite5Bit.py 5. Reshape.py

CONST.py

Main.py

def constant(f):

def fset(self, value):

raise TypeError

def fget(self):

return f()

return property(fget, fset)

class _Const(object):

#MLSB CONSTANT

@constant

def CSSML(): return "11011"

@constant

def CSCAP(): return "11100"

@constant

def CSSPC(): return "11101"

@constant

def CSNUM(): return "11110"

@constant

def CSEOF(): return "11111"

from tkinter import filedialog

from tkinter import * #Form GUI

class main:

##IMPORT FOR MAIN CLASS

from PIL import Image, ImageTk #Lib Image

import reshape as imgShape, mlsb as dataEncoder, readWrite5Bit as

rw, testing as test, subprocess as sp, time

def __init__(self):

print("*"*10, "Skripsi Yoda Hersaputra", "*"*10)

#Initialize

self.img = self.Image.new('RGB', (4,4)) #Initialize Blank Image

self.reshapeImage = self.imgShape.reshape()

self.mlsb = self.dataEncoder.mlsb()

self.rw5bit = self.rw.readWrite5Bit()

self.testing = self.test.MSE_PSNR()

Page 74: Pemanfaatan Metode Modified Least Significant Bit dan

import os

self.appEditor = "%s\%s" % (os.getenv('LOCALAPPDATA'), "HHD

Software\Hex Editor Neo\HexFrame.exe") #Default Hex Editor

self.appEditor = "notepad.exe" if not (os.path.exists

(self.appEditor)) else self.appEditor

##TYPE OF FILE

self.supportTypes1 = (("BMP files","*.bmp"), ("JPEG

files","*.jpeg"), ("PNG files","*.png"), ("TIFF files","*.tiff"), ("All

files","*.*"))

self.supportTypes1Out = (("BMP files","*.bmp"), ("PNG

files","*.png"), ("TIFF files","*.tiff"), ("All files","*.*"))

self.supportTypes2 = (("Text Files","*.txt"), ("All

files","*.*"))

...............................................

##INIT VARIABLE

self.pathLabel1 = StringVar(None, "D:/Citra Asli.jpg");

self.path1 = StringVar(None, "")

self.pathLabel2 = StringVar(None, "D:/Pesan saya.txt");

self.path2 = StringVar(None, "")

self.pathLabel3 = StringVar(None, "D:/Citra Hasil.jpg");

self.path3 = StringVar(None, "")

..................................................

#TRIGGER BY BUTTON PROCESS

def processImage(self):

pointSelected = self.checkPoint.get()

directSelected = self.direction.get()

path=self.path1.get() if(self.varEnDe.get()==0) \

else self.path3.get()

assert path, "Citra belum ditentukan!"

if path:

readImg = self.Image.open(path).convert("RGB")

self.reshapeImage.setWH(readImg.width, readImg.height)

self.reshapeImage.setLevel(self.reshapeImage.getLevel

(readImg.width, readImg.height))

self.reshapeImage.setPoint(pointSelected, directSelected)

self.reshapeImage.showReshape(self.info1.get())

########## START STEGO ##########

timeStart = self.time.time() #start_time

self.reshapeImage.start()

reshape = self.reshapeImage.getFinalReshape()

if(self.varEnDe.get() == 0): #PROSES SISIP

file = open(self.path2.get(), "r")

self.mlsb.showInfo(self.info4.get())

encoded = self.mlsb.encode(file.read()); file.close()

assert self.capacity >= len(encoded), "Citra Penampung

terlalu kecil" #cek daya tampung citra

self.rw5bit.showInfo(self.info5.get())

self.rw5bit.write5bit(reshape, readImg.load(), encoded)

timeEnd = self.time.time() #runtime

print("="*25)

print("Waktu penyisipan: {}".format(timeEnd -

timeStart))

print("="*25)

########## END STEGO ##########

filePath = filedialog.asksaveasfilename(initialdir="/",

title="Save As", defaultextension=".png",

Page 75: Pemanfaatan Metode Modified Least Significant Bit dan

MLSB.py

print("="*25)

print("Waktu penyisipan: {}".format(timeEnd-timeStart))

print("="*25)

########## END STEGO ##########

filePath = filedialog.asksaveasfilename(initialdir="/",

title="Save As", defaultextension=".png",

initialfile="Citra Hasil",

filetypes=self.supportTypes1Out)

if(filePath):

readImg.save(filePath)

self.path3.set(filePath);

self.pathLabel3.set(filePath)

self.showCitraAsli(); self.showCitraHasil()

self.testing.images(self.path1.get(),

self.path3.get())

self.testing.showInfo(self.info6.get())

self.testing.run()

else: assert False, self.nofilePath

else: #PROSES EKSTRAKSI

self.rw5bit.showInfo(self.info5.get())

encodedData = self.rw5bit.read5bit(reshape,

readImg.load())

self.mlsb.showInfo(self.info4.get())

text = self.mlsb.decode(encodedData[1])

timeEnd = self.time.time() #runtime

print("="*25)

print("Waktu ekstraksi: {}".format(timeEnd-timeStart))

print("="*25)

########## END STEGO ##########

if(encodedData[0]):

filePath =

filedialog.asksaveasfilename(initialdir="/",

title="Save Messages", defaultextension=".png",

initialfile="Pesan Tersembunyi",

filetypes=self.supportTypes2)

...............................................

class mlsb:

def __init__(self, msg=""):

self.msg = msg

self.showProcess = False

import CONST

self._const = CONST._Const()

self.capVal = 64

self.smallVal = 96

self.numVal = 48

def set_msg(self, msg): self.msg = msg

def encode(self, msg):

assert len(msg) != 0, "No Messages"

Page 76: Pemanfaatan Metode Modified Least Significant Bit dan

if(self.showProcess):

print("#"*20, "MLSB CONVERTION", "#"*20)

print("="*30)

print("Jumlah karakter pesan asli:

{}".format(len(msg)))

print("Jumlah bit yang dikonversi:

{}bit".format(len(msg)*8))

cs, encoded = "", ""

for i in msg:

temp = ""

if(ord(i) >= self.smallVal and ord(i) <= 122):

#range small letter

if(cs != self._const.CSSML):

temp += self._const.CSSML;

cs = self._const.CSSML;

temp += bin(ord(i) ^

self.smallVal)[2:].zfill(5)

elif(ord(i) >= self.capVal and ord(i) <= 90):

#range capital letter

if(cs != self._const.CSCAP):

temp += self._const.CSCAP;

cs = self._const.CSCAP;

temp += bin(ord(i) ^

self.capVal)[2:].zfill(5)

elif(ord(i) == 32): #is Space

if(cs != self._const.CSSPC):

temp += self._const.CSSPC

cs = ""

elif(ord(i) >= self.numVal and ord(i) <= 57):

#range number letter

if(cs != self._const.CSNUM):

temp += self._const.CSNUM

cs = self._const.CSNUM

temp += bin(ord(i) ^

self.numVal)[2:].zfill(5)

encoded += temp

...............................................

encoded += self._const.CSEOF

print("="*30)

print("#"*18, "END MLSB CONVERTION", "#"*18,

"\n")

return(encoded)

def decode(self, encoded_msg):

assert len(encoded_msg) < 5 or len(encoded_msg)%5 == 0,

"Bukan ciri dari pesan MLSB"

...............................................

cs, decoded = "", ""

for i in range(0, len(encoded_msg), 5):

cs5bit = encoded_msg[i:i+5]

if(cs5bit == self._const.CSSML): cs =

self._const.CSSML

elif(cs5bit == self._const.CSCAP): cs =

self._const.CSCAP

Page 77: Pemanfaatan Metode Modified Least Significant Bit dan

elif(cs5bit == self._const.CSSPC): cs =

self._const.CSSPC

elif(cs5bit == self._const.CSNUM): cs =

self._const.CSNUM

elif(cs5bit == self._const.CSEOF): cs =

self._const.CSEOF

temp, lowGroup="", 0

if(cs == self._const.CSSML and cs5bit !=

self._const.CSSML):

temp += chr(int(cs5bit.zfill(8), 2) ^

self.smallVal)

elif(cs == self._const.CSCAP and cs5bit !=

self._const.CSCAP):

temp += chr(int(cs5bit.zfill(8), 2) ^

self.capVal)

elif(cs == self._const.CSSPC): temp += " ";

elif(cs == self._const.CSNUM and cs5bit !=

self._const.CSNUM):

temp += chr(int(cs5bit.zfill(8), 2) ^

self.numVal)

if(self.showProcess):

if(cs == self._const.CSSML and

temp==""): print(cs5bit, "is define

Small Letter")

elif(cs == self._const.CSCAP and

temp==""): print(cs5bit, "is define

Capital Letter")

elif(cs == self._const.CSSPC):

print(cs5bit, "is define Space")

elif(cs == self._const.CSNUM and

temp==""): print(cs5bit, "is define

Number")

elif(cs == self._const.CSEOF):

print(cs5bit, "is End of File")

else: print("- {} xor {}. Result in

ASCII Table: {}".format(cs5bit,

bin(lowGroup)[2:], temp))

decoded+=temp

...............................................

return(decoded)

Page 78: Pemanfaatan Metode Modified Least Significant Bit dan

ReadWrite5Bit.py

import CONST

class readWrite5Bit:

def __init__(self):

import CONST

self._const = CONST._Const()

self.showProcess = False

#SECTION WRING 5BIT DATA TO IMAGE

def __setBit(self, decimal, bit): return (decimal & ~1) | bit

def write5bit(self, reshape, img_load, mlsb):

lastCoo = []

for i in reshape:

x,y = i[0], i[1]

temp = mlsb[:3] if len(mlsb) >= 3 else mlsb #GET 1/2/3 BIT

FIRST

(r, g, b) = img_load[x, y] #GET RGB Value

newR = r if len(temp) < 1 else self.__setBit(r,

int(temp[0], 2)) #PUT 1BIT (RED COLOR)

newG = g if len(temp) < 2 else self.__setBit(g,

int(temp[1], 2)) #PUT 1BIT (GREEN COLOR)

newB = b if len(temp) < 3 else self.__setBit(b,

int(temp[2], 2)) #PUT 1BIT (BLUE COLOR)

newR, newG, newB = 255, 255, 255 #for test, remove comment

img_load[x,y] = (newR, newG, newB) #STORE BACK

if(self.showProcess): print("write {}b to {}: {} LSB:

{})".format(temp + '_'*(3-len(temp)),

[x,y],(r,g,b),(newR,newG,newB)))

if(len(mlsb) <= 3): mlsb = mlsb[len(mlsb):]

else: mlsb = mlsb[3:]

if(len(mlsb)==0): break;

return lastCoo

#READING 5BIT DATA FROM IMAGE

def __getBit(self, val): return (val & 1)

def read5bit(self, reshape, img_load):

self.tempCS, self.dataBit, self.cs_eof = "", "",

self._const.CSEOF

status_eof, readFinish = False, "EOF Found!\nReading 5bit

finish."

coor1 = []

for i in reshape:

x,y = i[0], i[1]

(bit1, bit2, bit3) = img_load[x,y] #get rgb value

infoBits = str(self.__getBit(bit1))+\

str(self.__getBit(bit2))+\

str(self.__getBit(bit3))

Page 79: Pemanfaatan Metode Modified Least Significant Bit dan

if(len(self.tempCS) == 5):

self.dataBit += self.tempCS

if(self.tempCS == self.cs_eof): readFinish=True;

infoBits = None

else: self.tempCS=""

self.tempCS += str(self.__getBit(bit1))

if(len(self.tempCS) == 5):

self.dataBit += self.tempCS

if(self.tempCS == self.cs_eof):

readFinish=True

infoBits = str(self.__getBit(bit1))+"XX"

else: self.tempCS=""

self.tempCS += str(self.__getBit(bit2))

if(len(self.tempCS) == 5):

self.dataBit += self.tempCS

if(self.tempCS == self.cs_eof):

readFinish=True

infoBits = str(self.__getBit(bit1))+\

str(self.__getBit(bit2))+\

"X"

else: self.tempCS=""

self.tempCS += str(self.__getBit(bit3))

if(self.showProcess and infoBits is not None):

print("read from {}: {} -> {}b".format([x, y],

(bit1,bit2,bit3), infoBits));

if(readFinish == True): break;

if not(readFinish): print("EOF not found. !MLSB")

return [readFinish, self.dataBit]

Page 80: Pemanfaatan Metode Modified Least Significant Bit dan

Reshape.py

class reshape:

def __init__(self, width=0, height=0):

#initialization

self.point = "A"

self.direction = "forward" #= Clock Wise: kombinasi dari 4

point forward A,B,C and D)

self.width = width

self.height = height

self.max_level = self.getLevel(self.width, self.height)

self.showLevel = False #menampilkan level

self.showXYPoint = False #menampilkan koordinat di setiap point

self.points = ["A", "B", "C", "D"] #default is CW from point

'A', default rule 'A', 'B', 'C', 'D'

self.rule = self.__setRule(self.points, self.point,

self.direction) #create_new_rule

...............................................

def getLevel(self, x, y):

if(x > y): level = int(y/2)+(y%2)

elif(y > x): level = int(x/2)+(x%2)

else: level = int(x/2)+(x%2) #x==y

return level

def MinMax_XY(self, width, height, level):

return [level-1, level-1, width-level, height-level]

#rules for point A/B/C/D

def pointA(self, minX, minY, maksX, maksY, level,

direction="forward"):

self.cx, self.cy = minX, minY #representasi (0,0)

self.pA = [[self.cx, self.cy]]

if(direction=="backward"):

for i in range(((maksY-1)-level)): self.cy+=1;

self.pA.append([self.cx, self.cy])

elif(direction=="forward"):

for i in range((maksX-1)-level): self.cx+=1;

self.pA.append([self.cx, self.cy])

return self.pA

def pointB(self, minX, minY, maksX, maksY, level,

direction="forward"):

self.cx, self.cy = maksX, minY #representasi (1,0)

self.pB = [[self.cx, self.cy]]

if(direction=="backward"):

for i in range(((maksX-1)-level)): self.cx-=1;

self.pB.append([self.cx, self.cy])

elif(direction=="forward"):

for i in range((maksY-1)-level): self.cy+=1;

self.pB.append([self.cx, self.cy])

return self.pB

def pointC(self, minX, minY, maksX, maksY, level,

direction="forward"):

self.cx, self.cy = maksX, maksY #representasi (1,1)

self.pC = [[self.cx, self.cy]]

if(direction=="backward"):

for i in range((maksY-1)-level): self.cy-=1;

self.pC.append([self.cx, self.cy])

Page 81: Pemanfaatan Metode Modified Least Significant Bit dan

elif(direction=="forward"):

for i in range(((maksX-1)-level)): self.cx-=1;

self.pC.append([self.cx, self.cy])

return self.pC

def pointD(self, minX, minY, maksX, maksY, level,

direction="forward"):

self.cx, self.cy = minX, maksY #representasi (0,1)

self.pD = [[self.cx, self.cy]]

if(direction=="backward"):

for i in range((maksX-1)-level): self.cx+=1;

self.pD.append([self.cx, self.cy])

elif(direction=="forward"):

for i in range(((maksY-1)-level)): self.cy-=1;

self.pD.append([self.cx, self.cy])

return self.pD

...............................................

def setPoint(self, point, direction="cw"):

self.point = point; self.direction = "forward" if

direction=="cw" else "backward"

self.rule = self.__setRule(self.points, self.point,

self.direction)

def start(self):

...............................................

self.final_reshape = []

for i in range(self.max_level):

#if(i%2==1): #this condition if you want to insert even or

odd level only

self.level = i+1

self.minX = self.MinMax_XY(self.width, self.height,

self.level)[0] #nilai terkecil x pada level i

self.minY = self.MinMax_XY(self.width, self.height,

self.level)[1] #nilai terkecil y pada level i

self.maksX = self.MinMax_XY(self.width, self.height,

self.level)[2] #nilai terbesar x pada level i

self.maksY = self.MinMax_XY(self.width, self.height,

self.level)[3] #nilai terbesar y pada level i

self.temp, self.label = [], ""

self.bool1 = self.maksX > self.minX #ciri citra nx1

self.bool2 = self.maksY > self.minY #ciri citra 1xn

if(self.bool1 and self.bool2): self.__runRule_xy()

elif(self.bool1): self.__runRule_x()

elif(self.bool2): self.__runRule_y()

else: self.__run_rule_1x1()

def getFinalReshape(self): return self.final_reshape