Implementasi Algoritma Rabin-Karp Menggunakan Stemming Nazief Dan Adriani Untuk Mendeteksi Tingkat Kemiripan File Teks Yang Berbentuk Skripsi

(1)

IMPLEMENTASI ALGORITMA RABIN-KARP MENGGUNAKAN

STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI

TINGKAT KEMIRIPAN FILE TEKS YANG

BERBENTUK SKRIPSI

SKRIPSI

WINDI ARINDA

091401061

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015


(2)

IMPLEMENTASI ALGORITMA RABIN-KARP MENGGUNAKAN STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI

TINGKAT KEMIRIPAN FILE TEKS YANG BERBENTUK SKRIPSI

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

WINDI ARINDA 091401061

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA RABIN-KARP

MENGGUNAKAN STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI TINGKAT KEMIRIPAN FILE TEKS YANG BERBENTUK SKRIPSI

Kategori : SKRIPSI

Nama : WINDI ARINDA

Nomor Induk Mahasiswa : 091401061

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di

Medan, Februari 2015

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ade Candra, ST, M.Kom Dr. Poltak Sihombing, M.Kom NIP. 197909042009121002 NIP. 196203171991031001

Diketahui/Disetujui oleh

Program Studi S1 IlmuKomputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA RABIN-KARP MENGGUNAKAN STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI TINGKAT KEMIRIPAN

FILE TEKS YANG BERBENTUK SKRIPSI

SKRIPSI

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

Medan, Februari 2015

WINDI ARINDA 091401061


(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada ALLAH SWT yang senantiasa melimpahkan rahmat dan karunia-NYA sehingga skripsi ini dapat diselesaikan.

Ucapan terimakasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung.

Ucapan terima kasih penulis sampaikan kepada :

1. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Program Studi Ilmu Komputer Universitas Sumatera Utara.

2. Ibu Maya Silvi Lydia, B.Sc, M.Sc, selaku Sekretaris Program Studi Ilmu Komputer Universitas Sumatera Utara.

3. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen pada Program Studi Ilmu Komputer FASILKOM-TI USU, dan semua pegawai di Ilmu Komputer FASILKOM-TI USU.

4. Bapak Dr. Poltak Sihombing, M.Kom dan bapak Ade Candra, ST, M.Kom selaku pembimbing skripsi yang telah banyak memberikan bantuan, arahan, petunjuk, serta kesabaran dalam pengerjaan skripsi ini.

5. Bapak Prof. Dr. Muhammad Zarlis dan bapak Drs. Marihat Situmorang, M.Kom selaku pembanding skripsi yang telah banyak memberikan kritik dan saran serta arahan dalam pengerjaan skripsi ini.

6. Teristimewa untuk Ayahanda dan Ibunda penulis Bapak Sudiono dan Ibu Nurhasanah yang dengan tulus dan sabar memberikan doa dan dukungan moril dan materil kepada penulis selama ini, serta adik-adik tersayang Elvina Sari, Chici Tri Andani, dan Rizky yang telah banyak memberikan dukungan dan semangat dalam penyusunan skripsi ini.

7. Keluarga, sahabat dan pihak-pihak lainnya yang tidak dapat penulis sebutkan satu persatu yang telah memberikan bantuan dan dukungan selama penulisan skripsi ini.


(6)

Dan sekali lagi terima kasih yang sebesar-besarnya kepada semua pihak yang membantu penyelesaian skripsi ini.

Wassalam.

Medan, Februari 2015 Penulis,


(7)

IMPLEMENTASI ALGORITMA RABIN-KARP MENGGUNAKAN STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI

TINGKAT KEMIRIPAN FILE TEKS YANG BERBENTUK SKRIPSI

ABSTRAK

Di dunia pendidikan khususnya di kalangan universitas, rentan terjadi praktek plagiarisme. Misalnya dalam hal pembuatan Tugas Akhir, Skripsi. Untuk mendeteksi kemiripan antar Skripsi, banyak universitas masih melakukannya secara manual sehingga menghabiskan waktu yang lama dan tenaga yang ekstra. Seiring dengan perkembangan ilmu pengetahuan dan teknologi, algoritma untuk mencari tingkat kesamaan dokumen telah dikembangkan oleh para ahli. Stemming adalah salah satu cara untuk meningkatkan performa information retrieval. Data yang digunakan pada penelitian ini adalah skripsi mahasiswa S1 Ilmu komputer Universitas Sumatera Utara. Penulis menggunakan algoritma stemming Nazief dan Adriani dalam mencari kata dasar/root word untuk setiap kata dalam skripsi yang diuji. Setelah didapat kata dasar dari setiap kata, kemudian dari kata dasar tersebut dibentuk gram, dan dicari nilai hashnya menggunakan algoritma Rabin-Karp. Setelah didapat nilai hash, maka nilai hash skripsi yang diuji dibandingkan dengan nilai hash skripsi yang sudah tersimpan di database sistem menggunakan rumus Dice Coefficient Similarity. Hasil perbandingan antar skripsi dalam bentuk persen, disimpan ke database sistem dan ditampilkan di sistem secara berurut dari yang paling besar total persentase kemiripannya sampai yang paling kecil.

Kata kunci: plagiarisme, stemming, information retrieval, Rabin-Karp, Dice Coefficient Similarity.


(8)

IMPLEMENTATION OF RABIN-KARP ALGORITHM USING STEMMING NAZIEF AND ADRIANI TO DETECT SIMILARITY

OF TEXT FILE IN FORM OF THESIS

ABSTRACT

In the world of education especially among the University, susceptible to the practice of plagiarism. For example, in terms of making a Final Project, Thesis. To detect the similarity between Thesis, many universities are still doing it manually so spend a long time and extra energy. Along with the development of science and technology, algorithm to find the degree of similarity of documents have been developed by experts. Stemming is one way to improve the performance of information retrieval. The Data used in this study is thesis of the students in Bachelor Computer Science in University of North Sumatera. The author uses stemming Nazief and Adriani algorithm in finding the basic word/root word for each word in the thesis are tested. After derived the root word of every word, then from the root word is formed to gram, and calculated it’s hash value uses Rabin-Karp algorithm. After getted the hash value, so the hash value of thesis tested to be compared with the hash value of thesis are saved in the database system uses the formula of Dice Coefficient Similarity. The result of the comparison between the thesis in the form of percent, are saved to database system and published in system sequencely from the biggest of total percentage of it’s similarity to the smallest.

Keyword: plagiarism, stemming, information retrieval, Rabin-Karp, Dice Coefficient Similarity.


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xii

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 LandasanTeori 6

2.1 Text Mining 6

2.1.1 Ruang Lingkup Text Mining 7

2.2 Ekstraksi Dokumen 9

2.2.1 Stemming dengan Algoritma Nazief dan Adriani 10

2.3 Rabin-Karp 13

2.3.1 Hashing 15

2.3.2 K-grams 16

2.3.3 Konsep Algoritma Rabin-Karp 16

2.4 Dice Coefficient Similarity 17

Bab 3 Analisis dan Perancangan Sistem 18

3.1 Analisis Sistem 18

3.1.1 Analisis Masalah 18

3.1.1.1 Cause-and-Effect Analisis 18

3.1.2 Analisis Persyaratan 20

3.1.2.1 Analisis Fungsional Sistem 20

3.1.2.2 Analisis Non Fungsional Sistem 21

3.1.3 Pemodelan Sistem Dengan Use Case 21

3.1.3.1 Diagram Use Case 22

3.1.3.2 Use Case Membandingkan Skripsi 22 3.1.3.3 Activity Diagram Membandingkan Skripsi 24 3.1.3.4 Use Case Algoritma Stemming Nazief dan Adriani 25


(10)

3.1.3.5 Acitvity Diagram Algoritma Stemming Nazief 26 dan Adriani

3.1.3.6 Use Case Algoritma Rabin-Karp 27

3.1.3.7 Activity Diagram Algoritma Rabin-Karp 28

3.1.3.8 Use Case Dice Coefficient Similarity 29

3.1.3.9 Activity Diagram Dice Coefficient Similarity 31

3.1.3.10 Use Case Melihat Skripsi 32

3.1.3.11 Activity Diagram Melihat Skripsi 32

3.1.4 Analisis Proses Sistem 33

3.1.5 Flow Chart 34 3.1.5.1 Flow Chart Algoritma Rabin-Karp 34

3.1.5.2 Flow Chart Algoritma Stemming Nazief dan Adriani 35

3.2 Perhitungan Kemiripan 37

3.3 Perancangan Antar Muka 37

3.3.1 Perancangan Antar Muka Form Home 37

3.3.2 Perancangan Antar Muka Form Masukkan Skripsi 38 3.3.3 Perancangan Antar Muka Form kemiripan 40 3.3.4 Perancangan Antar Muka Form Skripsi 41 Bab 4 Implementasi dan Pengujian Sistem 42 4.1 Implementasi Sistem 42 4.1.1 Spesifikasi Perangkat Keras Yang Digunakan 42 4.1.2 Spesifikasi Perangkat Lunak Yang Digunakan 43 4.1.3 Implementasi Antarmuka Sistem 43 4.1.3.1 Tampilan Antarmuka Form Home 43 4.1.3.2 Tampilan Antarmuka Form Masukkan Skripsi 44 4.1.3.3 Tampilan Antarmuka Form Kemiripan 46 4.1.3.4 Tampilan Antarmuka Form Skripsi 48 4.2 Pengujian 50 4.2.1 Tujuan Pengujian 50

4.2.2 Data Pengujian 50 4.2.3 Skenario Pengujian 51 4.2.4 Output Hasil Pengujian 51 4.2.4.1 Perhitungan Manual 51 4.2.4.2 Perhitungan Dalam Sistem 58 Bab 5 Kesimpulan dan Saran 62 5.1 Kesimpulan 62 5.2 Saran 62

Daftar Pustaka 64 Curriculum Vitae 65

Lampiran

Tabel ASCII A-1 Listing program B-1


(11)

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

2.1 Daftar Prefiks Yang Meluluh 12

2.2 Daftar Kemungkinan Perubahan Prefiks 12

2.3 Daftar Kombinasi Prefiks dan Sufiks Yang Tidak Diperbolehkan

13

3.1 Cause-And-Effect Analysis 19

3.2 3.3

3.4 3.5 3.6

Dokumentasi Naratif Use Case Membandingkan Skripsi Dokumentasi Naratif Use Case Algoritma Stemming Nazief dan Adriani

Dokumentasi Naratif Use Case Algoritma Rabin-Karp

Dokumentasi Naratif Use Case Dice Coefficient Similarity

Dokumentasi Naratif Use Case Melihat Skripsi

23 25

28 29 32


(12)

DAFTAR GAMBAR

Nomor Gambar

Nama Gambar Halaman

2.1 2.2 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13

Tahap Preprocessing

Format Kata Berimbuhan Dalam Bahasa Indonesia Diagram Ishikawa Untuk Analisis Permasalahan Sistem

Use Case Diagram

ActivityDiagram Membandingkan Skripsi

Activity Diagram Algoritma Stemming Nazief dan Adriani

Activity Diagram Algoritma Rabin-Karp Activity Diagram Dice Coefficient Similairty

ActivityDiagram Melihat Skripsi

Sequence Diagram Sistem

Flow Chart Algoritma Rabin-Karp

Flow Chart Algoritma Stemming Nazief dan Adriani Tampilan Form Home

Tampilan Form Masukkan Skripsi Tampilan Form Kemiripan

Tampilan Form Skripsi

Tampilan Antarmuka Form Home

Tampilan Antarmuka Form Masukkan Skripsi

Tampilan Form Masukkan Skripsi setelah Nim dan Judul dari Skripsi yang akan dibandingkan dimasukkan

Tampilan Antarmuka Form Kemiripan

Tampilan Form Kemiripan file skripsi yang terakhir di bandingkan

Tampilan Antarmuka Form Skripsi

Tampilan Antarmuka Form Skripsi yang terakhir diinput Tampilan Form Skripsi setelah diklik Judul dari skripsi Proses Sistem Step 1 Dokumen 1

Proses Sistem Step 2, Step 3 dan step 4 Proses Sistem Step 4, Step 5 dan Step 6 Proses Sistem Dokumen 2

Persentase Kemiripan Dokumen 1 dan Dokumen 2

9 11 20 22 25 27 29 31 33 34 35 36 38 39 40 41 44 44 45 47 48 49 49 50 58 59 59 60 61


(13)

DAFTAR LAMPIRAN

Nomor Lampiran

Nama Lampiran Halaman

A B

Tabel ASCII Listing Program

A-1 B-1


(14)

IMPLEMENTASI ALGORITMA RABIN-KARP MENGGUNAKAN STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI

TINGKAT KEMIRIPAN FILE TEKS YANG BERBENTUK SKRIPSI

ABSTRAK

Di dunia pendidikan khususnya di kalangan universitas, rentan terjadi praktek plagiarisme. Misalnya dalam hal pembuatan Tugas Akhir, Skripsi. Untuk mendeteksi kemiripan antar Skripsi, banyak universitas masih melakukannya secara manual sehingga menghabiskan waktu yang lama dan tenaga yang ekstra. Seiring dengan perkembangan ilmu pengetahuan dan teknologi, algoritma untuk mencari tingkat kesamaan dokumen telah dikembangkan oleh para ahli. Stemming adalah salah satu cara untuk meningkatkan performa information retrieval. Data yang digunakan pada penelitian ini adalah skripsi mahasiswa S1 Ilmu komputer Universitas Sumatera Utara. Penulis menggunakan algoritma stemming Nazief dan Adriani dalam mencari kata dasar/root word untuk setiap kata dalam skripsi yang diuji. Setelah didapat kata dasar dari setiap kata, kemudian dari kata dasar tersebut dibentuk gram, dan dicari nilai hashnya menggunakan algoritma Rabin-Karp. Setelah didapat nilai hash, maka nilai hash skripsi yang diuji dibandingkan dengan nilai hash skripsi yang sudah tersimpan di database sistem menggunakan rumus Dice Coefficient Similarity. Hasil perbandingan antar skripsi dalam bentuk persen, disimpan ke database sistem dan ditampilkan di sistem secara berurut dari yang paling besar total persentase kemiripannya sampai yang paling kecil.

Kata kunci: plagiarisme, stemming, information retrieval, Rabin-Karp, Dice Coefficient Similarity.


(15)

IMPLEMENTATION OF RABIN-KARP ALGORITHM USING STEMMING NAZIEF AND ADRIANI TO DETECT SIMILARITY

OF TEXT FILE IN FORM OF THESIS

ABSTRACT

In the world of education especially among the University, susceptible to the practice of plagiarism. For example, in terms of making a Final Project, Thesis. To detect the similarity between Thesis, many universities are still doing it manually so spend a long time and extra energy. Along with the development of science and technology, algorithm to find the degree of similarity of documents have been developed by experts. Stemming is one way to improve the performance of information retrieval. The Data used in this study is thesis of the students in Bachelor Computer Science in University of North Sumatera. The author uses stemming Nazief and Adriani algorithm in finding the basic word/root word for each word in the thesis are tested. After derived the root word of every word, then from the root word is formed to gram, and calculated it’s hash value uses Rabin-Karp algorithm. After getted the hash value, so the hash value of thesis tested to be compared with the hash value of thesis are saved in the database system uses the formula of Dice Coefficient Similarity. The result of the comparison between the thesis in the form of percent, are saved to database system and published in system sequencely from the biggest of total percentage of it’s similarity to the smallest.

Keyword: plagiarism, stemming, information retrieval, Rabin-Karp, Dice Coefficient Similarity.


(16)

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Plagiarisme atau sering disebut plagiat adalah penjiplakan atau pengambilan karangan, pendapat, dan sebagainya dari orang lain dan menjadikannya seolah-olah karangan dan pendapat sendiri (Alsasian, 2006). Plagiat dapat dianggap sebagai tindak pidana karena dianggap mencuri hak cipta orang lain dan melanggar undang-undang tentang hak cipta. Praktek plagiat juga dapat menimbulkan konflik antar sesama apabila terdapat lebih dari satu orang mengakui satu karya. Untuk itu, perlu adanya Sistem untuk mendeteksi plagiarisme (Eko, 2011).

Di dunia pendidikan, khususnya Universitas, rentan terjadi praktek plagiarisme. Misalnya dalam hal pembuatan Tugas Akhir, sering terjadi kemiripan antar Tugas Akhir. Untuk mendeteksi kemiripan tersebut, banyak Universitas yang masih melakukannya secara manual sehingga menghabiskan waktu yang lama juga tenaga yang ekstra (Hari, 2003). Seiring dengan perkembangan zaman, kemajuan ilmu dan teknologi, khususnya di bidang ilmu komputer, algoritma untuk mendeteksi kemiripan dokumen ditemukan dan berhasil dikembangkan oleh para ahli (Salmuasih & Sunyoto, 2013). Hal ini membuat penulis tertarik mengembangkan sistem komputer untuk mendeteksi plagiarisme.

Dalam proses mendeteksi plagiarisme menggunakan sistem komputer,

stemming adalah salah satu cara yang digunakan untuk meningkatkan performa

information retrieval dengan cara mentransformasi kata-kata dalam sebuah dokumen teks ke bentuk kata dasarnya yang biasa disebut dengan root word (Ledy, 2009). Untuk proses stemming, penulis mengambil algoritma Nazief dan Adriani (Ledy, 2009). Setelah di-stem maka dilakukan perhitungan persentasi kemiripan antar root


(17)

2

words (Salmuasih & Sunyoto, 2013). Selanjutnya untuk menghitung persentasi kemiripan tersebut terdapat beberapa algoritma misalnya Algoritma Winnowing, Algoritma Smith Waterman, Algoitma Boyer-Moore dan Algoritma Rabin-Karp

(Salmuasih & Sunyoto, 2013). Penulis mengambil Algoritma Rabin-Karp untuk proses perhitungannya.

Berdasarkan latar belakang yang telah diuraikan diatas, maka penulis mencoba melakukan penelitian dengan judul “Implementasi Algoritma Rabin-Karp menggunakan Stemming Nazief dan Adriani Untuk Mendeteksi Tingkat Kemiripan File Teks Yang Berbentuk Skripsi.

1.2Rumusan Masalah

Rumusan masalah dalam penelitian ini adalah : bagaimana membuat sistem yang mampu mendeteksi tingkat kemiripan file teks yang berbentuk skripsi menggunakan algoritma Rabin-Karp beserta stemming Nazief dan Adriani.

1.3 Batasan Masalah

Agar pembahasan dalam penelitian ini terarah, diperlukan batasan-batasan berikut: 1. Aplikasi ini hanya mendeteksi kemiripan file teks yang berbentuk skripsi.

2. Aplikasi ini hanya bisa memproses file berekstensi pdf (.pdf) yang diambil dari repository USU.

3. Data yang digunakan adalah skripsi mahasiswa S1 ilmu komputer USU stambuk 2006,2007,2008 masing-masing 10 skripsi.

4. Aplikasi hanya dapat membaca teks, gambar dan rumus pada file skripsi yang akan dibandingkan tidak diperhitungkan.

5. Tools yang digunakan adalah PHP & MySQL.

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah sebagai berikut:

1. Untuk mendeteksi kemiripan file teks yang berbentuk skripsi.

2. Untuk mengimplementasikan algoritma Stemming Nazief dan Adriani dalam pendeteksian kemiripan file teks.


(18)

3

3. Untuk mengimplementasikan keefisienan algoritma Rabin-Karp dalam menghitung persentasi kemiripan file teks.

1.5 Manfaat Penelitian

Penelitian ini diharapkan dapat mendeteksi kemiripan file teks yang berbentuk skripsi mahasiswa untuk mengantisipasi plagiarisme.

1.6 Metodologi Penelitian

Tahapan yang dilakukan dalam penelitian ini adalah:

• Studi Literatur dan Pengumpulan Data

Pada penelitian ini penulis melakukan studi literatur dan mengumpulkan data dari buku-buku, artikel-artikel, jurnal-jurnal, web site-web site yang berhubungan dengan penelitian penulis, natural language processing.

• Analisis dan Perancangan Sistem

Melakukan analisis algoritma Stemming Nazief dan Adriani serta algoritma Rabin-Karp. Pada tahap ini juga akan di susun perancangan sistem dengan menerapkan algoritma Stemming Nazief dan Adriani sebagai algoritma stemmer untuk pendeteksian kemiripan dokumen, serta algoritma Rabin-Karp sebagai algoritma penghitung persentase kemiripan.

• Implementasi

Tahap ini dilakukan dengan mengimplementasikan perancangan sistem dan

flowchart yang ditetapkan kedalam bahasa pemrograman PHP.

• Pengujian

Pengujian aplikasi yang telah selesai dibuat.

• Dokumentasi

Dokumentasi dihasilkan dengan membuat skripsi sebagai laporan dari hasil penelitian.


(19)

4

1.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:

BAB 1: PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi “Implementasi Algoritma Rabin-Karp Menggunakan Stemming Nazief dan Adriani Untuk Mendeteksi Tingkat Kemiripan File Teks Yang Berbentuk Skripsi, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.

BAB 2: LANDASAN TEORI

Bab ini akan membahas teori-teori yang berkaitan dengan Data Mining, Teks Mining, ekstraksi dokumen, algoritma Rabin-Karp, stemming Nazief dan Adriani.

BAB 3: ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan menjabarkan tentang tujuan dari perancangan sistem, ukuran-ukuran setiap perspektif, penentuan target yang menjadi tolak ukur keberhasilan peningkatan kinerja, dan juga tahapan dalam mengimplementasikan metode.

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Bab ini akan membahas bentuk perangkat lunak yang dibuat yaitu perancangan antar muka, algoritma-algoritma dan bentuk sistem yang digunakan dalam penyusunan fungsi dan prosedur yang membangun program serta tampilan program implementasi algoritma Rabin-Karp menggunakan stemming Nazief dan Adriani untuk mendeteksi tingkat kemiripan file teks yang berbentuk skripsi.


(20)

5

BAB 5: KESIMPULAN DAN SARAN

Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh dan diharapkan dapat bermanfaat dalam pengembangan selanjutnya.


(21)

BAB 2

LANDASAN TEORI

2.1 Text Mining

Text mining, yang juga disebut sebagai Teks Data Mining (TDM) atau Knowledge Discovery in Text (KDT), secara umum mengacu pada proses ekstraksi informasi dari dokumen-dokumen teks tak terstruktur (unstructured). Text mining dapat didefinisikan sebagai penemuan informasi baru dan tidak diketahui sebelumnya oleh komputer, yang secara otomatis mengekstrak informasi dari sumber-sumber teks tak terstruktur yang berbeda. Kunci dari proses ini adalah menggabungkan informasi yang berhasil diekstraksi dari berbagai sumber (Eko, 2011).

Tujuan utama text mining adalah mendukung proses knowledge discovery pada koleksi dokumen yang besar. Pada prinsipnya, text mining adalah bidang ilmu multidisipliner, melibatkan information retrieval (IR), text analysis, information extraction (IE), clustering, categorization, visualization, database technology, natural language processing (NLP), machinelearning, dan data mining. Dapat pula dikatakan bahwa text mining merupakan salah satu bentuk aplikasi kecerdasan buatan (artificial intelligence / AI) (Eko, 2011).

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 tak terstruktur


(22)

dan mengujinya dalam upaya mengungkap struktur dan arti yang tersembunyi di dalam teks (Eko, 2011).

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 (Eko, 2011).

2.1.1 Ruang Lingkup Text mining

Text mining merupakan suatu proses yang melibatkan beberapa area teknologi.

Namun secara umum proses-proses pada text mining mengadopsi proses data mining. Bahkan beberapa teknik dalam proses text mining juga menggunakan teknik-teknik

data mining (Eko, 2011).

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) (Eko, 2011).

a. Text Preprocessing

Tahap ini melakukan analisis semantik (kebenaran arti) dan sintaktik (kebenaran susunan) terhadap teks. Tujuan dari pemrosesan awal adalah untuk 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.

b. Text Transformation

Transformasi teks atau pembentukan atribut mengacu pada proses untuk mendapatkan representasi dokumen yang diharapkan. Pendekatan representasi dokumen yang lazim digunakan oleh 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 stop words.


(23)

c. 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 kata-kata di dalam dokumen memiliki arti penting. Oleh karena itu, untuk mengurangi dimensi, pemilihan hanya dilakukan terhadap kata-kata yang relevan yang benar-benar 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 text mining, biasanya tidak hanya melakukan perhitungan pada dokumen saja, tetapi juga pada feature . Empat macam

feature yang sering digunakan:

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.

Words.

Terms merupakan single word dan multiword phrase yang terpilih secara

langsung dari corpus. Representasi term-based dari dokumen tersusun dari

subset term dalam dokumen.

Concept, merupakan feature yang di-generate dari sebuah dokumen secara

manual, rule-based, atau metodologi lain.

d. 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 text mining, dan biasanya menggunakan teknik-teknik data mining. Dalam penemuan pola ini, proses text mining dikombinasikan dengan proses-proses

data mining. Masukan awal dari proses text 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


(24)

interpretasi merupakan tahap akhir dari proses text mining dan akan disajikan ke pengguna dalam bentuk visual (Eko, 2011).

2.2 Ekstraksi Dokumen

Teks yang akan dilakukan proses text 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, tagging dan analyzing.

Gambar 2.1 Tahap Preprocessing

a. 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 dihilangkan dan dianggap delimiter. Tahap tokenizing / parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya.

b.Filtering

Filtering adalah tahap mengambil kata-kata penting dari hasil token. Bisa

menggunakan algoritma stoplist (membuang kata yang kurang penting) atau wordlist CASE FOLDING

TOKENIZING

FILTERING


(25)

(menyimpan kata penting). Stoplist/stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words. Contoh stopwords adalah “yang”, “dan”, “di”, “dari”, dan seterusnya.

c. Stemming

Tahap stemming adalah tahap mencari root kata dari tiap kata hasil filtering. Pada tahap ini dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu representasi yang sama. Tahap ini kebanyakan dipakai untuk teks berbahasa nggris dan lebih sulit diterapkan pada teks berbahasa Indonesia. Hal ini dikarenakan bahasa Indonesia tidak memiliki rumus bentuk baku yang permanen (Eko, 2011). Stemming

merupakan suatu proses yang terdapat dalam sistem IR yang mentransformasi kata-kata yang terdapat dalam suatu dokumen ke kata-kata-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 berbahasa Indonesia berbeda dengan stemming pada teks berbahasa Inggris. Pada teks berbahasa Inggris, proses yang diperlukan hanya proses menghilangkan sufiks. Sedangkan pada teks berbahasa Indonesia, selain sufiks, prefiks, dan konfiks juga dihilangkan (Ledy, 2009).

2.2.1 Stemming dengan Algoritma Nazief dan Adriani

Stemming adalah proses pemetaan variansi morfologikal kata dalam kata dasar atau kata umumnya (stem) (Adhitia, 2009). Misalnya kata "perancangan" dan "merancang" akan diubah menjadi sebuah kata yang sama, yaitu "rancang". Proses stemming sangat tergantung kepada bahasa dari kata yang akan di-stem. Hal ini dikarenakan, dalam melakukan proses stemming harus mengaplikasikan aturan morfologikal dari suatu bahasa.

Kebanyakan bahasa memiliki kata fungsi dan kata sambung seperti artikel dan preposisi yang hampir selalu muncul pada dokumen teks. Biasanya kata-kata ini tidak memiliki arti yang lebih di dalam memenuhi kebutuhan seorang pencari di dalam mencari informasi. Kata-kata tersebut (misalnya a, an, the, on pada bahasa Inggris) disebut sebagai Stopwords (Chakrabarti, 2003). Pembuangan Stopwords dapat mengurangi besar dari index space dan meningkatkan performa dalam pemrosesan lebih lanjut.


(26)

Aturan imbuhan yang digunakan pada Bahasa Indonesia lebih kompleks, tidak seperti aturan imbuhan Bahasa Inggris. Pada Bahasa Indonesia terdapat aturan imbuhan yang lebih kompleks yang meliputi awalan, akhiran, sisipan, dan konfiks (kombinasi dari awalan dan akhiran).

Banyak penelitian yang dilakukan untuk menemukan algoritma stemming yang tepat dan bagus dalam Bahasa Indonesia, antara lain algoritma Nazief & Adriani, algoritma Arifin & Setiono, dan algoritma Vega (Asian et al, 2005). Menurut penelitian Jelita Asian sebagaimana disebutkan dalam (Novanta, 2009) menyatakan berdasarkan aturan morfologi Bahasa Indonesia dapat dinyatakan bahwa algoritma Nazief & Adriani adalah algoritma yang memiliki hasil terbaik. Nazief & Adriani menyimpulkan sebuah kata dasar dapat ditambahkan imbuhan berupa derivation prefix (DP) di awal dan/atau diakhiri secara berurutan oleh derivation suffix (DS),

possesive pronoun (PP), dan particle (P) yang masing-masing bersifat optional. Keterangan diatas dirumuskan pada Gambar 2.2.

Gambar 2.2 Format Kata Berimbuhan dalam Bahasa Indonesia

Adapun langkah-langkah yang digunakan oleh algoritma Nazief dan Adriani yaitu sebagai berikut:

1. Kata dicari di dalam daftar kamus. Bila kata tersebut ditemukan di dalam kamus, maka dapat diasumsikan kata tersebut adalah kata dasar sehingga algoritma dihentikan.

2. Bila kata di dalam langkah pertama tidak ditemukan di dalam kamus, maka diperiksa apakah sufiks tersebut yaitu sebuah partikel (“-lah” atau “-kah”). Bila ditemukan, maka partikel tersebut dihilangkan.

3. Pemeriksaan dilanjutkan pada kata ganti milik (“-ku”, “-mu”, “-nya”). Bila ditemukan, maka kata ganti tersebut dihilangkan.

4. Memeriksa akhiran (“-i”, “-an”). Bila ditemukan, maka akhiran tersebut dihilangkan.


(27)

Hingga langkah ke-4 dibutuhkan ketelitian untuk memeriksa apakah akhiran “-an” merupakan hanya bagian dari akhiran “-kan”, dan memeriksa lagi apakah partikel (“-lah”, “-kah”) dan kata ganti milik (“-ku”, “-mu”, “-nya”) yang telah dihilangkan pada langkah 2 dan 3 bukan merupakan bagian dari kata dasar.

5. Memeriksa awalan (“se-“, ”ke-“, “di-“, “te-“, “be-“, “pe-“, “me-“). Bila ditemukan, maka awalan tersebut dihilangkan. Pemeriksaan dilakukan dengan berulang mengingat adanya kemungkinan multi-prefix.

Langkah ke-5 ini juga membutuhkan ketelitian untuk memeriksa kemungkinan peluluhan awalan (Tabel 2.1), perubahan prefix yang disesuaikan dengan huruf-awal kata (Tabel 2.2) dan aturan kombinasi prefix-suffix yang diperbolehkan (Tabel 2.3). 6. Setelah menyelesaikan semua langkah dengan sukses, maka algoritma akan mengembalikan kata dasar yang ditemukan.

Tabel 2.1 Daftar Prefiks yang Meluluh

Jenis Prefiks Huruf Hasil Peluluhan

pe-/me- K -ng-

pe-/me- P -m-

pe-/me- S -ny-

pe-/me- T -n-

Tabel 2.2 Daftar Kemungkinan Perubahan Prefiks

Prefiks Perubahan

se- tidak berubah

ke- tidak berubah

di- tidak berubah

be- ber-

te- ter-

pe- per-, pen-, pem-, peng-


(28)

Tabel 2.3 Daftar Kombinasi Prefiks dan Sufiks yang Tidak Diperbolehkan Prefiks Sufiks yang tidak diperbolehkan

be- -i

di- -an

ke- -i, -kan

me- -an

se- -i, -kan

te- -an

pe- -kan

2.3 Rabin-Karp

Algoritma Rabin-Karp diciptakan oleh Michael O. Rabin dan Richard M. Karp pada tahun 1987 yang menggunakan fungsi hashing untuk menemukan pattern di dalam

string teks. Karakteristik Algoritma Rabin-Karp : 1. Menggunakan sebuah fungsi hashing

2. Fase preprocessing menggunakan kompleksitas waktu O(m) 3. Untuk fase pencarian kompleksitasnya : O(mn )

4. Waktu yang diperlukan O(n+m) (Hary, 2009)

Fungsi hashing menyediakan metode sederhana untuk menghindari perbandingan jumlah karakter yang quadratik di dalam banyak kasus atau situasi. Daripada melakukan pemeriksaan terhadap setiap posisi dari teks ketika terjadi pencocokan pola, akan lebih baik efisien untuk melakukan pemeriksaan hanya jika teks yang sedang diproses memiliki kemiripan seperti pada pattern. Untuk melakukan pengecekan kemiripan antara dua kata ini digunakan fungsi hash (Hary, 2009).

Untuk membantu algoritma ini, maka fungsi hash harus memenuhi hal-hal berikut ini :

• dapat dihitung dengan efisien

• memiliki perbedaan yang tinggi untuk berbagai jenis string

hash (y[j+1 .. j+m] ) dapat dihitung dari hash (y[j.. j+m – 1])dan y[j+m]; yaitu : hash (y[j+1 .. j+m])= rehash (y[j],y[j+m], hash (y[j .. j+m – 1]) (Hary, 2009).


(29)

Untuk setiap word (8 bit) w yang memiliki panjang m, misalkan hash (w) didefinisikan sebagai berikut : (Hary, 2009)

Hash (w[0 .. m – 1])=(w[0]*2m – 1+ w[1]*2m – 2+···+ w[m – 1]*20) mod q (1)

Dimana q merupakan bilangan prima yang cukup besar. Kemudian, lakukan

rehash dengan rumus: (Hary, 2009)

Rehash (a,b,h)= ((h – a*2m – 1)*2+b) mod q (2)

Fase preprocessing dari algoritma Rabin-Karp mengandung perhitungan terhadap hash (x). Hal ini dapat dilakukan dalam waktu yang memilki kompleksitas O(m). Selama fase pencarian, hal yang perlu dilakukan cukup membandingkan hash

(x) dengan hash (y[j .. j+m-1]) untuk 0 < = j <n-m (Hary, 2009). Jika kesamaannya ditemukan, masih perlu melakukan pemeriksaan kesamaan

x=y [j..j+m – 1] untuk karakter-karakter selanjutnya. Kompleksitas waktu untuk fase pencarian dari algoritma Rabin-Karp ini adalah O(mn). Diharapkan jumlah karakter teks yang dibandingkan adalah O(m+n) (Hary, 2009).

Algoritma Rabin-Karp ini banyak digunakan dalam pendeteksian pencontekan atau kecurangan. Contohnya pada makalah atau pada paper. Fungsi hash yang digunakan biasanya modulo berbasis bilangan prima besar. Alasan dipilih bilangan prima yang cukup besar adalah untuk mengurangi kemungkinan dua buah

correspending number value yang sama. Sedangkan basis dipilih 10 karena

banyaknya jenis karakter yang mungkin muncul adalah 0 sampai 9 berjumlah 10 jenis (Hary, 2009).

Bila diberikan source matrial atau dokumennya, algoritma ini dapat dengan cepat mencari seluruh paper dari setiap kalimat, mengabaikan lowercase dan

uppercase, tanda titik, tanda seru, tanda tanya serta tanda baca laainnya (Hary, 2009). Contoh: Jika substringnya “hi” dan basisnya 101, maka nilai hashnya dapat dihitung : 104 x 1011 +105 x 1010 = 10609 (ASCI untuk ‘h’ adalah 104 dan untuk ‘ I ’ adalah 105 (Hary, 2009).


(30)

2.3.1 Hashing

Hashing adalah suatu cara untuk mentransformasi sebuah string menjadi suatu nilai yang unik dengan panjang tertentu (fixed-length) yang berfungsi sebagai penanda string tersebut. Fungsi untuk menghasilkan nilai ini disebut fungsi hash, sedangkan nilai yang dihasilkan disebut nilai hash. Contoh sederhana hashing adalah:

Firdaus, Hari Munir, Rinaldi Rabin, Michael Karp, Richard

menjadi :

7864 = Firdaus, Hari 9802 = Munir, Rinaldi 1990 = Rabin, Michael 8822 = Karp, Richard

Contoh di atas adalah pengunaan hashing dalam pencarian pada database . Apabila tidak di-hash, pencarian akan dilakukan karakter per karakter pada nama- nama yang panjangnya bervariasi dan ada 26 kemungkinan pada setiap karakter. Namun pencarian akan menjadi lebih efisien setelah di-hash karena hanya akan membandingkan empat digit angka dengan cuma 10 kemungkinan setiap angka. Nilai hash pada umumnya digambarkan sebagai fingerprint yaitu suatu string pendek yang terdiri atas huruf dan angka yang terlihat acak (data biner yang ditulis dalam heksadesimal) (Eko, 2011).

Algoritma Rabin-Karp didasarkan pada fakta jika dua buah string sama maka harga hash value -nya pasti sama. Akan tetapi ada dua masalah yang timbul dari hal ini, masalah pertama yaitu ada begitu banyak string yang berbeda, permasalahan ini dapat dipecahkan dengan meng-assign beberapa string dengan hash value yang sama. Masalah yang kedua belum tentu string yang mempunyai hash value yang sama cocok untuk mengatasinya maka untuk setiap string yang di-assign dilakukan pencocokan


(31)

string secara Brute-Force. Kunci agar algoritma Rabin-Karp efisien, terdapat pada pemilihan hash value -nya. Salah satu cara yang terkenal dan efektif adalah memperlakukan setiap substring sebagai suatu bilangan dengan basis tertentu (Eko, 2011).

2.3.2 K-grams

K-grams adalah rangkaian terms dengan panjang K. Kebanyakan yang digunakan

sebagai terms adalah kata. K-gram merupakan sebuah metode yang 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.

Contoh k-grams dengan k=5 : Text: A do run run run, a do run run

Kemudian dilakukan penghilangan spasi : Adorunrunrunadorunrun

Sehingga dihasilkan rangkaian 5-grams yang diturunkan dari text : adoru dorun orunr runru unrun nrunr runru unrun nruna runad unado nador adoru dorun orunr runru unrun (Eko, 2011)

2.3.3 Konsep Algoritma Rabin-Karp

Algoritma Rabin-Karp adalah algoritma pencocokan string yang menggunakan fungsi hash sebgai pembanding antara string yang dicari (m) dengan substring pada teks (n). Apabila hash value keduanya sama maka akan dilakukan perbandingan sekali lagi terhadap karakter-karakternya. Apabila hasil keduanya tidak sama, maka substring akan bergeser ke kanan. Pergeseran dilakukan sebanyak (n-m) kali. Perhitungan nilai hash yang efisien pada saat pergeseran akan mempengaruhi performa dari algoritma ini.


(32)

Algoritma Rabin-Karp sebagai berikut : 1 function RabinKarp

(string s[1..n], string sub[1..m]) 2 hsub :-hash(sub[1..m])

3 hs :- hash(s[1..m]) 4 for i from 1 to n 5 if hs – hsub

6 if s[ i..i+m-1] – sub 7 return i

8 hs :- hash (s[i+1..i+m] )

9 return not found (Alsasian, 2006)

2.4Dice Coefficient Similarity

Dice Coefficient Similarity digunakan untuk menghitung kesamaan dari dokumen. Rumus dari Dice Coefficient Similarity adalah :

2 | X ∩ Y |

D ( X , Y ) = ————— (3)

| X | + | Y | Dimana:

X : Nilai Dokumen 1 Y : Nilai Dokumen 2

Dice Coefficient adalah rumus umum untuk menghitung kemiripan dokumen dengan

mengalikan 2 jumlah nilai hash yang sama antara dokumen pertama dengan nilai hash dokumen kedua kemudian membaginya dengan jumlah nilai hash dokumen pertama dengan nilai hash dokumen kedua.


(33)

BAB 3

ANALISIS DAN PERANCANGAN

3.1Analisis Sistem

Analisis sistem merupakan tahap awal dalam melakukan penelitian. Tujuan dari analisis sistem adalah untuk mengetahui masalah-masalah yang ada dalam pembuatan sistem. Analisis sistem merupakan teknik pemecahan masalah dengan menggambarkan proses-proses yang ada dalam sistem untuk mendapatkan keluaran yang sesuai dengan kebutuhan user.

3.1.1 Analisis Masalah

Analisis masalah sistem dirancang menggunakan cause-and-effect analisis.

3.1.1.1 Cause-and-Effect analisis

Cause-and-Effect analisis adalah teknik menentukan sebab dan efek dari masalah yang dipelajari. Efek dapat menjadi gejala dari masalah yang lebih berakar yang pada akhirnya harus dianalisis sebab dan akibat sehingga tidak menghasilkan gejala masalah lain. Seperti terlihat pada tabel 3.1.


(34)

Tabel 3.1 Cause-and-Effect Analysis

Cause-and-Effect Analysis System Improvement Objective Problem or

Opportunit

Cause and Effects System Objective System Constraint Pada umumnya deteksi kemiripan file misalnya skripsi masih dilakukan secara manual

1. Diperlukan sistem pendeteksi

kemiripan file. 2. Deteksi kemiripan

antar file secara manual

menghabiskan banyak waktu.

Diperlukan sistem yang dapat mendeteksi

kemiripan kata dalam file teks.

Tidak tersedianya sistem pendeteksi kemiripan file teks

dengan algoritma

Rabin-Karp

menggunakan

stemming Nazief dan Adriani

Diagram Ishikawa (fishbone diagram) sering disebut diagram sebab akibat. Diagram ini membantu mengidentifikasi, mengeksplorasi dan menggambarkan masalah dengan mengikutsertakan sebab dan akibat dari permasalahan dalam visual grafis. Dengan diagram ishikawa ini proses pencapaian sistem akan sangat terbantu.

Masalah utama dari sistem yang akan dirancang pada skripsi ini adalah bagaimana membuat sebuah sistem pendeteksi kemiripan file dengan algoritma Rabin Karp dan

stemming Nazief dan Adriani. Di bawah ini adalah diagram ishikawa untuk analisis


(35)

Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem

Pada diagram ishikawa gambar 3.1, masalah utama ditunjukkan pada segi empat yang berada paling kanan (bagian kepala) diagram ishikawa. Aspek ditunjukkan pada segiempat yang dihubungkan ke ke garis utama (garis horizontal menuju bagian kepala), sedangkan sebab – akibat ditunjukkan dalam bentuk tanda panah horizontal kecil pada masing – masing kategori masalah.

3.1.2 Analisis Persyaratan ( Requirement Analysis )

Analisis Persyaratan berguna untuk menentukan syarat-syarat yang diperlukan untuk membuat sebuah sistem. Analisis persyaratan sebuah sistem dapat dikelompokkan menjadi 2 bagian yaitu, analisis fungsional dan analisis non-fungsional.

3.1.2.1 Analisis Fungsional Sistem

Analisis fungsional sistem merupakan kegiatan pelayanan yang harus dimiliki oleh sistem. Dapat berupa input, output, proses atau data yang tersimpan. Pada fase ini dapat diketahui hal-hal apa saja yang dapat dilakukan oleh sistem, seperti:

Kata di-stem mengunakan

stemming Nazief dan Adriani

Kemudian dihitung nilai

hash menggunakan Algoritma Rabin-Karp

Algoritma stemming

Nazief dan Adriani

Algoritma Rabin-Karp

File berekstensi .pdf Membutuhkan sistem pendeteksi kemiripan file

Pengguna

Metode

Deteksi tingkat

kemiripan file

teks berbentuk

skripsi


(36)

1. Sistem hanya mampu mendeteksi file berekstensi pdf.

2. Sistem dapat membaca file skripsi berekstensi pdf yang akan dibandingkan yang diinput user dan kemudian disimpan ke database.

3. Sistem dapat melakukan proses preprocessing dengan stemming Nazief dan Adriani. 4. Sistem dapat melakukan proses perhitungan persentase kemiripan dengan algoritma

Rabin Karp.

5. Sistem dapat menampilkan hasil persentase perhitungan kemiripan.

3.1.2.2 Analisis Non Fungsional Sistem

Analisis non fungsional sistem adalah karakteristik yang menentukan kepuasan sebuah sistem seperti performa, kemudahan penggunaan, anggaran biaya, efisiensi dan dokumentasi yang mampu bekerja tanpa mengganggu fungsionalitas sistem lainnya.

Analisis non fungsional sistem dari sistem yang dibangun yaitu dari segi performa adalah sistem dapat mendeteksi file teks yang berbentuk skripsi dengan baik. Dari segi kemudahan penggunaan adalah sistem yang ditampilkan user friendly dan menarik sehingga user mudah menggunakan sistem dan tidak mendapatkan kesulitan dalam mempelajari sistem. Dari segi anggaran biaya adalah sistem memiliki kemampuan bekerja dengan baik tanpa harus mengeluarkan biaya tambahan untuk perangkat keras dan perangkat lunak. Dari segi efisiensi adalah sistem tidak memerlukan waktu yang cukup lama dalam pemrosesan. Dari segi dokumentasi adalah sistem dapat menyimpan file yang sudah diproses.

3.1.3 Pemodelan Sistem dengan Use Case

Pemodelan sistem dilakukan untuk memperoleh gambaran secara jelas mengenai objek-objek apa saja yang akan berinteraksi dengan sistem dan juga hal-hal apa saja yang harus dilakukan sistem agar berfungsi dengan baik menurut fungsionalitasnya. Pada penelitian ini dilakukan analisis dan perancangan sistem pendeteksi kemiripan file teks yang berbentuk skripsi dengan algoritma Rabin Karp dan stemming Nazief dan Adriani.


(37)

3.1.3.1 Diagram Use Case

Pada sistem ini, Use case diagram digunakan untuk pemodelan fungsional sistem. Diagram use case merupakan diagram yang mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem. Masing-masing diagram use case memiliki actor, use

case, sequence diagram dan hubungan antar mereka. Pada sistem ini actor sebagai

pengguna (user) dan yang dapat menginput file untuk dideteksi tingkat kemiripannya dengan file lain yang ada di database sistem seperti pada Gambar 3.2.

User

«extends»

System

Membandingkan Skripsi

Melihat Daftar Skripsi

Stemming Nazief dan Adriani

Algoritma Rabin-Karp

Dice Coefficient Similarity «extends»

«extends»

Gambar 3.2 Use Case Diagram

Pada diagram use case yang ditunjukkan pada Gambar 3.2 diatas user juga dapat berperan sebagai admin. User menginputkan file yang akan dibandingkan dengan file yang ada di database sistem, dimana hanya file yang berekstensi .pdf yang dapat diproses sistem. Kemudian sistem memproses file dengan algoritma yang dipakai.

3.1.3.2 Use Case Membandingkan Skripsi


(38)

Tabel 3.2 Dokumentasi Naratif Use Case Membandingkan skripsi

Nama Use Case Membandingkan skripsi

Aktor Admin/User

Deskripsi Use Case ini berfungsi untuk membandingkan skripsi menggunakan algoritma Rabin Karp dan stemming Nazief dan

Adriani

Pre Condition Skripsi yang akan dibandingkan sudah diinput, sistem telah dieksekusi

Normal Flow Kegiatan Aktor Respon Sistem

Langkah 1: User menginputkan nim dan judul skripsi yang akan dibandingkan

Langkah 3: User menekan tombol pilih skripsi Langkah 5: User memilih skripsi yang akan dibandingkan

Langkah 7: User menekan tombol bandingkan untuk

memulai proses

Langkah 2: Sistem menyimpan ke database dan menampilkan nim dan judul skripsi yang baru

diinput Langkah 4: Sistem menampilkan file dialog Langkah 6: Sistem menyimpan lokasi skripsi dan menginputnya

untuk dibandingkan Langkah 8: Sistem melakukan

proses perbandingan dengan algoritma Rabin Karp dan stemming Nazief dan Adriani

Langkah 9: Sistem menampilkan persentase kemiripan skripsi yang diinput

dengan skripsi yang sudah tersimpan di database sistem


(39)

3.1.3.3 Activity Diagram Membandingkan Skripsi

Activity Diagram untuk use case Membandingkan Skripsi dapat dilihat pada gambar 3.3:

USER SISTEM

Menekan tombol

“pilih skripsi” Isi skripsi ditampilkan

Memproses skripsi dengan

stemming Nazief dan Adriani

Membentuk Hash menggunakan algoritma

Rabin-Menginput nim dan judul skripsi yang akan dibandingkan

Menyimpan nim dan judul ke database

Menekan tombol “Masukkan”

Menampilkan nim dan judul yang baru diinput

Menekan tombol “proses”


(40)

Gambar 3.3 Activity Diagram Membandingkan Skripsi

3.1.3.4 Use Case Algoritma Stemming Nazief dan Adriani

Tabel dokumentasi naratif dari use case algoritma stemming Nazief dan Adriani dapat dilihat pada tabel 3.3.

Tabel 3.3 Dokumentasi Naratif Use Case Algoritma Stemming Nazief dan Adriani Nama Use Case Algoritma Stemming Nazief dan Adriani

Aktor Sistem

Deskripsi Use Case ini berfungsi untuk melakukan proses stemming kata Menampilkan hasil persentase

kemiripan antar file skripsi Menampilkan nilai Hash hasil

perhitungan Menekan tombol

“Masukkan ke database”

Memasukkan nilai hash yang didapat ke database

Menghitung nilai kemiripan antar skripsi dengan membandingkan nilai hash

skripsi yang baru diinput dengan skripsi yang sudah


(41)

menggunakan algoritma Nazief dan Adriani Pre Condition User sudah mengklik tombol proses pada sistem

Normal Flow Kegiatan Aktor Respon Sistem

Langkah 1: User menginput file

Langkah 2: Sistem mengambil kata

Langkah 3: Sistem menghapus partikel –lah, -kah, -pun. Langkah 4: Sistem menghapus kata ganti milik –ku, -mu, -nya. Langkah 5: Sistem menghapus

akhiran -i, -an.

Langkah 6: Sistem menghapus awalan se-, ke-, di-, ter-, ber-,

pe-, me-, per-.

Langkah 7: Sistem memeriksa apakah kata merupakan kata

dasar

Past Condition Sistem memperoleh kata dasar

3.1.3.5 Activity Diagram Algoritma Stemming Nazief dan Adriani

Acitvity Diagram dari use case algoritma Stemming Nazief dan Adriani dapat dilihat pada gambar 3.4.


(42)

USER SISTEM

Gambar 3.4 Activity Diagram Algoritma Stemming Nazief dan Adriani

3.1.3.6 Use Case Algoritma Rabin-Karp

Tabel dokumentasi naratif dari use case algoritma Rabin-Karp dapat dilihat pada tabel 3.4.

Input File

Menghapus partikel -lah, -kah, -pun

Menghapus kata ganti milik –ku, -mu, -nya

Menghapus akhiran –i, -an

Menghapus awalan se-, ke-, di-, ter-, ber-, pe-, per-, me-

Memeriksa apakah kata dasar Mengambil kata


(43)

Tabel 3.4 Dokumentasi Naratif Use Case Algoritma Rabin-Karp

Nama Use Case Algoritma Rabin-Karp

Aktor Sistem

Deskripsi Use Case ini berfungsi untuk mendapat nilai hash Pre Condition User sudah menekan tombol proses pada sistem

Normal Flow Kegiatan Aktor Respon Sistem

Langkah 1: User menginput file skripsi

Langkah 5: User dapat melihat nilai hash file skripsi yang

diinput

Langkah 2: Sistem membentuk gram

Langkah 3: Sistem membentuk hash

Langkah 4: Sistem menyimpan nilai hash ke database

Past Condition Sistem menampilkan nilai hash

3.1.3.7 Activity Diagram Algoritma Rabin-Karp


(44)

USER SISTEM

Gambar 3.5 Activity Diagram Algoritma Rabin-Karp

3.1.3.8 Use CaseDice Coefficient Similarity

Tabel dokumentasi naratif dari use case Dice Coefficient Similarity dapat dilihat pada tabel 3.5.

Tabel 3.5 Dokumentasi Naratif Use CaseDice Coefficient Similarity

Nama Use Case Dice Coefficient Similarity

Aktor Sistem

Deskripsi Use Case ini berfungsi untuk menghitung persentase kemiripan Input file skripsi

Menekan tombol proses Membentuk Gram

Membentuk hash

Menyimpan nilai hash ke database


(45)

file

Pre Condition User sudah berada di Form Kemiripan

Normal Flow Kegiatan Aktor Respon Sistem

Langkah 1: User melihat form

kemiripan pada sistem

Langkah 2: Sistem mengambil nilai hash

Langkah 3: Sistem menghitung persentase kemiripan skripsi dengan rumus Dice Coefficient, rumus umum untuk menghitung kemiripan dokumen, yaitu dengan mengalikan 2 jumlah nilai hash yang sama antara dokumen pertama dengan nilai hash dokumen kedua kemudian membaginya dengan jumlah nilai hash dokumen pertama dengan nilai hash dokumen kedua.

Langkah 4: Sistem menyimpan nilai persentase file skripsi ke

database. Langkah 5: Sistem menampilkan presentase

kemiripan file skripsi.

Past Condition Sistem menampilkan persentase kemiripan antar skripsi pada


(46)

3.1.3.9 Activity DiagramDice Coefficient Similarity

Acitvity Diagram dari use caseDice Coefficient Similarity dapat dilihat pada gambar 3.6.

USER SISTEM

Gambar 3.6 Activity Diagram Dice Coefficient Similarity

Mengambil nilai hash

Menghitung persentase kemiripan skripsi dengan rumus Dice

Coefficient Similarity

2 | X ∩ Y | D ( X , Y ) = —————

| X | + | Y |

Menyimpan nilai hasil persentase ke database

Melihat form kemiripan pada sistem

Menampilkan persentase kemiripan file skripsi pada Form Kemiripan


(47)

3.1.3.10 Use Case Melihat Skripsi

Tabel dokumentasi naratif dari use case melihat skripsi dapat dilihat pada tabel 3.6.

Tabel 3.6 Dokumentasi Naratif Use Case Melihat Skripsi

Nama Use Case Melihat skripsi

Aktor Admin/User

Deskripsi Use Case ini berfungsi untuk melihat daftar skripsi yang sudah diproses menggunakan algoritma Rabin Karp dan stemming

Nazief dan Adriani dan sudah disimpan di database Pre Condition User sudah berada pada tampilan daftar skripsi

Normal Flow Kegiatan Aktor Respon Sistem

Langkah 1: User melihat daftar skripsi yang sudah

disimpan ke database Langkah 2: User mengklik judul skripsi yang akan dilihat

Langkah 3: Sistem menampilkan Judul Skripsi, isi

skripsi dan nilai hash yang sudah disimpan di database

Past Condition Sistem menampilkan data skripsi

3.1.3.11 Activity Diagram Melihat Skripsi


(48)

USER SISTEM

Gambar 3.7 Activity Diagram Melihat Skripsi

3.1.4 Analisis Proses Sistem

Analisis proses pada sistem dapat digambarkan dengan Sequence Diagram. Sequence Diagram berfungsi menunjukkan hubungan statis antara actor dan lifeline. Sequence

Diagram untuk sistem pendeteksi tingkat kemiripan file teks menggunakan algoritma

Rabin-Karp dan stemming Nazief dan Adriani dapat dilihat pada gambar 3.8. Melihat daftar skripsi yang

sudah disimpan ke database

Mengklik judul skripsi yang akan dilihat

Menampilkan judul skripsi, isi skripsi dan nilai hash yang sudah


(49)

Sistem Stemming Nazief dan Adriani Algoritma Rabin-Karp Dice Coefficient Simillarity

kemiripan() Cek_Kamus($kata)

Del_Inflection_Suffixes($kata)

Del_Derivation_Suffixes($kata)

Del_Derivation_Prefixes($kata) hapus_spasi($teks)

pembentukan_gram($teks, $kgram)

pembentukan_hash($gram) dice($h1, $h2)

hitung_hash_sama($hash1, $hash2)

Gambar 3.8 Sequence Diagram Sistem

3.1.5 Flow Chart

Flow chart adalah diagram alir proses .

3.1.5.1 Flow Chart Algoritma Rabin-Karp


(50)

Mulai

Selesai Tentukan

Gram

Bentuk Gram

Bentuk Hash

Gambar 3.9 Flow Chart Algritma Rabin-Karp

3.1.5.2 Flow Chart Algoritma Stemming Nazief dan Adriani

Flow Chart untuk algoritma Stemming Nazief dan Adriani dapat kita lihat pada gambar 3.10 berikut ini:


(51)

Mulai

Selesai Input Kata

Hapus Partikel -lah, -kah , -pun

Hapus kata ganti milik -ku, -mu, -nya

Hapus akhiran -i, -an

Hapus Awalan se-, ke-, di-, ter-, ber-, pe-, per-,

me-tidak

tidak

tidak

tidak

Periksa apakah kata dasar

Periksa apakah kata dasar

ya Periksa apakah

kata dasar

Periksa apakah kata dasar

ya


(52)

3.2 Perhitungan Kemiripan

Untuk perhitungan kemiripan antar dua file, digunakan Dice Coefficient Similarity. Berikut ini rumus perhitungannya:

2 | X ∩ Y |

D ( X , Y ) = ————— (3)

| X | + | Y |

Dimana:

D ( X , Y) : Nilai Kemiripan X : Nilai hash dokumen 1 Y : Nilai hash dokumen 2

Dice Coefficient adalah rumus umum untuk menghitung kemiripan dokumen dengan

mengalikan 2 jumlah nilai hash yang sama antara dokumen pertama dengan nilai hash dokumen kedua kemudian membaginya dengan jumlah nilai hash dokumen pertama dengan nilai hash dokumen kedua.

3.3 Perancangan Antar Muka

Perancangan Antar Muka Implementasi Algoritma Rabin Karp dan Stemming Nazief dan Adriani Untuk Mendeteksi Tingkat Kemiripan File Teks Yang Berbentuk Skripsi dibuat dengan tools php dan mysql, dapat dilihat pada Gambar 3.11.

3.3.1 Perancangan Antar Muka Form Home

Pada awal program dijalankan maka akan muncul sistem deteksi kemiripan seperti gambar 3.11.


(53)

Gambar 3.11 Tampilan Form Home

3.3.2 Perancangan Antar Muka Form Masukkan Skripsi

Setelah Masuk ke halaman utama, maka akan kita lihat 4 pilihan halaman, Home, Masukkan Skripsi, Kemiripan dan Skripsi. Form kedua yaitu form Masukkan Skripsi dapat kita lihat pada gambar 3.12.

KEMIRIPAN SKRIPSI DENGAN RABIN KARP,NAZIEF DAN ADRIANI


(54)

Gambar 3.12 Tampilan Form Masukkan Skripsi

Pada form Masukkan Skripsi seperti pada Gambar 3.12 sistem meminta pengguna mengetikkan Nim dan Judul dari skripsi yang akan dibandingkan. Setelah Nim dan Judul diketikkan maka akan ditampilkan di form Masukkan Skripsi.

KEMIRIPAN SKRIPSI DENGAN RABIN KARP,NAZIEF DAN ADRIANI

Home Masukkan Skripsi Kemiripan Skripsi

Nim :

Judul :

NO NIM JUDUL COVER ABSTRAK BAB

1

BAB 3,4,5 Masukkan


(55)

3.3.3 Perancangan Antar Muka Form Kemiripan

Form ketiga yaitu form Kemiripan, dapat kita lihat pada gambar 3.13.

Gambar 3.13 Tampilan Form Kemiripan

Pada form Kemiripan seperti tampak pada gambar 3.13 akan ditampilkan data persentase kemiripan antar file skripsi yang telah dihitung oleh sistem dan disimpan ke database.

KEMIRIPAN SKRIPSI DENGAN RABIN KARP,NAZIEF DAN ADRIANI

Home Masukkan Skripsi Kemiripan Skripsi

ID DOK 1 DOKUMEN 2

1.

ID COVER ABSTRAK BAB 1

BAB 3,4,5

TOTAL JUDUL

2. 3. 4.

2.

ID COVER ABSTRAK BAB 1

BAB 3,4,5

TOTAL JUDUL

1. 3. 4.


(56)

3.3.4 Perancangan Antar Muka Form Skripsi

Form keempat yaitu form Skripsi, dapat kita lihat seperti pada gambar 3.14.

Gambar 3.14 Tampilan Form Skripsi

Form Skripsi seperti gambar 3.14, berisi daftar skripsi yang telah diproses sistem. KEMIRIPAN SKRIPSI DENGAN RABIN KARP,NAZIEF DAN ADRIANI

Home Masukkan Skripsi Kemiripan Skripsi


(57)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Tahap implementasi sistem merupakan proses pengubahan spesifikasi sistem menjadi sistem yang dapat dijalankan. Berdasarkan hasil analisis dan perancangan sistem yang telah dilakukan, maka dilakukan implementasi ke dalam bentuk program komputer. Implementasi merupakan tahap menerjemahkan hasil perancangan sistem secara rinci ke dalam bahasa pemrograman.

Pada bab ini dijelaskan implementasi dari penggabungan algoritma stemming

Nazief dan Adriani dan Rabin-Karp serta perhitungan rumus Dice Coefficient Similarity

ke dalam bentuk program. Pada bab sebelumnya telah dijelaskan prinsip kerja dari algoritma stemming Nazief dan Adriani dan Rabin-Karp. Implementasi dari analisis dan perancangan sistem ini menggunakan PHP dan MySQL dengan NetBeans IDE (

Integrated Development Enviroment ) 7.0.1.

4.1.1 Spesifikasi Perangkat Keras Yang Digunakan

Spesifikasi perangkat keras yang digunakan untuk membangun sistem deteksi kemiripan ini adalah sebagai berikut :

1. Prosesor : Intel Core 2 Duo 2,0 GHz 2. Harddisk : 320 GB


(58)

4.1.2 Spesifikasi Perangkat Lunak Yang Digunakan

Pada pengimplementasian sistem ini digunakan bahasa pemrograman PHP sehingga sistem ini dapat berjalan pada berbagai sistem operasi seperti Microsoft Windows, Linux dan lain-lain yang telah terinstal NetBeans sebagai editor PHP. Untuk databasenya digunakan database MySQL yang juga bisa berjalan di sistem operasi yang telah disebutkan. Pustaka pemrograman yang digunakan dalam implementasi sistem ini adalah XAMPP 1.7.3.

4.1.3 Implementasi Antarmuka Sistem

Pada tahapan implementasi antarmuka sistem akan ditampilkan setiap form yang digunakan pada sistem. Pada aplikasi ini terdapat 4(empat) form, yaitu:

1. Form Home

2. Form Masukkan Skripsi 3. Form Kemiripan

4. Form Skripsi

4.1.3.1 Tampilan Antarmuka Form Home

Tampilan Form Home adalah tampilan utama yang muncul saat sistem dijalankan. Tampilan Form Home dapat dilihat pada gambar 4.1.


(59)

Gambar 4.1 Tampilan Antarmuka Form Home

4.1.3.2 Tampilan Antarmuka Form Masukkan Skripsi

Form Masukkan Skripsi merupakan tampilan antarmuka memasukkan NIM dan Judul dokumen skripsi yang akan diproses diperlihatkan pada Gambar 4.2.


(60)

Pada form ini pengguna dapat mengetikkan NIM dan Judul dari Skripsi yang akan dibandingkan. Setelah selesai diketik kemudian klik tombol “Masukkan” maka sistem akan menyimpan NIM dam Judul Skripsi ke database dan NIM dan Judul akan tertera di bawahnya. Misalkan kita ketikkan “081401027” pada Nim dan “ PERANCANGAN SISTEM PENDUKUNG KEPUTUSAN DALAM MEMILIH SAHAM BERDASARKAN SINYAL BELI DARI INDIKATOR BOLLINGER BANDS DENGAN METODE PEMBOBOTAN ENTROPI (STUDI KASUS:IHSG)”pada Judul kemudian klik tombol “Masukkan”, maka sistem akan menampilkan pada baris terakhir Nim dan Judul tersebut. Tampilan Form Masukkan Skripsi setelah diinput NIM dan Judul Skripsi yang akan dibandingkan dapat dilihat pada gambar 4.3.

Gambar 4.3 Tampilan Form Masukkan Skripsi setelah Nim dan Judul dari Skripsi yang akan dibandingkan dimasukkan

kemudian pada kolom Cover, Abstrak, Bab 1, Bab 3 s/d 5 akan ada link Masukkan Cover, Masukkan Abstrak, Masukkan Bab 1 Masukkan Bab 3 s/d 5. User mengklik link “Masukkan Cover” kemudian sistem menampilkan tombol “Pilih cover”. Setelah user


(61)

mengklik tombol “Pilih Cover” maka sistem menampilkan kotak dialog open dan user

dapat memilih File berisi Cover sesuai NIM dan Judul yang diinput dan hanya file berekstensi pdf yang dapat dibaca sistem. Setelah dipilih oleh user, maka sistem menyimpan lokasi file. Kemudian user dapat mengklik tombol “Tampilkan Isi” maka sistem akan membaca file dan menampilkan isi file yang hanya teks saja sementara gambar diabaikan. Setelah ditampilkan, maka user dapat mengklik tombol “Proses” dan sistem akan memulai proses perhitungan kemiripan.

Proses yang dilakukan oleh sistem meliputi beberapa tahap, tahap pertama yaitu mengubah huruf menjadi huruf kecil semua. Kemudian ke tahap kedua yaitu menghapus

stopword dan kata dibuat per-array. Setelah itu masuk ke tahap ketiga, yaitu stemming

kata dengan algoritma Nazief dan Adriani. Setelah kata di-stem maka tahap keempat yaitu menghapus spasi, Pada tahap keempat, yaitu penghapusan spasi, teks yang awalnya perkata dan perkalimat memiliki makna, berubah menjadi kumpulan huruf panjang yang tidak memiliki arti. Setelah terbentuk kumpulan huruf, maka tahap kelima merupakan penggunaan algoritma Rabin-Karp, yaitu membentuk gram. Pada sistem ini, satu gram

terdiri dari 5 huruf. Maka sistem membentuk array per-gram. Setelah didapat gram, maka pada tahap keenam sistem akan menghitung nilai hash dari tiap-tiap gram tersebut. Yaitu dengan rumus perhitungan nilai hash pada algoritma Rabin-Karp. Setelah semua proses selesai, maka akan muncul tombol “Masukkan Cover ke Database”. Pengguna dapat mengklik tombol tersebut lalu sistem akan memprosesnya. Setelah pengguna mengklik tombol “Masukkan Cover ke Database” maka sistem akan masuk ke Form “Skripsi”.

4.1.3.3 Tampilan Antarmuka Form Kemiripan

Setelah sistem menyimpan file yang sudah didapat nilai hashnya, maka pengguna melanjutkan ke Form Kemiripan. Form kemiripan dapat dilihat pada gambar 4.4.


(62)

Gambar 4.4 Tampilan Antarmuka Form Kemiripan

Pada Form ini, pengguna dapat melihat perbandingan antar file yang baru diproses dengan file skripsi yang sudah tersimpan di database skripsi. Persentase kemiripan dihitung menggunakan Dice Coefficient Similarity, dimana rumusnya sudah dijelaskan di bab sebelumnya.

Dapat dilihat pada gambar 4.4 terdapat kolom ID, Dokumen 1, Dokumen 2 dan di dalam Dokumen 2 ada terdapat kolom ID, Judul, Cover, Abstrak, Bab 1, Bab 3,4,5, dan Total. Sistem mendata persentase kemiripan skripsi 1 ke 2, 2 ke 3 dan seterusnya begitu juga sebaliknya skripsi 2 ke 1, 2 ke 3 dan seterusnya, untuk masing masing Cover, Abstrak, Bab 1, Bab 3,4,5, dan Total.


(63)

Gambar 4.5 Tampilan Form Kemiripan file skripsi yang terakhir di bandingkan

Pada saat sistem telah selesai memproses file sampai didapat nilai hash, kemudian pengguna mengklik tombol “Masukkan ke Database”, sebenarnya pada saat itu sistem langsung melakukan banyak proses. Prosesnya meliputi sistem akan memasukkan nilai

hash ke database, dan kemudian sistem langsung menghitung persentase kemiripan antar file yang baru dimasukkan dengan file yang sudah ada di database sistem. Proses penghitungan persentase kemiripannya dihitung menggunakan rumus Dice Coefficient Similarity. Setelah didapat persentase kemiripan file yang baru dimasukkan ke database dengan file yang sudah tersimpan di database maka sistem akan langsung menyimpannya ke Form “Kemiripan”. Sehingga data persentase kemiripan dari masing-masing file dapat ditampilkan seperti tampak pada gambar 4.4 dan 4.5.

4.1.3.4 Tampilan Antarmuka Form Skripsi

Pada Form ini ditampilkan file-file skripsi yang sudah diproses dan disimpan ke database. Tampilan Form Skripsi dapat dilihat pada gambar 4.6.


(64)

Gambar 4.6 Tampilan Antarmuka Form Skripsi

Daftar skripsi yang paling terakhir dimasukkan dapat dilihat seperti gambar 4.7.

Gambar 4.7 Tampilan Antarmuka Form Skripsi yang terakhir diinput

Seperti terlihat pada gambar 4.7 maka skripsi dengan judul “PERANCANGAN SISTEM PENDUKUNG KEPUTUSAN DALAM MEMILIH SAHAM BERDASARKAN SINYAL BELI DARI INDIKATOR BOLLINGER BANDS DENGAN METODE PEMBOBOTAN ENTROPI (STUDI KASUS:IHSG)”yang diinput user sudah disimpan ke database dan ditanpilkan di Form Skripsi, maka untuk melihat perinciannya user dapat mengklik pada judul dan tampilannya dapat dilihat seperti gambar 4.8.


(65)

Gambar 4.8 Tampilan Form Skripsi setelah diklik Judul dari skripsi

4.2 Pengujian

Pengujian adalah sebuah proses yang penting untuk dilakukan yang akan membuktikan apakah sistem telah memenuhi segala persyaratan yang diberikan dan berjalan dengan baik. Pada tahap pengujian juga akan dilihat apakah ada perbedaan antara hasil yang diharapkan dengan hasil yang didapat dari sistem.

4.2.1 Tujuan Pengujian

Tujuan pengujian adalah untuk meneliti performa dari sistem pendeteksi kemiripan file skripsi yang dibangun menggunakan algoritma Rabin-Karp dan stemming Nazief dan Adriani.

4.2.2 Data Pengujian

Data yang digunakan sebagai bahan pengujian masing-masing hanya menggunakan satu kalimat yang dibuat secara manual dan diketikkan pada sistem.

Kalimat 1 : Saya Membaca Buku. Kalimat 2 : Saya Membantu Ibu.


(66)

4.2.3 Skenario Pengujian

Dalam mengukur tingkat akurasi dan performa sistem, maka dilakukan pengujian. Skenario pengujian yaitu membandingkan dua kalimat. Dua kalimat yang menjadi data pengujian akan dihitung secara :

1. Perhitungan manual 2. Perhitungan dalam sistem

4.2.4 Output Hasil Pengujian

Output hasil pengujian merupakan hasil persentase dari perhitungan kemiripan menggunakan stemming Nazief dan Adriani, algoritma Rabin-Karp dan rumus Dice Coefficient Similarity.

4.2.4.1Perhitungan Manual

A. Kalimat Pertama : Saya Membaca Buku

- Stemming kalimat menggunakan Stemming Nazief dan Adriani

 Ubah menjadi huruf kecil semua :

sayamembacabuku

 Hapus Stopword dan buat menjadi array: Array

( [0] => saya [1] => membaca

[2] => buku )


(67)

 Hapus awalan, akhiran dan sisipan :

Array ( [0] => saya [1] => baca [2] => buku

)

 Hapus spasi dan kembalikan menjadi satu kalimat: sayabacabuku

- Bentuk Hash menggunakan Algoritma Rabin-Karp

 Pembentukan Gram

Bentuk 5 karakter untuk menghitung nilai hash masing-masing pattern dan buat menjadi array kembali

1 gram = 5 karakter

Array (

[0] => sayab [1] => ayaba [2] => yabac [3] => abaca [4] => bacab [5] => acabu [6] => cabuk [7] => abuku


(68)

 Hitung nilai hash

n=5 Basis=10 Bilangan prima=10007

Nilai Hash : [(Kode ascii huruf 1*10�−1)+( Kode ascii huruf 2*10�−2) + Kode ascii huruf 3*10�−3) + Kode ascii huruf 4*10�−4)] + Kode ascii huruf 5*10�−5)] mod 10007 (1)

(

[sayab] = [(115*104)+(97*103)+(121*102) [(97*101)+(98*100)] mod 10007 = [(1150000+97000+12100+970+98)] mod 10007

= 1260168 mod 10007 = 9293

[ayaba] = [(97*104)+(121*103)+(97*102) [(98*101)+(97*100)] mod 10007 = [(970000+121000+9700+980+97)] mod 10007

= 1101777 mod 10007 = 1007

[yabac] = [(121*104)+(97*103)+(98*102) [(97*101)+(99*100)] mod 10007 = [(1210000+97000+9800+970+99)] mod 10007

= 1317869 mod 10007 = 6952

[abaca] = [(97*104)+(98*103)+(97*102) [(99*101)+(97*100)] mod 10007 = [(970000+98000+9700+990+97)] mod 10007

= 1078787 mod 10007 = 8038

[bacab] =[(98*104)+(97*103)+(99*102) [(97*101)+(98*100)] mod 10007 = [(980000+97000+9900+970+98)] mod 10007

= 1087968 mod 10007 = 7212

[acabu] = [(97*104)+(99*103)+(97*102) [(98*101)+(117*100)] mod 10007 = [(970000+99000+9700+980+117)] mod 10007

= 1079797 mod 10007 = 9048

[cabuk] = [(99*104)+(97*103)+(98*102) [(117*101)+(107*100)] mod 10007 = [(990000+97000+9800+1170+107)] mod 10007


(69)

[abuku] = [(97*104)+(98*103)+(117*102) [(107*101)+(117*100)] mod 10007 = [(970000+98000+11700+1070+117)] mod 10007

= 1080887 mod 10007 = 131 )

Sehingga didapat nilai hash :

Array ( [0] => 9293 [1] => 1007 [2] => 6952 [3] => 8038 [4] => 7212 [5] => 9048 [6] => 7314 [7] => 131

) B. Kalimat Kedua : Saya Membantu Ibu

- Stemming kalimat menggunakan Stemming Nazief dan Adriani

1. Ubah menjadi huruf kecil semua :

sayamembantuibu

2. Hapus Stopword dan buat menjadi array: Array

( [0] => saya [1] => membantu


(70)

[2] => ibu ) 3. Hapus awalan, akhiran dan sisipan :

Array ( [0] => saya [1] => bantu

[2] => ibu )

4. Hapus spasi dan kembalikan menjadi satu kalimat: sayabantuibu

- Bentuk Hash menggunakan Algoritma Rabin-Karp

5. Pembentukan Gram

Bentuk 5 karakter untuk menghitung nilai hash masing-masing pattern dan buat menjadi array kembali

1 gram = 5 karakter Array ( [0] => sayab [1] => ayaba [2] => yaban [3] => abant [4] => bantu [5] => antui [6] => ntuib [7] => tuibu

) 6. Hitung nilai hash


(1)

Seperti terlihat pada gambar 4.9, 4.10 dan 4.11 terlihat bahwa sistem dapat melakukan tahapan-tahapan proses sesuai dengan perhitungan manual. Dan nilai hash yang didapat dari perhitungan di sistem dan perhitungan manual adalah sama.

Selanjutnya masukkan hasil nilai hash ke database. Kembali ke form Masukkan Skripsi dan ketikkan “2” pada kotak NIM dan “Dokumen 2” pada kotak Judul, kemudian klik link “Masukkan Cover” pada baris Dokumen 2 dan ketikkan kalimat “Saya Membantu Ibu”kemudian klik tombol “proses”. Maka akan didapat hasil seperti gambar 4.12.

Gambar 4.12 Proses Sistem Dokumen 2

Seperti tampak pada gambar 4.12 perhitungan sistem juga sesuai dengan perhitungan manual yang sudah dipaparkan. Kemudian untuk melihat persentase nya maka masuk ke form “Kemiripan” dan hasilnya dapat dilihat pada gambar 4.13.


(2)

Gambar 4.13 Persentase Kemiripan Dokumen 1 dan Dokumen 2

Seperti terlihat pada gambar 4.13, hasil perhitungan rumus Dice Coefficient Similarity pada sistem juga sesuai dengan perhitungan yang dilakukan secara manual. Hasil kemiripan pada perhitungan manual dan pada perhitungan sistem yaitu 25 %. Dapat disimpulkan bahwa hasil output pada sistem, sistem dapat melakukan proses stemming menggunakan algoritma Nazief dan adriani. Sistem juga dapat menghitung nilai hash menggunakan algoritma Rabin-Karp. Sistem juga dapat menghitung persentase kemiripan menggunakan rumus Dice Coefficient Similarity. Hal ini membuktikan bahwa akurasi dan performa sistem sangat baik.


(3)

62

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab terdahulu, maka dapat ditarik kesimpulan sebagai berikut:

1. Algortima stemming Nazief dan Adriani dan algoritma Rabin-Karp dapat digunakan untuk menghitung tingkat kemiripan satu file skripsi dengan file skripsi lain. Perhitungan persentase kemiripan dihitung dengan rumus Dice Coefficient similarity.

2. Dalam menentukan kata dasar digunakan stemming Nazief dan Adriani, kemudian dibentuk gram dan dihitung nilai hash dengan algoritma Rabin-Karp. Antar nilai hash tersebut dihitung kemiripannya menggunakan Dice Coefficient similarity sehingga didapat persentase kemiripan antar file.

3. Aplikasi ini hanya menghitung persentase kemiripan antar file skripsi, tidak sampai menentukan apakah file tersebut plagiat atau tidak.

4. Aplikasi ini dapat digunakan dalam aktivitas yang terjadi pada lingkungan akademik.

5.2 Saran

Berikut adalah beberapa saran untuk pengembangan lebih lanjut terhadap penelitian skripsi ini:

1. Sistem ini dapat dikembangkan lebih lanjut dengan menfokuskan pada mengembangkan fitur-fitur yang ada seperti fitur update dan delete dikarenakan sistem yang dibuat lebih menfokuskan pada penghitungan kemiripan satu file


(4)

dengan yang lain menggunakan algoritma stemming Nazief dan Adriani dan algoritma Rabin-Karp.

2. Sistem ini dapat diakses lebih mudah apabila dikembangkan dengan berbasis online. 3. Disarankan dapat mencoba algoritma stemming kata yang lain guna perbandingan.


(5)

64

DAFTAR PUSTAKA

Atmopawiro, Alsasian. 2006. Pengkajian dan Analisis Tiga Algoritma Efisien Rabin-Karp, Knuth-Morris-Pratt dan Boyer-Moore dalam Pencarian Pola dalam Suatu Teks. Skripsi. Institut Teknologi Bandung.

Agusta, Ledy. 2009. Perbandingan Algoritma Stemming Porter dengan Algoritma Nazief & Adriani untuk Stemming Dokumen Teks Bahasa Indonesia. Prosiding Konferensi Nasional Sistem dan Informatika ( KNS&I 2009 ), pp. 196-201. Alwi, Hasan, dkk. 2003. Tata Bahasa Baku Bahasa Indonesia. Balai Pustaka : Jakarta. Fernando, Hary. 2009. Perbandingan dan Pengujian Beberapa Algoritma Pencocokan

String. Skripsi. Institut Teknologi Bandung.

Firdaus, Hari B. 2003. Deteksi Plagiat Dokumen Menggunakan Algoritma Rabin-Karp. Jurnal Ilmu Komputer dan Teknologi Informasi, vol. III, no. 2.

Hermawati, F.A. 2013. Data Mining. Andi : Yogyakarta. Kamus Besar Bahasa Indonesia 1997, 775.

Mendikbud, Kep. 2009. Ejaan Yang Disempurnakan. Bumi Aksara : Jakarta. Muslich, Masnur. 2009. Tata Bentuk Bahasa Indonesia. Bumi Aksara : Jakarta.

Nugroho, E. 2011. Perancangan Sistem Deteksi Plagiarisme Dokumen Teks dengan Menggunakan Algoritma Rabin-Karp. Skripsi. Universitas Brawijaya.

Salmuasih.2013. Perancangan Sistem Deteksi Plagiat pada Dokumen Teks dengan Konsep Similarity Menggunakan Algoritma Rabin-Karp. Skripsi. STMIK Amikom Yogyakarta.

Salmuasih & Sunyoto, A. 2013. Implementasi Algoritma Rabin-Karp untuk Pendeteksian Plagiat Dokumen Teks Menggunakan Konsep Similarity. Prosiding Seminar Nasional Aplikasi Teknologi Informasi (SNATI 2013), pp. F-23 – F-28.

Utomo, D., Harjo, E.W., Handoko. 2008. Perbandingan Algoritma String Searching Brute Force, Knuth Morris Pratt, Boyer Moore, dan Karp Rabin pada Teks Alkitab Bahasa Indonesia. Techne Jurnal Ilmiah Elektoteknika, vol. 7, no.1: 1-13.

Wirawan, T. P. 2003. Penggunaan Algoritma Rabin-Karp dalam Pencocokan String. Jurnal Ilmu computer dan teknologi informasi, vol. III, no. 2.

Manning, C.D. and Schütze, H. 1999. Foundations Of Statistical Natural Language Processing. Massachusetts Institut Of Technology. (Online)


(6)

CURRICULUM VITAE

Nama : WINDI ARINDA

Alamat Sekarang : Dusun IV Desa Dalu Sepuluh A, Tanjung Morawa Alamat Orang Tua : Dusun IV Desa Dalu Sepuluh A, Tanjung Morawa Telp/Hp : 083198989396

E-mail : ndy.arinda@gmail.com Riwayat Pendidikan

SD Negeri 104236 Tanjung Morawa dari Tahun 1997 s/d Tahun 2003 SMP Negeri 3 Tanjung Morawa dari Tahun 2003 s/d Tahun 2006 SMA Negeri 1 Lubuk Pakam dari Tahun 2006 s/d Tahun 2009 Universitas Sumatera Utara dari Tahun 2009 s/d Tahun 2015 Keterampilan

• Programming PHP • Bahasa Inggris