Aplikasi Watermarking Sebagai Teknik Penyembunyian Label Hak Cipta Pada Citra Digital Dengan Metode Randomly Sequenced Pulse Position Modulated Code

(1)

APLIKASI

WATERMARKING

SEBAGAI TEKNIK

PENYEMBUNYIAN LABEL HAK CIPTA PADA

CITRA DIGITAL DENGAN METODE

RANDOMLY SEQUENCED PULSE

POSITION MODULATED

CODE

SKRIPSI

OLEH

ESTI UTAMI

061401002

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2013


(2)

APLIKASI WATERMARKING SEBAGAI TEKNIK PENYEMBUNYIAN LABEL HAK CIPTA PADA CITRA DIGITAL DENGAN METODE RANDOMLY

SEQUENCEDPULSE POSITION MODULATED CODE

SKRIPSI

Diajukan untuk melengkapi tugas guna memenuhi syarat mencapai gelar Sarjana Komputer

ESTI UTAMI 061401002

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

PERSETUJUAN

Judul : APLIKASI WATERMARKING SEBAGAI TEKNIK

PENYEMBUNYIAN LABEL HAK CIPTA PADA CITRA DIGITAL DENGAN METODE RANDOMLY SEQUENCED PULSE POSITION MODULATED CODE

Kategori : SKRIPSI

Nama : ESTI UTAMI

Nomor Induk Mahasiswa : 061401002

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER & TEKNOLOGI INFORMASI UNIVERSITAS (FASILKOM-TI) SUMATERA UTARA

Diluluskan di

Medan, 2013 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Maya Silvi Lydia, BSc, MSc Prof. Dr. Muhammad zarlis NIP. 197401272002122001 NIP. 195707011986011003

Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom. NIP. 196203171991031001


(4)

PERNYATAAN

APLIKASI WATERMARKING SEBAGAI TEKNIK PENYEMBUNYIAN LABEL HAK CIPTA PADA CITRA DIGITAL DENGAN METODE RANDOMLY

SEQUENCED PULSE POSITION MODULATED CODE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Agustus 2013

Esti Utami 061401002


(5)

PENGHARGAAN

Alhamdulillahirobbil’alamin penulis ucapkan kepada Sang Khaliq Allah SWT yang telah melimpahkan rahmat dan karunia-Nya sehingga skripsi ini berhasil diselesaikan.

Skripsi ini berjudul “Aplikasi Watermarking Sebagai Teknik Penyembunyian Label Hak Cipta Pada Citra Digital Dengan Metode Randomly Sequenced Pulse Position Modulated Code” disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer Program Studi S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara. Tidak dapat dipungkiri bahwa dalam penyelesaian skripsi ini tidak luput dari campur tangan banyak pihak yang telah memberikan bantuan dan motivasi bagi penulis. Maka, dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Rektor Universitas Sumatera Utara, Bapak Prof. Dr. dr. Syahril Pasaribu, D.T.M.&H, M.Sc. (C.T.M), Sp.A.(K.)

2. Bapak Prof. Dr. Muhammad Zarlis, M.Kom selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi USU dan juga sebagai dosen pembimbing I yang telah membimbing dan mengarahkan penulis selama proses penyelesaian skripsi ini.

3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer dan juga selaku Dosen Penguji I yang telah memberikan kritik, saran, dan masukan kepada penulis.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc sebagai Sekretaris Program Studi S1 Ilmu Komputer dan selaku dosen pembimbing II yang telah membimbing dan mengarahkan penulis selama proses penyelesaian skripsi ini.

5. Bapak Drs. Sawaluddin, MIT. selaku dosen penguji II yang telah memberikan kritikan, saran, dan masukan kepada saya untuk menyelesaikan skripsi ini.


(6)

6. Seluruh staff pengajar Departemen Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara yang telah membimbing dan mencurahkan ilmunya selama masa perkuliahan.

7. Ayahanda Kopka. Sutiman dan Ibunda Rapilah S.Pd tercinta yang selalu memberikan doa, dukungan, perhatian, kasih sayang yang tulus, pengorbanan yang tidak ternilai harganya. Serta dukungan dan motivasi dari Rianzi Fadly (adik), serta seluruh keluarga besar yang telah memberikan motivasi kepada penulis.

8. Penulis juga mengucapkan terima kasih kepada sahabat terkhusus Lutfi Hamdani S.Pd yang selalu memberikan doa, perhatian, motivasi dan semangat yang luar biasa kepada penulis.

9. Virues Galau, Laylul, Desfa, Yelli dan Indah serta teman-teman seperjuangan, mahasiswa S1 Ilmu Komputer stambuk 2006 dan 2007 yang telah banyak berbagi ilmu, memberikan bantuan, saran, kritikan, semangat, inspirasi, dukungan serta mewarnai kenangan selama masa kuliah yang tak akan terlupakan kepada penulis.

10.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Akhir kata Penulis menyadari bahwa masih banyak kekurangan dalam penulisan skripsi ini. Oleh karena itu, Penulis mengharapkan saran dan kritik yang membangun agar kelak dapat lebih menjadi lebih baik. Penulis juga mengharapkan semoga laporan ini dapat bermanfaat dan menambah wawasan kepada pembaca.

Medan, Agustus 2013


(7)

ABSTRAK

Watermarking citra digital merupakan bentuk ilmu steganography yang mempelajari bagaimana menyembunyikan informasi ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia. Tujuan dari penelitian ini adalah untuk meyisipkan rangkaian informasi hak cipta ke dalam citra digital dengan tidak tampak (invisible). Proses watermarking terdiri dari 5 tahapan yaitu tahap transformasi dengan metode Discrete Cosinus Transform, tahap kuantisasi, tahap pemberian kode watermarking dengan metode Randomly Sequenced Pulse Position Modulated Code, tahap dekuantisasi, dan yang terakhir tahap transformasi dengan metode Inverse Discrete Cosinus Transform. Dari hasil uji coba terhadap besaran parameter label citra, ketahanan dan kualitas, yang dihasilkan oleh perangkat lunak yang dibangun, dilakukan analisis terhadap pembacaan data informasi hak cipta untuk selanjutnya dapat ditarik kesimpulan tentang keberhasilan pembacaan data informasi hak cipta. Hasil yang diperoleh dari penelitian ini adalah sistem mampu menyisipkan citra label ke dalam citra host, mampu melakukan ekstraksi kembali citra label dari citra watermark dan Citra watermark memiliki ukuran file yang lebih besar dibandingkan dengan citra aslinya.

Kata Kunci: Watermarking, Steganography, Randomly Sequenced Pulse Position Modulated Code.


(8)

WATERMARKING APPLICATION AS HIDING TECHNIC OF COPYRIGTH LABEL ON DIGITAL IMAGE WITH METHOD OF RANDOMLY

SEQUENCED PULSE POSITION MODULATED CODE

ABSTRACT

Watermarking on digital image is a kind of steganographics studying how to hide informations into others digital data, but the existence has been never known by human's sensory perception. The purpose of this research is embedding a copyright information series into digital images invisibly. The process of watermarking consist of 5 steps, step of transformation using Transform Cosinus Discrete, step of quantifying, step of watermarking coding by use Randomly Sequenced Pulse Position Modulated Code, step of dequantifying and step of transformation using Inverse Discrete Cosinus Transform methode. From the experiment toward the paramater measure of label-image, robust, and quality resulting from the created software, conducted analyzing the copyright information data scanning then make a conclusion of the success of the copyright information data scanning. The result from this research is as below system capable of inserting label image into the host image, system capable of extracting the label image back from the watermark image, watermark images have bigger size file than its original image.

Keywords: Watermarking, Steganography, Randomly Sequenced Pulse Position Modulated Code.


(9)

DAFTAR ISI

Halaman

Judul i

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori 6

2.1 Pengertian Citra 6

2.1.1 Citra Analog 6

2.1.2 Citra Digital 6

2.2 Mode Warna 7

2.2.1 Citra Warna (True Color) 7

2.2.2 Citra Keabu-abuan (Grayscale) 9

2.3 Defenisi Steganografi 10

2.4 Pengertian Watermarking 11

2.4.1 Metode Watermarking 12

2.4.2 Aplikasi Watermarking 14

2.4.3 Trade-off dalam Watermarking 14

2.4.4 Berbagai Domain untuk penerapan Watermarking 15

2.4.5 DCT (Discrete Cosine Transform) 15

2.4.6 Watermarking untuk Pelabelan hak Cipta 18

2.4.7 Proses Watermarking 21

2.5 Teknik Watermarking dengan Metode RSPPMC pada Citra Digital 24

2.6 Penelitian Terkait 25

2.7 Flowchart 27

2.8 Unified Modeling Language (UML) 28

2.8.1 Use Case Diagram 28

2.8.1.1 Actor 28


(10)

Bab 3 Analisis dan Perancangan 30

3.1 Analisis Masalah 30

3.1.1 Menghitung Nilai RGB Citra Host 31

3.1.2 Menghitung Nilai Biner Citra Label 33 3.1.3 Menghitung nilai Biner Key Watermarking 35

3.1.4 Transformasi DCT 37

3.1.5 Proses Ekstraksi 45

3.1.6 Flow chart 47

3.1.6.1 Flow Chart Watermarking 47

3.1.6.2 Flow Chart Ekstraksi 48

3.1.7 Use Case Diagram 49

3.1.7.1 Use Case Proses Watermarking 50 3.1.7.2 Use Case Proses Ekstraksi 51

3.2 Perancangan Antarmuka (Interface) 53

3.2.1 Perancangan Menu Utama 53

3.2.2 Perancangan Menu Watermarking 54

3.2.3 Perancangan Menu Ekstraksi 54

3.2.4 Perancangan Laporan Watermarking 55

3.2.5 Perancangan Laporan Ekstraksi 55

3.2.6 Perancangan Menu View Help 56

3.2.7 Perancangan Menu About Me 56

Bab 4 Implementasi & Pengujian 57

4.1 Implementasi 57

4.1.1 Tampilan Menu Utama 57

4.1.2 Tampilan Watermarking 58

4.1.3 Tampilan Ekstraksi 59

4.1.4 Tampilan Help 60

4.1.5 Tampilan About 61

4.2 Hasil Pengujian Sistem 62

4.2.1 Pengujian Watermarking 62

4.2.2 Pengujian Ekstraksi 63

Bab 5 Kesimpulan dan Saran 64

5.1 Kesimpulan 64

5.2 Saran 64


(11)

DAFTAR TABEL

Tabel Keterangan Halaman

2.1 3.1 3.2

Simbol Flowchart Program

Spesifikasi Use Case Proses Watermarking Spesifikasi Use Case Proses Ekstraksi

27 50 51


(12)

DAFTAR GAMBAR

Gambar Keterangan Halaman

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 4.1 4.2 4.3 4.4 4.5

Kombinasi Warna RGB Citra Warna dan Grayscale Proses Watermarking Pada Citra

Fungsi Basis DCT Satu Dimensi untuk N=8 Pembagian koefisien DCT untuk blok 8x8

Gambar asli dan Gambar yang telah dihapus tulisannya Proses Watermarking

Proses Ekstrak dengan data asli Proses Ekstrak tanpa data asli Jenis label pada saat Pelabelan Actor

Use Case Cover image

Citra Warna 1024x768 piksel Matriks Nilai RGB Citra Asli Citra Label 192x190 piksel

Citra Grayscale Label 128x96 piksel Citra Biner Label

Matriks Key

Matriks Transform (A) Matrik Tranpose (A’) Matrik Koefisien D

Matrik Hasil Modifikasi (Y) Matrix X

Matrik Transform Matrik Citra hasil IDCT Matrik ke 6080 Citra Host Nilai Koefisien DCT Citra Asli

Nilai koefisien DCT Citra Watermarking Flow Chart Watermarking

Flow Chart Ekstrasi Use Case Diagram Sistem Rancangan Menu Utama Rancangan Watermarking Rancangan Ekstrasi Laporan Watermarking Laporan Ekstraksi

Rancangan Menu View Help Rancangan Menu About Me Menu Utama

Tampilan Watermarking Tampilan Ekstrasi Tampilan Help Tampilan About Me

8 9 12 17 18 20 21 23 23 24 28 29 31 32 33 34 34 35 36 38 38 40 42 43 44 44 45 46 46 47 48 49 53 54 54 55 55 56 56 57 58 60 61 62


(13)

4.6 4.7

Laporan Watermarking Laporan Ekstraksi

63 63


(14)

ABSTRAK

Watermarking citra digital merupakan bentuk ilmu steganography yang mempelajari bagaimana menyembunyikan informasi ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia. Tujuan dari penelitian ini adalah untuk meyisipkan rangkaian informasi hak cipta ke dalam citra digital dengan tidak tampak (invisible). Proses watermarking terdiri dari 5 tahapan yaitu tahap transformasi dengan metode Discrete Cosinus Transform, tahap kuantisasi, tahap pemberian kode watermarking dengan metode Randomly Sequenced Pulse Position Modulated Code, tahap dekuantisasi, dan yang terakhir tahap transformasi dengan metode Inverse Discrete Cosinus Transform. Dari hasil uji coba terhadap besaran parameter label citra, ketahanan dan kualitas, yang dihasilkan oleh perangkat lunak yang dibangun, dilakukan analisis terhadap pembacaan data informasi hak cipta untuk selanjutnya dapat ditarik kesimpulan tentang keberhasilan pembacaan data informasi hak cipta. Hasil yang diperoleh dari penelitian ini adalah sistem mampu menyisipkan citra label ke dalam citra host, mampu melakukan ekstraksi kembali citra label dari citra watermark dan Citra watermark memiliki ukuran file yang lebih besar dibandingkan dengan citra aslinya.

Kata Kunci: Watermarking, Steganography, Randomly Sequenced Pulse Position Modulated Code.


(15)

WATERMARKING APPLICATION AS HIDING TECHNIC OF COPYRIGTH LABEL ON DIGITAL IMAGE WITH METHOD OF RANDOMLY

SEQUENCED PULSE POSITION MODULATED CODE

ABSTRACT

Watermarking on digital image is a kind of steganographics studying how to hide informations into others digital data, but the existence has been never known by human's sensory perception. The purpose of this research is embedding a copyright information series into digital images invisibly. The process of watermarking consist of 5 steps, step of transformation using Transform Cosinus Discrete, step of quantifying, step of watermarking coding by use Randomly Sequenced Pulse Position Modulated Code, step of dequantifying and step of transformation using Inverse Discrete Cosinus Transform methode. From the experiment toward the paramater measure of label-image, robust, and quality resulting from the created software, conducted analyzing the copyright information data scanning then make a conclusion of the success of the copyright information data scanning. The result from this research is as below system capable of inserting label image into the host image, system capable of extracting the label image back from the watermark image, watermark images have bigger size file than its original image.

Keywords: Watermarking, Steganography, Randomly Sequenced Pulse Position Modulated Code.


(16)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Penggunaan teknologi komputer telah banyak digunakan untuk membantu mempermudah dan mempercepat suatu proses atau pekerjaaan yang sifatnya rutin. Dalam hal ini komputer yang digunakan sudah dilengkapi dengan perangkat lunak yang sesuai untuk pekerjaan tersebut.

Dalam bidang perlindungan karya cipta dalam bentuk digital antara lain software (piranti lunak) dan produk multimedia seperti teks, musik, (dalam format MP3 atau WAV), gambar/citra fotografi, video digital. Selama ini penggandaan atas produk digital tersebut dilakukan secara bebas dan leluasa. Pemegang hak cipta atas produk citra tersebut tentu dirugikan karena tidak mendapat royalty dari usaha penggandaan tersebut.

Untuk mengurangi kerugian terhadap pencipta karya citra, maka perlu dibuatkan sebuah sistem yang bisa memberi identitas yang tidak bisa dimanipulasi dan setiap saat bisa dilihat atau diperiksa identitasnya dengan cepat dan akurat. Perlindungan karya cipta ini perlu untuk menghargai para seniman yang menciptakan karya tersebut.

Untuk memberikan identitas pada sebuah karya digital diperlukan sebuah perangkat lunak yang mampu memasukkan atau menyisipkan sebuah informasi tertentu ke dalam data multimedia digital. Informasi tertentu yang dimasukkan disebut sidik digital atau digital signature dari pemilik yang sah atas produk multimedia tersebut. Pemberian signature dengan teknik watermarking dilakukan tanpa merusak data multimedia yang hendak dilindungi. Dan jika ingin melihat kembali informasi dalam sidik signature, pemilik bisa mengekstraksi watermark dari dalam citra tersebut (ekstraksi).


(17)

Metode yang digunakan dalam merancang perangkat lunak ini adalah metode Randomly Sequenced Pulse Position Modulated Code (RSPPMC). Prinsip dasar metode ini adalah membagi citra ke dalam blok, dan kemudian di transformasi dengan menggunakan prinsip spread spectrum dan RSPPMC sehingga mengandung informasi 1 bit dari label untuk disesuaikan dengan bit label yang ingin disembunyikan.

Pada penelitian Rodiah tahun 2004 yang berjudul Watermarking Sebagai Teknik Penyembunyian Label Hak Cipta Pada Data Digital Menggunakan Algoritma DCT (Discrete Cosinus Transform). Dalam penelitian ini dilakukan perhitungan semua koefisien DCT citra untuk proses kuantisasi terhadap nilai konstan. Setelah mendapatkan suatu matriks dalam domain frekuensi melalui proses kuantisasi, selanjutnya dilakukan penyisipan bit yang akan disembunyikan ke dalam frekuensi tengah.

Penelitian lainnya oleh Sri Winarso pada Jurnal Teknologi Informasi, Volume 4 Nomor 1, Februari 2007 yang berjudul Digital Watermarking Menggunakan Metode Discrete Cosine Transform. Pada penelitian ini selama melalui proses DCT, sebuah gambar dibagi menjadi blok-blok kecil yang berukuran 8x8 piksel yang bertindak sebagai masukan bagi suatu DCT. Setelah proses DCT selesai, proses kuantisasi dilakukan dengan menggunakan fungsi pembobotan yang dioptimalkan sehingga mendekati sistem visual manusia. Setelah gambar kedua mengalami proses yang sama maka gambar kedua akan disisipkan ke gambar pertama berdasarkan nilai piksel yang dimiliki tiap blok.

Penelitian lainnya oleh Zaki Rakhmatulloh, Aris Sugiharto, Eko Adi Sarwoko pada tahun 2006 yang berjudul Watermarking Pada Domain Frekuensi untuk Memberikan Identitas (Watermark) Pada Citra Digital. Pada penelitian ini citra digital ditransformasikan menggunakan Discrete Cosine Transform (DCT). Pada proses penanaman watermark, citra ditransformasikan menggunakan DCT menjadi domain frekuensi yang menghasilkan tiga area yaitu Low Frequency (FL), Medium Frequency (FM), dan High Frequency (FH). Bit-bit watermark ditanam pada area FM dengan menggunakan nilai Koefisien Selisih (K).


(18)

Berdasarkan hal yang telah diuraikan diatas maka tugas akhir ini diberi judul Aplikasi Watermarking Sebagai Teknik Penyembunyian Label Hak Cipta Pada Citra Digital Dengan Metode Randomly Sequenced Pulse Position Modulated Code (RSPPMC).

1.2Rumusan Masalah

Pada tulisan ini yang menjadi rumusan masalah adalah bagaimana memberikan suatu identitas pada citra digital agar citra digital tersebut tidak dapat dipergunakan secara ilegal dengan teknik watermarking yang menggunakan metode RSPPMC.

1.3Batasan Masalah

Dalam penulisan tugas akhir ini dilakukan beberapa pembatasan masalah yaitu : 1. File citra digital yang akan disisipi dengan format JPG atau BMP. 2. Label yang disembunyikan adalah citra dengan format JPG atau BMP. 3. Key yang dimasukkan berjumlah 8 karakter.

4. Melihat kembali tanda kepemilikan dengan cara mengektraksi label hak cipta dari citra yang telah disisipi.

5. Menampilkan file citra sebelum dan sesudah penyisipan.

6. Perangkat lunak yang digunakan adalah microsoft Visual Basic .Net

1.4Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk merancang suatu perangkat lunak yang dapat menyembunyikan label hak cipta ke dalam citra digital dengan mengimplementasikan metode Randomly Sequenced Pulse Position Modulated Code.

1.5Manfaat Penelitian

Sedangkan manfaat penelitian ini adalah menghindari pengguna ilegal atas citra digital yang dilindungi.


(19)

1.6Metode Penelitian

Dalam penelitian ini, tahapan-tahapan yang akan dilalui adalah sebagai berikut: a. Studi Literatur

Metode ini dilaksanakan dengan melakukan studi kepustakaan tentang citra digital, watermarking serta algoritma RSPPMC.

b. Analisis

Pada tahap ini dilakukan analisis tentang perhitungan nilai piksel citra digital, transformasi DCT dan penyisipan label hak cipta.

c. Perancangan Perangkat Lunak

Pada tahap ini, digunakan seluruh hasil analisis untuk merancang perangkat lunak yang akan dihasilkan. Dalam tahapan ini juga dilakukan perancangan flow chart, data flow diagram (DFD) dan antarmuka serta proses kerja sistem untuk memudahkan dalam proses implementasi.

d. Implementasi dan Pengujian Sistem

Pada tahap ini dilakukan implementasi dari proses perancangan sehingga menjadi suatu sistem dan dilakukan pengujian sistem.

e. Dokumentasi

Tahap ini dilakukan pengumpulan data, baik data dari hasil pengujian maupun data hasil pemrosesan dengan aplikasi dan pembuatan laporan hasil analisis dan perancangan serta hasil pengujian sistem.

1.7Sistematika Penulisan

Sistematika penulisan tugas akhir ini adalah sebagai berikut:

BAB1 PENDAHULUAN

Bab ini membahas latar belakang masalah, identifikasi masalah, batasan masalah, tujuan dan manfaat serta sistematika penulisan.


(20)

BAB 2 LANDASAN TEORI

Bab ini berisi landasan teori tentang citra, watermarking serta metode-metode penyisipan terhadap citra, tranformasi Discrete Cosine Transform (DCT), flow chart serta data flow diagram (DFD).

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini berisi pembahasan mengenai teknik penyisipan label hak cipta ke dalam file citra.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi tentang implementasi dan pengujian dari perancangan sistem yang dirancang pada BAB 3.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari semua pembahasan yang ada dengan saran-saran yang ditujukan bagi para pembaca atau pengembang.


(21)

BAB 2

LANDASAN TEORI

2.1Pengertian Citra

Citra adalah representasi dari sebuah objek. Citra sebagai keluaran suatu sistem perekaman data yang dapat bersifat sebagai optik (foto), analog (sinyal-sinyal video seperti gambar pada monitor televisi), ataupun digital yang dapat langsung disimpan pada suatu media penyimpan.

2.1.1 Citra Analog

Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, lukisan, pemandangan alam dan sebagainya. Citra analog tidak dapat direpresentasikan dalam komputer sehingga tidak bisa diproses secara langsung. Citra analog dihasilkan oleh alat-alat analog seperti kamera foto analog, sensor rontgen untuk foto thorax, sensor gelombang pendek pada sistem radar, dan lain-lain. Oleh sebab itu, agar citra ini dapat diproses di komputer, proses konversi analog ke digital harus dilakukan terlebih dahulu [12].

2.1.2 Citra Digital

Citra digital adalah citra yang terdiri dari sinyal-sinyal frekuensi elektromagnetis yang sudah di-sampling sehingga dapat ditentukan ukuran titik gambar tersebut yang pada umumnya disebut piksel. Untuk menyatakan citra (image) secara matematis, dapat didefinisikan fungsi f(x,y) di mana x dan y menyatakan suatu posisi dalam koordinat dua dimensi dan harga f pada titik (x,y) adalah harga yang menunjukkan warna citra pada titik tersebut [4].

Citra digital adalah citra yang dinyatakan secara diskrit (tidak kontinu), baik untuk posisi koordinatnya maupun warnanya. Dengan demikian, citra digital dapat


(22)

digambarkan sebagai suatu matriks, di mana indeks baris dan indeks kolom dari matriks menyatakan posisi suatu titik di dalam citra dan harga dari elemen matriks menyatakan warna citra pada titik tersebut. Dalam citra digital yang dinyatakan sebagai susunan matriks seperti ini, elemen-elemen matriks tadi disebut juga dengan istilah piksel yang berasal dari kata picture element [7].

Untuk mendapatkan suatu citra digital, dapat digunakan alat yang memiliki kemampuan untuk mengubah sinyal yang diterima oleh sensor citra menjadi bentuk digital, misalnya dengan menggunakan kamera digital atau scanner. Cara yang lain adalah dengan menggunakan ADC (Analog-to-Digital Converter) untuk mengubah sinyal analog yang dihasilkan oleh keluaran sensor citra menjadi sinyal digital, misalnya dengan menggunakan perangkat keras video capture yang dapat mengubah sinyal video analog menjadi citra digital [12].

2.2Mode Warna

Menampilkan sebuah citra pada layar monitor diperlukan lebih dari sekedar informasi tentang letak dari piksel-piksel pembentuk citra. Untuk memperoleh gambar yang tepat dibutuhkan juga informasi tentang warna yang dipakai untuk menggambarkan sebuah citra digital. Beberapa mode warna yang sering digunakan adalah:

1. Bitmap mode memerlukan 1 bit data untuk menampilkan warna dan warna yang dapat ditampilkan hanya warna hitam dan putih (monokrom)

2. Indexed Color Mode, mengurutkan warna dalam jangkauan 0-255 (8 bit) 3. Grayscale Mode, menampilkan citra dalam 256 tingkat keabuan.

4. RGB Mode, menampilkan citra dalam kombinasi 3 warna dasar (Red, Green, Blue) tiap warna dasar memiliki intensitas warna 0-255 (8 bit)

5. CMYK Mode, menampilkan citra dalam kombinasi 4 warna dasar (cyan, magenta, yellow, black) tiap warna dasar memiliki intensitas warna 0-255 (8 bit).

2.2.1 Citra Warna (True Color)

Citra warna memiliki mode warna RGB yang menghasilkan warna menggunakan kombinasi dari tiga warna primer merah, hijau, biru. RGB adalah model warna


(23)

penambahan, yang berarti bahwa warna primer dikombinasikan pada jumlah tertentu untuk menghasilkan warna yang diinginkan. RGB dimulai dengan warna hitam (ketiadaan semua warna) dan menambahkan merah, hijau, biru terang untuk membuat putih. Kuning diproduksi dengan mencampurkan merah, hijau; warna cyan dengan mencampurkan hijau dan biru; warna magenta dari kombinasi merah dan biru. Sensor utama dalam mata adalah sel kerucut. Manusia mempunyai 5-7 juta sel yang yang dibagi menjadi tiga kategori sensor (merah, hijau, biru). 65% sel kerucut sensitif pada warna merah, 33% hijau, dan 2% biru. Kombinasi warna RGB dapat dilihat pada Gambar 2.1.

Gambar 2.1 Kombinasi Warna RGB [12]

Warna campuran (selain dari putih) dihasilkan dengan menambahkan warna komponen RGB individual dengan berbagai tingkat saturasi, dengan tingkatan mulai dari 0.0 hingga 1.0 (0 berarti tidak menggunakan warna tersebut; 1 berarti menggunakan warna tersebut pada saturasi penuh).

Untuk mendapatkan masing-masing nilai R, G dan B setiap piksel dengan rumus sebagai berikut:

Nilai R = c and 255 ………...…….. (2.1) Nilai G = (c and 65280) / 256………..….……. (2.2) Nilai B = ((c and 16,711,680)/256)/256 ……....……...…………..…... (2.3) Dimana c adalah nilai piksel citra


(24)

2.2.2 Citra Keabu-abuan (Grayscale)

Citra keabu-abuan hanya memiliki satu komponen warna yang besarnya berkisar antara 0 sampai 255. Citra keabu-abuan dapat dihasilkan dari citra warna dengan cara menghitung rata-rata nilai komponen warnanya.

Secara matematis penghitungannya adalah sebagai berikut.

f0 (x,y) = .…...………..…… (2.4)

f0 (x,y) = nilai keabu-abuan pada kordinat x,y. fR

= nilai komponen merah fG

= nilai komponen hijau fB

= nilai komponen biru

Dalam proses watermarking , untuk menghitung nilai biner Citra label penyisip maka akan dikonversi menjadi citra grayscale. Setelah citra grayscale didapat, maka akan dicari nilai tengah (threshold). Persamaan untuk perhitungan nilai threshold seperti berikut:

T = ( Gmin + Gmaks ) / 2 ...(2.5)

Sebagai contoh diberikan perbandingan antara citra warna dengan citra grayscale dapat dilihat seperti pada Gambar 2.2.


(25)

Gambar 2.2 Citra Warna dan Grayscale [12]

2.3Definisi Steganografi

Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia (hiding message) sedemikian sehingga keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia. Kata steganorafi berasal dari bahasa Yunani yang berarti “tulisan tersembunyi” (covered writing). Steganografi membutuhkan dua properti yaitu wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia yang disembunyikan juga dapat berupa citra, suara, teks, atau video. Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada kriptografi, data yang telah disandikan (ciphertext) tetap tersedia, maka dengan steganografi cipherteks dapat disembunyikan sehingga pihak ketiga tidak mengetahui keberadaannya. Di negara-negara yang melakukan penyensoran informasi, steganografi sering digunakan untuk menyembunyikan pesan-pesan melalui gambar (images), video, atau suara (audio) [7].

Secara umum penyembunyian pesan rahasia ke dalam media penampung pasti mengubah kualitas media tersebut. Kriteria yang harus diperhatikan dalam penyembunyian pesan [6] adalah :

1. Imperceptibility.

Keberadaan pesan rahasia tidak dapat dipersepsi oleh indra manusia. Misal jika media penampung berupa citra, maka penyisipan pesan membuat stegotext sukar dibedakan oleh mata dengan citra covertext-nya.

2. Fidelity.

Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan tersebut tidak dapat dipersepsi oleh inderawi. Misal jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan citra covertext-nya.

3. Recovery.

Pesan yang disembunyikan harus dapat diungkapkan kembali. Karena tujuan steganografi adalah data hiding, maka sewaktu–waktu pesan rahasia di dalam stegotext harus dapat diambil kembali untuk digunakan lebih lanjut.


(26)

Metode Steganografi ada 2 jenis yaitu:

a. ranah waktu, yaitu memodifikasi nilai byte dari media yang akan disisipinya b. ranah frekuensi yaitu frekuensi memodifikasi langsung hasil transformasi

frekuensi sinyal.

2.4Pengertian Watermarking

Watermarking adalah bentuk dari Steganography yaitu ilmu yang mempelajarii teknik-teknik bagaimana penyimpanan suatu data (digital) ke dalam data host digital yang lain. Istilah host digunakan untuk data/sinyal digital yang ditumpangi [11].

Watermarking pada media digital disini dimaksudkan tidak akan dirasakan kehadirannya oleh manusia tanpa alat bantu mesin pengolah digital seperti komputer, dan sejenisnya sebab watermarking berbeda dengan tanda air pada uang kertas yang masih dapat kelihatan oleh mata telanjang manusia dalam posisi kertas yang tertentu.. Dengan memanfaatkan kekurangan-kekurangan sistem indera manusia seperti mata dan telinga metoda watermarking ini dapat diterapkan pada berbagai media digital. Berdasarkan hasil keluarannya., Steganography berbeda dengan cryptography. Hasil dari cryptography biasanya berupa data yang berbeda dari bentuk aslinya dan biasanya datanya seolah-olah tek beraturan (tetapi dapat dikembalikan ke bentuk semula) sedangkan hasil keluaran dan steganography ini memiliki bentuk persepsi yang sama dengan bentuk aslinya yang tentunya persepsi disini oleh indera manusia [6].

Jadi Watermarking merupakan suatu cara penyembunyian atau penanaman data/informasi tertentu (baik hanya berupa catatan umum maupun rahasia) ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia (indera penglihatan atau indera pendengaran), dan mampu menghadapi proses-proses pengolahan sinyal digital sampai pada tahap tertentu.


(27)

2.4.1 Metode Watermarking

Terdapat banyak metoda watermarking untuk citra digital yang sudah diteliti. Ada yang bekerja pada domain spasial atau waktu, dan ada yang mengalami transformasi terlebih dahulu (seperti DCT, FFT, dsb) misalnya ke domain frekuensi. Bahkan ada yang menerapkan teknologi-teknologi lain seperti fraktal, spread spectrum untuk telekomunikasi dan sebagianya. Beberapa metoda yang pernah diteliti [7], diantaranya adalah:

a. LSB (Least Significant Bit) Coding;

Metoda ini merupakan metoda yang paling sederhana tetapi yang paling tidak tahan terhadap segala proses yang dapat mengubah nilai-nilai intensitas pada citra. Metoda ini akan mengubah nilai LSB (Least Significant Bit) komponen luminansi atau warna menjadi bit yang sesuai dengan bit label yang akan disembunyikan. Memang metoda ini akan menghasilkan citra rekontruksi yang sangat mirip dengan aslinya, karena hanya mengubah nilai bit terakhir dari data. Tetapi sayang tidak tahan terhadap proses-proses yang dapat mengubah data citra terutama kompresi JPEG. Metoda ini paling mudah diserang, karena bila orang lain tahu maka tinggal membalikkan nilai dari LSB-nya maka data label akan hilang seluruhnya. Proses dapat dilihat pada Gambar 2.3.

Gambar 2.3 Proses Watermarking Pada Citra

Watermarking Key


(28)

b. Patchwork; merupakan metode yang diusulkan oleh Bender. Pada metode ini dilakukan penanaman label 1 bit pada citra digital dengan menggunakan pendekatan statistik. Dalam metoda ini, sebanyak n pasang titik (ai,bi) pada citra dipilih secara acak. Brightness dari ai dinaikkan 1 (satu) dan brightness dari pasangannya bi diturunkan satu. Nilai Harapan dari jumlah perbedaan n pasang titik tersebut adalah 2n. Ketahanan metoda ini terhadap kompresi JPEG dengan parameter kualitas 75%, maka label tetap dapat dibaca dengan probabilitas kebenaran sebesar 85%.

c. Pitas & Kaskalis mengusulkan metode ini dengan membagi sebuah citra atas dua bagian (subsets) sama besar (misalnya dengan menggunakan random generator) atau dengan sebuah digital signature S yang merupakan pola biner dengan ukuran N x M dimana jumlah biner "1" (satu) sama dengan jumlah biner "0" (nol). Kemudian salah satu subset ditambahkan dengan faktor k (bulat positif). Faktor k diperoleh dari perhitungan variansi dari kedua subset. Verifikasi dilakukan dengan menghitung perbedaan rata-rata antara kedua subset. Nilai yang diharapkan adalah k bila ada label yang ditanamkan. Metode ini tahan terhadap kompresi JPEG dengan faktor kualitas sekitar 90%.

d. Caroni mengusulkan metode penyembunyian sejumlah bit label pada komponen luminansi dari citra dengan membagi atas blok-blok, kemudian setiap pixel dari satu blok akan dinaikan dengan faktor tertentu bila ingin menanamkan bit '1', dan nilai-nilai pixel dari blok akan dibiarkan bila akan menanamkan bit '0', metoda ini dapat tahan terhadap faktor kualitas sebesar 30%.

e. Metoda Cox ini menanamkan sejumlah urutan bilangan real sepanjang n pada citra N x N dengan mentransformasikan terlebih dahulu menjadi koefisien DCT Nx N. Bilangan real tersebut ditanamkan pada n koefisien DCT yang paling besar, tidak termasuk komponen DC-nya. Verifikasi menggunakan citra asli dikurangi dengan citra terwatermark.

f. Randomly Sequenced Pulse Position Modulated Code (RSPPMC) yang diusulkan oleh Zhao & Koch, bekerja pada domain DCT seperti metoda Cox.


(29)

Berbeda dengan metode Cox, metode ini berdasarkan prinsip format citra JPEG, membagi citra menjadi blok-blok 8 x 8 dan kemudian dilakukan transforamsi DCT, kemudian menggunakan prinsip spread spectrum (metoda frequency hopped) dan RSPPMC (Randomly Sequenced Pulse Position Modulated Code), koefisien-koefisien DCT tersebut diubah sedemikian rupa sehingga akan mengandung informasi 1 bit dari label, seperti dipilih tiga koefisien untuk disesuaikan dengan bit label yang ingin ditanamkan. Contohnya untuk menanamkan bit '1' ke dalam suatu blok koefisien DCT 8 x 8, koefisien ketiga dari ketiga koefisien yang terpilih harus diubah sedemikian rupa sehingga lebih kecil dari kedua koefisien lainnya.

2.4.2 Aplikasi Watermarking

Berikut ini merupakan berbagai macam aplikasi watermarking yang dapat dimanfaatkan untuk berbagai tujuan [1] seperti:

a. Tamper-proofing, merupakan watermarking yang digunakan

sebagai alat untuk mengidentifikasikan atau alat indikator yang menunjukkan tinta digital (host) telah mengalami perubahan dari aslinya.

b. Feature location, merupakan penggunaan metoda watermarking

sebagai alat untuk identifikasikan isi dan data digital pada lokasi-lokasi tertentu, seperti contohnya penamaan objek tertentu dari beberapa objek yang lain pada suatu citra digital.

c. Annotation/caption, merupakan watermarking yang hanya

digunakan sebagai keterangan tentang data digital itu sendiri.

d. Copyright-Labeling, merupakan watermarking yang dapat

digunakan sebagai metoda untuk penyembunyikan label hak cipta pada data digital sebagai bukti kepemilikan karya digital yang otentik..

2.4.3 Trade-Off dalam Watermarking

Setiap aplikasi Watermarking memiliki parameter yang berbeda dalam penerapannya. Parameter-parameter yang perlu diperhatikan tersebut adalah:


(30)

1. Jumlah data (bitrate) yang akan disembunyikan.

2. Ketahanan (robustness) terhadap proses pengolahan sinyal. 3. Nilai penyembunyian data (invisibly).

Bila diinginkan ketahanan yang tinggi maka jumlah data akan menjadi rendah, sedangkan akan semakin tampak, dan sebaliknya semakin tidak tampak maka ketahanan akan menurun. Jadi harus dipilih nilai-nilai dan parameter tersebut agar memberikan hasil yang sesuai dengan kita inginkan.

2.4.4 Berbagai Domain untuk Penerapan Watermarking

Penerapan watermarking terhadap data digital dapat diterapkan pada berbagai domain. Maksudnya penerapan watermarking pada data digital seperti text, citra, video dan audio, dilakukan langsung pada jenis data digital tersebut (Misalnya untuk citra dan video pada domain spasial, dan audio pada domain waktu) atau terlebih dahulu dilakukan transformasi ke dalam domain yang lain.

Berbagai transformasi yang dikenal dalam pemrosesan sinyal digital seperti Fast Fourier Transform (FFT), DCT (Discrete Cosine Transform), Discrete Wavelet Transform (DWT) dan sebagainya. Penerapan watermarking pada berbagai domain dengan berbagai transformasi turut berbagai mempengaruhi parameter penting dalam watermarking bitrate invisible, dan robustness [9].

2.4.5 DCT (Discrete Cosine Transform)

Discrete Cosine Transform (DCT) adalah sebuah fungsi dua arah yang memetakan himpunan buah bilangan real menjadi himpunan buah real pula. Secara umum, DCT satu dimensi menyatakan sebuah sinyal diskrit satu dimensi sebagai kombinasi linier dari beberapa fungsi basis berupa gelombang kosinus diskrit dengan amplitudo tertentu. Masing-masing fungsi basis memiliki frekuensi yang berbeda-beda, karena itu, transformasi DCT termasuk ke dalam transformasi domain frekuensi [9].


(31)

Amplitudo fungsi basis dinyatakan sebagai koefisien dalam himpunan hasil transformasi DCT. DCT satu dimensi didefenisikan pada persamaan berikut:

... (2.6)

untuk 0

C(u) menyatakan koefisien ke-u dari himpunan hasil transformasi DCT. menyatakan anggota ke- dari himpunan asal. menyatakan banyaknya suku himpunan asal dan himpunan hasil transformasi. dinyatakan oleh persamaan berikut:

Untuk

... (2.7)

... (2.8)

Transformasi balikan yang memetakan himpunan hasil transformasi DCT ke himpunan bilangan semula disebut juga inverse DCT (IDCT).

IDCT didefinisikan oleh persamaan dibawah ini:

... (2.9)

untuk

DCT dua dimensi dapat dipandang sebagai komposisi dari DCT pada masing-masing dimensi. Sebagai contoh, jika himpunan bilangan real disajikan dalam array dua dimensi terhadap masing-masing baris dan kemudian melakukan DCT satu dimensi terhadap masing-masing kolom dari hasil DCT tersebut. DCT dua dimensi dapat dinyatakan sebagai berikut dengan persamaan:


(32)

Sedangkan transformasi balikannya (invers) dinyatakan dengan persamaan:

... (2.11)

Fungsi basis DCT satu dimensi untuk N=8 dapat dilihat pada Gambar 2.4. Koefisien DCT ke-n menyatakan amplitudo dari fungsi basis untuk u=n-1. Pada DCT dua dimensi, fungsi basisnya adalah hasil perkalian antara fungsi basis yang berorientasi horizontal dengan fungsi basis yang berorientasi vertikal, sehingga koefisien-koefisien DCT dua dimensi biasa disajikan dalam bentuk matriks.

Gambar 2.4 Fungsi Basis DCT Satu Dimensi untuk N=8 [2]

Koefisien pertama, yaitu C(0) pada DCT satu dimensi atau C(0,0) pada DCT dua dimensi disebut koefisien DC. Koefisien lainnya disebut koefisen AC. Dapat dilihat bahwa fungsi basis yang berkorespondensi dengan koefisien DC memiliki nilai tetap, sedangkan koefisien AC berkorespondensi dengan fungsi basis yang berbentuk gelombang.

Pada transformasi DCT, dikenal juga istilah koefisien frekuensi rendah, frekuensi menengah, dan frekuensi tinggi. Hal ini berkaitan dengan frekuensi gelombang pada fungsi basis DCT. Jika frekuensi fungsi basisnya kecil, maka koefisien yang berkorespondensi disebut koefisien frekuensi rendah. Contoh


(33)

pembagian koefisien menurut frekuensinya pada DCT dua dimensi dengan ukuran blok 8 x 8 ditunjukkan pada Gambar 2.5.

Gambar 2.5 Pembagian koefisien DCT untuk blok 8 x 8 [2]

Transformasi DCT dua dimensi sering digunakan dalam pemrosesan citra digital. Ukuran blok yang banyak digunakan pada pemrosesan citra adalah ukuran blok kecil, misalnya 8 x 8 seperti pada kompresi JPEG. Untuk citra digital, fungsi basis dari DCT adalah sekumpulan citra yang disebut citra basis.

Dalam watermarking juga digunakan persamaan untuk memodifikasi koefisien DCT. Persamaan untuk modifikasi koefisien DC pada domain DCT :

KoeDC = KoeDC + (1 + (2 * Nbiner)) ……….(2.12)

Persamaan untuk modifikasi koefisien DCT dengan frekuensi tertinggi setiap baris : KoeDCT = KoeDCT + (3.14 * (2 * Nbiner)) ……….(2.13)

Dimana, Nbiner = nilai biner citra label yang telah di convert. Nilai 1 dan 0 di rubah menjadi 1 dan -1.

2.4.6 Watermarking untuk Pelabelan Hak Cipta

Masalah Hak Cipta dari dahulu sudah menjadi hal yang utama dalam segala ciptaan manusia, ini digunakan untuk menjaga originalitas atau kreatifitas pembuat akan hasil karyanya. Hak cipta terhadap data-data digital sampai saat ini belum terdapat suatu mekanisme atau cara yang handal dan efisien, dikarenakan adanya berbagai faktor-faktor tadi (faktor-faktor-faktor-faktor yang membuat data digital banyak digunakan). Beberapa


(34)

cara yang pernah dilakukan oleh orang-orang untuk mengatasi masalah pelabelan hak cipta pada data digital, antara lain:

1. Hearder Marking; dengan memberikan keterangan atau informasi hak cipta pada header dari suatu data digital.

2. Visible Marking; merupakan cara dengan memberikan tanda hak cipta pada data digital secara eksplisit.

3. Encryption; mengkodekan data digital ke dalam representasi lain yang berbeda dengan representasi aslinya (tetapi dapat dikembalikan ke bentuk semula) dan memerlukan sebuah kunci dari pemegang hak cipta untuk mengembalikan ke representasi aslinya.

4. Copy Protection; memberikan proteksi pada data digital dengan membatasi atau dengan memberikan proteksi sedemikian rupa sehingga data digital tersebut tidak dapat diduplikasi.

Cara-cara tersebut diatas memiliki kelemahan tersendiri, sehingga tidak dapat banyak diharapkan sebagai metoda untuk mengatasi masalah pelabelan hak citpa ini. Contohnya:

1. Header Marking; Dengan menggunakan software sejenis Hex Editor, orang lain dengan mudah membuka file yang berisi data digital tersebut, dan menghapus informasi yang berkaitan dengan hak cipta dan sejenisnya yang terdapat di dalam header file tersebut.

2. Visible Marking; Penandaan secara eksplisit pada data digital, memang memberikan sejenis tanda semi-permanen, tetapi dengan tersedianya software atau metoda untuk pengolahan, maka dengan sedikit ketrampilan dan kesabaran, tanda yang semipermanen tersebut dapat dihilangkan dari data digitalnya.

3. Encryption; Penyebaran data digital dengan kunci untuk decryption tidak dapat menjamin penyebarannya yang legal. Maksudnya setelah data digital terenkripsi dengan kuncinya telah diberikan kepada pihak yang telah membayar otoritas (secara legal), maka tidak dapat dijamin penyebaran data digital yang telah terdekripsi tadi oleh pihak lain tersebut.


(35)

4. Copy Protection; Proteksi jenis ini biasanya dilakukan secara hardware, seperti halnya saat ini proteksi hardware DVD, tetapi kita ketahui banyak data digital saat ini tidak dapat diproteksi secara hardware (seperti dengan adanya Internet) atau dengan kata lain tidak memungkinkan dengan adanya proteksi secara hardware.

Gambar 2.6 Gambar asli (atas) dan Gambar (bawah) yang telah dihapus tulisannya

Dengan demikian, kita memerlukan suatu cara untuk mengatasi hal yang berkaitan dengan pelanggaran hak cipta ini, yang memiliki sifat-sifat seperti:

1. Invisible atau inaudible; Tidak tampak (untuk data digital seperti citra, video, text) atau tidak kedengaran (untuk jenis audio) oleh pihak lain dengan menggunakan panca indera kita (dalam hal ini terutama mata dan telinga manusia).

2. Robustness; Tidak mudah dihapus/diubah secara langsung oleh pihak yang tidak bertanggung jawab, dan tidak mudah terhapus/terubah dengan adanya proses pengolahan sinyal digital, seperti kompresi, filter, pemotongan dan sebagainya.

3. Trackable; Tidak menghambat proses penduplikasian tetapi penyebaran data digital tersebut tetap dapat dikendalikan dan diketahui.

Teknik watermarking tampaknya memiliki ketiga sifat-sifat diatas, karena faktor-faktor invisibility dan robustness dapat kita atur, dan data yang ter-watermark dapat


(36)

diduplikasi seperti layaknya data digital. Watermarking sebagai metoda untuk pelabelan hak cipta dituntut memiliki berbagai kriteria (ideal) sebagai berikut agar memberikan unjuk kerja yang bagus:

1. Label Hak Cipta yang unik mengandung informasi.

2. pembuatan, seperti nama, tanggal, dst, atau sebuah kode hak cipta.

3. Data ter-label tidak dapat diubah atau dihapus (robustness) secara langsung oleh orang lain atau dengan menggunakan software pengolahan sinyal sampai tingkatan tertentu.

4. Pelabelan yang lebih dari satu kali dapat merusak data digital aslinya, supaya orang lain tidak dapat melakukan pelabelan berulang terhadap data yang telah dilabel.

Berbagai pengolahan sinyal digital yang mungkin dilakukan terhadap berbagai tipe data digital, antara lain untuk citra adalah : Filter (seperti blur), konversi DA/AD, crop (Pemotongan), Scaling, Rotasi, Translasi, kompresi loosy (contohnya JPEG), konversi format, perubahan tabel warna. Untuk video, kompresi loosy (contohnya MPEG), konversi format, konversi DA/AD. Dan untuk audio adalah : crop, filter, equalisasi, kompresi loosy (contohnya MP3), konversi sample rate, format, konversi DA/AD, pengaruh echo, noise, dan sinyal lain [9].

2.4.7 Proses Watermarking

Proses-proses yang secara umum dilakukan pada penyisipan label pada file data asli (data original) dengan pemasukan sebuah kunci (key) adalah seperti Gambar 2.7.


(37)

Pada Gambar 2.7, proses watermarking, terdapat komponen key atau lebih populer dengan password, key ini digunakan untuk mencegah penghapusan secara langsung oleh pihak tak bertanggung jawab dengan menggunakan metoda enkripsi yang sudah ada. Sedangkan ketahanan terhadap proses-proses pengolahan lainnya, itu tergantung pada metoda watermarking yang digunakan. Tetapi dari berbagai penelitian yang sudah dilakukan belum ada suatu metoda watermarking yang ideal bisa tahan terhadap semua proses pengolahan digital. Biasanya masing-masing penelitian menfokuskan pada hal–hal tertentu yang dianggap penting. Penelitian dibidang watermarking ini masih terbuka luas dan semakin menarik, salah satunya karena belum ada suatu standar yang digunakan sebagai alat penanganan masalah hak cipta ini.

Sistem watermarking terdapat 3 sub-bagian yang membentuknya yaitu: a. Penghasil Label Watermark

b. Proses penyembunyian Label

c. Menghasilkan kembali Label Watermark dari data yang ter-watermark. Terdapat kontraversi antara beberapa penelitian mengenai masalah:

1. Label Watermark harus panjang atau hanya memberitahu ada tidaknya watermark pada data digital yang ter-watermark. Maksudnya bila label yang panjang, maka kita dapat mendapatkan informasi tambahan dari data yang ter-watermark tersebut, sedangkan sebaliknya hanya diperoleh ada tidaknya (ada atau tidak ada) watermark dalam data ter-watermark.

2. Cara menghasilkan kembali (ekstrasi atau verifikasi) label watermark tersebut apakah diperlukan data digital aslinya, atau tidak. Dari hasil penelitian memberikan hasil bahwa verifikasi dengan menggunakan data aslinya akan memberikan performansi yang lebih baik dibandingkan dengan cara yang tanpa menggunakan data asli. Dan cara ini dapat digunakan untuk menangani masalah pengakuan kepemilikan oleh beberapa orang.


(38)

Gambar 2.8 Proses Ekstrak dengan data asli

Gambar 2.9 Proses Ekstrak tanpa data asli

Gambar 2.8 proses ekstraksi data ter-label (hasil proses watermarking) dibandingkan dengan data asli berupa teks maupun citra yang menghasilkan data label berupa data yang disisipkan (label). Sedang Gambar 2.9 proses ekstraksi data ter-label (hasil proses watermarking) dibandingkan tanpa data asli berupa teks maupun citra yang menghasilkan data label berupa data yang disisipkan (label).

Label watermark adalah sesuatu data/informasi yang akan kita masukkan ke dalam data digital yang ingin di-watermark. Ada 2 jenis label yang dapat digunakan: 1. Label text yaitu label watermark dari teks biasanya menggunakan nilai-nilai ASCII

dari masing-masing karakter dalam text yang kemudian dipecahkan atas bit-per-bit, kelemahan dari label ini adalah, kesalah pada satu bit saja akan menghasilkan hasil yang berbeda dengan text sebenarnya.

2. Label non text berupa Logo atau Citra atau Suara. Berbeda dengan label text, kesalahan pada beberapa bit masih dapat memberikan persepsi yang sama dengan aslinya oleh pendengaran maupun penglihatan kita, tetapi kelemahannya adalah ukuran data yang cukup besar.


(39)

Teks dan non teks

Gambar 2.10 Jenis label pada saat Pelabelan [9]

2.5 Teknik Watermarking dengan Metode RSPPMC pada Citra Digital

Pada metode ini dilakukan watermarking pada citra digital. Metoda watermarking yang dicoba pada dasarnya menerapkan metoda RSPPMC, yakni watermarking dilakukan pada domain frekuensi (DCT) dengan dilakukan sedikit perubahan. Perubahan yang dilakukan sebagai perbandingan dengan RSPPMC yang asli, yakni verifikasi label watermarking melibatkan citra asli, dimana pada RSPPMC proses verifikasi tidak menggunakan citra asli.

Metoda RSPPMC seperti berikut:

1. Pembagian citra atas blok-blok 8 x 8, dan pemilihan blok secara pseudo random.

2. Blok terpilih ditransformasikan dengan DCT.

Pemilihan 2 nilai koefisien DCT untuk dikodekan sebagai bit 1(high) atau bit 0 ( low).

Contohnya:

Koefisien pertama = koefisien kedua + nilai konstan untuk bit 1 (high).

Sebaliknya untuk bit 0, dilakukan pengurangan Inverse DCT terhadap blok yang telah di-encode.

3. Ulangi proses yang sama untuk seluruh bit label.


(40)

adalah pengkodean bit 1 dan bit 0 tidak dilakukan dengan membandingkan kedua nilai koefisien DCT tersebut, tetapi dengan menambahkan kedua nilai tersebut dengan satu koefisien tertentu yang sama, dan pada waktu verifikasi, dibandingkan dengan citra aslinya [11].

Proses verifikasi dengan melibatkan citra asli memberikan hasil yang lebih baik dibandingkan dengan proses verifikasi tanpa melibatkan citra asli. Selain itu, keuntungan lain dengan terlibatnya citra asli adalah dapat digunakan untuk mengatasi masalah proses pengolahan citra seperti rotasi, croping, translasi dan sebagainya. Dengan adanya citra asli tersebut, maka citra asli tersebut dapat digunakan sebagai referensi untuk dilakukan preprocessing (proses awal) sebelum proses verifikasi, misalnya bagian yang hilang dari citra yang terpotong dapat disisipi dengan bagian dari citra asli.

Pengolahan digital dan masih terbuka suatu kesempatan besar untuk perkembangan-perkembangan lebih lanjut. Diatas telah dibicarakan aplikasi watermarking pada data digital seperti citra, video dan audio, sebenarnya masih ada penelitian pada data seperti text digital, maupun pada fax [11].

Agar watermarking sebagai proses pelabelan hak cipta pada data digital dapat berfungsi dengan baik, juga diperlukan adanya suatu badan internasional yang mencatat semua hasil karya yang terdaftar. Badan internasional tersebut sebagai suatu badan hukum yang berkuasa untuk menentukan siapa yang memang merupakan pemilik aslinya berdasarkan terdaftar tidaknya sebuah hasil karya atas nama seseorang. Tanpa adanya suatu badan internasional tersebut, sebaik apapun metoda watermarking yang ada, masalah hak cipta ini tidak dapat diatasi sepenuhnya. Karena kepada siapa kita harus menuntut, dan menjadi penengah dalam persoalan ini, serta apa bukti bahwa data tersebut memang milik orang ini dan bukan milik orang lain [8].

2.6 Penelitian Terkait

Dalam penelitian Rodiah (2004) yang berjudul Watermarking Sebagai Teknik Penyembunyian Label Hak Cipta Pada Data Digital Menggunakan Algoritma DCT


(41)

(Discrete Cosinus Transform) dilakukan penghitungan semua koefisien DCT citra untuk proses kuantisasi terhadap nilai konstan. Kuantisasi ini dimaksud untuk mengantisipasi proses kompresi JPEG. Dengan adanya kuantisasi ini memberikan hasil yang lebih baik dibandingkan tanpa kuantisasi, tetapi menimbulkan efek kotak-kotak pada citra.

Cara melakukan penyisipan bit adalah setelah dilakukan DCT 2 dimensi terhadap matriks citra, nilai koefisien DCT yang diperoleh dikuantisasi sehingga akan memiliki suatu matriks dalam domain frekuensi. Kelebihan dari domain frekuensi adalah dapat mengganti data dengan lebih sedikit resiko, karena secara garis besar citra aslinya tidak akan mengalami perbedaan yang besar. Pengubahan komponen frekuensi rendah memiliki pengaruh yang sangat besar terhadap citra. Tetapi tidak harus mengubah ke frekuensi tinggi, karena ada pertimbangan teknis yang menyebabkan hal ini sulit dilakukan. Semakin ke arah frekuensi tinggi, nilai koefisien matriks akan semakin menuju nol. Karena itu pengubahan pada frekuensi tinggi sulit dilakukan. Solusinya adalah menggunakan frekuensi tengah sebagai tempat meletakkan informasi. Pada matriks hasil kuantisasi, frekuensi tengah biasanya berada daerah dengan nomor baris antara 2 sampai 5 atau nomor kolom antara 2 sampai 5 [9]. Pada jurnal Winarso, 2007, Selama proses DCT, sebuah gambar dipecah-pecah menjadi blok-blok yang kecil-kecil yang tiap bloknya memuat 8x8 piksel (titik-titik elemen gambar), yang bertindak sebagai masukan bagi suatu DCT. Operasi matematik yang rumit dikenakan pada setiap blok tersebut untuk memperoleh nilai-nilai yang menyatakan karakter penting dari setiap bloknya seperti bagian sisi-sisi atau konturnya yang nantinya harus dapat direpresentasikan.

Setelah tiap gambar mengalami proses DCT, kemudian DCT mengkuantisasi dengan menggunakan fungsi-fungsi weighting (pembobotan) yang dioptimalkan sehingga mendekati sistem visual manusia. Kuantisasi dimaksudkan untuk menyederhanakan bobot angka-angka, yakni senilai 256 yang menunjukkan keseluruhan palet warna dari putih murni sampai hitam murni. Setelah gambar kedua mengalami proses yang sama maka gambar kedua akan disisipkan ke gambar pertama berdasarkan nilai piksel yang dimiliki tiap blok [13].


(42)

Penelitian Rakhmatulloh, (2006) etal, dilakukan watermarking untuk memecahkan kasus penggandaan ilegal produk digital. Pada penelitian ini watermarking citra digital ditransformasikan menggunakan Discrete Cosine Transform (DCT). Pada proses penanaman watermark, citra ditransformasikan menggunakan DCT menjadi domain frekuensi yang menghasilkan tiga area yaitu Low Frequency (FL), Medium Frequency (FM), dan High Frequency (FH). Bit-bit watermark ditanam pada area FM dengan menggunakan nilai Koefisien Selisih (K). Kualitas citra ter-watermark diukur dengan Peak Signal of Noise Ratio (PSNR). Semakin besar nilai K diperoleh nilai PSNR yang semakin kecil [8].

2.7 Flowchart

Flowchart adalah bagan alir yang menggambarkan arus data dari program. Fungsi dari bagan alir ini adalah untuk memudahkan programmer di dalam perancangan program aplikasi. Simbol-simbol yang digunakan pada bagan flowchart ini antara lain seperti pada Tabel 2.1.

Tabel 2.1 Simbol Flowchart Program [5]

Simbol Fungsi

Terminator

Menunjukkan awal dan akhir suatu proses. Data

Digunakan untuk mewakili data input/output. Process

Digunakan untuk mewakili proses. Decision

Digunakan untuk suatu seleksi kondisi didalam program. Predefined Process

Menunjukkan suatu operasi yang rinciannya ditunjukkan di tempat lain.

Preparation


(43)

Flow Lines Symbol

Menunjukkan arah dari proses. Connector

Menunjukkan penghubung ke halaman yang sama. Menunjukkan penghubung ke halaman yang baru. .

2.8 Unified Modeling Language (UML)

Unified Modeling Language adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek [3].

Saat ini UML telah menyediakan diagram-diagram yang merepresentasikan secara grafis bagaimana setiap objek saling berinteraksi. Salah satu diagram yang dimaksud adalah Use Case Diagram.

2.8.1 Use Case Diagram

Use case diagram memberikan gambaran menurut perspektif pengguna perangkat lunak. Sebuah use-case diagram mengandung actor, use-case dan interaksi antara actor dengan use-case [10].

2.8.1.1Actor

Actor adalah suatu elemen yang berinteraksi dengan sistem untuk melakukan komunikasi. Actor memberikan suatu gambaran jelas tentang apa yang harus dilakukan perangkat lunak.


(44)

2.8.1.2Use Case

Use case menggambarkan fungsi – fungsi sistem yang dilakukan oleh sebuah sistem perangkat lunak. Sebuah use case merepresentasikan satu tujuan tunggal dari sistem dan menggambarkan satu rangkaian kegiatan dan interaksi pengguna untuk mencapai tujuan.

Gambar 2.12 Use Case


(45)

BAB 3

ANALISIS DAN PERANCANGAN

3.1Analisis Masalah

Pelabelan hak cipta dengan metode Randomly Sequenced Pulse Position Modulated Code (RSPPMC) pada domain DCT konsepnya adalah melakukan penyisipan citra label secara acak ke dalam citra host (citra asli). Penyisipan secara acak berdasarkan key watermarking yang diinput oleh user. Untuk mengambil nilai baliknya kembali sistem membutuhkan key watermarking yang sama untuk menciptakan nilai acak awal pada saat penyisipan.

1. Proses Watermarking

a. Mengkonversi citra yang diinput menjadi citra Bitmap. b. Membagi citra menjadi matrik 8x8 piksel

c. Menghitung nilai RGB setiap piksel cover image, untuk setiap matrik 8x8 piksel.

d. Mengkonversikan label penyisip menjadi biner. e. Mengkonversi nilai key dari char ke ASCII ke biner f. Membuat posisi acak berdasarkan key watermarking. g. Menghitung koefisien DCT cover image.

h. Mengganti koefisien DCT citra yang terbesar setiap baris matrik 8x8 dengan bit label, kecuali koefisien DC.

i. Merekonstruksi citra watermark dengan melakukan invers DCT.

j. Menyisipkan nilai biner key pada citra hasil rekontruksi dengan nilai 0 dan 255.

k. Menampilkan citra watermarking.

2. Proses Ekstraksi

a. Mengkonversi nilai key ke ASCII ke biner. Dan melakukan verifikasi key dari user dengan key yang tertanam dalam citra watermarking.


(46)

c. Menghitung nilai koefisien DCT citra watermarking. d. Menghitung nilai piksel citra asli.

e. Menghitung nilai koefisien DCT citra asli.

f. Membandingkan nilai koefisien DCT citra watermarking dengan citra asli. g. Menentukan nilai biner (0 atau 1) label.

h. Merekonstruksi dan Menampilkan citra label yang tertanam.

Sebagai contoh cover image yang digunakan adalah seperti pada Gambar 3.1 yaitu image dengan mode warna 24 bit.

Gambar 3.1 Cover Image

Kemudian label identitas yang akan disisipkan adalah berupa teks “USU” dengan nilai biner seperti berikut.

U = 01010101 S = 01010011 U = 01010101

Selanjutnya dibentuk vektor penyisip menjadi: 010101010101001101010101

3.1.1 Menghitung Nilai RGB Citra Host

Pada citra warna 24-bit (true color) tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap berbentuk biner. Untuk membaca nilai RGB-nya, dilakukan dengan mencari header-header serta data bitmap yang berisi informasi dimensi, format dan nilai piksel citra. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B. Setiap byte data merepresentasikan 8 bit, jadi pada citra warna ada 3 byte x 8 bit = 24 bit kandungan warna. Pada citra warna, tiap pikselnya mengandung 24-bit kandungan warna atau


(47)

8-bit untuk masing-masing warna dasar (R, G, dan B), dengan kisaran nilai kandungan antara 0 (00000000) sampai 255 (11111111) untuk setiap warna.

Pada penelitian ini sebagai sample penulis akan mengambil citra host dengan dimensi 1024 x 768 piksel. Dalam penelitian ini, citra asli wajib berdimensi kelipatan 8. Jika citra tidak memenuhi kriteria/syarat ini, maka sistem akan me-resize citra asli menjadi kelipatan 8. Citra asli yang akan disisipi bisa dilihat pada gambar di bawah ini:

Gambar 3.2 Citra Warna 1024 x 768 piksel

Dari citra asli di atas kita ambil nilai RGB untuk matrik pertama. Dapat kita lihat matrik untuk nilai red, green, dan blue seperti di bawah ini. Mulai dari titik (x,y) = (0,0) hingga (7,7).

Matrik Red :

48 52 53 58 64 71 67 60

47 51 53 58 64 71 65 60

49 53 54 59 65 71 67 63

52 54 55 59 62 69 66 64

53 54 55 59 63 68 66 66

53 56 57 61 62 66 66 70

59 60 61 63 61 63 65 71


(48)

Matrik Green :

125 124 126 125 127 126 126 127 124 123 126 125 127 126 126 127 126 125 127 126 128 128 128 129 127 127 126 126 128 128 129 130 126 125 126 126 129 129 129 129 124 125 126 127 129 129 129 129 128 129 130 129 130 129 128 128 126 127 128 129 130 129 129 129

Matrik Blue :

207 206 205 204 206 208 206 205 206 205 205 204 206 208 206 205 206 207 206 205 207 209 208 207 208 206 204 205 206 208 208 208 205 205 204 205 207 209 208 208 204 203 204 205 207 208 208 209 206 207 208 207 207 207 205 207 204 206 207 207 207 205 206 208

Gambar 3.3 Matriks Nilai RGB Citra Asli

Dalam penelitian yang penulis lakukan ini, watermarking dilakukan pada kanal warna biru (blue). Matrik yang akan kita gunakan untuk perhitungan mencari nilai koefisien DCT adalah nilai pada matrik blue. Karna warna biru warna yang tidak begitu jelas direpresentasikan oleh indra manusia.

3.1.2 Menghitung Nilai Biner Citra Label

Citra label yang akan disisipkan akan dikonversi menjadi citra grayscale. Setelah citra grayscale didapat, maka akan dicari nilai tengah (threshold) dengan cara mencari nilai grayscale minimal dan nilai grayscale maksimal citra. Setelah itu, nilai maksimum


(49)

ditambahkan dengan nilai minimum dan hasil dari penjumlahan tersebut dibagi 2 (pada persamaan 2.5).

Pada penelitian ini penulis akan mencoba menggunakan citra label logo USU. Sebelum citra dikonversi menjadi citra biner maka citra label akan di-resize sesuai citra asli. Citra label yang akan disisipkan adalah :

Gambar 3.4 Citra Label 192x190 piksel

Citra label akan di-resize dengan persamaan :

Llabel = Lhost / 8 ………...(3.1)

Tlabel = Thost / 8 ………...(3.2)

Maka lebar citra label yang akan disisipkan adalah : Llabel = 1024 / 8 = 128

Tlabel = 768 / 8 = 96

Setelah melakukan resize pada citra label, maka akan dihitung nilai grayscale citra untuk mendapatkan nilai threshold agar dapat menghitung nilai biner citra label.


(50)

Gambar di atas merupakan citra grayscale dari citra label. Setelah label penyisip di-convert menjadi citra grayscale, maka akan dicari nilai minimum dan maksimum. Setelah itu dijumlahkan dan dibagi 2. Dari perhitungan itu akan didapat nilai threshold. Nilai threshold merupakan batas tengah dalam penentuan citra biner. Seperti:

If (gray <= threshold) then Biner = 0

Else

Biner = 255 Endif

Setelah menyaring seluruh nilai pada citra label maka akan didapat citra label biner seperti gambar di bawah ini:

Gambar 3.6. Citra Biner Label

3.1.3 Menghitung Nilai Biner Key Watermarking

Key watermarking merupakan kunci dalam sistem yang akan penulis bangun pada penelitian ini. Key yang dimasukan memiliki syarat wajib, yaitu key harus berjumlah 8 karakter. Satu karakrter akan mewakili 1 bit yang akan menjadi nilai biner. Prosesnya adalah sebagai berikut:

a. Konversi key watermarking menjadi nilai ASCII

Misalkan kita akan menggunakan key watermarking berupa ILKOMUSU Dengan memakai fungsi pada tabel ASCII maka akan menjadi

73 – 76 – 75 – 79 – 77 – 85 – 83 – 85

b. Konversi nilai ASCII menjadi nilai biner


(51)

Nilai ASCII : 73 – 76 – 75 – 79 – 77 – 85 – 83 – 85 73 : 01001001

76 : 01001100 75 : 01001011 79 : 01001111 77 : 01001101 85 : 01010101 83 : 01010011 85 : 01010101

c. Buat matrik biner key watermarking

Nilai biner key watermarking akan dimasukan ke dalam matrik 8x8 dengan konversi selanjutnya yaitu setiap nilai 0 akan menjadi 0, dan setiap nilai 1 akan menjadi 255. Nilai biner yang mewakili satu karakter akan dimasukan dalam satu baris. Maka akan didapat matrik seperti berikut :

0 255 0 0 255 0 0 255

0 255 0 0 255 255 0 0

0 255 0 0 255 0 255 255

0 255 0 0 255 255 255 255

0 255 0 0 255 255 0 255

0 255 0 255 0 255 0 255

0 255 0 255 0 0 255 255

0 255 0 255 0 255 0 255

Gambar 3.7. Matriks key

Setelah matrik didapat maka matrik key watermarking telah siap untuk ditanamkan pada citra host. Penanaman key ini pada citra host dengan cara mengambil matrik 8x8 piksel ke-N yang berada di titik tengah citra host. Setelah titik tengah ditentukan maka matrik tersebut diganti dengan matrik key dengan syarat hanya pada kanal warna biru saja.


(52)

3.1.4 Transformasi DCT

Sebelum melakukan penyisipan label ke dalam citra, maka dilakukan transformasi pada citra pada Gambar 3.2 menjadi matriks transform (A) dengan menggunakan bagian persamaan (2.9) untuk matriks citra per kolom.

a. Menghitung Matriks Transform

Untuk baris pertama pada citra i=0 maka digunakan rumus , untuk A(0,0) hingga A(0,7) adalah 0.3535

Untuk baris ke dua, i > 0 maka digunakan rumus, untuk phi = 3.14 A(1,0) = cos = 0.49039

A(1,1) = cos = 0.4157

A(1,2) = cos = 0.2777

A(1,3) = cos = 0.0.975

A(1,4) = cos = -0.0975

A(1,5) = cos = -0.2777

A(1,6) = cos = -0.4157

A(1,7) = cos = -0.49039

Perhitungan di atas dilakukan hingga A(7,7) dengan persamaan yang sama. Maka dari perhitungan di atas diperoleh nilai untuk matriks transform seperti ditunjukkan pada Gambar 3.8.


(53)

0.3535 0.3535 0.3535 0.3535 0.3535 0.3535 0.3535 0.3535 0.49039 0.4157 0.2777 0.0.975 -0.097 -0.277 -0.415 -0.490 0.4619 0.1913 -0.191 -0.461 -0.461 -0.191 0.1913 0.4619 0.4157 -0.097 -0.490 -0.277 0.2777 0.490 0.0975 -0.415 0.3535 -0.353 -0.353 0.3535 0.3535 -0.353 -0.353 0.3535 0.2777 -0.490 0.097 0.4157 -0.415 -0.097 0.4903 -0.277 0.1913 -0.461 0.4619 -0.191 -0.191 0.4619 -0.461 0.1913 0.0975 -0.277 0.4157 -0.490 0.4903 -0.415 0.2777 -0.097

Gambar 3.8 Matriks Transform (A)

b. Menghitung Matriks Transpose

Matriks transpose (A’) adalah perubahan kolom menjadi baris dari matriks A seperti ditunjukkan pada Gambar 3.9.

0.3535 0.49039 0.4619 0.4157 0.3535 0.2777 0.1913 0.0975 0.3535 0.4157 0.1913 -0.097 -0.353 -0.490 -0.461 -0.277 0.3535 0.2777 -0.191 -0.490 -0.353 0.097 0.4619 0.4157 0.3535 0.0.975 -0.461 -0.277 0.3535 0.4157 -0.191 -0.490 0.3535 -0.097 -0.461 0.2777 0.3535 -0.415 -0.191 0.4903 0.3535 -0.277 -0.191 0.490 -0.353 -0.097 0.4619 -0.415 0.3535 -0.415 0.1913 0.0975 -0.353 0.4903 -0.461 0.2777 0.3535 -0.490 0.4619 -0.415 0.3535 -0.277 0.1913 -0.097

Gambar 3.9 Matriks Transpose (A’)

Selanjutnya cari matriks D dengan cara D = A * M * A’ Dimana A = Matriks Transform

Dimana M = Matriks Citra asli Dimana A’ = Matriks Transpose


(54)

0.3535 0.3535 0.3535 0.3535 0.3535 0.3535 0.3535 0.3535 0.49039 0.4157 0.2777 0.0.975 -0.097 -0.277 -0.415 -0.490 0.4619 0.1913 -0.191 -0.461 -0.461 -0.191 0.1913 0.4619 0.4157 -0.097 -0.490 -0.277 0.2777 0.490 0.0975 -0.415 0.3535 -0.353 -0.353 0.3535 0.3535 -0.353 -0.353 0.3535 0.2777 -0.490 0.097 0.4157 -0.415 -0.097 0.4903 -0.277 0.1913 -0.461 0.4619 -0.191 -0.191 0.4619 -0.461 0.1913 0.0975 -0.277 0.4157 -0.490 0.4903 -0.415 0.2777 -0.097

X

207 206 205 204 206 208 206 205 206 205 205 204 206 208 206 205 206 207 206 205 207 209 208 207 208 206 204 205 206 208 208 208 205 205 204 205 207 209 208 208 204 203 204 205 207 208 208 209 206 207 208 207 207 207 205 207 204 206 207 207 207 205 206 208

X

0.3535 0.49039 0.4619 0.4157 0.3535 0.2777 0.1913 0.0975 0.3535 0.4157 0.1913 -0.097 -0.353 -0.490 -0.461 -0.277 0.3535 0.2777 -0.191 -0.490 -0.353 0.097 0.4619 0.4157 0.3535 0.0.975 -0.461 -0.277 0.3535 0.4157 -0.191 -0.490 0.3535 -0.097 -0.461 0.2777 0.3535 -0.415 -0.191 0.4903 0.3535 -0.277 -0.191 0.490 -0.353 -0.097 0.4619 -0.415 0.3535 -0.415 0.1913 0.0975 -0.353 0.4903 -0.461 0.2777 0.3535 -0.490 0.4619 -0.415 0.3535 -0.277 0.1913 -0.097


(55)

1650.37 -5.62 0.97 3.10 -0.87 -1.62 1.36 -0.28 -1.09 1.32 1.55 4.47 -1.93 0.38 0.42 -0.2 -1.41 3.68 -1.87 -2.20 -0.16 -0.54 0.39 0.66

-1.54 -1.02 -0.13 1.44 0.38 0.19 0.79 -0.08 -0.12 0.11 1.13 0.22 0.62 0.21 -0.87 -0.28 1.80 2.47 0.86 -0.02 0.08 -0.01 0.27 -0.37 0.18 -2.50 0.14 -0.26 -0.07 0.02 -0.63 0.42

1.46 1.08 -1.16 -0.34 -1.25 -0.92 0.02 -0.24

Gambar 3.10 Matriks Koefisien D

Matriks D sekarang berisi dengan koefisien DCT, dimana data yang akan digantikan dengan nilai biner penyisip adalah frekuensi-frekuensi tertinggi setiap baris matrik dengan mengabaikan tanda minus (nilai mutlak). untuk matrik (0,0) = 1650.37 merupakan koefisien DC pada domain DCT. Koefisien ini juga akan ikut dimodifikasi dengan bit citra label penyisip.

c. Modifikasi Koefisien DCT

Matriks D Koefisien DCT akan dimodifikasi dengan metode RSPPMC, yaitu dengan pemilihan matrik yang akan dimodifikasi dilakukan secara acak. Dalam penentuan nilai acak penulis menggunakan rata2 nilai ASCII key watermarking sebagai penentu. ASCII Key : 73 + 76 + 75 + 79 + 77 + 85 + 83 + 85 = 633

Rata-rata : 633/8 = 79.125 Rata-rata : 79

Setelah rata-rata ditentukan, selanjutnya lakukan normalisasi. Jika rata-rata yang dihasilkan dari perhitungan berupa nilai genap maka kurangi dengan 4, jika tidak atau nilai rata-rata berupa nilai ganjil maka kurangi dengan 3.

Nilai key ternormalisasi : 79 – 3 = 76

Angka 76 merupakan penentu dalam pengmbilan matrik pada citra asli yang akan dimodifikasi dengan nilai biner pertama pada citra label.


(56)

Dalam penyisipan ini, penulis menggunakan 1 bit nilai yang akan disisipkan pada seluruh nilai tertinggi setiap baris pada matrik terpilih 8x8 pada citra host termasuk nilai koefisien DC pada domain DCT. Jadi ada 9 nilai yang akan dimodifikasi dengan satu bit nilai biner citra label.

Setelah matrik ke 76 pada citra host dimodifikasi maka akan dilanjutkan ke matrik berikutnya dengan syarat-syarat yang telah penulis tetapkan untuk fungsi posisi acak dalam mengimplementasikan metode RSPPMC ini.

Syarat-syarat yang harus dipenuhi dalam penentuan posisi acak ini adalah sebagai berikut :

1. Tentukan nilai rata-rata dari nilai ASCII key watermarking

2. Lakukan normalisasi pada rata-rata key. (seperti persamaan di atas)

3. Hasil normalisasi adalah posisi awal dari urutan acak pada metode RSPPMC yang ada di penelitian ini.

4. Nilai normalisasi dikurangi dengan 2 untuk posisi berikutnya. (jadi untuk posisi ke-2 : 76 – 2 = 74)

5. Jika nilai posisi = 0, maka nilai matrik selanjutnya = matrik 8x8 ke-terakhir pada citra host. Untuk penelitian ini = matrik ke 12288.

6. Untuk matrik selanjutnya lakukan pengurangan dengan 2. Operasi akan berhenti ketika posisi matrik telah sampai pada nilai key ternormalisasi + 2. 7. Jika posisi matriks = key ternormalisasi + 2, maka posisi matrik selanjutnya di

mulai dari matrik ke 1.

8. Mulai dari matrik ke 1 ini maka operasi akan melakukan penambahan dengan angka 2, sehingga matrik yang akan diinisialisasi adalah matrik ke (ganjil). 9. Lakukan hingga matrik ke (12288-1).

Selain menentukan matrik ke-N untuk penyisipan. Dalam penelitian ini juga digunakan persamaan untuk memodifikasi koefisien DCT. Persamaan untuk modifikasi koefisien DC pada domain DCT dapat dilihat pada persamaan 2.12. sedangkan untuk persamaan modifikasi koefisien DCT dengan frekuensi tertinggi setiap baris dapat dilihat pada persamaan 2.13. Jadi setiap matrik citra host memiliki 9 nilai yang akan dimodifikasi, yaitu 1 koeDC dan 8 KoeDCT setiap baris.


(57)

Berdasarkan nilai yang telah dihitung pada matrik citra host di atas, ke 9 nilai tersebut adalah sebagai berikut:

1. 1650.37 (merupakan KoeDC)

2. -5.62 (frekuensi tertinggi pada baris pertama) 3. 4.47 (frekuensi tertinggi pada baris kedua) 4. 3.68 (frekuensi tertinggi pada baris ketiga) 5. -1.54 (frekuensi tertinggi pada baris keempat) 6. 1.13 (frekuensi tertinggi pada baris kelima) 7. 2.47 (frekuensi tertinggi pada baris keenam) 8. -2.50 (frekuensi tertinggi pada baris ketujuh) 9. 1.46 (frekuensi tertinggi pada baris kedelapan)

Semua nilai di atas dimodifikasi dengan nilai biner pada citra label (nilai biner = 1) persamaan koeDC dan KoeDCT. Setelah modifikasi selesai maka dapat dilihat nilai pada matrik di atas menjadi seperti berikut:

1653.37 0.66 0.97 3.10 -0.87 -1.62 1.36 -0.28 -1.09 1.32 1.55 10.75 -1.93 0.38 0.42 -0.2 -1.41 9.96 -1.87 -2.20 -0.16 -0.54 0.39 0.66

4.74 -1.02 -0.13 1.44 0.38 0.19 0.79 -0.08 -0.12 0.11 7.41 0.22 0.62 0.21 -0.87 -0.28

8.08 0.47 0.86 -0.02 0.08 -0.01 0.27 -0.37 0.18 3.78 0.14 -0.26 -0.07 0.02 -0.63 0.42

7.74 1.08 -1.16 -0.34 -1.25 -0.92 0.02 -0.24 Gambar 3.11. Matriks Hasil Modifikasi (Y)

Tahap selanjutnya adalah mengembalikan citra digital dalam bentuk visual dengan melakukan proses Invers DCT dengan mengalikan matriks transpose dengan matriks hasil modifikasi DCT (X=A’*Y).


(58)

0.3535 0.49039 0.4619 0.4157 0.3535 0.2777 0.1913 0.0975 0.3535 0.4157 0.1913 -0.097 -0.353 -0.490 -0.461 -0.277 0.3535 0.2777 -0.191 -0.490 -0.353 0.097 0.4619 0.4157 0.3535 0.0.975 -0.461 -0.277 0.3535 0.4157 -0.191 -0.490 0.3535 -0.097 -0.461 0.2777 0.3535 -0.415 -0.191 0.4903 0.3535 -0.277 -0.191 0.490 -0.353 -0.097 0.4619 -0.415 0.3535 -0.415 0.1913 0.0975 -0.353 0.4903 -0.461 0.2777 0.3535 -0.490 0.4619 -0.415 0.3535 -0.277 0.1913 -0.097

X

1653.37 0.66 0.97 3.10 -0.87 -1.62 1.36 -0.28 -1.09 1.32 1.55 10.75 -1.93 0.38 0.42 -0.2 -1.41 9.96 -1.87 -2.20 -0.16 -0.54 0.39 0.66

4.74 -1.02 -0.13 1.44 0.38 0.19 0.79 -0.08 -0.12 0.11 7.41 0.22 0.62 0.21 -0.87 -0.28

8.08 0.47 0.86 -0.02 0.08 -0.01 0.27 -0.37 0.18 3.78 0.14 -0.26 -0.07 0.02 -0.63 0.42

7.74 1.08 -1.16 -0.34 -1.25 -0.92 0.02 -0.24

Hasil perhitungan perkalian antara kedua matrik di atas dimasukkan ke dalam matriks X seperti pada Gambar 3.12. Kemudian matriks X dikalikan dengan matriks Transform seperti pada Matriks di bawah ini.

588.33 6.27 2.95 5.94 -1.06 -0.57 0.84 -0.07 577.22 -0.43 -2.14 5.15 -1.06 -0.35 1.11 0.11 586.33 1.98 -1.76 3.45 -1.77 -0.91 0.19 -0.09 583.27 -3.92 4.91 3.05 0.35 0.17 0.03 -0.62 586.99 -6.18 2.68 1.44 -0.35 -0.68 0.19 -0.56 583.57 -1.92 -1.95 -0.82 0.71 -0.16 0.65 0.22 591.27 1.14 -3.26 -3.71 6.05 -1.16 1.19 -0.24 579.45 4.92 1.29 -5.72 0.71 -0.92 -0.38 0.44


(1)

Me.Text = "Pengolahan Citra : Proses berhasil, lanjutkan ke Proses Ekstraksi"

End Sub

Private Sub citraHasil()

bmap_dct = New Bitmap(PictureBox1.Image, (bmap.Width / 8), (bmap.Height / 8))

PictureBox3.Image = bmap_dct With bmap_dct

Dim X, Y, mat As Integer mat = 1

For Y = 0 To .Height - 1 Application.DoEvents() For X = 0 To .Width - 1 bmap_dct.SetPixel(X, Y,

Color.FromArgb(matBin(mat, 1, 1), matBin(mat, 1, 1), matBin(mat, 1, 1)))

mat = mat + 1 Next

PictureBox3.Refresh() Next

End With

Me.Text = "Proses Ekstraksi Berhasil" PictureBox3.Image = bmap_dct

End Sub

Private Sub getKey()

Dim x, y, m, bar, kol, mTemp As Integer ReDim keyCitra(8, 8)

mTemp = 1 m = 1 bar = 1 kol = 1

For y = 0 To bmap_watermark.Height - 1 Application.DoEvents()

For x = 0 To bmap_watermark.Width - 1 If m = (bmap_watermark.Width / 8) *

((bmap_watermark.Height / 8) / 2) - ((bmap_watermark.Width / 8) / 2) Then

If matCitraWatermark(m, bar, kol) = 0 Then keyCitra(bar, kol) = "0"

Else

keyCitra(bar, kol) = "1" End If

End If

If kol = 8 And x <> (bmap_watermark.Width - 1) Then kol = 1

m = m + 1

ElseIf kol = 8 And x = (bmap_watermark.Width - 1) Then

kol = 1 m = mTemp Else

kol = kol + 1 End If


(2)

If (y + 1) Mod 8 = 0 And y <> (bmap_watermark.Height - 1) Then

mTemp = mTemp + (bmap_watermark.Width / 8) m = mTemp

Else

m = mTemp End If

If bar = 8 Then bar = 1 Else

bar = bar + 1 End If

Next End Sub

Public Sub setBaris(ByVal path As String, ByVal content As String)

Dim fileWriter As StreamWriter = File.AppendText(path) Dim i As Integer

i = 0 Try

fileWriter.WriteLine(content) fileWriter.Close()

Catch x As Exception MsgBox(x.Message) End Try

End Sub

Public Function hitungBaris(ByVal FullPath As String) Dim fileReader As StreamReader

Dim content As String = "" Dim i As Integer

i = 0 Try

fileReader = New StreamReader(FullPath) Do Until (fileReader.EndOfStream)

i = i + 1

content = fileReader.ReadLine() Loop

fileReader.Close() Catch x As Exception MsgBox(x.Message) End Try

Return i End Function

'=======================================================

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

OpenFileDialog1.Filter = "Images|*.JPG;*.BMP"

OpenFileDialog1.InitialDirectory = Application.StartupPath + "\Watermarking\Asli\"


(3)

PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName) citraAsli()

Dim fileCopy As String

fileCopy = Application.StartupPath + "\Ekstraksi\Asli\" + OpenFileDialog1.SafeFileName

If File.Exists(fileCopy) = False Then

File.Copy(OpenFileDialog1.FileName, fileCopy) End If

setBaris(Application.StartupPath +

"\Ekstraksi\Asli\lap_citra_asli.txt", "\Ekstraksi\Asli\" + OpenFileDialog1.SafeFileName)

Button3.Enabled = True End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

OpenFileDialog1.Filter = "Images|*.JPG;*.BMP"

OpenFileDialog1.InitialDirectory = Application.StartupPath + "\Watermarking\Hasil\"

OpenFileDialog1.ShowDialog()

PictureBox2.Image = Image.FromFile(OpenFileDialog1.FileName) citraWatermarking()

getKey()

PictureBox3.Image = PictureBox2.Image Dim fileCopy As String

fileCopy = Application.StartupPath + "\Ekstraksi\Watermark\" + OpenFileDialog1.SafeFileName

If File.Exists(fileCopy) = False Then

File.Copy(OpenFileDialog1.FileName, fileCopy) End If

setBaris(Application.StartupPath + "\Ekstraksi\Watermark\lap_citra_watermark.txt",

"\Ekstraksi\Watermark\" + OpenFileDialog1.SafeFileName) TextBox1.Enabled = True

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

koeDctAsli() perkalianMatrik() Button4.Enabled = True koeDctWatermarking() End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Dim mat, bar, kol, rAsli, rWatermark As Integer

ReDim matBin((bmap.Width / 8) * (bmap.Height / 8), 1, 1) rAsli = 0

rWatermark = 0


(4)

For bar = 1 To 8 For kol = 1 To 8

rWatermark = rWatermark + matDW(ranDom(mat), bar, kol)

rAsli = rAsli + matD(ranDom(mat), bar, kol) Next

Next

rAsli = rAsli / 64

rWatermark = rWatermark / 64 If rWatermark < rAsli Then matBin(mat, 1, 1) = 0 Else

matBin(mat, 1, 1) = 255 End If

Next

citraHasil()

Button2.Enabled = True End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

Button5.Enabled = False

GroupBox3.Text = "Your Key is not Valid" Dim str As String

Dim x As Integer str = TextBox1.Text

Dim charArray As Char() = str.ToCharArray ReDim str2ascii(str.Length)

TextBox2.Clear()

For x = 0 To str.Length - 1

str2ascii(x) = Asc(charArray(x)) If TextBox2.Text <> "" Then

TextBox2.Text = TextBox2.Text + " " + str2ascii(x) Else

TextBox2.Text = str2ascii(x) End If

Next

If TextBox1.TextLength = 8 Then Dim validKey As Boolean sisipKey()

validKey = True For bar = 1 To 8 For kol = 1 To 8

If arrKey(bar, kol) <> keyCitra(bar, kol) Then validKey = False

End If Next

Next

If validKey = True Then Button5.Enabled = True


(5)

Me.Text = "Klik Get Matrik untuk mendapatkan nilai pixel Citra"

Else

Button5.Enabled = False

GroupBox3.Text = "Your Key is not Valid" End If

End If End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim num As String

num = hitungBaris(Application.StartupPath + "\Ekstraksi\Hasil\lap_ekstraksi.txt") + 1

bmap_dct.Save(Application.StartupPath + "\Ekstraksi\Hasil\citra_ekstraksi-" + num + ".jpg") setBaris(Application.StartupPath +

"\Ekstraksi\Hasil\lap_ekstraksi.txt",

"\Ekstraksi\Hasil\citra_ekstraksi-" + num + ".jpg")

MsgBox("Citra Hasil Ekstraksi Berhasil disimpan", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "Information") End Sub

End Class

4.

About (about.vb)

Public Class About

'deklarasikan prosedur form about pada saat form diload Private Sub About_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

'deklarasi variabel i sebagai integer dan diisi dengan fungsi freeFile

Dim i As Integer = FreeFile()

'memanggil fungsi open file dengan parameter : number file, lokasi file, mode open

FileOpen(i, Application.StartupPath + "\support\about_application.txt", OpenMode.Input)

'mengisi properties text pada textbox2 dengan fungsi inputString

TextBox2.Text = InputString(i, LOF(i)) 'tutup file i

FileClose(i)

FileOpen(i, Application.StartupPath + "\support\about_me.txt", OpenMode.Input)

TextBox1.Text = InputString(i, LOF(i)) FileClose(i)

End Sub End Class


(6)

5.

Help (help.vb)

Public Class help

Private Sub help_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim i As Integer = FreeFile()

FileOpen(i, Application.StartupPath + "\support\help_watermarking.txt", OpenMode.Input) TextBox1.Text = InputString(i, LOF(i)) FileClose(i)

FileOpen(i, Application.StartupPath + "\support\help_ekstraksi.txt", OpenMode.Input) TextBox2.Text = InputString(i, LOF(i)) FileClose(i)

End Sub End Class