TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Disusun Oleh : ELISABET YUVITASARI
045314031
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh :
ELISABET YUVITASARI 045314031
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
FINAL ASSIGNMENT
Presented as a Meaning for Gaining Engineering Holder in Informatics Engineering Study ProgramBy :
ELISABET YUVITASARI 045314031
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTEMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau
pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara
tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Yogyakarta, September 2008
Penulis
Elisabet Yuvitasari
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Elisabet Yuvitasari
Nomor Mahasiswa : 045314031
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
KONSEP DAN ANALISA STEGANOGRAFI CITRA MENGGUNAKAN METODE DISCRETE COSINE TRANSFORMATION (DCT)
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 4 September 2008
Yang menyatakan
( Elisabet Yuvitasari )
MOTTO
”KEBERHASILAN TIDAK AKAN PERNAH TERCAPAI TANPA DOA”
Tugas akhir ini kupersembahkan untuk :
Tuhan Yesus Kristus
Bapakku Yustinus Masiyo
Ibuku Chatarina Sumiyati
Kakakku Fransisca Ratna K.
Andreas Agung Putra Mataram
mengubah bentuk pesan yang ditumpanginya. Steganografi dapat digunakan pada
citra. Citra yang dihasilkan setelah proses steganografi tidak berbeda dengan citra
aslinya.
Metode yang digunakan untuk aplikasi steganografi citra ini adalah
Discrete Cosine Transformation (DCT). Citra yang terdiri dari piksel berbasis
ruang ditransformasikan ke dalam basis frekuensi sehingga diperoleh koefisien
DCT untuk setiap blok matriks 8x8. Nilai setiap blok 8x8 koefisien DCT
dilakukan kuantisasi. Nilai kuantisasi yang dihasilkan digunakan untuk
menyembunyikan bit pesan dengan menggunakan metode JSteg. Pesan rahasia
diubah ke dalam bilangan 8 bit. LSB (Least Significant Bit) nilai kuantisasi yang
tidak 0, tidak 1, dan tidak negatif selanjutnya diganti dengan satu bit pesan.
Penggantian bit pesan dilakukan secara berurutan mulai dari MSB (Most
Significant Bit) sampai dengan LSB.
Untuk menguji penerapan metode DCT pada steganografi citra, maka
dibuat sebuah program aplikasi. Program aplikasi steganografi citra dengan
metode DCT ini digunakan untuk menyembunyikan pesan rahasia dalam bentuk
file text document atau file txt ke dalam citra JPG atau JPEG. Program aplikasi ini
juga digunakan untuk mengekstraksi pesan yang disembunyikan di dalam citra
JPEG. Pengujian dilakukan pada empat puluh citra bertipe JPEG dan dua puluh
pesan bertipe txt. Hasil pengujian menunjukkan bahwa waktu yang dibutuhkan
untuk proses penyembunyian dan ekstraksi pesan tergantung dari ukuran citra
yang digunakan dan banyaknya pesan yang disembunyikan, serta citra berwarna
abu-abu dapat digunakan untuk menyembunyikan karakter pesan lebih banyak
daripada citra berwarna. Selain itu, hasil pengujian menunjukkan bahwa program
aplikasi steganografi citra yang dibuat memenuhi kriteria fidelity dan recovery
tetapi tidak tahan atau tidak robust terhadap operasi manipulasi citra.
message. Steganography can be applied into the image. The result image after
steganography process is not different with this original image.
The method used in this image steganography application was discrete
Cosine Transformation (DCT). The image consist of space-based pixel that
transformed into frequency-based, hence the DCT coefficient was derived for
each 8x8-matrix block. The value of each 8x8 block of DCT coefficient was noted
with quantization. The resulted quantization values used to hide the message bit
using JSteg method. The secret messages convert into eight bit numbers. LSB’s
(Least Significant Bit) quantization value which not equal to 0, not equal to 1 and
not equal to negative was then transformed into one bit message. The one bit
message transformation performed in sequence from MSB (Most Significant Bit)
to LSB (Least Significant Bit).
To testing the apply of the DCT method in the image steganography, then
was made an application program. This application of image steganography
program using DCT method was used to hide the secret messages in the form of
file text document or file txt into JPG Image or JPEG Image. This application also
used to extract the hidden message into JPEG Image. The tested was done into the
fourty images in the JPEG format and twenty messages in the txt format. The
created image steganography was tested to knowing the ability of the system.
Results of the test suggesting that the duration required for hiding process and
messages extraction were depend on the size of image that used and depend on the
total messages hidden in the image, and moreover, the colour gray image can be
used to hide the more message character than other colour images. In addition,
result of the test demonstrating that created image steganography complies with
fidelity and recovery criteria, however, it was weak or not robust to image
manipulation operation.
Menggunkan Metode Discrete Cosine Transformation (DCT)” ini. Pada
kesempatan ini penulis bermaksud menghaturkan terima kasih kepada semua
pihak yang telah berkenan mempercayakan segala bantuan kepada penulis, yaitu:
1. Romo Ir. Greg. Heliarko SJ, S.S., B.S.T., M.Sc., M.A., beserta seluruh
keluarga besar Fakultas Sains dan Teknologi USD Yogyakarta.
2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., beserta para dosen dan seluruh
keluarga besar Jurusan Teknik Informatika Fakultas Sains dan Teknologi
Universitas Sanata Dharma Yogyakarta.
3. Ibu Anastasia Rita Widiarti, S.Si., M.Kom., selaku Dosen Pembimbing I yang
telah membimbing penulis dalam menyelesaikan Tugas Akhir ini.
4. Bapak Damar Wijaya, S.T., M.T., selaku Dosen Pembimbing II yang telah
membimbing penulis dalam menyelesaikan Tugas Akhir ini.
5. Bapak dan Ibu tercinta atas semangat, doa, serta dukungan secara moril
maupun materiil.
6. Mbak Sisca atas hiburan shooping-nya di saat penulis mengalami kejenuhan.
7. Mas Putra yang selalu memberikan inspirasi, semangat, cinta, dan doa kepada
penulis.
8. Sahabat-sahabatku, Andis, Wening, dan Deni terima kasih printernya, terima
kasih juga atas semangatnya.
11.Teman-teman mudika Santo Petrus dan Santa Maria atas pengertiannya ketika
penulis tidak dapat ikut berkumpul.
12.Teman – teman mahasiswa Teknik Informatika USD angkatan 2004.
13.Semua pihak yang tidak dapat penulis sebutkan satu – persatu.
Penulis menyadari akan kekurangan dalam penulisan naskah tugas akhir
ini. Untuk itu penulis mengharapkan kritik dan saran dari pembaca. Akhir kata,
semoga Tugas Akhir ini bermanfaat. Terima kasih.
Yogyakarta, September 2008
Penulis
HALAMAN JUDUL ... i
HALAMAN JUDUL (BAHASA INGGRIS) ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN PERNYATAAN KEASLIAN KARYA ... v
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ... vi
HALAMAN PERSEMBAHAN ... vii
INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
DAFTAR GAMBAR ... xvi
DAFTAR TABEL ... xiix
BAB I PENDAHULUAN ... 1
1.1Latar Belakang ... 1
1.2Rumusan Masalah ... 3
1.3Batasan Masalah ... 3
1.4Tujuan Penelitian ... 3
1.5Metodologi Penelitian ... 4
1.6Sistematika Penulisan ... 5
2.2.1.Pengertian dan Sejarah Steganografi ... 7
2.2.2.SteganografiCitra ... 9
2.3Discrete Cosine Transformation (DCT) ... 11
2.3.1.Pengertian Discrete Cosine Transformation ... 11
2.3.2.Persamaan DCT ... 13
2.4Kuantisasi ... 14
2.5Embedder dan Decoder ... 16
2.5.1.Embedder ... 16
2.5.2.Decoder ... 19
2.6Dekuantisasi ... 21
2.7Invers DCT ... 21
2.8Transformasi color space RGB ke YcbCr ... 22
2.9Transformasi color space YCbCr keRGB ... 23
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 24
3.1Analisis Sistem ... 24
3.1.1.Kebutuhan Hardware ... 24
3.1.2.Kebutuhan Software ... 24
3.1.3.DFD (Data Flow Diagram) ... 24
3.1.4.Diagram Alir ... 30
3.1.4.1 Algoritma Penyembunyian Pesan ... 30
3.2.2 Form Penyembunyian Pesan ... 40
3.2.3 Form Ekstraksi Pesan ... 41
3.2.4 Form Tentang ... 42
3.2.5 Form Bantuan ... 43
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM ... 44
4.1Implementasi Program ... 44
4.1.1.Menjalankan Program Steganografi Citra ... 44
4.1.2.Menggunakan Program Steganografi Citra ... 45
4.1.3.1. Form Menu Utama ... 45
4.1.3.2. Form Penyembunyian Pesan ... 46
4.1.3.3. Form Ekstraksi Pesan ... 52
4.1.3.4. Form Tentang ... 55
4.1.3.5. Form Bantuan ... 56
4.2 Pengujian Sistem ... 57
4.2.1.Pengujian Menggunakan Citra yang Sama tetapi dengan Pesan yang Berbeda ... 57
4.2.2.Pengujian Menggunakan Citra yang Berbeda tetapi dengan Pesan yang Sama ... 71
4.2.3.Perbandingan jumlah karakter pesan yang dapat disembunyikan pada citra berwarna dan citra berwarna abu-abu ... 76
5.2Saran ... 85
DAFTAR PUSTAKA ... 86
LAMPIRAN ... 89
Gambar 2.2 Diagram blok proses kompresi dan penyembunyian pesan ... 12
Gambar 2.3 Diagram blok penyembunyian pesan ... 13
Gambar 2.4 Diagram blok ekstraksi pesan ... 13
Gambar 2.5 Format informasi pesan tersembunyi ... 17
Gambar 2.6 Ilustrasi penyisipan karakter pertama flag ’$’ ... 18
Gambar 2.7 Ilustrasi pengekstraksian karakter pertama flag ’$’ ... 20
Gambar 2.8 Color space RGB dan YCbCr ... 22
Gambar 3.1 DFD Level 0 ... 25
Gambar 3.2 Diagram Dekomposisi ... 26
Gambar 3.3 DFD Level 1 ... 27
Gambar 3.4 DFD Level 2 ... 28
Gambar 3.5 Diagram alir inisialisasi koefisien DCT ... 31
Gambar 3.6 Diagram alirproses penyembunyian pesan ... 32
Gambar 3.7 Diagram alirtulis citra stego ... 34
Gambar 3.8 Diagram alirinisialisasi koefisien DCT stego ... 35
Gambar 3.9 Diagram alirproses ekstrak pesan ... 37
Gambar 3.10 Rancangan form menu utama ... 38
Gambar 3.11 Rancangan form penyembunyian pesan ... 40
Gambar 3.12 Rancangan form ekstraksi pesan ... 41
Gambar 3.13 Rancangan form tentang ... 43
Gambar 4.3 Sub menu dari menu File ... 45
Gambar 4.4 Sub menu dari menu Proses ... 46
Gambar 4.5 Sub menu dari menu Info ... 46
Gambar 4.6 Form Penyembunyian Pesan ... 47
Gambar 4.7 Proses pemilihan file citra ... 48
Gambar 4.8 Proses pemilihan file pesan ... 49
Gambar 4.9 Pesan peringatan jumlah karakter pesan ... 49
Gambar 4.10 Citra asli, pesan, dan citra stego ... 50
Gambar 4.11 Pesan peringatan data citra asli ... 50
Gambar 4.12 Pesan peringatan data pesan ... 51
Gambar 4.13 Pesan peringatan keping RGB ... 51
Gambar 4.14 Pesan peringatan simpan data citra stego ... 51
Gambar 4.15 Form Ekstraksi Pesan ... 52
Gambar 4.16 Proses pemilihan file citra stego ... 53
Gambar 4.17 Citra stego dan pesan hasil ekstraksi ... 54
Gambar 4.18 Pesan peringatan data citra stego ... 54
Gambar 4.19 Pesan peringatan tidak terdapat pesan ... 55
Gambar 4.20 Pesan peringatan simpan data pesan ... 55
Gambar 4.21 Form Tentang ... 56
Gambar 4.22 Form bantuan ... 56
dengan jumlah karakter pesan Lena C ... 61
Gambar 4.25 Grafik hubungan ukuran file stego dengan jumlah karakter pesan
Lena C ... 62
Gambar 4.26 Histogram citra berwarna abu-abu ... 65
Gambar 4.27 Histogram citra berwarna ... 65
Gambar 4.28 Grafik hubungan prosentase keberhasilan ekstraksi dengan jumlah
karakter pesan Lena BW ... 67
Gambar 4.29 Grafik hubungan waktu penyembunyian dan waktu ekstraksi
dengan jumlah karakter pesan Lena BW ... 69
Gambar 4.30 Grafik hubungan ukuran file stego dengan jumlah karakter pesan
Lena BW ... 70
Gambar 4.31 Grafik hubungan prosentase keberhasilan ekstraksi dengan ukuran
file citra Lena C ... 74
Gambar 4.32 Grafik hubungan waktu penyembunyian dan waktu ekstraksi
dengan ukuran file citra ... 75
Tabel 2.2 Perbandingan citraasli dengan citrastego ... 10
Tabel 2.3 Piksel citradan koefisien DCT ... 14
Tabel 2.4 Tabel kuantisasi standar JPEG ... 15
Tabel 2.5 Pengkuantisasian koefisien DCT ... 16
Tabel 4.1 Perbandingan hasil pengujian menggunakan citra Lena C ... 58
Tabel 4.2 Perbandingan hasil pengujian menggunakan citra Lena C dengan jumlah karakter 500 ... 60
Tabel 4.3 Perbandingan piksel citra asli dengan piksel citra stego ... 64
Tabel 4.4 Perbandingan hasil pengujian menggunakan citra Lena BW .. 66
Tabel 4.5 Perbandingan hasil pengujian menggunakan Pesan 3.txt ... 71
Tabel 4.6 Perbandingan piksel citra asli Peppers BW dengan piksel citra stego Peppers BW Stego3 ... 73
Tabel 4.7 Perbandingan kualitas citra asli dengan citra stego ... 78
Tabel 4.8 Pengujian ekstraksi pesan pada citra stego yang dilakukan operasi manipulasi ... 80
1.1Latar Belakang
Pencurian informasi dan data digital melalui komputer semakin
meningkat seiring dengan semakin berkembangnya teknologi digital dan
internet. Pencurian ini sering terjadi pada proses pengiriman data dan juga
pembobolan data pada database yang dilindungi. Oleh karena itu, data yang
dikirimkan dan dilindungi tersebut perlu dijaga keamanannya sehingga jika
ada pihak yang mencuri maka tidak bisa mengetahui data tersebut.
Cara yang digunakan untuk melindungi data yang dikirimkan sangat
banyak seperti memberikan password pada data yang dikirimkan, data
dienkripsi dengan prinsip kriptografi, dan juga pesan disisipkan dalam suatu
media digital dengan prinsip steganografi. Data yang dimodifikasi dengan
prinsip kriptografi menghasilkan bentuk yang acak sehingga dapat dengan
mudah menimbulkan kecurigaan. Pada data yang dimodifikasi dengan prinsip
steganografi, bentuk yang dihasilkan terlihat normal [1]. Karena bentuk data
yang asli dan yang telah dimodifikasi tidak terdapat perbedaan, maka
membuat data rahasia tersebut tidak menimbulkan kecurigaan dan lebih aman.
Prinsip dari steganografi yaitu menyembunyikan data atau pesan
rahasia di dalam data lain tanpa mengubah data yang ditumpanginya [2].
Steganografi dapat digunakan pada berbagai macam bentuk data, yaitu citra,
audio, dan video. Salah satu data yang dapat digunakan sebagai media dalam
steganografi yaitu citra dengan format JPEG. JPEG merupakan format citra
yang paling sering digunakan untuk mengirimkan gambar digital melalui
email dan komunikasi internet lainnya [3].
Beberapa metode yang digunakan pada steganografi, antara lain Least
Significant Bit (LSB), Discrete Cosine Transformation (DCT), dan Fast
Fourier Transform (FFT). Metode LSB merupakan metode yang paling
sederhana karena hanya mengganti LSB setiap piksel dengan bit pesan secara
berurutan. Metode ini berbasiskan domain spasial (ruang) sehingga perubahan
pada piksel akan lebih mudah diketahui. Metode DCT dan FFT berbasiskan
domain frekuensi. Piksel yang masih berdomain spasial diubah menggunakan
metode DCT atau FFT sehingga menjadi berdomain frekuensi [2]. Modifikasi
koefisien yang terjadi pada domain frekuensi tersebut menyebabkan
perubahan yang terjadi tidak terlihat langsung oleh mata manusia [1].
Metode DCT memiliki komputasi algoritma yang lebih sederhana
dibandingkan dengan FFT. Metode DCT juga digunakan pada kompresi
JPEG. Pada kompresi JPEG, koefisien-koefisien yang tidak memberikan
pengaruh terhadap kualitas citra akan dibuang [4]. Sedangkan pada
steganografi, koefisien-koefisien yang tidak dibuang akan digunakan untuk
menyisipkan bit pesan.
Berdasarkan pertimbangan dan permasalahan di atas, dalam penulisan
tugas akhir ini, penulis memilih judul ”Konsep dan Analisa Steganografi Citra
1.2 Rumusan Masalah
Permasalahan yang timbul dalam rencana pembuatan program steganografi
citra ini adalah bagaimana mengimplementasikan metode DCT untuk
membangun sebuah aplikasi steganograficitra.
1.3 Batasan Masalah
Batasan masalah dalam mengimplementasikan metode DCT pada steganografi
citraini adalah :
1. Citra yang digunakan untuk menyimpan pesan dalam implementasi ini
dibatasi untuk format JPEG/JPG (*.JPEG atau *.JPG) yang mempunyai
keping warna red, green, dan blue.
2. Pesan yang akan disembunyikan dibatasi untuk text message.
3. Metode yang digunakan untuk penyembunyian pesan pada citra yaitu
Discrete Cosine Transformation (DCT).
4. Pesan yang tersembunyi dalam citra dapat diekstraksi atau dipisahkan
kembali dari citra.
5. Program dibuat untuk pemakaian single user.
6. Program dibuat dengan bahasa pemrograman Matlab.
1.4 Tujuan Penelitian
Tujuan penelitian ini adalah mengimplementasikan metode DCT untuk
membangun sebuah aplikasi steganografi citra.
1.5Metodologi Penelitian
1. Studi Literatur
a. Mempelajari prinsip steganografi sebagai pengetahuan dasar untuk
memecahkan masalah.
b. Mempelajari metode DCT dan proses kerjanya untuk steganografi
pada citradari literatur, buku pendukung, dan referensi dokumen situs
internet.
c. Mempelajari penggunaan kode-kode program dalam Matlab untuk
mendukung pemecahan masalah.
2. Analisis Sistem
Membuat gambaran mengenai kebutuhan sistem dan data serta proses
yang diperlukan dalam mengimplemetasikan program.
3. Perancangan Sistem
Membuat rancangan interface aplikasi steganograficitra.
4. Pembuatan Program
Membuat program steganografi citra.
5. Pengujian Program
Membuktikan dan menganalisa program steganografi citra yang dibuat
1.6Sistematika Penulisan
BAB I PENDAHULUAN
Bab ini berisi latar belakang masalah, rumusan masalah, batasan
masalah, tujuan penulisan, metodologi penelitian, dan sistematika
penulisan.
BAB II. LANDASAN TEORI
Bab ini berisi uraian dasar teori yang digunakan meliputi
pengertian citra, steganografi, steganografi citra, metode DCT
untuk menyembunyikan pesan, dan konversi color space.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi analisis dan rancangan sistem steganografi citrayang
akan dibuat.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi gambaran implementasi program, pengujian dan
analisa hasil pengujian sistem.
BAB V PENUTUP
Bab ini berisi kesimpulan dan saran dari hasil pengujian sistem
2.1Citra
Citra adalah gambar pada bidang dua dimensi. Citra jugamerupakan
fungsi kontinyu dari intensitas cahaya pada bidang dua dimensi. Citra ada dua
macam yaitu citra kontinyu dan citra diskrit. Citra kontinyu dihasilkan dari
sistem optik yang menerima sinyal analog, misalnya mata manusia dan
kamera analog. Citra diskrit (digital image) dihasilkan melalui proses
digitalisasi terhadap citra kontinyu [5].
Citra diskrit atau citra digital yang berukuran N x M lazimnya
dinyatakan dengan matriks berukuran N baris dan M kolom. Matriks citra
berukuran N x M ditunjukkan oleh Tabel 2.1.
Tabel 2.1 Matriks citra berukuran N x M [5]
⎥
Berdasarkan Tabel 2.1, (x,y) adalah koordinat pada bidang dua dimensi dan
f(x,y) adalah intensitas cahaya (brightness) pada titik (x,y). Masing-masing
elemen pada citra digital disebut piksel (picture element). Jadi, citra yang
berukuran N x M tersebut mempunyai N x M buah piksel. Sebagai contoh,
misalkan suatu citra berukuran 256 x 256 piksel dengan intensitas beragam
pada tiap pikselnya direpresentasikan secara numerik dengan matriks terdiri
dari 256 baris dan 256 kolom.
2.2Steganografi
2.2.1 Pengertian dan Sejarah Steganografi
Steganografi (steganography) merupakan ilmu dan seni
menyembunyikan pesan sedemikian rupa sehingga orang lain tidak
menyadari ada sesuatu di dalam pesan tersebut. Tujuan steganografi
adalah menyembunyikan pesan ke dalam pesan lainnya dengan maksud
tidak mengizinkan pihak asing untuk mendeteksi keberadaan pesan
rahasia. Kata steganografi berasal dari bahasa Yunani yang terdiri atas
steganos dan graphein. Steganos berarti tersembunyi atau terselubung dan
graphein berarti menulis [6]. Jadi, kurang lebih steganografi berarti
menulis tulisan yang tersembunyi.
Steganografi sudah dikenal sejak zaman Romawi dan Yunani
kuno. Catatan tertua mengenai penggunaan steganografi tercatat pada
masa Yunani kuno. Pada saat itu, penguasa Yunani, Histiaues, sedang
ditawan oleh Raja Darius di Susa. Histiaeus ingin mengirim pesan rahasia
kepada menantunya, Aristagoras, di Miletus. Untuk itu, Histiaeus
mencukur rambut budaknya dan menatokan pesan rahasia yang ingin
dikirim di kepala budak tersebut. Kemudian setelah rambut budak tersebut
tumbuh cukup lebat, ia dikirim ke Miletus. Pada tempat tujuannya, rambut
Tinta yang tidak tampak merupakan salah satu metode yang
populer dalam bidang steganografi. Bangsa Romawi telah menggunakan
tinta yang tidak tampak ini untuk menulis pesan di antara baris-baris pesan
yang ditulis dengan tinta biasa. Tinta yang tidak tampak ini dapat dibuat
dari sari jeruk atau susu. Ketika dipanaskan, warna tinta yang tidak tampak
akan menjadi gelap dan tulisannya akan menjadi dapat terbaca. Tinta yang
tidak tampak ini juga digunakan dalam Perang Dunia II.
Pada abad ke 20, selama perang Boer, Lord Boden Powell
(pendiri gerakan kepanduan) menggambar peta-peta posisi musuh pada
sayap kupu-kupu agar gambar peta sasaran tersebut terkamuflase.
Dari contoh-contoh steganografi konvensional tersebut, dapat
dilihat bahwa teknik steganografi konvensional berusaha merahasiakan
komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase
pesan. Maka sesungguhnya prinsip dasar dalam steganografi lebih
dikonsentrasikan pada kerahasian komunikasinya bukan pada datanya [7].
Steganografi sering dihubungkan dengan kriptografi walaupun
sebenarnya kedua teknik tersebut tidak sama. Kriptografi merahasiakan
makna pesan sementara eksistensi pesan tetap ada, sedangkan steganografi
menutupi keberadaan pesan. Steganografi memungkinkan pengiriman
pesan secara rahasia tanpa diketahui bahwa pesan sedang dikirim. Hal ini
membuat pihak ketiga tidak menyadari keberadaan pesan. Sebaliknya,
penggunaan kriptografi akan menarik kecurigaan pihak ketiga bahwa ada
Dengan adanya komputer, steganografi memperoleh kemajuan
yang sangat pesat. Steganografi saat ini mulai menggunakan file
multimedia sebagai media untuk menyembunyikan pesan rahasia, baik itu
berupa gambar (citra), suara, atau video. Dalam menyembunyikan pesan,
ada beberapa kriteria yang harus dipenuhi, yaitu [5] :
1. Fidelity
Mutu media penampung tidak banyak berubah akibat penyisipan.
Perubahan yang terjadi harus tidak dapat dipersepsi indera manusia.
2. Robustness
Data yang disembunyikan harus tahan (robust) terhadap berbagai
operasi manipulasi yang dilakukan pada media penampung. Operasi
manipulasi tersebut seperti pengubahan kontras, penajaman,
pemampatan, rotasi, perbesaran gambar, dan pemotongan (cropping).
3. Recovery
Pesan yang disembunyikan harus dapat diungkap kembali (reveal).
Tujuan steganografi adalah menyembunyikan informasi, sehingga
sewaktu-waktu informasi yang disembunyikan ini harus dapat diambil
kembali untuk selanjutnya dapat digunakan sesuai keperluan.
2.2.2 SteganografiCitra
Steganografi citra merupakan salah satu cabang dari steganografi.
Penyisipan pesan rahasia pada steganografi citra dilakukan ke dalam
terpakai atau data yang tidak penting. Steganografi mengambil keuntungan
dari ruang-ruang yang tidak terpakai tersebut untuk digantikan dengan
pesan yang perlu disembunyikan. File tersebut kemudian ditukar tanpa
seseorang mengetahui apa yang sebenarnya berada di dalamnya.
Konsep steganografi citra mengambil bagian dari kelemahan
indera penglihatan manusia. Mata manusia mempunyai sifat kurang peka
terhadap perubahan kecil yang terjadi pada objek yang dalam kasus ini
adalah citra. Sehingga, manusia sulit membedakan mana citra yang asli
dan mana citra yang sudah ditukar atau yang di dalamnya terdapat pesan.
Contoh citra asli yang di dalamnya tidak terdapat pesan dengan citrayang
di dalamnya terdapat pesan (disebut juga citra stego) ditunjukkan oleh
Tabel 2.2.
Tabel 2.2 Perbandingan citraasli dengan citrastego [9]
Citra tanpa pesan tersembunyi (Citraasli) 16778 byte
Citra asli yang digunakan pada Tabel 2.2 berukuran 15 Kb dan
berekstensi JPEG. Citrastego yang dihasilkan berisi pesan yang berukuran
1,5 Kb. Kedua citratersebut hasilnya terlihat tetap sama [9].
2.3Discrete Cosine Transformation (DCT)
2.3.1 Pengertian Discrete Cosine Transformation
Discrete Cosine Transformation (DCT) adalah suatu metode
transformasi sinyal ke dalam dasar komponen frekuensi. DCT beroperasi
dengan memisahkan citra ke dalam bagian-bagian dari frekuensi yang
berbeda. Selain itu, DCT mempunyai kerapatan tingkat energi yang cukup
baik. Hal ini disebabkan sebagian besar sinyal informasi cenderung
terkonsentrasi di frekuensi rendah [10].
DCT sebagian besar digunakan dalam teknik kompresi citra dan
video. Sebagai contoh, DCT digunakan dalam kompresi citra JPEG,
MJPEG, MPEG dan kompresi video. Pada kompresi citra, komputasi
dilakukan pada DCT N x N blok suatu citra dan hasilnya dikuantisasi
kemudian dilewatkan pada proses pembuatan kode entropi. Dalam hal ini,
N adalah 8 dan DCT diaplikasikan pada masing-masing baris dan kolom
[10]. Gambar 2.1 menampilkan penerapan dari DCT N x N blok.
Selain digunakan untuk kompresi citra, DCT juga dapat
digunakan untuk menyembunyikan informasi/pesan. Pesan tersebut
disisipkan pada sinyal tetapi bukan pada noise [11]. Pada umumnya
kompresi dan penyembunyian pesan dapat dilakukan secara bersamaan.
Hal ini dapat ditunjukkan oleh diagram blok proses kompresi dan
penyembunyian pesan pada Gambar 2.2.
Data citra asli blok 8x8
DCT Entropy
coding Embedder
Kuantisasi
Data citra terkompresi Pengkuantisasi
Pesan Enkripsi
key
Tabel huffman
Data citra terkompresi
Decoding Dekuantisasi Invers DCT Pengkuantisasi
Tabel huffman Data citra
rekonstruksi
Gambar 2.2 Diagram blok proses kompresi dan penyembunyian pesan [12]
Untuk lebih menghemat waktu, penyembunyian pesan dapat
dilakukan pada media yang telah dikompresi [11]. Dalam hal ini, media
yang dikompresi tersebut adalah citra berekstensi JPEG. Penyembunyian
pesan pada media yang telah dikompresi sehingga menghasilkan citra
stego seperti ditunjukkan oleh diagram blok proses penyembunyian pesan
Data Citra Asli Terkompresi
blok 8x8
DCT Kuantisasi Embedder Dekuantisasi IDCT
Citra Stego
Pesan Enkripsi
key
Gambar 2.3 Diagram blok penyembunyian pesan [13]
Pesan yang telah disembunyikan dalam citra harus dapat dibaca
kembali supaya penerima pesan mengetahui apa yang akan disampaikan
pengirim pesan. Supaya pesan dapat dibaca kembali perlu dilakukan
ekstraksi pesan pada citra stego. Proses ekstraksi pesan pada citra stego
ditunjukkan oleh diagram blok proses ekstraksi pesan pada Gambar 2.4.
Citra Stego blok 8x8
DCT Kuantisasi Decoder Dekripsi
key
Pesan
Gambar 2.4 Diagram blok ekstraksi pesan [13]
2.3.2 Persamaan DCT
Persamaan DCT dapat didefinisikan sebagai berikut [4][3] :
⎟
yang disebut koefisien DCT dengan u adalah posisi baris matriks koefisien
DCT dan v adalah posisi kolom matriks koefisien DCT. f(x,y) adalah
posisi baris dan y adalah posisi kolom. N adalah ukuran blok matriks dari
operasi DCT. C(u) sama dengan C(v) dan didefinisikan sebagai berikut :
Dalam hal ini, ukuran blok matriks piksel citra yang digunakan
adalah 8 x 8, sehingga N sama dengan 8. Persamaan DCT tersebut dapat
dituliskan sebagai berikut [3] :
⎟
Contoh sederhana nilai piksel citra f(x,y) yang dihitung
menggunakan persamaan DCT (2.3), sehingga menghasilkan koefisien
DCT F(u,v) ditunjukkan pada Tabel 2.3.
Tabel 2.3 Piksel citradan koefisien DCT [4]
Piksel citra
f(x,y)
Koefisien DCT
F(u,v)
2.4 Kuantisasi
Setelah masing-masing matriks 8 x 8 koefisien DCT didapatkan,
koefisien DCT akan dibagi dengan nilai-nilai yang bersesuaian dengan tabel
kuantisasi yang digunakan. Hasil pembagian tersebut dibulatkan ke bilangan
bulat terdekat. Proses kuantisasi ini merupakan proses untuk mereduksi
sebagian besar komponen frekuensi tinggi [14]. Persamaan kuantisasi
didefinisikan sebagai berikut [3] :
⎥
dengan FQ(u,v) adalah matriks hasil kuantisasi, F(u,v) adalah matriks
koefisien DCT, dan Q(u,v) adalah 64 elemen tabel matriks pengkuantisasi.
Tabel kuantisasi yang digunakan untuk proses kuantisasi ini adalah tabel
kuantisasi standar (Default Quantization Table) yang diberikan oleh JPEG.
Tabel kuantisasi standar JPEG dihasilkan oleh komite JPEG dan
dapat digunakan untuk teknik kompresi dengan hasil paling baik. Tabel
kuantisasi standar JPEG tersebut ditunjukkan pada Tabel 2.4.
Tabel 2.4 Tabel kuantisasi standar JPEG [14].
⎥
Berdasarkan Tabel 2.4, nilai kuantisasi mulai dari kiri atas matriks hingga
kanan bawah matriks secara umum mengalami peningkatan nilai. Nilai
pembagian yang semakin besar hingga kanan bawah matriks pengkuantisasi
Frekuensi tinggi mempunyai nilai nol (0) yang merepresentasikan
informasi yang kurang penting dan tidak akan digunakan. Contoh
pengkuantisasian koefisien DCT F(u,v) dengan tabel kuantisasi standar Q(u,v),
sehingga menghasilkan kuantisasi DCT FQ(u,v) ditunjukkanoleh Tabel 2.5.
Tabel 2.5 Pengkuantisasian koefisien DCT [4]
Koefisien DCT
F(u,v)
Tabel Kuantisasi Standar Q(u,v)
Kuantisasi DCT
FQ(u,v)
Berdasarkan Tabel 2.5, bagian kiri atas matriks hasil kuantisasi DCT
merupakan frekuensi rendah dan merepresentasikan informasi yang penting.
Frekuensi rendah yang mempunyai nilai tidak nol akan digunakan untuk
merekonstruksi citra [9].
2.5 Embedder dan Decoder 2.5.1 Embedder
Proses embedder merupakan proses penyisipan atau
penyembunyian pesan. Algoritma yang digunakan untuk menyisipkan
pesan ke dalam citra dalam hal iniadalah JSteg. JSteg diperkenalkan oleh
Derek Upham dan digunakan pada steganografi untuk citra JPEG [3].
kuantisasi. Matriks kuantisasi DCT yang bernilai 0 dan 1 tidak akan
dimodifikasi. Nilai selain 0 dan 1 akan dimodifikasi dan digunakan untuk
menyisipkan pesan [9]. Algoritma penyisipan dilakukan dengan cara
mengganti LSB (Least Significant Bit) nilai kuantisasi DCT dengan 1 bit
pesan secara sekuensial [3]. Algoritma JSteg tidak menggunakan enkripsi
pada pesan sehingga tidak memerlukan kunci (key) untuk membuka pesan.
Pada saat dilakukan penyembunyian pesan, pertama kali pada
citra akan disisipkan penanda atau flag. Flag ini digunakan untuk
menandai bahwa di dalam citra tersebut terdapat pesan rahasia. Flag yang
disisipkan ke dalam citra berupa karakter ’$+39’. Jumlah bit karakter flag
tersebut adalah 24.
Citra yang dihasilkan setelah penyembunyian pesan akan
mempunyai informasi tentang pesan yang disembunyikan. Informasi
tersebut terletak mulai pada bagian pojok kiri atas citra menuju ke pojok
kanan citra. Gambar 2.5 menunjukkan format informasi pesan tersembunyi
pada steganografi citra.
+---+---+--- ---
+---| FLAG | A | B B B . . . B | C C C C C C . . .
+---+---+--- ---+---
Gambar 2.5 Format informasi pesan tersembunyi [9]
Berdasarkan Gambar 2.5, FLAG terdiri dari 24 bit. A selalu
terdiri dari 5 bit yang menunjukkan jumlah bit field B. B merupakan bit
yang menunjukkan panjang byte pesan yang akan disembunyikan. Jumlah
pesan yang akan disembunyikan. Setiap karakter pesan dikonversi menjadi
8 bit.
Contoh ilustrasi penyisipan karakter ’$’ yang merupakan karakter
pertama dari flag ditunjukkan pada Gambar 2.6. Karakter flag ’$’ ini
hanya terdiri dari enam bit.
Komputasi Kuantisasi Komputasi
DCT
Piksel Citra Koefisien DCT
Bit kuantisasi DCT
Bit karakter ‘$’ disisipkan secara berurutan pada LSB kuantisasi DCT
yang tidak 0 dan tidak 1
Kuantisasi DCT
Konversi ke Biner
[$] = [100100]
Konversi ke Desimal
Bit kuantisasi DCT yang disisipi bit karakter ‘$’ Kuantisasi DCT yang
terdapat bit karakter ‘$’
Gambar 2.6 Ilustrasi penyisipan karakter pertama flag ’$’
Kode warna ungu pada Gambar 2.6 menunjukkan nilai kuantisasi
DCT yang akan digunakan untuk menyisipkan/menyembunyikan bit
karakter ’$’. Bit berwarna ungu yang diberi garis bawah menunjukkan
mulai dari MSB (Most Significant Bit) sampai dengan LSB secara
berurutan. LSB yang berwarna hitam pada bit berwarna ungu
menunjukkan bit karakter ’$’ yang telah disisipkan pada bit kuantisasi
DCT.
Setiap bit karakter ‘$’ disisipkan pada setiap nilai kuantisasi yang
tidak 0 dan 1 secara berurutan dari kolom pertama menuju kolom
kedelapan kemudian diulangi pada baris selanjutnya. Jika proses
penyisipan pada satu blok 8x8 kuantisasi DCT telah selesai, maka
dilanjutkan ke blok matriks berikutnya.
2.5.2 Decoder
Proses decoder merupakan proses ekstraksi pesan yang terdapat
di dalam citra. Ekstraksi pesan dilakukan dengan cara mengambil LSB
setiap nilai kuantisasi DCT. Urutan pengambilan LSB ini sama dengan
saat penyisipan bit, yaitu mulai dari posisi awal matriks kuantisasi DCT
(posisi kiri atas).
Ekstraksi pertama kali dilakukan pada 24 bit pertama yang
menunjukkan flag. 24 bit pertama tersebut merupakan 24 nilai pertama
kuantisasi DCT yang tidak 0 atau 1. Bit yang telah diekstrak tersebut
selanjutnya dikonversi kembali menjadi karakter. Bila karakter yang
diekstrak tersebut adalah ’$+39’, artinya citra tersebut terdapat pesan yang
disembunyikan dan dapat dilakukan proses ekstraksi selanjutnya. Tetapi
Proses ekstraksi kedua setelah ekstraksi flag, yaituekstraksi lima
bit yang menunjukkan jumlah bit untuk menampung byte pesan yang
disembunyikan. Ekstraksi yang ketiga memiliki panjang sesuai dengan
yang ditunjukkan ekstraksi kedua. Ekstraksi ketiga ini untuk mendapatkan
ukuran byte pesan atau panjang pesan yang disembunyikan. Ekstraksi
keempat berfungsi untuk mengekstrak pesan rahasia yang disembunyikan
di dalam citra.
Contoh ilustrasi pengekstraksian pesan dari LSB kuantisasi DCT
ditampilkan pada Gambar 2.7.
Komputasi Kuantisasi Komputasi
DCT
Piksel Citra Stego Koefisien DCT Stego
Bit kuantisasi DCT Stego
6 LSB kuantisasi DCT stego diekstraksi
Kuantisasi DCT Stego Konversi ke Biner
[ 1 0 0 1 0 0 ]
Blok LSB
Konversi ke Karakter
[ $ ]
Karakter ‘$’
Gambar 2.7 Ilustrasi pengekstraksian karakter pertama flag ’$’
Pengekstraksian pesan berdasarkan Gambar 2.7 merupakan ilustrasi
pengekstraksian karakter pertama ’$’ pada flag citra stego. Enam LSB
nilai kuantisasi DCT stego diekstraksi kemudian dimasukkan ke dalam
blok LSB. Blok LSB yang dihasilkan berisi bit 100100. Blok LSB tersebut
Desimal tersebut kemudian dikonversi ke dalam karakter ASCII sehingga
dihasilkan kembali karakter ’$’.
2.6 Dekuantisasi
Matriks yang diperoleh setelah proses decoding harus dilakukan
dekuantisasi. Dekuantisasi ini berfungsi untuk mendapatkan kembali matriks
koefisien DCT. Persamaan dekuantisasi dapat didefinisikan sebagai berikut :
(2.5)
dengan F(u,v) adalah matriks koefisien DCT, FQ(u,v) adalah matriks hasil
proses decoding, dan Q(u,v) adalah tabel matriks kuantisasi standar.
2.7 Invers DCT
Setelah mendapatkan matriks koefisien DCT dari proses
dekuantisasi, langkah berikutnya adalah memperoleh data yang
merepresentasikan citra. Caranya adalah dengan menginverskan matriks
koefisien DCT. Persamaan invers DCT didefinisikan sebagai berikut [11][3] :
⎟
adalah posisi kolom matriks invers DCT. F(u,v) adalah matriks koefisien DCT
matriks koefisien DCT. C(u) sama dengan C(v) dan didefinisikan sebagai
berikut :
(2.7)
2 1
jika u = 0
C(u) =
1 jika u > 0
2.8 Transformasi color space RGB ke YCbCr
Citra berwarna mempunyai tiga komponen warna atau color space
yaitu Red, Green, dan Blue (RGB). Red diwakili oleh komponen/keping
pertama, green oleh keping kedua, dan blue oleh keping ketiga. Tiga
komponen warna RGB ini dilakukan proses transformasi warna dengan tujuan
untuk mendapatkan color space yang dapat diproses dengan metode DCT.
Color space RGB kurang efisien untuk pemrosesan sinyal citra karena di
dalamnya terdapat banyak redudansi yang akan mengurangi kualitas citra.
Proses transformasi warna dilakukan dengan mengubah format color
space RGB ke dalam color space YCbCr. Color space YCbCr merupakan
standar pengembangan pada citra JPEG. Color space ini mempunyai satu
komponen luminance (Y) dan dua komponen chrominance (Cb dan Cr) [15].
Gambar 2.8 menampilkan color space RGB dan YCbCr.
Persamaan konversi dari RGB ke YCbCr untuk citra JPEG
didefinisikan sebagai berikut [16] :
(2.8)
Setelah proses transformasi citra dilakukan, maka nilai masing-masing
komponen Y, Cb, dan Cr dikelompokkan menjadi blok matriks 8 x 8 dan
dilakukan proses perhitungan koefisien DCT [15].
2.9 Transformasi color space YCbCr keRGB
Pada saat dilakukan proses penyembunyian pesan, color space pada
citra adalah YCbCr yang terdiri dari satu komponen luminance (Y) dan dua
komponen chrominance (Cb dan Cr). Setelah proses invers DCT, color space
harus ditransformasi kembali ke dalam color space RGB. Persamaan konversi
dari YCbCr ke RGB didefinisikan sebagai berikut [16] :
Bab ini akan membahas tentang analisis dan perancangan program
aplikasi steganografi citra menggunakan metode DCT. Format file citra yang
digunakan yaitu *.JPEG (atau *.JPG). Perangkat lunak yang digunakan untuk
implementasi program ini adalah MATLAB.
3.1Analisis Sistem
3.1.1 Kebutuhan Hardware
a. Pentium III / IV CPU 1,7GHz
b. RAM 512 Mb
c. Harddisk 20 Gb
d. Mouse, Keyboard, Monitor
3.1.2 Kebutuhan Software
a. Windows 98 / 2000 / XP
b. Matlab 7.0
3.1.3 DFD (Data Flow Diagram)
Steganografi dapat dimodelkan dengan menggunakan DFD.
Pemodelan ini berdasarkan pada cara kerja metode DCT. DFD yang
digunakan dalam penelitian ini adalah model Gane dan Sarson. Model
DFD tersebut dapat dijelaskan sebagai berikut :
1. DFD Level 0 (Diagram Konteks)
DFD level 0 merupakan level tertinggi dari DFD yang
menggambarkan semua aliran data masukan ke sistem dan aliran data
keluaran dari sistem. Entitas eksternal data hanya ada satu, yaitu user.
Proses yang terdapat pada level ini juga hanya ada satu, yaitu Sistem
Penyembunyian / Ekstraksi Pesan pada Citra. Gambar 3.1
menampilkan DFD level 0 Sistem Penyembunyian / Ekstraksi Pesan
pada Citra.
User
0
Sistem
Penyembunyian / Ekstraksi Pesan pada Citra pesan asli, citra stego
pesan asli, citra asli, citra stego
Gambar 3.1 DFD Level 0
User merupakan orang yang akan menggunakan perangkat
lunak steganografi citra. User harus memasukkan data pesan asli, citra
asli, dan citra stego supaya Sistem Penyembunyian / Ekstraksi Pesan
pada Citra dapat berjalan. Data-data yang merupakan hasil dari
pemrosesan data pada sistem ini yaitu pesan asli dan citra stego.
2. Diagram Dekomposisi
Diagram dekomposisi digunakan untuk membagi sebuah
proses yang lebih rinci. Proses-proses yang lebih rinci tersebut
ditunjukkan pada Gambar 3.2.
0
Sistem
Penyembunyian / Ekstraksi Pesan pada Citra
1.0
Penyembunyian Pesan
2.0
Ekstraksi Pesan
1.1P
Inisialisasi Koefisien DCT
1.2P Proses Penyembunyian
Pesan
2.1P Inisialisasi Koefisien DCT
Stego
2.2P
Proses Ekstrak Pesan 1.3P
Tulis Citra Stego
Gambar 3.2 Diagram Dekomposisi
Proses-proses yang dapat dilakukan user berdasarkan
Gambar 3.2, yaitu :
a) Penyembunyian Pesan
Proses ini dibagi menjadi tiga bagian subproses, yaitu Inisialisasi
Koefisien DCT, Proses Penyembunyian Pesan, dan Tulis Citra
Stego.
b) Ekstraksi Pesan
Proses ini dibagi menjadi dua bagian subproses, yaitu Inisialisasi
Koefisien DCT Stego dan Proses Ekstrak Pesan.
3. DFD Level 1
DFD level 1 merupakan perincian proses-proses pada
Penyembunyian Pesan dan Ekstraksi Pesan. Gambar 3.3 menunjukkan
entitas eksternal dan aliran data yang terlibat dalam kedua proses
tersebut.
User
1.0
Penyembunyian Pesan
2.0
Ekstraksi Pesan citra stego
pesan asli citra stego pesan asli, citra asli
Gambar 3.3 DFD Level 1
Penjelasan secara rinci masing-masing proses
Penyembunyian Pesan dan Ekstraksi Pesan berdasarkan Gambar 3.3,
yaitu :
a) Penyembunyian Pesan
Ketika melakukan proses penyembunyian pesan, user harus
memasukkan data pesan asli dan citra asli. Data pesan asli dan citra
asli tersebut selanjutnya akan diolah oleh proses Penyembunyian
Pesan. Hasil pengolahan tersebut diterima user berupa data citra
stego.
b) Ekstraksi Pesan
Ketika melakukan proses ekstrak pesan, user harus memasukkan
data citra stego. Data tersebut selanjutnya akan diolah oleh proses
Ekstraksi Pesan. Hasil pengolahan tersebut diterima user berupa
4. DFD Level 2
DFD level 2 merupakan perincian proses-proses pada
diagram dekomposisi tingkat kedua. Proses tersebut ada lima, yaitu
Inisialisasi Koefisien DCT, Proses Penyembunyian Pesan, Tulis Citra
Stego, Inisialisasi Koefisien DCT Stego, dan Proses Ekstrak Pesan.
Gambar 3.4 menunjukkan entitas eksternal dan aliran data yang terlibat
dalam kelima proses tersebut.
1.1P
Inisialisasi Koefisien DCT
2.1P Inisialisasi Koefisien DCT
Stego
Tulis Citra Stego
2.2P
Proses Ekstrak Pesan citra asli, pesan asli
pesan asli, blok kuantisasi DCT
blok kuantisasi DCT yang terdapat LSB pesan citra stego
citra stego
blok kuantisasi DCT Stego
pesan asli
Gambar 3.4 DFD Level 2
Rincian proses yang terjadi pada penyembunyian pesan
dibagi menjadi tiga, yaitu :
a) Inisialisasi Koefisien DCT
Data citra asli dan pesan asli yang dimasukkan oleh user akan
diolah oleh proses inisialisasi koefisien DCT. Data keluaran dari
proses ini adalah pesan asli dan blok kuantisasi DCT. Kedua data
b) Proses Penyembunyian Pesan
Data masukan untuk proses penyembunyian pesan ini adalah pesan
asli dan blok kuantisasi DCT. Kedua data tersebut diolah sehingga
akan dihasilkan data blok kuantisasi DCT yang di dalamnya
terdapat LSB pesan.
c) Tulis Citra Stego
Blok kuantisasi DCT yang di dalamnya terdapat LSB pesan
digunakan sebagai data masukan untuk proses tulis citra stego.
Data masukan tersebut diolah sehingga akan dihasilkan data citra
stego.
Rincian proses yang terjadi pada ekstraksi pesan dibagi
menjadi tiga, yaitu :
a) Inisialisasi Koefisien DCT Stego
Data citra stego yang dimasukkan oleh user akan diolah oleh
proses inisialisasi koefisien DCT stego. Data keluaran dari proses
ini adalah blok kuantisasi DCT stego. Data tersebut akan
digunakan untuk proses ekstrak pesan.
b) Proses Ekstrak Pesan
Blok kuantisasi DCT stego digunakan sebagai data masukan untuk
proses ekstrak pesan. Data masukan tersebut diolah sehingga akan
3.1.4 Diagram Alir
Setiap proses yang terjadi di dalam sistem dapat dijelaskan
dengan menggunakan diagram alir. Berikut ini beberapa diagram alir dari
proses yang ada dalam DFD.
3.1.4.1 Algoritma Penyembunyian Pesan
Berdasarkan proses yang terjadi dalam DFD, maka algoritma
proses penyembunyian pesan pada citra dibagi menjadi tiga bagian, yaitu
inisialisasi koefisien DCT, proses penyembunyian pesan, dan tulis citra
stego.
1. Inisialisasi koefisien DCT
a. Masukkan file citra bertipe JPEG yang akan digunakan untuk
menyembunyikan pesan.
b. Masukkan file pesan bertipe txt yang akan disembunyikan.
c. Hitung panjang karakter pesan dari file pesan yang dimasukkan.
d. Transformasi citra menjadi piksel.
e. Konversi piksel warna RGB ke komponen YCbCr.
f. Kelompokkan piksel komponen ke dalam n blok matriks 8 x 8.
g. Hitung koefisien DCT pada setiap blok matriks piksel.
h. Hitung kuantisasi DCT pada setiap blok matriks koefisien DCT.
Algoritma penyembunyian pesan untuk proses inisialisasi koefisien
DCT tersebut dapat digambarkan dengan diagram alir seperti
START
Masukkan file citra
Masukkan file pesan Ekstensi citra
.JPEG ?
Tidak
Ya
Transformasi citra menjadi piksel Ekstensi pesan
.TXT?
Tidak
Ya
Hitung panjang karakter pesan
Konversi piksel warna RGB ke piksel komponen YCbCr
Citra RGB?
Ya Tidak
Hitung koefisien DCT setiap blok matriks piksel
Pengelompokkan piksel menjadi n blok matriks 8 x 8
Hitung kuantisasi DCT setiap blok matriks koefisien DCT
2
Gambar 3.5 Diagram alir inisialisasi koefisien DCT
2. Proses penyembunyian pesan
a. Konversi flag ‘$+39’ menjadi bit yang berjumah 24.
b. Konversi panjang pesan menjadi bit.
c. Hitung jumlah bit panjang pesan.
e. Konversi pesan menjadi bilangan 8 bit.
f. Kelompokkan kuantisasi DCT ke dalam n blok matriks 8 x 8.
g. Konversi kuantisasi DCT menjadi bilangan 8 bit.
h. Ganti 24 LSB pertama kuantisasi DCT dengan LSB flag secara
berurutan.
i. Ganti 5 LSB kuantisasi DCT berikutnya dengan LSB jumlah bit
panjang pesan secara berurutan.
j. Ganti LSB kuantisasi DCT selanjunya dengan LSB panjang pesan
secara berurutan.
k. Ganti LSB kuantisasi DCT selanjunya dengan LSB pesan secara
berurutan.
l. Konversi bit kuantisasi DCT menjadi desimal kuantisasi DCT.
Algoritma penyembunyian pesan untuk proses penyembunyian pesan
tersebut dapat digambarkan dengan diagram alir seperti ditunjukkan
pada Gambar 3.6.
1
Konversi desimal panjang pesan menjadi bit
Hitung jumlah bit panjang pesan Konversi flag ‘$+39’ menjadi bit yang
berjumah 24
A
Masih ada bit pesan untuk disembunyikan?
Ya
Kuantisasi DCT != 0 && Kuantisasi DCT != 1
Ya
Konversi desimal kuantisasi DCT menjadi bilangan 8 bit
Ganti LSB kuantisasi DCT selanjutnya dengan LSB pesan
Konversi bit kuantisasi DCT menjadi desimal kuantisasi DCT Tidak
Tidak
3 Ganti 5 LSB kuantisasi DCT berikutnya
dengan LSB jumlah bit panjang pesan
Ganti LSB kuantisasi DCT selanjunya dengan LSB panjang pesan A
Ganti 24 LSB pertama kuantisasi DCT dengan LSB flag secara berurutan Konversi pesan asli menjadi bilangan
desimal ASCII
Konversi desimal ASCII pesan menjadi bilangan 8 bit
Pengelompokkan kuantisasi DCT menjadi n blok matriks 8 x 8
Konversi desimal jumlah bit panjang pesan menjadi bilangan 5 bit
3. Tulis citra stego
a. Kelompokkan kuantisasi DCT ke dalam n blok matriks 8 x 8.
b. Hitung dekuantisasi DCT pada setiap blok matriks kuantisasi DCT.
c. Hitung invers koefisien DCT (IDCT) pada setiap blok matriks
dekuantisasi untuk mendapatkan kembali data piksel pada citra.
d. Konversi piksel komponen YCbCr ke piksel warna RGB.
e. Transformasi piksel menjadi citrastego.
Algoritma penyembunyian pesan untuk proses tulis citra stego tersebut
dapat digambarkan dengan diagram alir seperti ditunjukkan pada
Gambar 3.7.
2
Hitung dekuantisasi DCT setiap blok matriks kuantisasi DCT
Hitung invers DCT (IDCT) setiap blok matriks dekuantisasi DCT Pengelompokkan kuantisasi DCT
menjadi n blok matriks 8 x 8
Konversi piksel komponen YCbCr ke piksel warna RGB
Transformasi piksel menjadi citra stego
FINISH
3.1.4.2 Algoritma Ekstraksi Pesan
Berdasarkan proses yang terjadi dalam DFD, maka algoritma
ekstraksi pesan pada citra dibagi menjadi dua bagian, yaitu inisialisasi
koefisien DCT stego dan proses ekstrak pesan.
1. Inisialisasi koefisien DCT stego
a. Masukkan file citra stego bertipe .JPEG.
b. Transformasi citra menjadi piksel.
c. Konversi piksel warna RGB ke komponen YCbCr.
d. Kelompokkan piksel ke dalam n blok matriks 8 x 8.
e. Hitung koefisien DCT pada setiap blok matriks piksel.
f. Hitung kuantisasi DCT pada setiap blok matriks koefisien DCT.
Algoritma ekstraksi pesan untuk proses inisialisasi koefisien DCT
stego tersebut dapat digambarkan dengan diagram alir seperti
ditunjukkan pada Gambar 3.8.
START
Masukkan citra
Ekstensi citra .JPEG ?
Tidak
Ya
Transformasi citra menjadi piksel
Citra RGB ?
Ya Tidak
B
Konversi piksel warna RGB ke piksel komponen YCbCr
Hitung koefisien DCT setiap blok matriks piksel
Pengelompokkan piksel menjadi n blok matriks 8 x 8
Hitung kuantisasi DCT setiap blok matriks koefisien DCT
2 B
Gambar 3.8 (lanjutan) Diagram alirinisialisasi koefisien DCT stego
2. Proses ekstrak pesan
a. Kelompokkan kuantisasi DCT ke dalam n blok matriks 8 x 8.
b. Konversi kuantisasi DCT menjadi bilangan 8 bit.
c. Ambil 24 LSB pertama pada setiap bit kuantisasi DCT sebagai bit
flag citra.
d. Konversi 24 LSB flag citra menjadi karakter.
e. Ambil 5 LSB berikutnya pada setiap bit kuantisasi DCT sebagai
jumlah bit panjang pesan.
f. Konversi 5 LSB jumlah bit panjang pesan menjadi desimal.
g. Ambil LSB setiap bit kuantisasi DCT selanjutnya sebanyak jumlah
bit panjang pesan, simpan sebagai panjang pesan.
i. Ambil LSB setiap bit kuantisasi DCT selanjutnya sebanyak 8 kali
panjang pesan.
j. Konversi blok n x 8 LSB menjadi desimal ASCII.
k. Konversi desimal ASCII menjadi ASCII pesan.
Algoritma ekstraksi pesan untuk proses ekstrak pesan tersebut dapat
digambarkan dengan diagram alir seperti ditunjukkan pada Gambar
3.9.
Ambil bit flag citra dari 24 LSB pertama bit kuantisasi DCT
Konversi jumlah bit panjang pesan menjadi desimal
Tidak Kuantisasi DCT != 0 Ya
&& Kuantisasi DCT != 1
Ambil panjang pesan dari LSB bit kuantisasi DCT sebanyak jumlah bit panjang pesan
Konversi panjang pesan menjadi desimal
Ambil LSB setiap bit kuantisasi DCT selanjutnya sebanyak 8 kali panjang pesan
2
Pengelompokkan kuantisasi DCT menjadi n blok matriks 8 x 8
Konversi desimal kuantisasi DCT menjadi bilangan 8 bit
Ambil jumlah bit panjang pesan dari 5 LSB pertama bit kuantisasi DCT Konversi bit flag citra menjadi karakter
B
C
Konversi blok n x 8 LSB menjadi desimal ASCII
Konversi desimal ASCII menjadi ASCII pesan
FINISH
Gambar 3.9 (lanjutan) Diagram alirproses ekstrak pesan
3.2Perancangan Sistem
Perancangan sistem aplikasi steganografi citramenggunakan metode
DCT ini pada dasarnya merupakan perancangan user interface. Perancangan
user interface tersebut, yaitu :
3.2.1 Form Menu Utama
Form menu utama ditampilkan pertama kali ketika program
dijalankan. Gambar 3.10 menunjukkan rancangan form menu utama.
Steganografi Citra Steganografi Citra
File Proses Info
Bersihkan Citra
Bersihkan Pesan
Keluar
Penyembunyian Pesan
Ekstraksi Pesan
Tentang
Bantuan
Keterangan :
• File : merupakan menu yang berisi submenu bersihkan citra, bersihkan
pesan, dan keluar.
• Bersihkan Citra : merupakan submenu dari menu File yang berfungsi
untuk menghapus citra asli dan citra stego.
• Bersihkan Pesan : merupakan submenu dari menu File yang berfungsi
untuk menghapus pesan.
• Keluar : merupakan submenu dari menu File yang berfungsi untuk
menutup aplikasi.
• Proses : merupakan menu yang berisi submenu penyembunyian pesan
dan ekstraksi pesan.
• Penyembunyian Pesan : merupakan submenu dari menu Proses yang
berfungsi untuk membuka form penyembunyianpesan.
• Ekstraksi Pesan : merupakan submenu dari menu Proses yang
berfungsi untuk membuka form ekstraksi pesan.
• Info : merupakan menu yang berisi submenu tentangdan bantuan
• Tentang : merupakan submenu dari menu Info yang berfungsi untuk
membuka form tentang.
• Bantuan : merupakan submenu dari menu Info yang berfungsi untuk
3.2.2 Form Penyembunyian Pesan
Form penyembunyian pesan akan ditampilkan ketika user
memilih submenu Penyembunyian Pesan pada menu Proses. Gambar 3.11
menunjukkan rancangan form penyembunyian pesan.
Steganografi Citra
Steganografi Citra File Proses Info
Citra Asli
Gambar Asli CITRA ASLI
Pesan
Buka Citra Buka Pesan Simpan Citra Stego Proses
Penyembunyian
PESAN
Hasil Citra Stego
Gambar Asli CITRA STEGO
Gambar 3.11 Rancangan form penyembunyian pesan
Keterangan :
• CITRA ASLI : merupakan tampilan dari citra yang akan dimodifikasi
untuk menyisipkan pesan dan akan ditampilkan ketika tombol Buka
Citra ditekan.
• PESAN : merupakan masukan untuk pesan yang akan disisipkan ke
dalam citra asli.
• Buka Citra : merupakan tombol yang digunakan untuk membuka citra
asli yang terdapat pada file. Citra asli selanjutnya akan ditampilkan
• Buka Pesan : merupakan tombol yang digunakan untuk membuka
pesan dari file. Pesan selanjutnya ditampilkan pada kotak PESAN.
• Proses Penyembunyian : merupakan tombol untuk melakukan proses
penyembunyian pesan di dalam citra.
• CITRA STEGO : merupakan tampilan dari citra stego ketika tombol
Proses Penyembunyian ditekan.
• Simpan Citra Stego : merupakan tombol yang digunakan untuk
menyimpan citra stego ke dalam file.
3.2.3 Form Ekstraksi Pesan
Form ekstraksi pesan akan ditampilkan ketika user memilih
submenu Ekstraksi Pesan pada menu Proses. Gambar 3.12 menunjukkan
rancangan form ekstraksi pesan.
Steganografi Citra
Steganografi Citra
File Proses Info
Citra Stego
Gambar Asli CITRA STEGO
Simpan Pesan Proses
Ekstraksi
Buka Citra Stego
Pesan
PESAN
Keterangan :
• CITRA STEGO : merupakan tampilan dari citra stego ketika tombol
Buka Citra Stego ditekan.
• Buka Citra Stego : merupakan tombol yang digunakan untuk membuka
citra stego yang terdapat pada file. Citra stego selanjutnya akan
ditampilkan pada kotak CITRA STEGO.
• Proses Ekstraksi : merupakan tombol untuk melakukan proses
ekstraksi pesan di dalam citra.
• PESAN : merupakan tampilan pesan hasil ekstraksi yang
disembunyikan pada citra dan akan ditampilkan ketika tombol Proses
Ektraksi ditekan.
• Simpan Pesan : merupakan tombol yang digunakan untuk menyimpan
pesan hasil ekstraksi.
3.2.4 Form Tentang
Form tentang akan ditampilkan ketika user memilih submenu
Tentang pada menu Info. Form ini berisi tujuan pembuatan program,
identitas pembuat program, dan ucapan terima kasih dari pembuat
Tentang
Tentang
Tutup
TUJUAN PEMBUATAN PROGRAM
I DENTI TAS PEMBUAT
Gambar 3.13 Rancangan form tentang
3.2.5 Form Bantuan
Form bantuan akan ditampilkan ketika user memilih submenu
Help pada menu Info. Form ini berisi petunjuk pengunaan program
aplikasi Steganografi Citra. Gambar 3.14 menunjukkan rancangan form
bantuan.
Bantuan
Bantuan
Tut up
PETUNJUK PENGGUNAAN PROGRAM
Bab ini akan membahas implementasi program steganografi citra. Selain
itu bab ini juga akan membahas pengujian dan analisa hasil pengujian sistem.
4.1Implementasi Program
4.1.1 Menjalankan Program Steganografi Citra
Program steganografi citra dapat dijalankan dengan membuka
program Matlab terlebih dahulu. Setelah program Matlab terbuka, perintah
“FormMenuUtama” diketikkan pada bagian Command Window Matlab.
Current Directory yang terdapat pada bagian window Matlab harus
disesuaikan dengan lokasi direktori dimana program steganografi citra
dibuat. Lokasi direktori program dalam penulisan ini, yaitu
C:\MATLAB7\work\SteganografiCitra. Gambar 4.1 menampilkan lokasi
direktori program pada Current Directory dan perintah
“FormMenuUtama” pada Command Window.
Gambar 4.1 Current Directory dan perintah pada Command Window
4.1.2 Menggunakan Program Steganografi Citra 4.1.2.1 Form Menu Utama
Form menu utama ditampilkan pertama kali ketika perintah
“FormMenuUtama” dijalankan pada Command Window. Gambar 4.2
menampilkan form menu utama.
Gambar 4.2 Form menu utama
Menu utama memiliki tiga menu, yaitu File, Proses, dan Info.
Menu File memiliki sub menu Bersihkan Gambar, Bersihkan Pesan, dan
Keluar. Sub menu Bersihkan Gambar dan Bersihkan Pesan tidak
diaktifkan pada menu utama ini. Gambar 4.3 menampilkan sub menu dari
menu File.
Menu Proses memiliki dua sub menu, yaitu Penyembunyian
Pesan dan Ekstraksi Pesan. Gambar 4.4 menampilkan sub menu dari menu
Proses.
Gambar 4.4 Sub menu dari menu Proses
Menu Info terdiri dari sub menu Tentang dan sub menu Bantuan.
Gambar 4.5 menampilkan sub menu dari menu Info.
Gambar 4.5 Sub menu dari menu Info
4.1.2.2 Form Penyembunyian Pesan
Form penyembunyian pesan akan ditampilkan ketika pada menu
dipilih sub menu ‘Penyembunyian Pesan’. Form ini digunakan untuk
menyembunyikan file pesan rahasia ke dalam file citra. Citra yang
dihasilkan disebut dengan citra stego yang di dalamnya terdapat bit-bit
Gambar 4.6 Form Penyembunyian Pesan
Terdapat beberapa perubahan tampilan dari tahap perancangan
form, yaitu :
• Penambahan empat text box pada bagian citra asli yang masing-masing
menunjukkan nama file citra, ukuran file citra, jumlah bytes citra, dan
jumlah karakter pesan yang dapat disimpan pada citra.
• Penambahan dua text box pada bagian pesan yang masing-masing
menunjukkan nama file pesan dan jumlah karakter pesan yang
ditampilkan pada text box pesan.
• Penambahan empat text box pada bagian citra stego yang
masing-masing menunjukkan nama file citra stego setelah disimpan, ukuran
file citra stego setelah disimpan, jumlah bytes citra stego, dan jumlah
• Penambahan sebuah text box yang menunjukkan lama waktu proses
penyembunyian pesan di dalam citra.
Untuk melakukan penyembunyian pesan di dalam citra, file citra
asli yang akan digunakan untuk menyembunyikan pesan dipilih terlebih
dahulu. Selanjutnya file pesan yang akan disembunyikan dipilih. Kedua
proses tersebut dapat ditukar sehingga pemilihan file pesan dapat
dilakukan terlebih dahulu, selanjutnya dilakukan pemilihan file citra. File
citra asli yang dapat dipilih hanya yang mempunyai tipe JPEG atau JPG.
Proses pemilihan file citra ditunjukkan oleh Gambar 4.7.
Gambar 4.7 Proses pemilihan file citra
Ketika tombol ‘Open’ ditekan, file citra yang dipilih akan
ditampilkan pada bagian axes citra asli. Nama file, ukuran file, jumlah
bytes, dan jumlah karakter pesan yang dapat disimpan pada citra juga
ditampilkan. Ukuran file menunjukkan ukuran file citra yang ditampilkan
dalam bytes. Jumlah bytes menunjukkan jumlah semua bytes piksel citra.
Jumlah karakter pesan yang dapat disimpan menunjukkan jumlah
Bagian kelompok pesan terdiri atas text box yang berfungsi untuk
menampilkan pesan yang diambil dari file, nama file, dan jumlah karakter
pesan. File pesan yang dapat dipilih hanya yang bertipe text documents
atau txt. Proses pemilihan file pesan ditunjukkan oleh Gambar 4.8.
Gambar 4.8 Proses pemilihan file pesan
Jumlah karakter pesan yang akan disembunyikan pada citra tidak
boleh melebihi jumlah karakter pesan yang dapat disimpan citra. Jika
jumlah karakter pesan yang akan disembunyikan melebihi jumlah karakter
pesan yang dapat disimpan citra, maka program akan menampilkan pesan
peringatan seperti yang ditunjukkan pada Gambar 4.9.
Gambar 4.9 Pesan peringatan jumlah karakter pesan
Pesan yang dimasukkan akan disembunyikan di dalam citra
dihasilkan akan ditampilkan pada bagian axes citra stego. Gambar 4.10
menampikan citra asli, pesan, dan citra stego.
Gambar 4.10 Citra asli, pesan, dan citra stego
Ketika tombol ‘Proses Penyembunyian’ ditekan tetapi file citra
asli belum dimasukkan, maka program akan menampilkan pesan
peringatan seperti yang ditunjukkan pada Gambar 4.11.
Gambar 4.11 Pesan peringatan data citra asli
Sedangkan jika file pesan yang akan disembunyikan belum dimasukkan,
maka program akan menampilkan pesan peringatan seperti yang
Gambar 4.12 Pesan peringatan data pesan
Pesan peringatan yang akan ditampilkan jika file citra asli yang
dimasukkan tidak mempunyai keping red, green, dan blue (RGB)
ditunjukkan Gambar 4.13.
Gambar 4.13 Pesan peringatan keping RGB
Citra stego yang dihasilkan setelah proses penyembunyian dapat
disimpan ke dalam file dengan menekan tombol ‘Simpan Citra Stego’.
Apabila tombol ditekan tetapi citra stego yang akan disimpan belum
ditampilkan pada axes, maka program akan menampilkan pesan peringatan
seperti yang ditunjukkan pada Gambar 4.14.