perancangan sistem deteksi plagiat pada dokumen teks dengan konsep similarity menggunakan
TRANSCRIPT
1
PERANCANGAN SISTEM DETEKSI PLAGIAT PADA DOKUMEN TEKS
DENGAN KONSEP SIMILARITY MENGGUNAKAN ALGORITMA RABIN KARP
NASKAH PUBLIKASI
diajukan oleh
Salmuasih
08.11.2281
kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA
2013
2
3
DESIGN OF PLAGIARISM DETECTION SYSTEM FOR TEXT DOCUMENT
WITH SIMILARITY CONCEPT USING RABIN KARP ALGORITHM
PERANCANGAN SISTEM DETEKSI PLAGIAT PADA DOKUMEN TEKS DENGAN
KONSEP SIMILARITY MENGGUNAKAN ALGORITMA RABIN KARP
Salmuasih
Andi Sunyoto Jurusan Teknik Informatika
STMIK AMIKOM YOGYAKARTA
ABSTRACT
Plagiarism is becoming increasingly serious problem as the rapid development of technology. Various people can easily access digital content such as images, video, mp3, text documents, and source code that is usually the target of plagiarism. Ironically acts of plagiarism is most prevalent among academics as students and learners. In this case most often done is copy-paste-edit text documents. Plagiarism is a crime, because it recognizes people's property as a personal masterpiece. As anticipated, detection tools needed to analyze the acts committed plagiarism. This detection tool is built with a strategic approach Rabin-Karp algorithm, which is a multiple-pattern search algorithm. This algorithm is one of the best in analyzing compatibility between documents. It uses a hashing technique. The search will be more efficient with this technique because it will compare multiple digit numbers. Keywords: Plagiarism, String matching, Pattern Matching, Rabin-Karp, Hashing, Similarity
4
1. Pendahuluan
Plagiarisme selalu menjadi perhatian di banyak sektor, terutama sektor akademis.
Sering kita temui pekerjaan teman yang dihargai dengan nilai “0” karena diketahui telah
menyalin hasil pekerjaan temannya yang lain. Praktik menyalin beberapa bagian atau
keseluruhan tulisan tanpa mencantumkan sumber menjadi hal biasa yang sering
ditemukan pada tugas harian, makalah, bahkan skripsi.
Pencegahan dan pendeteksian merupakan cara yang dapat dilakukan untuk
mengurangi plagiarisme. Pencegahan berarti menghalangi munculnya plagiarisme yang
lebih ditekankan kepada moral masyarakat dan sistem pendidikan. Cara ini akan
memberikan efek jangka panjang yang luar biasa. Pendeteksian berarti cara untuk
mengungkapkan plagiarisme.
Beberapa perangkat lunak yang didesain untuk mendeteksi plagiarisme dokumen,
diantaranya Turnitin, Eve2, CopyCatchGold, WordCheck, Glatt, Moss, JPlag.
Berdasarkan analisis informasi yang ada di web, pendeteksi terbaik sesuai fungsinya
adalah Turnitin (Lukashenko, dkk, 2007).
Pendeteksian plagiarisme atau plagiat menggunakan konsep similarity atau
kemiripan dokumen merupakan salah satu cara untuk mendeteksi copy&paste plagiarism
dan disguised plagiarism. Menggunakan metode fingerprinting, pendeteksian plagiat ini
tidak memperhatikan adanya penulisan sumber rujukan.
Pada sistem deteksi ini akan diaplikasikan text mining untuk tahap preprocessing
dan algoritma Rabin Karp untuk string matching. Algoritma Rabin Karp adalah algoritma
multiple pattern search yang sangat efisien untuk mencari string dengan pola banyak.
Selanjutnya akan dibahas bagaimana algoritma Rabin Karp bekerja sekaligus
implementasinya pada sebuah aplikasi dalam mendeteksi plagiarisme dokumen.
2. Landasan Teori 2.1 Plagiarisme
Plagiarisme atau plagiat adalah penjiplakan atau pengambilan karangan, pendapat
orang lain dan menjadikannya seolah-olah karangan sendiri (KBBI, 1997: 775).
Berdasarkan penelitian, Gipp dan Meuschke (2011) mengkategorikan praktek plagiat
berdasarkan cara yang digunakan, diantaranya :
1. Copy&Paste plagiarism, menyalin setiap kata tanpa perubahan.
2. Disguised plagiarism, tergolong kedalam praktek menutupi bagian yang disalin,
teridentifikasi ke dalam empat teknik, yaitu shake&paste, expansive plagiarism,
contractive plagiarism, dan mosaic plagiarism.
3. Technical disguise, teknik meringkas untuk menyembunyikan konten plagiat dari
deteksi otomatis dengan memanfaatkan kelemahan dari metode analisis teks dasar,
5
misal dengan mengganti huruf dengan simbol huruf asing.
4. Undue paraphrasing, sengaja menuliskan ulang pemikiran asing dengan pemilihan
kata dan gaya plagiator dengan menyembunyikan sumber asli.
5. Translated plagiarism, mengkonversi konten dari satu bahasa ke bahasa lain.
6. Idea plagiarism, menggunakan ide asing tanpa menyatakan sumber.
7. Self plagiarism, penggunaan sebagian atau keseluruhan tulisan pribadi yang tidak
dibenarkan secara ilmiah.
Taxonomy plagiat menurut Alzahrani, dkk digambarkan sebagai berikut:
2.2 Pendekatan Deteksi Plagiat
Pendekatan sistem deteksi plagiat digolongkan menjadi dua, yaitu external dan
intrinsic. Pendekatan external bertujuan untuk menemukan kesesuaian bagian teks
secara harfiah, sedangkan pendekatan intrinsic mencoba untuk mengenali perubahan
gaya penulisan (Stein, 2006). Strategi pendekatan external diantaranya:
Perbandingan Teks Lengkap. Metode ini diterapkan dengan membandingkan semua
isi dokumen (Gipp, Meusche, Beel 2011). Solusi untuk metode ini adalah algoritma
Boyer-Moore dan algoritma Knuth-Morris-Pratt.
Kesamaan Kata Kunci. Prinsip dari metode ini adalah mengekstrak kata kunci dari
dokumen dan kemudian dibandingkan dengan kata kunci pada dokumen yang lain.
Metode Fingerprinting, digunakan untuk mendeteksi keakuratan salinan antar
dokumen, baik semua teks atau hanya sebagian teks saja. Prinsip kerja dari metode
ini menggunakan teknik hashing, yaitu fungsi yang mengkonversi setiap string
menjadi bilangan. Misalnya Rabin-Karp, Winnowing dan Manber.
2.3 Similarity Dokumen
Konsep similarity sudah menjadi isu yang sangat penting di hampir setiap bidang
ilmu pengetahuan. Zaka (2009) dalam disertasinya menjelaskan tiga macam teknik yang
dibangun untuk menentukan nilai similarity (kemiripan) dokumen.
1. Distance-based similarity measure
Distance-based similarity measure mengukur tingkat kesamaan dua buah objek
dari segi jarak geometris dari variabel-variabel yang tercakup di dalam kedua objek
tersebut. Metode Distance-based similarity ini meliputi Minkowski Distance,
Manhattan/City block distance, Euclidean distance, Jaccard distance, Dice’s Coefficient,
Cosine similarity, Levenshtein Distance, Hamming distance, dan Soundex distance.
2. Feature-based similarity measure
Feature-based similarity measure melakukan penghitungan tingkat kemiripan
dengan merepresentasikan objek ke dalam bentuk feature-feature yang ingin
6
diperbandingkan. Feature-based similarity measure banyak digunakan dalam melakukan
pengklasifikasian atau pattern maching untuk gambar dan teks.
3. Probabilistic-based similarity measure
Probabilistic-based similarity measure menghitung tingkat kemiripan dua objek
dengan merepresentasikan dua set objek yang dibandingkan dalam bentuk probability.
Kullback Leibler Distance dan Posterior Probability termasuk dalam metode ini.
2.4 Text Mining
Text mining adalah salah satu bidang khusus dari data mining. Feldman dan
Sanger (2007) mendefinisikan text mining sebagai suatu proses menggali informasi
dimana seorang user berinteraksi dengan sekumpulan dokumen menggunakan tools
analisis yang merupakan komponen-komponen dalam data mining. Tujuan dari text
mining adalah untuk mendapatkan informasi yang berguna dari sekumpulan dokumen.
Dalam memberikan solusi, text mining mengadopsi dan mengembangkan banyak
teknik dari bidang lain, seperti Data mining, Information Retrieval (IR), Statistic and
Mathematic, Machine Learning, Linguistic, Natural Languange Processing (NLP), dan
Visualization. Kegiatan riset untuk text mining antara lain ekstraksi dan penyimpanan
teks, preprocessing akan konten teks, pengumpulan data statistik dan indexing, dan
analisa konten (Triawati, 2009). Tahapan dalam text mining meliputi tokenizing, filtering,
stemming, tagging dan analyzing (Mooney, 2006).
2.5 Indonesian Porter Stemmer
Algoritma Porter ditemukan oleh Martin Porter 1980. Algoritma tersebut
digunakan untuk stemming bahasa Inggris, kemudian karena proses stemming bahasa
Inggris berbeda dengan bahasa Indonesia, maka dikembangkan algoritma Porter khusus
untuk bahasa Indonesia (Porter Stemmer for Bahasa Indonesia) oleh W.B. Frakes pada
tahun 1992.
Algoritma / langkah-langkah pada Porter Stemmer:
Menghapus partikel seperti: -kah, -lah, -tah
Mengapus kata ganti (Possesive Pronoun), seperti –ku, -mu, -nya
Mengapus awalan pertama. Jika tidak ditemukan, maka lanjut ke langkah 4a, dan jika
ada maka lanjut ke langkah 4b.
a. Menghapus awalan kedua, dan dilanjutkan pada langkah ke 5a
b. Menghapus akhiran, jika tidak ditemukan maka kata tersebut diasumsikan sebagai
kata dasar (root word). Jika ditemukan maka lanjut ke langkah 5b.
a. Menghapus akhiran dan kata akhir diasumsikan sebagai kata dasar (root word).
b. Menghapus awalan kedua dan kata akhir diasumsikan sebagai kata dasar (root
word).
7
2.6 String Matching String matching atau pencocokan string adalah subjek yang penting dalam
kaitannya dengan text-processing. String matching merupakan bahasan yang sangat
penting dalam ilmu komputer, karena teks adalah bentuk utama dalam pertukaran
informasi (Charras-Lecroq, 2006).
Persoalan pencarian string dirumuskan sebagai berikut (Munir, 2004) :
1. teks (text), yaitu (long) string yang panjangnya n karakter
2. pattern, yaitu string dengan panjang m karakter (m < n) yang akan dicari di dalam
teks.
Cara kerjanya adalah mencari lokasi pertama di dalam teks yang bersesuaian dengan
pattern.
Contoh : Pattern : hari
Teks : kami pulang hari kamis
target
Penggunaan string matching mencakup pencarian pola dalam DNA sequence,
search engine internet, menemukan halaman web yang relevan pada query, dapat pula
dimanfaatkan untuk mendeteksi adanya plagiarisme karya tulis. Termasuk dalam
algoritma string matching diantaranya algoritma Naive, algoritma Rabin Karp, algoritma
Finite Automaton, dan algoritma Knuth Morris Pratt (Cormen, dkk, 2009).
2.7 Algoritma Rabin Karp
Algoritma Rabin Karp ditemukan oleh Michael O. Rabin dan Richard M. Karp.
Algoritma ini menggunakan metode hash dalam mencari suatu kata. Teori ini jarang
digunakan untuk mencari kata tunggal, namun cukup penting dan sangat efektif bila
digunakan untuk pencarian jamak (Atmopawiro, 2006).
Rabin Karp merepresentasikan setiap karakter ke dalam bentuk desimal digit
(digit radix-d) ∑ = {0, 1, 2, 3, …, d}, dimana d = |∑|. Sehingga didapat masukan string k
berturut-turut sebagai perwakilan panjang k desimal. Karakter string 31415 sesuai
dengan jumlah desimal 31,415. Kemudian pola p dihash menjadi nilai desimal dan string
direpresentasikan dengan penjumlahan digit-digit angka menggunakan aturan Horner's,
misal (Elchison, 2004) :
{ A, B, C, ..., Z } → { 0, 1, 2, ..., 26 }
• BAN → 1 + 0 + 13 = 14
• CARD → 2 + 0 + 17 + 3 = 22
Untuk pola yang panjang dan teks yang besar, algoritma ini menggunakan
operasi mod, setelah dikenai operasi mod q, nilainya akan menjadi lebih kecil dari q,
misal:
8
• BAN = 1 + 0 + 13 = 14
= 14 mod 13 = 1
= BAN → 1
• CARD = 2 + 0 + 17 + 3 = 22
= 22 mod 13 = 9
= CARD → 9
Tetapi tidak semua nilai hash yang cocok berarti polanya cocok. Hal ini sering
terjadi pada beberapa kasus, ini disebut spurious hits. Kemungkinan terjadinya
diantaranya karena:
Operasi mod terinterfensi oleh keunikan nilai hash (nilai mod q biasanya dipilih
bilangan prima sehingga 10q hanya cocok dengan 1 kata komputer)
14 mod 13 = 1
27 mod 13 = 1
Informasi hilang setelah penjumlahan
BAN → 1 + 0 + 13 = 14
CAM → 2 + 0 + 12 = 14
Sedangkan pseudocode dan rumus matematis yang digunakan adalah sebagai
berikut (Cormen, dkk, 2009):
Rumus matematis:
ts+1 = (d (ts – T [s + 1] h) + T [s + m + 1] mod q
dimana
ts = nilai desimal dengan panjang m dari substring T [s + 1 .. s + m],
untuk s = 0, 1, ..., n - m
ts+1 = nilai desimal selanjutnya yang dihitung dari ts
d = radix desimal (bilangan basis 10)
RABIN-KARP-MATCHER (T, P, d, q) n = T.length m = P.length h = dm-1 mod q p = 0 t0 = 0 for i = 1 to m // preprocessing p = (dp + P[i]) mod q t0 = (dt0 + T[i]) mod q for s = 0 to n – m if p == ts // matching if P[1 .. m] == T[s + 1 .. s + m] print “Pattern occurs with shift” s if s < n – m ts+1 = (d(ts - T[s + 1] h) + T[s + m + 1]) mod q
9
h = dm-1
n = panjang teks
m = panjang pola
q = nilai modulo
Pengurangan dengan T [s + 1] * h adalah untuk menghilangkan high-order digit
dari ts, mengalikan hasilnya dengan 10 untuk menggeser satu digit angka ke kiri, dan
menambahkan low-order digit dengan T [s + m + 1]. Misalnya, jika m = 5 dan ts = 31415,
maka kita ingin menghapus high-order digit T [s +1] = 3, masukkan low-order digit baru
(anggap T [s +5 +1] = 2) dan modulo = 3 untuk memperoleh
ts +1 = (10 (31415 - 3 * 10000)) + 2 mod 13
= 14152 mod 13
= 8
Gambar 2. 1 Algoritma Rabin Karp
2.8 Peningkatan Performa Algoritma Rabin Karp
Telah kita pahami bahwa spurious hit adalah beban tambahan bagi algoritma yang
akan meningkatkan waktu proses. Hal ini dikarenakan algoritma harus membandingkan
pola terhadap teks yang hasil modulonya sama tetapi nilai hashnya berbeda. Untuk
menghindari pencocokan yang tidak perlu, Singh dan Kochar (2008) memberikan solusi
untuk tidak hanya membandingkan sisa hasil bagi, tetapi membandingkan hasil baginya
juga.
REM (n1/q) = REM (n2/q)
and
QUOTIENT (n1/q) = QUOTIENT (n2/q)
Jadi, successful hit harus memenuhi dua syarat, yaitu nilai sisa hasil bagi dan nilai
hasil baginya harus sama. Selebihnya adalah unsuccessful hit tanpa perlu melakukan
10
pencocokan lagi. Hal ini berarti tidak ada pemborosan waktu untuk mengecek spurious
hit.
2.9 Pengukuran Nilai Similarity Mengukur similarity (kemiripan) dan jarak antara dua entitas informasi adalah
syarat inti pada semua kasus penemuan informasi, seperti pada Information Retrieval
dan Data Mining yang kemudian dikembangkan dalam bentuk aplikasi, salah satunya
adalah sistem deteksi plagiat.
Penggunaan ukuran similarity yang tepat tidak hanya meningkatkan kualitas
pilihan informasi tetapi juga membantu mengurangi waktu dan biaya proses (Zaka, 2009).
Kosinov (2001) menyarankan untuk mengaplikasikan Dice's Similarity Coefficient
dalam penghitungan nilai similarity yang menggunakan pendekatan k-gram.
Dimana S adalah nilai similarity, A dan B adalah jumlah dari kumpulan k-grams dalam
teks 1 dan teks 2. C adalah jumlah dari k-grams yang sama dari teks yang dibandingkan.
3. Analisis 3.1 Analisis Masalah
Kegiatan plagiat dokumen teks adalah satu hal yang penting untuk diperhatikan.
Berbagai macam cara telah ditawarkan sebagai solusi dari permasalahan ini, baik yang
berefek jangka panjang maupun jangka pendek. Salah satunya adalah sistem deteksi
plagiat.
Jika selama ini mayoritas penanganan plagiat dilakukan secara manual, yang
RB_IMPROVED (T, P, d, q) n = T.length m = P.length h = dm-1 mod q p = 0 t0 = 0 Q = 0 pq = 0 h = dm-1 mod q for i = 1 to m // preprocessing p = (dp + P[i]) mod q t0 = (dt0 + T[i]) mod q for s = 0 to n – m Q=T{s+1..........s+ m] div q If ( ts = p and Q = pq) // matching print “Pattern occurs with shift” s if s < n – m ts+1 = (d(ts - T[s + 1] h) + T[s + m + 1]) mod q
K * C
(A + B) S =
11
selain menyita banyak waktu, tingkat ketelitian dan objektivitasnya juga relatif, sistem
deteksi plagiat menawarkan hasil yang sebaliknya. Terlepas dari apakah sistem yang
dibangun sudah dapat mengenali jenis plagiat lain yang tidak hanya copy-paste. Semua
itu perlu kerjasama untuk pengembangan lebih lanjut sehingga sistem deteksi plagiat
dapat bekerja lebih canggih sesuai tuntutan permasalahan.
Tahap perancangan memutuskan bagaimana sistem akan berjalan, dalam hal
hardware, software, dan infrastruktur jaringan; user interface, form dan laporan; spesifik
program, database, serta dokumen-dokumen yang akan dibutuhkan. Meskipun sebagian
besar keputusan strategis tentang sistem telah dibuat pada saat pembangunan konsep
sistem selama tahap analisis, langkah-langkah pada tahap perancangan menentukan
bagaimana tepatnya sistem akan berjalan (Alan Dennis, dkk, 2009).
Gambar 3. 1 Skema aliran data pada sistem
Sistem deteksi plagiat secara umum dirancang untuk dapat mendeteksi
kemiripan isi pada dokumen teks, yang dimungkinkan kemiripan ini adalah hasil plagiat.
Inputan sistem diperoleh dari file/dokumen (dalam hal ini file berupa plain text) yang
diupload oleh user. Dokumen yang diupload otomatis akan tersimpan dalam database
sistem, kemudian dokumen dibaca untuk mendapatkan informasi berupa id file, judul,
penulis, jumlah kata, dan ukuran file.
Selanjutnya dokumen akan melewati tahap preprocessing menggunakan text
mining sebelum dibandingkan dengan dokumen-dokumen yang ada pada database
sistem. Tahap ini terdiri dari tokenizing (memecah kalimat ke dalam potongan kata
sekaligus mengubah huruf dalam dokumen menjadi huruf kecil/lowercase), filtering
(membuang stopword/ kata yang tidak deskriptif), dan stemming (mengembalikan setiap
kata ke bentuk dasarnya).
Setelah itu, dokumen hasil preprocess akan melewati tahap processing
menggunakan algoritma Rabin Karp. Tahap ini adalah tahap pencocokan dokumen.
Tahap ini terdiri dari parsing K-gram (memecah kata ke dalam potongan karakter
sebanyak k), hashing (mengubah potongan karakter k ke dalam nilai hash), dan string
matching (pencocokan string hasil hashing).
12
Hasil pencocokan string kemudian dihitung nilai similarity nya menggunakan
Dice's Similarity Coefficient, yang kemudian nilai tersebut diubah ke dalam bentuk
prosentase similarity.
Gambar 3. 2 Arsitektur sistem
3.2 Perancangan Proses
System
User
input dokumen
cek originality
laporan originality
detail laporan
<<extend>>
<<include>>
<<include>>
Gambar 3. 3 Use case diagram
13
1. Use case deskripsi
Tabel 3. 1 Tabel Use case
Nama Use Case Input File
Aktor User
Stakeholders dan Interests User ingin mengecek keaslian file dengan menginput file terlebih dahulu
Deskripsi Singkat Use case ini mendeskripsikan bagaimana User dapat mengecek keaslian file yang diinputkan
Trigger User mengunjungi website PDS
Relationships: Extend
Cek Originality, Laporan originality, Detail laporan
Normal Flow of Events
User System
1. Masuk ke halaman utama website
2. Memilih menu Cek Originality
3. Menampilkan halaman Upload File
4. Input data file
5. Klik tombol Submit
6. Menyimpan file dan menampilkan halaman konfirmasi
7. Klik Cek Originality
8. Mengecek originality dan menampilkan laporan dalam bentuk prosentase similarity
9. Klik pada prosentase similarity
10. Menampilkan laporan dalam bentuk detail similarity
11. Klik Download
12. Mengunduh file
Alternate/exceptional Flows
User System
9a. Klik Upload File lain
11a-1. Klik Print
11a-2. Mencetak file
11a-3. Klik Lihat Teks Penuh
11a-4. Menampilkan teks sumber
14
opt
PreProcess:preProcess
: User
ProcessMining:processMining ProcessRabin:processRabin PostProcess:postProcess
1 : inputFile(id_file, judul, penulis, namafile)
2 : bacaFile()
3 : tampil info file, jmlkata, ukfile
4 : pilih cek originality
5 : tokenizing()
6 : filtering()
7 : stemming()
8 : parsingKgram()
9 : hashing()
10 : stringMatching()
11 : similarity()
12 : tampil lap similarity
13 : uploadFile
14 : tampil form upload file
15 : detailSimilarity()
16 : tampil detail similarity
17 : lihatTeksSumber()
18 : teks sumber
19 : downloadPdf()
20 : download Pdf
21 : cetak()
22 : cetak file
Gambar 3. 4 Sequence diagram
3.3 Perhitungan Manual Berikut contoh perhitungan manual dalam pengecekan dua buah file.
File 1 : Dokumen akan dilakukan pengecekan kemiripan.
File 2 : Mengecek kemiripan dokumen.
Hasil tokenizing, filtering, dan stemming :
File 1 : dokumenlakuecekmirip
File 2 : ecekmiripdokumen
15
Tabel 3. 2 Hasil parsing k-gram No Parsing File 1 Hash Parsing File 2 Hash
1 doku ecek
2 okum cekm
3 kume ekmi
4 umen kmir
5 menl miri
6 enla irip
7 nlak ripd
8 laku ipdo
9 akue pdok
10 kuec doku
11 uece okum
12 ecek kume
13 cekm umen
14 ekmi
15 kmir
16 miri
17 irip
Ket. : K-gram = 4
Modulo = 101
Berikut adalah penghitungan nilai hash :
doku = (100*103) + (111*102) + (111*101) + (111*100)
= 100,000 + 11,100 + 1,070 + 117
= 112,287
Mod = 112,287 mod 101 =76
Rem = 112,287 / 101 = 1111.7524752475
okum = (111*103) + (107*102) + (117*101) + (109*100)
= 111,000 + 10,700 + 1,170 + 109
= 122,979
Mod = 122,979 mod 101 = 62
Rem = 122,979 / 101 = 1217.6138613861
…
Perhitungan ini dilakukan untuk seluruh parsing file 1 dan file 2, sehingga
menghasilkan hashing modulo dan remainder untuk seluruh substring. Kemudian nilai-
nilai tersebut akan dicocokkan menggunakan string matching dan dilakukan pembobotan
menggunakan Dice's Similarity Coefficient.
16
Tabel 3. 3 Hasil penghitungan modulo dan remainder (hasil bagi)
No File 1 File 2
Match Parsing Hashmod Remainder Parsing Hashmod Remainder
1 doku 76 1111,752475 ecek 8 1109,07921 no
… … … … … … … …
10 doku 76 1111,752475 doku 76 1111,75248 yes
11 okum 62 1217,613861 okum 62 1217,61386 yes
12 kume 4 1187,039604 kume 4 1187,0396 yes
13 umen 43 1277,425743 umen 43 1277,42574 yes
14 ecek 8 1109,079208 ecek 8 1109,07921 yes
15 cekm 88 1091,871287 cekm 88 1091,87129 yes
16 ekmi 78 1117,772277 ekmi 78 1117,77228 yes
17 kmir 86 1178,851485 kmir 86 1178,85149 yes
18 miri 50 1195,49505 miri 50 1195,49505 yes
19 irip 99 1163,980198 irip 99 1163,9802 yes
… … … … … … … …
Similarity = ((10*2) / (17+13)) * 100%
= (20 / 30) * 100%
= 2/3 * 100%
= 66.67% 4. Hasil Penelitian dan Pembahasan
4.1 Hasil uji berdasarkan banyaknya konten file Tabel 4.1 berikut adalah informasi file yang akan digunakan untuk pengujian pada
tabel 4.2 dan tabel 4.3. File uji terdiri dari empat buah file yang masing-masing telah
dilakukan penghapusan sebanyak 15%.
Dari tabel 4.2 diatas dapat diketahui bahwa semakin banyak konten file, maka
semakin lama waktu proses.
No Id Nama Kata Ukuran (byte)1 152 11_File_uji_14_kata.txt 14 952 153 12_File_uji_28_kata.txt 28 1943 154 13_File_uji_42_kata.txt 42 3164 155 14_File_uji_56_kata.txt 58 431
Tabel 4. 1 Informasi file uji
No Uji File 1 File 2 Similarity (%) Waktu (s)147 11_File_uji_14_kata.txt 10_File_uji_14_kata.txt 100 0.213548148 12_File_uji_28_kata.txt 10_File_uji_14_kata.txt 69 -0.139719149 13_File_uji_42_kata.txt 11_File_uji_14_kata.txt 50 0.387906150 14_File_uji_56_kata.txt 12_File_uji_14_kata.txt 44 0.335834
Tabel 4. 2 Hasil uji berdasarkan banyaknya konten file
17
4.2 Hasil uji tanpa menggunakan stemming
Dari tabel 4.3 diatas dapat diketahui bahwa tanpa menggunakan stemming akan
mempercepat waktu proses, tetapi akurasi yang similarity nya rendah.
4.3 Hasil uji modulo pada algoritma Rabin-Karp File yang digunakan untuk pengujian modulo dan k-gram adalah file 1 dan 2 pada
tabel 4.1.
Berdasarkan tebel 4.4 diatas dapat disimpulkan bahwa modulo tidak
berpengaruh pada prosentase similarity, tapi berpengaruh pada waktu proses.
4.4 Hasil uji k-gram pada algoritma Rabin-Karp
Berdasarkan tabel 4.5 dapat diketahui bahwa semakin kecil k-gram, akurasi
similarity nya semakin tinggi.
No Uji File 1 File 2 Similarity (%) Waktu (s)151 11_File_uji_14_kata.txt 10_File_uji_14_kata.txt 100 0.038528 152 12_File_uji_28_kata.txt 10_File_uji_14_kata.txt 67 0.057912 153 13_File_uji_42_kata.txt 11_File_uji_14_kata.txt 46 0.061899 154 14_File_uji_56_kata.txt 12_File_uji_14_kata.txt 39 0.084752
Tabel 4. 3 Hasil uji tanpa mengunakan stemming
No Uji Kgram Modulo Similarity (%) Waktu (s)159 1 13 523.944 0.871916161 1 23 523.944 0.153122163 1 43 523.944 0.175531164 1 71 523.944 0.209635165 1 101 523.944 0.093315166 1 151 523.944 0.151603167 1 173 523.944 0.125665168 1 251 523.944 0.177291
Tabel 4. 4 Hasil uji modulo
No Uji Kgram Modulo Similarity (%) Waktu (s)172 1 101 523.944 0.045441173 2 101 128.571 0.105267174 3 101 71.0145 0.101174175 4 101 69.1176 0.020179176 5 101 68.6567 0.150793177 6 101 68.1818 0.183669178 7 101 67.6923 0.235006
Tabel 4. 5 Hasil uji k-gram
18
5. Kesimpulan dan Saran 5.1 Kesimpulan Berdasarkan percobaan-percobaan yang telah dilakukan, dapat ditarik
kesimpulan sebagai berikut:
1. Sistem dalam membandingkan file memberikan hasil berupa prosentase similarity.
2. Berikut faktor yang mempengaruhi performa algoritma Rabin Karp :
a. Semakin banyak konten sebuah file, waktu prosesnya (running time) akan
semakin lama.
b. Penggunaan stemming berpengaruh pada keakuratan nilai similarity dan waktu
proses. Dengan menggunakan stemming waktu proses cenderung lebih lama,
tetapi tingkat akurasi similaritynya lebih tinggi.
c. Nilai modulo berpengaruh pada waktu proses, tetapi tidak pada nilai similarity.
d. Semakin kecil k-gram menghasilkan akurasi nilai similarity yang lebih baik,
dibandingkan k-gram yang lebih besar.
5.2 Saran Berikut saran-saran untuk penelitian lebih lanjut:
1. Sistem dapat membandingkan file uji dengan semua file sumber pada database
sistem.
2. Jika masih menggunakan algoritma Rabin-Karp, lebih dibenahi pada tahap stemming
agar hasil pencocokannya lebih akurat.
3. Sistem dapat mengkonversi dokumen teks dengan ekstensi lain seperti .doc dan .pdf,
untuk kemudahan pengguna.
4. Sistem diharapkan dapat mendeteksi sinonim dan berbagai bentuk plagiat.
19
Daftar Pustaka Atmopawiro, Alsasian.2006. Pengkajian dan Analisis Tiga Algoritma Efisien Rabin-Karp,
Knuth-Morris-Pratt, dan Boyer-Moore dalam Pencarian Pola dalam Suatu Teks.
Makalah tidak Terpublikasi. Program Studi Teknik Informatika Institut Teknologi
Bandung.
Cormen, Thomas H, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. 2009.
Introduction to Algorithms. MIT Press, USA.
Dennis, Alan. Haley, Barbara Wixom, David Tegarden. 2009. System Analysis Design
UML Version 2.0 An Object-Oriented Approach Third Edition. John Wiley & Sons,
Inc. USA.
Feldman, Ronen, James Sanger. 2007. The Text Mining Handbook. Cambridge University
Press.
Gipp, Bela, Norman Meuschke. 2011. Citation Pattern Matching Algorithms for Citation-
based Plagiarism Detection: Greedy Citation Tiling, Citation Chunking and
Longest Common Citation Sequence. Proceeding of the 11th ACM Symposium on
Document Engineering. Mountain View, CA, USA.
Information Retrieval Tutorial : Stemming Porter untuk Bahasa Indonesia.
“http://kabulkurniawan.com/2012/03/17/information-retrieval-tutorial-stemming-
porter-untuk-bahasa-indonesia/” diakses Selasa, 3 juli 2012 jam 10.49 wib.
KBBI 1997, 775.
Kosinov, Serhiy. 2001. Evaluation of n-grams conflation approach in text-based
information retrieval. Unpublished journal. Computing Science Department,
University of Alberta, Canada.
Lecroq. Thierry, Christian Charras. 2006. Handbook of Exact String-Matching
Algoritms. http://www-igm.univ-mlv.fr/~lecroq/string/string.pdf
didownload Sabtu, 19 Mei 2012 jam 08.21 wib
Lukashenko, Romans, Vita Graudina, Janis Grundspenkis. 2007. Computer-Based
Plagiarism Detection Methods and Tools: An Overview. International Conference
on Computer Systems and Technologies – CompSysTech’07.
Mooney, Raymond J. 2006. CS 391L: Machine Learning Text Categorization. Lecture
slides. University of Texas at Austin.
Munir, Rinaldi. 2004. Bahan Kuliah IF2251 Strategi Algoritmik : Algoritma Pencarian String
(String Matching). Departemen Teknik Informatika. ITB Bandung.
Rabin Karp Matching. http://www.cedarville.edu/ personal/ personalpages/ shomper/
cs3410_web/ resources/ rabin_karp_matching.ppt diakses Senin, 5 November
2012 jam 14.12 wib.
20
Similarity Measure. “http://yudiagusta.wordpress.com/2008/05/13/similarity-measure/”
diakses Kamis, 7 Maret 2013 jam 21.52 wib.
Singh, Rajender Chillar, Barjesh Kochar. 2008. RB-Matcher: String Matching Technique.
World Academy of Science, Engineering and Technology 42.
Stein, Benno, Sven Meyer zu Eissen. 2006. Selected Papers from the 29th Annual
Conference of the German Classification Society (GfKl) Magdeburg: Near
Similarity Search and Plagiarism Analysis. ISBN 1431-8814, pp. 430-437, c
Springer 2006.
Triawati, Candra. 2009. Metode Pembobotan Statistical Concept Based untuk Klastering
dan Kategorisasi Dokumen Berbahasa Indonesia. IT TELKOM Bandung.
Zaka, Bilal. 2009. Theory and Applications of Similarity Detection Technique. Disertation.
Institute for Information Systems and Computer Media (IISCM), Graz University
of Technology Austria.