## Analisis Dan Perancangan Software Pengukuran Kemiripan Kode
Program
Diah Rahmadhita Islami 1, *, Diaz Rizqi Aprilliando 2 , Ukhty Uswatun Hasanah 3 , Muhammad Ainul Yaqin 4
Jurusan Teknik Informatika, Universitas Islam Negeri Maulana Malik Ibrahim, Indonesia
1 mohammad1rahmadhita2000@gmail.com; 2 diazrizqi14@gmail.com; 3 uktyhasanah.24@gmail.com; 4 yaqinov@ti.uin- malang.ac.id; *corresponding author

## PENDAHULUAN
Pada saat ini, tidak sedikit universitas di Indonesia yang membuka program studi Teknik Informatika.  Di  jurusan  Teknik  Informatika  banyak  terdapat  mata  kuliah  tentang pemrograman komputer yang dilaksanakan oleh mahasiswa. mata kuliah pemrograman ini digunakan  untuk  mengasah  logika  para  mahasiswa  dalam  memecahkan  masalah.  Pada umumnya di setiap mata kuliah pemrograman dosen atau tenaga pengajar akan mengecek plagiarism dari kode program yang sudah dibuat oleh mahasiswa, akan tetapi banyak dari dosen atau tenaga pengajar yang merasa kesulitan untuk mengidentifikasi plagiarisme yang terdapat pada kode program yang sudah dibuat[1]. Untuk mencari plagiarism yang terdapat pada  kode  program  dibutuhkan  kesabaran  yang  lebih.  Meskipun  dalam  menemukan plagiarisme merupakan hal yang mungkin, akan tetapi hal tersebut memerlukan waktu yang cukup lama. Karena saat ini banyak dari mahasiswa yang lebih memperhitungkan tentang efektifitas  dan  efisiensi  untuk  mencapai  tujuan  yang  diharapkan  tanpa  harus  susah  payah membuat kode program sendiri jadi banyak sekali ditemukan kasus tentang plagiarism yang ada  pada  kode  program.  Tindakan-tindakan  yang  dianggap  sebagai  plagiarisme  terhadap kode program yaitu seperti mengambil kode program yang dimiliki orang lain pada bahasa pemrograman yang sama, seorang mahasiswa atau peneliti yang dengan sengaja menyuruh seseorang  untuk  membuatkan  program  yang  dibutuhkan  untuk  menyelesaikan  tugas pemrograman.
Menurut Burrow [2] pada metode pendeteksian ada dua kategori utama yaitu text-based dan code-based .  Untuk  sistem  yang  berbasis  kode  ada  dua  pendekatan  yang  digunakan, pendekatan itu adalah structure-oriented dan attribute-oriented . Untuk pengukuran program pada attribute-oriented code-based system  kesamaan  antara  program  diukur  dengan
I N F O A R T I K E L

## A B S T R A K
Sejarah Artikel Diterima: 23 Desember 2019 Direvisi: 16 April 2020 Diterbitkan: 30 Agustus 2020 Penelitian ini bertujuan untuk menganalisis data untuk mengelompokkan data dengan karakteristik yang sama ke suatu wilayah yang sama dan data dengan karakteristik yang berbeda ke wilayah yang lain.  Penelitian  ini  dibuat  dengan  menggunakan  algoritma Rabin  Karp dan metode K-Means . Penelitian ini akan dibuat dengan menganalisis dan perancangan  s oftware pengukuran  kemiripan  kode  program  hanya dengan  menginputkan  kode  program  yang  akan  di  cek  plagiarismenya kemudian  diurutkan  berdasarkan cluster yang  memiliki  karakteristik yang  sama.  Sehingga  data  dalam  satu cluster memiliki  tingkat plagiarisme yang maksimum dan data antar cluster memiliki kemiripan yang minimum. Hasil penilitian ini berupa data-data akan dibagi sesuai dengan cluster masing – masing. Kata Kunci
K-means Rabin Karp
Kemiripan
banyaknya operand dan operator yang dipakai, namun cara ini punya keterbatasan yaitu cara ini hanya efektif jika program yang diperiksa sangat mirip sedangkan saat ini banyak sekali penjiplakan  dengan  menambah  atau  mengurangi  kode  program.  Pada structure-oriented code-based  system ini  relatif  tahan  dengan  perubahan-perubahan  kecil  yang  terjadi  pada code  program  contohnya  seperti  penambahan  variabel,  penambahan  kode  program  dan lainnya, sehingga jika ingin menghindari penjiplakan maka harus mengubah sebagian besar dari  kode  program  menjadi  suatu  representasi  kemudian  akan  di  deteksi  kemiripan representasi kode program itu.
Ada  beberapa  perangkat  lunak  yang  sudah  dirancang  untuk  mendeteksi  plagiat  dalam kode  program,  contohnya  adalah  Moss,  Jplag.  Duplikasi  kode  program,  pendeteksian plagiat, dan juga pencocokan string sudah banyak dibahas dari penelitian-penelitian  yang lain.  Dari  penelitian  tersebut  digunakan  algoritma Winnowing,  Smith  Waterman,  Boyer Moore, dan Rabin  Karp .  Untuk  penggunaan  algoritma Rabin  Karp menerapkan  metode fingerprinting metode ini hanya membandingkan pola string saja, dan juga plagiat ini tidak memperhatikan  penulisan  sumber  rujukan.  Selain  menggunakan  algoritma Rabin  Karp penelitian ini akan menggunakan clustering yaitu dengan metode K-means. Pada penelitian ini digunakan algoritma Rabin Karp karena algoritma Rabin Karp sangat efektif dan juga pada peningkatannya sangat signifikan dibandingkan algoritma lainnya.

## METODE

## Plagiarisme
Plagiarisme  merupakan  kegiatan  penjiplakan  atau  pengambilan  karya  milik  orang  lain tanpa  sepengetahuan  orang  yang  bersangkutan.  Plagiat  dianggap  sebagai  tindak  kriminal karena mengambil karya milik orang lain tanpa izin [2].

## Algoritma Rabin Karp
Algoritma Rabin Karp merupakan algoritma yang dibangun oleh Michael O. Rabin dan Richard  M.  Karp,  algoritma  ini  dibangun  pada  tahun  1987.  Algoritma  Rabin  Karp merupakan algoritma yang dipakai untuk pencarian string dan algoritma ini memanfaatkan fungsi hashing yang digunakan untuk memperoleh pater di dalam string teks. Ada beberapa karakteristik yang terdapat pada algoritma Rabin Karp yaitu algoritma ini memanfaatkan K- Gram dan hashing . Algoritma Rabin Karp diterapkan setelah melalui tahapan atau proses preprocessing[3]. Pada algoritma Rabin Karp ada beberapa tahapan yaitu K-Gram. K-gram yaitu  rangkaian  token  yang  panjang,  panjangnya  yaitu  k.  Pada  metode  ini  penggunaanya dengan  cara  pengambilan  potongan-potongan  karakter  huruf  dengan  jumlah  nilai  k, potongan  huruf  itu  diambil  teks  secara  kontinuitas  yang  dibaca  mulai  awal  teks  sumber hingga akhir pada teks sumber. Berikut ini adalah contoh  dari K-Gram  dengan nilai  k=1, contoh tersebut dapat dilihat pada Tabel 1 .
Tabel 1. Contoh K-Gram Kalimat Handphone adalah perangkat elektronik Processing handphoneadalahperangkatelektronik Gram{4} {hand}  {andp}  {ndph}  {dpho}  {phon} {hone}  {onea}  {nead}  {eada}  {adal} {dala}  {alah}  {lahp}  {ahpe}  {hper} {pera}  {eran}  {rang}  {angk}  {ngka} {gkat}  {kate}  {atel}  {tele}  {elek} {lekt}  {ektr}  {ktro}  {tron}  {roni}
{onik}
Vol. 2, No. 2, Agustus 2020, Halaman 140-150
Berikutnya adalah hashing . Hashing adalah metode yang digunakan untuk menemukan nilai hash,  yaitu  dengan  cara  mengganti  karakter  string  ke  integer.  Pada  proses  tersebut menggunakan  fungsi  rolling  hash,  yang  digunakan  untuk  mengubah  string  menjadi  nilai hash. Pada persamaan rolling hash bisa dilihat pada Persamaan 1.
H(c 1... c k ) = (c 1 * b (k-1) + c 2 * b (k-2) + ... + c (k-1) * b k + c k ) mod q.[4]
Keterangan : H : substring c : nilai ascii per-karakter b : konstan bilangan prima k : banyak karakter q: modulo bilangan prima Dibawah ini adalah contoh dari perhitungan rolling hash terhadap substring makan dengan nilai K-Gram 4 dapat dilihat pada Tabel 2.
Tabel 2. Contoh Hashing
Atribut Nilai Array Rolling hash pertama [0] => coba c=99, o = 111, b=98, a=97, basis=11, mod =
10007
H=c_c*b^(k-1)+c_o*b^(k-2)+c_b*b^(k-3)
+c_a*b^(k-4) H=99*11^3+111*11^2+98*11^1+97*11^0
H=131769+13431+1078+97
H=146375 Mod 10007
H= 6277 Rolling hash kedua [1] => saja s = 115, a=97, j=106, a=97, basis=11, mod =
10007
H=c_s*b^(k-1)+c_a*b^(k-2)+c_j*b^(k-3)
+c_a*b^(k-4) H=115*11^3+97*11^2+106*11^1+97*11^0 H=153065+11737+1166+97 H=166065 Mod 10007
H= 5953
Jika  algoritma  Rabin-Karp  ditulis  ke  dalam pseudocode :[5],  seperti  ditunjukkan  pada Gambar 1.
Gambar 2. Class Diagram dari algoritma rabin karp

## Clustering
Clustering atau yang bisa disebut dengan klasterisasi adalah metode pengumpulan data atau yang dapat diartikan sebagai sebuah proses partisi satu set objek data kedalam cluster, cluster disini mempunyai kemiripan karakteristik antar satu sama lain dan berbeda dengan cluster  yang lain, partisi ini dilakukan dengan suatu algoritma clustering . Oleh karena itu clustering sangat  berguna  untuk  menemukan  kelompok  yang  belum  dikenal  dalam  data. Contoh dari clustering di aplikasi seperti business intelligence, web search , dan security . Manfaat dari clustering adalah metode segmentasi data yang sangat berguna dalam prediksi atau  analisa  masalah  pengelompokkan  tertentu  dan  dapat  mengidentifikasi  objek  dalam berbagai  bidang  seperti computer  vision dan image  processing. Konsep  dasar  clustering yaitu  jika  hasil clustering baik  akan  menghasilkan  sebuah  tingkat  persamaan  yang  tinggi dalam  satu  kelas  dan  tingkat  persamaan  yang  rendah  antar  kelas.  Kesamaan  tersebut pengukurannya  secara  numerik  terhadap  dua  buah  objek  atau  lebih.  Dalam  clustering memiliki empat tipe data yang pertama variable berskala interval yang kedua variabel biner, yang ketiga variabel nominal ordinal atau rasio, yang keempat variabel dengan tipe lainnya Berikut rumus yang digunakan untuk menghitung Euclidean distance:
Distance (p,q) = ∑ µ𝑘 |𝑃𝑘 − 𝑞𝑘|𝑟) 𝑛 𝑘
1/𝑟
Keterangan: n = jumlah record data k = urutan field data r = 2 µk = bobot field yang diberikan user
Penelitian  ini  menggunakan  metode  K-means  karena  metode  tersebut  mempunyai kemampuan pengelompokkan data dalam jumlah yang besar dengan waktu komputasi yang cepat dan efisien.
Algoritma K-Means
1. Tentukan berapa banyak cluster k dari dataset
2. Tetapkan data k secara acak menjadi pusat awal lokasi klister
Vol. 2, No. 2, Agustus 2020, Halaman 140-150
3. Temukan  pusat cluster terdekat  untuk  masing-masing  data,  dengan  begitu  maka masing-masing  pusat  cluster  mempunyai  subnet  dari  dataset,  sehingga  mewakili bagian dari dataset. Lalu terbentuklah cluster k: C1, C2, C3,....,Ck
4. Untuk masing-masing cluster k menentukan pusat luasan cluster dan memperbarui lokasi dari masing-masing pusat cluster ke nilai baru dari pusat luasan
5. Mengulangi  langkah  ketiga  dan  kelima  hingga  data  pada  setiap cluster menjadi terpusat atau selesai.
Gambar 3. Pseudo code dari method K-Means

## Gambar 5. Alur Penelitian

## Observasi dan Pengumpulan Data
Dalam  tahap  ini  penulis  melakukan  observasi  dan  pengumpulan  data  dengan  cara melakukan  perbandingan  antar  aplikasi  pendeteksi plagiarisme kode  program  seperti MOSS. Di dalam aplikasi tersebut memiliki kekurangan yaitu belum ada pengelompokkan data. Di dalam aplikasi MOSS, hanya terdapat plagiarisme saja. Moss (Measure Of Software Similarity) adalah sistem otomatis untuk menentukan kesamaan program. Hingga saat ini, aplikasi  utama  Moss  adalah  dalam  mendeteksi  plagiarisme  di  kelas  pemrograman.  Sejak perkembangannya pada tahun 1994, Moss telah sangat efektif dalam peran ini. Algoritma di balik  aplikasi  Moss  adalah  peningkatan  yang  signifikan  dibandingkan  algoritma  deteksi kecurangan lainnya. Bahasa pemrograman pada MOSS : C, C++, Java, C#, Python, Visual Basic,  Javascript,  FORTRAN,  ML,  Haskell,  Lisp,  Scheme,  Pascal,  Modula2,  Ada,  Perl, TCL,  Matlab,  VHDL,  Verilog,  Spice,  MIPS  assembly,  a8086  assembly,  a8086  assembly, HCL2. MOSS ini menggunakan algoritma Rabin Karp [6].
Gambar 6. Hasil Persentase
Vol. 2, No. 2, Agustus 2020, Halaman 140-150
Gambar 7. Kode program pertama
Gambar 8. Kode program kedua
Vol. 2, No. 2, Agustus 2020, Halaman 140-150

## Analisis
Pada tahapan ini menganalisa bahwa algoritma pada MOSS yaitu Algoritma Rabin Karp adalah algoritma yang kompleks karena ada beberapa tahapan yang membuat plagiarisme dapat dideteksi dengan tepat dibandingkan dengan algoritma yang lain. Penelitian ini juga menggunakan method K-Means yang berguna untuk pengelompokkan ( cluster ) data.

## Perancangan Software Pengukuran Kemiripan Kode Program
Dalam  tahap  ini  akan  membuat  rancangan Software pengukuran  kemiripan  kode program berdasarkan data yang telah diperoleh dari tahap observasi dan pengumpulan data serta  tahap  analisa.  Perancangan Software ini  dibuat  sesuai  analis  yang  dibutuhkan. Perancangan Software ini akan memiliki batasan jumlah data yaitu sebanyak 20. Output dari perancangan Software ini adalah cluster dari setiap data.

## HASIL DAN PEMBAHASAN
Ada  beberapa  langkah  dalam  penelitian  ini,  pertama  adalah  memasukkan  data  yang  akan dicek  plagiarismenya.  Yang  akan  menjadi  pembandingnya  adalah  modul  koneksi.  Pada langkah ini data yang akan dibandingkan dimasukkan ke dalam program tersebut

## Gambar 9. Contoh algoritma rabin karp
Gram  disini  berguna  untuk  membagi  kode  program  ke  dalam  gram  yang  ditentukan  nilai gramnya.  Setelah  data  masuk,  hasil  menunjukkan  proses White  Insensitivity.  white insensitivity adalah proses penghilangan tanda huruf dan mengubah teks menjadi kata – kata tanpa huruf kapital. Kemudian proses H ash, pada proses ini, kita menggunakan rumus:
H(c 1... c k ) = (c 1 * b (k-1) + c 2 * b (k-2) + ... + c (k-1) * b k + c k ) mod q
Selanjutnya adalah proses Fingerprint. Jika proses hash sudah berakhir maka akan masuk pada  fingerprint.  Di  dalam  proses  ini,  akan  mencari  nilai  hash  yang  sama  antar  2  kode program.  Proses  akhir  adalah Dice’s  Similarity  Coefficient. Proses  tahap  akhir  ini, menentukan persamaan 2 kode program dengan persamaan Dice’s Similarity Coefficient [7] .
Vol. 2, No. 2, Agustus 2020, Halaman 140-150
Tabel 3. Pengecekan plagiarisme pada kode program Proses Teks 1 Teks 2 Code <?php $koneksi = mysqli_connect("localhost", "id12554919_web93", "Buat_Password_93", "id12554919_db_web"); if(mysqli_connect_errno()){ echo "Koneksi database gagal : ". mysql_connect_error(); } ?> <?php $host = "localhost"; $username = "root"; $password = ""; $database = "db_modul89"; $koneksi = mysqli_connect($host, $username, $password, $database); if ($koneksi) { echo ""; } else { echo "Server not connected"; } ?> white insensitivity lt  php  koneksi  mysqliconnect localhost id12554919web93 buatpasswo rd93 id12554919dbweb if mysqliconnecterrno  echo  koneksi database  gagal  mysqlconnecterror gt lt php host localhost username root password  database  dbmodul89 koneksi mysqliconnect host username  password  database  if koneksi  echo  else  echo  server  not connected gt k-gram {l} {t} { } {p} {h} {p} { } {k} {o} {n}  {e}  {k}  {s}  {i}  {  }  {m}  {y} {s}  {q}  {l}  {i}  {c}  {o}  {n}  {n} {e} {c} {t} { } {l} {o} {c} {a} {l} {h} {o} {s} {t} { } {i} {d} {1} {2} {5} {5} {4} {9} {1} {9} {w} {e} {b}  {9}  {3}  {  }  {b}  {u}  {a}  {t} {p}  {a}  {s}  {s}  {w}  {o}  {r}  {d} {9}  {3}  {  }  {i}  {d}  {1}  {2}  {5} {5} {4} {9} {1} {9} {d} {b} {w}
{e} {b} { } {i} {f} { } {m} {y} {s} {q}  {l}  {i}  {c}  {o}  {n}  {n}  {e} {c} {t} {e} {r} {r} {n} {o} { } {e} {c}  {h}  {o}  {  }  {k}  {o}  {n}  {e} {k} {s} {i} { } {d} {a} {t} {a} {b} {a} {s} {e} { } {g} {a} {g} {a} {l} { } { } {m} {y} {s} {q} {l} {c} {o} {n} {n} {e} {c} {t} {e} {r} {r} {o} {r} { } {g} {t} {l} {t} { } {p} {h} {p} { } {h} {o} {s} {t} { } {l} {o} {c} {a} {l} {h} {o} {s} {t} { } {u} {s} {e} {r} {n} {a} {m} {e} { } {r} {o} {o} {t} { } {p} {a} {s} {s} {w} {o} {r} {d} { } {d} {a} {t} {a} {b} {a} {s} {e} { } {d} {b} {m} {o} {d} {u} {l} {8}  {9}  {  }  {k}  {o}  {n}  {e}  {k} {s} {i} { } {m} {y} {s} {q} {l} {i} {c}  {o}  {n}  {n}  {e}  {c}  {t}  {  } {h} {o} {s} {t} { } {u} {s} {e} {r} {n}  {a}  {m}  {e}  {  }  {p}  {a}  {s} {s}  {w}  {o}  {r}  {d}  {  }  {d}  {a} {t} {a} {b} {a} {s} {e} { } {i} {f} { } {k} {o} {n} {e} {k} {s} {i} { } {e} {c} {h} {o} { } {e} {l} {s} {e} { } {e} {c} {h} {o} { } {s} {e} {r} {v} {e} {r} { } {n} {o} {t} { } {c}  {o}  {n}  {n}  {e}  {c}  {t}  {e} {d} { } {g} {t} Hash 108  116  32  112  104  112  32  107 111  110 101 107 115  105  32  109 121  115 113 108 105  99 111  110 110 101 99 116 32 108 111 99 97 108  116  32  112  104  112  32  104 111 115 116 32 108 111 99 97 108 104  111  115 116 32  117  115  101 114  110  97  109  101  32  114  111
108  104 111 115 116  32 105  100 49 50 53 53 52 57 49 57 119 101 98 57 51 32 98 117 97 116 112 97 115 115 119 111 114 100 57 51 32 105 100 49 50 53 53 52 57 49 57 100 98 119 101 98 32 105 102 32 109  121 115 113 108  105  99  111 110  110 101 99  116 101 114  114 110 111 32 101 99 104 111 32 107 111  110 101 107 115  105  32  100 97 116 97 98 97 115 101 32 103 97 103 97 108 32 32 109 121 115 113 108  99  111  110  110  101  99  116 101 114 114 111 114 32 103 116 111  116  32  112  97  115  115  119 111 114 100 32 100 97 116 97 98 97 115 101 32 100 98 109 111 100 117 108 56 57 32 107 111 110 101 107  115  105 32  109  121  115  113 108  105  99  111  110  110  101  99 116  32  104  111  115  116  32  117 115  101  114  110  97  109  101  32 112  97  115  115  119  111  114  100 32 100 97 116 97 98 97 115 101 32 105  102  32  107  111  110  101  107 115 105 32 101 99 104 111 32 101 108 115 101 32 101 99 104 111 32 115  101  114 118 101 114 32  110 111 116 32 99 111 110 110 101 99 116 101 100 32 103 116 Fingerprint 108  116  32  112  104  107  111  110 101  115  105  109  121  113  99  97 100 49 50 53 52 57 119 98 51 117 114 102 103 108 116 32 112 104 111 115 99 97 117  101  114 110 109 119 100  98 56  57  107  105  121  113  102  118 103 108 116 32 112 104 107 111 110 101 115 105 109 121 113 99 97 100 57 119 98 117 114 102 103 Dice's Similarity Coefficient 87.27%
Tabel 4 adalah tabel setelah di periksa plagiarisme- nya
Tabel 4. Hasil plagiarisme
Vol. 2, No. 2, Agustus 2020, Halaman 140-150
Dari  data  tersebut,  dikelompokkan  sesuai  dengan  cluster  masing  –  masing.  Penelitian  ini menggunakan 2 cluster untuk menentukan data – data dengan keterangan bahwa cluster 1 adalah  modul  koneksi,  cluster  2  adalah  modul  login.  Jika  data  memiliki  kemiripan  data dengan  data  pembanding  sebesar  80%  keatas,  maka  data  akan  ditaruh  kedalam cluster 1. Sedangkan,  jika  data  memiliki  kemiripan  data  dengan  data  pembanding  sebesar  80% kebawah, maka data akan ditaruh kedalam cluster 2.
Gambar 10. Penggambaran dari metode K-Means

## KESIMPULAN
Berdasarkan hasil penelitian analisis dan perancangan Software pengukuran kemiripan kode program dapat diambil kesimpulan bahwa dalam pengecekan kemiripan kode program menggunakan  algoritma Rabin  Karp ini  menghasilkan  persentase  dalam  memeriksa plagiarismenya.  Setelah  diperiksa,  data  akan  dikelompokkan  berdasarkan cluster masing- masing. Sehingga data dalam satu kelompok memiliki tingkat kemiripan yang maksimum dan data antar kelompok memiliki kemiripan yang minimum.

## REFERENSI
[1] I.  Firmawan,  E.  Usada,  I.  F.  Adam,  S.  Informatika,  and  I.  T.  Telkom,  “RANCANG  BANGUN APLIKASI  PENDETEKSI  PLAGIAT  SOURCE  CODES  DENGAN  TOOLS  JPLAG  (  STUDI KASUS IT TELKOM PURWOKERTO ),” pp. 529–535, 2018.
[2] Y.  Dharmayanti  and  Y.  F.  A,  “PENDETEKSIAN  KESAMAAN  DOKUMEN  MENGGUNAKAN ALGORITMA RKR- GST ( RUNNING KARP RABIN-GREEDY STRING TILING ),” 2011.
[3] J.  Priambodo,  “Pendeteksian  Plagiarisme  Menggunakan  Algoritma  Rabin-Karp  dengan  Metode Rolling  Hash,” J.  Inform.  Univ.  Pamulang ,  vol.  3,  no.  1,  p.  39,  2018,  doi: 10.32493/informatika.v3i1.1518.
[4] S.  Schleimer,  D.  S.  Wilkerson,  and  A.  Aiken,  “Winnowing:  Local  Algorithms  for  Document Fingerprinting,” Proc. ACM SIGMOD Int. Conf. Manag. Data , pp. 76–85, 2003.
[5] P. A. R.-K. dan P. P. dengan A. K.-M.-P. Andres, Christopher, and H. Saloko, “Penelaahan Algoritma Rabin-Karp dan Perbandingan Prosesnya dengan Algoritma Knut-Morris-Pratt,” 2006 , no. m, pp. 1–4.
[6] K.  W.  Bowyer  and  L.  O.  Hall,  “Experience  using  ‘MOSS’  to  detect  cheating  on  programming assignments,” Proc. - Front. Educ. Conf. , vol. 3, 1999, doi: 10.1109/fie.1999.840376.
[7] Salmuasih and A. Sunyoto, “Implementasi Algoritma Rabin Karp untuk Pedeteksi Plagiat Dokumen Teks Menggunakan Konsep Similarity,” Semin. Nas. Apl. Teknol. Inf. , pp. F23–F28, 2013.