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 x } X =,..., yang berupa citra dijital dalam matriks 1 x n ke dalam sekelompok 1, 2 x n koefisien DCT citra terpilih = { v v,..., v } V L +, L + 2 L + n 1 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 vl+ 1 + vl+ 1 = α x (3.1) i
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 + sesuai urutan ' L i 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 Ambil luminance Y Pilih koefisien DCT Watermark DCT Tambahkan watermark ke koefisien DCT Citra Ter-watermark 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 dihitung dengan aturan berikut ini : ' W. V r W, V ) = n ' V dengan watermark pembanding W. Korelasi r ini dapat = ' 1 n n i= 1 w i v i ( (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) : Citra RGB Terwatermark Ubah ke YCbCr Urutkan secara Zig-Zag Pilih koefisien DCT Ambil luminance Y DCT Citra Asli DCT Urutkan secara Zig-Zag Ubah ke YCbCr Ambil luminance Y Koef DCT Watermark koef DCT Citra asli Watermark 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 Help Exit Insert Manual Detect About Gambar 3.4 Hierarki Menu Digital Image Watermarking X Watermarking Help Exit Gambar 3.5 Rancangan Menu Utama
44 Menunggu proses Pilih menu Exit Keluar dari program aplikasi Tampil menu utama Tampil menu Utama Kembali ke Menu utama Pilih menu Help Tampil Submenu Help Exit Pilih menu Watermark Tampil Submenu Watermark Kembali ke Menu utama Help Watermarking Gambar 3.6 Diagram Transisi Menu Utama Digital Image Watermarking X Watermarking Insert Detect Help Exit Gambar 3.7 Rancangan Menu Watermark
45 Menunggu proses Pilih menu Watermarking Tampil Submenu watermarking Pilih Insert Tampil layer Insert Tampil submenu Watermarking Pilih Detect Tampil layer Detect Tekan tombol OK Menunggu proses insert 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 X Watermarking Help Exit Manual About Gambar 3.9 Rancangan Submenu Help
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 Tekan tombol OK Kembali ke menu utama Tampil layar Manual 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 Klik Manual Tampil pop-up window Manual About Klik About Tampil pop-up window About Exit Help Menu Utama Klik Insert Tampil pop-up window Insert Watermarking Klik Detect Tampil pop-up window Detect Insert 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 Browse watermarked citra Klik Browse Tampil pop-up window Browse Klik Browse Tampil pop-up window Browse 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 X Watermarking Help Exit Gambar 3.14 Rancangan Layar Utama
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 Browse Image Image Watermark : 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 Manual X.: 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