Deteksi Kemiripan Dokumen Teks Menggunakan Algoritma Manber

(1)

DETEKSI KEMIRIPAN DOKUMEN TEKS MENGGUNAKAN

ALGORITMA

MANBER

SKRIPSI

IQBAL MAULANA DJAFAR

091402012

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

DETEKSI KEMIRIPAN DOKUMEN TEKS MENGGUNAKAN ALGORITMA MANBER

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

IQBAL MAULANA DJAFAR 091402012

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(3)

ii

PERSETUJUAN

Judul : DETEKSI KEMIRIPAN DOKUMEN TEKS

MENGGUNAKAN ALGORITMA MANBER

Kategori : SKRIPSI

Nama : IQBAL MAULANA DJAFAR

Nomor Induk Mahasiswa : 091402012

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Sarah Purnamawati, ST., M.Sc Dr. Erna Budhiarti Nababan, M.IT

NIP 19830226 2010122 003 NIP

Diketahui/disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

M. Anggia Muchtar, ST., MM.IT NIP 19800110 200801 1 010


(4)

PERNYATAAN

DETEKSI KEMIRIPAN DOKUMEN MENGGUNAKAN ALGORITMA MANBER

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya Saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing- masing telah disebutkan sumbernya.

Medan,

Iqbal Maulana Djafar 091402012


(5)

iv

PENGHARGAAN

Alhamdulillah segala puji dan syukur saya sampaikan kehadirat Allah SWT beserta Nabi Besar Muhammad SAW yang telah memberikan rahmat, hidayah-Nya sehingga Saya dapat menyelesaikan skripsi ini untuk memperoleh gelar Sarjana Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada:

1. Bapak M. Anggia Muchtar, ST., MM.IT dan M. Fadly Syahputra, B.Sc., M.Sc.IT selaku Ketua dan Sekretaris Jurusan Teknologi Informasi Universitas Sumatera Utara, serta seluruh dosen serta pegawai di Program Studi S-1 Teknologi Informasi.

2. Ibu Dr. Erna Budhiarti Nababan, M.IT selaku pembimbing pertama dan Ibu Sarah Purnamawati, ST., M.Sc selaku pembimbing kedua Saya yang telah banyak meluangkan waktunya dan memberikan saran yang bermanfaat dalam menyelesaikan skripsi ini.

3. Bapak M. Anggia Muchtar, ST., MM.IT dan Bapak Dedy Arisandi, ST., M.Kom yang telah bersedia menjadi dosen penguji dan telah memberikan saran-saran yang baik bagi penulis dalam meyelesaikan skripsi ini.

4. Ayahanda Drs. Djafar Djuned dan Bunda Husna Yaini Djuned yang telah memberikan dukungan dan motivasi dalam menyelesaikan skripsi ini.

5. Teman-teman seperjuangan stanbuk 2009 yang banyak memberikan semangat maupun bantuan dalam menyelesaikan skripsi ini.

Dan yang terakhir, penulis mengucapkan terima kasih kepada semua pihak yang sudah membantu dalam penyelesaian tugas akhir ini meskipun tidak dapat disebutkan satu per satu. Terima kasih atas saran, motivasi, dan bantuan yang telah diberikan, semoga Allah memberikan kemudahan bagi kita semua.


(6)

ABSTRAK

Dokumen teks sering dijadikan sebagai objek penjiplakan atau tindak plagiat karena perkembangan teknologi yang semakin pesat tentu akan memudahkan tindakan tersebut untuk dilakukan. Oleh karena itu, dirancang sistem berbasis web untuk mendeteksi kemiripan dokumen teks menggunakan algoritma Manber. Sistem juga

dibangun dengan mengimplementasikan teknik Stemming P orter dan Synonym

Recognition untuk mengatasi teknik penjiplakan seperti Technical Disguise dan Disguised P lagiarism. Perbedaan hasil yang didapatkan dengan menggunakan teknik tersebut mencapai 15% dibandingkan tanpa penggunaannya.

Kata Kunci: Plagiat, Kemiripan, Stemming P orter, Synonym Recognition, Algoritma Manber


(7)

vi

SIMILARITY DETECTION OF DOCUMENT TEXT USING MANBER ALGORITHM

ABSTRACT

Document text is an object that often used in plagiarism case because the rapid of technology development makes this action more easily to do. In this research, a web based system is designed to detect similarity of document text using Manber Algorithm. Stemming Porter and Synonym Recognition are also implemented to overcome some of plagiarism technique like Technical Disguised and Disguised Plagiarism. The difference result is about 15% compared without using those techniques.

Keyword: Plagiarism, Similarity, Stemming Porter, Synonym Recognition, Manber Algorithm


(8)

DAFTAR ISI

Hal.

PERSETUJUAN ii

PERNYATAAN iii

PENGHARGAAN iv

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL x

DAFTAR GAMBAR xi

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 4

1.5 Manfaat Penelitian 4

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2 TINJAUAN PUSTAKA 7

2.1 Keaslian Dokumen Teks 7

2.2 Penjiplakan 7

2.3 Kemiripan Dokumen Teks 8

2.4 Text Mining 9

2.5 Algoritma Manber 9

2.5.1 P enghapusan Noise Dan Whitespace 10

2.5.2 Metode N-Gram 11

2.5.3 Rolling Hash 12


(9)

viii

2.5.5 P ersamaan Jaccard Coefficient 13

2.6 Stemming 14

2.7 Synonym Recognition 15

2.8 Penelitian Terdahulu 15

BAB 3 ANALISIS DAN PERANCANGAN 18

3.1 Data Yang Digunakan 18

3.2 Flowchart Sistem 18

3.3 Activity Diagram 22

3.4 Stemming 23

3.5 Synonym Recognition 28

3.6 Algoritma Manber 29

3.7 Deteksi Kemiripan Teks Secara Manual 31

3.8 Perancangan Database Dan Interface Sistem 33

3.8.1 Database Sistem 33

3.8.2 Interface Sistem 34

BAB 4 IMPLEMENTASI DAN PENGUJIAN 37

4.1 Implementasi 37

4.1.1 Spesifikasi Hardware Dan Software Yang Digunakan 37

4.1.2 Database Tabel Kata Dasar 38

4.1.3 Database Tabel Kata Sinonim 38

4.1.4 Tampilan Awal 39

4.1.5 Tampilan Hasil 40

4.1.6 Stemming 41

4.1.7 Synonym Recognition 42

4.1.8 Algoritma Manber 43

4.2 Pengujian Sistem 44

4.2.1 P engujian Tampilan Sistem 44

4.2.2 P engujian P roses Stemming 46

4.2.3 P engujian Synonym Recognition 48

4.2.4 P engujian Deteksi Kemiripan Teks 49


(10)

4.2.6 P engujian Dengan Metode Lainnya 52

BAB 5 KESIMPULAN DAN SARAN 53

5.1 Kesimpulan 53

5.2 Saran 54

DAFTAR PUSTAKA 55


(11)

x

DAFTAR TABEL

Hal.

Tabel 2.1 Penelitian Terdahulu 17

Tabel 3.1 Bubuhan Kata Stemming Porter 23

Tabel 3.2 Penambahan Bubuhan Kata 24

Tabel 3.3 Rules Peleburan Huruf 25

Tabel 3.4 Rancangan Tabel Kata Dasar 33

Tabel 3.5 Rancangan Tabel Kata Sinonim 34

Tabel 4.1 Rancangan Pengujian Tampilan Sistem 44

Tabel 4.2 Hasil Pengujian Tampilan Sistem 45

Tabel 4.3 Rancangan Pengujian Rules 46

Tabel 4.4 Hasil Pengujian Rules 47

Tabel 4.5 Rancangan Pengujian SynonymRecognition 48

Tabel 4.6 Hasil Pengujian Synonym Recognition 48

Tabel 4.7 Rancangan Pengujian Kemiripan Teks 49

Tabel 4.8 Hasil Pengujian Kemiripan Teks 51

Tabel 4.9 Rancangan Pengujian Nilai N 51

Tabel 4.10 Hasil Pengujian Nilai N 51

Tabel 4.11 Rancangan Pengujian Dengan Metode Lainnya 52


(12)

DAFTAR GAMBAR

Hal.

Gambar 3.1 F lowchartP reprocessing 19

Gambar 3.2 F lowchart Text Transformation 20

Gambar 3.3 F lowchart F eature Selection & P atter Discovery 21

Gambar 3.4 Diagram Activity 22

Gambar 3.5 Proses Stemming 26

Gambar 3.6 Proses Synonym Recognition 28

Gambar 3.7 Proses Algoritma Manber 30

Gambar 3.8 Rancangan Tampilan Awal Sistem 35

Gambar 3.9 Rancangan Tampilan Hasil Sistem 36

Gambar 4.1 Database Tabel Kata Dasar 38

Gambar 4.2 Database Tabel Kata Sinonim 38

Gambar 4.3 Tampilan Awal Sistem 39

Gambar 4.4 Tampilan Hasil Sistem 40

Gambar 4.5 Hasil Implementasi Stemming 42

Gambar 4.6 Hasil Implementasi Synonym Recognition 43

Gambar 4.7 Hasil Proses Algoritma Manber 43

Gambar 4.8 Hasil Akhir Algoritma Manber 44

Gambar 4.9 Pengujian Stemming Dan Rules 47

Gambar 4.10 Pengujian Synonym Recognition 48

Gambar 4.11 Hanya Menggunakan Algoritma Manber 49


(13)

v

ABSTRAK

Dokumen teks sering dijadikan sebagai objek penjiplakan atau tindak plagiat karena perkembangan teknologi yang semakin pesat tentu akan memudahkan tindakan tersebut untuk dilakukan. Oleh karena itu, dirancang sistem berbasis web untuk mendeteksi kemiripan dokumen teks menggunakan algoritma Manber. Sistem juga

dibangun dengan mengimplementasikan teknik Stemming P orter dan Synonym

Recognition untuk mengatasi teknik penjiplakan seperti Technical Disguise dan Disguised P lagiarism. Perbedaan hasil yang didapatkan dengan menggunakan teknik tersebut mencapai 15% dibandingkan tanpa penggunaannya.

Kata Kunci: Plagiat, Kemiripan, Stemming P orter, Synonym Recognition, Algoritma Manber


(14)

SIMILARITY DETECTION OF DOCUMENT TEXT USING MANBER ALGORITHM

ABSTRACT

Document text is an object that often used in plagiarism case because the rapid of technology development makes this action more easily to do. In this research, a web based system is designed to detect similarity of document text using Manber Algorithm. Stemming Porter and Synonym Recognition are also implemented to overcome some of plagiarism technique like Technical Disguised and Disguised Plagiarism. The difference result is about 15% compared without using those techniques.

Keyword: Plagiarism, Similarity, Stemming Porter, Synonym Recognition, Manber Algorithm


(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Teknologi komputer sudah berkembang pesat dan menjadi sebuah kebutuhan bagi setiap orang. Tentu perkembangan ini memiliki banyak dampak dalam kehidupan. Salah satu dampak positifnya adalah untuk membantu dan memudahkan kerja manusia. Sebagai contoh yaitu dalam melakukan suatu pendeteksian.

Banyak manfaat yang dapat diambil dengan adanya proses pendeteksian, seperti pendeteksian kemiripan dokumen teks. Deteksi kemiripan dokumen teks merupakan sebuah upaya yang dilakukan untuk menghindari tindakan plagiarisme sehingga keaslian dari dokumen teks akan tetap terjaga.

Plagiarisme atau penjiplakan dapat diartikan sebagai sebuah tindakan imitasi atau pemalsuan baik dari segi bahasa maupun ide dari orang lain dengan merepresentasikan hal tersebut sebagai hasil karyanya sendiri (Hariharan, 2012). Plagiarisme dalam bahasa latin diartikan sebagai pencurian, sehingga seseorang yang melakukan tindak penjiplakan dapat diartikan pula sebagai seorang pencuri.

Ada banyak teknik penjiplakan pada dokumen teks, beberapa diantaranya adalah copy paste, penulisan kembali sebuah naskah dengan mengubah struktur penulisannya, pengutipan ide orang lain tanpa mengubah tulisan, dan penjiplakan dengan cara mengubah bahasa dokumen ke bahasa lainnya tentunya tanpa menuliskan sumber ide berasal. Oleh sebab itu, penjiplakan menjadi masalah utama dalam ruang lingkup pendidikan. Hal ini didasarkan pada penelitian yang telah dilakukan oleh Osman, et al. (2012), dimana hasilnya adalah 70% dari pelajar mengaku melakukan


(16)

tindak plagiat, baik plagiat dengan cara mencontek tugas biasa maupun tugas akhir. Tentunya ini akan merugikan kedua belah pihak, baik pelaku dan korban penjiplakan khususnya.

Penjiplakan pada tingkat pendidikan biasanya terjadi akibat deadline dari suatu pekerjaan ataupun dari sifat malas yang dimiliki. Adapun tindak penjiplakan yang sering dilakukan oleh pelajar adalah jenis copy paste, artinya dokumen teks dijiplak tanpa mengubah isi teks maupun jenis peringkasan dengan cara menutupi bagian yang disalin. Di dalam dunia pendidikan, suatu karya ilmiah dikatakan sebagai hasil plagiat atau penjiplakan apabila kutipan yang dilakukan dijiplak secara utuh dan tidak disertai penyebutan referensi secara benar (Purwitasari, et al. 2009).

Pendeteksian plagiat dapat dilakukan baik secara manual dengan mengecek langsung dokumen teks ataupun secara semi-otomatis dengan bantuan sistem komputer. Meskipun pendeteksian secara manual merupakan cara yang paling akurat dalam mendeteksi plagiat, namun cara ini sangat tidak efektif dan efisien, baik dari segi waktu, tenaga, maupun biaya. Pencegahan merupakan upaya terbaik untuk menghalangi munculnya plagiarisme, yaitu dengan menekankan moral masyarakat dan sistem pendidikan akan bahaya plagiarisme. Cara ini akan memberikan efek jangka panjang, sehingga diharapkan tindak penjiplakan dapat berkurang ataupun dituntaskan hingga selesai (Salmuasih, 2013). Pendeteksian plagiarisme pada dokumen teks dapat dilakukan dengan cara membandingkan kemiripan antara isi dokumen teks yang akan diuji dengan dokumen teks pembandingnya, dimana dokumen teks pembanding yang digunakan sudah dinyatakan valid sehingga terhindar dari tindak penjiplakan.

Pendeteksian kemiripan dokumen teks berbahasa Indonesia secara semi-otomatis cukuplah sulit untuk dilakukan karena bahasa Indonesia tidak memiliki rumus bentuk baku yang permanen (Triawati, 2009) ditambah dengan penggunaan imbuhan, kata ganti orang, dan sinonim kata yang sangat banyak dan memiliki ragam bentuk serta makna. Tentu hal ini akan semakin memudahkan terjadinya tindak plagiat dan kesulitan dalam pendeteksiannya.

Salah satu penelitian terdahulu mengenai pendeteksian kemiripan dokumen teks, yaitu Ramadhani, et al. (2013) yang selain menggunakan algoritma Winnowing, juga membandingkan algoritma tersebut dengan algoritma Manber. Kesimpulan yang dapat dituliskan adalah keakuratan pendeteksian cukup baik dengan memberikan


(17)

3

perbedaan hasil similaritas sebesar 4-7% dengan responden yang mencari kesamaan dokumen secara manual. Meskipun dari segi keakuratan Winnowing lebih unggul, namun waktu proses algoritma tersebut lebih lama dari algoritma Manber.

Oleh karena itu, dibutuhkan sebuah sistem untuk mendeteksi kemiripan dokumen teks dengan tingkat keakuratan dan waktu proses yang baik. Adapun algoritma yang diimplementasikan ke dalam sistem adalah algoritma Manber. Algoritma ini memiliki waktu proses yang sangat cepat dan ketepatan yang cukup baik. Algoritma Manber merupakan salah satu dari tiga metode fingerprint selain Winnowing dan Rabin-Karp. Secara umum, algoritma Winnowing dan Manber memiliki prinsip kerja yang hampir sama dengan perbedaan, yaitu pada proses pemilihan fingerprint dokumennya. Proses stemming dan Synonym Recognition juga akan diimplementasikan ke dalam sistem untuk meningkatkan keakuratan dalam pendeteksian kemiripan dokumen teks serta mengatasi beberapa teknik penjiplakan.

1.2 Rumusan Masalah

Penjiplakan merupakan perbuatan yang secara sengaja ataupun tidak sengaja dilakukan dengan cara mengutip sebagian atau seluruh karya orang lain, tanpa menyatakan sumber secara tepat dan memadai. Salah satu objek yang sering dijadikan sebagai media penjiplakan adalah dokumen teks. Untuk melihat keaslian dokumen teks dapat diuji dengan cara membandingkan kemiripan isi dokumen teks. Oleh karena itu, diperlukan pendekatan untuk mendeteksi kemiripan suatu dokumen teks dengan dokumen teks lain sehingga tindakan penjiplakan dapat dideteksi dan dihindari.

1.3 Batasan Masalah

Agar penelitian dapat sesuai dengan permasalahan yang akan diselesaikan, maka diperlukan beberapa batasan, yaitu sebagai berikut:

1. Hanya menguji dokumen teks, tidak menguji dokumen berupa gambar ataupun suara.


(18)

3. Pengujian dilakukan pada file dengan format pdf.

4. Hanya memperhatikan tulisan, tidak termasuk makna kalimat. 5. Tidak memperhatikan kesalahan dalam penulisan kata (typo). 6. Tidak memperhatikan adanya penulisan sumber rujukan.

7. Pendeteksian pada plagiarisme jenis Technical Disguise, Disguised, dan Copy & P aste P lagiarism.

1.4 Tujuan

Tujuan dari penelitian ini adalah mendeteksi kemiripan satu dokumen teks uji dengan satu dokumen teks pembanding menggunakan algoritma Manber disertai penggunaan teknik stemming dan Synonym Recognition.

1.5 Manfaat

Adapun manfaat dari penelitian ini adalah:

1. Mengefektifkan serta mengefisiensikan waktu, tenaga, dan biaya dalam mendeteksi kemiripan dokumen teks.

2. Menambah pengetahuan atau wawasan mengenai penjiplakan dan cara untuk mendeteksi tindakan tersebut.

3. Sebagai bahan untuk pengembangan penelitian selanjutnya.

1.6 Metodologi Penelitian

Adapun metodologi pada penelitian ini adalah:

1. Studi Literatur

Dilakukan pengumpulan referensi melalui berbagai macam buku, jurnal, artikel, dan materi lainnya yang berkaitan dengan penelitian ini.


(19)

5

2. Pengumpulan Data

Dilakukan pengumpulan data dan informasi yang akan diperlukan dalam penelitian.

3. Analisis dan Perancangan

Dilakukan analisis terhadap studi literatur untuk mengetahui penyelesaian permasalahan deteksi kemiripan dokumen dan melakukan perancangan sistem.

4. Implementasi

Perancangan sistem yang telah dibuat akan diimplementasikan ke dalam aplikasi yang dibuat dengan menggunakan bahasa pemrograman PHP dan database MySQL.

5. Pengujian

Uji coba produk dan evaluasi. Melakukan uji coba program yang telah dibuat. Kemudian melakukan evaluasi terhadap kekurangan program.

6. Penyusunan Laporan

Dokumentasi dari hasil analisis dan implementasi dari sistem yang dibangun.

1.7 Sistematika Penulisan

Skripsi ini disusun dengan sistematika penulisan, sebagai berikut:

Bab 1: Pendahuluan

Pada bab ini dibahas mengenai latar belakang penulisan, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian, dan sistematika penulisan skripsi.

Bab 2: Landasan Teori

Pada bab ini dibahas mengenai teori-teori yang digunakan dalam pengerjaan skripsi. Teori-teori yang terdapat pada bab ini mencakup algoritma secara umum dan teknik pendukungnya.


(20)

Bab 3: Analisis Dan Perancangan Sistem

Pada bab ini dibahas mengenai analisis algoritma dan teknik pendukungnya dalam mendeteksi persentase kemiripan dokumen serta perancangan sistem berdasarkan hasil analisis yang dilakukan.

Bab 4: Pengimplementasian Dan Pengujian Sistem

Pada bab ini dibahas mengenai implementasi dari sistem dan melakukan pengujian terhadap kinerja dari sistem yang dibentuk.

Bab 5: Kesimpulan Dan Saran

Pada bab ini berisi tentang kesimpulan yang didapat dari pembuatan skripsi dan saran-saran yang mungkin dapat berguna dalam penelitian selanjutnya.


(21)

BAB 2

TINJAUAN PUSTAKA

Pada bab ini, akan dibahas landasan teori mengenai pendeteksian kemiripan dokumen teks yang mengkhususkan pada pengertian dari keaslian dokumen, plagiarisme, kemiripan dokumen, dan penjelasan mengenai algoritma yang digunakan yaitu

algoritma Manber serta teknik pendukung berupa stemming dan Synonym

Recognition. Pada akhir bab ini akan dipaparkan penelitian-penelitian terdahulu mengenai pendeteksian kemiripan dokumen teks.

2.1 Keaslian Dokumen Teks

Keaslian sebuah dokumen teks merupakan naskah yang berasal dari ide pengarang tanpa adanya penambahan ide dari pengarang lainnya. Jika pun ada, nama pengarang harus dicantumkan di dalam referensi serta tidak menuliskan secara utuh kutipan ide tersebut melainkan menuliskannya ke dalam bahasa sendiri. Hal ini dilakukan untuk menghindari tindak plagiarisme.

2.2 Penjiplakan

Penjiplakan atau plagiarisme adalah teknik peniruan atau penyalinan ide orang lain tanpa menuliskan referensi darimana ide tersebut berasal, artinya secara tidak langsung penulis sudah menglaim bahwa ide tersebut berasal dari idenya sendiri. Tidak adanya keinginan ataupun kemudahannya dalam menyalin hasil karya atau ide orang lain menjadi faktor utama terjadinya penjiplakan (Novia, et al. 2012).


(22)

Berdasarkan hasil penelitian yang dilakukan oleh Gipp & Meuschke (2011), dijelaskan bahwa teknik plagiat memiliki ragam bentuk, diantaranya:

1. Copy & P aste P lagiarism, yaitu menyalin seluruh kata tanpa adanya perubahan konten dari naskah aslinya.

2. Disguised P lagiarism, yaitu menutupi beberapa bagian yang telah disalin dari naskah aslinya dengan menggunakan konten bermakna sama.

3. Technical Disguise, yaitu menyembunyikan serta melakukan peringkasan pada beberapa konten dari naskah yang telah disalin.

4. Undue P araphrasing, yaitu mengubah susunan serta bahasa yang digunakan (dari bahasa yang satu ke bahasa lainnya) dengan menggunakan gaya penulisannya sendiri tanpa menuliskan sumber aslinya.

5. Translated P lagiarism, yaitu mengubah dari bahasa satu ke bahasa lainnya tanpa menuliskan sumber aslinya.

6. Idea P lagiarism, yaitu menggunakan ide orang lain tanpa menuliskan sumber darimana ide berasal.

2.3 Kemiripan Dokumen Teks

Pendeteksian plagiarisme pada dokumen teks dilakukan dengan cara membandingkan isi dari dokumen yang akan diuji dengan dokumen yang dijadikan sebagai pembandingnya. Adapun syarat dokumen pembanding adalah sudah dinyatakan keasliannya sehingga pengujian kemiripan dokumen menjadi valid.

Dalam menentukan hasil akhir pendeteksian kemiripan dokumen teks, biasanya digunakan persentase similaritas sehingga pembacaan hasil akhir menjadi lebih mudah. Adapun teknik pendeteksian kemiripan dokumen teks menurut Stein & Eissen (2006) adalah:

1. Perbandingan Teks Lengkap, yaitu membandingkan seluruh kata yang terdapat di dalam dokumen teks.

2. Kesamaan Kata Kunci, yaitu membandingkan seluruh kata yang merupakan perwakilan isi dokumen.

3. F ingerprint, yaitu membandingkan rangkaian pembentuk teks dengan panjang tertentu dan diubah menjadi bilangan unik menggunakan teknik hash.


(23)

9

2.4 Text Mining

Text Mining diartikan sebagai penambangan data berupa teks yang bersumber dari dokumen untuk mencari kata-kata yang merupakan perwakilan isi atau pembentuk dokumen teks sehingga penganalisisan dapat dilakukan.

Berikut ini merupakan tahapan umum pada proses Text Mining, yaitu (Nugroho, 2011):

1. Text P reprocessing, yaitu pemrosesan awal yang ditujukan untuk membentuk teks menjadi data siap olah pada proses selanjutnya.

a. Case F olding, yaitu pengubahan seluruh karakter yang merupakan huruf kapital menjadi huruf kecil.

b. F iltering, yaitu pengambilan kata-kata yang penting sesuai dengan kondisi yang diinginkan.

c. Tokenizing, yaitu tahap pemecahan kalimat yang di-input berdasarkan kata yang menyusunnya, biasanya dipisah oleh karakter whitespace.

2. Text Transformation, yaitu pembentukan teks yang mengacu pada proses untuk mendapatkan representasi dokumen yang sesuai.

a. Stemming, yaitu pencarian kata dasar dari setiap kata hasil tokenizing. b. Synonym Recognition, yaitu pengubahan kata yang memiliki makna yang

sama dengan penulisan berbeda.

3. F eature Selection, yaitu pengurangan dimensi teks sehingga nantinya akan dihasilkan kata-kata yang merupakan dasar dari isi teks.

4. P attern Discovery, yaitu penemuan pola atau pengetahuan dari keseluruhan teks.

2.5 Algoritma Manber

Algoritma Manber merupakan salah satu dari tiga algoritma yang menggunakan fingerprint dalam proses penyelesaian permasalahannya, selain algoritma Winnowing dan Rabin-Karp. Penggunaan fingerprint ini ditujukan agar dapat mengidentifikasi penjiplakan termasuk bagian-bagian kecil yang mirip dalam dokumen pada dokumen dengan jumlah kata yang cukup banyak (Purwitasari, et al. 2009).


(24)

Setiap algoritma memiliki penyelesaian permasalahan yang berbeda, namun algoritma Manber dan Winnowing memiliki langkah penyelesaian yang hampir sama. Adapun perbedaan algoritma Manber dari algoritma Winnowing adalah sebagai berikut (Kurniawati & Wicaksana, 2008):

1. Jumlah langkah yang lebih sedikit sehingga waktu pemrosesan dokumen menjadi lebih cepat.

2. Tidak memberikan informasi dimana posisi fingerprint berada.

3. Pemilihan fingerprint yang berbeda. Pada Algoritma Manber, fingerprint

dipilih dari setiap nilai hash yang memenuhi persyaratan H mod P = 0, di mana H adalah nilai hash dan P adalah nilai pembagi yang digunakan, sementara pada Algoritma Winnowing dipilih nilai hash minimum dalam setiap window.

Adapun secara singkat, konsep dasar algoritma Manber dimulai dari tahap awal baik penghapusan noise dan whitespace hingga hasil akhirnya berupa persentase adalah :

1. Penghapusan noise dan whitespace.

2. Pembentukan rangkaian gram dengan panjang N karakter.

3. Penghitungan nilai hash dari setiap gram menggunakan fungsi hash. 4. Pemilihan beberapa nilai hash menjadi fingerprint dokumen.

5. Menentukan persentase kemiripan antar dokumen menggunakan persamaan

Jaccard Coefficient.

2.5.1 P enghapusan Noise & Whitespace

Banyak algoritma atau metode yang dapat digunakan untuk mendeteksi kemiripan dokumen teks. Ada beberapa persyaratan yang harus dipenuhi oleh algoritma pendeteksi kemiripan dokumen teks (Pratama, 2012), yaitu:

1. Whitespace Insensitivity, artinya dalam melakukan pendeteksian terhadap dokumen teks, algoritma tidak boleh dipengaruhi oleh spasi, jenis huruf (kapital atau normal), tanda baca dan sebagainya. Oleh sebab itu, dilakukan penghapusan terhadap karakter yang tidak relevan tersebut sehingga nantinya hanya akan tersisa satu rangkaian yang terdiri atas huruf dan angka.


(25)

11

2. Noise Surpression, artinya dalam melakukan pendeteksian, algoritma harus dapat menghindari adanya kata yang tidak penting, misal: “di”, “ke”, dan sebagainya. Panjang kata yang ditengarai harus cukup untuk membuktikan bahwa kata-kata tersebut telah dijiplak dan bukan merupakan kata yang umum digunakan.

3. P osition Independence, artinya pendeteksian tidak boleh bergantung pada posisi kata sehingga apabila posisi kata berbeda maka pendeteksian tetap dapat dilakukan.

2.5.2 Metode N-Gram

Algoritma yang menggunakan fingerprint seperti algoritma Manber memiliki satu metode utama yaitu metode N-Gram. Metode N-Gram merupakan metode yang berfungsi untuk memecah kata ataupun kalimat menjadi sebuah rangkaian dengan panjang N karakter. Sebagai contoh :

“KEMEJA”

Dengan menggunakan nilai N = 2, maka akan dihasilkan :

“KE”, “EM”, “ME”, “EJ”, “JA”

Metode N-Gram memunyai peran yang cukup penting karena merupakan langkah awal dalam proses pembentukan fingerprint. Dengan kata lain, metode N-Gram memiliki pengaruh terbesar pertama pada hasil akhir yang dikeluarkan.

Pengaruh dari nilai N pada metode N-Gram yaitu semakin kecil nilai N yang digunakan akan semakin besar pula persentase yang dihasilkan nantinya. Namun, tidak selalu dengan menggunakan nilai N = 1, hasil yang didapatkan lebih baik. Alasannya adalah jika kalimat terdiri dari huruf yang sama dengan kalimat bandingnya, maka akan menghasilkan persentase kemiripan sebesar 100%. Sebagai contoh :

“RAMAH” : “R”,”A”,”M”,”H” “MARAH” : “M”,”A”,”R”,”H”

Didapatkan 4 huruf yang sama, sehingga menghasilkan persentase sebesar 100%. Oleh karena itu, penggunaan N-Gram harus disesuaikan dengan kondisi dari teks yang akan diuji.


(26)

2.5.3 Hash

Hash merupakan teknik untuk mengubah sebuah string menjadi nilai unik dengan panjang tertentu yang nantinya akan berfungsi sebagai penanda string tersebut (Pratama, et al. 2012)

Hash terdiri dari dua elemen, yaitu fungsi hash dan nilai hash. Hubungan kedua elemen tersebut adalah rangkaian gram yang dihasilkan dari proses N-Gram kemudian diolah menggunakan fungsi hash sehingga terbentuklah rangkaian nilai hash yang nantinya akan dipilih menjadi fingerprint dokumen (Purwitasari, et al. 2009).

Fungsi hash yang digunakan pada algoritma Manber adalah fungsi hash yang mengubah setiap karakter pada rangkaian string ke dalam bentuk kode ASCII dan memrosesnya ke dalam persamaan (2.1) berikut :

k k

k k

c

c

c

b

c

b

c

b

c

H

k

 

*

*

*

...

1

*

2 2 1 1 ) ...

(1 1 (2.1)

Keterangan: H : nilai hash

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

2.5.4 F ingerprint Dokumen

F ingerprint dokumen adalah ciri khas yang terdapat pada sebuah dokumen teks. Ciri ini dapat dikatakan pula sebagai rangkaian pembentuk atau dasar dari dokumen tersebut. F ingerprint berasal dari rangkaian nilai hash yang sudah memenuhi persyaratan.

F ingerprint merupakan tujuan pertama dari algoritma yang menggunakan fingerprint sebagai langkah penyelesaiannya. Masing-masing algoritma memiliki cara yang berbeda dalam memilih fingerprint. Pada algoritma Manber, pemilihan fingerprint dilakukan dengan cara mengecek apakah nilai hash memenuhi persamaan (2.2) berikut:


(27)

13

H Mod P = 0 (2.2)

Keterangan:

H : Nilai Hash,

Mod : Modulo (pembagian sisa),

P : Nilai Pembagi,

0 : Hasil pembagian sisa harus bernilai 0.

Ada tiga faktor yang mempengaruhi pemilihan fingerprint, yaitu :

1. Nilai N pada metode N-Gram, perubahan panjang karakter yang terbentuk akan mengubah fingerprint yang dipilih.

2. Basis pada fungsi hash, tentunya perubahan basis akan mengubah nilai hash yang dihasilkan serta fingerprint yang dipilih.

3. Nilai pembagi pada persamaan (2.2). Perubahan pada nilai pembagi akan mengubah nilai hash yang akan dipilih menjadi fingerprint. Penggunaan nilai pembagi ini harus disesuaikan dengan kondisi dokumen teks.

2.5.5 P ersamaan Jaccard Coefficient

Persamaan Jaccard Coefficient merupakan persamaan yang digunakan untuk

mengukur nilai similaritas atau kemiripan. Banyak hal yang dapat diukur nilai similaritasnya, seperti similaritas dokumen teks. Oleh karena itu, persamaan ini

diimplementasikan ke dalam algoritma Manber sebagai pengukur persentase

similaritas dokumen teks. Persamaan Jaccard Coefficient dapat ditulis sesuai dengan persamaan (2.3) berikut:

Similaritas (di,dj) = 100%

| ) ( ) ( | | ) ( ) ( | x d w d w d w d w j i j i   (2.3) Keterangan:

1. |w(di)w(dj)| : Irisan fingerprint teks uji dengan teks banding, 2. |w(di)w(dj)| : Gabungan fingerprint teks uji dan teks banding, dan 3. Similaritas (di,dj) : Hasil bagi irisan dengan gabungan fingerprint yang


(28)

2.6 Stemming

Stemming adalah teknik pencarian kata dasar dari setiap kata hasil tokenizing. Di dalam bahasa Indonesia, stemming digunakan untuk menghilangkan bubuhan yang melekat pada kata dasar baik imbuhan (awalan, akhiran, sisipan), partikel, dan kata ganti orang. Sebagai contoh :

“mempermainkannya” = “mem” + ”per” + “main” + “kan” + “nya” Kata “mempermainkannya” merupakan hasil gabungan dari :

1. Satu kata dasar (root word) : “main”

2. Dua imbuhan awal (prefiks) : “mem” dan “per”

3. Satu imbuhan akhir (sufiks) : “kan”

4. Satu kata ganti orang (possessive pronoun) : “nya”

Stemming lebih susah diimplementasikan ke dalam teks berbahasa Indonesia karena bahasa Indonesia tidak memiliki rumus bentuk baku yang permanen (Triawati, 2009). Banyak penelitian mengenai teknik stemming, salah satunya adalah Stemming P orter yang akan digunakan pada penelitian ini. Secara singkat langkah penyelesaian pada Stemming P orter adalah sebagai berikut:

1. Menghapus partikel,

2. Menghapus kata ganti (possessive pronoun),

3. Menghapus awalan pertama. Jika tidak ditemukan, maka lanjut ke langkah 4a, dan jika ada, maka lanjut ke langkah 4b,

4. a. Menghapus awalan kedua, dan dilanjutkan pada langkah 5a,

b. Menghapus akhiran, jika tidak ditemukan, maka kata diasumsikan sebagai kata dasar. Jika ditemukan lanjut ke langkah 5b,

5. a. Menghapus akhiran dan kata akhir diasumsikan sebagai kata dasar. b. Menghapus awalan kedua dan kata akhir diasumsikan sebagai kata dasar.

Pendeteksian kemiripan dokumen sangat bergantung pada proses stemming, artinya jika proses stemming tidak berjalan dengan baik, maka hasil yang didapatkan juga tidak akan sesuai. Oleh karena itu, stemming menjadi salah satu kunci untuk mendapatkan hasil deteksi kemiripan dokumen teks yang akurat.


(29)

15

2.7 Synonym Recognition

Synonym Recognition atau pengenalan kata bersinonim adalah teknik yang digunakan untuk mengenali kata dengan penulisan berbeda namun memiliki makna yang sama.

Teknik penjiplakan dokumen teks tidak lepas dari penggunaan kata bersinonim sehingga dokumen teks hasil penjiplakan berbeda secara penulisan dari dokumen teks aslinya meskipun makna yang dihasilkan tetaplah sama. Jenis penjiplakan tersebut dapat digolongkan ke dalam Disguised P lagiarism dan Technical Disguise. Jenis penjiplakan ini sangat sulit dideteksi oleh sistem yang tidak mengimplementasikan teknik Synonym Recognition.

Di dalam bahasa Indonesia, hampir setiap kata memiliki sinonim, tentu hal ini semakin menyulitkan pendeteksian. Apabila sistem penyimpan kata hanya memiliki sedikit kata bersinonim, maka semakin kecil pula keakuratan pendeteksian. Hal ini juga dipersulit dengan adanya penulisan kata bersinonim yang sama meskipun maknanya berbeda, serta sinonim kata yang menggunakan imbuhan.

Synonym Recognition merupakan kunci kedua terpenting setelah stemming. Hal ini diakibatkan karena banyaknya kata sinonim yang berasal dari kata dasar, meskipun beberapa sinonim kata memang memiliki imbuhan. Apabila proses stemming tidak berjalan dengan baik, maka pengenalan kata bersinonim juga menjadi tidak sesuai, dan berdampak pada berkurangnya keakuratan pendeteksian.

2.8 Penelitian Terdahulu

Pendeteksian kemiripan dokumen teks sudah banyak dilakukan oleh peneliti-peneliti sebelumnya, baik dengan menggunakan algoritma pendeteksi kemiripan teks yang berbeda, teknik pendukung yang berbeda maupun pengimplementasian dalam bentuk yang berbeda, dan lain sebagainya.

Heriyanto (2011) menggunakan algoritma exact match dalam melakukan penelitiannya. Algoritma exact match tidak memerdulikan proses stemming sehingga apabila ada kata yang memiliki awalan dan akhiran, maka tidak dianggap sama. Kata dasar ditambah dengan awalan dan akhiran akan berarti kata yang berbeda-beda. Hal ini tentu mengurangi keefektifan dari sistem yang dibuat.


(30)

Ramadhani, et al (2013) menggunakan algoritma Winnowing, dimana algoritma ini memiliki langkah yang hampir sama dengan algoritma Manber. Sesuai dengan kesimpulan yang dituliskan bahwa keakuratan pendeteksian cukup baik, yaitu memberikan selisih perbedaan sebesar 4-7% dengan responden yang mencari kesamaan dokumen secara manual, namun kecepatan proses algoritma masih kalah dari algoritma Manber, meskipun dari segi keakuratan Winnowing lebih unggul.

Salmuasih (2013) yang menggunakan algoritma Rabin-Karp dan konsep

similarity menyimpulkan bahwa penggunaan teknik stemming sangat berpengaruh pada persentase hasil yang didapatkan, serta perlu ditambahkan teknik pengenalan sinonim. Modulo yang digunakan dalam penelitiannya tidak berpengaruh pada hasil persentase, namun berpengaruh pada waktu proses.

Goenawan, et al (2005) menyimpulkan bahwa algoritma Edit Distance lebih tepat digunakan untuk mencari kecocokan antara dua string. Dimana dalam proses perbandingannya , string kedua dimanipulasi sehingga pada akhirnya serupa dengan string pertama. Dalam proses pengubahan string tersebut, dibuat sebuah tabel dua dimensi dengan baris sesuai dengan panjang string terpanjang dan jumlah kolom sebanyak panjang string terpendek. Keunggulan algoritma Edit Distance yaitu dapat melihat perbedaan di antara dua string dengan cepat dan akurat.

Dani, et al (2006) lebih meneliti pada kompleksitas waktu algoritma Levenshtein Distance dan pendeteksian pada kemiripan kode program. Disimpulkan bahwa kemiripan antar kode program yang diimplementasi dengan bahasa pemrograman yang berbeda, sebelumnya dapat dilakukan proses deteksi bahasa dan konversi ke dalam satu bahasa standar yang dipilih. Dalam kata lain, diperlukan pengubahan bahasa pemrograman satu ke bahasa lain tanpa mengubah inti dari program tersebut atau dapat disebut sebagai sinonim bahasa pemrograman.

Oleh karena itu, diperlukan sebuah pengembangan sistem menggunakan algoritma dengan kompleksitas waktu yang baik serta menambahkan teknik stemming dan Synonym Recognition. Penelitian sebelumnya dapat dipaparkan secara ringkas dalam Tabel 2.1 :


(31)

17

Tabel 2.1 Penelitian Terdahulu

No. Nama (Tahun) Metode Kelebihan Kelemahan

1. Heriyanto (2011) Exact Match Waktu proses

algoritma yang relatif singkat

Hanya memroses kesamaan dan letak kata

2. Ramadhani, et al (2013)

Winnowing Memberikan hasil yang baik dengan selisih 4-7% dari proses manual

Hasil tidak optimal, dan waktu proses lebih tinggi dari algoritma Manber

3. Salmuasih (2013) Rabin Karp

& Similarity

Dapat mengecek kata yang memiliki

kemiripan dalam penulisan

Proses pengecekan kata lama dan modulo hanya menambah waktu proses 4. Goenawan, et al

(2005)

Edit Distance Dapat melihat perbedaan di antara dua string dengan cepat dan akurat

Maksimal string yang dapat digunakan adalah dua

5. Dani, et al (2006) Levenshtein

Distance

Mendeteksi kemiripan kode program dengan tingkat keakuratan yang baik

Tingkat akurasi rendah dalam mendeteksi

kemiripan skala besar maupun pada data yang banyak mengalami


(32)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dibahas mengenai beberapa hal, diantaranya data yang digunakan, flowchart dan activity diagram sistem serta analisis perancangan sistem baik dalam

mengimplementasikan algoritma Manber serta teknik stemming dan Synonym

Recognition maupun tampilan sistem.

3.1 Data Yang Digunakan

Ada beberapa data yang diperlukan dalam melakukan pendeteksian pada dokumen teks sesuai dengan algoritma dan teknik yang digunakan pada penelitian ini, yaitu :

1. Data uji dan pembanding, berupa data dengan format pdf atau teks biasa yang di-input secara manual.

2. Data mengenai kata dasar yang berasal dari Kamus Besar Bahasa Indonesia (KBBI) dan disimpan ke dalam satu tabel MySql. Tabel terdiri atas id kata dasar dan kata dasar.

3. Data mengenai sinonim kata yang bersumber dari Kamus Tesaurus Indonesia dan disimpan ke dalam satu tabel Mysql. Terdiri atas id kata sinonim, sinonim, dan kata.

3.2 F lowchart Sistem

F lowchart sistem menggambarkan tahapan dari penyelesaian masalah yang dilakukan oleh sistem. Tahapan diuraikan secara terstruktur sehingga dapat memberikan suatu


(33)

19

gambaran dan membantu pengguna untuk lebih memahami rancangan sistem yang akan dibuat.

F lowchart sistem yang dirancang akan menjelaskan bagaimana proses pendeteksian kemiripan dokumen teks dilakukan. Pendeteksian dimulai dari peng-input-an teks kemudian tahap P reprocessing (Gambar 3.1), Text Transformation (Gambar 3.2), F eature Selection, dan tahap terakhir yaitu pattern discovery yang terangkum dalam satu algoritma, yaitu algoritma Manber (Gambar 3.3) berikut:

START

BACA TEKS

KATA TOKENIZING

FILTERING INPUT DATA

Pr

e

p

ro

c

e

s

s

in

g

KALIMAT (HURUF, ANGKA, DAN WHITESPACE) CASE FOLDING

KALIMAT (LOWER

CASE)

FINISH


(34)

DB KATA DASAR STEMMING KATA DASAR DITEMUKAN KATA DASAR DB KATA SINONIM KATA SINONIM DITEMUKAN UBAH KATA KATA SINONIM NO YES NO YES T e x t T ra n s fo rm a ti o n Syn o n ym R e co g n iti o n KATA (HASIL TOKENIZING) FINISH START


(35)

21 KALIMAT HAPUS WHITESPACE KALIMAT (HURUF DAN ANGKA) F e a tu re Se le c ti o n Al g o ri tma Ma n b e r START KATA SINONIM HAPUS NOISE KATA (KARAKTER >3) GABUNG KATA METODE N-GRAM RANGKAIAN GRAM FUNGSI HASH NILAI HASH

H MOD P = 0

FINGERPRINT PERS. JACCARD COEF. PERSENTASE SiMILARITAS FINISH Pa tte rn D is c o v e ry A A


(36)

3.3 Activity Diagram

Activity Diagram sistem menggambarkan urutan aktivitas dari sistem yang dirancang. Aktivitas sistem digambarkan secara umum artinya tetap terstruktur namun tidak secara mendetail seperti pembuatan F lowchart. Activity Diagram diharapkan dapat membantu pemahaman proses rancangan sistem, baik interface maupun aktivitas yang dilakukan oleh sistem dengan lebih ringkas.

Activity Diagram yang dibuat akan menampilkan bagaimana aktivitas pada interface dan proses kerja sistem yang dirancang, seperti pada Gambar 3.4:

INTERFACE SISTEM

Stemming

Sinonim

Algoritma Manber Input File Pdf / Teks, N-Gram, dan

Modulo

Output : Hasil Proses Stemming, Sinonim, Rangkaian Gram, Fingerprint, Dan Similaritas

Gambar 3.4 Diagram Activity

Berdasarkan Gambar 3.4, maka proses dimulai dengan user meng-input kedua file pdf ataupun teks yang akan dibandingkan beserta nilai N yang digunakan sebagai panjang rangkaian gram dan nilai pembagi yang digunakan pada pemilihan fingerprint. Data


(37)

23

yang sudah diterima sistem, diproses menggunakan teknik stemming, kemudian dilanjutkan dengan proses Synonym Recognition, dan diakhiri dengan menggunakan algoritma Manber. Output yang diterima oleh user adalah :

1. Hasil stemming,

2. Hasil Synonym Recognition, 3. Hasil Noise Reduction, 4. Rangkaian gram, 5. Nilai hash, 6. F ingerprint, dan 7. Persentase similaritas.

3.4 Stemming

Proses stemming yang digunakan adalah Stemming P orter. Berdasarkan penelitiannya mengenai perbandingan Stemming P orter dengan Stemming Nazief & Adriani, Agusta (2009) menyimpulkan bahwa Stemming P orter memiliki waktu proses yang sangat cepat namun tingkat keakuratannya lebih kecil daripada Stemming Nazief & Adriani yang menggunakan kamus kata dasar. Meskipun keakuratan kata dasar yang dihasilkan dengan menggunakan Stemming Nazief & Adriani sangat baik, namun hal ini berbanding terbalik dengan waktu prosesnya yang sangat lama. Oleh karena itu,

maka digunakanlah Stemming P orter dengan menambahkan kamus kata dasar,

sehingga nantinya akan menghasilkan proses stemming yang cepat dan akurat.

Pada Tabel 3.1, dipaparkan mengenai bubuhan yang akan dideteksi pada proses Stemming P orter (Agusta, 2009), yaitu :

Tabel 3.1 Bubuhan Kata Stemming Porter

No. Jenis Bubuhan

1. Partikel -kah, -lah, -pun

2. Kata Ganti Orang

(P ossessive P ronoun)

-ku, -mu, -nya

3. Awalan 1 meng-, meny-, men-, mem-, me-, peng-,


(38)

4. Awalan 2 ber-, bel-, be-, per-, pel-, pe-

5. Akhiran -kan, -an, -i

Ada satu imbuhan lainnya, yaitu sisipan. Kata sisipan sangat jarang digunakan dan memiliki arti yang cenderung sama sehingga sisipan akan digabung ke dalam proses Synonym Recognition.

Ada beberapa kasus dimana keakuratan kata dasar yang terbentuk tidak sesuai dengan kata yang berasal dari kamus jika menggunakan bubuhan kata pada Tabel 3.1, salah satu contohnya adalah :

“sepengetahuanku”

Kata “sepengetahuanku” merupakan hasil gabungan dari :

1. Satu kata dasar : “tahu”

2. Satu imbuhan akhir : “an” 3. Satu kata ganti orang : “ku”

Berdasarkan contoh di atas, terdapat beberapa imbuhan yang tidak tercantum pada Tabel 3.1 sehingga tidak menghasilkan kata dasar yang sesuai dan masih banyak kasus lainnya. Oleh karena itu, dibentuk satu bubuhan kata yang lebih sesuai pada Tabel 3.2 berikut :

Tabel 3.2 Penambahan Bubuhan Kata

No. Jenis Bubuhan

1. Partikel -kah, -lah, -tah, -pun

2. Kata Ganti Orang -ku, -mu, -nya

3. Awalan 1 menge-, meng-, meny-, men-, mem-, me-, peng-,

peny-, pen-, pem-, di-, ber-, ke-, se-

4. Awalan 2 penge-, ber-, bel-, be-, per-, pel-, pe-, ter-, se-

5. Akhiran -kan, -an, -i

Ada beberapa awalan yang diberikan dua posisi yaitu sebagai awalan 1 dan awalan 2

karena terkadang awalan ini digunakan sebanyak dua kali, contohnya “sesekali”. Dengan menggunakan contoh yang sama, yaitu kata “sepengetahuanku” maka dihasilkan kata dasar “tahu” yang merupakan hasil gabungan dari :


(39)

25

1. Satu kata ganti orang : “-ku”

2. Satu awalan 1 : “se-“

3. Satu awalan 2 : “penge”

4. Satu akhiran : “an”

5. Satu kata dasar : “tahu”

Di dalam imbuhan bahasa Indonesia, terdapat beberapa peleburan huruf pada kata dasar. Peleburan tersebut hanya berasal dari prefiks atau awalan, contoh :

“me-“ + “tari” = “menari”

Oleh karena itu, maka diberikan beberapa aturan atau rules ke dalam proses stemming yang dapat dilihat pada Tabel 3.3 berikut :

Tabel 3.3 Rules Peleburan Huruf

No. Rules Keterangan

1. mem- + -r Menghasil kata dasar yang dimulai

dengan huruf p-

2. men- + huruf vokal (-a, -i, -u, -e, o) Menghasil kata dasar yang dimulai dengan huruf t-

3. meny- + huruf apapun Menghasil kata dasar yang dimulai

dengan huruf s- 4. meng- + huruf vokal (-a, -i, -u, -e, o)

+ kata dasar tidak dimulai dengan huruf vokal

Menghasil kata dasar yang dimulai dengan huruf k-

5. pem- + -r Menghasil kata dasar yang dimulai

dengan huruf p-

.6. pen- + huruf vokal (-a, -i, -u, -e, o) Menghasil kata dasar yang dimulai dengan huruf t-

7. peny- + huruf apapun Menghasil kata dasar yang dimulai

dengan huruf s- 8. peng- + huruf vokal (-a, -i, -u, -e, o)

+ kata dasar tidak dimulai dengan huruf vokal

Menghasil kata dasar yang dimulai dengan huruf k-


(40)

Awalan “bel-” dan “pel-” merupakan imbuhan yang hanya berasal dari peleburan

awalan “ber” atau “per-“ + kata dasar “ajar”, sehingga dapat diasumsikan bahwa

awalan “bel-” dan “pel-” bukan peleburan melainkan awalan. Sama halnya dengan

awalan “ber-“, ”per”, atau “ter-“ + dengan kata dasar yang dimulai dengan huruf “r”,

yaitu terjadi peleburan huruf “r”. Oleh karena itu, akan diasumsikan pula bahwa awalan “be-”, “pe”, atau “te” merupakan awalan.

Secara singkat, proses Stemming dapat dilihat pada gambar 3.5:

KATA HASIL TOKENIZING

CEK KATA PADA DATABASE KATA

DASAR

KATA DASAR DITEMUKAN

KATA DASAR TIDAK DITEMUKAN

CEK PARTIKEL

CEK KATA GANTI ORANG PENGHAPUSAN AWALAN 1 PENGHAPUSAN AWALAN 2 PENGHAPUSAN AKHIRAN KATA DASAR CEK 2 CEK 3 CEK 4 CEK 5 CEK 6 HAPUS BUBUHAN TIDAK ADA ADA TIDAK ADA TIDAK ADA TIDAK ADA ADA ADA ADA ADA TIDAK ADA CEK 1


(41)

27

Berikut ini merupakan penjelasan dari Gambar 3.5, yaitu :

1. Setiap kata hasil tokenizing dicek ke dalam database kata dasar. Pengecekan pertama dilakukan untuk mengetahui apakah kata merupakan kata dasar. a. Jika ya, maka kata merupakan kata dasar.

b. Jika tidak, maka dilakukan pengecekan ke-2.

2. Pengecekan ke-2 dilakukan untuk mengetahui apakah kata memiliki partikel.

a. Jika ya, maka dilakukan penghapusan partikel kemudian melakukan

pengecekan ke dalam database, apakah kata merupakan kata dasar atau tidak. Jika ya, maka kata merupakan kata dasar. Jika tidak, maka dilakukan proses ke-3.

b. Jika tidak, maka dilakukan pengecekan ke-3.

3. Pengecekan ke-3 dilakukan untuk mengetahui apakah kata memiliki kata ganti orang.

a. Jika ya, maka dilakukan penghapusan kata ganti orang kemudian

melakukan pengecekan ke dalam database, apakah kata merupakan kata dasar atau tidak. Jika ya, maka kata merupakan kata dasar. Jika tidak, maka dilakukan proses ke-4.

b. Jika tidak, maka dilakukan pengecekan ke-4.

4. Pengecekan ke-4 dilakukan untuk mengetahui apakah kata memiliki awalan 1. a. Jika ya, maka dilakukan penghapusan awalan 1 kemudian melakukan

pengecekan ke dalam database, apakah kata merupakan kata dasar atau tidak. Jika ya, maka kata merupakan kata dasar. Jika tidak, maka dilakukan proses ke-5.

b. Jika tidak, maka dilakukan pengecekan ke-5.

5. Pengecekan ke-5 dilakukan untuk mengetahui apakah kata memiliki awalan 2. a. Jika ya, maka dilakukan penghapusan awalan 2 kemudian melakukan

pengecekan kembali ke dalam database, apakah kata merupakan kata dasar atau tidak. Jika ya, maka kata merupakan kata dasar. Jika tidak, maka dilakukan proses ke-6.

b. Jika tidak, maka dilakukan pengecekan ke-6.

6. Pengecekan ke-6 merupakan proses terakhir. Selain untuk mengetahui apakah kata memiliki akhiran, juga sebagai pengasumsian kata dasar.


(42)

a. Jika ya, maka dilakukan penghapusan akhiran dan diasumsikan bahwa kata merupakan kata dasar.

b. Jika tidak, maka kata diasumsikan sebagai kata dasar.

3.5 Synonim Recognition

Synonim Recognition merupakan proses yang dilakukan setelah proses stemming. Hal ini dilakukan karena banyaknya kata sinonim yang berasal dari kata dasar meskipun beberapa sinonim kata menggunakan imbuhan. Untuk mengatasi permasalahan tersebut maka sinonim kata yang terdapat di dalam database merupakan kata dasar meskipun makna yang dari kata menjadi berubah.

Proses pengenalan sinonim ini dilakukan hanya sekali untuk setiap array kata yang ada sehingga apabila array kata merupakan kata bersinonim maupun tidak, maka array kata akan tetap dicetak sama seperti array kata sebelum proses Synonym Recognition. Hal ini dapat diakibatkan oleh tiga faktor, yaitu :

1. Kata adalah kata utama / sinonim kata, maksudnya kata merupakan bentuk ubahan yang terjadi pada kata yang memiliki sinonim.

2. Kata memang tidak memiliki sinonim. 3. Sinonim tidak terdapat di dalam database.

Secara ringkas, proses Synonym Recognition dapat dilihat pada gambar 3.6:

KATA HASIL

STEMMING CEK DATABASE KATA DITEMUKAN

KATA TIDAK DITEMUKAN

UBAH KATA

KATA SINONIM

Gambar 3.6 Proses Synonym Recognition

Berdasarkan Gambar 3.6, dapat dijelaskan bahwa array kata hasil proses stemming yaitu kata dasar akan dilakukan pengecekan ke dalam database sinonim.


(43)

29

1. Jika kata ditemukan, maka kata diubah sesuai dengan sinonim katanya dan menghasilkan kata sinonim. Jika kata sudah merupakan sinonimnya, maka kata tidak mengalami perubahan dan tetap menghasilkan kata sinonim.

2. Jika kata tidak ditemukan, maka kata tidak mengalami perubahan dan tetap menghasilkan kata sinonim.

3.6 Algoritma Manber

Algoritma Manber merupakan proses terakhir setelah proses stemming dan Synonym Recognition. Untuk mendapatkan hasil yang maksimal, maka proses stemming dan Synonym Recognition harus dilakukan semaksimal mungkin, karena kedua proses ini memiliki pengaruh yang cukup besar pada hasil akhir.

Penghapusan noise pada algoritma Manber yang digunakan dalam penelitian ini sangat bergantung pada proses Synonym Recognition karena noise yang digunakan merupakan kata dengan panjang karakter kurang dari empat (panjang string < 4). Oleh karena itu, perubahan kata sinonim yang dilakukan merupakan string dengan panjang karakter yang lebih kecil. Sebagai contoh, kata “yang” merupakan sinonim dari kata

“nan” sehingga kata tersebut diubah menjadi kata dengan panjang string yang lebih kecil dan dihapus. Proses ini ditujukan selain sebagai syarat algoritma pendeteksi kemiripan teks, juga untuk mengurangi penggunaan waktu proses yang tidak diperlukan, meskipun persentase yang dikeluarkan menjadi lebih kecil namun tidak berbeda jauh dengan hasil tanpa menggunakan noise reduction.

Berdasarkan penjelasan sebelumnya mengenai faktor-faktor yang

mempengaruhi pemilihan fingerprint, maka diberikan beberapa batasan agar tidak banyak menghasilkan asumsi persentase kemiripan dokumen teks, yaitu :

1. Basis pada fungsi hash yang digunakan adalah 2.

2. Nilai N pada N-Gram disesuaikan dengan banyaknya huruf yang menyusun teks tersebut, yaitu angka 1 hingga 8.

3. Nilai pembagi yang digunakan untuk pemilihan fingerprint adalah 1 sehingga seluruh nilai hash akan dijadikan sebagai fingerprint.

Selain itu, penggunaan batasan juga ditujukan untuk memudahkan penggunaan sistem tanpa meng-input kembali parameter yang digunakan.


(44)

Berikut ini merupakan langkah penyelesaian oleh algoritma Manber yang dapat digambarkan secara ringkas pada Gambar 3.7:

KALIMAT

HAPUS NOISE DAN

WHITESPACE

MEMBUAT RANGKAIAN GRAM SEPANJANG N

FUNGSI HASH SETIAP RANGKAIAN GRAM

NILAI HASH

H MOD P = 0

FINGERPRINT

PERS. JACCARD COEF.

PERSENTASE SIMILARITAS menghasilkan

menentukan

fingerprint

diproses

hasil spasi dan

karakter tidak relevan

nilai N digunakan

Gambar 3.7 Proses Algoritma Manber

Berdasarkan Gambar 3.7, proses algoritma Manber dimulai dengan menghapus noise dan whitespace, kemudian dilakukan pembuatan rangkaian gram sesuai dengan nilai N yang dimasukkan pengguna. Setiap rangkaian gram yang terbentuk, diproses menggunakan fungsi hash. Proses dari fungsi hash akan menghasilkan nilai hash dimana nilai-nilai hash yang terbentuk akan dipilih untuk dijadikan fingerprint dokumen. Pemilihan fingerprint harus sesuai dengan persyaratan algoritma Manber, yaitu hasil modulo nilai hash bernilai 0. Langkah terakhir algoritma Manber adalah dengan memroses fingerprint tersebut dengan menggunakan persamaan Jaccard Coefficient. Pertama, fingerprint yang terbentuk dari kedua data (uji dan banding) diiriskan sehingga terbentuklah satu rangkaian fingerprint yang sama. Kemudian membuat gabungan dari seluruh fingerprint. Jumlah irisan dibagi dengan jumlah gabungan fingerprint, hasil bagi ini dikali dengan 100% untuk mendapatkan hasil akhir berupa persentase.


(45)

31

3.7 Deteksi Kemiripan Teks Secara Manual

Berikut ini merupakan contoh penghitungan manual dari pendeteksian kemiripan teks pada penjiplakan jenis Disguised P lagiarism, yaitu:

Teks Uji : Tubuh saya memerlukan takaran nutrisi yang mencukupi supaya tidak segera sakit.

Teks Banding : Agar tubuhnya tidak cepat mengidap penyakit, maka dibutuhkan tambahan vitamin dengan dosis yang pas.

Gram : 2

1. Case F olding dan hapus karakter tidak relevan yaitu seluruh karakter, kecuali huruf, angka, dan whitespace.

Teks Uji : tubuh saya perlu takar nutrisi yang cukup supaya tidak segera sakit

Teks Banding : agar tubuh tidak cepat idap sakit maka butuh tambah vitamin dengan dosis yang pas

2. Proses Stemming dengan pengecekan pada kamus kata dasar.

Teks Uji : tubuh saya perlu takar nutrisi yang cukup supaya tidak segera sakit

Teks Banding : agar tubuh tidak cepat idap sakit maka butuh tambah vitamin

dengan dosis yang pas

3. Proses Synonym Recognition dengan pengecekan pada kamus kata sinonim. Teks Uji : badan aku perlu dosis gizi nan cukup agar tidak cepat sakit Teks Banding : agar badan tidak cepat idap sakit dan perlu tambah gizi dan

dosis nan cukup

4. Noise Reduction dengan menghapus kata yang memiliki jumlah karakter < 4. Teks Uji : badan perlu dosis gizi cukup agar tidak cepat sakit

Teks Banding : agar badan tidak cepat idap sakit perlu tambah gizi dosis


(46)

5. Hapus whitespace seperti spasi antar kata.

Teks Uji : badanperludosisgizicukupagartidakcepatsakit

Teks Banding : agarbadantidakcepatidapsakitperlutambahgizidosiscukup

6. Rangkaian N-Gram dengan nilai N = 2.

Teks Uji : ba ad da an np pe er rl lu ud do os si is sg gi iz zi ic cu uk ku

up pa ag ga ar rt ti id da ak kc ce ep pa at ts sa ak ki it

Teks Banding : ag ga ar rb ba ad da an nt ti id da ak kc ce ep pa at ti id da ap ps sa ak ki it tp pe er rl lu ut ta am mb ba ah hg gi iz zi id do

os si is sc cu uk ku up

7. Menentukan nilai hash dengan memasukkan rangkaian gram ke dalam fungsi hash.

Teks Uji : 293 294 297 304 332 325 316 336 333 334 311 337 335 325

333 311 332 349 309 315 341 331 346 321 297 303 308 344 337 310 297 301 313 299 314 321 310 347 327 301 319 326

Teks Banding : 297 303 308 326 293 294 297 304 336 337 310 297 301 313

299 314 321 310 337 310 297 306 339 327 301 319 326 344 325 316 336 333 350 329 303 316 293 298 311 311 332 349 310 311 337 335 325 329 315 341 331 346

8. Memilih fingerprint dari nilai hash yang memenuhi persyaratan, yaitu

menggunakan (2.2) dengan nilai pembagi P = 1.

Teks Uji : 293 294 297 304 332 325 316 336 333 334 311 337

335 349 307 303 308 344 310 301 313 299 314 321 347 327 319 326

Teks Banding : 297 303 308 326 293 294 304 336 337 310 301 313

299 314 321 306 339 327 319 344 325 316 333 350 329 298 311 332 349 335

9. Menghitung similaritas, yaitu dengan menggunakan (2.3) sehingga didapatkan hasil akhir berupa persentase similaritas teks.


(47)

33

Jumlah Irisan (Uji, Banding) : 25

Jumlah Gabungan (Uji, Banding) : 33

Berdasarkan penghitungan yang dilakukan, maka dapat dianalisis bahwa : 1. Penghitungan manual berlangsung dalam waktu yang cukup lama. 2. Kemungkinan terjadi kesalahan dalam proses.

3. Membutuhkan alat bantu lain seperti alat hitung dan kamus.

3.8 Perancangan Database Dan Interface Sistem

Sistem pendeteksi dokumen teks yang dirancang terdiri atas dua komponen utama, yaitu database dan interface sistem.

3.8.1 Database Sistem

Database sistem merupakan tempat penyimpanan data dalam skala kecil maupun besar. Sub database adalah tabel yang berisi mengenai data spesifik yang dibutuhkan oleh sistem. Penelitian ini hanya menggunakan dua tabel yang difungsikan untuk pengecekan kata dasar dan kata bersinonim, yaitu :

1. Tabel kata dasar

Tabel ini digunakan pada proses stemming. Rancangan tabel kata dasar dapat dilihat pada Tabel 3.4 dengan rincian sebagai berikut :

a. id kata dasar, dan b. kata dasar.

% 76 , 75 % 100 33 25   x % 100 | | | | ) , ( x wd wd wd wd d d Kemiripan pembanding uji pembanding uji gabungan irisan   


(48)

Tabel 3.4 Rancangan Tabel Kata Dasar

No. Nama Tipe Ekstra Aksi

1. id_ktdasar int(10) auto increment primary key

2. katadasar varchar(20)

2. Tabel kata sinonim

Tabel ini digunakan pada proses Synonym Recognition. Rancangan tabel sinonim kata dapat dilihat pada Tabel 3.5 dengan rincian sebagai berikut : a. id kata sinonim,

b. Sinonim kata, dan c. Kata dasar.

Tabel 3.5 Rancangan Tabel Kata Sinonim

No. Nama Tipe Ekstra Aksi

1. id_ktsinonim int(10) auto increment primary key

2. katasinonim varchar(20)

3. sinonim varchar(20)

3.8.2 Interface Sistem

Interface sistem merupakan tampilan sistem yang berfungsi untuk membantu pengguna dalam menggunakan sistem.

Interface sistem pada penelitian ini dibuat sesederhana mungkin dengan tujuan untuk mengurangi penggunaan waktu yang tidak relevan pada proses sistem serta membantu pengguna dalam memahami dan menggunakan sistem. Rancangan interface sistem ini dapat dibagi menjadi dua, yaitu:

1. Tampilan Awal

Tampilan awal digunakan untuk memasukkan data yang diuji maupun dibandingkan serta nilai-nilai yang diperlukan dalam pemrosesan deteksi kemiripan teks. Tampilan awal sistem menggunakan lima komponen dasar, yaitu: iframe, textarea, textbox, button, dan tabel.

Adapun bentuk ataupun gambaran dari tampilan awal sistem yang akan dibuat dapat dilihat pada Gambar 3.8 berikut :


(49)

35

TEXTAREA UJI TEXTAREA BANDING

TOMBOL CETAK UJI TOMBOL CETAK BANDING TOMBOL PROSES SISTEM

TEXTBOX N-GRAM TEXTBOX MODULO TEXTBOX FILE TOMBOL SUBMIT TOMBOL BROWSE

IFRAME UJI

TEXTBOX FILE TOMBOL SUBMIT TOMBOL BROWSE

IFRAME BANDING

TOMBOL RESET

Gambar 3.8 Rancangan Tampilan Awal Sistem

Berikut ini merupakan rincian dari rancangan tampilan awal pada Gambar 3.6 yang akan dibuat, yaitu :

a. Textbox file untuk memuat url file pdf, b. Tombol Browse untuk mencari file pdf, c. Tombol Submit untuk membaca isi pdf,

d. IF RAME uji sebagai media pembaca isi pdf uji,

e. IF RAME banding sebagai media pembaca isi pdf banding, f. Tombol pencetak dokumen dari iframe uji ke Textarea uji,

g. Tombol pencetak dokumen dari iframe banding ke Textarea banding, h. Textarea uji sebagai media pencetak teks pdf uji dan sebagai media input

teks uji secara manual,

i. Textarea banding sebagai media pencetak teks pdf banding dan sebagai media input teks banding secara manual,

j. Tombol mulai untuk memulai proses pendeteksian.


(50)

2. Tampilan Hasil

Tampilan akhir berfungsi untuk menampilkan hasil dari proses pendeteksian kemiripan dokumen teks. Adapun hasil proses yang akan ditampilkan pada tampilan hasil adalah:

a. Hasil stemming,

b. Hasil Synonym Recognition, c. Hasil Noise Reduction,

d. Rangkaian N-Gram,

e. Nilai hash tiap rangkaian gram, f. F ingerprint dokumen, dan

g. Persentase similaritas dokumen teks.

Rincian tersebut dirancang di dalam satu tabel dan diakhiri dengan waktu proses pendeteksian, sesuai dengan rancangan pada Gambar 3.9 berikut :

WAKTU PROSES SISTEM

TABEL HASIL

NO PROSES HASIL PROSES PADA TEKS UJI HASIL PROSES PADA TEKS BANDING


(51)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Pada bab ini, akan dibahas mengenai implementasi dari algoritma Manber, teknik stemming, dan Synonym Recognition sehingga pengujian terhadap sistem dapat dilakukan, baik untuk tampilan sistem maupun hasil akhir berupa persentase kemiripan yang dimiliki oleh dokumen teks uji dengan pembandingnya.

4.1 Implementasi

Sistem diprogram dengan menggunakan bahasa pemrograman PHP, artinya sistem akan dijalankan pada browser sebagai media pemrosesan dan interface sistem.

Database yang digunakan adalah database MySql dengan menggunakan software

XAMPP.

4.1.1 Spesifikasi Hardware Dan Software Yang Digunakan

Berikut ini merupakan spesifikasi yang digunakan dalam pembuatan sistem dapat, yaitu :

1. P rocessor AMD A8-5600k APU with Radeon™ HD Grapichs (4 CPUs), ~3.6GHz.

2. Kapasitas hard disk 500 GB.

3. Memori RAM yang digunakan 4 GB.


(52)

5. XAMPP 1.8.1. 6. Mozilla Firefox 30.0.

4.1.2 Database Tabel Kata Dasar

Tabel kata dasar terdiri atas dua kolom, yaitu id kata dasar dan kata dasar sesuai dengan Gambar 4.1 berikut :

Gambar 4.1 Database Tabel Kata Dasar

4.1.3 Database Tabel Kata Sinonim

Tabel kata sinonim terdiri atas tiga kolom, yaitu id kata sinonim, kata sinonim, dan sinonim kata sesuai dengan Gambar 4.2 berikut :


(53)

39

4.1.4 Tampilan Awal

Tampilan awal sistem dibuat sederhana agar mudah dalam menggunakan sistem serta membuang waktu yang tidak relevan, dengan rincian sebagai berikut :

1. Tombol Browse untuk mencari file pdf yang akan diuji dan dibandingkan. 2. Tombol Submit sebagai proses pembacaan file pdf yang sudah ditemukan. 3. IF RAME yang digunakan untuk membaca file pdf yang ditemukan.

4. Tombol cetak pdf untuk proses pencetakan isi iframe ke dalam textarea-nya masing- masing.

5. Textarea yang digunakan sebagai media cetak hasil pembacaan file pdf dari iframe dan sebagai input-an teks secara manual yang tidak berasal dari file pdf. 6. Textbox yang digunakan untuk mendapatkan nilai N dalam pembuatan

rangkaian gram dan nilai pembagi modulo pada pemilihan fingerprint.

7. Tombol deteksi untuk memulai proses pendeteksian dan tombol reset untuk me-refresh atau mengondisikan sistem seperti semula.

Semua elemen terangkum ke dalam sebuah tabel dengan ketebalan garis = 0. Tampilan awal sistem dapat dilihat pada Gambar 4.3 berikut :


(54)

4.1.5 Tampilan Hasil

Tampilan hasil sistem dimuat dalam satu tabel dengan tujuan untuk memudahkan pengguna dalam membaca hasil yang dikeluarkan, seperti pada Gambar 4.4 berikut :

Gambar 4.4 Tampilan Hasil Sistem

Pada tampilan hasil turut dicantumkan waktu proses sehingga pengguna dapat mengukur kecepatan dari gabungan algoritma dan kedua teknik pendukungnya. Berikut ini merupakan kode program yang di implementasikan untuk menampilkan waktu proses sistem, yaitu :

1. Pada awal kode program :

$mtime = microtime();


(55)

41

$mtime = $mtime[1] + $mtime[0]; $starttime = $mtime;

2. Pada akhir kode program :

$mtime = microtime();

$mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime;

$totaltime = round($endtime - $starttime , 3);

4.1.6 Stemming

Proses stemming terbagi atas lima tahap, dimana tahap ini harus dilakukan secara berturut agar mendapatkan hasil yang sesuai. Masing-masing tahap penghapusan dibuat menjadi paket-paket untuk memudahkan proses pemanggilan fungsi, sebagai contoh :

function hapuspartikel($kata){ }

Kode program yang digunakan pada penghapusan setiap bubuhan kata harus dilakukan sesingkat mungkin, salah satu caranya adalah dengan menggabungkan bubuhan kata yang memiliki panjang string yang sama, seperti :

if(substr($kata, -2) == 'ku' || substr($kata, -2) == 'mu'){ }

else if((substr($kata, -3)== 'nya')){ }

Dengan menggunakan cara seperti ini, tentunya sistem akan lebih cepat dalam mencari bubuhan kata yang dicari.

Di dalam pengimplementasiannya, proses stemming setiap bubuhan kata harus diselingi dengan stemming bubuhan kata selanjutnya. Berikut ini merupakan contoh kode program yang diimplementasikan ke dalam sistem, yaitu :

if(substr($kata, -2) == 'ku' || substr($kata, -2) == 'mu'){ $kata1 = substr($kata, 0, -2);

$ak1 = hapusakhiran(hapusawalan2(hapusawalan1($kata1))); if(cari($ak1) != 0){


(56)

} else{

$kata; }

}

Jika proses pada variable $ak1 tidak dilakukan, maka proses pencarian kata dasar di dalam kamus tidak akan ditemukan, sehingga menghasilkan kata itu kembali. Gambar 4.6 berikut merupakan contoh pengimplementasian teknik stemming di dalam sistem :

Gambar 4.5 Hasil Implementasi Stemming

4.1.7 Synonym Recognition

Pengimplementasian Synonym Recognition sangat sederhana karena proses yang dilakukan hanya mengecek database :

$a = mysql_query("select * from tb_katasinonim where sinonim = '$c'");

$b = mysql_fetch_array($a);

Dan melakukan pengubahan jika kata sinonim ditemukan :

if($b){

$d = $b[katasinonim]; }

Jika tidak ditemukan, maka kata tidak berubah :

else{

$d = $c; }

Kata sinonim yang dijadikan sebagai acuan perubahan merupakan kata dengan panjang string yang terkecil, sehingga proses noise reduction pada algoritma Manber


(57)

43

dapat berjalan. Gambar 4.6 berikut merupakan contoh implementasi Synonym

Recognition setelah proses stemming :

Gambar 4.6 Hasil Implementasi Synonym Recognition

4.1.8 Algoritma Manber

Gambar 4.7 berikut merupakan hasil dari penyelesaian algoritma Manber yang dilakukan secara berturut di mulai dari penghapusan noise dan whitespace hingga pemilihan fingerprint, yaitu :

Gambar 4.7 Hasil Proses Algoritma Manber

Proses terakhir algoritma Manber adalah menentukan similaritas dokumen teks dengan menggunakan persamaan Jaccard Coefficient dengan yang dapat dilihat pada Gambar 4.8, berikut :

Teks Uji : Tubuh saya memerlukan takaran nutrisi yang mencukupi supaya tidak segera sakit.


(58)

Teks Banding : Agar tubuhnya tidak cepat mengidap penyakit, maka dibutuhkan tambahan vitamin dengan dosis yang pas.

Gram : 2

Modulo : 2

Gambar 4.8 Hasil Akhir Algoritma Manber

4.2 Pengujian Sistem

Pengujian yang dilakukan pada sistem adalah mendeteksi kemiripan satu dokumen teks uji dengan satu dokumen teks banding baik hanya menggunakan algoritma Manber saja, dengan menambahkan teknik stemming atau Synonym Recognition saja maupun kombinasi kedua teknik. Hal ini dilakukan untuk mengetahui seberapa besar pengaruhnya terhadap hasil dan waktu pemrosesan, serta beberapa pengujian lainnya, seperti pengujian rules pada proses stemming dan lainnya.

4.2.1 P engujian Tampilan Sistem

Pengujian yang dilakukan pada tampilan sistem berupa fungsi dari tiap komponen, algoritma serta teknik yang digunakan. Rancangan pengujian dapat dilihat pada Tabel 4.1 dan dilanjutkan dengan hasil pengujian pada Tabel 4.2 berikut ini :

Tabel 4.1 Rancangan Pengujian Tampilan Sistem

No. Komponen Sistem Yang Diuji Butir Uji

1. Tombol Browse Memunculkan window untuk mencari

file pdf yang akan diuji atau banding

2. Tombol Submit Menampilkan isi file pdf ke

masing-masing iframe, baik uji ataupun banding 3. Iframe pembaca file pdf Pembacaan isi file pdf ke dalam iframe


(59)

45

4. Pencetakan file pdf dari iframe ke textarea

Menguji dua tombol yang berfungsi untuk mencetak file pdf dari iframe ke textarea

5. Textarea Textarea dapat berisikan teks selain

hasil cetak file pdf

6. Tombol Deteksi Pendeteksian dapat diproses atau tidak

7. Tombol Reset Mengembalikan sistem ke keadaan

semula

8. Stemming Menghasilkan kata dasar yang sesuai

9. Synonym Recognition Menghasilkan kata bersinonim

10. Rangkaian Gram Menghasilkan rangkaian gram

sepanjang N yang di-input

11. Hash Menghasilkan nilai hash yang sesuai

fungsi hash

12. F ingerprint Menghasilkan fingerprint yang sesuai

dengan syarat

13. Similaritas Menghasilkan persentase yang sesuai

dengan persamaan

Tabel 4.2 Hasil Pengujian Tampilan Sistem No. Komponen Sistem Yang Diuji Hasil Pengujian

1. Tombol Browse Berhasil

2. Tombol Submit Berhasil

3. Iframe pembaca file pdf Berhasil

4. Pencetakan file pdf dari iframe ke textarea

Berhasil

5. Textarea Berhasil

6. Tombol Deteksi Berhasil

7. Tombol Reset Berhasil

8. Stemming Berhasil

9. Synonym Recognition Berhasil


(60)

11. Hash Berhasil

12. F ingerprint Berhasil

13. Similaritas Berhasil

4.2.2 P engujian P roses Stemming

Sesuai dengan penjelasan pada Bab 3 mengenai penggunaan rules (dan penambahan bubuhan kata), maka dirancang sebuah pengujian yang dapat dilihat pada Tabel 4.3, dilanjutkan dengan pembuktian pengujian melalui Gambar 4.9, dan diakhiri dengan hasil pengujian pada Tabel 4.4 berikut ini :

Tabel 4.3 Rancangan Pengujian Rules

No. Rules Butir Uji

1. mem- + -r Menghasil kata dasar yang dimulai

dengan huruf p-

2. men- + huruf vokal (-a, -i, -u, -e, o) Menghasil kata dasar yang dimulai dengan huruf t-

3. meny- + huruf apapun Menghasil kata dasar yang dimulai

dengan huruf s- 4. meng- + huruf vokal (-a, -i, -u, -e, o) + kata

dasar tidak dimulai dengan huruf vocal

Menghasil kata dasar yang dimulai dengan huruf k-

5. pem- + -r Menghasil kata dasar yang dimulai

dengan huruf p-

.6. pen- + huruf vokal (-a, -i, -u, -e, o) Menghasil kata dasar yang dimulai dengan huruf t-

7. peny- + huruf apapun Menghasil kata dasar yang dimulai

dengan huruf s- 8. peng- + huruf vokal (-a, -i, -u, -e, o) + kata

dasar tidak dimulai dengan huruf vokal

Menghasil kata dasar yang dimulai dengan huruf k-


(61)

47

Gambar 4.9 Pengujian Stemming Dan Rules

Tabel 4.4 Hasil Pengujian Rules

No. Rules Hasil Pengujian

1. mem- + -r Berhasil

2. men- + huruf vokal (-a, -i, -u, -e, o) Berhasil

3. meny- + huruf apapun Berhasil

4. meng- + huruf vokal (-a, -i, -u, -e, o) + kata dasar tidak dimulai dengan huruf vokal

Berhasil

5. pem- + -r Berhasil

6. pen- + huruf vokal (-a, -i, -u, -e, o) Berhasil

7. peny- + huruf apapun Berhasil

8. peng- + huruf vokal (-a, -i, -u, -e, o) + kata dasar tidak dimulai dengan huruf vokal

Berhasil

Berdasarkan hasil pengujian yang diberikan, maka dapat disimpulkan bahwa penambahan rules dan bubuhan kata pada Stemming P orter merupakan langkah yang tepat untuk menghasilkan kata dasar yang lebih sesuai.


(1)

56

Osman, A.H. & Salim, N. & Abuobieda, A. 2012. Survey of Text Plagiarism

Detection.

Computer Engineering and Applications

1(1): 37-45.

Pratama, M.R. & Cahyono, E.K. & Marthasari, G.I. 2012. Aplikasi Pendeteksi

Duplikasi

Dokumen

Teks

Bahasa

Indonesia

Menggunakan

Algoritma

Winnowing

Dengan Metode K-Gram Dan

Synonym Recognition

. Skripsi.

Jurusan Teknik Informatika Universitas Muhammadiyah Malang.

Purwitasari, D. & Kusmawan, P.Y. & Yuhana, U.L. 2009. Deteksi Keberadaan

Kalimat Sama sebagai Indikasi Penjiplakan dengan Algoritma

Hashing

Berbasis N-Gram

.

Skripsi. Institut Teknologi Sepuluh Nopember Surabaya.

Ramadhani, I. & Ardiatma, A.D. & Bavana, S.C. & Sutoya, R. 2013. Pengembangan

Aplikasi Pendeteksi Kesamaan Dokumen Dengan Algoritma

Winnowing

dan

Metode K-Gram Yang Berbasis Web. Skripsi. Universitas Binus Jakarta.

Salmuasih. 2013. Implementasi Algoritma

Rabin Karp

Untuk Pendeteksian Plagiat

Dokumen Teks Menggunakan Konsep

Similarity

. Skripsi. STMIK AMIKOM.

Stein, B. & Eissen, S.M. 2006. Near Similarity Search and Plagiarism Analysis.

29th

Annual Conference of the German Classification Society (GfKl)

. pp. 430-437.

Tesaurus Bahasa Indonesia. 2008. Departemen Pendidikan Nasional: Jakarta.

Triawati, Chandra. 2009. Metode Pembobotan

Statistical Concept Based

untuk

Klastering

dan Kategorisasi Dokumen Berbahasa Indonesia. Skripsi. Institut

Teknologi Telkom Bandung.


(2)

LAMPIRAN: KODE PROGRAM

1.

index.php

<html>

<title>Tampilan Awal Sistem</title> <table border = "0" width ="100%"> <tr>

<th valign = "top"> <!--Baca File PDF-->

<form action = "pdf.php" method="post" enctype="multipart/form-data" target="iframe1">

<center> PDF Uji :

<input type="file" class="form-control" id="inputFile" name="inputFile" placeholder="File">

<button type="submit" class="btn btn-default">Submit</button> <div class="container">

<iframe id="iframe1" name="iframe1"></iframe> </div>

</center> </form> </th> </tr>

<!--Cetak PDF Dari Iframe Ke Textarea--> <tr>

<form action = "hasil.php" method = "post"> <td valign = "top">

<button type = "button"

onclick="getIframeContent1('iframe1')">Cetak Teks PDF Uji</button><br><br>

<div class="container">

<textarea id="textarea1" name="textarea1"

onfocus="clearContents(this);" title= "Textarea Harus Diisi" required = "required">Input Teks Uji Secara Manual</textarea> </div>

</td> </tr>

<!—Tombol Proses Pendeteksian--> </table>

</html>

2.

pdf.php

<?php


(3)

58

header('Content-Type: text/html; charset=UTF-8'); include 'vendor/autoload.php';

$message = ''; $texts = array();

if ($_SERVER['REQUEST_METHOD'] == 'POST') { try {

$content = '';

if (isset($_FILES['inputFile']) && $_FILES['inputFile']['type'] == 'application/pdf') {

$content = file_get_contents($_FILES['inputFile']['tmp_name']); }

if ($content) {

$parser = new \Smalot\PdfParser\Parser(); $pdf = $parser->parseContent($content); $pages = $pdf->getPages();

foreach ($pages as $page) { $texts[] = $page->getText(); }

} else {

throw new Exception('Unable to retrieve content. Check if it is really a pdf file.');

}

} catch(Exception $e) { $message = $e->getMessage(); }

} ?>

<!--Membaca Isi PDF--> <html>

<?php if ($message): ?> <?php echo $message; ?> <?php endif; ?>

<?php if ($texts) : ?>

<?php foreach ($texts as $pos => $text) : ?> <?php echo $text; ?>

<?php endforeach; ?> <?php endif; ?> </html>

3.

stemming.php

<?php

include "koneksi.php";

//Cek Kata Dasar Dalam Database function cari($kata){

$hasil = mysql_num_rows(mysql_query("SELECT katadasar FROM tb_katadasar WHERE katadasar='$kata'"));


(4)

}

//1. Hapus Partikel : -kah, -lah, -tah, -pun function hapuspartikel($kata){

if(cari($kata) == 0){

if(substr($kata, -3) == 'kah' || substr($kata, -3) == 'lah' || substr($kata, -3) == 'pun' || substr($kata, -3) == 'tah'){ $kata1 = substr($kata, 0, -3);

$ak1 = hapusakhiran(hapusawalan2(hapusawalan1(hapuspp($kata1)))); if(cari($ak1) != 0){

$kata = $kata1; }

else{ $kata; } } else{ $kata; } } else{ $kata; }

return $kata; }

//2. Hapus Kata Ganti Orang : -ku, -mu, -nya //3. Hapus Awalan1 :

//4. Hapus Awalan2 :

//5. Hapus Akhiran : -i, -kan, -an ?>

4.

hasil.php

<html>

<title>Tampilan Hasil Sistem</title> <?php

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_STRICT)); include_once 'stemming.php';

include 'koneksi.php'; //Waktu Mulai Eksekusi $mtime = microtime();

$mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime;

//Nilai N-Gram Dan Modulo $k = $_POST['n-gram']; $mdl = 1;

//Proses Teks Uji :


(5)

60

$txt1a = strtolower($txt1);

$txta = preg_replace('#[^a-zA-Z0-9 ]#', ' ', $txt1a); //1a. Stemming

$d1 = explode(" ", $txta); $counta = count($d1);

for($ij=0;$ij<$counta;$ij++){ $kata = $d1[$ij];

$st2 =

hapusakhiran(hapusawalan2(hapusawalan1(hapuspp(hapuspartikel($kata))) ));

$st3 = $st3.$st2." "; }

//2a. Sinonim

$st4 = explode(" ", $st3); $countb = count($st4); for($i=0;$i<$countb;$i++){

$a = mysql_query("select * from tb_katasinonim where sinonim = '$st4[$i]'");

$b = mysql_fetch_array($a); if($b){

$r = $b[katasinonim]; }

else{

$r = $st4[$i]; }

$r3 = $r3.$r." ";

//Menghapus string yang hanya memiliki panjang < 4 if(strlen($r) > 3){

$r3a = $r3a.$r." "; }

$r3b = $r3a; }

//Algoritma Manber //3a. Hapus Whitespace

$r1 = preg_replace("/[^A-Za-z0-9]/", '', $r3b); //4a. N-Gram

$x = strlen($r1); for($j=0;$j<$x;$j++){ $z = substr($r1,0+$j,$k); //5a. Rolling Hash

$f1 = strlen($z); if($f1 == $k){ $z1 = $z1.$z." "; $p1 = 0;

for($l=0;$l<$k;$l++){ $y[$l] = ord($z[$l]); $y1[$l] = $y[$l]; }

for($v=0;$v<$k;$v++){ $p = pow(2,($k-(1+$v))); $p1 = $p1 + ($y1[$v] * $p); }


(6)

$p111 = $p111.$p1." "; }

}

//6a. Fingerprint $o = $x - ($k - 1); for($h=0;$h<$o;$h++){ $mod1 = $p11[$h] % $mdl; if($mod1 == 0){

$array1 = $p11[$h]." "; $array12 = $array12.$array1; $array11[] = $array1;

$co1 = $co1 + 1; }

}

for ($ii = 0; $ii < $len; $ii++) { $arr1 = $array11[$ii]." ";

$arr11 = $arr11.$arr1; $arr111[] = $arr1; }

//7. Persamaan Jaccard Coefficient $hasil = round($xx / ($xyz) * 100 , 2); //Waktu Eksekusi Sistem

$mtime = microtime();

$mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime;

$totaltime = round($endtime - $starttime , 3);

echo "<br><br>Waktu Proses Pendeteksian ".$totaltime." detik"; ?>