i
1 HALAMAN JUDUL
PENERAPAN TEKNIK WATERMARKING METODE DWT
(DISCRETE WAVELET TRANSFORM)
PADA CITRA DIGITAL
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
Benedictus Reynusa Paradhipta
115314075
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
2 HALAMAN JUDUL (English)
APPLICATION OF DIGITAL IMAGE WATERMARKING
TECHNIQUE USING DWT
(DISCRETE WAVELETE TRANSFORM) METHOD
a Thesis
Presented as Partial Fulfillment of the Requirements to Obtain Sarjana Komputer
Degree in Informatics Engineering Study Program
By:
Benedictus Reynusa Paradhipta
115314075
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PENERAPAN TEKNIK WATERMARKING METODE DWT
(DISCRETE WAVELET TRANSFORMS)
PADA CITRA DIGITAL
3 HALAMAN PENGESAHAN
Dipersiapkan dan disusun oleh:
Nama : Benedictus Reynusa Paradhipta
NIM : 115314075
Telah dipertahankan di depan panitia penguji
pada tanggal 23 Juli 2015
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji:
Nama Lengkap Tanda Tangan
Ketua : Alb. Agung Hadhiatma, S.T., M.T. _____________
Sekretaris : Dr. Anastasia Rita Widiarti, M. Kom. _____________
Anggota : Sri Hartati Wijono, S.Si., M.Kom. _____________
Yogyakarta, Juli 2015
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
(Paulina Heruningsih Prima Rosa, S.Si., M.Sc)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
4 HALAMAN PERSEMBAHAN
“Better is the end of a thing than its beginning, and the patient
in spirit is better than the proud in spirit.”
( Ecclesiastes 7:8 )
“When you feel like giving up, remember why you held so long in the first
place, because COURAGE is not having the strength to go on; it is
going on when you don't have the strength.”
-- Theodore Roosevelt
Skripsi ini dipersembahkan untuk:
Keluarga dan semua orang terkasih yang selalu percaya kepadaku,
The other wing, partner on my path.
For my existences.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
5 PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam kutipan dan daftar pustaka sebagaimana layaknya sebuah karya ilmiah.
Yogyakarta, 31 Juli 2015
Penulis
Benedictus Reynusa Paradhipta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
6 LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : Benedictus Reynusa Paradhipta
NIM : 115314075
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan
Universitas Sanata Dharma karya ilmiah yang berjudul:
PENERAPAN TEKNIK WATERMARKING METODE DWT
(DISCRETE WAVELET TRANSFORMS)
PADA CITRA DIGITAL
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 mempublikasikan di internet atau media lain
untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun
memberikan royalty kepada saya selama tetap mencatumkan nama saya sebagai
penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 31 Juli 2015
Yang menyatakan,
Benedictus Reynusa Paradhipta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
7 ABSTRAK
PENERAPAN TEKNIK WATERMARKING METODE DWT
(DISCRETE WAVELET TRANSFORMS)
PADA CITRA DIGITAL
ABSTRAK
Citra dokumen digital memiliki kelebihan dalam penyimpanan dan
pengiriman dalam waktu singkat dibandingkan dengan dokumen yang dicetak.
Citra dokumen digital seringkali digunakan sebagai persyaratan dalam registrasi
beasiswa online atau lamaran kerja online yang membutuhkan persyaratan berupa
ijazah atau sertifikat. Untuk melindungi keaslian citra dokumen atau kepemilikan
atas citra dokumen tersebut, teknik watermarking adalah salah satu yang terbaik.
Tujuan dari skripsi ini adalah penggunaan teknik watermarking dengan
menggunakan metode DWT (Discrete Wavelet Transform) pada citra digital
berwarna. Citra digital ditransformasikan ke dalam 4 subband; LL, LH, HL dan
HH. Proses penyisipan watermark (embed) dilakukan pada subband LL. Kualitas
citra dihitung menggunakan PSNR (Peak Signal-to-Noise Ratio) dan SSIM
(Structural Similiarity).
Dari percobaan yang dilakukan, konstanta yang digunakan pada proses
penyisipan watermark (embed) adalah α = 0.01 sehingga menghasilkan watermark
yang tidak kasat mata pada citra ber-watermark dengan nilai PSNR 48,43 dan SSIM
0,949. Konstanta yang digunakan pada proses ekstraksi watermark (extract) adalah
α = 10 sehingga menghasilkan watermark yang dapat dikenali secara HVS (Human
Visual System) oleh penulis dari citra ber-watermark, bahkan watermark masih
dapat dikenali dari citra ber-watermark yang sudah mengalami modifikasi blurring,
croping, contrasting , add noise, rotate dan scaling.
Kata kunci : watermarking, watermark, wavelet, DWT, PSNR, SSIM, Robustness
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
8 ABSTRACT
APPLICATION OF DIGITAL IMAGE WATERMARKING
TECHNIQUE USING DWT
(DISCRETE WAVELETE TRANSFORM) METHOD
ABSTRACT
The document digital image have more advantageous in storage and
spreading than printed document. The document digital image commonly used for
online scholarship registration requirment or in an online job application that
require important document in digital media, such as qualification certificate or
diploma certificate. In order to protect copyright and authentication of these
document digital image, watermarking technic is one of the best solution.
This paper proposes a digital private watermarking algorithm based on
discrete wavelet transform (DWT) for color image. The original color image is
transformed into four subband frequency; LL,LH,HL,HH. The embedding process
in on subband LL. The quality of watermarked image calculated by PSNR (Peak
Signal-to-Noise Ratio) and SSIM (Structural Similiarity).
From this experiment, the constant number used for embed is α = 0.01
produce invisible watermark on watermarked image with PSNR value 48,43 and
SSIM value 0,949. The constant number used for extract is α = 10 produce
recognizable watermark in HVS (Human Visual System) by writer from
watermarked image, even from watermarked image that have modificated by
blurring, croping, contrasting , add noise, rotate and scaling.
Keyword: watermarking, watermark, wavelet, DWT, PSNR, SSIM, robustness
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
9 KATA PENGANTAR
Segala hormat dan puji syukur penulis panjatkan kepada Tuhan Yesus
Kristus karena limpahan kebaikan dan penyertaan-Nya, penulis dapat
menyelesaikan skripsi yang berjudul “Penerapan Teknik Watermarking Metode
DWT (Discrete Wavelet Transform) Pada Citra Digital”, sebagai salah satu syarat
memperoleh gelar Sarjana pada Program Studi Teknik Informatika Fakultas Sains
dan Teknologi Universitas Sanata Dharma Yogyakarta.
Dalam proses penyusunan dan penulisan skripsi ini tidak terlepas dari
bantuan, bimbingan serta dukungandari berbagai pihak. Oleh karena itu dalam
kesempatan ini dengan segala kerendahan hati mengucapkan terima kasih kepada
yang terhormat:
1. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku dosen pembimbing yang selalu
bijaksana memberikan bimbingan, motivasi, kesabaran serta waktunya
selama penelitian dan penulisan skripsi ini sehingga penelitian dan penulisan
skripsi ini berjalan dengan lancar.
2. Romo Dr. Cyprianus Kuntoro Adi, S.J., M.A., M.Sc. yang selalu memberikan
semangat dan dorongan serta menjadi rekan sharing yang sungguh berharga.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku dosen pembimbing
akademik yang selalu memberikan motivasi dan inspirasi dalam penulisan
skripsi ini.
4. Bapak Alb. Agung Hadhiatma, M.T. selaku dosen penguji yang telah
memberikan banyak masukan terhadap skripsi ini.
5. Staf Dosen Teknik Informatika Fakultas Sains dan Teknologi Universitas
Sanata Dharma yang telah membekali penulis dengan berbagai ilmu selama
mengikuti perkuliahan sampai akhir penulisan skripsi.
6. Staf Tata Usaha Fakultas Sains dan Teknologi Universitas Sanata Dharma
yang telah banyak membantu penulis selama mengikuti perkuliahan dan
penulisan skripsi ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
7. Bapak Dada Wiyata, S.E. dan Ibu Cicilia Mujiastuti, kedua orang tua penulis
yang dengan luar biasa memberikan segala tulus cinta kasih, sabar dan selalu
percaya kepada penulis.
8. Kakak A. Angga Sandi Birawa, S.T. yang selalu menjadi panutan serta
pelecut semangat. Adik Cindy dan Flora yang telah memberi dorongan dan
kasih sayang.
9. Bapak Drs. R. V. Yuliadi K. dan Ibu Dra. L. Heni S. yang selalu memberi
semangat serta perhatian yang tulus kepada penulis.
10. Grasia Anggia Mira Vania, S.Pd. yang selalu hadir dengan senyuman dan
tidak pernah lelah mendampingi penulis. Terima kasih atas semua waktu,
perjuangan, mimpi serta kasih sayang selama ini.
11. Rekan-rekan seperjuangan, Romo Poldo, Ega dan Bayu, atas semua
kesempatan saling berbagi pendapat, ilmu serta kekonyolan bodoh kalian
yang membantu penulis selalu kembali bersemangat.
12. Rekan-rekan forum matlabcentral di www.mathworks.com yang dengan
senang hati berbagi pengalaman dan membantu penulis dalam pembuatan
aplikasi perangkat lunak yang digunakan dalam penelitian skripsi ini.
13. Seluruh civitas akademika Teknik Informatika angkatan 2011, terutama
anggota C++ yang telah berjuang bersama dan saling memberi semangat.
14. Teman-teman SMA PL Van Lith Muntilan angkatan XV dan PBI Sanata
Dharma 2008 atas segala kesempatan berbagi pengalaman.
15. Semua pihak, baik langsung maupun tidak, yang telah membantu dalam
proses penyelesaian skripsi ini.
Semoga Tuhan memberikan balasan yang berlipat ganda kepada semuanya.
Demi perbaikan selanjutnya, saran dan kritik membangun akan penulis terima
dengan senang hati. Akhir kata, semoga skripsi ini bermanfaat bagi sesama.
Yogyakarta, 31 Juli 2015
Penulis,
Benedictus Reynusa Paradhipta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
10 DAFTAR ISI
HALAMAN JUDUL .................................................................................................... i
HALAMAN JUDUL (English) ................................................................................... ii
HALAMAN PERSETUJUAN..............................................................................iii
HALAMAN PENGESAHAN ..............................................................................iv
HALAMAN PERSEMBAHAN .................................................................................. v
PERNYATAAN KEASLIAN KARYA ..................................................................... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI...................................vii
ABSTRAK ..................................................................................................................... viii
ABSTRACT ................................................................................................................... ix
KATA PENGANTAR .................................................................................................. x
DAFTAR ISI .................................................................................................................. xii
DAFTAR GAMBAR .................................................................................................... xv
DAFTAR TABEL ......................................................................................................... xvi
BAB I PENDAHULUAN ............................................................................................ 1
1.1. Latar Belakang ....................................................................................... 1
1.2. Permasalahan .......................................................................................... 3
1.3. Pembatasan Masalah .............................................................................. 4
1.4. Tujuan Penelitian .................................................................................... 4
1.5. Manfaat Penelitian .................................................................................. 5
BAB II LANDASAN TEORI ...................................................................................... 6
2.1. Citra Digital ............................................................................................ 6
2.2. Digitalisasi Citra ..................................................................................... 7
2.3. Resolusi Citra ......................................................................................... 8
2.4. Tipe Citra ................................................................................................ 9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.4.1. Citra Berwana (truecolor) ............................................................... 9
2.4.2. Citra Grayscale ............................................................................... 9
2.4.3. Citra Biner ....................................................................................... 10
2.5. Kualitas Citra Digital .............................................................................. 11
2.5.1. Peak Signal-to-Noise Ratio (PSNR) ............................................... 11
2.5.2. Structural Similiarity (SSIM) Index ................................................ 12
2.6. Watermarking ......................................................................................... 13
2.6.1. Sejarah Watermarking ..................................................................... 14
2.6.2. Pengertian Watermarking................................................................ 15
2.6.3. Manfaat Watermarking ................................................................... 19
2.7. Discrete Wavelet Transform pada citra digital ....................................... 19
2.7.1. Penerapan Discrete Wavelet Transform pada kompresi citra ......... 20
2.7.2. Invers Discrete Wavelet Transform (IDWT) .................................. 23
BAB III METODOLOGI ............................................................................................. 24
3.1. Data ........................................................................................................ 24
3.2. Deskripsi Rancangan Umum Perangkat Lunak ...................................... 24
3.3. Penyisipan watermark ............................................................................ 29
3.3.1. Alur Proses Penyisipan ................................................................... 30
3.4. Ekstraksi Watermark .............................................................................. 31
3.4.1. Alur Proses Ekstraksi ...................................................................... 31
BAB IV IMPLEMENTASI ......................................................................................... 32
4.1. Representasi Data Dalam Matlab ........................................................... 32
4.2. Alur Proses Penyisipan ( embed ) ........................................................... 34
4.3. Alur Proses Ekstraksi ( extract ) ............................................................. 36
4.4. Hitung PSNR dan SSIM ......................................................................... 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
4.4.1 Hitung PSNR ................................................................................... 38
4.4.2. Hitung SSIM (Structural Similiarity) .............................................. 39
4.5. Penambahan Standart Malicious Attack pada citra ber-watermark ....... 40
BAB V HASIL DAN PEMBAHASAN ..................................................................... 41
5.1. Kerja Perangkat Lunak ........................................................................... 41
5.2. Hasil Pengujian ....................................................................................... 42
5.2.1. Hasil Pengujian Citra Ber-watermark ............................................. 43
5.2.2. Hasil Pengujian Ekstraksi dari Citra Ber-watermark ...................... 45
5.2.3. Hasil Pengujian Ketahanan Perangkat Lunak ................................. 48
5.2.4. Hasil Pengujian Perangkat Lunak Mengenali Citra yang Tidak Ber-
watermark .......................................................................................................... 69
BAB VI KESIMPULAN DAN SARAN ................................................................... 71
6.1. Kesimpulan ............................................................................................. 71
6.2. Saran ....................................................................................................... 72
DAFTAR PUSTAKA ................................................................................................... 74
Lampiran......................................................................................................................... 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
11 DAFTAR GAMBAR
Gambar 2.1 Matriks citra digital .......................................................................... 6
Gambar 2.2 Resolusi Citra ................................................................................... 8
Gambar 2.3 Keping citra berwarna ...................................................................... 9
Gambar 2.4 Representasi citra grayscale ............................................................. 10
Gambar 2.5 Skema watermarking ........................................................................ 15
Gambar 2.6 Citra grayscale sebelum dekomposisi .............................................. 22
Gambar 2.7 Citra grayscale hasil dekomposisi ................................................... 22
Gambar 2.8 Dekomposisi citra ............................................................................. 23
Gambar 3.1 Diagram block perangkat lunak ....................................................... 25
Gambar 3.2 Use case............................................................................................ 26
Gambar 3.3 User interface (embed) ..................................................................... 27
Gambar 3.4 User interface (extract) .................................................................... 28
Gambar 4.1 Representasi citra1.jpg dalam Matlab .............................................. 32
Gambar 4.2 Representasi watermark1.jpg dalam Matlab .................................... 32
Gambar 4.3 (a) insert citra host, (b) insert citra watermark, (c) insert citra ber-
watermark ................................................................................................... 33
Gambar 4.4 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra watermark 34
Gambar 4.5. Rekonstruksi dengan IDWT menghasilkan citra ber-watermark .... 35
Gambar 4.6 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra
watermark, (c) Hasil dekomposisi citra ber-watermark. .............. 36
Gambar 4.7. Rekonstruksi dengan IDWT menghasilkan citra watermark hasil
ekstraksi......................................................................................... 38
Gambar 4.8. Hasil perhitungan PSNR dan SSIM ................................................ 39
Gambar 5.1 Penyisipan watermark (embed) ........................................................ 41
Gambar 5.2 Ekstraksi watermark (extract) .......................................................... 41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
12 DAFTAR TABEL
Tabel 5.1 File citra asal (host) ............................................................................... 42
Tabel 5.2 File citra watermark ............................................................................. 42
Tabel 5.3 Tabel hasil watermarking dengan watermark1.jpg ............................... 44
Tabel 5.4 Tabel hasil watermarking dengan watermark2.jpg ............................... 44
Tabel 5.5 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan
α = 0.1 ................................................................................................... 46
Tabel 5.6 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan
α = 0.01 ................................................................................................. 47
Tabel 5.7 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan
α = 0.1 yang sudah dikenai Standart Attack ......................................... 49
Tabel 5.8 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan
α = 0.01 yang sudah dikenai Standart Attack ....................................... 53
Tabel 5.9 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan
α = 0.1 yang sudah dikenai Standart Attack ......................................... 57
Tabel 5.10 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan
α = 0.01 yang sudah dikenai Standart Attack ....................................... 61
Tabel 5.11 Tabel pengenalan informasi watermark hasil extract α =10 dari citra ber-
watermark embed α =0.01 (proses watermarking yang menghasilkan
watermark yang tidak kasat mata) yang dikenai Standart Attack variasi
pemilihan citra watermark .................................................................... 65
Tabel 5.12 Tabel extract untuk citra digital tidak ber-watermark (citra yang akan
dikenali adalah citra asal) ..................................................................... 69
Tabel 5.13 Tabel extract untuk citra digital tidak ber-watermark (citra yang akan
dikenali berbeda dengan citra asal). Citra asal yang digunakan Citra1.jpg
................................................................................................................. 70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
1. BAB I
PENDAHULUAN
1.1. Latar Belakang
Citra digital memiliki banyak kelebihan dibandingkan citra berbentuk fisik,
salah satunya adalah mudah diduplikasi dan dikirimkan dengan waktu yang singkat.
Hal ini kemudian dimanfaatkan untuk pengiriman dokumen berbentuk citra digital
untuk registrasi seperti pengajuan beasiswa online atau pengajuan lamaran kerja,
berupa dokumen ijazah atau sertifikat dalam bentuk citra digital
Sesuai dengan sifatnya, media digital memungkinkan tak terbatasnya salinan
yang sulit dibedakan dengan aslinya dan dengan mudah dimanipulasi atau
dimodifikasi untuk merubah informasi dari media digital tersebut oleh pihak yang
tidak bertanggung jawab. Oleh karena itu perlu dilakukan upaya untuk memberi
tanda kepemilikan atau keaslian dari dokumen citra digital tersebut dengan
menyisipkan informasi pemilik atau penanda keaslian pada citra dokumen digital
tersebut, salah satunya dengan metode watermarking.
Watermarking yang baik merupakan suatu teknik penyembunyian suatu
data atau informasi “rahasia” berupa citra digital yang disebut watermark, ke dalam
suatu citra digital lainnya (disebut dengan citra host), tetapi orang lain tidak
menyadari kehadiran adanya data tambahan pada citra tersebut. Jadi seolah-olah
tidak ada perbedaan antara host sebelum dan sesudah proses watermarking.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Seseorang atau suatu lembaga tidak ingin dirugikan karena citra dokumen
digital yang sudah dimanipulasi atau dimodifikasi mengalami perubahan informasi
dari citra dokumen digital tersebut. Biasanya untuk menghindari manipulasi atau
modifikasi informasi citra dokumen digital, seseorang atau suatu lembaga yang
memiliki hak atas citra dokumen digital tersebut akan memberi tanda kepemilikan
atau informasi lainnya agar dokumen citra digital tersebut tidak mudah
dimanipulasi atau dimodifikasi.
Ada beberapa teknik watermarking yang digunakan yaitu teknik
watermarking yang bekerja pada domain frekuensi, spasial dan feature. Pada
domain frekuensi salah satunya adalah dengan metode Discrete Wavelet Transform
(DWT), pada domain spasial ada beberapa metode diantaranya Singular Value
Decomposition (SVD) dan Least Significant Bit (LSB), sedangkan pada domain
feature ada feature point extraction dengan dekomposisi Haar-Wavelet.
Discrete Wavelet Transform (DWT) merupakan salah satu metode yang
banyak digunakan dalam teknik blind watermarking maupun non-blind
watermarking pada domain transform. Watermarking yang berbasis wavelet adalah
pendekatan yang populer karena kekuatannya melawan malicious attack
(modifikasi citra ber-watermark). Discrete Wavelet Transform (DWT) membagi
sebuah dimensi sinyal menjadi dua bagian, yaitu bagian dengan frekuensi tinggi dan
frekuensi rendah, yang disebut dengan dekomposisi. Sebuah sinyal dilewatkan
melalui highpass filter untuk menganalisis frekuensi tinggi, dan dilewatkan melalui
lowpass filter untuk menganalisis frekuensi rendah. Keluaran dari highpass filter
dan lowpass filter ini menghasilkan koefisien DWT, sehingga citra asli dapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
direkonstruksi. Proses rekonstruksi ini disebut Inverse Discrete Wavelet Transform
(IDWT). Secara umum penyisipan watermark ke dalam citra dilakukan dengan cara
membandingkan koefisien DWT dari dekomposisi citra. Koefisien yang memiliki
nilai terbesar adalah tempat yang paling signifikan untuk menyisipkan watermark.
Penelitian yang sama pernah dilakukan oleh Dean Fathony Alfatwa.
Berdasarkan (Alfatwa, 2003) dilakukan dekomposisi DWT dalam beberapa level,
watermark yang digunakan berupa citra hitam putih dengan format bitmap image
(.bmp) dan bahasa pemrograman yang digunakan adalah Java. Sedangkan dalam
skripsi ini, penulis melakukan penelitian terhadap pemilihan konstanta penyisipan
pada proses dekomposisi DWT dalam 1 level, watermark yang digunakan berupa
citra dengan format Joint Photographic Experts Group berekstensi .jpg/.jpeg yang
memiliki keping warna red, green, dan blue (RGB), serta melakukan pengujian
terhadap citra ber-watermark yang sudah mengalami modifikasi.
1.2. Permasalahan
Sesuai dengan uraian latar belakang, permasalahan pada skripsi ini adalah:
1. Bagaimana memberi watermark yang tidak kasat mata pada citra digital
dokumen menggunakan metode Discrete Wavelet Transform ?
2. Bagaimana kualitas citra digital setelah mengalami proses watermarking ?
3. Apakah watermark hasil ekstraksi dari citra ber-watermark yang mengalami
modifikasi (standard malicious attack) tetap dapat dikenali?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.3. Pembatasan Masalah
Dalam tugas akhir ini, penulis membatasi permasalah dengan ruang lingkup
sebagai berikut :
1. Penerapan watermarking hanya pada citra dokumen digital dengan format
Joint Photographic Experts Group berekstensi .jpg/.jpeg yang memiliki
keping warna red, green, dan blue (RGB).
2. Penerapan watermarking menggunakan metode Discrete Wavelete
Transform (DWT) menggunakan wavelete Haar.
3. Citra yang digunakan sebagai watermark merupakan citra dengan format
Joint Photographic Expert Group berekstensi .jpg/.jpeg.
1.4. Tujuan Penelitian
Menerapkan teknik watermaking pada citra dokumen digital dengan format
Joint Photographic Experts Group berekstensi .jpg menggunakan metode Discrete
Wavelet Transform (DWT) sehingga menghasilkan citra dokumen ber-watermark
yang memiliki watermark tidak kasat mata, melakukan pengujian kualitas citra
dokumen digital setelah mengalami proses watermarking serta menguji ketahanan
citra dokumen digital hasil proses watermarking terhadap standard malicious
attack.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1.5. Manfaat Penelitian
Manfaat dari penelitian ini antara lain :
1. Memberikan pengetahuan tentang proses pembuatan citra digital ber-
watermark dengan metode Discrete Wavelet Transform (DWT)
2. Mengetahui kualitas citra dokumen digital yang sudah mengalami
proses watermarking.
3. Bagi pemilik dokumen citra digital, memberikan penanda untuk
membuktikan keaslian terhadap dokumen citra dokumen digital
tersebut.
4. Bagi lembaga, instansi atau perseorangan yang memanfaatkan isi
informasi dari citra dokumen digital, memberikan informasi keaslian
atas dokumen citra digital yang dimanfaatkannya dengan melihat
watermark pada hasil ekstraksi citra dokumen digital.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2. BAB II
LANDASAN TEORI
2.1. Citra Digital
Citra digital adalah gambar dua dimensi yang bisa ditampilkan pada layar
komputer sebagai himpunan/ diskrit nilai digital yang disebut pixel/ picture
elements. Dalam tinjauan matematis, citra merupakan fungsi kontinu dari intensitas
cahaya pada bidang dua dimensi. Citra digital adalah citra f(x,y) dimana dilakukan
diskritisasi koordinat sampling/ spasial dan diskritisasi tingkat kwantisasi (kabuan/
kecemerlangannya). Citra digital merupakan fungsi intensitas cahaya f(x,y), dimana
harga x dan harga y adalah koordinat spasial. Harga fungsi tersebut di setiap titik
(x,y) merupakan tingkat kecemerlangan citra pada titik tersebut.
Matrik yang dinyatakan Citra digital yaitu dengan matriks berukuran N
(baris/tinggi) x M (kolom/lebar).
Gambar 2.1 Matriks citra digital
Ada berbagai jenis format citra digital, salah satu yang banyak digunakan di
internet dan dikenal secara luas adalah Joint Photographic Experts Group dengan
ekstensi .jpg/.jpeg (Edi, 2006). Joint Photographic Experts Group merupakan suatu
skema kompresi lossy yang dikembangkan oleh perusahaan dengan nama yang
sama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
2.2. Digitalisasi Citra
Komputer hanya bisa mengolah data yang bersifat numerik. Oleh karena itu,
agar dapat diolah oleh komputer maka sebuah citra harus direpresentasikan secara
numerik menggunakan nilai-nilai diskrit. Representasi citra secara numerik inilah
yang disebut dengan digitalisasi yang pada dasarnya merupakan proses mengubah
nilai kontinu menjadi nilai-nilai diskrit. Alat-alat yang dapat mentransformasikan
citra analog menjadi citra digital diantaranya adalah kamera digital, kamera
converter, scanner dan lain sebagainya.
Proses digitalisasi citra pada dasarnya adalah proses konversi sinyal analog
ke digital, dijabarkan kedalam 2 proses berikut:
1. Digitalisasi spasial (x, y), sering disebut sebagai sampling.
Sampling menyatakan besarnya kotak-kotak yang disusun dalam baris dan
kolom. Dengan kata lain sampling pada citra menyatakan besar kecilnya
ukuran piksel pada citra. Untuk memudahkan implementasi, jumlah
sampling biasanya diasumsikan perpangkatan dari dua:
N = 2n
dimana , N= jumlah sampling pada suatu baris/kolom
n = bilangan bulat positif
Pembagian gambar menjadi ukuran tertentu menentukan resolusi spasial
yang diperoleh. Semakin tinggi resolusinya, berarti semakin kecil ukuran
piksel (jumlah piksel yang dimiliki citra semakin banyak), semakin halus
gambar yang diperoleh karena informasi yang hilang akibat
pengelompokkan derajat keabuan pada proses sampling semakin kecil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
x
kolom/lebar = 5
piksel baris/tinggi = 5 y
2. Digitalisasi intensitas f(x, y), sering disebut sebagai kuantisasi.
Setelah proses sampling pada citra maka proses selanjutnya adalah
kuantisasi. Kuantisasi menyatakan besarnya nilai tingkat kecerahan yang
dinyatakan dalam nilai tingkat keabuan (grayscale) sesuai dengan jumlah
bit biner yang digunakan, dengan kata lain kuantisasi pada citra menyatakan
jumlah warna yang ada pada citra. Proses kuantisasi membagi skala
keabuan (0, L) menjadi G buah level yang dinyatakan dengan suatu harga
bilangan bulat (integer), G level diambil perpangkatan dari 2.
2.3. Resolusi Citra
Masing-masing elemen dari matriks yang tidak lain adalah elemen dari citra
digital yang merupakan bagian terkecil dari suatu citra disebut dengan picture
element atau piksel. Jadi jika sebuah citra mempunyai ukuran 5 x 5 piksel artinya
citra tersebut mempunyai 5 baris dan 5 kolom dalam sebuah matriks. Sedangkan
banyaknya piksel yang digunakan untuk membentuk suatu citra digital disebut
resolusi. Semakin tinggi resolusi maka semakin tinggi pula tingkat detail citra
tersebut sehingga citra yang terbentuk akan semakin baik.
0 1 2 3 4
0
1
2
3
4
Gambar 2.2 Resolusi Citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2.4. Tipe Citra
Berdasarkan format penyimpanan nilai warnanya citra digital terbagi dalam
tiga tipe yaitu :
2.4.1. Citra Berwana (truecolor)
Red (Merah), Green (Hijau) dan Blue (Biru) merupakan warna dasar
yang dapat diterima oleh mata manusia. Setiap piksel pada citra berwarna
mewakili warna yang merupakan kombinasi dari ketiga warna dasar RGB.
Setiap titik pada citra berwarna membutuhkan data sebesar 3 byte. Setiap warna
dasar memiliki intensitas tersendiri dengan nilai minimum nol (0) dan nilai
maksimum 255.
Gambar 2.3 Keping citra berwarna
2.4.2. Citra Grayscale
Citra grayscale merupakan citra digital yang hanya memiliki satu nilai
kanal pada setiap pikselnya, artinya nilai dari Red = Green = Blue. Nilai-nilai
tersebut digunakan untuk menunjukkan intensitas warna. Citra yang
ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada
warna hitam pada bagian yang intensitas terlemah dan warna putih pada
intensitas terkuat. Citra grayscale berbeda dengan citra ”hitam-putih”, dimana
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
pada konteks komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu
”hitam” dan ”putih” saja. Pada citra grayscale, warna bervariasi antara hitam
dan putih, tetapi variasi warna diantaranya sangat banyak.
Citra grayscale seringkali merupakan perhitungan dari intensitas cahaya pada
setiap piksel pada spektrum elektromagnetik single band.
Citra grayscale disimpan dalam format 8 bit untuk setiap sampel piksel,
yang memungkinkan sebanyak 256 intensitas. Untuk mengubah citra berwarna
yang mempunyai nilai matrik masing-masing R, G dan B menjadi citra
grayscale dengan nilai X, maka konversi dapat dilakukan dengan mengambil
rata-rata dari nilai R, G dan B sehingga dapat dituliskan menjadi:
X = (R+G+B)/3
Gambar 2.4 Representasi citra grayscale
2.4.3. Citra Biner
Citra biner (binary image) adalah citra digital yang hanya memiliki 2
kemungkinan warna, yaitu hitam dan putih. Citra biner disebut juga dengan
citra B/W (Black/White) atau citra monokrom. Hanya dibutuhkan 1 bit untuk
mewakili nilai setiap piksel dari citra biner.
Pembentukan citra biner memerlukan nilai batas keabuan yang akan
digunakan sebagai nilai patokan. Piksel dengan derajat keabuan lebih besar dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
nilai batas akan diberi nilai 1 dan sebaliknya piksel dengan derajat keabuan
lebih kecil dari nilai batas akan diberi nilai 0.
2.5. Kualitas Citra Digital
Penghitungan kualitas citra dapat dilakukan dengan dua cara, yaitu
menghitung peak signal-to-noise ratio (PSNR) sebagai pembanding kualitas citra
hasil rekonstruksi dengan citra asal. Cara yang kedua adalah menghitung galat/
error citra ber-watermark yang dihasilkan dari proses watermarking.
2.5.1. Peak Signal-to-Noise Ratio (PSNR)
Istilah peak signal-to-noise ratio (PSNR) adalah sebuah istilah dalam
bidang teknik yang menyatakan perbandingan antara kekuatan sinyal
maksimum yang mungkin dari suatu sinyal digital dengan kekuatan derau yang
mempengaruhi kebenaran sinyal tersebut. Oleh karena banyak sinyal memiliki
jangkauan dinamis yang luas, maka PSNR diekspresikan dalam skala
logarithmic decibel. PSNR didefinisikan melalui signal-to-noise ratio (SNR).
Signal-to-noise ratio (SNR) digunakan untuk mengukur tingkat kualitas sinyal.
Nilai ini dihitung berdasarkan perbandingan antara sinyal dengan nilai derau.
Kualitas sinyal berbanding lurus dengan dengan nilai SNR. Semakin besar nilai
SNR semakin baik kualitas sinyal yang dihasilkan. Nilai PSNR dari citra ber-
watermark lebih dari 40db mengindikasikan bahwa kualitas citra ber-
watermark tinggi (Cheddad, Curran dan Kevitt 2010).
Pertama yang dilakukan adalah menghitung nilai mean squared error
(MSE) dari suatu citra hasil rekonstruksi. MSE dihitung untuk seluruh piksel
dalam citra. Root mean squared error (RMSE) adalah akar dari MSE.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
𝑀𝑆𝐸 =∑[𝐹(𝑖,𝑗)−𝑓(𝑖,𝑗)]2
𝑁2 (2.1)
N2 menyatakan hasil perkalian panjang dan lebar citra dalam pixel.
F(i,j) merupakan citra hasil rekonstruksi, sedangkan 𝑓(𝑖, 𝑗) adalah citra asal.
Berdasarkan persamaan MSE tersebut, maka nilai PSNR dapat dihitung
dengan persamaan sebagai berikut. Nilai PSNR direpresentasikan dalam skala
desibel (dB).
𝑃𝑆𝑁𝑅 = 20 log10 (255
𝑅𝑀𝑆𝐸) (2.2)
Nilai 255 pada persamaan diatas merupakan batas atas dari sebuah piksel.
2.5.2. Structural Similiarity (SSIM) Index
Structural Similiarity (SSIM) Index adalah sebuah metode untuk
mengukur kemiripan atau kesamaan dari 2 buah gambar. SSIM index
mengolah matrix dari 2 gambar yang dibandingkan. Sebenarnya SSIM didesain
sebagai metode baru yang lebih baik dari PSNR dan MSE. SSIM
menggunakan informasi struktural dari degradasi gambar, dimana tiap-tiap
pixel gambar memiliki dependensi yang membawa informasi penting tentang
struktural dari gambar secara visual.
Matriks SSIM didapat dari penghitungan 2 matriks gambar x,y yang
memiliki ukuran n x n. Rumus dari SSIM adalah sebagai berikut:
𝑆𝑆𝐼𝑀 =( 2 𝜇𝑥 𝜇𝑦 + 𝐶1 ) ( 2 𝜎𝑥𝑦 + 𝐶2 )
(𝜇𝑥2 + 𝜇𝑦
2+ 𝐶1 ) ( 𝜎𝑥2+ 𝜎𝑦
2 + 𝐶2) (2.3)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
𝜇𝑥 adalah rata-rata dari x 𝜎𝑦2
adalah varian dari y
𝜇𝑦 adalah rata-rata dari y 𝜎𝑥𝑦 adalah covarian dari x dan y
𝜎𝑥2 adalah varian dari x
𝐶1 = (𝑘1𝐿)2, 𝐶1 = (𝑘2𝐿)2 merupakan dua variabel untuk menstabilkan divisi
yang memiliki denominator yang rendah.
𝐿 adalah rentang pixel-values (biasanya adalah 2#𝑏𝑖𝑡𝑠 𝑝𝑒𝑟 𝑝𝑖𝑥𝑒𝑙 − 1 )
𝑘1 = 0.01 dan 𝑘1 = 0.01 adalah nilai default
Hasil dari perhitungan SSIM adalah nilai desimal antara 0 sampai 1,
dimana nilai desimal semakin mendekati 1 berarti 2 gambar yang dibandingkan
semakin menyerupai atau dapat dikatakan sebagai gambar yang sama jika nilai
desimal hasil SSIM adalah 1 (Wang, Bovik, Sheikh dan Simoncelli, 2004: 600-
612).
2.6. Watermarking
Saat ini banyak peralatan – peralatan digital yang dapat dengan mudah
melakukan duplikasi dan modifikasi terhadap suatu data citra digital tanpa
meninggalkan jejak terhadap perubahan yang dilakukan, sehingga kredibilitas data
tersebut tidak dapat lagi dipertanggungjawabkan. Oleh sebab itu diperlukan suatu
metode yang dapat mendeteksi adanya perubahan yang dilakukan terhadap data
citra digital, metode yang dapat digunakan adalah metode watermarking.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
2.6.1. Sejarah Watermarking
Sejarah watermarking sudah dimulai sejak 700 tahun yang lalu. Pada
akhir abad 13, pabrik kertas di Fabriano Italia, membuat kertas yang diberi
watermark atau tanda-air dengan cara menekan bentuk cetakan gambar atau
tulisan pada kertas yang baru setengah jadi. Ketika kertas dikeringkan,
terbentuklah suatu kertas yang ber-watermark. Kertas ini biasanya digunakan
oleh seniman dan sastrawan untuk menulis karya mereka. Kertas yang sudah
dibubuhi watermark tersebut sekaligus dijadikan identifikasi bahwa karya seni
di atasnya adalah milik mereka.
Perkembangan watermarking selanjutnya adalah watermarking pada
media digital. Watermarking pada media digital ini mulai dikembangkan pada
tahun 1990 di Jepang dan tahun 1993 di Swiss . Digital watermarking masih
merupakan salah satu teknik baru di bidang proteksi data-data digital, hingga
saat ini teknologi watermarking masih dalam tahap pengembangan karena
masih belum ditemukan teknik yang ideal untuk implementasinya. Hal - hal
yang terkait dengan ketahanan (robustness) dan ekstraksi masih menjadi
permasalahan utama dalam pengimplementasian watermarking. Teknik
watermarking dapat diklasifikasi menjadi dua kategori yaitu, metode Domain
Spasial dan metode Domain Transformasi. Metode Domain Spasial lebih
mudah pemakaiannya karena tidak menggunkan transformasi, tetapi tidak
tahan terhadap serangan (Hameed, Kamran, Mumtaz, and Gilani,2008).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
2.6.2. Pengertian Watermarking
Watermarking adalah proses penyisipan sebuah data rahasia
(watermark) ke sebuah gambar dimana citra yang sudah ber-watermark sulit
atau bahkan tidak dapat dibedakan oleh pengelihatan visual (Al-khassaweneh
and Selin 2008). Watermarking berkembang seiring perkembangan zaman
dengan munculnya watermarking pada media digital atau disebut dengan
digital watermarking. Digital watermarking dapat dijalankan pada berbagai
media digital seperti citra digital, file suara dan video. Secara umum
watermarking adalah proses penyisipan citra digital dengan citra watermark.
Gambar 2.5 Skema watermarking
Watermarking pada citra digital sendiri memiliki beberapa jenis teknik
yang memiliki keunggulan dan kelemahan masing-masing. Biasanya teknik
watermarking yang kuat (robust) susah dipecahkan oleh berbagai serangan
tetapi memiliki kualitas gambar ber-watermark yang kurang memuaskan,
demikian juga sebaliknya, teknik watermarking yang menghasilkan kualitas
gambar yang memuaskan biasanya kurang kuat menghadapi serangan. Secara
garis besar teknik watermarking dibedakan menjadi dua yaitu:
Citra watermark
Embedding Citra asli
Citra ber-watermark
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
1. Private Watermarking / Non-Blind Watermarking
Teknik watermarking yang membutuhkan citra asli dan citra ber-
watermark untuk megekstraksi watermark.
2. Public Watermarking / Blind Watermarking
Teknik watermarking yang tidak membutuhkan citra asli atau
watermark yang disisipkan untuk melakukan ekstraksi.
Lebih jauh lagi, watermark bisa juga berupa kode yang membawa
informasi mengenai pemilik hak cipta, pencipta atau pembeli yang sah dan
segala sesuatu yang diperlukan untuk menangani hak kepemilikan media
digital. Watermark sengaja ditanamkan secara permanen pada data digital
sedemikian hingga pengguna yang berwenang dapat dengan mudah
membacanya, disisi lain watermark tersebut haruslah tidak mengubah isi media
kecuali sedikit atau perubahan tersebut tidaklah tampak atau kurang begitu
tampak bagi indera manusia. Hal ini disebabkan karena pengubahan dari citra
digital asal ke citra ber-watermark hanya berpengaruh sedikit terhadap
perubahan warna dari citra digital, sehingga sistem penglihatan manusia
(Human Visual System) tidak dapat mempersepsi perubahan tersebut. Mutu
dari teknik watermarking meliputi beberapa parameter utama berikut ini :
a. Fidelity : Perubahan yang disebabkan oleh tanda (mark) semestinya
tidak mempengaruhi nilai isi, idealnya tanda harusnya tidak dapat
dilihat, sehingga tidak dapat dibedakan antara data yang ber-watermark
dan data yang asli. Salah satu trade-off antara karakteristik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
watermarking yang sangat kelihatan adalah antara robustness dengan
fidelity. Dalam beberapa literatur, fidelity kadang disebut dengan
invisibility untuk jenis data citra dan video. Yang dimaksud dengan
fidelity disini adalah derajat degradasi host data sesudah diberi
watermark dibandingkan dengan sebelum diberi watermark. Biasanya
bila robustness dari watermark tinggi maka memiliki fidelity yang
rendah, sebaliknya robustness yang rendah dapat membuat fidelity yang
tinggi. Jadi sebaiknya dipilih trade-off yang sesuai, sehingga keduanya
dapat tercapai sesuai dengan tujuan aplikasi. Untuk host data yang
berkualitas tinggi maka fidelity dituntut setinggi mungkin sehingga
tidak merusak data aslinya, sedangkan host data yang memiliki noise
(kualitas kurang) maka fidelity-nya bisa rendah.
b. Robustness : watermark di dalam host data harus tahan terhadap
beberapa operasi pemrosesan digital atau manipulasi data (malicious
attack). Manipulasi data yang umum (standard malicious attack)
digunakan seperti: blurring, cropping, scaling, rotating, adding noise,
change contrast. Pada robust watermark, data disisipkan dengan sangat
kuat, sehingga jika ada yang berusaha menghapusnya maka gambar
atau suara yang disisipi akan ikut rusak dan tidak punya nilai komersial
lagi.
c. Security : Watermarking harus tahan terhadap usaha segaja
memindahkan / mencopy watermark dari satu multimedia data ke
multimedia data lainnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Pada ketiga kriteria diatas, fidelity merupakan kriteria paling tinggi
(Sirait, 2008). Proses watermarking (embed) perlu didukung dengan proses
ekstrasi watermark (extract) dari citra ber-watermark. Proses ekstraksi
(extract) ini bertujuan untuk mengetahui watermark yang disisipkan dalam
citra digital yang ber-watermark tersebut. Umumnya proses ekstraksi (extract)
melibatkan proses pembandingan citra digital asal dengan citra ber-watermark
untuk mendapatkan watermark yang disisipkan.
Watermarking dengan Discrete Wavelet Transform (DWT) ini dipilih
sebagai metode penyisipan watermarking karena beberapa alasan yaitu :
1. DWT merupakan yang paling dekat terhadap HVS (Human Visual
System) (Terzija, 2006).
2. Distorsi yang disebabkan oleh wavelet domain dalam perbandingan
kompresi tinggi tidak terlalu mengganggu dibandingkan domain lain
dalam bit rate yang sama (Terzija, 2006).
3. Bit-error rate yang rendah. Bit-error rate merupakan perbandingan
antara bit yang salah diekstraksi dengan total bit yang disisipkan (Kutter,
dan Fabien 1999).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
2.6.3. Manfaat Watermarking
1. Proteksi Hak Cipta
Tujuan watermarking dalam perlindungan hak cipta adalah sebagai
bukti otentik atas hak kepemilikan pencipta atas ckonten yang dibuat
atau diproduksinya. Watermarking sangat ideal untuk pembuatan label
hak cipta, karena bukan hanya tak terlihat tetapi juga tidak dapat
dipisahkan dari data yang disisipi. Hal ini merupakan alasan utama
sehingga proteksi menggunakan label hak cipta menjadi aplikasi yang
sangat terkemuka saat ini (Lu, 2005).
2. Penanda (fingerprinting)
Fungsi watermarking pada fingerprinting mirip dengan serial number
(S/N.). Tujuan watermarking adalah mengidentifikasi setiap
penggunaan dan distribusi suatu content.
3. Proteksi terhadap penggandaan (copy protection)
Watermarking berfungsi melindungi konten dari duplikasi dan
pembajakan.
4. Autentikasi citra
Watermarking berfungsi dalam proses autentikasi, sehingga modifikasi
dari suatu citra dapat terdeteksi
2.7. Discrete Wavelet Transform pada citra digital
Transformasi wavelet diskrit (discrete wavelet transform) secara umum
merupakan dekomposisi citra pada frekuensi subband citra tersebut. Komponen
subband transformasi wavelet dihasilkan dengan cara penurunan level
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
dekomposisi. Implementasi transformasi wavelet diskrit dapat dilakukan dengan
cara melewatkan sinyal melalui sebuah tapis lolos rendah (low pass filter/LPF) dan
tapis lolos tinggi (high pass filter/HPF) dan melakukan downsampling pada
keluaran masing-masing filter
Lowpass terhadap baris Lowpass terhadap kolom
Highpass terhadap kolom
Citra
Highpass terhadap baris Lowpass terhadap kolom
Highpass terhadap kolom
LL : hasil lowpass terhadap baris dan kolom
LH : hasil lowpass terhadap baris diteruskan dengan
highpass terhadap kolom
HL : hasil highpass terhadap baris diteruskan lowpass
terhadap kolom
HH : hasil highpass terhadap baris dan kolom
2.7.1. Penerapan Discrete Wavelet Transform pada kompresi citra
Kompresi dalam citra menggunakan DWT berhubungan dengan
dekomposisi terhadap citra tersebut. Citra yang merupakan sinyal bergerak ini
didekomposisi sama seperti cara dekomposisi sinyal yang telah dipaparkan pada
bagian sebelumnya.
LL HL
LH HH
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Secara umum, citra (sinyal bergerak) merupakan rangkaian gelombang
yang memiliki banyak puncak dan lembah. Masing-masing gelombang dalam
rangkaian gelombang dari sebuah citra biasanya mewakili channel warna
(Merah, Hijau, dan Biru). Puncak dan lembah citra dipusatkan ke titik nol,
selanjutnya transformasi sinyal menyimpan jarak dari titik nol menuju titik
sepanjang gelombang, jarak ini disebut dengan koefisien. Koefisien yang
berdekatan kemudian dirata-rata untuk mendapatkan gelombang yang lebih
sederhana dan menghasilkan citra dengan resolusi atau tingkat kedetilan
setengah dari semula. Koefisien yang telah dirata –rata kemudian dibagi lagi
seterusnya hingga mendapatkan gelombang yang sangat sederhana. Proses ini
merupakan dekomposisi pada citra. Transformasi wavelet dapat menghasilkan
versi resolusi citra yang sangat sederhana, oleh karena itu diperlukan perkiraan
bentuk umum serta warna (informasi) dari citra untuk dapat merekonstruksi
sebuah citra. Transformasi wavelet dapat mengidentifikasi variasi yang
signifikan dalam sebuah citra. Variasi ini berhubungan dengan tempat di mana
proses penyederhanaan terjadi. Pada saat dekomposisi citra menggunakan
koefisien yang dirata-rata, selisih dari koefisien tersebut dicatat. Semakin kecil
selisih dari koefisien maka variasi di dalam citra tersebut sedikit, dan ini
merupakan kandidat yang bagus untuk proses penyederhanaan. Semakin besar
selisih koefisien maka ini menandakan detil dari citra tersebut sangat signifikan
dan perlu untuk dipertahankan, biasanya yang memilki detil ini adalah garis
atau tepi dari citra. Contoh dari proses dekomposisi dan rekonstruksi citra
adalah, misalkan ada sebuah citra satu dimensi yang memiliki empat nilai saja
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
(empat piksel dalam sebuah baris, memiliki tingkat abu-abu yang berbeda),
yaitu:
Gambar 2.6 Citra grayscale sebelum dekomposisi
Selanjutnya diambil rata-rata dari pasangan pertama dan kedua hingga
menghasilkan tingkat abu-abu sebagai berikut:
Gambar 2.7 Citra grayscale hasil dekomposisi
Setelah citra telah disederhanakan, perlu untuk mencatat informasi
dari citra ini yaitu berupa selisih dari koefisien rata-rata. Selisih ini perlu
dicatat karena setelah citra disederhanakan maka resolusinya berkurang
menjadi setengah dan ada informasi yang hilang. Padahal informasi ini
dibutuhkan untuk merekontruksi citra tersebut. Secara teknis, dekomposisi
citra yang merupakan sinyal bergerak dapat digambarkan seperti
dekomposisi sinyal menggunakan transformasi wavelet. Citra dengan dua
dimensi (baris dan kolom) dapat didekomposisi seperti berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Gambar 2.8 Dekomposisi citra
2.7.2. Invers Discrete Wavelet Transform (IDWT)
Transformasi balik diskrit wavelet merupakan kebalikan dari DWT
maju. Pada tahap ini dilakukan proses rekonstruksi dengan arah yang
berlawanan dari proses sebelumnya. Yaitu dengan proses up-sampling dan
pem-filter-an dengan koefisien-koefisien filter balik. Proses up-
sampling dilakukan dengan mengembalikan dan menggabungkan sinyal seperti
semula. Proses ini dilakukan dengan menyisipkan sebuah kolom berharga nol
di antara setiap kolom dan melakukan konvolusi pada setiap baris
dengan filter satu dimensi. Hal yang sama dilakukan dengan menyisipkan
sebuah baris nol di antara setiap baris dan melakukan konvolusi pada setiap
kolom dengan filter yang lainnya.
Dekomposisi
LL2 HL2
HL1
LH2 HH2
LH1 HH1
Citra asli
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
3. BAB III
METODOLOGI
3.1. Data
Data yang digunakan dalam pengujian ini adalah file image / citra dokumen
digital dengan format joint photographic experts group berekstensi .jpg/.jpeg yang
didapat melalui proses digitalisasi citra dokumen menggunakan scanner.
Sedangkan file citra watermark dibuat menggunakan aplikasi Paint Editor yang ada
pada sistem operasi Windows. Citra watermark yang digunakan memiliki 2 varian
penampang, yaitu citra watermark dengan satu penampang image tunggal dan citra
watermark dengan banyak penampang image yang tersebar. Varian ini dipilih untuk
menguji mana jenis varian penampang yang baik sebagai citra watermark.
3.2. Deskripsi Rancangan Umum Perangkat Lunak
Perangkat lunak dirancang untuk dapat melakukan proses penyisipan
watermark ke dalam sebuah citra digital dengan teknik private watermarking / Non-
blind watermarking. Perangkat lunak ini dibangun pada satu lingkungan
pengembangan saja yaitu pada PC (Personal Computer), sehingga proses
watermarking (embed) dan ekstraksi (extract) dilakukan pada lingkungan
pengembangan yang sama. User diharuskan memilih proses yang diinginkan pada
awal berjalannya sistem. Proses watermarking (embed) berguna untuk melakukan
watermarking pada citra host, sedangkan proses ekstraksi (extract) berguna untuk
melakukan ekstraksi watermark dari citra digital yang sudah ber-watermark.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Perangkat lunak ini dibangun di dalam lingkungan desktop komputer
dengan sistem operasi Windows 8 Pro 64 bit. Perangkat lunak ini dibangun
menggunakan Matlab (Matrix Laboratory) versi 2012b. Perangkat keras yang
digunakan dalam pengembangan perangkat lunak ini adalah seperangkat komputer
dengan spesifikasi sebagai berikut:
1. Notebook dengan layar monitor LED 14 inch
2. Processor Intel(R) Core(TM) i3-3110M CPU @2.40GHz
3. Memory 4 GB
4. Hard Disk 500 GB
5. Perangkat tambahan : scanner
Ekstraksi watermark (extract) dirancang untuk dapat melakukan
pembandingan antara citra host dengan citra ber-watermark untuk mendapatkan
watermark. Secara umum arsitektur perangkat lunak yang dibangun pada kedua
lingkungan dapat dilihat pada gambar diagram blok gambar 3.1.
Gambar 3.1 Diagram blok perangkat lunak
Embed
Extract
Citra ber-
watermark
Dekomposisi
dengan DWT
Citra host
Citra
watermark
Penyisipan
watermark
Pembentukan kembali
citra dengan IDWT
Ekstraksi
watermark
Pembentukan
kembali citra
dengan IDWT
Citra
watermark
Dekomposisi
dengan DWT
Citra host Citra
watermark
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Proses embed yang dilakukan adalah pertama citra host dan citra watermark
di dekomposisi dengan DWT menggunakan wavelete Haar untuk mencari nilai
koefisien fLL masing-masing citra. Kemudian dilakukan penyisipan watermark
dengan memodifikasi koefisien fLL citra host dengan koefisien fLL citra
watermark, kemudian dilakukan proses Invers DWT yang merupakan proses
pembentukan kembali citra sehingga menghasilkan citra ber-watermark.
Proses extract yang dilakukan adalah pertama citra host, citra watermark
dan citra ber-watermark di dekomposisi dengan DWT menggunakan wavelete Haar
untuk mencari nilai koefisien fLL masing-masing citra. Kemudian dilakukan proses
ekstraksi untuk mendapatkan koefisien fLL citra watermark baru hasil dengan
memodifikasi koefisien fLL citra ber-watermark dengan menggunakan koefisien
fLL citra host dan fLL citra watermark , kemudian dilakukan proses Invers DWT
yang merupakan proses pembentukan kembali citra sehingga menghasilkan citra
watermark baru.
3.2.1. Use Case dan User Interface
Gambar 3.2 Use case
Mengekstrak watermark
Menyisipkan watermark
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
1. Halaman penyisipan watermark (embed)
Gambar 3.3 User interface (embed)
Use Case : Menyisipkan watermark, gambar 3.2.
Deskripsi : Proses ini adalah menyisipkan citra watermark pada citra host
sehingga menghasilkan citra ber-watermark
Pre – Condition : Citra watermark dan citra host sudah ada.
Post – Condition : Citra ber-watermark terbentuk dan dapat disimpan
Aktor Use Case Deskripsi
User Menyisipkan
watermark
Proses ini adalah menyisipkan
citra watermark pada citra host
sehingga menghasilkan citra ber-
watermark
Mengekstrak
watermark
Proses ini adalah ekstraksi
watermark pada citra ber-
watermark sehingga menghasilkan
citra watermark baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Aksi Aktor Reaksi Perangkat Lunak
1. Menekan tombol “browse” Memasukkan citra watermark dan citra
host kedalam perangkat lunak
2. Menekan tombol “Proses” Melakukan dekomposisi dan modifikasi
koefisien citra
3. Menampilkan citra ber-watermark yang
sudah terbentuk
Menekan tombol “Save” 4. Menyimpan citra ber-watermark yang
sudah terbentuk kedalam direktori yang
dikehendaki user
2. Halaman ekstraksi watermark (extract)
Gambar 3.4 User interface (extract)
Use Case : Mengekstrak watermark, gambar 3.2.
Deskripsi : Proses ini adalah ekstraksi watermark pada citra ber-
watermark sehingga menghasilkan citra watermark baru.
Pre – Condition : Citra ber- watermark, citra watermark dan citra host sudah
ada.
Post – Condition : Citra watermark baru terbentuk dan dapat disimpan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Aksi Aktor Reaksi Perangkat Lunak
1. Menekan tombol “browse” Memasukkan citra ber-watermark, citra
watermark dan citra host kedalam
perangkat lunak
2. Menekan tombol “Proses” Melakukan dekomposisi dan modifikasi
koefisien citra
3. Menampilkan citra watermark baru yang
sudah terbentuk
Menekan tombol “Save” 4. Menyimpan citra watermark baru yang
sudah terbentuk kedalam direktori yang
dikehendaki user
3.3. Penyisipan watermark
Dekomposisi citra digital yang akan disisipi watermark atau citra host
merupakan langkah pertama yang harus dilakukan untuk dapat menyisipkan
watermark ke dalamnya. Dekomposisi citra digital ini dilakukan dengan
menggunakan Discrete Wavelet Transform(DWT), proses yang perlu dijalankan
untuk mendekomposisi citra adalah sbb:
1. Dekomposisi citra dengan Discrete Wavelet Transform (DWT) sehingga
menghasilkan rentang frekuensi LL, LH,HL, dan HH.
2. Dekomposisi citra digital satu tingkat sehingga menghasilkan LL1, LH1,
HL1, dan HH1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.3.1. Alur Proses Penyisipan
Penyisipan watermark dilakukan cara memodifikasi koefisien pada
rentang frekuensi LL, LH, HL atau HH yang merupakan rentang frekuensi hasil
dekomposisi citra yang dilakukan dengan Discrete Wavelet Transform (DWT).
Data watermark ini dapat serangkaian bilangan w dengan panjang L yang
disisipkan pada koefisien rentang frekuensi yang di pilih ( f ).
𝑓′ = 𝑓 + 𝛼. 𝑤(𝑘) 𝑘 = 1, … , 𝐿
dimana, f koefisien sinyal asal
f’ koefisien sinyal asal yang sudah dimodifikasi
α konstanta untuk menentukan kekuatan penyisipan
watermark
Penyisipan citra watermark diawali dengan mengubah susunan citra
watermark ke dalam rangkaian matriks. Selanjutnya penyisipan watermark
dilakukan dengan langkah-langkah sbb:
1. Dekomposisi citra host dan citra watermark 1 level DWT.
2. Mencari koefisien terbesar f LL citra host dan mencari koefisien terbesar
f LL citra watermark dari rentang frekuensi LL hasil dekomposisi
3. Memodifikasi f LL citra host dengan menggunakan f LL citra watermark.
Koefisian baru dari f LL host = f LL host + (α * f LL watermark)
4. Menjalankan Inverse Discrete Wavelet Transform (IDWT) untuk
membentuk citra ber-watermark.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
3.4. Ekstraksi Watermark
Ekstraksi watermark (extract) dilakukan menggunakan citra asal atau citra
host. Pendeteksian ada tidaknya watermark dalam citra dilakukan dengan
menggunakan pembandingan koefisien yang bersesuaian pada citra ber-watermark
dengan nilai ambang. Jika koefisien dari rentang frekuensi yang berkorelasi lebih
besar daripada nilai ambang maka watermark terdeteksi di dalam citra.
3.4.1. Alur Proses Ekstraksi
Secara umum proses ekstraksi watermark ini merupakan kebalikan dari
proses penyisipan watermark yang telah dijelaskan sebelumnya.
1. Dekomposisi citra ber-watermark dan citra watermark 1 level DWT.
2. Mencari koefisien terbesar f LL citra ber-watermark dan mencari
koefisien terbesar fLL citra watermark dari rentang frekuensi LL hasil
dekomposisi
3. Memodifikasi f LL citra ber-watermark dengan menggunakan f LL citra
watermark.
Koefisian baru dari f LL citra ber-watermark =(fLLwatermak - fLLhost)/ α
4. Menjalankan Inverse Discrete Wavelet Transform (IDWT) untuk
membentuk citra watermark.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
4. BAB IV
IMPLEMENTASI
4.1. Representasi Data Dalam Matlab
Citra digital harus direpresentasikan dalam bentuk matriks agar dapat
dilakukan proses dekomposisi. Untuk itu, digunakan salah satu fungsi dari Matlab
Image File Operation yaitu [...]=imread(filename)
Gambar 4.1 Representasi citra1.jpg dalam Matlab
Gambar 4.2 Representasi watermark1.jpg dalam Matlab
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Untuk dapat memilih file citra digital yang akan digunakan dalam proses
watermarking (embed) dan proses ekstraksi watermark (extract), fungsi Matlab
tersebut dipergunakan dalam WatermarkGUI.m (lampiran 1) dan ExtractGUI.m
(lampiran 2) sebagai akses dari tombol browse yang terdapat dalam Graphical User
Interface (GUI) perangkat lunak. Citra digital yang dimasukkan dirubah kedalam
ukuran resolusi 2480 x 3508 yang merupakan ukuran standard kertas A4.
Potongan coding fungsi browse untuk proses input citra oleh user:
function browse1_Callback(hObject, eventdata, handles) global filename pathname; [filename,pathname]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename,0) || isequal(pathname,0) return; else browse1 = imread([pathname,filename]); host = imresize(browse1, [2480 3508]); %standart A4 untuk
resolusi cetak end
imshow(host,'Parent',handles.image1); (Lampiran 1)
Sebelum dilakukan proses penyisipan, citra host dan citra watermark harus
dimasukkan kedalam perangkat lunak. Sedangkan sebelum proses ekstraksi, citra
host, citra watermark dan citra ber-wartermark harus dimasukkan kedalam
perangkat lunak.
(a) (b) (c)
Gambar 4.3 (a) insert citra host, (b) insert citra watermark, (c) insert citra ber-
watermark
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
4.2. Alur Proses Penyisipan ( embed )
1. Dekomposisi citra host dan citra watermark.
Dekomposisi citra digital dilakukan dengan menggunakan fungsi
dwt2D_1level() yang ada pada dwt2D_1level.m (lampiran 3).
dwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi
Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan
menggunakan wavelet haar. Hasil dekomposisi dapat dilihat pada
gambar 4.4. Potongan coding dekomposisi pada Matlab:
[h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [ h_LL, h_LH; h_HL, h_HH ];
dec2d=uint8(dec2d); (lampiran 1)
(a) (b)
Gambar 4.4 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra
watermark
2. Mencari koefisien fLL dari citra host.
Karena proses dekomposisi hanya dilakukan dalam satu tingkat,
sehingga koefisien fLL dari citra host hanya ada satu koefisien saja.
Sehingga proses penyisipan watermark dilakukan dengan
memodifikasi koefisien ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
3. Memodifikasi fLL citra host menggunakan fLL citra watermark.
Modifikasi yang dilakukan pada fLL citra host akan menjadi koefisien
fLL baru yang akan digunakan dalam proses rekonstruksi. Modifikasi
yang dilakukan adalah dengan menambahkan koefisien fLL citra host
dengan koefisien fLL citra citra watermark yang sudah dikalikan dengan
suatu nilai konstanta (α). Varian nilai konstanta (α) yang digunakan
menjadi bahan percobaan yang dilakukan pada bab V.
newhost_LL = h_LL + (0.001*w_LL) (Lampiran 1)
4. Merekonstruksi citra
Proses rekonstruksi citra dilakukan dengan menggunakan fungsi
idwt2D_1level() yang ada pada idwt2D_1level.m (lampiran 4).
idwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi
Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan
menggunakan wavelet haar. Hasil rekonstruksi dapat dilihat pada
gambar 4.5. Potongan coding rekonstruksi citra pada Matlab:
rgb2=idwt2D_1level(newhost_LL,h_LH,h_HL,h_HH,'haar'); rgb2=uint8(rgb2); imshow(rgb2,'Parent',handles.watermarking); title(handles.watermarking,'Citra Digital yang sudah
diberi watermark'); (Lampiran 1)
Gambar 4.5. Rekonstruksi dengan IDWT menghasilkan citra ber-watermark
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
4.3. Alur Proses Ekstraksi ( extract )
1. Dekomposisi citra host, citra watermark dan citra ber-watermark
Dekomposisi citra digital dilakukan dengan menggunakan fungsi
dwt2D_1level() yang ada pada dwt2D_1level.m (lampiran 3).
dwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi
Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan
menggunakan wavelet haar. Hasil dekomposisi dapat dilihat pada
gambar 4.6. Potongan coding dekomposisi pada Matlab:
[h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [ h_LL, h_LH; h_HL, h_HH ];
dec2d=uint8(dec2d); (lampiran 1)
(a) (b)
(c)
Gambar 4.6 (a) Hasil dekomposisi citra host, (b) Hasil dekomposisi citra
watermark, (c) Hasil dekomposisi citra ber-watermark.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
2. Mencari koefisien fLL dari citra ber-watermark.
Karena proses dekomposisi hanya dilakukan dalam satu tingkat,
sehingga koefisien fLL dari citra ber-watermark hanya ada satu
koefisien saja. Sehingga proses ekstraksi watermark dilakukan dengan
memodifikasi koefisien ini.
3. Memodifikasi fLL citra ber-watermark menggunakan fLL citra
watermark dan fLL citra host.
Modifikasi yang dilakukan pada fLL citra ber-watermark akan menjadi
koefisien fLL watermark hasil ekstraksi yang akan digunakan dalam
proses rekonstruksi. Modifikasi yang dilakukan adalah dengan
mengurangkan koefisien fLL citra host dengan koefisien fLL citra
watermark kemudian dibagi dengan suatu nilai konstanta (α). Varian
nilai konstanta (α) yang digunakan menjadi bahan percobaan yang
dilakukan pada bab V.
newwatermark_LL=(wm_LL-h_LL)/0.001; (Lampiran 2)
4. Merekonstruksi citra
Proses rekonstruksi citra dilakukan dengan menggunakan fungsi
idwt2D_1level() yang ada pada idwt2D_1level.m (lampiran 4).
idwt2D_1level.m merupakan adaptasi dan modifikasi dari fungsi
Wavelet Toolbox dari Matlab Image Processing Toolbox, dengan
menggunakan wavelet haar. Kemudian citra hasil rekonstruksi
ditampilkam dalam Graphical User Interface perangkat lunak. Hasil
rekonstruksi dapat dilihat pada gambar 4.7.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
rgb2=idwt2D_1level(newhost_LL,h_LH,h_HL,h_HH,'haar'); rgb2=uint8(rgb2); imshow(rgb2,'Parent',handles.watermarking); title(handles.watermarking,'Citra Digital yang sudah
diberi watermark'); (Lampiran 2)
Gambar 4.7. Rekonstruksi dengan IDWT menghasilkan citra watermark hasil
ekstraksi.
4.4. Hitung PSNR dan SSIM
Proses menghitung PSNR dan SSIM dilakukan dengan membandingkan
piksel dari citra host dan citra ber-watermark yang merupakan hasil dari proses
watermarking.
4.4.1 Hitung PSNR
Penghitungan nilai PSNR dari citra ber-watermark dilakukan dengan
cara mencari MSE. Coding fungsi MSE dan PSNR pada Matlab :
function [ out ] = MSE( pic1,pic2 ) %Mean Squared Error [m, n]=size(pic1); for i=1:m for j=1:n e=e+double((pic1(i,j)-pic2(i,j))^2); end end out=e/(m*n); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
function [ out ] = PSNR( pic1,pic2 )%Peak Signal to-NoiseRatio e=MSE(pic1,pic2); out=20*log10(255/sqrt(e));
end (Lampiran 5)
4.4.2. Hitung SSIM (Structural Similiarity)
Penghitungan nilai SSIM menggunakan fungsi SSIM() yang ada
pada SSIM.m (Lampiran 6). Hasil output hitung PSNR dan SSIM dapat
dilihat pada gambar 4.8. Source code dari SSIM.m bersumber dari
https://ece.uwaterloo.ca/~z70wang/research/ssim/ dan dipublikasikan
pada Journal IEEE Transactions on Image Processing, vol. 13, no. 4, pp.
600-612 oleh Z. Oleh Wang, A. C. Bovik, H. R. Sheikh dan E. P. Simoncelli
tahun 2004. Potongan coding hitung SSIM pada Matlab:
img1 = imread('citra_asal.jpg'); imgrez1 = imresize(img1,[3410 2473]); img2 = imread('hasil1_mark2.jpg'); imgrez2 = imresize(img2,[3410 2473]); A = rgb2gray(imgrez1); B = rgb2gray(imgrez2); [mssim, ssim_map] = SSIM(A, B); [ out ] = PSNR(A,B); fprintf('The SSIM value is %0.4f.\n',mssim);
fprintf('The PSNR value is %0.4f.\n',out); (Lampiran 7)
Gambar 4.8. Hasil perhitungan PSNR dan SSIM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
4.5. Penambahan Standart Malicious Attack pada citra ber-watermark
Seluruh proses modifikasi citra ber-watermark menggunakan fungsi-fungsi
yang sudah disediakan oleh Matlab. Potongan oding dari fungsi-fungsi yang
digunakan :
%add noise salt and pepper 10% (mean=0, variance=0.1) B = imnoise(A,'salt & pepper',0.1); %add noise gaussian 10% (mean=0 , variance = 0.1) C = imnoise(A,'gaussian',0.1); %blur radius 10 pixel blur10 = fspecial('disk',10); D = imfilter(A,blur10,'replicate'); %blur radius 5 pixel blur5 = fspecial('disk',5); E = imfilter(A,blur5,'replicate'); %rotate 5 derajat F = imrotate(A,5); % imshow(F); %rotate 90 derajat G = imrotate(A,90); %contrast adjust RGB high_out = 0.9 H= imadjust(A,[0 0 0; 0.9 0.9 0.9],[]); %Scaling up 20% I1 = imresize(A, 1.2); %Scaling down 20%
I2 = imresize(A, 0.8); (Lampiran 8)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
5. BAB V
HASIL DAN PEMBAHASAN
5.1. Kerja Perangkat Lunak
Kerja perangkat lunak memiliki 2 fungsi utama yaitu:
1. Penyisipan watermark (embed) : menghasilkan citra ber-watermark,
dapat dilihat pada gambar 5.1.
2. Ekstraksi watermark (extract) : menghasilkan citra watermark dari
proses ekstraksi citra ber-watermak, dapat dilihat pada gambar 5.2.
Gambar 5.1 Penyisipan watermark (embed)
Gambar 5.2 Ekstraksi watermark (extract)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
5.2. Hasil Pengujian
Citra digital yang digunakan sebagai media penyisipan watermark
ditampilkan pada Tabel 5.1, sedangkan untuk citra watermark ditampilkan pada
Tabel 5.2.
Tabel 5.1 File citra asal (host)
Nama file Ukuran Citra Citra
Citra1.jpg 3410 x 2473
pixel
Tabel 5.2 File citra watermark
Nama file Ukuran Citra Citra
watermark1.jpg 2000 x 1500
pixel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
watermark2.jpg 2000 x 1500
pixel
5.2.1. Hasil Pengujian Citra Ber-watermark
Hasil pengujian menggunakan 2 varian citra watermark yang berbeda
dengan menggunakan varian konstanta (α) yang menentukan kekuatan penyisipan
watermark. Konstanta (α) yang digunakan dalam proses embed adalah 0.1 dan 0.01,
Hasil dari proses embed menghasilkan citra baru (citra ber-watermark) yang tidak
berbeda jauh dengan citra asal (host) yang ditampilkan pada Tabel 5.3. dan Tabel
5.4. Hal ini dibuktikan dengan nilai PSNR dari citra ber-watermark lebih dari 40db
yang mengindikasikan bahwa kualitas citra ber-watermark tinggi (Cheddad, Curran
dan Kevitt 2010). Hal ini juga diperkuat dengan nilai SSIM (Structural Similiarity)
yang lebih dari 0,9 dimana ketika nilai SSIM adalah 1 maka mengindikasikan
bahwa citra yang dibandingkan adalah citra yang sama (Wang, Bovik,
Sheikh dan Simoncelli, 2004: 600-612).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Tabel 5.3 Tabel hasil watermarking dengan watermark1.jpg
No Konstanta
embed (α) Citra host Hasil watermarking
Nilai
PSNR
dan
SSIM
1.
α = 0.1
PSNR =
53,29
SSIM =
0,936
2.
α = 0.01
PSNR =
48,43
SSIM =
0,949
Tabel 5.4 Tabel hasil watermarking dengan watermark2.jpg
No Konstanta
embed (α) Citra host Hasil watermarking
Nilai
PSNR
dan
SSIM
1.
α = 0.1
PSNR =
50,23
SSIM =
0,917
2.
α = 0.01
PSNR =
48,61
SSIM =
0,949
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
5.2.2. Hasil Pengujian Ekstraksi dari Citra Ber-watermark
Pengujian ekstraksi citra ber-watermark ini dilakukan dengan
menggunakan beberapa varian konstanta (α) dalam proses extract. Varian
konstanta (α) yang digunakan dalam proses extract adalah 0.01, 0.1, 1 dan 10.
Proses extract dilakukan pada citra ber-watermark, dimana citra ber-watermark
tersebut dihasilkan dari proses embed yang menggunakan konstanta (α) 0.01
dan 0.1 .
Dari hasil pengujian ini membuktikan bahwa semakin besar nilai
konstanta (α) dalam proses extract maka hasil ekstraksi watermark yang
didapat akan semakin terlihat jelas secara Human Visual System (HVS). Hal ini
ditunjukan pada Tabel 5.5 untuk ekstraksi dari citra ber-watermark yang didapat
dari proses embed dengan konstanta (α) 0,1 dan pada Tabel 5.6 untuk ekstraksi
dari citra ber-watermark yang didapat dari proses embed dengan konstanta (α)
0,01.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Tabel 5.5 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1
No Hasil embed α = 0.1 extract α = 0.01 extract α = 0.1 extract α = 1 extract α = 10
1.
2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Tabel 5.6 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01
No Hasil embed α = 0.01 extract α = 0.01 extract α = 0.1 extract α = 1 extract α = 10
1.
2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
5.2.3. Hasil Pengujian Ketahanan Perangkat Lunak
Pengujian Ketahanan Perangkat Lunak ini dilakukan dengan memberikan
modifikasi terhadap citra ber-watermark (Attack). Standart Attack yang
digunakan meliputi modifikasi atau perubahan terhadap citra digital yang sering
dilakukan baik secara sengaja maupun tidak sengaja. Standart Attack yang
digunakan :
1. Radian blurring 5 pixel : memberikan efek blur
2. Radian blurring 10 pixel : memberikan efek blur
3. Add Contrast : menambah nilai contrast highout 0.9
4. Croping : memotong bagian atas citra 100 pixel
5. Centered Croping : mengambil bagian tengah citra 30%
6. Add Gausian Noise : menambah noise(median =0, varian =0.1)
7. Add Salt and Pepper Noise : menambah noise(median =0, varian =0.1)
8. Left Rotate 5º : memutar citra ke kiri sebesar 5º
9. Left Rotate 90º : memutar citra ke kiri sebesar 90º
10. Scaling down20% : memperkecil citra sebesar 20 %
11. Scaling up 20 % : memperbesar citra sebesar 20%
Dari pengujian ini didapati bahwa perangkat lunak yang dibangun ini tahan
Standart Attack, hal ini dibuktikan dengan hasil ekstraksi watermark dari citra ber-
watermark yang telah diberi Standart Attack masih dapat dikenali secara Human
Visual System (HVS) oleh penulis. Hasil pengujian ini dapat dilihat pada Tabel 5.7
hingga Tabel 5.10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Tabel 5.7 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 yang sudah dikenai Standart Attack
(watermark1.jpg)
No Jenis
Serangan Hasil Serangan extract α = 0.01 extract α = 0.1 extract α = 1 extract α = 10
1.
Radian
blur 5
pixel
2.
Radian
blur 10
pixel
3.
Contrast
highout
0.9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
4.
Crop
top 100
pixel
5.
Centered
crop
30%
6.
Gaussian
noise
m=0
v=0.1
7.
Salt and
Pepper
noise
m=0
v=0.1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
8. Rotate 5º
9. Rotate
90º
10.
Scale
down
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
11. Scale up
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Tabel 5.8 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 yang sudah dikenai Standart Attack
(watermark1.jpg)
No Jenis
Serangan Hasil Serangan extract α = 0.01 extract α = 0.1 extract α = 1 extract α = 10
1.
Radian
blur 5
pixel
2.
Radian
blur 10
pixel
3.
Contrast
highout
0.9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
4.
Crop
top 100
pixel
5.
Centered
crop
30%
6.
Gaussian
noise
m=0
v=0.1
7.
Salt and
Pepper
noise
m=0
v=0.1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
8. Rotate 5º
9. Rotate
90º
10.
Scale
down
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
11. Scale up
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Tabel 5.9 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.1 yang sudah dikenai Standart Attack
(watermark2.jpg)
No Jenis
Serangan Hasil Serangan extract α = 0.01 extract α = 0.1 extract α = 1 extract α = 10
1.
Radian
blur 5
pixel
2.
Radian
blur 10
pixel
3.
Contrast
highout
0.9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
4.
Crop
top 100
pixel
5.
Centered
crop
30%
6.
Gaussian
noise
m=0
v=0.1
7.
Salt and
Pepper
noise
m=0
v=0.1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
8. Rotate 5º
9. Rotate
90º
10.
Scale
down
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
11. Scale up
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Tabel 5.10 Tabel extract dengan α = 0.01, α = 0.1, α = 1, α =10 untuk embed dengan α = 0.01 yang sudah dikenai Standart Attack
(watermark2.jpg)
No Jenis
Serangan Hasil Serangan extract α = 0.01 extract α = 0.1 extract α = 1 extract α = 10
1.
Radian
blur 5
pixel
2.
Radian
blur 10
pixel
3.
Contrast
highout
0.9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
4.
Crop
top 100
pixel
5.
Centered
crop
30%
6.
Gaussian
noise
m=0
v=0.1
7.
Salt and
Pepper
noise
m=0
v=0.1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
8. Rotate 5º
9. Rotate
90º
10.
Scale
down
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
11. Scale up
20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Tabel 5.11 Tabel pengenalan informasi watermark hasil extract α =10 dari citra ber-watermark embed α =0.01 (proses watermarking
yang menghasilkan watermark yang tidak kasat mata) yang dikenai Standart Attack variasi pemilihan citra watermark
No Jenis
Serangan watermark1.jpg
watermark
dikenali?
Pengenalan
informasi
watermark
secara HVS
watermark2.jpg watermark
dikenali?
Pengenalan
informasi
watermark
secara HVS
1.
Radian
blur 5
pixel
Ya
Dikenali
dengan baik
Ya
Dikenali
dengan baik
2.
Radian
blur 10
pixel
Ya
Dikenali
dengan baik
Ya
Tidak
dikenali
dengan baik
3.
Contrast
highout
0.9
Ya
Dikenali
dengan baik
Ya
Dikenali
dengan baik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
4. Crop top
100 pixel
Ya
Dikenali
dengan baik
Tidak
Tidak
dikenali sama
sekali
5. Centered
crop 30%
Ya
Tidak
dikenali
dengan baik
Ya
Tidak
dikenali
dengan baik
6.
Gaussian
noise m=0
v=0.1
Ya
Dikenali
dengan baik
Ya
Tidak
dikenali
dengan baik
7.
Salt and
Pepper
noise m=0
v=0.1
Ya
Dikenali
dengan baik
Ya
Tidak
dikenali
dengan baik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
8. Rotate 5º
Ya
Tidak
dikenali
dengan baik
Tidak
Tidak
dikenali sama
sekali
9. Rotate 90º
Ya
Tidak
dikenali
dengan baik
Tidak
Tidak
dikenali sama
sekali
10. Scale
down 20%
Ya
Dikenali
dengan baik
Ya
Tidak
dikenali
dengan baik
11. Scale up
20%
Ya
Dikenali
dengan baik
Ya
Tidak
dikenali
dengan baik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
Dari Tabel 5.11. didapati bahwa berdasarkan pengenalan informasi dari
watermark hasil extract citra ber-watermark yang sudah dikenai standard attack
menunjukkan pada penggunaan watermark1.jpg tahan terhadap : Radian blurring 5
pixel, Radian blurring 10 pixel, Add Contrast, Croping top 100 pixel, Add Gausian
Noise, Add Salt and Pepper Noise, Scaling down20% dan Scaling up 20 %.
Sedangkan penggunaan watermark2.jpg hanya tahan terhadap Radian blurring 5
pixel dan Add Contrast saja. Hal ini didasarkan pada pengenalan informasi
watermark yang dikenali dengan baik.
Tabel 5.11. juga menunjukkan penggunaan konstanta embed α = 0.01 tidak
tahan terhadap standard attack berupa Centered crop 30%, Left Rotate 5º, Left
Rotate 90º karena informasi dari watermark hasil extract tidak dapat dikenali
dengan baik meskipun watermark itu sendiri dapat dikenali secara HVS.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
5.2.4. Hasil Pengujian Perangkat Lunak Mengenali Citra yang Tidak
Ber-watermark
Pengujian ini dilakukan untuk mengetahui kemampuan perangkat lunak
dalam mengenali citra digital yang tidak ber-watermark. Pengujian dilakukan
dengan melakukan proses ekstraksi terhadap citra yang tidak disisipi dengan
watermark.
Pengujian ini menunjukkan bahwa hasil ekstraksi watermark dari citra
digital yang tidak ber-watermark akan menghasilkan watermark yang sama dan
dapat dikenali secara Human Visual System (HVS) apabila citra tidak ber-
watermark yang diekstrak adalah sama dengan citra asal, hal ini dapat dilihat
pada Tabel 5.12. Tetapi watermark yang dihasilkan dari ekstraksi dimana citra
yang akan dikenali berbeda dengan citra asal, maka watermark tidak dapat
dikenali, hal ini dapat dilihat pada Tabel 5.13.
Tabel 5.12 Tabel extract untuk citra digital tidak ber-watermark
(citra yang akan dikenali adalah citra asal)
No. Citra
Asal Citra yang akan
dikenali
Hasil Ekstraksi
Citra dengan
watermark1.jpg
Hasil Ekstraksi
Citra dengan
watermark2.jpg
watermak
dikenali?
1. Citra1
.jpg
Ya
2. Citra2
.jpg
Ya
3. Citra3
.jpg
Ya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
4. Citra4
.jpg
Ya
5. Citra5
.jpg
Ya
Tabel 5.13 Tabel extract untuk citra digital tidak ber-watermark
(citra yang akan dikenali berbeda dengan citra asal). Citra asal yang digunakan
Citra1.jpg
No. Citra
Asal Citra yang akan
dikenali
Hasil Ekstraksi
Citra dengan
watermark1.jpg
Hasil Ekstraksi
Citra dengan
watermark2.jpg
watermak
dikenali?
1. Citra1
.jpg
Tidak
2. Citra1
.jpg
Tidak
3. Citra1
.jpg
Tidak
4. Citra1
.jpg
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
6. BAB VI
KESIMPULAN DAN SARAN
6.1. Kesimpulan
Berdasarkan uraian yang sudah dijelaskan pada skripsi ini dengan
menganalisa hasil kerja perangkat lunak yang mengimplementasikan metode
Discrete Wavelet Transform (DWT), maka dapat diambil kesimpulan sebagai
berikut:
1. Penyisipan citra watermark ke dalam citra asal (host) menggunakan metode
Discrete Wavelet Transform (DWT) adalah dengan menyisipkan citra
watermark ke dalam koefisien citra asal (host). Dekomposisi citra digital
menggunakan metode Discrete Wavelet Transform (DWT) dilakukan
dengan mengambil koefisien wavelet dari citra digital tersebut, koefisien
tersebut juga digunakan untuk dapat merekonstruksi citra kembali
menggunakan Inverse Discrete Wavelet Transform (IDWT)
2. Untuk dapat menghasilkan citra dokumen digital dengan fidelity yang baik,
maka pemilihan konstanta (α) = 0.01 pada proses embed adalah yang terbaik
menurut penulis karena pada citra ber-watermark, watermark yang
disisipkan tidak dapat dilihat (tidak kasat mata) secara Human Division
System (HVS) oleh penulis serta memiliki nilai PSNR 48.43 dan SSIM
0.949. Untuk mendapatkan watermark yang dapat dikenali oleh penulis,
konstanta (α) = 1 atau 10 pada proses extract adalah yang terbaik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
3. Dari hasil percobaan yang dilakukan, menunjukkan bahwa teknik
watermarking dengan menggunakan Discrete Wavelet Transform (DWT)
memiliki ketahanan (robustness) yang cukup baik karena citra watermark
yang dari proses extract citra ber-watermark yang sudah mengalami
malicious attack: blurring, croping, contrasting, add noise, rotate dan
scaling, dapat dikenali secara Human Division System (HVS) oleh penulis.
6.2. Saran
Beberapa saran untuk pengembangan antara lain:
1. Wavelet yang digunakan dalam penerapan Teknik Watermarking Metode
Discrete Wavelet Transform (DWT) ini adalah wavelet Haar, untuk
pengembangan selanjutnya dapat diuji coba dengan menggunakan wavelet
yang lain seperti Daubechies, Meyer dan Morlet.
2. Dekomposisi yang digunakan dalam Teknik Watermarking Metode
Discrete Wavelet Transform (DWT) ini hanya menggunakan transformasi 1
level, untuk pengembangan selanjutnya dapat dicoba dengan 2 level atau n
level.
3. Pengujian ketahanan terhadap malicious attack hanya dilakukan dengan
beberapa jenis standart attack saja, untuk pengembangan selanjutnya bisa
diuji coba dengan variasi malicious attack lainnya seperti proses smoothing,
clearing, sharpening dan compression.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
4. Citra dokumen digital yang digunakan hanya citra dokumen dengan format
Joint Potographics Expert berekstensi .jpg/.jpeg saja, untuk pengembangan
selanjutnya bisa menggunakan format citra yang lain seperti .bmp, .gif,
.png, dan .tiff.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
DAFTAR PUSTAKA
Alfatwa , Dean Fathony (2003). Watermarking Pada Citra Digital Menggunakan
Discrete Wavelete Transform. Skripsi. Teknologi Bandung. Bandung.
Al-khassaweneh, Mahmood and Selin Aviyente. (2008). Image Watermarking
Based on Wavelet Hard Thresholding. European Signal Processing
Conference, EUSIPCO. Vol. 13, pp. 277-280.
Cheddad, A., Condell, J., Curran, K., Kevitt, P.Mc., (2010). Digital Image
Steganography: Survey and Analysis of Current Methods. Northern Ireland,
UK. Elsevier.
Edi S. Mulyanta (2006). Dari Teori Hingga Praktik : Pengolahan Digital Image
dengan Photoshop CS2. Yogyakarta : Andi Offset.
Hameed, Kamran, Adeel Mumtaz, and S.A.M. Gilani. (2008). Digital Image
Watermarking in the Wavelet Transform Domain. Proceedings of World
Academy of Science, Engineering and Technology, Vol. 13.
Hendrawan, Shanty Meliani (2003). Robust and Non Blind Watermarking pada
Citra Digital dengan Teknik Spread Spectrum. Skripsi. Institut Teknologi
Bandung. Bandung.
Kutter, Martin; Fabien A. P. Petitcolas (1999). A Fair Benchmark for Image
Watermarking Systems. Proceedings of Electronic Imaging ’99, Security
and Watermarking of Multimedia Contents, vol. 3657, pp. 226–239, San
Jose, California, U.S.A., 25–27 January 1999.
Lu, Chun-Shien (2005) Multimedia Security : Steganography and Digital
Watermarking Techniques for Protection of Intellectual Property. Thesis.
Institute of Information Science Academia Sinica. Taiwan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Paulus, S. Si, M. Kom, Erick. dan Yessica Nataliani, S. Si, M. Kom. (2007). GUI
Matlab. Yogyakarta : Andi Offset.
Sirait, Rummi (2008). Teknologi Watermarking Pada Citra Digital. Thesis.
Program Pascasarjana. Universitas Indonesia. Jakarta.
Terzija, Nataša (2006). Robust Digital Image Watermarking Algorithms for
Copyright Protection. Thesis. Universität Duisburg-Essen. Jerman.
Wijaya, Marvin Ch dan Agus Prijono. (2007). Pengolahan Citra Digital
Menggunakan Matlab. Bandung : Informatika Bandung.
Z. Wang, A. C. Bovik, H. R. Sheikh and E. P. Simoncelli (2004). Image quality
assessment: From error visibility to structural similarity. Journal IEEE
Transactions on Image Processing, vol. 13, no. 4, pp. 600-612.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
Lampiran
Lampiran 1
WatermarkingGUI.m
function varargout = WatermarkingGUI(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @WatermarkingGUI_OpeningFcn,
... 'gui_OutputFcn', @WatermarkingGUI_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 WatermarkingGUI is made visible. function WatermarkingGUI_OpeningFcn(hObject, eventdata, handles,
varargin) % This function has no output args, see OutputFcn. % 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 WatermarkingGUI (see
VARARGIN)
% Choose default command line output for WatermarkingGUI handles.output = hObject; % Update handles structure guidata(hObject, handles); usd=imread('logo_usd.jpg'); host=imread('host.jpg'); mark=imread('watermark.jpg'); proses=imread('proses.jpg');
imshow(usd,'Parent',handles.logo); imshow(host,'Parent',handles.image1); imshow(mark,'Parent',handles.image2); imshow(proses,'Parent',handles.watermarking);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
% --- Outputs from this function are returned to the command line. function varargout = WatermarkingGUI_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;
function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (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 edit1 as text % str2double(get(hObject,'String')) returns contents of
edit1 as a double
% --- Executes during object creation, after setting all
properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (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 browse1. function browse1_Callback(hObject, eventdata, handles) global filename pathname; [filename,pathname]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename,0) || isequal(pathname,0) return; else browse1 = imread([pathname,filename]); host = imresize(browse1, [2480 3508]); %standart A4 untuk
resolusi cetak end imshow(host,'Parent',handles.image1);
% --- Executes on button press in browse2. function browse2_Callback(hObject, eventdata, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
global filename1 pathname1; [filename1,pathname1]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename1,0) || isequal(pathname1,0) return; else browse2 = imread([pathname1,filename1]); watermark = imresize(browse2, [2480 3508]); %standart A4 untuk
resolusi cetak end imshow(watermark,'Parent',handles.image2);
% --- Executes on button press in proses. function proses_Callback(hObject, eventdata, handles) global filename pathname; global filename1 pathname1; read=imread([pathname,filename]); rgbimage = imresize(read, [2480 3508]); %standart A4 untuk
resolusi cetak imshow(rgbimage,'Parent',handles.watermarking); title(handles.watermarking,'Citra Digital Asli'); pause(0.5); [h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [ h_LL, h_LH; h_HL, h_HH ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.watermarking); title(handles.watermarking,'dwt2D_1level dari Citra Digital
Asli'); pause(0.5); %watermark read1=imread([pathname1,filename1]); rgbimage1 = imresize(read1, [2480 3508]); %standart A4 untuk
resolusi cetak imshow(rgbimage1,'Parent',handles.watermarking); title(handles.watermarking,'Watermark'); pause(0.5); [w_LL,w_LH,w_HL,w_HH]=dwt2D_1level(rgbimage1,'haar'); dec2d = [ w_LL, w_LH; w_HL, w_HH ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.watermarking); title(handles.watermarking,'dwt2D_1level dari Watermark'); pause(0.5); %watermarking newhost_LL = h_LL + (0.001*w_LL);
%output rgb2=idwt2D_1level(newhost_LL,h_LH,h_HL,h_HH,'haar'); rgb2=uint8(rgb2); imshow(rgb2,'Parent',handles.watermarking);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
title(handles.watermarking,'Citra Digital yang sudah diberi
watermark');
% --- Executes on button press in save. function save_Callback(hObject, eventdata, handles) img = getimage(handles.watermarking); [FileName, PathName] = uiputfile('*.jpg', 'Save As'); if PathName==0, return; end Name = fullfile(PathName,FileName); imwrite(img, Name, 'jpg');
Lampiran 2
ExtractGUI.m
function varargout = ExtractGUI(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @ExtractGUI_OpeningFcn, ... 'gui_OutputFcn', @ExtractGUI_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 ExtractGUI is made visible. function ExtractGUI_OpeningFcn(hObject, eventdata, handles,
varargin) % This function has no output args, see OutputFcn. % 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 ExtractGUI (see VARARGIN) % Choose default command line output for ExtractGUI handles.output = hObject; % Update handles structure guidata(hObject, handles); usd=imread('logo_usd.jpg'); host=imread('host.jpg'); mark=imread('watermark.jpg'); marked=imread('watermarked.jpg');
imshow(usd,'Parent',handles.logo); imshow(host,'Parent',handles.image1); imshow(mark,'Parent',handles.image2); imshow(marked,'Parent',handles.image3);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
% --- Outputs from this function are returned to the command line. function varargout = ExtractGUI_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 browse1. function browse1_Callback(hObject, eventdata, handles) global filename pathname; [filename,pathname]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename,0) || isequal(pathname,0) return; else browse1 = imread([pathname,filename]); host = imresize(browse1, [2480 3508]); %standart A4 untuk
resolusi cetak end imshow(host,'Parent',handles.image1);
% --- Executes on button press in browse2. function browse2_Callback(hObject, eventdata, handles) global filename1 pathname1; [filename1,pathname1]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename1,0) || isequal(pathname1,0) return; else browse2 = imread([pathname1,filename1]); watermark = imresize(browse2, [2480 3508]); %standart A4 untuk
resolusi cetak end imshow(watermark,'Parent',handles.image2);
% --- Executes on button press in proses. function proses_Callback(hObject, eventdata, handles) global filename pathname; global filename1 pathname1; global filename2 pathname2; % rgbimage=imread('host.jpg'); read=imread([pathname,filename]); rgbimage = imresize(read, [2480 3508]); %standart A4 untuk
resolusi cetak imshow(rgbimage,'Parent',handles.image3); title(handles.image3,'Citra Digital Asli'); pause(0.5) [h_LL,h_LH,h_HL,h_HH]=dwt2D_1level(rgbimage,'haar'); dec2d = [... h_LL, h_LH; ... h_HL, h_HH ... ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.image3); title(handles.image3,'dwt2D_1level dari Citra Digital Asli');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
pause(0.5); %watermark read1=imread([pathname1,filename1]); rgbimage1 = imresize(read1, [2480 3508]); %standart A4 untuk
resolusi cetak imshow(rgbimage1,'Parent',handles.image3); title(handles.image3,'Watermark'); pause (0.5); [w_LL,w_LH,w_HL,w_HH]=dwt2(rgbimage1,'haar'); dec2d = [ w_LL, w_LH; w_HL, w_HH ]; dec2d=uint8(dec2d); imshow(dec2d,'Parent',handles.image3); title(handles.image3,'dwt2D_1level dari Watermark'); pause(0.5); %watermarked read2=imread([pathname2,filename2]); rgbimage3 = imresize(read2, [2480 3508]); %standart A4 untuk
resolusi cetak imshow(rgbimage3,'Parent',handles.image3); title(handles.image3,'Citra Digital yang sudah diberi watermark'); pause(0.5); [wm_LL,wm_LH,wm_HL,wm_HH]=dwt2(rgbimage3,'haar'); dec2 = [ wm_LL, wm_LH; wm_HL, wm_HH ]; dec2=uint8(dec2); imshow(dec2,'Parent',handles.image3); title(handles.image3,'dwt2D_1level dari Citra Digital yang sudah
diberi watermark'); pause(0.5); %watermarking newwatermark_LL= (wm_LL-h_LL)/1; %output rgb2=idwt2D_1level(newwatermark_LL,w_LH,w_HL,w_HH,'haar'); gray = rgb2gray(rgb2); bw = im2bw(gray, 0.90); % inversrgb2 = imcomplement(bw); imshow(bw,'Parent',handles.image3); title(handles.image3,'Watermark yang sudah diekstrak'); function save_Callback(hObject, eventdata, handles) img = getimage(handles.image3); [FileName, PathName] = uiputfile('*.jpg', 'Save As'); if PathName==0, return; end Name = fullfile(PathName,FileName); imwrite(img, Name, 'jpg');
% --- Executes on button press in browse3. function browse3_Callback(hObject, eventdata, handles) global filename2 pathname2; [filename2,pathname2]=uigetfile('*.jpg;*.jpeg','Choose Image : '); if isequal(filename2,0) || isequal(pathname2,0) return;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
else browse3 = imread([pathname2,filename2]); marked = imresize(browse3, [2480 3508]); %standart A4 untuk
resolusi cetak end imshow(marked,'Parent',handles.image3);
Lampiran 3
dwt2D_1level.m function [a,h,v,d] = dwt2D_1level(x,varargin)%Variable length
input argument list.
nbIn = nargin; %%NARGIN Number of function input arguments. narginchk(2,7) if ischar(varargin{1}) [Lo_D,Hi_D] = wfilters(varargin{1},'d'); next = 2; else Lo_D = varargin{1}; Hi_D = varargin{2}; next = 3; end
% cek argumen untuk Size, Shift and Extension. DWT_Attribute = getappdata(0,'DWT_Attribute'); if isempty(DWT_Attribute) , DWT_Attribute = dwtmode('get'); end dwtEXTM = DWT_Attribute.extMode; % Default: Extension. shift = DWT_Attribute.shift2D; % Default: Shift. for k = next:2:nbIn-1 switch varargin{k} case 'mode' , dwtEXTM = varargin{k+1}; case 'shift' , shift = mod(varargin{k+1},2); end end
% Hitung size. lf = length(Lo_D); sx = size(x);
% Extend, Decompose & Extract coefficients. first = 2-shift; flagPer = isequal(dwtEXTM,'per'); if ~flagPer sizeEXT = lf-1; last = sx+lf-1; else sizeEXT = lf/2; last = 2*ceil(sx/2); end
x = double(x); if length(sx)==2 y = wextend('addcol',dwtEXTM,x,sizeEXT); z = conv2(y,Lo_D(:)','valid'); a = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); h = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); z = conv2(y,Hi_D(:)','valid');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
v = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); d = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); else a = cell(0,3); h = cell(0,3); v = cell(0,3); d = cell(0,3); for k = 1:3 y = wextend('addcol',dwtEXTM,x(:,:,k),sizeEXT); z = conv2(y,Lo_D(:)','valid'); a{k} = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); h{k} = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); z = conv2(y,Hi_D(:)','valid'); v{k} = convdown(z,Lo_D,dwtEXTM,sizeEXT,first,last); d{k} = convdown(z,Hi_D,dwtEXTM,sizeEXT,first,last); end a = cat(3,a{:}); h = cat(3,h{:}); v = cat(3,v{:}); d = cat(3,d{:}); end
function y = convdown(x,F,dwtEXTM,lenEXT,first,last)
y = x(:,first(2):2:last(2)); y = wextend('addrow',dwtEXTM,y,lenEXT); y = conv2(y',F(:)','valid'); y = y'; y = y(first(1):2:last(1),:); %-------------------------------------------------------%
Lampiran 4
idwt2D_1level.m
function x = idwt2D_1level(a,h,v,d,varargin) narginchk(2,7) if isempty(a) && isempty(h) && isempty(v) && isempty(d), x = [];
return; end if ischar(varargin{1}) [Lo_R,Hi_R] = wfilters(varargin{1},'r'); next = 2; else Lo_R = varargin{1}; Hi_R = varargin{2}; next = 3; end
% Cek arguments untuk Size, Shift and Extension. DWT_Attribute = getappdata(0,'DWT_Attribute'); if isempty(DWT_Attribute) , DWT_Attribute = dwtmode('get'); end dwtEXTM = DWT_Attribute.extMode; % Default: Extension. shift = DWT_Attribute.shift2D; % Default: Shift. sx = []; k = next; while k<=length(varargin) if ischar(varargin{k}) switch varargin{k}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
case 'mode' , dwtEXTM = varargin{k+1}; case 'shift' , shift = mod(varargin{k+1},2); end k = k+2; else sx = varargin{k}; k = k+1; end end x = upsconv2(a,{Lo_R,Lo_R},sx,dwtEXTM,shift)+ ... % Approximation. upsconv2(h,{Hi_R,Lo_R},sx,dwtEXTM,shift)+ ... % Horizontal
Detail. upsconv2(v,{Lo_R,Hi_R},sx,dwtEXTM,shift)+ ... % Vertical
Detail. upsconv2(d,{Hi_R,Hi_R},sx,dwtEXTM,shift); % Diagonal
Detail.
Lampiran 5
PSNR.m
function [ out ] = MSE( pic1,pic2 ) %Mean Squared Error [m, n]=size(pic1); for i=1:m for j=1:n e=e+double((pic1(i,j)-pic2(i,j))^2); end end out=e/(m*n); end function [ out ] = PSNR( pic1,pic2 ) %Peak Signal to-Noise Ratio e=MSE(pic1,pic2); out=20*log10(255/sqrt(e)); end
Lampiran 6
function [mssim, ssim_map] = SSIM(img1, img2, K, window, L) if (size(img1) ~= size(img2)) ssim_index = -Inf; ssim_map = -Inf; return; end
[M N] = size(img1);
if (nargin == 2) if ((M < 11) || (N < 11)) ssim_index = -Inf; ssim_map = -Inf; return end window = fspecial('gaussian', 11, 1.5); %
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
K(1) = 0.01; % default
settings K(2) = 0.03; % L = 255; % end
C1 = (K(1)*L)^2; C2 = (K(2)*L)^2; window = window/sum(sum(window)); img1 = double(img1); img2 = double(img2);
mu1 = filter2(window, img1, 'valid'); mu2 = filter2(window, img2, 'valid'); mu1_sq = mu1.*mu1; mu2_sq = mu2.*mu2; mu1_mu2 = mu1.*mu2; sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq; sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq; sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2;
if (C1 > 0 && C2 > 0) ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq +
mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2)); else numerator1 = 2*mu1_mu2 + C1; numerator2 = 2*sigma12 + C2; denominator1 = mu1_sq + mu2_sq + C1; denominator2 = sigma1_sq + sigma2_sq + C2; ssim_map = ones(size(mu1)); index = (denominator1.*denominator2 > 0); ssim_map(index) =
(numerator1(index).*numerator2(index))./(denominator1(index).*deno
minator2(index)); index = (denominator1 ~= 0) & (denominator2 == 0); ssim_map(index) = numerator1(index)./denominator1(index); end
mssim = mean2(ssim_map); return
img1=imread (image1); img2=imread (image2); [mssim ssim_map] = SSIM(img1, img2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
Lampiran 7
PSNR_SSIM.m
img1 = imread('citra_asal.jpg'); imgrez1 = imresize(img1,[3410 2473]); img2 = imread('hasil1_mark2.jpg'); imgrez2 = imresize(img2,[3410 2473]); A = rgb2gray(imgrez1); B = rgb2gray(imgrez2); [mssim, ssim_map] = SSIM(A, B); [ out ] = PSNR(A,B); fprintf('The SSIM value is %0.4f.\n',mssim); fprintf('The PSNR value is %0.4f.\n',out);
Lampiran 8
addAttack.m
clear all; clc; close all; % A=imread('hasil1_mark1.jpg'); A=imread('hasil1_mark2.jpg');
%add noise salt and pepper 10% (mean=0, variance=0.1) B = imnoise(A,'salt & pepper',0.1); %add noise gaussian 10% (mean=0 , variance = 0.1) C = imnoise(A,'gaussian',0.1); %blur radius 10 pixel blur10 = fspecial('disk',10); D = imfilter(A,blur10,'replicate'); %blur radius 5 pixel blur5 = fspecial('disk',5); E = imfilter(A,blur5,'replicate'); %rotate 5 derajat F = imrotate(A,5); % imshow(F); %rotate 90 derajat G = imrotate(A,90); %contrast adjust RGB high_out = 0.9 H= imadjust(A,[0 0 0; 0.9 0.9 0.9],[]); %Scaling up 20% I1 = imresize(A, 1.2); %Scaling down 20% I2 = imresize(A, 0.8); % imwrite(B,'hasil1_mark1(noise_salt_pepper_10%).jpg','jpg'); % imwrite(C,'hasil1_mark1(nois_egaussian).jpg','jpg'); % imwrite(D,'hasil1_mark1(blur_10_pixel).jpg','jpg'); % imwrite(E,'hasil1_mark1(blur_5_pixel).jpg','jpg'); % imwrite(F,'hasil1_mark1(rotate_5_derajat).jpg','jpg'); % imwrite(G,'hasil1_mark1(rotate_90_derajat).jpg','jpg'); % imwrite(H,'hasil1_mark1(contrast_highout_0,9).jpg','jpg'); % imwrite(I1,'hasil1_mark1(scaling_up_20%).jpg','jpg'); % imwrite(I2,'hasil1_mark1(scaling_down_20%).jpg','jpg'); %mark2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
imwrite(B,'hasil1_mark2(noise_salt_pepper_10%).jpg','jpg'); imwrite(C,'hasil1_mark2(nois_egaussian).jpg','jpg'); imwrite(D,'hasil1_mark2(blur_10_pixel).jpg','jpg'); imwrite(E,'hasil1_mark2(blur_5_pixel).jpg','jpg'); imwrite(F,'hasil1_mark2(rotate_5_derajat).jpg','jpg'); imwrite(G,'hasil1_mark2(rotate_90_derajat).jpg','jpg'); imwrite(H,'hasil1_mark2(contrast_highout_0,9).jpg','jpg'); imwrite(I1,'hasil1_mark2(scaling_up_20%).jpg','jpg'); imwrite(I2,'hasil1_mark2(scaling_down_20%).jpg','jpg');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI