Revisi Proposal

Embed Size (px)

Citation preview

PROPOSAL SKRIPSI

PENGEMBANGAN APLIKASI PENDETEKSI PLAGIARISME PADA DOKUMEN TEKS MENGGUNAKAN ALGORITMA RABIN-KARP

Oleh Kadek Versi Yana Yoga (0815051046)

JURUSAN PENDIDIKAN TEKNIK INFORMATIKA FAKULTAS TEKNIK KEJURUAN UNIVERSITAS PENDIDIKAN GANESHA SINGARAJA 2012

A. JUDUL PENELITIAN :

PENGEMBANGAN APLIKASI PENDETEKSI DOKUMEN TEKS MENGGUNAKAN

PLAGIARISME

PADA

ALGORITMA RABIN-KARP B. LATAR BELAKANG MASALAH Dengan semakin berkembangnya teknologi informasi menyebabkan semakin mudahnya pertukaran informasi dewasa ini tidak hanya membawa dampak positif bagi kemajuan teknologi, tetapi juga membawa dampak negatif. Dampak negatif ini biasa dilakukan oleh mahasiswa , dimana mahasiswa dalam menyelesaikan tugas cukup dengan teknik copy-paste dan mengganti cover tugas milik teman. Meskipun telah berulang kali diberi peringatan, tetap saja praktik penjiplakan dalam tugas bahkan ujian dilakukan oleh mahasiswa. Hal ini menimbulkan kemalasan pada mahasiswa dan juga masalah dalam tahap evaluasi terhadap hasil pembelajaran mahasiswa. Tidak mudah bagi seorang pengajar untuk memberikan penilaian objektif terhadap tugas atau ujian yang telah diberikan kepada mahasiswa. Akan semakin bertambah parah apabila mahasiswa yang mengikuti perkuliahan tersebut jumlahnya sangat banyak. Kemungkinan terjadinya penjiplakan akan semakin besar dan akan semakin sulit mendeteksinya mengingat begitu banyak dokumen teks yang terlibat. Praktik penjiplakan ini termasuk kegiatan plagiarisme. Plagiarisme merupakan suatu tindakan menjiplak karya seseorang dan kemudian mengakuinya sebagai karya sendiri. Adapun beberapa tipe plagiarism (Kurniawati,2008) yaitu (1) Word-for-word plagiarism adalah menyalin setiap kata secara langsung tanpa diubah sedikitpun, (2)Plagiarism of authorship adalah mengakui hasil karya orang lain sebagai hasil karya sendiri dengan cara mencantumkan nama sendiri menggantikan nama pengarang yang sebenarnya, (3)Plagiarism of ideas adalah mengakui hasil pemikiran atau ide orang lain, (4)Plagiarism of sources, jika seorang penulis menggunakan kutipan dari penulis lainnya tanpa mencantumkan sumbernya. Tindakan plagiarisme ini sangatlah buruk tidak hanya bagi karya orang yang dijiplak tetapi juga orang yang melakukan tindakan plagiat ini. Plagiarisme dapat mematikan kreatifitas seseorang karena sudah terbiasa mengambil sesuatu yang bukan miliknya dan menimbulkan kecenderungan sikap malas dan tidak mau

2

berfikir. Tindakan plagiarisme secara perlahan harus ditekan sejak dini, dan salah satu cara yaitu dengan membuat sebuah sistem yang dapat mendeteksi penjiplakan pada dokumen teks. Berikut ini beberapa metode yang digunakan untuk mendeteksi plagiarisme (Kurniawati,2008): 1.2.

Perbandingan Teks Lengkap. Metode ini diterapkan dengan Dokumen Fingerprinting. Dokumen fingerprinting merupakan

membandingkan semua isi dokumen. metode yang digunakan untuk mendeteksi keakuratan salinan antar dokumen, baik semua teks yang terdapat di dalam dokumen atau hanya sebagian teks saja. Prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan 3. Kesamaan Kata Kunci. Prinsip dari metode ini adalah mengekstrak kata kunci dari dokumen dan kemudian dibandingkan dengan kata kunci pada dokumen yang lain. Pendekatan yang digunakan pada metode ini adalah teknik dot. Berdasarkan ketiga metode di atas, sudah banyak dibuat sistem pendeteksi plagiarisme pada dokumen teks di antaranya yaitu: Pembuatan Program Aplikasi untuk Pendeteksian Kemiripan Dokumen Teks dengan Algoritma Smith-Waterman (Thalib,2010). Pada sistem pendeteksi plagiarisme ini menggunakan algoritma Smith-Waterman, algoritma Smith-Waterman merupakan algoritma klasik yang telah dikenal luas dalam bidang bioinformatika yang dipakai sebagai sebagai metode yang dapat mengidentifikasi penyejajaran sekuens yaitu proses penyusunan dua rangkaian/susunan atau rentetan nukleotida atau susunan protein sehingga kemiripan antara dua rangkaian tersebut akan terlihat. Berdasarkan fungsi proses penyejajaran sekuens tersebut, algoritma ini dapat diterapkan dalam pemprograman komputer untuk pendeteksian kesamaan atau pengukuran tingkat kemiripan sebuah dokumen teks dengan dokumen teks lain dengan cara melihat kesamaan isi (local similarities) dari kedua dokumen teks tersebut, namun aplikasi yang dibuat ini masih memiliki batasan masalah yaitu file input masih berupa *.txt dan belum bisa mendeteksi kemiripan pada kata yang bersinonim.

3

Berdasarkan uraian di atas, peneliti tertarik untuk mengembangkan sebuah pendeteksi plagiarisme pada dokumen teks yang dapat melengkapi kekurangan aplikasi sebelumnya yaitu dapat mendeteksi kemiripan pada kata yang bersinonim (Synonym Recognition) dan file imput tidak hanya berupa file *txt menggunakan algoritma Rabin-Karp yang berjudul Aplikasi Pendeteksi Plagiarisme Dokumen Teks Menggunakan Algoritma Rabin-Karp . pada

C.

RUMUSAN MASALAH Dari latar belakang diatas dapat dirumuskan beberapa permasalahan

yang akan dibahas sebagai berikut.1.

Bagaimana rancangan Aplikasi Pendeteksi Plagiarisme Bagaimana implementasi rancangan Aplikasi

pada

Dokumen Teks Menggunakan Algoritma Rabin-Karp ?2.

Pendeteksi

Plagiarisme pada Dokumen Teks Menggunakan Algoritma Rabin-Karp dengan menggunakan bahasa pemrograman Delphi 7 ? D. BATASAN MASALAH Adapun batasan masalah dari Pengembangan Aplikasi Pendeteksi Plagiarisme pada Dokumen Teks Menggunakan Algoritma Rabin-Karp adalah sebagai berikut :1.

Dokumen input

berformat

*.txt, *.html, *.php, *.xml, *.doc,

*.docx, *.rtf.2.

Dokumen yang akan dipakai berupa dokumen teks berbahasa

Indonesia. E. TUJUAN Tujuan pembuatan Aplikasi Pendeteksi Plagiarisme Teks Menggunakan Algoritma Rabin-Karp adalah sebagai berikut.1.

pada Dokumen Dokumen Teks

Merancang

Pendeteksi

Plagiarisme

pada

Menggunakan Algoritma Rabin-Karp.

4

2.

Mengimplementasikan rancangan Aplikasi Pendeteksi Plagiarisme Menggunakan Algoritma Rabin-Karp dengan

pada Dokumen Teks

menggunakan bahasa pemrograman Delphi 7.

F.

MANFAAT Adapun manfaat yang diharapkan dengan diimplementasikannya

Aplikasi Pendeteksi Plagiarisme pada Dokumen Teks Menggunakan Algoritma Rabin-Karp antara lain : 1) Bagi khalayak umum a. Dapat membantu sebagai bahan pertimbangan dalam menentukan plagiarismeb. Dapat digunakan untuk meredam maraknya prilaku penjiplakan

dokumen teks c. Dapat digunakan untuk memotivasi seseorang untuk membuat/ menciptakan karya ilmiah d. Dapat digunakan untuk melindungi hasil karya / temuan ilmiah dari seseorang 2) Bagi peneliti a. Memahami cara untuk mencocokan dua buah dokumen teks. b. Memahami cara untuk mendeteksi plagiarisme pada dokumen teks c. Mengimplementasikan ilmu yang diperoleh di bangku kuliah. d. Menghasilkan Aplikasi Pendeteksi Plagiarisme Teks Menggunakan Algoritma Rabin-Karp. pada Dokumen

G. KAJIAN TEORI

5

1. Plagiarisme 1.1.Pengertian Plagiarisme Kata plagiarisme berasal dari kata Latin plagiarius yang berarti merampok, membajak. plagiarisme merupakan tindakan pencurian atau kebohongan intelektual. Plagiarisme didefinisikan dalam buku Kode Etika Peneliti (MPR LIPI, 2007) sebagai mengambil alih gagasan, atau kata-kata tertulis dari seseorang, tanpa pengakuan pengambilalihan dan dengan niat menjadikannya sebagai bagian dari karya keilmuan yang mengambil. Sedangkan menurut Kamus Besar Bahasa Indonesia (KBBI) Plagiat adalah penjiplakan atau pengambilan karangan, pendapat, dan sebagainya dari orang lain dan menjadikannya seolah karangan dan pendapat sendiri. (KBBI, 2008). Pelaku plagiat disebut sebagai plagiator. Beberapa tipe plagiarisme yaitu (Kurniawati,2008) :1. Word-for-word plagiarism adalah menyalin setiap kata secara

langsung tanpa diubah sedikitpun.2.

Plagiarism of authorship adalah mengakui hasil karya orang lain

sebagai hasil karya sendiri dengan cara mencantumkan nama sendiri menggantikan nama pengarang yang sebenarnya.3. Plagiarism of ideas adalah mengakui hasil pemikiran atau ide orang

lain.4. Plagiarism of sources, jika seorang penulis menggunakan kutipan

dari penulis lainnya tanpa mencantumkan sumbernya.1.2.

Metode Pendeteksi Plagiarisme

Metode pendeteksi plagiarisme dibagi menjadi tiga bagian yaitu metode perbandingan teks lengkap, metode dokumen fingerprinting, dan metode kesamaan kata kunci. Metode pendeteksi plagiarisme dapat dilihat pada gambar G.1: (Kurniawati,2008)

6

Gambar G.1: Klarifikasi metode pendeteksian plagiarisme Berikut ini penjelasan dari masing-masing metode dan algoritma pendeteksi plagiarisme1. Perbandingan

Teks

Lengkap.

Metode

ini

diterapkan

dengan

membandingkan semua isi dokumen. Dapat diterapkan untuk dokumen yang besar. Pendekatan ini membutuhkan waktu yang lama tetapi cukup efektif, karena kumpulan dokumen yang diperbandingkan adalah dokumen yang disimpan pada penyimpanan lokal. Metode perbandingan teks lengkap tidak dapat diterapkan untuk kumpulan dokumen yang tidak terdapat pada dokumen lokal. Algoritma yang digunakan pada metode ini adalah algoritma Brute-Force, algoritma edit distance, algoritma Boyer Moore dan algoritma lavenshtein distance2. Dokumen Fingerprinting. Dokumen fingerprinting merupakan metode yang

digunakan untuk mendeteksi keakuratan salinan antar dokumen, baik semua teks yang terdapat di dalam dokumen atau hanya sebagian teks saja. Prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan. Misalnya Rabin-Karp, Winnowing dan Manber 3. Kesamaan Kata Kunci. Prinsip dari metode ini adalah mengekstrak kata kunci dari dokumen dan kemudian dibandingkan dengan kata kunci pada dokumen yang lain. Pendekatan yang digunakan pada metode ini adalah teknik dot.1.3.

Pendekatan Metode Dokumen Fingerprinting

Seperti yang telah diuraikan sebelumnya, prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan kemudian menyimpannya dalam sebuah skema atau bagan. Ide dasar metode dokumen fingerprinting adalah menyimpan skema atau bagan kecil yang berisi kumpulan angka atau bilangan yang akan7

dibandingkan dengan skema atau bagan antar dua dokumen. Skema digital dokumen fingerprinting terdiri dari sejumlah posisi yang diberi tanda di dalam dokumen, algoritma fingerprinting yang akan memilih tanda yang akan di tambahkan untuk setiap posisi tergantung pada jumlah salinan. Secara umum prinsip kerja dari metode dokumen fingerprinting adalah dengan tahapan sebagai berikut : 1. Asumsikan teks adalah string s yang panjangnya t. 2. Hilangkan tanda baca dan spasi.3. Sebelum melakukan fungsi hash dengan menggunakan

notasi

k-gram.

K-gram dari

merupakan k.

substring

yang

berdampingan pilih pengguna.

panjang

Membagi

dokumen

menjadi k-gram, dimana k merupakan parameter yang di4. Lakukan fungsi hash untuk setiap k-grams. 5. Memilih

beberapa

hasil

hash

menjadi

dokumen

fingerprinting.

2. Text Mining 2.1.

Pengertian Text Mining

Text mining, yang juga disebut sebagai Text Data Mining (TDM) atau Knowledge Discovery in Text (KDT), secara umum mengacu pada proses ekstraksi informasi dari dokumen-dokumen teks tidak terstruktur (unstructured). Teks mining dapat didefinisikan sebagai penemuan informasi baru dan tidak diketahui sebelumnya oleh komputer, dengan secara otomatis mengekstrak informasi dari sumber-sumber teks tidak terstruktur yang berbeda. Kunci dari proses ini adalah menggabungkan informasi yang berhasil diekstraksi dari berbagai sumber (Tan,1999). Tujuan utama text mining adalah mendukung proses knowledge pada koleksi dokumen yang besar. Pada prinsipnya, text mining adalah bidang ilmu multidisipliner, melibatkan information retrieval (IR), text analysis, information

8

extraction (IE), clustering, categorization, visualization, database technology, natural language processing (NLP), machine learning, dan data mining. Dapat pula dikatakan bahwa text mining merupakan salah satu bentuk aplikasi kecerdasan buatan (artificial intelligence / AI). Text mining mencoba memecahkan masalah information overload dengan menggunakan teknik-teknik dari bidang ilmu yang terkait. Text mining dapat dipandang sebagai suatu perluasan dari data mining atau knowledge-discovery in database (KDD), yang mencoba untuk menemukan pola-pola menarik dari basis data berskala besar. Namun text mining memiliki potensi komersil yang lebih tinggi dibandingkan dengan data mining, karena kebanyakan format alami dari penyimpanan informasi adalah berupa teks. Text mining menggunakan informasi teks tidak terstruktur dan mengujinya dalam upaya mengungkap struktur dan arti yang tersembunyi di dalam teks. Perbedaan mendasar antara text mining dan data mining terletak pada sumber data yang digunakan. Pada data mining, pola-pola diekstrak dari basis data yang terstruktur, sedangkan di text mining, pola-pola diekstrak dari data tekstual (natural language). Secara umum, basis data didesain untuk program dengan tujuan melakukan pemrosesan secara otomatis, sedangkan teks ditulis untuk dibaca langsung oleh manusia (Hearst, 2003).2.2.

Ruang Lingkup Text Mining

Text mining merupakan suatu proses yang melibatkan beberapa area teknologi. Namun secara umum proses-proses pada teks mining mengadopsi proses data mining. Bahkan beberapa teknik dalam proses text mining juga menggunakan teknik-teknik data mining. Ada empat tahap proses pokok dalam text mining, yaitu pemrosesan awal terhadap teks (text preprocessing), transformasi teks (text transformation), pemilihan fitur (feature selection), dan penemuan pola (pattern discovery). 2.2.1. Text Preprocessing Tahap ini melakukan analisis semantik (kebenaran arti) dan sintaktik (kebenaran susunan) terhadap teks. Tujuan dari pemrosesan awal adalah untuk

9

mempersiapkan teks menjadi data yang akan mengalami pengolahan lebih lanjut. Operasi yang dapat dilakukan pada tahap ini meliputi part-of-speech (PoS) tagging, menghasilkan parse tree untuk tiap-tiap kalimat, dan pembersihan teks.2.2.2. Text Transformation

Transformasi teks atau pembentukan atribut mengacu pada proses untuk mendapatkan representasi dokumen yang diharapkan. Pendekatan representasi dokumen yang lazim digunakan adalah model bag of words dan model ruang vector (vector space model). Transformasi teks sekaligus juga melakukan pengubahan kata-kata ke bentuk dasarnya dan pengurangan dimensi kata di dalam dokumen. Tindakan ini diwujudkan dengan menerapkan stemming dan menghapus stopwords. 2.2.3. Feature Selection Pemilihan fitur (kata) merupakan tahap lanjut dari pengurangan dimensi pada proses transformasi teks. Walaupun tahap sebelumnya sudah melakukan penghapusan kata-kata yang tidak deskriptif (stopwords), namun tidak semua katakata di dalam dokumen memiliki arti penting. Oleh karena itu, untuk mengurangi dimensi, pemilihan hanya dilakukan terhadap kata kata yang relevan yang benarbenar merepresentasikan isi dari suatu dokumen. Ide dasar dari pemilihan fitur adalah menghapus kata-kata yang kemunculannya di suatu dokumen terlalu sedikit atau terlalu banyak. Algoritma yang digunakan pada teks mining, biasanya tidak hanya melakukan perhitungan pada dokumen saja, tetapi juga pada feature. Empat macam feature yang sering digunakan:1.

Character, merupakan komponan individual, bisa huruf, angka,

karakter spesial dan spasi, merupakan block pembangun pada level paling tinggi pembentuk semantik feature, seperti kata, term dan concept. Pada umumnya, representasi character-based ini jarang digunakan pada beberapa teknik pemrosesan teks.2.

Words.

10

3.

Terms merupakan single word dan multiword phrase yang terpilih

secara langsung dari corpus. Representasi term-based dari dokumen tersusun dari subset term dalam dokumen.4.

Concept, merupakan feature yang di-generate dari sebuah dokumen

secara manual, rule-based, atau metodologi lain. 2.2.4. Pattern Discovery Pattern discovery merupakan tahap penting untuk menemukan pola atau pengetahuan (knowledge) dari keseluruhan teks. Tindakan yang lazim dilakukan pada tahap ini adalah operasi teks mining, dan biasanya menggunakan teknik-teknik data mining. Dalam penemuan pola ini, proses teks mining dikombinasikan dengan proses-proses data mining. Masukan awal dari proses teks mining adalah suatu data teks dan menghasilkan keluaran berupa pola sebagai hasil interpretasi atau evaluasi. Apabila hasil keluaran dari penemuan pola belum sesuai untuk aplikasi, dilanjutkan evaluasi dengan melakukan iterasi ke satu atau beberapa tahap sebelumnya. Sebaliknya, hasil interpretasi merupakan tahap akhir dari proses teks mining dan akan disajikan ke pengguna dalam bentuk visual.3. Ekstraksi dokumen

Teks yang akan dilakukan proses teks mining, pada umumnya memiliki beberapa karakteristik diantaranya adalah memiliki dimensi yang tinggi, terdapat noise pada data, dan terdapat struktur teks yang tidak baik. Cara yang digunakan dalam mempelajari suatu data teks, adalah dengan terlebih dahulu menentukan fitur-fitur yang mewakili setiap kata untuk setiap fitur yang ada pada dokumen. Sebelum menentukan fitur-fitur yang mewakili, diperlukan tahap preprocessing yang dilakukan secara umum dalam teks mining pada dokumen, yaitu case folding, tokenizing, filtering, stemming.3.1. Case folding dan Tokenizing

Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf a sampai dengan z yang diterima. Karakter selain huruf

11

dihilangkan dan dianggap delimiter. Tahap tokenizing / parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya.3.2.

Filtering

Filtering adalah tahap mengambil kata-kata penting dari hasil token. Bisa menggunakan algoritma stoplist (membuang kata yang kurang penting) atau wordlist (menyimpan kata penting). Stoplist / stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words. Contoh stopwords adalah yang, dari di dan seterusnya.3.3.

Stemming

Stemming merupakan suatu proses mentransformasikan kata-kata yang terdapat dalam suatu dokumen ke kata-kata akarnya (root word) dengan menggunakan aturan-aturan tertentu. Sebagai contoh, kata bersama, kebersamaan, menyamai, akan distem ke root wordnya yaitu sama. Proses stemming pada teks berbeda dengan stemming pada teks berbahasa Inggris. Pada teks berbahasa Inggris, proses yang diperlukan hanya proses menghilangkan sufiks. Sedangkan pada teks , selain sufiks, juga harus menghilangkan prefiks, dan konfiks yang ada pada suatu kata.3.3.1.

Algoritma Stemming Nazief & Adriani

Algoritma yang dibuat oleh Bobby Nazief dan Mirna Adriani ini memiliki tahap-tahap sebagai berikut:1. Cari kata yang akan distem dalam kamus. Jika ditemukan maka

diasumsikan bahwa kata tesebut adalah root word. Maka algoritma berhenti.2. Inflection Suffixes (-lah, -kah, -ku, -mu, atau -nya)

dibuang. Jika berupa particles (-lah, -kah, -tah atau -pun) maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns (-ku, -mu, atau -nya), jika ada.3. Hapus Derivation Suffixes (-i, -an atau -kan). Jika kata

ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a

12

a.

Jika -an telah dihapus dan huruf terakhir dari kata tersebut

adalah -k, maka -k juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b. b. Akhiran yang dihapus (-i, -an atau -kan) dikembalikan, lanjut ke langkah 4.4. Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang

dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b.a. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika

ditemukan maka algoritma berhenti, jika tidak pergi ke langkah 4b.b. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika

root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti.5. Melakukan Recoding. 6. Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata

awal diasumsikan sebagai root word. Proses selesai. Tipe awalan ditentukan melalui langkah-langkah berikut: 1. Jika awalannya adalah: di-, ke-, atau se- maka tipe awalannya secara berturut-turut adalah di-, ke-, atau se-. 2. Jika awalannya adalah te-, me-, be-, atau pe- maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya. 3. Jika dua karakter pertama bukan di-, ke-, se-, te-, be-, me-, atau pe- maka berhenti. Tabel G.1. Awalan bedikemeseKombinasi awalan akhiran yang tidak diijinkan

(Agusta,2009) Akhiran yang tidak diijinkan -i -an -I, -kan -an -I, kan

13

Tabel G.2. Jenis Awalan Berdasarkan Tipe Awalannya (Agusta,2009) Tipe Awalan diKeSeTeTerTer-luluh Akhiran yang harus dihapus diKeSeTeTerTer-

Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan aturan dibawah ini: 1. Aturan untuk reduplikasi.- Jika kedua kata yang dihubungkan oleh kata penghubung adalah

kata yang sama maka root word adalah bentuk tunggalnya, contoh : buku-buku root word-nya adalah buku.- Kata lain, misalnya bolak-balik, berbalas-balasan, dan seolah-

olah. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata berbalas-balasan, berbalas dan balasan memiliki root word yang sama yaitu balas, maka root word berbalas-balasan adalah balas. Sebaliknya, pada kata bolak-balik, bolak dan balik memiliki root word yang berbeda, maka root word-nya adalah bolak-balik 2. Tambahan bentuk awalan dan akhiran serta aturannya. - Untuk tipe awalan mem-, kata yang diawali dengan awalan memp- memiliki tipe awalan mem-. - Tipe awalan meng-, kata yang diawali dengan awalan mengk- memiliki tipe awalan meng-. 4. Synonym Recognition Synonym Recognition atau pengenalan sinonim adalah pendeteksian plagiarisme melalui pendekatan sinonim. Dalam hal ini dokumen satu dibandingkan dengan dokumen lain dengan mendeteksi kata-kata yang

14

mengandung sinonim sehingga tingkat kesamaan dapat dikatakan lebih akurat. Pada proses pencocokan sinonim, kaitannya antara isi dokumen dengan kamus sinonim yang terdapat pada database. Jika kata tidak tersedia pada kamus sinonim, maka tidak akan melakukan proses synonym recognition. Seluruh isi dokumen akan discan dan dicocokkan dengan kata yang ada dalam kamus, kemudian akan diubah berdasarkan isi kamus sinonim tersebut. Adapun contoh kinerja sistem untuk synonym recognition dengan kalimat komputer dipakai untuk mengolah data. Dan hasil pendeteksian sinonimnya adalah sebagai berikut: Dipakai=Digunakan Kata dipakai akan diganti dengan kata digunakan. Sehingga kalimat yang semula komputer dipakai untuk mengolah data diganti dengan kata komputer digunakan untuk mengolah data. 5. String Matching Pengertian string menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology (NIST) adalah susunan dari karakter-karakter (angka, alfabet atau karakter yang lain) dan biasanya direpresentasikan sebagai struktur data array. String dapat berupa kata, frase, atau kalimat. Pencocokan string merupakan bagian penting dari sebuah proses pencarian string (string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam dokumen tergantung dari teknik atau cara pencocokan string yang digunakan. Pencocokan string (string matching) menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology (NIST), diartikan sebagai sebuah permasalahan untuk menemukan pola susunan karakter string di dalam string lain atau bagian dari isi teks.6. Algoritma Rabin-Karp

15

Algoritma Karp-Rabin diciptakan oleh Michael O. Rabin dan Richard M. Karp pada tahun 1987 yang menggunakan fungsi hashing untuk menemukan pattern di dalam string teks . Karakterikstik Algoritma Karp-Rabin: (Fernando, 2009) menggunakan sebuah fungsi hashing fase prepocessing menggunakan kompleksitas waktu O(m) Untunk fase pencarian kompleksitasnya : O(mn)

Waktu yang diperlukan O(n+m) Fungsi hashing menyediakan metoda sederhana untuk menghindari perbandingan jumlah karakter yang kuadratik di dalam banyak kasus atau situasi. Dari pada melakukan pemeriksaan terhadap setiap posisi dari teks ketika terjadi pencocokan pola, sepertinya lebih baik effisien untuk melakukan pemeriksaan hanya jika teks yang sedang kita proses memiliki kemiripan seperti pada pattern. Untuk melakukan pengecekan kemiripan antara dua kata ini digunakan fungsi hash. Untuk membantu algoritma ini, maka fungsi hash harus memenuhi hal-hal berikut ini : 6.1. dapat dihitung dengan efisien memilik perbedaan yang tinggi untuk berbagai jenis string Fungsi Hashing

Fungsi Hash adalah sebuah fungsi yang mengkonvert setiap string menjadi bilangan, yang disebut hash value. Algoritma Rabin-Karp didasarkan pada fakta jika dua buah string sama maka harga hash valuenya pasti sama. Akan tetapi ada masalah yang timbul dari hal ini, masalahnya yaitu ada begitu banyak string yang berbeda yang kemungkinan memiliki hash value yang sama, permasalahan ini dapat dipecahkan dengan penggunaan kode ASCII dari karakter dalam penetuan hash value Kunci agar algoritma Rabin-Karp yang efektif, terdapat pada pemilihan hash valuenya. Salah satu cara yang terkenal dan efektif adalah memperlakukan setiap substring sebagai suatu bilangan dengan basis tertentu, biasanya yang dijadikan basis adalah bilangan prima berukuran besar.

16

Secara teknis, algoritma rooling hash ini mirip dengan representasi bilangan bulat. Keuntungan yang paling penting yang didapat dengan representasi ini adalah memungkinkan kita untuk menghitung hash value dari substring berikutnya dengan memanfaatkan substring sebelumnya dengan sejumlah operasi yang konstan, terlepas dari panjang setiap substring. Gambar di bawah ini merupakan rumus untuk mencari hash value:

Gambar G.2. Rumus Mencari Hash Value. Keterangan: h: hash value c: nilai ascii karakter b: basis(bilangan prima) k: banyaknya karakter Hash value dari substring berikutnya dapat dihitung dengan menggunakan rumus dibawah ini:

Gambar G.3. Rumus Mencari Hash Value Substring Berikutnya Sebagai contoh dari string abracadabra , dan mencari pattern dengan panjang 3 dan basisnya 3. Hash value bra bisa dicari dari hash value abr , caranya seperti dibawah ini:

6.2.

K-Grams

K-grams adalah rangkaian terms dengan panjang K. Kebanyakan yang digunakan sebagai terms adalah kata. K-gram merupakan sebuah metode yang

17

diaplikasikan untuk pembangkitan kata atau karakter. Metode k-grams ini digunakan untuk mengambil potongan-potongan karakter huruf sejumlah k dari sebuah kata yang secara kontinuitas dibaca dari teks sumber hingga akhir dari dokumen.6.3.

Prinsip Kerja Algoritma Rabin-Karp

Pada dasarnya, algoritma Rabin-Karp akan membandingkan hash value dari string masukan dan substring pada teks. Apabila sama, maka akan dilakukan perbandingan sekali lagi terhadap karakter-karakternya. Apabila tidak sama, maka substring akan bergeser ke kanan. Kunci utama performa algoritma ini adalah perhitungan yang efisien terhadapa hash value substring pada saat penggeseran dilakukan. Berikut dijelaskan contoh cara kerja algoritma Rabin-Karp diberikan masukan cab dan teks aabbcaba. Fungsi hash yang dipakai misalnya akan menambahkan nilai keterurutan setiap huruf dalam alfabet (a = 1, b = 2, dst.) dan melakukan modulo dengan 3. Didapatkan hash value dari cab adalah 0 dan tiga karakter pertama pada teks yaitu aab adalah 1.

Gambar G.4. Fingerprint awal (Firdaus, 2008) Hasil perbandingan ternyata tidak sama, maka substring pada teks akan begeser satu karakter ke kanan. Algoritma tidak menghitung kembali hash value substring. Disinilah dilakukan apa yang disebut rolling hash yaitu mengurangi nilai karakter yang keluar dan menambahkan nilai karakter yang masuk sehingga didapatkan kompleksitas waktu yang relatif konstan pada setiap kali pergeseran.

18

Gambar G.5. Menggeser fingerprint (Firdaus, 2008) Setelah pergeseran, didapatkan hash value dari fingerprint abb (abb = aab a + b) menjadi dua (2 = 1 1 + 2).

Gambar G.6. Perbandingan kedua (Firdaus, 2008) Hasil perbandingan juga tidak sama, maka dilakukan pergeseran. Begitu pula dengan perbandingan ketiga. Pada perbandingan keempat, didapatkan hash value yang sama.

Gambar G.7. Perbandingan keempat (Firdaus, 2008) Karena hash value sama, maka dilakukan perbandingan string karakter per karakter antara bca dan cab. Didapatkan hasil bahwa kedua string tidak sama. Kembali substring bergeser ke kanan.

19

Gambar G.8. Perbandingan kelima (Firdaus, 2008) Pada perbandingan yang kelima, kedua hash value dan karakter pembentuk string sesuai, sehingga solusi ditemukan. Dari hasil perhitungan, kompleksitas waktu yang dibutuhkan adalah O(m+n) dengan m adalah panjang string masukan dan n adalah jumlah looping yang dilakukan untuk menemukan solusi. Secara garis besar, algoritma Rabin-Karp dapat dijelaskan dengan pseudocode berikut: (Firdaus,2008)

Gambar G.9. Algoritma Rabin-Karp untuk multiple pattern (Firdaus, 2008)

20

Berdasarkan hasil penelitian yang dilakukan oleh Eko Nugroho dalam Perancangan Sistem Deteksi Plagiarisme Dokumen Teks Dengan Menggunakan Algoritma Rabin-Karp (Nugroho, 2011) didapat kesimpulan bahwa algoritma Rabin-Karp yang dimodifikasi(melakukan satu kali pengeceken yaitu pada hash value) mempunyai rata-rata waktu proses yang lebih baik dibandingkan dengan algoritma Rabin-Karp yang tidak dimodifikasi(melakukan dua kali pengeceken yaitu pada hash value dan karakter-karakternya), terutama dokumen teks yang mempunyai size/ukuran file yang besar, berdasarkan hal ini peneliti menggunakan algoritma Rabin-Karp modifikasi, dimana dalam menentukan hash value menggunakan rumus pada gambar G.2. dengan menggunakan rumus tersebut maka tidak ada substring yang berbeda memiliki hash value yang sama sehingga cukup melakukan perbandingan satu kali saja yaitu membandingkan hash valuenya. Berikut dijelaskan contoh cara kerja algoritma Rabin-Karp modifikasi yang menggunakan rumus gambar G.2. Diberikan masukan cab dan teks aabbcaba. Langkah pertama cari hash value dari string cab berdasarkan rumus fungsi hash sehingga didapat: hash(cab)=1280.hash(cab)=12 80

c

b

c

a aabbcaba hash(aab)= 1262

Gambar G.10. Fingerprint awal Hasil perbandingan hash valuenya ternyata tidak sama, maka substring pada teks akan bergeser satu karakter ke kanan. Algoritma tidak menghitung kembali hash value substring, melainkan mengunakan rumus pada gambar G3 untuk mencari hash value substring berikutnya.hash(cab)=12 80

c

a

b

a aabbcaba hash(abb)= 1265

Gambar G.11. Menggeser Fingerprint

21

Setelah mengalami pergeseran didapatkan hash value dari fingerprint abb =1265. Setelah itu dilakukan lagi proses perbandingan, dan mendapatkan hasil yang tidak sama. Begitu juga dengan perbandingan ketiga dan keempat tidak menghasilkan perbandingan yang sama. Pada perbandingan yang kelima didapatkan hash value yang sama.hash(cab)=12 80

c

a

b

.

a aabbcaba hash(cab)=1 280

Gambar G.12. Perbandingan kelima (string ditemukan) Pada perbandingan yang kelima, kedua hash value dan karakter pembentuk string sesuai, sehingga solusi ditemukan.6.4. Pengukuran nilai similarity

Ide dasar dari pendekatan k-grams meliputi dua tahap sederhana. Tahap pertama, membagi kata menjadi k-grams. Kedua, mengelompokkan hasil terms dari k-grams yang sama. Kemudian untuk menghitung similarity dari kumpulan kata tersebut maka digunakan Dices Similarity Coefficient untuk pasangan kata yang digunakan. Nilai similaritas tersebut dapat dihitung dengan menggunakan :

Dimana S merupakan nilai similarity, dan C merupakan jumlah k-grams yang sama dari dua buah teks yang di bandingkan, sedangkan A, B merupakan jumlah k-grams dari masing maisng teks yang dibandingkan. Berikut ini adalah contoh penghitungan nilai similarity 3 kata dengan K=2 (k-grams). Tabel G.4. Contoh perhitungan nilai similarity Kata Yang Dibandingkan(*) Photography (9) dan Photographic (10) Photography (9) dan Phonetic (7) Photographic (10) dan k-grams yang sama ph ho ot to og gr ra ap= 8 Ph ho = 2 Ph ho ic =3 similarity 2*8/(9+10) = 0.84 2*2/(9+7) = 0.25 2*3/(10+7) = 0.3522

Phonetic (7) * jumlah k-grams dari kata tersebut. (Kosinov, 2002) H. METODE PENELITIAN Pokok dari penelitian ini adalah untuk membuat suatu rancangan aplikasi pendeteksi plagiarisme pada dokumen teks dimana rancangan ini kemudian diimplementasikan ke dalam Bahasa Pemrograman Delphi 7. Model yang dipakai dalam membangun aplikasi ini adalah model waterfall. Nama model ini sebenarnya adalah Linear Sequential Model. Model ini sering disebut dengan classic life cycle atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing/ verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Model Waterfall yang digunakan dalam membuat aplikasi adalah jenis Model Waterfall menurut referensi Sommerville

Gambar H.1. Model Waterfall menurut Sommerville23

Berikut ini adalah penjelasan langkah-langkah model waterfall menurut Sommerville berdasarkan gambar H.1. : 1. Requirements analysis and definition Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. Orang-orang yang terlibat dalam proses ini adalah analysis sistem (pencetus pembuatan program). Hasil outputnya adalah berupa laporan tentang ide program apa yang akan dibuat, tentang kebutuhan program secara lengkap. Pada langkah ini dilakukan pengumpulan data dalam menunjang pembuatan aplikasi Pendeteksi Plagiarisme yaitu Text Mining, Algoritma Stemming, fungsi hash, dan berbagai materi Delphi 7 dalam pengolahan string.

2.

System and software design: Perancangan System dan design dikerjakan setelah kebutuhan selesai

dikumpulkan secara lengkap. Adapun rancangan System dan rancangan design yang dibuat adalah sebagai berikut :2.1

Rancangan System

Dalam membuat suatu aplikasi, hal penting yang harus diperhatikan adalah kemudahan dalam menggunakan aplikasi tersebut. Kemudahan dalam menggunakan aplikasi ini akan membantu user dalam memahami setiap fungsi yang ditampilkan dalam aplikasi tersebut. Kemudahan dalam menggunakan aplikasi ini dikenal dengan istilah User Friendly. Adapun diagram alir dari sistem pendeteksi plagiarisme dapat dilihat pada flowchart proses sistem pada gambar H.1 berikut ini.

24

SA T TR

Ue mn in u a d k mn s r e g p tk n o u e a li d nd k mny d ji s a o u e g iu

T k M in e s in g

In rms d k mnd n fo a i o u e a k tau ik a n

P rs gK a in

-g m ra s

S b trin us g K-g m ra

S gM tc in trin a h g

Hs Pn eea a il e g c k n P g ris e la ia m

SO TP

Gambar H.2. Flowchart Proses Sistem.

Tk Mi g es i n n

SA T TR

Cr I f Dk m ai n ou e o n

Cs f l i g a aeo n dn d Tk n i g oei n z

Ft rn i ei g l

Snnm eoni n y oy Rc gi o t

S mi g t m e n

RT R EU N

Gambar H.3. Flowchart Teks Mining.

25

Pada flowchat diatas proses diawali user menginputkan dokumen asli dan dokumen uji ke sistem, seterusnya sistem akan melakukan proses text mining pada semua dokumen. Proses text mining yang dilakukan yaitu: (1) case folding dan tokenizing, case folding merupakan proses mengubah semua huruf menjadi hurup kecil dan hanya a sampai z yang diterima, dan tokenizing tahap pemotongan string input berdasarkan tiap kata yang menyusunnya, (2) filtering yaitu tahap adalah tahap mengambil kata-kata penting dari hasil token, (3) stemming yaitu proses mentransformasikan kata-kata yang terdapat dalam suatu dokumen ke kata-kata akarnya (root word) dengan menggunakan aturan-aturan tertentu. Setelah dilakukan proses text mining maka akan didapat informasi dokumen dan kata unik, kata unik ini akan di parsing kgram sehingga didapatkan potongan-potongan dri kata unik tadi, selanjutnya potongan-potongan ini dibandingkan dengan menggunakan alogritma string matching(pencocokan string) dalam aplikasi ini menggunakan algoritma Rabin-Karp modifikasi, setelah selesai proses ini maka akan dihitung nilai similaritynya, setelah proses ini selesai maka akan ditamilkan persentase kemiriban dokumen asli dan dokumen uji. 2.2 Rancangan Antarmuka Salah satu syarat aplikasi yang baik adalah tampilannya yang menarik dan mudahnya user dalam menggunakannya. Adapun rancangan antarmuka aplikasi Pendeteksi Palgiarisme adalah sebagai berikut :

26

Dokume n1

Pilih File

K-grams

Dokume n2

Pilih File

Proses

Gambar H.4. Rancangan Antarmuka Aplikasi Deteksi Plagiarisme pada Teks Dokument 3. Implementation and unit testing: desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Desain tersebut diterjemahkan ke dalam suatu bahasa pemrograman tertentu, aplikasi ini dibangun menggunakan bahasa pemrograman Delphi 7 dalam pembuatan kodenya. Orang yang terlibat dalam proses ini adalah programmer yaitu orang bertugas dalam penerjemahan design dan sistem yang telah dibuat ke dalam bahasa pemrograman. Hasil output dari proses ini adalah Aplikasi secara utuh terkait dengan sistem dan design yang sudah dibuat.

27

4.

Integration and system testing: Penyatuan unit-unit program

kemudian diuji secara keseluruhan (system testing). Orang yang terlibat dalam proses ini adalah programmer dan user terkait dengan pemakaian program. Output dari proses ini adalah program secara utuh serta kekurangan dan kelebihan dari program tersebut terkait dengan pendapat user yang telah mencoba program. Pada penelitian ini, pengujian akan dilakukan dengan menggunakan dua pendekatan, yaitu black box testing dan white box testing. Black box testing berfokus pada persyaratan fungsional perangkat lunak. Metode ini tidak terfokus pada struktur kontrol seperti white box testing tetapi pada domain informasi (pokok informasi). Pada penelitian ini yang menjadi domain informasi adalah file teks bertype *.doc, *.docx, *.rtf, *.txt . White box testing berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji (tabel H.1).

28

Tabel H.1. Instrumen Uji Pengimplementasian Algoritma Rabin-karp No Komponen Algoritma 1 Case Folding 2 3 4 4 5 Tokenizing Filtering Synonym Recognition Stemming String Matching Penjelasan Merubah semua hurup dalam dokumen menjadi hurup kecil Pemotongan string input berdasarkan tiap kata yang menyusunnya Tahap mengambil kata-kata penting dari hasil token (Membuang kata yang kurang penting dari dokumen) pendeteksian plagiarisme melalui pendekatan sinonim Proses mentrasformasikan kata-kata suatu dokumen ke kata-kata akarnya Pencarian string dalam sebuah dokumen Keterangan* Sesuai Tidak Sesuai Sesuai Tidak Sesuai Sesuai Tidak Sesuai Sesuai Tidak Sesuai Sesuai Tidak Sesuai Sesuai Tidak Sesuai

*) Pilih salah satu

Tabel H.2. Instrumen Uji Algoritma Rabin-karp No 1 2 3 4 5 Dokumen Latihan 20% sama 40% sama 60% sama 80 % sama 100% sama similarity

29

5. Operation and maintenance: mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya. Pada tahap ini tidak dilakukan oleh peneliti karena peneliti hanya membuat prototype aplikasi saja dan belum menetetapkan lingkungan aplikasi dioperasikan.

30

31

I. JADWAL KEGIATAN Berikut ini adalah jadwal kegiatan yang akan dilakukan selama penelitian berlangsung :

Waktu KegiatanNo Nama Kegiatan

Januari 20121 2 3 4

Februari 20121 2 3 4

Maret 2012

April 2012

Mei 2012

Juni 2012

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

1

Requireme nt analysis and definition

2

System and software design

3

Implement ation and unit testing

4

Integratio n and system testing

J. DAFTAR PUSTAKA Adriani, Mirna et.al. 2007. Stemming Indonesian : A Confix-Stripping Approach. (vol. 6, No. 4 Article 13). ACMTransactions on Asian Language Information Processing Agusta, Ledy.2009. Perbandingan Algoritma Stemming Porter Dengan Algoritma Nazief & Adriani Untuk Stemming Dokumen Teks Bahasa Indonesia. Universitas Kristen Satya Wacana. Asian B.Comp, Jelita. 2007. Effective Techniques for Indonesian Text Retrieval. RMIT University. Australia. Budi Cahyono, Eko et.al. 2010. Aplikasi Pendeteksi Duplikasi Dokumen Teks Bahasa Indonesia Menggunakan Algoritma Winnowing Dengan Metode KGram Dan Synonym Recognition. Jurusan Teknik Informatika Universitas Muhammadiyah Malang [Depdiknas] Departemen Pendidikan Nasional, Pusat Bahasa. 2008. Kamus Bahasa Indonesia. Ed Ke-4. Jakarta: Pusat Bahasa. [Depdiknas] Departemen Pendidikan Nasional, Pusat Bahasa. 2008. Tesaurus Bahasa Indonesia. Jakarta: Pusat Bahasa. Fernando, Hary. 2009. Perbandingan dan Pengujian Beberapa Algoritma Pencocokan String. Program Studi Teknik Informatika, Institut Teknologi Bandung (ITB). Bandung. Firdaus, Hari Bagus. 2008. Deteksi Plagiat Dokumen Menggunakan Algoritma Rabin-Karp. Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung (ITB). Bandung. Hearst, Marti. 9 januari 2012). Kosinov, Serhiy. 2002. Evaluation of N-Grams Conflation Approach in Text-Based Information Retrieval. University of Alberta. Canada Kurniawati, Ana dan Wicaksana, I Wayan Simiri. 2008. Perbandingan pendekatan Deteksi Plagiarism Dokumen Dalam Bahasa Inggris. Universitas Gunadarma. Depok.33

2003.

What

Is

Text

Mining?.

http://people.ischool.berkeley.edu/~hearst/text-mining.html (diakses tanggal

Majelis Profesor Riset Lembaga Ilmu Pengetahuan Indonesia.2007. Kode Etika Peneliti. Jakarta: LIPI Press. Nugroho, Eko. 2011. Perancangan Sistem Deteksi Plagiarisme Dokumen Teks Dengan Menggunakan Algoritma Rabin-Karp. Program Studi Ilmu Komputer, Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Brawijaya. Riyan Pratama, Mudafiq. 2003. Java Source Code Pada Metode Rolling Hash. http://dhafiq-san.blogspot.com/2011/07/java-source-code-pada-metoderolling.html (diakses tanggal 9 januari 2012) Syaroni, Mokhamad dan Munir, Rinaldi. Pencocokan String Berdasarkan Kemiripan Ucapan(Phonetic String Matching) Dalam Bahasa Inggris. Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Fakultas Teknologi Industri, Institut Teknologi bandung(ITB). Bandung. Tan, Ah-Hwee. 1999. Text Mining: The state of the art and the challenges. Kent Ridge Digital Labs 21 Heng Mui Keng Terrace. Singapura. Thalib, Farid dan Kusumawati, Ratih. 2010. Pembuatan Program Aplikasi untuk Pendeteksian Kemiripan Dokumen Teks dengan Algoritma SmithWaterman. Universitas Gunadarma.

34