BAB 2 LANDASAN TEORI 2.1 Image Digital Pengertian Image Digital Image digital sebenarnya bukanlah sebuah data digital yang normal, melainkan sebuah representasi dari image asal yang bersifat analog . Mengacu pada pendapat Ira Herawati (2010) pengertian citra dapat dikemukakan sebagai gambar pada bidang dua dimensi. Image digital ditampilkan pada layar komputer dengan berbagai macam susunan warna dan tingkat kecerahan. Susunan warna inilah yang menyebabkan sebuah image bersifat analog. Hal ini disebabkan karena susunan warna yang dimiliki dalam sebuah image mengandung jumlah warna dan tingkat kecerahan yang tidak terbatas. Image yang ditampilkan pada layar komputer ini, yang sebenarnya merupakan sebuah representasi analog, juga tersusun dari sebuah rentang tak terbatas dari nilai cahaya yang dipantulkan atau cahaya yang ditransmisikan. Jadi secara umum image memiliki sifat kontinu dalam tampilan warna dan tingkat kecerahannya. 2.2 Digital Watermarking `2.2.1 Latar Belakang Digital Watermarking Sebenarnya, konsep atau ide awal dari watermarking telah ada sejak tahun 1990- an, namun istilah watermark baru digunakan pada tahun 1993, diperkenalkan oleh A.Z.Tirkel dan teman-temannya. Digital watermarking didasarkan pada ilmu stenografi, yaitu ilmu yang mengkaji tentang penyembunyian data. Mengacu pada pendapat Skol(2001) istilah “stenografi “ berasal dari Bahasa Yunani, yang berarti covered- writing, atau tulisan tersembunyi. Teknik ini mengambil keuntungan dari keterbatasan indera manusia, khususnya penglihatan dan pendengaran, sehingga watermark yang dibubuhkan pada dokumen tidak akan disadari kehadirannya oleh manusia. 2.2.2 Jenis-jenis watermarking Secara garis besar, ada dua jenis watermarking : a. Robust watermarking Jenis watermark ini tahan terhadap serangan (attack), namun biasanya watermark yang dibubuhi ke dokumen masih dapat ditangkap oleh indera penglihatan atau pendengaran manusia. b. Fragile watermarking Jenis watermark ini akan mudah rusak jika terjadi serangan, namun kehadirannya tidak terdeteksi oleh indera manusia. Jika diinginkan untuk membuat suatu algoritma yang dapat mengimplementasikan watermarking yang memiliki fidelity yang tinggi (adanya watermark tidak disadari oleh pengamatan manusia) maka hasilnya akan semakin rentan terhadap serangan. Ada tiga tahap utama dalam proses watermarking : a. Mengintegrasikan watermark pada image (embedding) b. Serangan terhadap image yang telah dibubuhi watermark, baik yang disengaja (misalnya dikompresi, dipotong sebagian, di-filter, dan sebagainya) ataupun yang tidak disengaja (misalnya disebabkan oleh noise atau gangguan dalam saluran transmisi data). c. 2.2.3 Proses ekstraksi watermark dari dokumen yang akan diuji. Syarat-syarat Digital Watermarking yang ideal Untuk mendapatkan suatu teknik digital watermarking yang baik, maka teknik tersebut harus dapat memenuhi kondisi di bawah ini: a. Elemen dari suatu data digital dapat secara langsung dimanipulasi dan informasi dapat ditumpangkan ke dalam data digital tersebut b. Penurunan kualitas dari data digital setelah dibubuhkan watermark, dapat seminimal mungkin. c. Watermark dapat dideteksi dan diperoleh kembali meskipun setelah data digital diubah sebagian, dikompresi, ataupun di-filter. d. Struktur dari watermark membuat penyerang sulit untuk mengubah informasi yang terkandung di dalamnya. e. Proses untuk membubuhkan watermark dan mendeteksinya cukup sederhana f. Jika watermark dihapus, maka kualitas dari data digital yang ditumpanginya akan berkurang jauh atau bahkan rusak sama sekali. g. Informasi watermark yang diselipkan dalam isi data digital dapat dideteksi ketika dibutuhkan. h. Label hak cipta yang unik mengandung informasi pembuatan, seperti nama, tanggal, dan sebagainya, atau sebuah kode hak cipta seperti halnya ISBN (International Standard for Book Notation) pada buku-buku. i. Watermark tidak dapat diubah atau dihapus (robustness) secara oleh orang lain atau dengan menggunakan langsung software pengolahan sinyal sampai tingkatan tertentu. Watermarking yang diberikan lebih dari satu kali dapat merusak data digital aslinya. Cara ini dilakukan supaya orang lain tidak dapat melakukan pelabelan berulang terhadap data yang telah dilabel. Sampai saat ini, belum ada teknik watermarking yang dapat memenuhi seluruh kriteria di atas. 2.2.4 Metode Watermarking Domain dalam teknik Digital Image Watermarking yaitu domain spasial dan domain transform. Penyisipan watermark dalam domain spasial dilakukan secara langsung pada pixel-pixel penyusun sebuah image digital. Contoh metode yang termasuk dalam teknik dengan domain spasial adalah LSB (Least Significant Bit) yang mewatermark sebuah image digital dengan mengganti bit LSB-nya dengan bit data, metode lain dalam domain spasial yaitu metode patchwork yang menanamkan watermark sebesar 1 bit pada image digital dengan menggunakan pendekatan statistik. Untuk metode yang digunakan pada teknik dalam domain transform, biasanya berhubungan dengan transformasi sinyal yang digunakan dalam bidang matematika. Watermark disisipkan ke dalam koefisien transformasi tergantung dari jenis transformasi yang digunakan. Beberapa jenis transformasi yang sering digunakan yaitu Discrete Fourier Transform (DFT), Discrete Cosine Transform (DCT), Discrete Wavelet Transform (DWT), dan Discrete Laguerre Transform (DLT). Inti watermarking dalam domain transform adalah sebuah transformasi balikan (inverse transform) harus dijalankan untuk mendapatkan image berwatermark. Spread spectrum merupakan salah satu contoh metode dalam domain transform. Metode ini memanfaatkan transformasi sinyal dengan cara mentransformasikan image digital ke dalam domain frekuensi, kemudian bit watermark disisipkan pada koefisien transformasi. Penyisipan watermark ini dilakukan dengan cara menyebarkan watermark diantara banyak komponen frekuensi. 2.3 Discrete Wavelet Transform Dasar dari DWT dimulai pada tahun 1976 dimana teknik untuk mendekomposisi sinyal waktu diskrit ditemukan . Di dalam CWT, sinyal dianalisis menggunakan seperangkat fungsi dasar yang saling berhubungan dengan penskalaan dan transisi sederhana. Sedangkan di dalam DWT, penggambaran sebuah skala waktu sinyal digital didapatkan dengan menggunakan teknik filterisasi digital. Secara garis besar proses dalam teknik ini adalah dengan melewatkan sinyal yang akan dianalisis pada filter dengan frekuensi dan skala yang berbeda. Filterisasi sendiri merupakan sebuah fungsi yang digunakan dalam pemrosesan sinyal. Wavelet dapat direalisasikan menggunakan iterasi filter dengan penskalaan. Resolusi dari sinyal, yang merupakan rata-rata dari jumlah detail informasi dalam sinyal, ditentukan melalui filterisasi ini dan skalanya didapatkan dengan upsampling dan downsampling (subsampling). Sebuah sinyal harus dilewatkan dalam dua filterisasi DWT yaitu highpass filter dan lowpass filter agar frekuensi dari sinyal tersebut dapat dianalisis. Analisis sinyal dilakukan terhadap hasil filterisasi highpass filter dan lowpass filter di mana highpass filter digunakan untuk menganalisis frekuensi tinggi dan lowpass filter digunakan untuk menganalisis frekuensi rendah. Analisis terhadap frekuensi dilakukan dengan cara menggunakan resolusi yang dihasilkan setelah sinyal melewati filterisasi. Analisis frekuensi yang berbeda dengan menggunakan resolusi yang berbeda inilah yang disebut dengan multi-resolution analysis, seperti yang telah disinggung pada bagian Transformasi Wavelet. Pembagian sinyal menjadi frekuensi tinggi dan frekuensi rendah dalam proses filterisasi highpass filter dan lowpass filter disebut sebagai dekomposisi. Proses dekomposisi dimulai dengan melewatkan sinyal asal melewati highpass filter dan lowpass filter. Misalkan sinyal asal ini memiliki rentang frekuensi dari 0 sampai dengan π rad/s. Dalam melewati highpass filter dan lowpass filter ini, rentang frekuensi di-subsample menjadi dua, sehingga rentang frekuensi tertinggi pada masing-masing subsample menjadi ߨ/2 rad/s. Setelah filterisasi, setengah dari sampel atau salah satu subsample dapat dieliminasi berdasarkan aturan Nyquist. Sehingga sinyal dapat selalu di-subsample oleh 2 (↓2) dengan cara mengabaikan setiap sampel yang kedua. Proses dekomposisi ini dapat melalui satu atau lebih tingkatan. Dekomposisi satu tingkat ditulis dengan ekspresi matematika pada persamaan 2 dan 3 ytinggi [k] = ∑ x[n] h [2k - n] (2) yrendah [k] = ∑ x[n] g [2k - n] (3) y [k] tinggi dan y [k]rendah adalah hasil dari highpass filter dan lowpass filter, x[n] merupakan sinyal asal, h[n] adalah highpass filter, dan g[n] adalah lowpass filter. Untuk dekomposisi lebih dari satu tingkat, prosedur pada rumus 2 dan 3 dapat digunakan pada masing-masing tingkatan. Contoh penggambaran dekomposisi dipaparkan pada Gambar 2.1 dengan menggunakan dekomposisi tiga tingkat. Gambar 2.1 Dekomposisi Wavelet 3 Tingkat DWT menganalisis sinyal pada frekuensi berbeda dengan resolusi yang berbeda melalui dekomposisi sinyal sehingga menjadi detail informasi dan taksiran kasar. DWT bekerja pada dua kumpulan fungsi yang disebut fungsi penskalaan dan fungsi wavelet yang masing-masing berhubungan dengan lowpass filter dan highpass filter. Seperti yang telah dijelaskan sebelumnya dekomposisi ini didasarkan pada aturan Nyquist yang salah satunya mengatakan bahwa frekuensi komponen sample harus kurang atau sama dengan setengah dari frekuensi sampling. Jadi diambil frekuensi sampel π /2 dari frekuensi sampling π dalam subsample oleh 2 pada dekomposisi wavelet. Sebagai penggambaran dekomposisi wavelet dengan sinyal asal x[n] yang memiliki frekuensi maksimum f = π dipaparkan pada Gambar 2.2. Gambar 2.2 Dekomposisi Wavelet dengan frekuensi sinyal asal f=0 Proses rekonstruksi diawali dengan menggabungkan koefisien DWT dari yang berada pada akhir dekomposisi dengan sebelumnya meng-upsample oleh 2 (↑2) melalui highpass filter dan lowpass filter. Proses rekonstruksi ini sepenuhnya merupakan kebalikan dari proses dekomposisi sesuai dengan tingkatan pada proses dekomposisi. Sehingga persamaan rekonstruksi pada masing masing tingkatan dapat ditulis sebagai berikut: X[n] = ∑ ( ytinggi [k] h [-n+2k] + yrendah[k] g [-n+2k]) Proses rekonstruksi wavelet untuk mendapatkan sinyal asal dengan tiga tingkatan digambarkan pada Gambar 2.3. Gambar 2.3 Rekonstruksi Wavelet 3 Tingkat 2.4 Koefisien Korelasi Pearson product-moment correlation coefficient (dinotasikan dengan r) adalah ukuran korelasi (ketergantungan linear) antara 2 variabel x dan y , dengan memberikan nilai +1 dan -1 secara inklusif. Biasa dipakai dalam science untuk menentukan ukuran ketergantungan linear antara 2 variabel. Dikembangkan oleh Karl Pearson . Koefisien korelasi disebut juga Pearson r. Koefisien korelasi bernilai antara -1 dan 1. Nilai 1 berarti sebuah persamaan garis mendeskripsikan hubungan x dan y secara sempurna, di mana semua data terdapat pada garis yang mana y meningkat ketika x meningkat. Nilai -1 berarti semua data berada pada garis yang mana nilai y menurun ketika nilai x meningkat. Nilai 0 berarti tidak ada korelasi linear antara 2 varibel. Secara umum persamaan (Xi − X)(Yi − Y) jika dan hanya jika xj dan yj berada pada sisi yang sama dari mean masing-masing. Koefisien korelasi positif jika xj dan yj cendderung berada pada sisi yang sama dari mean mereka. Koefisien korelasi negative jika xj dan yj cenderung berada pada sisi yang berlawanan dari mean mereka. 2.4 Java Programming Java adalah bahasa programmeran yang sudah umum penggunaannya dan dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystemssaat ini merupakan bagian dari Oracle dan dirilis tahun1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code(bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa programmeran yang bersifat umum/non-spesifik (general purpose), dan secara khusus didesain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa programmeran yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web. 2.4.1 Java system Platform Java terdiri dari kumpulan library, JVM, kelas- kelas loader yang dipaket dalam sebuah lingkungan rutin Java, dan sebuah compiler, debuger, dan perangkat lain yang dipaket dalam Java Development Kit (JDK). Java2 adalah generasi yang sekarang sedang berkembang dari platform Java. Agar sebuah program Java dapat dijalankan, maka file dengan ekstensi ''.java'' harus dikompilasi menjadi file bytecode. Untuk menjalankan bytecode tersebut dibutuhkan JRE ( Java Runtime Environment) yang memungkinkan pemakai untuk menjalankan program Java, hanya menjalankan, tidak untuk membuat kode baru lagi. JRE berisi JVM dan library Java yang digunakan. Platform Java memiliki tiga buah edisi yang berbeda, yaitu J2EE ( Java2 Enterprose Edition), J2ME ( Java2 Micro Edition) dan J2SE ( Java2 Second Edition). 2.4.2 Kelebihan Bahasa Java a. Multiplatform. Kelebihan utama dari Java adalah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini programmer cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk menginterpretasikan bytecode tersebut. b. OOP (Object Oriented Programming - Programmer Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemprograman berbasis objek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan programmer untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemprograman termudah, bahkan untuk fungsi-fungsi yang advance terkenal dengan seperti komunikasi antara komputer sekalipun. c. Perpustakaan Kelas Yang Lengkap, Java kelengkapan library/perpustakaan(kumpulan program-program yang disertakan dalam programmeran java) yang sangat memudahkan dalam penggunaan oleh para programmer untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. d. Bergaya C++, memiliki sintaks seperti bahasa programmeran C++ sehingga menarik banyak programmer C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah programmer C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. e. Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para programmer tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). Alasan memakai Java untuk design dan pengembangan projek adalah karena Java adalah bahasa programmeran populer yang dapat dijalankan di banyak platform dan juga merupakan bahasa programmeran OOP yang mempunyai ribuan kelas dengan fungsinya masing-masing. Java juga merupakan bahasa programmeran yang compatible dengan berbagai macam sistem operasi, sehingga user dengan sistem operasi apapun dapat menggunakan program aplikasi ini