Algoritma Manber untuk Deteksi Plagiarisme

By | January 14, 2021
Print Friendly, PDF & Email
914 Views

Dunia digital telah menawarkan kemudahan proses BAJAK atau juga bisa sering disebut plagiat! Karena begitu mudah dan cepatnya format digital tersebut di copy pastekan, tentu ada cara untuk mendeteksi kegiatan tersebut yaitu dengan menggunakan algoritma Manber. Algoritma ini menggunakan beberapa langkah yang sangat mudah. Langkah nya sebagai berikut

#Menghilangkan karakter selain huruf

misalkan ada kata = ini jln. no 45

Maka menjadi inijlnno

#menghitung k – gram

Misalkan saja kalimat = mulkan

Akan di windowing overlapping dengan nilai k = 3 atau sering disebut k-gram 3, maka overlapping hurufnya menjadi berikut

  1. mul
  2. ulk
  3. lka
  4. kan

#mencari nilai Hash untuk k-gram

Sebelum melakukan hal tersebut, anda harus mengetahui konversi string ke ascii

Berikut tabel dari karakter menjadi ascii dari karakter mulkan

m = 109, u = 117, l = 108, k = 107, a = 97, n = 110

sehingga

mul = 109,117,108

ulk = 117,108,107

dan seterusnya….

Rumus untuk mencari nilai hash dari k-gram sebagai berikut

    \[c1*b^{k-1}+c2*b^{k-2}+...+c(k-1)*b+c_k\]

Dengan

c : nilai ascii karakter
b : basis (bilangan prima)
k : banyak karakter

untuk contoh diatas, kalimat dari mul mempunyai panjang karakter

k = 3

kita akan menggunakan basis prima

b = 11 (anda bebas menggunakan angkanya, yang penting adalah bilangan prima)

sehingga hash untuk kalimat k-gram dari mul

109*11^2 + 117*11^1 +108*11^0 = 14584

Untuk kata dari ulk yaitu

117*11^2 +108*11^1+107*11^0 = 15452

Dan selanjutnya sehingga menjadi berikut

  1. mul = 14584
  2. ulk = 15452
  3. lka = 14342
  4. kan = 14124

#selanjutnya mencari nilai fingerprint

Fingerprint menggunakan aturan berikut nilai mod(hash,4) == 0

Sehingga dari

  1. mul = mod(14584, 4) = 0
  2. ulk = mod(15452, 4) = 0
  3. lka = mod(14342, 4) = 2
  4. kan = mod(14124, 4) = 0

maka fingerprint yang digunakan yang menghasilkan mod == 0

yaitu 1,3, dan 4

  1. 14584
  2. 15452
  3. 14124

Misakan kita akan mengkomparasi

Kalimat 1 = mulkan

Kalimat 2 = bejo pamungkas bagus mul mulkan

Dengan langkah yang sama seperti diatas akan menghasilkan berikut

Proses Teks 1 Teks 2
whitespace insensitivity mulkan…. bejopamungkasbagusmulmulkan….
k-gram mul ulk lka kan bej ejo jop opa pam amu mun ung ngk gka kas asb sba bag agu gus usm smu mul ulm lmu mul ulk lka kan
hash 14584 15452 14342 14124 13075 13498 14159 14760 14728 13053 14586 15470 14550 13737 14129 13100 15090 13028 12987 13865 15531 15231 14584 15454 14384 14584 15452 14342 14124
fingerprint 14584 15452 14124 14760 14728 13100 13028 14584 14384 14584 15452 14124
Jaccard Coefficient 37

 

Jika anda ingin mencoba menghitung presentasi coefficient kemiripannya bisa menggunakan Jaccard Coefficient

http://www.planetcalc.com/1664/

yaitu dengan membandingkan fingerprint dari kalimat 1 dan 2.

Berikut agar mudah, penulis menggunakan C# sebagai implementasi nya

Leave a Reply