Perancangan dan Implementasi Aplikasi Deteksi
Kemiripan Citra Digital Menggunakan Algoritma
Shingling
dan
Redundant
Pixel Removal
Artikel Ilmiah
Peneliti:
Andry Vegard Sariwating (672010147) Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi Aplikasi Deteksi
Kemiripan Citra Digital Menggunakan Algoritma
Shingling
dan
Redundant Pixel Removal
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh gelar Sarjana Komputer
Peneliti:
Andry Vegard Sariwating (672010147) Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi Aplikasi Deteksi Kemiripan Citra
Digital Menggunakan Algoritma
Shingling
dan
Redundant Pixel
Removal
1)
Andry Vegard Sariwating, 2) M. A. Ineke Pakereng
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 1)672010147@student.uksw.edu, 2) inekep200472@yahoo.com
Abstract
Detection of digital image similarity is required to avoid the accumulation of information in a database or file system, to detect plagiarism, for grouping pictures, and a variety of other purposes. Shingling algorithm is used for the process of finding near-duplicate document. Redundant pixel removal is a technique to ignore / delete pixels that have the same value, which adjacent, in a digital image, so that the detection process can be minimized. In this study, shingling algorithm is implemented to detect similarities digital image. The test results indicate that the application can detect the similarity image that has been through various manipulations such as scaling (enlarge / reduce), rotation, cropping (cut part), and pixel manipulation.
Keywords: Shingling, Near Duplicate Detection, Redundant Pixel Removal
Abstrak
Deteksi kemiripan citra digital diperlukan untuk menghindari penumpukan informasi pada suatu database atau file sistem, untuk mendeteksi plagiasi, untuk pengelompokan gambar, dan berbagai keperluan yang lain. Algoritma Shingling merupakan algoritma yang digunakan untuk proses pencarian near-duplicate document. Redundant pixel removal adalah teknik untuk mengabaikan/menghapus piksel-piksel yang memiliki nilai sama, yang terletak bersebelahan, pada suatu citra digital, sehingga proses deteksi dapat diminimalisasi. Pada penelitian ini, algoritma shingling diimplementasikan untuk mendeteksi kemiripan citra digital. Hasil pengujian menunjukkan bahwa aplikasi yang dibuat, dapat mendeteksi kemiripan gambar yang telah melalui berbagai manipulasi yaitu scaling (perbesar/perkecil), rotasi, cropping (potong sebagian), dan manipulasi piksel.
Kata Kunci: Shingling, Deteksi Kemiripan, Redundant Pixel Removal
1)Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya
Wacana
2)
1 1. Pendahuluan
Kemudahan dalam menyalin informasi dari satu informasi ke tempat yang lain merupakan salah satu efek dari kemajuan teknologi informasi. Citra digital, sebagai salah satu bentuk informasi digital, dapat disalin, diubah, diambil sebagian, menjadi satu file yang baru. Deteksi kemiripan citra digital diperlukan untuk menghindari penumpukan informasi pada suatu database atau file sistem, untuk mendeteksi plagiasi, untuk pengelompokan gambar, dan berbagai keperluan yang lain.
Algoritma Shingling merupakan algoritma yang ditemukan oleh Andrei Broder [1]. yang digunakan untuk proses pencarian near-duplicate document. Algoritma shingling bekerja dengan cara memotong-motong teks menjadi kumpulan kata, dan membangkitkan suatu nilai unik (fingerprint) untuk tiap kumpulan kata. Algoritma hash dapat digunakan untuk membangkitkan
fingerprint [2].
Redundant pixel removal adalah teknik untuk mengabaikan/menghapus piksel-piksel yang memiliki nilai sama, yang terletak bersebelahan, pada suatu citra digital. Cara ini diperlukan ketika membandingkan dua citra digital yang berasal dari satu sumber, namun memiliki ukuran dimensi berbeda, dengan kata lain citra digital yang kedua merupakan hasil scaling (diperbesar/diperkecil) dari citra digital yang pertama.
Pada penelitian ini, algoritma shingling diimplementasikan untuk mendeteksi kemiripan citra digital. Shingle yang diproses merupakan potongan dari piksel-piksel pada citra digital. Piksel-piksel yang redundant dihilangkan terlebih dahulu, sehingga dapat mempercepat proses pembandingan.
2. Tinjauan Pustaka
2
kurang lebih tiga tahun pada AltaVista. Document yang dibandingkan disederhanakan dalam bentuk set, melalui proses shingling. Pada penelitian tersebut, satu Shingle terdiri dari 4 kata, sehingga disebut 4-shingling. Setiap
Shingle dibangkitkan sebuah Fingerprint untuk kemudian dibandingkan dengan nilai Fingerprint dari Shingle pada dokumen kedua.Algoritma yang digunakan untuk membangkitkan nilai Fingerprint adalah Rabin's Fingerprint. Rabin's membangkitkan nilai Fingerprint sebesar 64 bit (8 byte). Berbeda dengan penelitian yang dilakukan ini, nilai Fingerprint diperoleh dengan cara membangkitkan nilai hash dari tiap Shingle. Algoritma yang digunakan adalah MD5. MD5 membangkitkan nilai hash sebesar 128 bit, bukan 64 bit. Nilai yang lebih panjang ini dimaksudkan untuk menghindari nilai hash yang sama dari dua
Shingle yang berbeda.
Pada penelitian yang berjudul “Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital”, disebutkan tentang perlunya pengamanan pengiriman pesan melalui jaringan Internet. Pada penelitian tersebut digunakan media gambar sebagai cover. Hasil penelitian tersebut adalah sebuah aplikasi steganografi dengan algoritma LSB Embedding, yang dapat menyembunyikan pesan, sehingga orang lain tidak menyadari keberadaan pesan di dalam media [5]. Berbeda dengan penelitian ini adalah, pada penelitian ini, proses dipilih pada lokasi yang memberikan perubahan paling minimal. Sehingga kerusakan (perubahan) pada cover menjadi tidak semakin mencurigakan, untuk mencapai salah satu tujuan steganografi.
Berdasarkan penelitian-penelitian yang telah dilakukan tentang deteksi kemiripan dokumen teks, plagiasi, algoritma pencarian string dan teknik
fingerprint, maka dilakukan penelitian yang bertujuan untuk merancang aplikasi deteksi kemiripan citra digital dengan mengimplementasikan algoritma Shingling
dan redundant pixel removal. Batasan masalah dalam penelitian ini adalah sebagai berikut: (1) Citra digital yang dibandingkan memiliki format true color image; (2) Algoritma shingling digunakan untuk membandingkan dua citra digital berdasarkan kumpulan piksel (shingle) yang terbentuk dari kedua citra digital; (3) Algoritma redundant pixel removal digunakan untuk menghapus piksel bersebelahan yang mirip pada satu citra digital.
Penelitian yang dilakukan membahas tentang near-duplicate dan
plagiarism. Plagiarism secara sederhana adalah merepresentasikan ide orang lain, sebagai ide milik sendiri, baik terjadi secara sengaja maupun secara kebetulan [6].
Near-duplicate adalah kondisi ketika dua dokumen memiliki isi yang sama, berbeda pada berberapa kata atau susunan kata [7].
Algoritma Shingling merupakan algoritma yang ditemukan oleh Andrei Broder[4]. Algoritma ini bekerja dengan cara membuat sebuah shingle yang berisi beberapa kata dengan jumlah yang tetap. Angka yang menentukan jumlah kata dalam satu shingle ini disebut gram. Pada tiap shingle dibangkitkan nilai
3
jumlah fingerprint gabungan (union). Proses perhitungan tersebut didefinisikan sebagai berikut[4]:
r A, B =| S S ||S S | (1)
Persamaan 1 Rumus Nilai Kemiripan [4]
Algoritma Shingling dilakukan melalui beberapa langkah berikut [4]: 1. Hilangkan tanda baca pada dokumen.
2. Dimulai dengan kata pertama, buat satu shingle berisi kata pertama tersebut sampai 3 kata berikutnya.
3. Pindah ke kata kedua, buat shingle berisi kata kedua dan 3 kata berikutnya.
4. Lakukan pembentukan shingle sampai dengan 4 kata terakhir dari dokumen tersebut.
5. Untuk tiap shingle, bangkitkan nilai fingerprint.
6. Lakukan langkah 1 sampai dengan 5 untuk dokumen kedua.
7. Gunakan rumus nilai kemiripan dokumen (Persamaan 1) untuk menghitung nilai kemiripan dokumen.
Nilai fingerprint pada penelitian ini dihitung dengan menggunakan algoritma MD5. MD5 (Message-Digest Algorithm 5) ialah fungsi hash kriptografi yang digunakan secara luas dengan hashvalue 128-bit [2]. MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas (fingerprint) sebuah
file.MD5 didesain oleh Ronald Rivest pada tahun 1991 untuk menggantikan
hashfunction sebelumnya, yaitu MD4. Hashvalue yang dihasilkan oleh MD5 memiliki panjang 128-bit (16 byte), sekalipun input (pesan) yang digunakan memiliki panjang yang bervariasi. Hashvalue berubah signifikan sekalipun perubahan yang terjadi pada input hanya 1 byte.
Algoritma Shingling yang ditemukan oleh Broder, menggunakan fingerprint
dengan panjang 64 bit. Panjang fingerprint 64 bit untuk tiap shingle memiliki resiko yaitu dihasilkannya fingerprint yang sama untuk shingle yang berbeda. Hal ini disebut dengan collision vulnerabilities [8]. Untuk menghindari kemungkinan
collision, maka digunakan fingerprint dengan panjang yang lebih dari 64 bit. Berdasarkan tujuan tersebut maka algoritma MD5 digunakan untuk menghasilkan
fingerprint dengan panjang 128 bit.
Pada penelitian ini, format file citra digital yang digunakan adalah PNG. PNG merupakan TrueColorimage. Suatu true colour image memiliki komponen
4
Gambar 1 Komponen RGB pada File Gambar 24 Bit Warna[9]
Microsoft .NET Framework merupakan sebuah perangkat lunak kerangka kerja yang berjalan pada sistem operasi Microsoft Windows. Saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang dibuat di atas .NET secara teoritis dapat berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows [10]. Pada penelitian ini, .NET Framework digunakan untuk membangun aplikasi deteksi kemiripan. Beberapa pustaka pemrograman yang digunakan adalah pustaka untuk membuat
Graphical User Interface (GUI), dan pustaka pemrosesan gambar (Bitmap). 3. Metode dan Perancangan Sistem
5
Identifikasi Masalah dan Studi Literatur
Perancangan Sistem
Implementasi Sistem
Pengujian S istem dan Analisi s Hasil Pengujian
Gambar 2 Tahapan Penelitian
Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut.
Tahap pertama: identifikasi masalah dan literatur, yaitu keamanan citra digital.
Tahap kedua: perancangan sistem yang meliputi perancangan sistem deteksi kemiripan citra digital; Tahap ketiga: implementasi sistem, yaitu membuat aplikasi sesuai perancangan sistem pada tahap kedua; dan Tahap keempat:
pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya.
Gambar 3 Desain Sistem
Sistem yang dikembangkan, memiliki desain yang ditunjukkan pada Gambar 3. Sistem terdiri dari dua input yaitu file gambar A dan file gambar B. Hasil deteksi kedua file gambar tersebut adalah berupa angka prosentase kemiripan.
Gambar A
Gambar B
Hapus Piksel Redundant
Buat Shingle berisi N
Piksel
Hitung Union dan Intersection
Hitung Prosentase
Kemiripan
Hapus Piksel Redundant
Buat Shingle berisi N
6
Hapus Redundant Piksel Hapus Redundant Piksel
Mulai
Gambar 4 Perhitungan Prosentase Kemiripan File Gambar
Gambar 5 Shingle dan Fingerprint
Proses perhitungan prosentase kemiripan file gambar secara garis besar ditunjukkan pada Gambar 4. Proses pembandingan memerlukan dua input file citra digital. Pada tiap file citra digital, dilakukan proses penghapusan piksel-piksel yang berlebihan (redundant). Piksel redundant adalah piksel yang memiliki nilai yang sama dengan nilai sebelumnya. Tujuan dari proses ini adalah untuk mengurangi shingle yang terbentuk, dan mempercepat proses pembandingan. Jumlah shingle yang terbentuk bergantung pada jumlah piksel yang ada pada suatu citra digital. Semakin sedikit piksel, maka semakin sedikit pula shingle yang dihasilkan. Semakin sedikit shingle yang dihasilkan, maka semakin cepat proses pembandingan. Penghapusan piksel redundant juga bertujuan untuk membandingkan dua file citra digital yang sama, namun berbeda ukuran dimensi karena hasil scaling (citra digital diperbesar/diperkecil).
Proses pembentukan shingle dilakukan setelah proses penghapusan piksel
redundant. Langkah detail dari pembentukan shingle ditunjukkan pada Gambar 5. Jumlah piksel dalam satu shingle ditentukan oleh nilai gram. Nilai gram ditentukan oleh input user. Pada tiap shingle yang terbentuk, dihitung nilai
fingerprint.
Pembentukan nilai fingerprint bertujuan untuk memperkecil ukuran byte shingle yang akan dibandingkan. Sebagai contoh jika dalam satu shingle terdapat 20 piksel (variabel gram diberi nilai 20), maka dalam satu shingle terdapat 20 x 3
7
Membandingkan dua shingle yang berukuran 16 byte, tentu lebih cepat dari pada membandingkan dua shingle berukuran 60 byte.
Proses setelah terbentuk shingle untuk kedua gambar dan nilai fingerprint
untuk tiap-tiap shingle, yaitu menghitung jumlah shingle yang sama pada kedua gambar (intersection), dan jumlah gabungan shingle kedua gambar (union). Nilai kemiripan diperoleh dari nilai intersection dibagi dengan nilai union, dikalikan 100 persen.
Langkah-langkah pada flowchart di Gambar 4 dan Gambar 5, dapat dijelaskan dengan contoh proses deteksi kemiripan dua citra digital. Terdapat dua citra digital dengan nilai piksel ditunjukkan pada Gambar 6 dan Gambar 7.
RGB (200,100,100) RGB (100,200,120) RGB (40,40,40)
RGB (40,40,40) RGB (200,100,100) RGB (100,200,120)
RGB (40,40,40) RGB (200,100,100) RGB (100,200,120)
Gambar 6 Susunan Piksel Citra Digital A
RGB (200,100,100) RGB (200,100,100) RGB (40,40,40)
RGB (40,40,40) RGB (100,200,120) RGB (100,200,120)
RGB (50,50,50) RGB (50,50,50) RGB (100,200,120)
RGB (200,100,100) RGB (200,100,100) RGB (100,200,120)
RGB (40,40,40) RGB (40,40,40) RGB (100,200,120)
RGB (200,100,100) RGB (200,100,100) RGB (100,200,120)
Gambar 7 Susunan Piksel Citra Digital B
Piksel pada citra digital A disusun secara berurutan maka terbentuk deretan piksel yang ditunjukkan pada Gambar 8. Piksel pada citra digital B, menghasilkan deretan piksel ditunjukkan pada Gambar 9.
Citra Digital A
Gambar 8 Susunan Piksel Citra Digital A Disusun Berurutan
8
Proses redundant pixel removing kemudian dilakukan pada susunan piksel tiap citra digital tersebut. Hasil dari proses tersebut menghasilkan nilai-nilai piksel ini:
Gambar 10 Susunan Piksel Citra Digital A sebelum proses redundant pixel removing
Gambar 11 Susunan Piksel Citra Digital A Setelah Proses redundant pixel removing
Citra Digital B
Gambar 12 Susunan Piksel Citra Digital B sebelum proses redundant pixel removing
Gambar 13 Susunan Piksel Citra Digital B Setelah Proses redundant pixel
removing
9
Tabel 1 Hasil Shingle dan Fingerprint pada Contoh Citra Digital A
Shingle Isi Shingle Fingerprint (MD5)
1 RGB (200,100,100) RGB (100,200,120) 1E371AC53749600F9DCD6519031A62DE
2 RGB (100,200,120) RGB (40,40,40) 135F34EE36C547F5BB93E1BB5F4BF2A7
3 RGB (40,40,40) RGB (200,100,100) 78D4EE3D58CCEA81770A469E02E6F2BB
4 RGB (200,100,100) RGB (100,200,120) 1E371AC53749600F9DCD6519031A62DE
5 RGB (100,200,120) RGB (40,40,40) 135F34EE36C547F5BB93E1BB5F4BF2A7
6 RGB (40,40,40) RGB (200,100,100) 78D4EE3D58CCEA81770A469E02E6F2BB
7 RGB (200,100,100) RGB (100,200,120) 1E371AC53749600F9DCD6519031A62DE
8 RGB (100,200,120) RGB (200,100,100) 5166A20435CCC3DAECDFC7DE1A2E2C6C
Tabel 2 Hasil Shingle dan Fingerprint pada Contoh Citra Digital B
Shingle Isi Shingle Fingerprint (MD5)
1 RGB (200,100,100) RGB (40,40,40) 599428928438677F7BABC8A6574AF047
2 RGB (40,40,40) RGB (100,200,120) 73D2E7A4A52C1C0C74916C22F0FDBD4B
3 RGB (100,200,120) RGB (50,50,50) 714F15BFCFC1ADCD79525FD7B9FF9947
4 RGB (50,50,50) RGB (100,200,120) 39EDF78E5049C842DA8B6592D6910B54
5 RGB (100,200,120) RGB (200,100,100) 5166A20435CCC3DAECDFC7DE1A2E2C6C
6 RGB (200,100,100) RGB (100,200,120) 1E371AC53749600F9DCD6519031A62DE
7 RGB (100,200,120) RGB (40,40,40) 135F34EE36C547F5BB93E1BB5F4BF2A7
8 RGB (40,40,40) RGB (100,200,120) 73D2E7A4A52C1C0C74916C22F0FDBD4B
9 RGB (100,200,120) RGB (200,100,100) 5166A20435CCC3DAECDFC7DE1A2E2C6C
10 RGB (200,100,100) RGB (100,200,120) 1E371AC53749600F9DCD6519031A62DE
11 RGB (100,200,120) RGB (200,100,100) 5166A20435CCC3DAECDFC7DE1A2E2C6C
Perpotongan (intersection), adalah nilai fingerprint yang berada di citra
Gabungan (union) diperoleh dengan cara menggabungkan nilai fingerprint
citra digital A dan citra digital B, namun hanya nilai unik saja, sehingga tidak ada nilai fingerprint yang muncul lebih dari satu kali.
1E371AC53749600F9DCD6519031A62DE
Nilai kemiripan yaitu jumlah perpotongan dibagi jumlah gabungan dikalikan 100 %.
(3 / 8) x 100% = 37.5%.
10 4. Hasil dan Pembahasan
Pengembangan aplikasi dilakukan dengan menggunakan Visual Studio 2012 Express for Desktop. Visual Studio 2012 Express for Desktop merupakan satu dari serangkaian produk Microsoft yang dapat digunakan tanpa harus membayar lisensi. Di dalam Visual Studio sudah termasuk kerangka kerja pemrograman .Net Framework 4.5. Pustaka ini menyediakan pustaka-pustaka yang dapat digunakan untuk mengolah gambar, melakukan enkripsi/dekripsi, dan lain sebagainya.
Gambar 14 Hasil Deteksi Gambar 100% Mirip
Gambar 15 Hasil Deteksi Gambar 88.67% Mirip Hasil Proses Flip
Kode Program 1 Perintah untuk membentuk suatu shingle
1. for (int i = 0; i < jumlahShingle; i++)
2. {
3. byte[] shingle = new byte[gram];
4. Array.Copy(words, i,
5. shingle, 0, shingle.Length);
6. String hash = GetMd5Hash(md5,
7. string.Join(" ", shingle));
8. s.Add(hash);
9. }
Kode Program 1 merupakan perintah yang digunakan untuk membentuk suatu shingle. Panjang shingle ditentukan oleh variabel gram. Variabel ini bergantung dari masukan user.
Kode Program 2 Perintah untuk Menghitung Fingerprint
1. public static string GetMd5Hash(
2. MD5 md5Hash, byte[] pixels)
3. {
4. byte[] data = md5Hash.ComputeHash(pixels);
11
6. for (int i = 0; i < data.Length; i++)
7. {
8. sBuilder.Append(
9. data[i].ToString("x2"));
10. }
11. return sBuilder.ToString();
12.}
Pada Kode Program 2, untuk membangkitkan nilai fingerprint dari suatu
shingle, digunakan algoritma MD5 (baris 13). Pada .Net Framework, tersedia
class MD5, yang berfungsi untuk membangkitkan nilai hash/fingerprint dari
inputstring. Class MD5 yang tersedia mengakibatkan proses pengembangan aplikasi menjadi lebih cepat karena tidak perlu menulis kode program sendiri. Selain itu, implementasi MD5 pada .Net Framework memberikan jaminan bahwa
library tersebut berjalan optimal dalam sistem operasi Microsoft Windows. Kode Program 3 Perintah untuk Menghitung Nilai Prosentase Kemiripan
1 var fA = Fingerprints(docA);
2 var fB = Fingerprints(docB);
3 var intersect = fA.Intersect(fB);
4 var union = fA.Union(fB);
5 return
6 (float)intersect.Count()/(float)union.Count();
Untuk menghitung nilai kemiripan dua citra digital sesuai dengan Persamaan 1, digunakan fungsi Intersect (baris 3) dan Union (baris 4). Kedua fungsi tersebut dapat digunakan pada sebuah variabel bertipe array (himpunan).
Intersect merupakan fungsi untuk mencari elemen-elemen yang merupakan anggota dua himpunan. Union merupakan fungsi untuk menggabungkan dua himpunan. Menggunakan dua fungsi tersebut, maka dapat diperoleh angka kemiripan, yaitu dengan membagi angka jumlah himpunan hasil dari Intersect, dengan angka jumlah himpunan hasil Union.
Beberapa pengujian dilakukan pada aplikasi untuk mengetahui hasil deteksi kemiripan gambar. Pengujian 1 yaitu pengujian gambar yang diskalakan (diperbesar/diperkecil). Hasil pengujian 1 ditunjukkan pada Tabel 3.
Tabel 3 Hasil Pengujian 1
No Gambar A Gambar B Keterangan Hasil Deteksi Kemiripan
12
2. Skala 150% 70%
3. Skala 200% 68%
4. Skala 80% 72%
5.
Skala 50% 70%
6. Skala 25% 68%
Berdasarkan hasil pengujian 1, aplikasi dapat mendeteksi kemiripan gambar yang diperbesar/diperkecil, sampai dengan 72%.
Pengujian 2 yaitu pengujian gambar yang diputar. Pengujian dilakukan terhadap beberapa gambar, yang dilakukan rotasi beberapa kali. Hasil pengujian 2 ditunjukkan pada Tabel 4.
Tabel 4 Hasil Pengujian 2
No Gambar A Gambar B Keterangan Hasil Deteksi
Kemiripan
1. Rotasi Kanan
90 derajat
13
2. Rotasi Kiri
90 derajat
57%
3. Rotasi
180 derajat
78%
4. Flip
Horisontal
79%
5. Flip
Vertikal
88%
Berdasarkan hasil pengujian 2, aplikasi dapat mendeteksi kemiripan gambar hasil rotasi sampai dengan 88%.
Pengujian 3 yaitu pengujian gambar yang dipotong sebagian. Pengujian dilakukan terhadap beberapa gambar, yang dipotong secara bervariasi. Hasil pengujian 3 ditunjukkan pada Tabel 5.
Tabel 5 Hasil Pengujian 3
No Gambar A Gambar B Keterangan Hasil
Deteksi Kemiripan
1. Crop 50x50
piksel
96%
2. Crop 75x75
piksel
91%
3. Crop
100x100 piksel
85%
4. Crop
150x150 piksel
14
5. Crop
200x200 piksel
39%
Berdasarkan hasil pengujian 3, aplikasi dapat mendeteksi kemiripan gambar yang dipotong, sampai dengan 96%. Nilai kemiripan bergantung pada berapa besar bagian gambar yang hilang karena dipotong.
Pengujian 4 yaitu pengujian gambar yang diubah (manipulasi) sebagian. Pengujian dilakukan terhadap beberapa gambar yang dimanipulasi pada posisi yang berbeda-beda. Hasil pengujian 4 ditunjukkan pada Tabel 6.
Tabel 6 Hasil Pengujian 4
No Gambar A Gambar B Keterangan Hasil Deteksi
Kemiripan
1. Diberi tulisan 96%
2. Dimanipulasi 92%
3. Dimanipulasi 86%
4. Overlay 92%
5. Grayscale 25%
Berdasarkan hasil pengujian 4, aplikasi dapat mendeteksi kemiripan gambar yang diubah nilai pikselnya, sampai dengan 96%. Nilai kemiripan bergantung pada besarnya piksel yang dimanipulasi.
15
Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) Deteksi kemiripan gambar dapat dilakukan dengan membandingkan nilai-nilai piksel gambar tersebut, dengan membentuk shingle-shingle; (2) Untuk memperkecil jumlah piksel dan shingle
yang dibandingkan, maka dilakukan penghapusan piksel-piksel yang redundan. Piksel redundan adalah piksel yang bernilai sama dengan piksel sebelumnya; (3) Aplikasi dapat mendeteksi kemiripan gambar yang telah melalui berbagai manipulasi yaitu scaling (perbesar/perkecil), rotasi, cropping (potong sebagian), dan manipulasi piksel.
Saran yang dapat diberikan untuk penelitian dan pengembangan lebih lanjut adalah proses pembentukan fingerprint dapat menggunakan algoritma hash yang lain. Tiap algoritma hash seperti CRC, MD5, SHA dan lain-lain memiliki keunggulan masing-masing. Aplikasi yang dihasilkan pada penelitian ini dapat dimanfaatkan untuk deteksi kemiripan foto, sebagai contoh pada bagian imigrasi, pencarian orang hilang, dan lain sebagainya. Proses pembandingan juga dapat mengabaikan bitplane yang rendah, semisal 4 bit paling kiri. Jadi proses pembandingan hanya dilakukan pada 4 bit terdepan, sehingga dapat mengurangi banyaknya data yang dibentuk menjadi shingle, dan juga mempercepat proses deteksi kemiripan.
6. Daftar Pustaka
[1]. Montanari, D. & Puglisi, P. L. 2012. Near duplicate document detection for large information flows. In Multidisciplinary Research and Practice for Information Systems, pp. 203–217. Springer.
[2]. Walia, A. G. N. K. 2014. Cryptography Algorithms: A Review. International Journal of Engineering Development and Research
[3]. Chen, Z., Zhang, Y. & Delis, a. 2009. A Digest and Pattern Matching-Based Intrusion Detection Engine. The Computer Journal 52, 699–723. (doi:10.1093/comjnl/bxp026)
[4]. Broder, A. 2000. Identifying and filtering near-duplicate documents. Combinatorial pattern matching , 1–10.
[5]. Alatas, P. 2009. Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital. Universitas Gunadarma
[6]. Fowler, H. R., Aaron, J. E. & others 2007. The little, brown handbook. Pearson Longman.
[7]. Stein, B., Koppel, M. & Stamatatos, E. 2007. Plagiarism analysis, authorship identification, and near-duplicate detection PAN’07. In ACM SIGIR Forum, pp. 68–71.
[8]. Wang, G. 2011. Collision attack for the hash function extended MD4. In Information and Communications Security, pp. 228–241. Springer.
[9]. Parvez, M. T. & Gutub, A. A.-A. 2008. RGB Intensity Based Variable-Bits Image Steganography. IEEE Asia-Pacific Services Computing Conference , 1322–1327.