BAB 3 ANALISIS DAN PERANCANGAN
Perancangan aplikasi yang dibuat dalam skripsi ini menggunakan aturan prototyping model. Metode ini memiliki 3 tahapan seperti yang sudah ditulis di dalam Bab 2, yaitu pengumpulan informasi dan analisis, perancangan dan pembuatan prototype, dan pengevaluasian prototype. Tahap pengumpulan informasi, analisis dan perancangan prototype akan dibahas dalam Bab 3 ini, sedangkan pengevaluasian prototype akan dilanjutkan di Bab 4.
3.1
Analisis Dengan bertumbuhnya teknologi yang semakin pesat, memudahkan orang-orang
untuk dapat bertukar atau mendapatkan data dari internet dengan cepat dan mudah. Hal ini memungkinkan orang-orang mudah mendapatkan citra dijital dari tempat lain, dan menggunakannya untuk kepentingan pribadi.
Hal yang perlu diperhatikan adalah
penyalahgunaan file citra tersebut yang didapatkan dan menggunakannya untuk kepentingan pribadi tanpa seijin dari pencipta file tersebut. Sebagai contoh adalah dalam dunia periklanan, citra dijital yang dihasilkan oleh designer profesional, kemudian digunakan oleh orang lain untuk kepentingan yang tidak berhubungan dengan pencipta. Hal ini menyebabkan penyalahgunaan hak cipta. Namun karena tidak adanya bukti yang menyatakan kepemilikan, maka sulit sekali untuk mengetahui hak cipta dari file citra tersebut. Dibutuhkan suatu cara untuk menandakan suatu hak cipta tersebut. Watermarking dijital adalah salah satu cara yang dapat digunakan untuk menyisipkan
36
informasi kepemilikan pada file citra dijital. Dengan cara ini, file data citra dijital akan diberikan informasi tambahan tentang kepemilikan file citra dijital tersebut. Ada beberapa cara yang dapat digunakan untuk melakukan watermarking. Watermarking dapat disisipkan dalam domain spasial. Domain spasial adalah ruang di mana kita melihat citra dalam piksel-piksel.
Salah satu contoh metode penyisipan
watermarking di domain spasial adalah Least Significant Bit (LSB). Caranya adalah mengubah digit terakhir dari bit piksel. Cara ini sangat mudah, namun tidak punya kelemahan tidak punya ketahanan terhadap kompresi citra. Ada juga metode watermarking yang dilakukan pada domain frekuensi. Ada beberapa metode yang dapat dilakukan pada domain frekuensi. Contoh metodenya adalah Discrete Wavelet Transform (DWT), Discrete Fourier Transform (DFT), dan Discrete Cosine Transform (DCT). Watermarking pada domain frekuensi jauh lebih rumit untuk diimplementasikan karena harus dilakukan transformasi citra menjadi domain frekuensi sebelum watermark disisipkan. Akan tetapi, ini akan sangat berpengaruh kepada ketahanan watermark terhadap berbagai macam serangan pemrosesan citra yang umum. Hal ini disebabkan, seperti ada proteksi berlapis dengan diubah terlebih dahulu menjadi domain frekuensi. Jadi, serangan yang mungkin dilakukan terhadap citra, tidak akan langsung berpengaruh atau berefek besar terhadap watermark yang tersimpan dalam sebuah citra (Bayu, 2008). Dengan melihat kelebihan dan kekurangan pada masing-masing, maka penulis memilih untuk menyisipkan watermark pada domain frekuensi. Watemarking pada frekuensi domain memiliki kelebihannya masing-masing. Metode watermarking yang menggunakan DFT tahan terhadap operasi pergeseran karena pergeseran dalam domain spasial tidak mempunyai pengaruh terhadap magnitude
37
DFT. Watermarking dengan menggunakan DWT merupakan watermarking yang tahan terhadap penambahan derau. Sedangkan watermarking yang menggunakan DCT memiliki ketahanan yang cukup baik terhadap serangan kompresi citra JPEG dan juga beberapa usaha pemrosesan citra, seperti peningkatan kualitas citra, penambahan derau dan pengubahan ukuran (resizing). Oleh karena penulis ingin mencoba mengatasi permasalahannya dalam bidang periklanan, di mana file-file telah dibuat oleh sang designer ingin disimpan sebagai data master dan tak ingin dicuri orang, maka sang penulis memilih untuk menggunakan metode DCT pada watermarking citra. Salah satu sebabnya adalah karena citra yang digunakan adalah citra berformat JPEG dan sering mengalami kompresi citra untuk penyimpanan data yang lebih kecil.
3.2.
Prosedur Penyisipan Watermark Dalam merancang program aplikasi ini, terdapat dua algoritma utama yaitu
algoritma penyisipan watermark dan algoritma pendeteksian watermark. Algoritma penyisipan watermark berfungsi untuk menyisipkan watermark ke dalam citra sedangkan algoritma pendeteksian watermark berfungsi untuk mendeteksi watermark pada citra yang telah ter-watermark.
3.2.1. Ruang Warna Citra berwarna yang biasa dikenal pengguna komputer adalah bekerja pada ruang warna RGB. Ruang warna ini membagi komponen warnanya menjadi tiga kanal terpisah, yaitu : kanal merah (red) R, hijau (green) G dan biru (blue) B. Kombinasi ketiga kanal warna inilah yang kemudian membentuk sebuah warna tertentu yang dapat
38
dilihat pada layar monitor. Sebenarnya watermark secara langsung bisa saja ditanamkan pada salah satu kanal warna ini. Tetapi akan lebih baik jika penanaman watermark dilakukan pada kanal luminance Y dalam ruang warna YCbCr. Pemilihan model warna ini tidak lain mengacu pada algoritma JPEG yang lebih memprioritaskan kanal luminance dibandingkan dengan kedua kanal chrominance-nya. Untuk itulah perlu dilakukan transformasi citra dari ruang warna RGB ke ruang warna YCbCr-nya.
3.2.2. Watermark Dijital Watermark yang akan disisipkan dapat bermacam-macam bentuknya. Ada yang dapat berupa teks, angka-angka acak, dan bahkan file citra sekalipun. Di sini watermark yang akan dipakai adalah file citra. Hal ini dikarenakan apabila terjadi pendeteksian watermark, hasil pendeteksian akan lebih terlihat jelas dari pada file teks atau pun angka acak.
3.2.3. Algoritma Penyisipan Watermark Algoritma penyisipan watermark merupakan bagian yang cukup penting dalam watermarking dijital. Algoritma ini bekerja dengan menyisipkan watermark X = {x1 , x2 ,...., xn } yang berupa citra dijital dalam matriks 1 x n ke dalam sekelompok koefisien DCT citra terpilih V = {v L +1 , v L + 2 ,...., v L + n } yang telah diurutkan secara zig-zag, mulai dari koefisien ke L+1 sampai dengan koefisien DCT ke L+n sesuai aturan berikut ini :
VL' +i = v L +1 + α v L +1 xi
(3.1)
39
di mana i = 1,2,…,n. Kemudian V ' disisipkan kembali ke dalam urutan zig-zagnya kembali, dan dilakukan inverse DCT untuk mendapatkan citra terwatermark. Berikut ini adalah urutan algoritma penyisipan watermark : 1. Ambil komponen luminance Y hasil transformasi RGB citra asal ke dalam ruang warna YCbCr. 2. Hitung DCT komponen Y dan urutkan secara zig-zag. 3. Pilih koefisien DCT V hasil pengurutan zig-zag mulai dari koefisien ke L+1 sampai dengan koefisien ke L+n. Dan kemudian tanamkan watermark X ke dalam koefisien terpilih V L' + i . 4. Sisipkan kembali koefisien DCT yang telah ditanami watermark V L' +i sesuai urutan zig-zagnya dan lakukan inverse DCT untuk mendapatkan komponen luminance Y yang baru. 5. Transformasikan kembali ke dalam ruang warna RGB untuk mendapatkan citra terwatermark. Untuk lebih jelasnya, algoritma penyisipan watermark dapat dilihat pada gambar di bawah ini (gambar 3.1) :
40
Citra Warna RGB Asli
Ubah ke YCbCr
Ambil luminance Y
DCT
Urutkan secara Zig-Zag
Ubah ke YCbCr
Watermark
Citra Ter-watermark
Pilih koefisien DCT
Ambil luminance Y
DCT
Tambahkan watermark ke koefisien DCT
Ubah ke RGB
IDCT
Urutkan secara Zig-Zag
Gambar 3.1 Algoritma Penyisipan Watermark
3.2.4. Algoritma Pendeteksian Watermark Algoritma pendeteksian watermark berfungsi untuk mendeteksi keberadaan watermark di dalam suatu citra yang diduga mengandung watermark. Lebih jauh lagi algoritma ini bertugas memberikan verifikasi apakah citra yang diuji tertanami watermark pembanding atau tidak. Algoritma ini bekerja dengan menghitung korelasi r antara koefisien terpilih V ' dengan watermark pembanding W. Korelasi r ini dapat dihitung dengan aturan berikut ini :
W .V ' 1 n r (W ,V ) = = ∑ wi vi n n i =1 '
(3.2)
41
Berikut ini adalah urutan algoritma pendeteksian watermark : 1. Ambil komponen Y (luminance) hasil transformasi citra RGB yang terwatermark ke dalam ruang warna YCbCr. 2. Hitung DCT komponen Y dan urutkan secara zig-zag. 3. Pilih koefisien DCT hasil pengurutan zig-zag mulai dari koefisien ke L+1 sampai dengan keofisien ke L+n. 4. Kemudian watermark bisa diekstrak kembali dengan menggunakan inverse DCT pada koefisien watermark. Untuk lebih jelasnya, algoritma pendeteksian watermark dapat dilihat pada gambar di bawah ini (gambar 3.2) :
Ubah ke YCbCr
Urutkan secara Zig-Zag
Ambil luminance Y
DCT
Citra Asli
DCT
Urutkan secara Zig-Zag
Ubah ke YCbCr
Ambil luminance Y
Citra RGB Terwatermark
Watermark
Pilih koefisien DCT
Koef DCT Watermark – koef DCT Citra asli
IDCT Gambar 3.2 Algoritma Pendeteksian Watermark
42
3.2.5. Pengurutan Zig-Zag Pada bahasan sebelumnya, disebutkan bahwa algoritma penyisipan dan pendeteksian
watermark
memerlukan
pengurutan
zig-zag
sebagaimana
yang
dipergunakan dalam algoritma kompresi JPEG (Lestari,2003). Pengurutan secara zig zag ini dimaksudkan untuk membuat sebuah vektor yang menyatakan urutan koefisien DCT mulai dari koefisien DCT dengan frekuensi rendah sampai dengan koefisien DCT yang memiliki frekuensi tinggi. Pengurutan zig-zag yang digunakan didalam algoritma ini dapat dilihat dalam gambar 3.1. Indeks pengurutan berjalan mulai dari koefisien paling atas bagian kiri dan bergerak searah anak panah didalam gambar, sampai kemudian berakhir pada ujung kanan bawah matriks koefisien DCT.
Gambar 3.3 Pengurutan Zig-Zag Sumber : Lestari,2009.
43
3.3
Perancangan Program Aplikasi
3.3.1. Hierarki Menu Hierarki menu pada program aplikasi ini berupa menu pull-down. Untuk lebih jelasnya dapat dilihat pada gambar-gambar rancangan berikut ini :
Menu Utama
Watermarking
Exit
Help
Insert
Manual
Detect
About
Gambar 3.4 Hierarki Menu
Digital Image Watermarking Watermarking
Help
Exit
Gambar 3.5 Rancangan Menu Utama
X
44
Menunggu proses
Tampil menu utama Pilih menu Help Tampil Submenu Help
Tampil menu Utama Pilih menu Exit Keluar dari program aplikasi
Kembali ke Menu utama
Kembali ke Menu utama
Exit
Help
Pilih menu Watermark Tampil Submenu Watermark
Watermarking Gambar 3.6 Diagram Transisi Menu Utama
Digital Image Watermarking Watermarking
Help
Exit
Insert Detect
Gambar 3.7 Rancangan Menu Watermark
X
45
Menunggu proses
Pilih menu Watermarking Tampil Submenu watermarking Pilih Insert Tampil layer Insert
Tampil submenu Watermarking
Tekan tombol OK Menunggu proses insert
Pilih Detect Tampil layer Detect
Tekan tombol OK Menunggu proses detect
Masukkan citra dan watermark untuk proses insert watermark
Masukkan citra yang hendak diuji untuk proses detect watermark
Gambar 3.8 Diagram Transisi Submenu Watermark
Digital Image Watermarking Watermarking
Help
Exit
Manual About
Gambar 3.9 Rancangan Submenu Help
X
46
Menunggu proses
Pilih Menu Help Tampil submenu Help
Tampil submenu Help Pilih About Tampil layar About Tekan tombol OK Kembali ke menu utama Pilih Manual Tampil layar Manual
Tampil layar Manual
Tekan tombol OK Kembali ke menu utama Tampil layar About
Gambar 3.10 Diagram Transisi Submenu Help 3.3.2. Perancangan Diagram Transisi (State Transition Diagram) Diagram Transisi atau State Transition Diagram menggambarkan suatu sistem yang real-time dan sistem yang on-line. Diagram transisi merupakan suatu keadaan yang menggambarkan suatu keadaan pada waktu tertentu. Perubahan keadaan dapat terjadi karena suatu kejadian dan sebagai akibat dari kejadian tersebut maka akan muncul suatu aksi yang menyebabkan keadaan berubah. Diagram transisi membantu dalam memberikan gambaran secara keseluruhan dari program. Diagram transisi untuk program aplikasi ini dapat dilihat pada gambar dibawah ini.
47
Keluar dari program aplikasi
Manual
About
Klik ‘Manual’ Tampil pop-up window Manual Exit
Klik ‘About’ Tampil pop-up window About Help
Menu Utama
Watermarking Klik ‘Insert’ Tampil pop-up window Insert
Insert
Klik ‘Detect’ Tampil pop-up window Detect
Detect
Gambar 3.11 Diagram Transisi Layar Utama
48
Browse Citra
Browse Watermark
Klik ‘Browse’ Tampil pop-up window Browse
Klik ‘Browse’ Tampil pop-up window Browse
Insert
Klik ‘Embed’ Menyisipkan watermark ke dalam citra
Klik ‘Cancel’ Menutup popup window insert
Gambar 3.12 Diagram Transisi Layar Insert
49
Browse citra asal
Browse watermarked citra
Klik ‘Browse’ Tampil pop-up window Browse
Klik ‘Browse’ Tampil pop-up window Browse
Browse watermarked citra
Klik ‘Browse’ Tampil pop-up window Browse
Detect
Klik ‘Detect’ Melakukan proses deteksi
Klik ‘Cancel’ Menutup pop-up window detect
Gambar 3.13 Diagram Transisi Layar Detect
50
3.3.3. Perancangan Layar 3.3.3.1. Rancangan Layar Utama Rancangan layar yang digunakan memiliki tiga menu, yaitu menu Watermarking, menu Help dan menú Exit.
Di dalam setiap menu ini, terdapat lagi menu-menu
berikutnya, yaitu : 1. Menu Watermarking • Menu Insert, digunakan untuk memilih citra dijital dan data yang akan disisipkan, kemudian dilakukan proses watermarking. • Menu Detect, digunakan untuk memilih citra dijital yang sudah berwatermarking, dan melakukan proses inverse watermarking, sehingga mendapatkan data yang disisipkan. 2. Menu Help • Menu Manual, digunakan untuk memberikan tutorial cara pemakaian program aplikasi. • Menu About, digunakan untuk memberikan informasi tentang program dan pembuat. Digital Image Watermarking Watermarking
Help
Exit
Gambar 3.14 Rancangan Layar Utama
X
51
2.3.2.2 Rancangan Layar Menu Insert Dalam menu Insert, terdapat fasilitas untuk memilih data citra dijital dan data yang akan disisipkan. Insert Watermarking Menu Host Image :
Watermark : Browse
Browse Image
Image
Embed
Cancel
Gambar 3.15 Rancangan Layar Insert
2.3.2.3 Rancangan Layar Menu Detect Dalam rancangan layar menu detect, terdapat pilihan untuk memilih data yang ber-watermarking.
Terdapat tombol Detect, View dan Cancel. Tombol view untuk
melihat citra yang dipilih.
52
Insert Watermarking Menu Host Image :
Watermark : Browse
Image
Watermark :
Browse
Image
Detect
Cancel
Gambar 3.16 Rancangan Layar Detect
2.3.2.4 Rancangan Layar Menu Manual Pada layar Manual berisi informasi tentang cara pemakaian program aplikasi.
53
X
Manual .: USER MANUAL :. Menu Insert Æ Untuk menyisipkan watermark ke dalam citra. Menu Detect Æ Untuk mendeteksi watermark pada citra yang terwatermark. Menu About Æ Berisi informasi pembuat program. Proses Insert: Browse Citra – Browse Watermark – Embed Proses Detect : Browse watermarked citra – Browse citra digital – Browse watermark Detect OK
Gambar 3.17 Rancangan Layar Manual 2.3.2.5 Rancangan Layar Menu About Pada menu About, akan ada penjelasan informasi mengenai program aplikasi. About Studi dan Implementasi Watermarking Citra Dijital Dengan Pendekatan Discrete Cosine Transform Pembimbing : Diaz D. Santika, Ir., M.Sc., Dr Wikaria Gazali, S.Si., MT. Lie Albert Januar Linarco 0900791995 BINUS University 2010
OK
Gambar 3.18 Rancangan Layar About