Penyembunyian Citra Dalam Citra Dengan Algoritma Berbasis Blok.

(1)

Universitas Kristen Maranatha

PENYEMBUNYIAN CITRA DALAM CITRA DENGAN

ALGORITMA BERBASIS BLOK

Anisa Fardhani Prasetyaningtyas (0722123) Jurusan Teknik Elektro Universitas Kristen Maranatha

email: af.prasetyaningtyas@gmail.com

ABSTRAK

Steganografi merupakan teknik menyembunyikan pesan kedalam suatu media sehingga pihak ketiga tidak dapat menyadari dan mengetahui keberadaan pesan tersebut. Pada Tugas Akhir ini, pesan rahasia dan media yang akan disisipkan pesan adalah citra. Citra digital yang digunakan adalah citra grayscale dengan format citra bitmap.

Algoritma berbasis blok yang digunakan pada Tugas Akhir ini adalah algoritma penyembunyian citra dalam citra yang proses penyembunyian pesannya dilakukan satu per satu berdasarkan nilai dasar masing-masing blok dari cover image. Algoritma berbasis blok ini adalah metode penyembunyian yang sederhana karena tidak dibutuhkan preprocessing seperti transformasi atau perbaikan citra. Perbandingan kualitas citra berdasarkan penilaian objektif dan subjektif. Pada cara objektif, nilai PSNR untuk semua citra diatas 40 dB dan pada cara subjektif dengan nilai rata-rata MOS ≥ 3.9375 semua citra dianggap mirip dengan citra asli.

Kata kunci : Steganografi, penyembunyian pesan, algoritma berbasis blok.


(2)

Universitas Kristen Maranatha

IMAGE HIDING BY BLOCK-BASED ALGORITHM

Anisa Fardhani Prasetyaningtyas (0722123)

Department of Electrical Engineering Maranatha Christian University email: af.prasetyaningtyas@gmail.com

ABSTRACT

Steganography is a technique of hiding message into a digital media in such a way that others cannot suspect and recognize the existence of the message. In this Final Project, the media and secret message to be embedded are image. The digital image is a grayscale image with bitmap format.

Block-based algorithm is a hiding image algorithm which is in the hiding process the method classifies each block of the cover image according to the

base-value (BV) that represents the block’s variation.

Block-based algorithm is a simple hiding method. There is no need to preprocess such image transformation or image enhancement either the cover or secret image. The comparison of stego image quality is based on objective and subjective assessments. On the objective measurement, the Peak Signal-to-Noise Ratio (PSNR) values for all of the images are greater than 40 dB. On the other hand, with average MOS value greater than 3.9375 all of the images are considered similar with the original image, for subjective measurement.

Keywords : Steganography, image hiding, block-based algorithm.


(3)

Universitas Kristen Maranatha

DAFTAR ISI

Halaman

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... viii

DAFTAR SINGKATAN DAN LAMBANG ... ix

DAFTAR LAMPIRAN ... x

BAB I. PENDAHULUAN ... 1

I.1 Latar Belakang ... 1

I.2 Rumusan Masalah ... 2

I.3 Tujuan ... 2

I.4 Batasan Masalah ... 3

I.5 Metodologi ... 3

I.6 Sistematika Pembahasan ... 4

BAB II. LANDASAN TEORI ... 6

II.1 Citra Digital ... 6

II.1.1 Konsep dan Representasi Citra Digital ... 6

II.1.2 Jenis Citra Digital ... 7

II.2 Citra BITMAP ... 10

II.3 Steganografi ... 10

II.3.1 Sejarah Steganografi ... 10

II.3.2 Terminologi Steganografi ... 11

II.3.3 Kriteria Steganografi ... 12 v


(4)

Universitas Kristen Maranatha

II.4 Algoritma Berbasis Blok ... 13

II.4.1 Fungsi Penyisipan ... 14

II.4.2 Prosedur Pengaturan Nilai Dasar ... 16

II.4.3 Panjang Bit ... 16

II.4.4 Ekstraksi Bit ... 17

II.4.5 Threshold ... 18

II.5 Perbandingan Kualitas Citra ... 18

II.5.1 Mean Square Error (MSE) dan Peak Signal-to-Noise Ratio (PSNR) ... 18

II.5.2 Mean Opinion Score (MOS) ... 19

BAB III. PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK 21 III.1 Proses Penyisipan Pesan Rahasia ... 21

III.2 Proses Ekstraksi Pesan ... 25

III.3 Perancangan Perangkat Lunak ... 27

III.3.1 Deskripsi Umum Perangkat Lunak ... 28

III.3.2 Perancangan Antarmuka ... 28

III.4 Implementasi Perangkat Lunak ... 30

III.4.1 Implementasi Fungsi ... 30

III.4.2 Implementasi Antarmuka ... 30

BAB IV. PENGUJIAN DAN ANALISIS HASIL UJI ... 32

IV.1 Tujuan Pengujian ... 32

IV.2 Data Pengujian ... 32

IV.3 Kasus Pengujian ... 32

IV.4 Hasil Pengujian dan Evaluasi ... 33

BAB V. KESIMPULAN DAN SARAN ... 42

V.1 Kesimpulan ... 42

V.2 Saran ... 43

DAFTAR PUSTAKA ... 44 LAMPIRAN ... A


(5)

Universitas Kristen Maranatha

DAFTAR GAMBAR

Halaman

Gambar 2.1 Representasi citra digital dalam matriks dan gambar ... 7

Gambar 2.2 Citra biner ... 8

Gambar 2.3 Citra grayscale ... 9

Gambar 2.4 Citra truecolor ... 9

Gambar 2.5 Skema penyisipan pesan ... 11

Gambar 2.6 Skema ekstraksi pesan ... 12

Gambar 2.7 Diagram blok proses penyisipan pesan ... 14

Gambar 2.8 Diagram blok proses ekstraksi pesan ... 17

Gambar 3.1 Diagram alir proses penyisipan pesan ... 21

Gambar 3.2 Nilai intensitas citra cover image ... 22

Gambar 3.3 Sebuah blok dari citra cover image ... 22

Gambar 3.4 Nilai piksel dari blok cover image ... 24

Gambar 3.5 Koefisien dari bit stream secret image ... 24

Gambar 3.6 Nilai piksel blok stego ... 24

Gambar 3.7 Diagram alir proses ekstraksi pesan ... 25

Gambar 3.8 Nilai piksel dari blok stego ... 26

Gambar 3.9 Koefisien dari blok stego ... 26

Gambar 3.10 Gambaran umum sistem ... 27

Gambar 3.11 Rancangan perangkat lunak ... 28

Gambar 3.12 Tampilan perangkat lunak ... 30


(6)

Universitas Kristen Maranatha

DAFTAR TABEL

Halaman

Tabel 2.1 Kategori penilaian Mean Opinion Score ... 19

Tabel 3.1 Atribut MATLAB pada perancangan perangkat lunak ... 29

Tabel 4.1 Citra pengujian kebenaran proses penyisipan ... 34

Tabel 4.2 Citra pengujian kebenaran proses ekstraksi ... 35

Tabel 4.3 Nilai pengujian kualitas citra Lena.bmp setelah penyisipan pesan untuk nilai threshold yang berbeda-beda ... 36

Tabel 4.4 Nilai pengujian kualitas citra Peppers.bmp setelah penyisipan pesan untuk nilai threshold yang berbeda-beda ... 37

Tabel 4.5 Nilai pengujian kualitas citra Jet.bmp setelah penyisipan pesan untuk nilai threshold yang berbeda-beda ... 38

Tabel 4.6 Nilai pengujian kualitas citra Boat.bmp setelah penyisipan pesan untuk nilai threshold yang berbeda-beda ... 39

Tabel 4.7 Nilai pengujian kualitas citra hasil ekstraksi ... 41


(7)

Universitas Kristen Maranatha

DAFTAR SINGKATAN DAN LAMBANG

SINGKATAN Nama Pemakaian pertama

kali pada halaman

MSE Mean Square Error 18

PSNR Peak Signal-to-Noise Ratio 18

dB Desibel 18

Log Logaritma 18

MOS Mean Opinion Score 19

PC Personal Computer 27

LAMBANG

Nilai piksel ke-j pada blok ke-k 14

Piksel minimum pada blok ke-k 14

Nilai dasar blok ke-k pada cover image 14

Koefisien bit biner 15

Koefisien bilangan berbasis- 15

Nilai piksel pada blok stego 15

Nilai dasar blok ke-k pada stego image 15

Bilangan bulat 16

Nilai threshold 16


(8)

Universitas Kristen Maranatha

DAFTAR LAMPIRAN

Halaman

LAMPIRAN A : CITRA ……… A-1

A.1 Cover image yang digunakan …..…….……… A-1 A.2 Secret image yang digunakan ………….……….………. A-2

A.3 Citra pengujian kebenaran proses penyisipan ………….………. A-3 A.4 Cover image ‘Lena512.bmp’ sebelum dan setelah disisipkan citra ‘Lena256.bmp’

……….……… A-4

A.5 Cover image ‘Lena512.bmp’ sebelum dan setelah disisipkan citra

‘Baboon256.bmp’

……….……… A-6

A.6 Cover image ‘Lena512.bmp’ sebelum dan setelah disisipkan citra ‘Bird256.bmp’

……….……… A-8

A.7 Cover image ‘Peppers512.bmp’ sebelum dan setelah disisipkan citra

‘Lena256.bmp’

……….……… A-10

A.8 Cover image ‘Peppers512.bmp’ sebelum dan setelah disisipkan citra

‘Baboon256.bmp’ .………..……… A-12 A.9 Cover image ‘Peppers512.bmp’ sebelum dan setelah disisipkan citra

‘Bird256.bmp’

………..……… A-14

A.10 Cover image ‘Jet512.bmp’ sebelum dan setelah disisipkan citra ‘Lena256.bmp’

………..……… A-16

A.11 Cover image ‘Jet512.bmp’ sebelum dan setelah disisipkan citra

‘Baboon256.bmp’

………..……… A-18


(9)

Universitas Kristen Maranatha

A.12 Cover image ‘Jet512.bmp’ sebelum dan setelah disisipkan citra ‘Bird256.bmp’

………..……… A-20

A.13 Cover image ‘Boat512.bmp’ sebelum dan setelah disisipkan citra

‘Lena256.bmp’

………..……… A-22

A.14 Cover image ‘Boat512.bmp’ sebelum dan setelah disisipkan citra

‘Baboon256.bmp’ .…….….……….……… A-24 A.15 Cover image ‘Boat512.bmp’ sebelum dan setelah disisipkan citra

‘Bird256.bmp’

……….….……… A-26

LAMPIRAN B: PENILAIAN SUBJEKTIF ……….……….…….. B-1

LAMPIRAN C: PERANGKAT LUNAK ………. C-1


(10)

LAMPIRAN A

CITRA


(11)

A-1 A.1. Cover image yang digunakan

Lena512.bmp Peppers512.bmp


(12)

A-2 A.2. Secret image yang digunakan

Lena256.bmp Baboon256.bmp


(13)

A-3

A.3. Citra Pengujian Kebenaran Proses Penyisipan

StegoL512L256.bmp StegoL512L128.bmp

StegoL512B256.bmp StegoL512B128.bmp


(14)

A-4

A.4. Cover-image ”Lena512.bmp” Sebelum dan Setelah Disisipkan Citra

’Lena256.bmp’

Citra asli Lena512.bmp

L_Lena_6.bmp L_Lena_8.bmp


(15)

A-5

L_Lena_16.bmp L_Lena_20.bmp

L_Lena_50.bmp L_Lena_100.bmp


(16)

A-6

A.5 Cover-image ”Lena512.bmp” Sebelum dan Setelah Disisipkan Citra

’Baboon256.bmp’ Citra asli Lena512.bmp

L_Baboon_6.bmp L_Baboon_8.bmp


(17)

A-7

L_Baboon_16.bmp L_Baboon_20.bmp


(18)

A-8

A.6 Cover-image ”Lena512.bmp” Sebelum dan Setelah Disisipkan Citra

’Bird256.bmp’ Citra asli Lena512.bmp

L_Bird_6.bmp L_Bird_8.bmp


(19)

A-9

L_Bird_16.bmp L_Bird_20.bmp


(20)

A-10

A.7 Cover-image ”Peppers512.bmp” Sebelum dan Setelah Disisipkan Citra

’Lena256.bmp’

Citra asli Peppers512.bmp

P_Lena_6.bmp P_Lena_8.bmp


(21)

A-11

P_Lena_16.bmp P_Lena_20.bmp


(22)

A-12

A.8 Cover-image ”Peppers512.bmp” Sebelum dan Setelah Disisipkan Citra

’Baboon256.bmp’

Citra asli Peppers512.bmp

P_Baboon_6.bmp P_Baboon_8.bmp


(23)

A-13

P_Baboon_16.bmp P_Baboon_20.bmp


(24)

A-14

A.9 Cover-image ”Peppers512.bmp” Sebelum dan Setelah Disisipkan Citra

’Bird256.bmp’

Citra asli Peppers512.bmp

P_Bird_6.bmp P_Bird_8.bmp


(25)

A-15

P_Bird_16.bmp P_Bird_20.bmp


(26)

A-16

A.10 Cover-image ”Jet512.bmp” Sebelum dan Setelah Disisipkan Citra

’Lena256.bmp’

Citra asli Jet512.bmp

J_Lena_6.bmp J_Lena_8.bmp


(27)

A-17

J_Lena_16.bmp J_Lena_20.bmp


(28)

A-18

A.11 Cover-image ”Jet512.bmp” Sebelum dan Setelah Disisipkan Citra

’Baboon256.bmp’

Citra asli Jet512.bmp

J_Baboon_6.bmp J_Baboon_8.bmp


(29)

A-19

J_Baboon_16.bmp J_Baboon_20.bmp


(30)

A-20

A.12 Cover-image ”Jet512.bmp” Sebelum dan Setelah Disisipkan Citra

’Bird256.bmp’

Citra asli Jet512.bmp

J_Bird_6.bmp J_Bird_8.bmp


(31)

A-21

J_Bird_16.bmp J_Bird_20.bmp


(32)

A-22

A.13 Cover-image ”Boat512.bmp” Sebelum dan Setelah Disisipkan Citra

’Lena256.bmp’

Citra asli Boat512.bmp

B_Lena_6.bmp B_Lena_8.bmp


(33)

A-23

B_Lena_16.bmp B_Lena_20.bmp


(34)

A-24

A.14 Cover-image ”Boat512.bmp” Sebelum dan Setelah Disisipkan Citra

’Baboon256.bmp’

Citra asli Boat512.bmp

B_Baboon_6.bmp B_Baboon_8.bmp


(35)

A-25

B_Baboon_16.bmp B_Baboon_20.bmp


(36)

A-26

A.15 Cover-image ”Boat512.bmp” Sebelum dan Setelah Disisipkan Citra

’Bird256.bmp’

Citra asli Boat512.bmp

B_Bird_6.bmp B_Bird_8.bmp


(37)

A-27

B_Bird_16.bmp B_Bird_20.bmp


(38)

LAMPIRAN B


(39)

B-1

B.1 Nilai Mean Opinion Score (MOS) citra Lena.bmp untuk nilai threshold yang berbeda-beda

Zen Moris Kristy Dina Febryan Bimo Juventus Michael David Linda MOS

L_Lena_6.bmp 5 5 5 5 5 5 5 5 5 5 5

L_Lena_8.bmp 4 4 4 4 4 4 4 4 5 5 4.2

L_Lena_10.bmp 4 4 4 4 5 4 3 4 5 5 4.2

L_Lena_12.bmp 4 4 4 5 5 4 3 3 5 5 4.2

L_Lena_16.bmp 4 4 3 5 3 4 3 4 4 4 3.8

L_Lena_20.bmp 4 3 3 5 3 3 3 3 4 5 3.6

L_Lena_50.bmp 3 3 2 3 2 2 2 2 3 3 2.5

L_Lena_100.bmp 3 2 1 2 1 1 1 1 2 2 1.6

L_Baboon_6.bmp 4 5 5 5 5 5 5 5 5 5 4.9

L_Baboon_8.bmp 4 5 4 5 5 5 5 4 4 5 4.6

L_Baboon_10.bmp 4 4 4 5 5 5 4 4 4 5 4.4

L_Baboon_12.bmp 4 4 4 5 4 4 4 5 5 5 4.4

L_Baboon_16.bmp 4 4 3 4 4 4 3 4 4 5 3.9

L_Baboon_20.bmp 3 3 3 4 3 3 3 3 3 4 3.2

L_Baboon_50.bmp 3 3 2 3 2 2 2 2 2 3 2.4

L_Baboon_100.bmp 3 2 1 2 1 1 1 1 1 2 1.5

L_Bird_6.bmp 5 5 5 5 5 5 5 5 5 5 5

L_Bird_8.bmp 5 5 4 5 5 4 4 4 4 5 4.5

L_Bird_10.bmp 5 5 4 5 5 4 3 4 4 5 4.4

L_Bird_12.bmp 5 5 4 4 4 4 3 3 3 5 4

L_Bird_16.bmp 4 4 4 5 4 4 3 4 4 5 4.1

L_Bird_20.bmp 3 3 3 4 3 3 2 3 3 4 3.1

L_Bird_50.bmp 3 3 2 3 2 2 2 2 2 3 2.4


(40)

B-2

B.2 Nilai Mean Opinion Score (MOS) citra Peppers.bmp untuk nilai threshold yang berbeda-beda

Zen Moris Kristy Dina Febryan Bimo Juventus Michael David Linda MOS

P_Lena_6.bmp 5 5 5 5 5 5 5 5 5 5 5

P_Lena_8.bmp 5 5 5 5 5 5 5 5 5 5 5

P_Lena_10.bmp 4 5 5 5 5 5 5 5 5 5 4.9

P_Lena_12.bmp 4 5 5 4 5 5 4 4 5 5 4.6

P_Lena_16.bmp 4 4 4 5 4 4 3 4 5 5 4.2

P_Lena_20.bmp 4 4 4 4 4 4 3 3 3 4 3.7

P_Lena_50.bmp 3 3 3 3 2 3 2 3 2 4 2.8

P_Lena_100.bmp 3 3 1 2 1 1 1 2 1 3 1.8

P_Baboon_6.bmp 5 5 5 5 5 5 5 5 5 5 5

P_Baboon_8.bmp 5 5 5 5 5 5 5 5 5 5 5

P_Baboon_10.bmp 4 5 5 5 5 5 4 4 5 5 4.7

P_Baboon_12.bmp 4 5 5 5 5 5 4 4 5 5 4.7

P_Baboon_16.bmp 4 4 4 5 4 4 3 3 5 4 4

P_Baboon_20.bmp 3 4 4 4 4 4 2 2 4 4 3.5

P_Baboon_50.bmp 3 3 2 3 2 3 2 2 3 3 2.6

P_Baboon_100.bmp 3 2 1 2 1 1 1 1 2 2 1.6

P_Bird_6.bmp 5 5 5 5 5 5 5 5 5 5 5

P_Bird_8.bmp 4 5 5 5 5 5 5 5 5 5 4.9

P_Bird_10.bmp 4 5 5 5 5 5 4 4 5 5 4.7

P_Bird_12.bmp 4 5 5 5 5 5 4 4 5 5 4.7

P_Bird_16.bmp 4 5 4 4 4 4 3 3 4 4 3.9

P_Bird_20.bmp 3 4 3 4 3 3 3 3 3 4 3.3

P_Bird_50.bmp 3 4 2 3 2 2 2 2 2 3 2.5


(41)

B-3

B.3 Nilai Mean Opinion Score (MOS) citra Jet.bmp untuk nilai threshold yang berbeda-beda

Zen Moris Kristy Dina Febryan Bimo Juventus Michael David Linda MOS

J_Lena_6.bmp 5 5 5 5 5 5 5 5 5 5 5

J_Lena_8.bmp 5 5 5 5 5 5 5 5 5 5 5

J_Lena_10.bmp 5 5 5 5 5 5 4 5 4 5 4.8

J_Lena_12.bmp 5 5 5 5 5 5 4 4 5 5 4.8

J_Lena_16.bmp 4 4 5 5 4 4 3 4 5 5 4.3

J_Lena_20.bmp 3 4 5 5 4 3 3 3 3 5 3.8

J_Lena_50.bmp 3 4 4 4 2 2 2 2 3 5 3.1

J_Lena_100.bmp 3 3 3 3 1 1 1 1 1 4 2.1

J_Baboon_6.bmp 5 5 5 5 5 5 5 5 5 5 5

J_Baboon_8.bmp 4 5 5 5 5 5 5 5 5 5 4.9

J_Baboon_10.bmp 4 5 5 5 5 5 4 4 5 5 4.7

J_Baboon_12.bmp 4 5 5 5 5 5 4 4 5 5 4.7

J_Baboon_16.bmp 3 4 4 5 5 5 3 3 4 5 4.1

J_Baboon_20.bmp 3 4 4 5 4 4 3 3 4 5 3.9

J_Baboon_50.bmp 3 4 3 4 3 4 2 2 4 4 3.3

J_Baboon_100.bmp 2 3 2 3 2 2 1 1 2 3 2.1

J_Bird_6.bmp 5 5 5 5 5 5 5 5 5 5 5

J_Bird_8.bmp 5 5 5 5 5 5 5 5 5 5 5

J_Bird_10.bmp 5 5 5 5 5 5 4 4 4 5 4.7

J_Bird_12.bmp 4 5 5 5 5 5 4 4 4 5 4.6

J_Bird_16.bmp 4 4 5 5 4 4 3 3 4 5 4.1

J_Bird_20.bmp 4 4 4 5 4 4 3 3 3 5 3.9

J_Bird_50.bmp 3 4 3 4 3 3 2 2 3 4 3.1


(42)

B-4

B.4 Nilai Mean Opinion Score (MOS) citra Boat.bmp untuk nilai threshold yang berbeda-beda

Zen Moris Kristy Dina Febryan Bimo Juventus Michael David Linda MOS

B_Lena_6.bmp 5 5 5 5 5 5 5 5 5 5 5

B_Lena_8.bmp 4 5 5 5 5 5 4 5 5 5 4.8

B_Lena_10.bmp 4 5 5 5 5 5 4 4 5 5 4.7

B_Lena_12.bmp 4 5 5 5 5 5 3 3 5 5 4.5

B_Lena_16.bmp 4 5 5 5 4 4 3 3 4 4 4.1

B_Lena_20.bmp 4 4 4 5 4 3 3 3 3 3 3.6

B_Lena_50.bmp 3 4 4 4 2 2 2 2 3 3 2.9

B_Lena_100.bmp 3 3 3 3 1 1 1 1 1 2 1.9

B_Baboon_6.bmp 4 5 5 5 5 5 5 5 5 5 4.9

B_Baboon_8.bmp 4 5 5 5 5 5 5 4 5 5 4.8

B_Baboon_10.bmp 4 5 5 5 5 5 4 4 4 4 4.5

B_Baboon_12.bmp 4 5 5 5 5 5 4 3 4 4 4.4

B_Baboon_16.bmp 4 4 4 5 4 4 3 3 4 4 3.9

B_Baboon_20.bmp 3 4 4 5 4 4 3 3 3 3 3.6

B_Baboon_50.bmp 3 3 3 3 3 3 3 2 2 2 2.7

B_Baboon_100.bmp 3 2 2 2 2 2 2 1 1 1 1.8

B_Bird_6.bmp 5 5 5 5 5 5 5 5 5 5 5

B_Bird_8.bmp 5 5 5 5 5 5 5 4 4 4 4.7

B_Bird_10.bmp 5 5 5 5 5 5 5 4 4 4 4.7

B_Bird_12.bmp 5 5 5 5 5 5 4 4 4 4 4.6

B_Bird_16.bmp 4 4 5 5 5 4 4 3 5 4 4.3

B_Bird_20.bmp 3 4 5 5 5 4 3 3 3 5 4

B_Bird_50.bmp 3 4 4 4 4 2 2 2 2 3 3


(43)

LAMPIRAN C


(44)

C-1

function varargout = Coba280313(varargin) % COBA280313 MATLAB code for Coba280313.fig

% COBA280313, by itself, creates a new COBA280313 or raises the existing

% singleton*. %

% H = COBA280313 returns the handle to a new COBA280313 or the handle to

% the existing singleton*. %

% COBA280313('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in COBA280313.M with the given input arguments.

%

% COBA280313('Property','Value',...) creates a new COBA280313 or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before Coba280313_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to Coba280313_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)". %

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Coba280313 % Last Modified by GUIDE v2.5 29-Mar-2013 15:06:19

% Begin initialization code - DO NOT EDIT gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Coba280313_OpeningFcn, ...

'gui_OutputFcn', @Coba280313_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before Coba280313 is made visible.

function Coba280313_OpeningFcn(hObject, eventdata, handles, varargin)


(45)

C-2 % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Coba280313 (see VARARGIN) % Choose default command line output for Coba280313

handles.output = hObject; % Update handles structure guidata(hObject, handles);

% UIWAIT makes Coba280313 wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = Coba280313_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in RadioButton_GetImage.

function RadioButton_GetImage_Callback(hObject, eventdata, handles)

% hObject handle to RadioButton_GetImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) %Mengatur RadioButton_HideImage tidak aktif saat

RadioButton_GetImage %dipilih

set(handles.RadioButton_HideImage,'value',0);

% Hint: get(hObject,'Value') returns toggle state of RadioButton_GetImage

function T_Callback(hObject, eventdata, handles) % hObject handle to T (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of T as text % str2double(get(hObject,'String')) returns contents of T as a double

% --- Executes during object creation, after setting all properties.

function T_CreateFcn(hObject, eventdata, handles) % hObject handle to T (see GCBO)


(46)

C-3

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in PushButton_HideImage.

function PushButton_HideImage_Callback(hObject, eventdata, handles)

% hObject handle to PushButton_HideImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) mode=handles.mode;

CoverImage=handles.CoverImage; SecretImage=handles.SecretImage; T = eval(get(handles.T, 'String'));

if mode==1 clc;

stat = 'Loading...';

set(handles.stat,'string',stat); pause(0.001); x=CoverImage; x=double(x); blok=4; [c d]=size(x);

jum_blok = (round(c/blok)^2);

i=0;j=0;k=0; while(1) k=k+1;

for q=1:blok for p=1:blok

blok_value(q,p,k)= x(j+q,i+p); end

end

i=i+blok; if i==c; i=0; j=j+blok; end

if j==d; break; end

end

for i=1:jum_blok

min_blok(i)=min(min(blok_value(:,:,i))); max_blok(i)=max(max(blok_value(:,:,i))); bk(i)=(max_blok(i) - min_blok(i) + 1); L(i) = floor(blok*blok*(log2(bk(i)))); end


(47)

C-4 secret_im = SecretImage;

secret_im = double(round(secret_im./16)); [f g]=size(secret_im);

[secret_im_bin]=kebiner(secret_im);

temp3=0; for i=1:f for j=1:g

pixel = ke4bit(secret_im_bin(i,j)); for k=1:4

temp3=temp3+1; secret_im_bit_stream(temp3)=pixel(k); end end end [a jum_bit_stream]=size(secret_im_bit_stream); temp=0; k=0; adj_bk=0; loop=0; flag = 0 ;

for i=1:jum_blok loop=loop+1; bin2des=0;

length_Li = L(i); value_bk=bk(i); index_bk=i;

if ((value_bk >= 2) && (value_bk <= T)) if temp> (jum_bit_stream-19) break;

end

temp=temp+length_Li; for j=1:length_Li k=k+1;

sisipan = double(secret_im_bit_stream(k)); bin2des = bin2des + sisipan*2^(length_Li-j); if (k==jum_bit_stream)

bin2des=0; k=k-(temp-length_Li); for z=1:(temp-length_Li) k=k+1;

sisipan = double(secret_im_bit_stream(k)); bin2des = bin2des + sisipan*(2^(temp-z)); end

break; end

end

S=basis_bk(bin2des,bk(i)); value_basis = S;

[u v]=size(value_basis); cc=0;

for aa=1:blok for bb=1:blok


(48)

C-5 cc=cc+1; if cc<=v

value_blok_baru(aa,bb,i)= uint8(min_blok(i) + value_basis(v-cc+1)); else value_blok_baru(aa,bb,i)= uint8(min_blok(i)); end end end min_blok_adj(i)=min(min(value_blok_baru(:,:,i))); max_blok_adj(i)=max(max(value_blok_baru(:,:,i))); ck=max_blok_adj(i) - min_blok_adj(i) + 1;

while(ck~=bk(i)) adj_bk= adj_bk+1; length_Li=length_Li; temp=temp-length_Li; k=k-length_Li ;

if ((bk(i)<=T) && (flag==0)) flag=0;

bk(i)=bk(i) + 1; else

flag=1;

bk(i)=bk(i) - 1; if bk(i)==1

bk(i)=bk(i) + 1; break;

end

end

L(i) = floor(blok*blok*(log2(bk(i)))); length_Li=L(i);

temp=temp+length_Li; for j=1:length_Li k=k+1;

sisipan = double(secret_im_bit_stream(k)); bin2des = bin2des + sisipan*2^(length_Li-j); if (k==jum_bit_stream)

bin2des=0;

k=k-(temp-length_Li); for z=1:(temp-length_Li) k=k+1;

sisipan = double(secret_im_bit_stream(k));

bin2des = bin2des + sisipan*(2^(temp-z)); end break; end end S=basis_bk(bin2des,bk(i)); value_basis = S;

[u v]=size(value_basis); cc=0;


(49)

C-6 for bb=1:blok cc=cc+1; if cc==v

value_blok_baru(aa,bb,i)= uint8(min_blok(i) + value_basis(v-cc+1)); else value_blok_baru(aa,bb,i)= uint8(min_blok(i)); end end end min_blok_adj(i)=min(min(value_blok_baru(:,:,i))); ck=(max(max(blok_value(:,:,i)))-min_blok_adj(i)+1); end else value_blok_baru(1:blok,1:blok,i)=uint8(blok_value(:,:,i)); if (k==jum_bit_stream)

break; end

end

if ((k==jum_bit_stream) || (temp>= (jum_bit_stream-19))) break;

end

end

for i=1:index_bk

value_blok_stego_im(:,:,i)=value_blok_baru(:,:,i); end

for i=(index_bk+1):jum_blok

value_blok_stego_im(:,:,i)=blok_value(:,:,i); end

mm=0; nn=0; qq=0;

for i=1:jum_blok

for ii=1:blok for jj=1:blok

rekontruksi_stego_im(mm+ii,nn+jj) = value_blok_stego_im(ii,jj,i);

end

end

if (nn==(d-blok)) mm=mm+blok;nn=0; else

nn=nn+blok; end


(50)

C-7 MSE=sum(sum(rekontruksi_stego_im-CoverImage).^2)/(512*512); PSNR= 10*(log10((255^2)/MSE)); MSE=num2str(MSE); PSNR=num2str(PSNR); set(handles.NilaiMSE,'string',MSE); set(handles.NilaiPSNR, 'string', PSNR); pause(0.001); adj_bk index_bk secret_im_bit_stream size(value_blok_stego_im); size(rekontruksi_stego_im); axes(handles.Axes_StegoImage); imshow(rekontruksi_stego_im); pause(0.001);

stat = 'Selesai';

set(handles.stat,'string',stat); handles.index_bk=index_bk; handles.value_blok_stego_im=value_blok_stego_im; handles.blok=blok; handles.secret_im_bit_stream=secret_im_bit_stream; handles.bk=bk; handles.rekontruksi_stego_im=rekontruksi_stego_im; guidata(hObject, handles); end

function EditText_MSE_Callback(hObject, eventdata, handles) % hObject handle to EditText_MSE (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of EditText_MSE as text

% str2double(get(hObject,'String')) returns contents of EditText_MSE as a double

% --- Executes during object creation, after setting all properties.

function EditText_MSE_CreateFcn(hObject, eventdata, handles) % hObject handle to EditText_MSE (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');


(51)

C-8

function PSNR_Callback(hObject, eventdata, handles) % hObject handle to NilaiPSNR (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of NilaiPSNR as text

% str2double(get(hObject,'String')) returns contents of NilaiPSNR as a double

% --- Executes during object creation, after setting all properties.

function NilaiPSNR_CreateFcn(hObject, eventdata, handles) % hObject handle to NilaiPSNR (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in PushButton_SelectCoverImage. %Memilih citra CoverImage

function PushButton_SelectCoverImage_Callback(hObject, eventdata, handles)

[filename, pathname] = uigetfile({'*.bmp','All Image Files';...

'*.*','All Files' },'Pilih Cover Image'); if isequal([filename,pathname],[0,0])

return else handles.img=imread(fullfile(pathname, filename)); guidata(hObject, handles); axes(handles.Axes_CoverImage); imshow(handles.img);

CoverImage = handles.img; handles.CoverImage=CoverImage; guidata(hObject, handles); end

% hObject handle to PushButton_SelectCoverImage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in PushButton_SelectSecretImage.

function PushButton_SelectSecretImage_Callback(hObject, eventdata, handles)

[filename, pathname] = uigetfile({'*.bmp','All Image Files';...

'*.*','All Files' },'Pilih Secret Image'); if isequal([filename,pathname],[0,0])

return

else


(52)

C-9 guidata(hObject, handles); axes(handles.Axes_SecretImage); imshow(handles.img);

SecretImage = handles.img;

handles.SecretImage = SecretImage; guidata(hObject, handles); end

% hObject handle to PushButton_SelectSecretImage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in RadioButton_HideImage.

function RadioButton_HideImage_Callback(hObject, eventdata, handles)

set(handles.RadioButton_GetImage,'value',0);

% hObject handle to RadioButton_HideImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of

RadioButton_HideImage

% --- Executes on button press in PushButton_SelectStegoImage.

function PushButton_SelectStegoImage_Callback(hObject, eventdata, handles)

% hObject handle to PushButton_SelectStegoImage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) [filename, pathname] = uigetfile({'*.bmp','All Image Files';...

'*.*','All Files' },'Pilih Stego Image'); if isequal([filename,pathname],[0,0])

return else handles.img=imread(fullfile(pathname, filename)); guidata(hObject, handles); axes(handles.Axes_StegoImage); imshow(handles.img);

StegoImage = handles.img; handles.StegoImage=StegoImage; guidata(hObject, handles); end

% --- Executes during object creation, after setting all properties.

function PushButton_SelectStegoImage_CreateFcn(hObject, eventdata, handles)

% hObject handle to PushButton_SelectStegoImage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called


(53)

C-10

function PushButton_GetImage_Callback(hObject, eventdata, handles) % hObject handle to PushButton_GetImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on selection change in mode.

function mode_Callback(hObject, eventdata, handles) % hObject handle to mode (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns mode contents as cell array

% contents{get(hObject,'Value')} returns selected item from mode

mode_noise=get(hObject,'Value');

switch mode_noise case 1

mode = 1;

handles.mode=mode;

guidata(hObject, handles); case 2

mode = 2;

handles.mode=mode;

guidata(hObject, handles);

end

% --- Executes during object creation, after setting all properties.

function mode_CreateFcn(hObject, eventdata, handles) % hObject handle to mode (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes during object creation, after setting all properties.

function Axes_CoverImage_CreateFcn(hObject, eventdata, handles) % hObject handle to Axes_CoverImage (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called


(54)

C-11

% Hint: place code in OpeningFcn to populate Axes_CoverImage

% --- Executes during object creation, after setting all properties.

function stat_CreateFcn(hObject, eventdata, handles) % hObject handle to stat (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes on button press in PushButton_EkstrakImage.

function PushButton_EkstrakImage_Callback(hObject, eventdata, handles)

% hObject handle to PushButton_EkstrakImage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) mode=handles.mode;

StegoImage=handles.StegoImage;

T = eval(get(handles.T, 'String'));

if mode==2 clc;

stat = 'Loading...';

set(handles.stat,'string',stat); pause(0.001); x=StegoImage; x=double(x); blok=4; [c d]=size(x);

jum_blok = (round(c/blok)^2);

i=0;j=0;k=0; while(1) k=k+1;

for q=1:blok for p=1:blok

value_blok_stego_im(q,p,k)= x(j+q,i+p); end

end

i=i+blok; if i==c; i=0; j=j+blok; end

if j==d; break; end

end

for i=1:jum_blok clc


(55)

C-12

max_blok_stego(i)=max(max(value_blok_stego_im(:,:,i))); ck(i)=max_blok_stego(i) - min_blok_stego(i) + 1;

L_stego(i) = floor(blok*blok*(log2(ck(i)))); end

temp6=0;

for i=1:jum_blok

length_Li = L_stego(i); value_bk=ck(i);

index_bk_stego=i;

temp5=0;

if ((value_bk >= 2) && (value_bk <= T)) for j=1:blok

for k=1:blok

temp5=temp5+1;

bit_blok_stego(temp5) = value_blok_stego_im(j,k,i) - min_blok_stego(i);

end

end

value_blok_stego=0; for j=1:(blok*blok)

value_blok_stego = value_blok_stego + bit_blok_stego(j)*ck(i)^(j-1);

end

Si=des2bin(value_blok_stego); [ff gg]=size(Si);

temp6=0; for j=1:gg

temp6=temp6+1; bit_stream_stego(temp6)=Si(j); end end end bit_stream_stego=secret_im_bit_stream; [a b]=size(bit_stream_stego); b=b/4; temp=0; value_ekstraksi_im=0; for i=1:b

for j=1:4

temp=temp+1;

value_ekstraksi_im=value_ekstraksi_im + bit_stream_stego(temp)*(2^(4-j));

end

des_ekstraksi_im(i) = value_ekstraksi_im; value_ekstraksi_im = 0;

end

c= sqrt(b);


(56)

C-13 temp=0;

for i=1:c for j=1:c

temp=temp+1; ekstraksi_im(i,j)=des_ekstraksi_im(temp); end end ekstraksi_im=ekstraksi_im.*16; ekstraksi_im=uint8(ekstraksi_im) size(ekstraksi_im) axes(handles.Axes_HasilEkstraksi); imshow(ekstraksi_im); pause(0.001); stat = 'Selesai';

set(handles.stat,'string',stat); handles.ekstraksi_im = ekstraksi_im; guidata(hObject, handles);

end

% --- Executes on button press in PushButton_SimpanStegoImage.

function PushButton_SimpanStegoImage_Callback(hObject, eventdata, handles)

% hObject handle to PushButton_SimpanStegoImage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) rekontruksi_stego_im=handles.rekontruksi_stego_im;

[FileName,PathName]=uiputfile('*.bmp','Save As Stego Image') imwrite(rekontruksi_stego_im,FileName,'bmp');

% --- Executes on button press in PushButton_Keluar.

function PushButton_Keluar_Callback(hObject, eventdata, handles) % hObject handle to PushButton_Keluar (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) close;

% --- Executes during object creation, after setting all properties.

function Axes_HasilEkstraksi_CreateFcn(hObject, eventdata, handles)

% hObject handle to Axes_HasilEkstraksi (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: place code in OpeningFcn to populate Axes_HasilEkstraksi

% --- Executes on button press in PushButton_SimpanHasilEkstraksi.


(57)

C-14 eventdata, handles)

% hObject handle to PushButton_SimpanHasilEkstraksi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) ekstraksi_im=handles.ekstraksi_im;

[FileName,PathName]=uiputfile('*.bmp','Save As Secret Image hasil ektraksi')

imwrite(ekstraksi_im,FileName,'bmp');

Fungsi kebiner.m

function [matrik2]=kebiner(matrik1) matrik1=double(matrik1);

[a c]=size(matrik1); matrik2=zeros(a,c); n=0;

for i=1:a for j=1:c

matrik1a=matrik1(i,j); matrik2a=0;

if (matrik1a) < 2 matrik2a=matrik1a; else

while (matrik1a) >= 2 bil=rem(matrik1a,2); b=bil*(10^n); n=n+1; matrik2a=matrik2a+b; bagi=matrik1a/2; matrik1a=floor(bagi); end b=matrik1a*(10^n); matrik2a=matrik2a+b; n=0; end matrik2(i,j)=matrik2a; end end end Fungsi ke4bit.m

function [bitke]=ke4bit(bilbiner) bitke=zeros(1,4);

n=1;

R=bilbiner; if (R) < 10 n=1; else

while (R) >= 10 R=R/10; n=n+1; end


(58)

C-15 if (n) == 1

bitke(1,4)=bilbiner; else

while n >= 1 sa=10^(n-1); bagi=floor(bilbiner/sa); f=4-n+1; bitke(1,f)=bagi; kur=bagi*sa; bilbiner=bilbiner-kur; n=n-1; end end end Fungsi basis_bk.m

function [S]=basis_bk(bilangan,bk) n=0;

if (bilangan) < bk S(1) = bilangan; else

while (bilangan) >= bk n=n+1; bil=mod(bilangan,bk); S(n)=bil; bagi=bilangan/bk; bilangan=floor(bagi); end n=n+1; S(n)=bilangan; S_temp=S; end

for p=1:n

S(p)=S_temp(n-p+1); end

end

Fungsi des2bin.m

function [X]=des2bin(bilangan) n=0;

S=0;

if (bilangan) < 2 S(1)=bilangan; temp7=1;

else

while (bilangan) >= 2 n=n+1; S(n)=rem(bilangan,2); bagi=bilangan/2; bilangan=floor(bagi); end n=n+1; temp7=n;


(59)

C-16 S(n)=bilangan;

end

for iii=1:temp7

X(iii) = S(temp7+1-iii); end


(60)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Pada bab ini, dijelaskan pendahuluan dari pengerjaan tugas akhir meliputi latar belakang topik tugas akhir, rumusan masalah, tujuan, batasan masalah, metodologi pengerjaan dan sistematika pembahasan dari pengerjaan tugas akhir.

1.1.Latar Belakang

Berdasarkan perkembangan teknologi yang cepat pada zaman sekarang, layanan digital menjadi sangat penting dan menarik perhatian. Banyak media digital yang membutuhkan keamanan tinggi dalam menyimpan dan mengirim pesan. Data yang dipertukarkan pun bervariasi, baik dari jenisnya maupun tingkat kerahasiannya. Mulai dari data pribadi, data organisasi, sampai data negara yang sangat rahasia. Hal inilah yang menuntut adanya pengamanan data tersebut sehingga tidak boleh sampai terbaca oleh pihak yang tidak diinginkan.[10]

Untuk mengatasi masalah keamanan tersebut, dikembangkan suatu sistem pengamanan terhadap data yang disebut kriptografi. Kriptografi mengubah isi informasi asli (plaintext) yang akan dikirim, menjadi informasi acak (ciphertext) yang sama sekali tidak berarti bagi orang lain. Setelah informasi diterima, penerima akan mengubah kembali informasi acak tersebut menjadi informasi seperti semula. Dengan cara ini, informasi dapat dijaga kerahasiaannya.[11]

Namun, teknik kriptografi ini memiliki kelemahan, yaitu pesan acak yang dikirim justru dapat menimbulkan kecurigaan oleh pihak luar. Pihak luar yang merasa curiga akan pesan tersebut dapat dengan mudah merusak pesan sehingga penerima tidak akan menerima pesan yang asli dengan utuh.


(61)

BAB I Pendahuluan

2

Universitas Kristen Maranatha

Untuk menangani masalah tersebut, digunakan teknik steganografi. Pada steganografi, data rahasia (secret-data) disisipkan pada data lain (cover-data) yang biasa digunakan sehari-hari. Media baru yang telah disisipi data rahasia (stego-data) kemudian dikirim kepada penerima tanpa menimbulkan kecurigaan dari pihak luar, karena perbedaan dari media asli (cover-data) ketika belum disisipi data rahasia dengan ketika sudah disisipi data rahasia (stego-data) tidak dapat disadari langsung oleh manusia. Stego-data tersebut akan terlihat seperti data biasa yang tidak menimbulkan kecurigaan pihak lain, sehingga tingkat keamanan data rahasia yang tertanam didalamnya lebih aman. [11]

Pada umumnya, teknik steganografi diterapkan pada dokumen multimedia seperti image, audio dan video. Hal ini karena perubahan yang terjadi pada dokumen multimedia cenderung tidak dapat dideteksi dengan indera manusia. Pada Tugas Akhir ini, steganografi yang diterapkan adalah adalah steganografi pada dokumen citra (image). Dokumen citra dipilih karena dokumen citra lebih banyak beredar dibandingkan kedua dokumen lainnya. Selain itu, kehandalan penggunaan citra dibandingkan dengan media lainnya adalah kualitas citra yang telah disisipi data rahasia tidak berbeda jauh dengan kualitas citra aslinya. Format citra yang digunakan adalah bitmap karena citra dengan format bitmap memiliki kapasitas penyisipan data yang besar.

1.2.Rumusan Masalah

Rumusan masalah pada Tugas Akhir ini adalah:

1. Bagaimana melakukan penyembunyian pesan rahasia ke dalam sebuah citra dengan menggunakan algoritma berbasis blok?

2. Bagaimana mengekstraksi pesan rahasia pada dokumen citra yang telah disisipkan pesan?

3. Bagaimana membandingkan kualitas antara citra yang asli dengan citra yang sudah disisipkan pesan rahasia?


(62)

BAB I Pendahuluan

3

Universitas Kristen Maranatha

1.3.Tujuan

Tujuan yang ingin dicapai pada Tugas Akhir ini adalah:

1. Menyembunyikan dan mengekstraksi pesan rahasia yang disisipkan pada citra.

2. Membandingkan kualitas antara citra yang asli dengan citra yang sudah disisipkan pesan rahasia.

1.4.Batasan Masalah

Batasan masalah dalam Tugas Akhir ini adalah: 1. Pesan rahasia berupa citra.

2. Format citra adalah bitmap.

3. Citra yang diuji adalah citra grayscale.

4. Ukuran citra cover image 512x512 piksel dan citra secret image 256x256 piksel.

5. Perangkat lunak dibuat dengan menggunakan MATLAB R 7.12.0 (R2011a).

1.5.Metodologi

Tahap-tahap yang akan dilalui dalam pelaksanaan Tugas Akhir ini adalah: 1. Studi pustaka.

Mempelajari literatur-literatur yang ada berupa buku, jurnal dan artikel ilmiah, maupun website yang berkaitan dengan steganografi, dokumen citra, dan metode algoritma berbasis blok.mengenai konsep penerapan steganografi pada citra, teknik penyembunyian pesan rahasia pada citra, beserta teknik ekstraksinya.

2. Analisis.

Melakukan analisis dari hasil pustaka, meliputi konsep penerapan steganografi pada citra, teknik penyembunyian pesan rahasia pada citra menggunakan algoritma berbasis blok beserta teknik ekstraksinya. Dilakukan juga analisis terhadap kebutuhan perangkat lunak yang akan


(63)

BAB I Pendahuluan

4

Universitas Kristen Maranatha

dibangun sehingga diperoleh gambaran umum perangkat lunak yang akan dibangun.

3. Perancangan perangkat lunak.

Melakukan eksplorasi steganografi pada citra dengan menggunakan algoritma berbasis blok, merancang algoritma berbasis blok, dan menentukan perangkat lunak yang akan digunakan untuk implementasi. 4. Implementasi algoritma dan pembangunan perangkat lunak.

Melakukan implementasi algoritma berbasis blok untuk penyembunyian pesan rahasia pada citra dan tindak lanjutnya.

5. Analisis data dan pengujian aplikasi.

Perangkat lunak yang telah dibangun di cek dan diperiksa agar sebisa mungkin dapat bekerja dengan baik. Melakukan pengujian akurasi aplikasi dan menganalisis hasil dari pengujian yang dilakukan.

6. Kesimpulan dan saran.

Membuat kesimpulan dari seluruh tahapan yang telah dilalui dan mengajukan saran yang perlu dilakukan lebih lanjut.

1.6.Sistematika Pembahasan

Sistematika penulisan yang akan digunakan untuk menyusun laporan Tugas Akhir ini adalah sebagai berikut:

1. Bab I Pendahuluan

Bab ini berisi latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, serta sistematika pembahasan yang digunakan untuk menyusun laporan Tugas Akhir.

2. Bab II Landasan Teori

Bab ini berisi landasan teori yang digunakan dalam melakukan analisis, perancangan dan implementasi Tugas Akhir yang dilakukan pada bab-bab selanjutnya.

3. Bab III Perancangan dan Implementasi Perangkat Lunak

Bab ini berisi analisis masalah mengenai bagaimana penerapan steganografi pada media citra menggunakan algoritma berbasis blok,


(64)

BAB I Pendahuluan

5

Universitas Kristen Maranatha

melakukan perancangan perangkat lunak yang akan dibangun dalam Tugas Akhir, dan implementasi perangkat lunak.

4. Bab IV Pengujian dan Analisis Hasil Uji

Bab ini berisi pengujian yang dilakukan terhadap perangkat lunak yang diimplementasikan dalam Tugas Akhir dan analisis terhadap hasil uji. 5. Bab V Penutup

Bab ini berisi kesimpulan yang didapatkan dari Tugas Akhir serta saran-saran yang dapat membantu pengembangan Tugas Akhir ini.


(65)

42 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil penelitian dan analisis dari Tugas Akhir ini serta saran untuk pengembangan “Penyembunyian Citra dalam Citra dengan Algoritma Berbasis Blok”.

5.1.Kesimpulan

Dari kegiatan-kegiatan yang dilakukan terkait dengan pelaksanaan Tugas Akhir, dapat diambil kesimpulan sebagai berikut:

1. Telah berhasil dibuat sebuah program penyembunyian citra dalam citra dengan algoritma berbasis blok. Fitur dari perangkat lunak seperti pembacaan citra, proses penyisipan, proses ekstraksi, dan penyimpanan citra sudah dapat dilakukan dengan benar.

2. Pada Tugas Akhir ini, algoritma berbasis blok adalah sebuah metode penyembunyian citra yang sederhana karena tidak dibutuhkan preprocessing seperti transformasi atau perbaikan citra, baik untuk cover image maupun secret image.

3. Citra yang dihasilkan setelah proses penyisipan pesan dengan metode algoritma berbasis blok memiliki kualitas yang baik, yakni citra ‘Lena.bmp’ memiliki nilai PSNR ≥ 25.3005 dB, citra ‘Peppers.bmp’

memiliki nilai PSNR ≥ 24.9208 dB, citra ‘Jet.bmp’ memiliki nilai PSNR

≥ 27.2978 dB, dan citra ‘Boat.bmp’ memiliki nilai PSNR ≥ 26.8955 dB dan memiliki nilai rata-rata MOS ≥ 3.9375 yang berarti bahwa citra dianggap mirip dengan citra asli.

4. Didapatkan nilai pengujian kualitas citra hasil ekstraksi rata-rata untuk PSNR adalah 37.0684 dB. Secara objektif, ini menunjukkan nilai yang cukup baik. Secara subjektif, terjadi penurunan kualitas citra antara citra hasil ekstraksi dengan citra asli yang disisipkan.

5. Pada hasil percobaan, semakin tinggi nilai threshold maka semakin tinggi pula nilai MSE-nya, yang menandakan error-nya semakin besar sehingga kualitas citra berubah.


(66)

42 Universitas Kristen Maranatha

5.2 Saran

1. Menambahkan dukungan ukuran citra, tidak hanya berukuran 512 x 512 piksel untuk cover image dan 256 x 256 piksel untuk secret image.


(67)

44 Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1] Away, G.A.. MATLAB Programming. Penerbit Informatika. 2010.

[2] Darmawan, A., dan Andrianto, H.. Diktat Mata Kuliah Bahasa Pemrograman.

Jurusan Teknik Elektro, Universitas Kristen Maranatha.

[3] Gonzales, R.C., and Woods, R.E.. Digital Image Processing. Prentice Hall. 2002

[4] Marchand, P., and Holland, O.T.. Graphics and GUIs with MATLAB. Chapman &

Hall/CRC. 2003.

[5] Matlab & Simulink. Learning Matlab. The Mathworks. 2005.

[6] McAndrew, Alasdair. An Introduction to Digital Image Processing with MATLAB.

School of Computer Science and Mathematics, Victoria University of Technology. 2004.

[7] Pangaribuan, Ferry. Pembangungan Aplikasi Penyembunyian Pesan Terenkripsi

dengan Metode MARS pada Citra dengan Metode Zhang LSB Image. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2009.

[8] Putra, Darma. Pengolahan Citra Digital. Penerbit ANDI Yogyakarta. 2010.

[9] Wicaksono, P.A. Penyembunyian Pesan pada Citra GIF Menggunakan Metode

Adaptif. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2009.

[10] Widyanarko, Arya. Implementasi Steganografi dengan Metode Bit-Plane

Complexity Segmentation (BPCS) Untuk Dokumen Citra Terkompresi. Sekolah

Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2008.

[11] Winanti, Winda. Penyembunyian Pesan Pada Citra Terkompresi JPEG Menggunakan Metode Spread Spectrum. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2009.

[12] Yang, Ching-Yu. Image Hiding by Block Base Algorithm. 2008.

[13] Yang, C., and Lin, J. Image Hiding by Base-Oriented Algorithm. Optical Engineering 45(11). 2006.


(1)

BAB I Pendahuluan

3 Universitas Kristen Maranatha 1.3.Tujuan

Tujuan yang ingin dicapai pada Tugas Akhir ini adalah:

1. Menyembunyikan dan mengekstraksi pesan rahasia yang disisipkan pada citra.

2. Membandingkan kualitas antara citra yang asli dengan citra yang sudah disisipkan pesan rahasia.

1.4.Batasan Masalah

Batasan masalah dalam Tugas Akhir ini adalah: 1. Pesan rahasia berupa citra.

2. Format citra adalah bitmap.

3. Citra yang diuji adalah citra grayscale.

4. Ukuran citra cover image 512x512 piksel dan citra secret image 256x256 piksel.

5. Perangkat lunak dibuat dengan menggunakan MATLAB R 7.12.0 (R2011a).

1.5.Metodologi

Tahap-tahap yang akan dilalui dalam pelaksanaan Tugas Akhir ini adalah: 1. Studi pustaka.

Mempelajari literatur-literatur yang ada berupa buku, jurnal dan artikel ilmiah, maupun website yang berkaitan dengan steganografi, dokumen citra, dan metode algoritma berbasis blok.mengenai konsep penerapan steganografi pada citra, teknik penyembunyian pesan rahasia pada citra, beserta teknik ekstraksinya.

2. Analisis.

Melakukan analisis dari hasil pustaka, meliputi konsep penerapan steganografi pada citra, teknik penyembunyian pesan rahasia pada citra menggunakan algoritma berbasis blok beserta teknik ekstraksinya. Dilakukan juga analisis terhadap kebutuhan perangkat lunak yang akan


(2)

BAB I Pendahuluan

4 Universitas Kristen Maranatha

dibangun sehingga diperoleh gambaran umum perangkat lunak yang akan dibangun.

3. Perancangan perangkat lunak.

Melakukan eksplorasi steganografi pada citra dengan menggunakan algoritma berbasis blok, merancang algoritma berbasis blok, dan menentukan perangkat lunak yang akan digunakan untuk implementasi. 4. Implementasi algoritma dan pembangunan perangkat lunak.

Melakukan implementasi algoritma berbasis blok untuk penyembunyian pesan rahasia pada citra dan tindak lanjutnya.

5. Analisis data dan pengujian aplikasi.

Perangkat lunak yang telah dibangun di cek dan diperiksa agar sebisa mungkin dapat bekerja dengan baik. Melakukan pengujian akurasi aplikasi dan menganalisis hasil dari pengujian yang dilakukan.

6. Kesimpulan dan saran.

Membuat kesimpulan dari seluruh tahapan yang telah dilalui dan mengajukan saran yang perlu dilakukan lebih lanjut.

1.6.Sistematika Pembahasan

Sistematika penulisan yang akan digunakan untuk menyusun laporan Tugas Akhir ini adalah sebagai berikut:

1. Bab I Pendahuluan

Bab ini berisi latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, serta sistematika pembahasan yang digunakan untuk menyusun laporan Tugas Akhir.

2. Bab II Landasan Teori

Bab ini berisi landasan teori yang digunakan dalam melakukan analisis, perancangan dan implementasi Tugas Akhir yang dilakukan pada bab-bab selanjutnya.

3. Bab III Perancangan dan Implementasi Perangkat Lunak

Bab ini berisi analisis masalah mengenai bagaimana penerapan steganografi pada media citra menggunakan algoritma berbasis blok,


(3)

BAB I Pendahuluan

5 Universitas Kristen Maranatha

melakukan perancangan perangkat lunak yang akan dibangun dalam Tugas Akhir, dan implementasi perangkat lunak.

4. Bab IV Pengujian dan Analisis Hasil Uji

Bab ini berisi pengujian yang dilakukan terhadap perangkat lunak yang diimplementasikan dalam Tugas Akhir dan analisis terhadap hasil uji. 5. Bab V Penutup

Bab ini berisi kesimpulan yang didapatkan dari Tugas Akhir serta saran-saran yang dapat membantu pengembangan Tugas Akhir ini.


(4)

42 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil penelitian dan analisis dari Tugas Akhir ini serta saran untuk pengembangan “Penyembunyian Citra dalam Citra dengan Algoritma Berbasis Blok”.

5.1.Kesimpulan

Dari kegiatan-kegiatan yang dilakukan terkait dengan pelaksanaan Tugas Akhir, dapat diambil kesimpulan sebagai berikut:

1. Telah berhasil dibuat sebuah program penyembunyian citra dalam citra dengan algoritma berbasis blok. Fitur dari perangkat lunak seperti pembacaan citra, proses penyisipan, proses ekstraksi, dan penyimpanan citra sudah dapat dilakukan dengan benar.

2. Pada Tugas Akhir ini, algoritma berbasis blok adalah sebuah metode penyembunyian citra yang sederhana karena tidak dibutuhkan

preprocessing seperti transformasi atau perbaikan citra, baik untuk cover image maupun secret image.

3. Citra yang dihasilkan setelah proses penyisipan pesan dengan metode algoritma berbasis blok memiliki kualitas yang baik, yakni citra ‘Lena.bmp’ memiliki nilai PSNR ≥ 25.3005 dB, citra ‘Peppers.bmp’ memiliki nilai PSNR ≥ 24.9208 dB, citra ‘Jet.bmp’ memiliki nilai PSNR ≥ 27.2978 dB, dan citra ‘Boat.bmp’ memiliki nilai PSNR ≥ 26.8955 dB dan memiliki nilai rata-rata MOS ≥ 3.9375 yang berarti bahwa citra dianggap mirip dengan citra asli.

4. Didapatkan nilai pengujian kualitas citra hasil ekstraksi rata-rata untuk PSNR adalah 37.0684 dB. Secara objektif, ini menunjukkan nilai yang cukup baik. Secara subjektif, terjadi penurunan kualitas citra antara citra hasil ekstraksi dengan citra asli yang disisipkan.

5. Pada hasil percobaan, semakin tinggi nilai threshold maka semakin tinggi pula nilai MSE-nya, yang menandakan error-nya semakin besar sehingga kualitas citra berubah.


(5)

42 Universitas Kristen Maranatha 5.2 Saran

1. Menambahkan dukungan ukuran citra, tidak hanya berukuran 512 x 512 piksel untuk cover image dan 256 x 256 piksel untuk secret image.


(6)

44 Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1] Away, G.A.. MATLAB Programming. Penerbit Informatika. 2010.

[2] Darmawan, A., dan Andrianto, H.. Diktat Mata Kuliah Bahasa Pemrograman.

Jurusan Teknik Elektro, Universitas Kristen Maranatha.

[3] Gonzales, R.C., and Woods, R.E.. Digital Image Processing. Prentice Hall. 2002

[4] Marchand, P., and Holland, O.T.. Graphics and GUIs with MATLAB. Chapman &

Hall/CRC. 2003.

[5] Matlab & Simulink. Learning Matlab. The Mathworks. 2005.

[6] McAndrew, Alasdair. An Introduction to Digital Image Processing with MATLAB.

School of Computer Science and Mathematics, Victoria University of Technology. 2004.

[7] Pangaribuan, Ferry. Pembangungan Aplikasi Penyembunyian Pesan Terenkripsi

dengan Metode MARS pada Citra dengan Metode Zhang LSB Image. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2009.

[8] Putra, Darma. Pengolahan Citra Digital. Penerbit ANDI Yogyakarta. 2010.

[9] Wicaksono, P.A. Penyembunyian Pesan pada Citra GIF Menggunakan Metode

Adaptif. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2009.

[10] Widyanarko, Arya. Implementasi Steganografi dengan Metode Bit-Plane Complexity Segmentation (BPCS) Untuk Dokumen Citra Terkompresi. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2008.

[11] Winanti, Winda. Penyembunyian Pesan Pada Citra Terkompresi JPEG Menggunakan Metode Spread Spectrum. Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. 2009.

[12] Yang, Ching-Yu. Image Hiding by Block Base Algorithm. 2008.

[13] Yang, C., and Lin, J. Image Hiding by Base-Oriented Algorithm. Optical Engineering 45(11). 2006.