• Tidak ada hasil yang ditemukan

Perancangan dan Implementasi Aplikasi Deteksi Kemiripan Citra Digital Menggunakan Algoritma Shingling dan Redundant Pixel Removal Artikel Ilmiah

N/A
N/A
Protected

Academic year: 2021

Membagikan "Perancangan dan Implementasi Aplikasi Deteksi Kemiripan Citra Digital Menggunakan Algoritma Shingling dan Redundant Pixel Removal Artikel Ilmiah"

Copied!
24
0
0

Teks penuh

(1)

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

Salatiga

2016

(2)

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

Salatiga

2016

(3)
(4)
(5)
(6)
(7)
(8)

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)

(9)

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

Penelitian tentang deteksi kemiripFFan yang pernah dilakukan adalah "A Digest and Pattern Matching-Based Intrusion Detection Engine" [3]. Pada penelitian tersebut dipaparkan suatu masalah yaitu intrusion detection/preventation system (IDS/IPS) pada jaringan komputer. IDS/IPS bekerja dengan bergantung pada signature database dan pattern matching (PM). Untuk melakukan pencocokan pola (PM) dengan data yang lewat pada jaringan komputer digunakan algoritma Boyer-Moore. Hasil ekperimen menghasilkan kesimpulan bahwa dengan membangkitkan nilai Fingerprint, proses pencarian menjadi lebih cepat. Pada penelitian tersebut nilai Fingerprint dibangkitkan dengan menggunakan teknik Rabin-Fingerprint Perbedaan antara penelitian tersebut dengan penelitian yang dilakukan ini adalah pada penelitian ini bertujuan untuk mencari kemiripan antara dua dokumen, bukan paket data jaringan komputer, dan algoritma MD5 digunakan untuk membangkitkan nilai Fingerprint. Pada penelitian yang berjudul "Identifying and Filtering Near-Duplicate Documents", dibahas tentang masalah mendeteksi kemiripan halaman web satu dengan web yang lain, pada proses web indexing skala besar yang dilakukan oleh AltaVista search engine [4]. Andrei Broder mengajukan algoritma untuk menyaring near-duplicate documents, dan sudah diimplementasikan selama

(10)

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 fingerprint. Proses shingling ini akan menghasilkan himpunan yang berisi sejumlah fingerprint. Himpunan ini kemudian dibandingkan dengan himpunan yang dihasilkan dari dokumen kedua. Nilai kemiripan diperoleh dengan cara membagi jumlah fingerprint yang sama (intersection) dari dua dokumen dengan

(11)

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 True Color image. Suatu true colour image memiliki komponen red, green dan blue yang terpisah untuk tiap pikselnya. Pada sebagian besar true colour image, tiap komponen diwakilkan dengan satu byte yang terdiri dari 8 bit, sehingga setiap piksel memiliki 24 bit informasi warna. Oleh karena itu, mode ini sering disebut sebagai “24-bit warna”. Pada Gambar 1 ditunjukkan contoh potongan dari file gambar. Potongan ini memiliki dimensi 6 x 6 piksel.Pada tiap piksel terdapat tiga bagian warna yaitu red, green dan blue. Pada lokasi piksel 1,1 terdapat warna red bernilai 96, green bernilai 143, dan blue bernilai 179. Pada lokasi piksel 1,2 terdapat warna red 61, green 125, dan green 198[9].

(12)

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

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan literatur, (2) Perancangan sistem, (3) Implementasi sistem yaitu Membangun aplikasi/program, dan (4) Pengujian sistem dan analisis hasil pengujian.

(13)

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 Piksel

(14)

6 Mulai Gambar A Gambar B Proses membentuk Shingle Proses membentuk Shingle Hitung Kemiripan = intersection/union x 100% Selesai Hitung nilai intersection

Hitung nilai union

Hapus Redundant Piksel Hapus Redundant Piksel

Mulai Himpunan piksel (K) Nilai gram (q) Perulangan sebanyak K Buat shingle Hitung fingerprint Selesai True False

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-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 byte (1 piksel terdapat warna R, G, B) = 60 byte. 60 byte tersebut jika dihitung nilai fingerprint dengan MD5, menghasilkan nilai hash 16 byte (128 bit).

(15)

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 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) Citra Digital B 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 8 Susunan Piksel Citra Digital A

Disusun Berurutan

Gambar 9 Susunan Piksel Citra Digital B

(16)

8

Proses redundant pixel removing kemudian dilakukan pada susunan piksel tiap citra digital tersebut. Hasil dari proses tersebut menghasilkan nilai-nilai piksel ini: Citra Digital A (semula) 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) Citra Digital A (sesudah) RGB (200,100,100) RGB (100,200,120) 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 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 (semula) 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) Citra Digital B (sesudah) RGB (200,100,100) RGB (40,40,40) RGB (100,200,120) RGB (50,50,50) RGB (100,200,120) RGB (200,100,100) RGB (100,200,120) RGB (40,40,40) RGB (100,200,120) RGB (200,100,100) RGB (100,200,120)

Gambar 12 Susunan Piksel Citra Digital B

sebelum proses redundant pixel removing

Gambar 13 Susunan Piksel Citra Digital

B Setelah Proses redundant pixel removing

Shingle-shingle kemudian dibentuk berdasarkan hasil removal pada Gambar 11 dan Gambar 13. Pada contoh ini nilai gram yang digunakan adalah 2, dengan tujuan untuk menyederhanakan contoh. Pada tiap shingle, kemudian dihitung nilai fingerprint dengan menggunakan algoritma MD5.

(17)

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 digital A (Tabel 1) dan juga berada di citra digital B dari Tabel 1 dan Tabel 2 (Tabel 2).

1E371AC53749600F9DCD6519031A62DE 5166A20435CCC3DAECDFC7DE1A2E2C6C 135F34EE36C547F5BB93E1BB5F4BF2A7

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 5166A20435CCC3DAECDFC7DE1A2E2C6C 135F34EE36C547F5BB93E1BB5F4BF2A7 78D4EE3D58CCEA81770A469E02E6F2BB 599428928438677F7BABC8A6574AF047 73D2E7A4A52C1C0C74916C22F0FDBD4B 714F15BFCFC1ADCD79525FD7B9FF9947 39EDF78E5049C842DA8B6592D6910B54

Nilai kemiripan yaitu jumlah perpotongan dibagi jumlah gabungan dikalikan 100 %.

(3 / 8) x 100% = 37.5%.

Jadi citra digital A dan citra digital B memiliki nilai kemiripan sebesar 37.5%.

(18)

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);

(19)

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

(20)

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

(21)

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 66%

(22)

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.

(23)

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.

[10]. Microsoft 2015. Overview of the .NET Framework. https://msdn.microsoft.com/id-id/library/zw4w595w(v=vs.110).aspx.

(24)

16 Diakses pada 4 November 2015.

Gambar

Gambar 1 Komponen RGB pada File Gambar 24 Bit Warna[9]
Gambar 2 Tahapan Penelitian
Gambar 4 Perhitungan Prosentase Kemiripan File  Gambar
Gambar 6 Susunan Piksel Citra Digital A
+7

Referensi

Dokumen terkait

Dengan keterbatasan fiskal yang ada dalam pendanaan pembangunan infrastruktur permukiman serta program-program kegiatan pembangunan yang telah direncanakan, pemerintah

Menurut BKKBN terdapat beberapa alasan drop out dan alasan-alasan tersebut antara lain: Takut efek samping dari program yang digunakan , menginginkan kehamilan,

“Analisis Pengaruh Faktor Perusahaan, Kualitas Auditor, Kepemillikan Perusahaan terhadap Penerimaan Opini Going Concern .” Paper disajikan pada Simposium Nasional

Sujud syukur penulis ucapkan kepada Allah SWT, atas Ridho yang telah diberikan kepada penulis hingga dapat menyelesaikan karya tulis ilmiah/tugas akhir

Jika kita melihat di tahun 2009 hingga tahun 2011, nilai indeks rasionya semakin menurun, hal ini mengindikasikan bahwa kinerja penjualan kurang begitu baik jika

peraturan perundang-undangan men^enai peninjauan kembali dalam bidang hukum acara perdata dan pidana, mengeluarkan Peraturan Mahkamah Agung no. Bahwa oleh karena itu,

HUBUNGAN ANTARA WORK-FAMILY CONFLICT DENGAN KEPUASAN HIDUP PADA PERAWAT PEREMPUAN BAGIAN RAWAT INAP DI RUMAH SAKIT UMUM (RSU) “A” KOTA CIMAHI.. Universitas Pendidikan

[r]