Analisis performasi algoritma winnowing dan algoritma manber untuk deteksi kesamaan dokumen teks berbahasa Indonesia

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

BAMBANG IMAM HERMAWAN

10110511

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2015


(2)

iii

Segala puji dan syukur penulis panjatkan kehadirat Allah SWT, atas segala rahmat dan hidayah–Nya sehingga penulis dapat menyelesaikan tugas akhir ini dengan mengambil judul “ANALISIS PERFORMANSI ALGORITMA

WINNOWING DAN ALGORITMA MANBER UNTUK DETEKSI

KESAMAAN DOKUMEN TEKS BERBAHASA INDONESIA”. Adapun tujuan

dari penyusunan tugas akhir ini adalah untuk memenuhi salah satu syarat dalam menyelesaikan jenjang studi stara satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Dengan selesainya penyusunan tugas akhir ini, penulis mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Kedua orang tua, terima kasih atas doa dan dukungan yang tidak pernah ada hentinya, baik secara moril dan materil.

2. Ibu Nelly Indriani W, S.Si., M.T. selaku dosen pembimbing yang telah banyak meluangkan waktu untuk membimbing serta mengarahkan dalam proses penyusunan tugas akhir.

3. Bapak Alif Finandhita S.Kom selaku dosen wali IF12 Angkatan 2010.

4. Ibu Ednawati Rainarli, S.Si., M.Si. selaku dosen reviewer yang telah memberikan inspirasi dan membimbing dengan sangat teliti dalam proses penyusunan tugas akhir.

5. Teman-teman mahasiswa seperjuangan dari semester awal hingga akhir yaitu Amir Ibrahim Hasan, Muhammad Iqbal, Septiyan Hendiyana, Gustiar Prasetyo Hadi dan Muhammad Septiana yang selalu berbagi pemikiran akan penyusunan tugas akhir.

6. Teman-teman yang telah mendukung proses seminar

7. Seluruh Panitia Skripsi yang telah bekerja keras mengatur jalannya proses dengan sangat baik

8. Penyedia tempat untuk bertukar informasi yaitu Haditya Dwi Perkasa, Eko Harianto, Giri Muria Shaleh , Fatahudin Azis, Arief Firmansyah, Aidil Pratama Putra dan Taufik Mardan Dwi Putra

Penulis menyadari tugas akhir ini masih jauh dari kata sempurna dengan segala kekurangan yang dimiliki. Untuk itu penulis mengharapkan adanya kritik dan saran yang bersifat membangun dari semua pihak demi kesempurnaan tugas akhir ini.

Akhir kata, semoga tugas akhir ini dapat bermanfaat.

Bandung, Februari 2015


(3)

iv

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... x

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Maksud dan Tujuan ... 3

1.3.1 Maksud ... 3

1.3.2 Tujuan ... 3

1.4 Batasan Masalah ... 3

1.5.2 Tahap Pengumpulan Data ... 4

1.5.3 Tahap Pengembangan Perangkat Lunak ... 5

1.6 Sistematika Penulisan ... 6

BAB 2 TINJAUAN PUSTAKA ... 7

2.1 Plagiarisme ... 7

2.1.1 Pengertian Plagiarisme ... 7

2.1.2 Jenis Plagiarisme... 7

2.2 Metode Pendeteksian Kesamaan Dokumen ... 8

2.3 Algoritma ... 9

2.3.1 Dasar Algoritma ... 10


(4)

v

2.4 Tokenizing ... 13

2.5 Algoritma Winnowing ... 14

2.6 Algoritma Manber ... 16

2.7 Rolling Hash ... 17

2.8 Jaccard’s Similarity Coefficient ... 18

2.9.1 Kompleksitas Waktu dan Ruang ... 20

2.9.1.1 Kompleksitas Waktu ... 20

2.9.2 Aturan Algoritma ... 22

2.10 Pengertian ASCII ... 23

2.10.1 Tabel Karakter ASCII ... 23

2.11 Data Flow Diagram (DFD) ... 24

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 27

3.1 Analisis Masalah ... 27

3.2 Analisis Input dan Output ... 28

3.2.1 Analisis Input dan Output Algoritma Winnowing ... 28

3.2.1.1 Analisis Input ... 28

3.2.1.2 Analisis Output ... 28

3.2.2 Analisis Input dan Output Algoritma Manber ... 28

3.2.2.1 Analisis Input ... 27

3.2.2.2 Analisis Output ... 29

3.3 Analisis Algoritma ... 29


(5)

vi

3.4 Analisis Kebutuhan Perangkat Lunak ... 43

3.4.1 Analisis Kebutuhan Non-Fungsional ... 43

3.4.1.1 Analisis Perangkat Keras ... 43

3.4.1.2 Analisis Perangkat Lunak ... 44

3.4.1.3 Analisis Perangkat Pikir ... 44

3.4.2 Analisis Kebutuhan Fungsional ... 44

3.4.2.1 Diagram Konteks ... 45

3.4.2.2 Data Flow Diagram ... 45

3.4.2.2.1 Data Flow Diagram Level 1 ... 45

3.4.2.2.2 Data Flow Diagram Level 2 Pendeteksian Algoritma Winnowing ... 46

3.4.2.2.3 Data Flow Diagram Level 2 Pendeteksian Algoritma Manber ... 47

3.4.2.2.4 Data Flow Diagram Level 2 Proses Cek Histori ... 48

3.4.2.3 Spesifikasi Proses ... 48

3.4.2.3.1 Spesifikasi Proses Input Teks ... 48

3.4.2.3.2 Spesifikasi Proses Preprocessig ... 49

3.4.2.3.3 Spesifikasi Proses Hitung Kemiripan ... 50

3.4.2.3.4 Spesifikasi Proses Download Dokumen ... 51

3.4.2.3.5 Spesifikasi Proses Lihat Upload Dokumen ... 51

3.4.2.3.6 Spesifikasi Proses Lihat Histori Perhitungan Dokumen ... 52

3.4.3 Kamus Data... 52

3.4.4 Perancangan Sistem ... 54


(6)

vii

3.4.4.2.3 Perancangan Antar Muka T03 ... 56

3.4.4.2.4 Perancangan Antar Muka T04 ... 57

3.4.4.2.5 Perancangan Antar Muka T05 ... 59

3.4.4.2.6 Perancangan Antar Muka T06 ... 59

3.4.4.3 Jaringan Semantik ... 60

3.4.4.4 Perancangan Basis Data ... 60

3.4.4.4.1 Tabel tb_dokumen ... 61

3.4.4.4.2 Tabel histori ... 61

3.4.4.4.3 Tabel Stopword ... 62

3.4.4.5 Perancangan Prosedural ... 62

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 65

4.1 Implementasi ... 65

4.1.1 Implementasi Perangkat Keras ... 65

4.1.2 Implementasi Perangkat Lunak ... 65

4.1.3 Implementasi Database ... 66

4.1.4 Implementasi Antarmuka ... 67

4.2 Pengujian Metode ... 68

4.2.1 Pengujian Metode Winnowing ... 69

4.2.1.1 Pengujian Jumlah Gram ... 69

4.2.1.2 Pengujian Jumlah Window ... 71

4.2.1.3 Pengujian Basis Bilangan Prima ... 72 4.2.1.4 Pengujian Winnowing Menggunakan Tokenizing dan Penghapusan Stopword . 73


(7)

viii

4.2.2.3 Pengujian Basis Bilangan Prima ... 81

4.3 Kesimpulan Pengujian ... 81

BAB 5 KESIMPULAN ... 85

5.1 Kesimpulan ... 85

5.2 Saran ... 85


(8)

87

DAFTAR PUSTAKA

[1] Lako, Andreas, "Plagiarisme Akademik1," Jawa Pos Radar Semarang, Juni 2012.

[2] Kurniawati, Ana; Wicaksana, Wayan Simri, "PERBANDINGAN PENDEKATAN DETEKSI PLAGIARISM DOKUMEN DALAM BAHASA INGGRIS," Seminar Ilmiah Nasional Komputer dan Sistem Intelijen, Agustus 2008.

[3] Stein, S; Eissen, Zu Meyer;, "Near Similarity Search and Plagiarism Analys," Annual Conference of the German Classification Society (GfKl), pp. 430-437, 2006.

[4] Kharisman, Obed; Susanto, Budi; Suwarno, Sri, "IMPLEMENTASI ALGORITMA WINNOWING UNTUK MENDETEKSI KEMIRIPAN DOKUMEN TEKS," INFORMATIKA, vol. 9, April 2013.

[5] Permana, Budi, "Algoritma Pemrograman Dalam Bahasa Pascal," 2003-2007, pp. 1-32, 2007.

[6] Munir, Rinaldy, Algoritma dan Pemrograman, Edisi Pertama ed. Bandung, Indonesia: CV INFORMATIKA, 1998.

[7] Harlian, Milkha, "Machine Learnig Text Categorization," University Of Texas At Austin, 2006.

[8] Priantara, Wayan Surya; Purwitasari, Diana; Yuhana, Umi Laili, "IMPLEMENTASI DETEKSI PENJIPLAKAN DENGAN ALGORITMA WINNOWING PADA DOKUMEN TERKELOMPOK," 2011, Juli 2011.

[9] Manber, Udi, "Finding Similar Files in a Large File System," Department of Computer Science, 1994.

[10] Schleimer, Saul ; Wilkerson, Daniel S; Aiken, Alex;, "Winnowing: Local Algorithms for Document Fingerprinting," In Proccedings Of The ACM SIGMOD International Conference on Management Of Data, pp. 76-85, June 2003.


(9)

88

[11] Munir, Rinaldy, MATEMATIKA DISKRIT, 3rd ed. Bandung, Indonesia: Informatika Bandung, 2009.

[12] Suarga , Algoritma dan Pemrograman, Edisi II ed., Sigit Suyantoro, Ed. Yogyakarta, Indonesia: CV ANDI, 2012.

[13] theasciicode. [Online]. www.theasciicode.com.ar

[14] Sutanta, Edhy;, Algoritma : Teknik Penyelesaian Permasalahan Untuk Komputasi, Cetakan Pertama ed., F Wiwiek Nurwiyati, Ed. Yogyakarta, Indonesia: Graha Ilmu, 2004.

[15] Purwanto, Eko Budi, Perancangan dan Analisis Algoritma, Edisi Pertama ed. Yogyakarta, Indonesia: Graha Ilmu, 2008.

[16] Stein, Benno; Zu Eissen, Sven Meyer;, "Near Similarity Search and Plagiarism Analysis," 29th Annual Conference of the German Classification Society (GfKl), pp. 430-437, 2006.


(10)

1

1.1Latar Belakang Masalah

Perkembangan teknologi informasi saat ini membuat dokumen yang tadinya bersifat fisik kini telah banyak dibuat dalam bentuk digital sehingga dapat dengan mudah dilakukan penyalinan digital yang dapat menimbulkan plagiarisme. Plagiarisme merupakan tindakan menjiplak, mencuri atau mengambil ide, hasil karya atau tulisan orang lain, baik seluruh, sebagian besar maupun sebagian kecil, untuk jadi ide atau karya tulisan sendiri tanpa menyebutkan nama penulis dan sumber aslinya [1]. Dalam mendeteksi plagiarisme dokumen digital terdapat beberapa metode yang dapat digunakan untuk mengukur tingkat similaritas sebuah dokumen yaitu metode perbandingan teks lengkap, metode kesamaan kata kunci dan metode fingerprinting [2,3].

Dalam penelitian ini akan dilakukan analisis pengukuran similaritas antar dokumen menggunakan metode fingerprinting. Metode fingerprinting adalah metode yang menelusuri karakter satu persatu pada deret karakter. Prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan. Bilangan-bilangan tersebut menghasilkan nilai-nilai fingerprints sebagai acuan dalam perhitungan kesamaan dokumen. Kelebihan dari metode fingerprinting adalah waktu proses lebih cepat dibandingkan dari metode perbandingan teks lengkap dan metode kesamaan kata kunci [2]. Pengujian similaritas dokumen fingerprinting memiliki tahapan pencarian nilai hashing dari setiap kata, pengambilan nilai fingerprints dan pembobotan persentasi kemiripan.

Beberapa algoritma yang termasuk dalam metode fingerprinting yaitu Algoritma Rabin Karp, Algoritma Winnowing dan Algoritma Manber. Dalam penelitian ini akan dilakukan analisis performansi dari dua buah algoritma yang termasuk dalam metode


(11)

fingerprinting yaitu Algoritma Winnowing dan Algoritma Manber yang dapat diterapkan untuk mendeteksi similaritas pada dokumen teks. Analisis performansi dilakukan dengan tujuan mendapatkan informasi dari kedua algoritma yaitu berupa informasi kecepatan, ketepatan, dan jumlah langkah dari Algoritma Winnowing dan Algoritma Manber dalam penerapannya pada sebuah sistem.

Dari sedikitnya penelitian dalam lingkup analisis performansi kedua algoritma ini maka menjadi dasar penelitian ini. Terdapat penelitian sebelumnya mengenai perbandingan pendekatan kedua algoritma ini yang berjudul “Perbandingan Pendekatan Deteksi Plagiarisme Dokumen Dalam Bahasa Inggris” oleh Ana Kurniawati dan I Wayan Simri Wicaksana dalam jurnalnya yang menganalisis perbandingan dan penerapannya pada dokumen berbahasa inggris. Berdasarkan hasil penelitian tersebut, disimpulkan bahwa algoritma winnowing lebih baik dari algoritma manber karena memberikan jaminan terdeteksinya dokumen sama [2]. Penerapan penelitian tersebut dilakukan pada sistem yang memproses teks berbahasa inggris. Berdasarkan hal tersebut maka akan dilakukan analisis yang nantinya akan diterapkan pada dokumen berbahasa Indonesia.

Penelitian lainnya dari kedua algoritma yaitu berjudul “Implementasi Algoritma

Winnwoing untuk Mendeteksi Kemiripan Pada Dokumen Teks” [4], hanya berfokus

pada implementasi algoritma sehingga informasi dari parameter-parameter yang digunakan tidak memiliki standar optimal untuk diterapkan pada rumus yang dipakai oleh kedua algoritma tersebut. Ketika ditemukan jumlah parameter optimal diharapkan dapat mendapatkan akurasi yang lebih tepat dalam mendeteksi similaritas dari dokumen yang dibandingkan. Parameter yang perlu diuji yaitu jumlah gram, jumlah window, basis bilangan prima yang di gunakan dan proses pemilihan nilai hashing yang berpengaruh pada persentasi kemiripan dari dokumen yang dibandingkan.


(12)

1.2Rumusan Masalah

Berdasarkan latar belakang masalah yang diuraikan, maka dapat diidentifikasi masalah dalam penelitian ini yaitu:

1. Bagaimana mendeteksi kesamaan antar dokumen teks sebagai dugaan plagiarisme menggunakan metode fingerprinting.

2. Bagaimana performansi Algoritma Winnowing dan Algoritma Manber dalam mendeteksi similaritas dokumen.

3. Bagaimana pengaruh jumlah parameter input terhadap persentasi kemiripan dokumen yang dibandingkan.

1.3Maksud dan Tujuan 1.3.1 Maksud

Maksud dari penelitian ini adalah untuk menganalisis Algoritma Winnowing dan Algoritma Manber dalam mendeteksi kesamaan dokumen teks berbahasa Indonesia

1.3.2 Tujuan

Sedangkan tujuan yang akan dicapai yaitu mendapatkan informasi dari Algoritma Winnowing dan Algoritma Manber berupa informasi perbandingan kecepatan, ketepatan, keefektifan langkah dan pengaruh jumlah parameter input dalam proses mendeteksi kesamaan dokumen.

1.4Batasan Masalah

Batasan masalah dari penelitian ini yaitu:

1. Metode yang digunakan adalah metode fingerprinting.

2. Penerapan algoritma pada sistem memproses dokumen berbahasa Indonesia. 3. Penerapan algoritma pada sistem tidak membedakan arti atau sinonim dari


(13)

4. Penerapan algoritma menggunakan metode Jaccard’s Similarity Coefficient sebagai perhitungan kesamaan.

5. Parameter yang akan diukur adalah kecepatan, ketepatan dan jumlah langkah dari kedua algoritma.

6. Sistem tidak melihat acuan referensi yang digunakan dokumen. 7. Dokumen yang akan dideteksi berextensi .txt

8. Jumlah gram dibatasi 2 sampai 10

1.5Metodologi Penelitian

Metodologi penelitian yang dimaksud adalah segala hal yang berhubungan dengan metode-metode yang digunakan dalam melakukan penelitian ini dengan cara melakukan pendekatan terhadap metode-metode yang telah ada. Dalam penelitian ini menggunakan metode-metode yang diuraikan di bawah ini.

1.5.1 Metode Penelitian

Metode penelitian yang dipakai adalah metode penelitian deskriptif. Dalam metode penelitian ini digunakan teknik-teknik analisis, klasifikasi masalah, studi literatur terhadap masalah-masalah yang berhubungan dengan skripsi yang disusun, dan teknik test terhadap objek penelitian yang telah ada..

Dengan metode deskriptif, data yang telah dikumpulkan mula-mula disusun, dijelaskan, dianalisis, dan kemudian diimplementasikan dalam sebuah perangkat lunak.

1.5.2 Tahap Pengumpulan Data

Pengumpulan data adalah cara atau prosedur yang sistematis dan standar untuk memperoleh data yang diperlukan. Adapun metode pengumpulan data pada penelitian ini yaitu studi pustaka dengan cara mengkaji buku, media, atau hasil penelitian orang lain yang memiliki keterkaitan dengan penelitian ini.


(14)

1.5.3 Tahap Pengembangan Perangkat Lunak

Teknik analisis data dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara prototyping, yang meliputi beberapa proses diantaranya:

1. Pengumpulan kebutuhan

Pendefinisian format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.

2. Membangun prototyping

Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pengguna (misalnya dengan membuat input dan format output)

3. Evaluasi protoptyping

Evaluasi ini dilakukan oleh pengguna apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pengguna. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangi langkah 1, 2 , dan 3.

4. Mengkodekan sistem

Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.

5. Menguji sistem

Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan metode pengujian Black Box yaitu pengujian luar sistem.

6. Evaluasi Sistem

Pengguna mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.


(15)

7. Menggunakan sistem

Perangkat lunak yang telah diuji dan diterima pengguna siap untuk digunakan .

1.6Sistematika Penulisan

Penyusunan skripsi ini dibagi ke dalam beberapa bab secara sistematis sesuai dengan pokok-pokok permasalahan yang dibahas. Adapun sistematika penulisan secara umum adalah sebagai berikut:

BAB I . PENDAHULUAN

Bab ini menjelaskan secara singkat mengenai latar belakang masalah, identifikasi masalah, maksud dan tujuan, metodologi penelitian, batasan masalah, serta sistematika penulisan.

BAB II . LANDASAN TEORI

Pada bab ini berisi tentang analisis kebutuhan dalam membangun aplikasi ini yang sesuai dengan metode pembangunan perangkat lunak yang digunakan. Selain itu terdapat juga teori-teori yang berkaitan dengan penelitian yang dijalankan.

BAB III . ANALISIS DAN PERANCANGAN SISTEM

Bab ini menerangkan analisis yang dilakukan terhadap cara kerja aplikasi yang dibuat. Bab ini juga membahas mengenai lingkungan bahasa pemrograman yang digunakan dan perancangandalam tahapan-tahapan yang sistematis.

BAB IV . IMPLEMENTASI SISTEM

Pada bab ini berisi tentang analisis kebutuhan dalam membangun aplikasi ini yang sesuai dengan metode pembangunan perangkat lunak yang digunakan. Selain itu terdapat juga perancangan antarmuka dan pengujian untuk aplikasi yang akan dibangun sesuai dengan hasil analisis.

BAB V . KESIMPULAN DAN SARAN

Bab ini terdiri dari kesimpulan dan saran yang berisikan hal-hal terpenting yang penulis bahas dan kemudian dibuat kesimpulan. Bab ini juga berisi saran-saran yang penulis berikan untuk pengembangan selanjutnya.


(16)

7

BAB 2

TINJAUAN PUSTAKA

2.1Plagiarisme

2.1.1 Pengertian Plagiarisme

Plagiarisme merupakan tindakan menjiplak, mencuri atau mengambil ide, hasil karya atau tulisan orang lain, baik seluruh, sebagian besar maupun sebagian kecil, untuk jadi ide atau karya tulisan sendiri tanpa menyebutkan nama penulis dan sumber aslinya[1].

2.1.2 Jenis Plagiarisme

Berdasarkan sejumlah pola atau modus operansi tersebut, paling sedikit ada empat jenis plagiarisme[1].

a. Plagiarisme total yaitu tindakan plagiasi yang dilakukan seorang penulis dengan cara menjiplak atau mencuri hasil karya orang lain seluruhnya dan mengklaim sebagai karyanya sendiri.

b. Plagiarisme parsial yaitu tindakan plagiasi yang dilakukan sesorang penulis dengan cara cara menjiplak sebagian hasil karya orang lain untuk menjadi hasil karyanya sendiri. Biasanya, dalam plagiasi jenis ini seorang penulis mengambil pernyataan, landasan teori, sampel, metode analisis, pembahasan dan atau kesimpulan tertentu dari hasil karya orang lain menjadi karyanya tanpa menyebutkan sumber aslinya.

c. Auto-plagiasi (self-plagiarisme) yaitu plagiasi yang dilakukan seorang penulis terhadap karyanya sendiri, baik sebagian maupun seluruhnya. Misalnya, ketika menulis suatu artikel ilmiah seorang penulis meng-copy paste bagian-bagian tertentu dari hasil karyanya dalam suatu buku yang sudah diterbitkan tanpa menyebut sumbernya

d. Plagiarisme antarbahasa yaitu plagiasi yang dilakukan seorang penulis dengan cara menerjemahkan suatu karya tulis yang berbahasa asing ke dalam bahasa


(17)

Indonesia. Kemudian, penulis menjadikan hasil terjemahan tersebut sebagai hasil karyanya tanpa menyebut sumbernya. Modus operandinya hampir mirip dengan jenis plagiasi total dan plagiasi parsial. Asumsinya, para pembaca tidak akan tahu bahwa artikel tersebut adalah hasil terjemahan karena berbeda bahasa.

2.2Metode Pendeteksian Kesamaan Dokumen

Metode pendeteksian kesamaan dokumen dibagi menjadi tiga bagian yaitu metode perbandingan teks lengkap, metode dokumen fingerprinting, dan metode kesamaan kata kunci [3]. Metode pendeteksi plagiarism dapat dilihat pada Gambar 2.1.

Gambar 2.1 Metode Pendeteksi Plagiarisme

Penjelasan dari masing-masing metode dan algoritma pendeteksi kesamaan dokumen sesuai Gambar 2.1 yaitu:

1. Perbandingan teks lengkap. Metode ini diterapkan dengan membandingkan semua isi dokumen. Dapat diterapkan untuk dokumen yang besar. Pendekatan ini membutuhkan waktu yang lama tetapi cukup efektif, karena kumpulan dokumen yang diperbandingkan adalah dokumen yang disimpan pada penyimpanan lokal.


(18)

Metode perbandingan teks lengkap tidak dapat diterapkan untuk kumpulan dokumen yang tidak terdapat pada dokumen lokal. Algoritma yang digunakan pada metode ini adalah algoritma Brute-Force, algoritma edit distance, algoritma Boyer Moore dan algoritma lavenshtein distance.

2. Dokumen Fingerprinting. Dokumen fingerprinting merupakan metode yang digunakan untuk mendeteksi keakuratan salinan antar dokumen, baik semua teks yang terdapat di dalam dokumen atau hanya sebagian teks saja. Prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan. Misalnya Rabin-Karp, Winnowing dan Manber.

3. Kesamaan Kata Kunci. Prinsip dari metode ini adalah mengekstrak kata kunci dari dokumen dan kemudian dibandingkan dengan kata kunci pada dokumen yang lain. Pendekatan yang digunakan pada metode ini adalah teknik dot.

2.3Algoritma

Algoritma adalah suatu perintah yang berisi langkah-langkah untuk menyelesaikan masalah [5]. Algoritma berasal dari nama tokoh ilmuan islam pada masa itu yaitu Abu Ja‟far Muhammad Ibu Musa Al Khawārizmi yang hidup sekitar abad ke-9. Dengan karya bukunya yang terkenal yaitu Al Jabar Wal Muqabala yang berarti “Buku Pemugaran dan Pengurangan”.

Pada awalnya kata algoritma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, sepertitertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Berikut adalah contoh bagaimana algoritma dapat menyelesaikan masalah :

- Terdapat dua buah gelas yang berisi air yang berwarna merah dan gelas yang berisi air berwarna biru. Kita asumsikan gelas yang berwarna merah adalah gelas


(19)

A dan gelas yang berwarna biru adalah gelas B. Jika isi gelas A ingin kita pindahkah ke dalam gelas B dan isi gelas B berpindah ke gelas A agar tidak merubah warna masing-masing gelas tentukan cara bagaimana mana gelas tersebut dapat berpindah tempat tanpa merubah isi dalam gelas tersebut.

Penyelesaiannya :

1. tambahkan gelas kosong yang diasumsikan sebagai gelas C.

2. Pindahkan isi gelas A ke dalam gelas kosong C sehingga sekarang gelas A kosong dan isi gelas C adalah air berwarna merah.

3. Setelah itu pindahkan isi gelas B ke dalam gelas A sehingga isi gelas B kosong dan berpindah ke gelas A.

4. Pindahkan isi gelas C yang berisi air berwarna merah kedalam gelas B yang sudah kosong karena isinya sudah berpindah ke dalam gelas A.

5. Hasil akhirnya adalah A berisi air berwarna biru dan B berisi air berwarna merah.

2.3.1 Dasar Algoritma

Dasar algoritma terdiri dari beberapa tahapan. Tahapan-tahapan ini merupakan tindakan yang sering digunakan seperti sequence, pemilihan dan perulangan.

2.3.1.1Sequence

Algoritma merupakan runtunan satu atau lebih instruksi, yang berarti bahwa : a. Tiap instruksi di kerjakan satu persatu;

b. Tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yang di ulang;

c. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis didalam teks algoritmanya

d. Akhir dari instruksi terakhir adalah akhir algoritma.

Langkah 1


(20)

Langkah 2

Tuangkan isi gelas B ke dalam gelas A

Langkah 3

Tuangkan isi gelas C ke dalam gelas B

2.3.1.2Pemilihan

Adakalanya sebuah program dihadapkan pada suatu kondisi dimana kondisi tersebut menentukan alur program yang akan kita buat.

Contoh 1

Jika keran air kita tutup maka Air tidak akan keluar

Pernyataan diatas dapat kita tulis dalam pernyataan kondisional sebagai berikut : If kondisithen Aksi

Jika kita tulis :

If keran air di tutup then Air tidak akan keluar If keran air di buka then Air akan keluar

Dalam bahasa Indonesia If berarti jika dan then berarti maka dimana setiap kondisi bisa menghasilkan nilai benar atau salah.

2.3.1.3Perulangan

Jika di banding dengan manusia kelebihan komputer adalah tidak mengenal kata lelah jika mengerjakan pekerjaan yang sama secara berulang kali. Contoh algoritma yang kurang cerdas untuk menuliskan kata sebanyak 100 x sebagai berikut:

Program menulis_kata;

{Menuliskan kata sebanyak 100 kali} Deklarasi


(21)

{Tidak ada} Algoritma

Tulis „Saya akan belajar yang rajin‟; Tulis „Saya akan belajar yang rajin‟; Tulis „Saya akan belajaryang rajin‟; Tulis „Saya akan belajar yang rajin‟; Tulis „Saya akan belajar yang rajin‟; ………..

Alangkah baiknya jika pengulangan tersebut dibuat secara otomatis yaitu dengan menggunakan algoritma perulangan sebagai berikut :

Program menulis_kata;

{Menuliskan kata sebanyak 100 kali} Deklarasi

Algoritma

For i dari 1 sampai 100

Tulis ‘Saya akan belajar yang rajin’; End for

Algoritma diatas akan mengulangi kata „Saya akan belajar yang rajin‟ sampai 100 kali, apabila perulangan sudah terpenuhi maka perulangan pun akan berhenti.

2.3.2 Stuktur Algoritma

Berikut ini merupakan salah satu struktur algoritma yang dipakai sebagai patokan yaitu:

a. Bagian kepala (Header)

Pada bagian ini memuat nama algoritma serta informasi atau keterangan algoritma


(22)

b. Bagian Deklarasi (Definisi Variable)

Pada bagian ini memuat definisi nama variable, nama tetapan, nama procedure, nama fungsi, dan tipe data yang digunakan oleh algoritma

c. Bagian Deskripsi (Rincian Langkah)

Pada bagian ini memuat langkah-langkah penyelesaian masalah termasuk beberapa perintah seperti baca data, tampil data, perulangan yang mengubah data input menjadi output [6]

2.4Tokenizing

Tahap tokenizing / parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya. Karakter selain huruf dihilangkan dan dianggap delimiter. Tokenizing biasanya digunakan pada tahap preprocessing sehingga kata-kata pada sebuah dokumen dibagi menjadi beberapa kata sesuai dengan delimeter pembagi kata yang telah ditentukan. Tokenizing sangat berguna ketika sebuah program pengolah teks memerlukan data sebuah kata yang tersusun dan terbagi menjadi array. Proses tokenizing dapat dilihat pada Gambar 2.3 [7] :


(23)

2.5Algoritma Winnowing

Algoritma winnowing merupakan algoritma dokumen fingerprinting yang digunakan untuk mendeteksi salinan dokumen dengan menggunakan teknik hashing [4]. Input dari algoritma ini adalah dokumen teks yang diproses sehingga menghasilkan output berupa kumpulan nilai-nilai hash, nilai hash merupakan nilai numerik yang terbentuk dari perhitungan ASCII tiap karakter . Kumpulan-kumpulan nilai hash tersebut selanjutnya disebut fingerprint. Fingerprint inilah yang digunakan dalam deteksi penjiplakan [8].

Langkah awal dalam penerapan algoritma Winnowing adalah membuang karakter-karakter dari isi dokumen yang tidak relevan misal tanda baca spasi dan simbol lain sehingga yang terbaca hanya karakter string. Sebagai contoh:

Deteksi plagiarisme

deteksiplagiarisme

Langkah kedua, isi dokumen yang telah dilakukan pembersihan selanjutnya dilakukan pembentukan rangkaian gram, dimana k =5.

deteksiplagiarisme

detek ksipl lagia arism eteks sipla agiar risme teksi iplag giari


(24)

Langkah ketiga dari rangkaian gram yang telah terbentuk dibentuk nilai hash dengan nilai ASCII tiap karakter. Perhitungan nilai hash menggunakan metode Rolling Hash dan menghasilkan nilai hash dari setiap gram sebagai berikut:

12281, 12658, 13536, 12532, 13161, 13579, 12895, 13275, 12706, 11988, 12498, 12580, 12334, 13532

Setelah mendapatkan nilai hash langkah selanjutnya adalah pembagian nilai hash menurut window dengan besar window w = 4

{12281, 12658, 13536, 12532} {12658, 13536, 12532, 13161} {13536, 12532, 13161, 13579} {12532, 13161, 13579, 12895} {13161, 13579, 12895, 13275} {13579, 12895, 13275, 12706} {12895, 13275, 12706, 11988} {13275, 12706, 11988, 12498} {12706, 11988, 12498, 12580} {11988, 12498, 12580, 12334} {12498, 12580, 12334, 13532}

Langkah ke lima adalah memeilih nilai hash terkecil dari setiap window untuk dijadikan nilai fingerprints dari dokumen tersebut:

12281, 12532, 12895, 12706, 11988, 12334

Implementasi algoritma winnowing yang efisien sebaiknya menyimpan posisi fingerprints yang telah didapatkan (Elbegbayan, 2005), dimana posisi dimulai dari 0 dari nilai hash pada gram yang terbentuk sebelumnya [fingerprints, posisi].


(25)

2.6Algoritma Manber

Algoritma Manber melakukan pemilihan nilai fingerprints yang telah diperoleh dari proses hashing dengan memilih nilai fingerprints yang memenuhi kriteria 0 mod p [9] Contoh tahapan Algoritma Manber dapat dilihat sebagai berikut:

Langkah awal dalam penerapan algoritma manber adalah membuang karakter-karakter dari isi dokumen yang tidak relevan misal tanda baca spasi dan simbol lain. Sebagai contoh:

Deteksi plagiarisme

deteksiplagiarisme

Langkah kedua isi dokumen yang telah dilakukan pembersihan selanjutnya dilakkukan pembentukan rangkaian gram, dimana k =5.

deteksiplagiarisme

detek ksipl lagia arism eteks sipla agiar risme teksi iplag giari

eksip plagi iaris

Langkah ketiga dari rangkaian gram yang telah terbentuk dibentuk nilai hash dengan nilai ASCII tiap karakter. Perhitungan nilai hash menggunakan metode Rolling Hash dan menghasilkan nilai hash dari setiap gram sebagai berikut:


(26)

12281, 12658, 13536, 12532, 13161, 13579, 12895, 13275, 12706, 11988, 12498, 12580, 12334, 13532

Setelah mendapatkan nilai hash langkah selanjutnya adalah pemilihan nilai hash menurut ukuran 0 mod p, p=4 maka diperoleh nilai fingerprints:

13536, 13161, 13275, 11988, 12498

2.7Rolling Hash

Rolling hash adalah suatu cara menyimpan dan mengambil target elemen tanpa searching, yaitu dengan cara menghitung lokasi target. Fungsi hash dengan basis disebut dengan Rolling Hash. Pada awalnya metode Rolling Hash digunakan pada Algoritma Rabin Karp dimana metode ini digunakan untuk membandingan nilai hashing dari semua k-gram kedalam sebuah string yang panjang [10]. Persamaannya adalah sebagai berikut :

�( 1.. �+1) = 1∗

�−1+

2∗ �−2+⋯+ �−1∗ + � (2.1)

Keterangan: H: nilai hash

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

Contoh Penggunaan: Kata: “sepeda”


(27)

Diambil nilai ascii dari setiap karakter dari kata “sepeda” didapatkan nilai ascii sebagai berikut:

s=115, e=101, p=112, e=101, d=100, a=97

Dari rumus Rolling Hash pertama didapatkan hasil sebagai berikut: 155*35 + 101*34 +112*33+ 101*32 + 100*3 + 97=40456 115*243 + 101* 81 + 112*27 + 101*9 + 100*3 + 97 = 40456 27945 + 8181 + 3024 + 909 + 300 + 97 = 40456

Rolling hash memiliki dua rumus untuk menghitung nilai hash karakter berikutnya yaitu H(c2...ck+1) dapat dilakukan dengan cara:

2.. �+1 = � 1.. )− 1∗ �−1 ∗ + (�+1)

(2.2)

Dengan begitu tidak perlu melakukan iterasi dari indeks pertama sampai terakhir untuk menghitung nilai hash untuk gram ke-2 sampai terakhir.

Contoh Penggunaan: - Kata: “sepedaitubagus”

- Diambil nilai ascii dari setiap karakter dari kata “sepeda” dan dilakukan perhitungan menggunakan rumus Rolling Hash pertama didapatkan nilai hash 40456

- Karena setiap kata yang bergeser memiliki huruf yang pernah dihitung sebelumnya yaitu “sepeda” dan bergeser menjadi “epedai” digunakanlah rumus Rolling Hash kedua dan menghasilan nilai sebagai berikut:

H=((40456-(115*243))*3+105) = 37638

2.8Jaccard’s Similarity Coefficient

Untuk menghitung persentasi kemiripan (similarity) dari sebuah dokumen dapat dilakukan menggunakan Jaccard’s Similarity Coefficient [4]dengan rumus:


(28)

, = | |

| | × 100 (2.3)

Keterangan:

A : nilai fingerprints dokumen 1 B : nilai fingerprints dokumen 2

Dimana D(A,B) adalah nilai similaritas, | | adalah jumlah fingerprint yang sama dari dokumen 1 dan 2, | | dalah jumlah seluruh fingerprint dari dokumen 1 dan 2. Sebagai contoh a={1,2,4} dan b={1,2,4,7,8} maka | | = {1,2,4} dan | | = {1,2,4,7,8} sehingga, D(a,b) = 3/5 * 100 = 60

2.9Teori Analisis Algoritma

Algoritma yang baik adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang(space) memori yang dibutuhkan untuk menjalankannya. Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang [11] Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan yang secara khas adalah jumlah data yang diproses. Ukuran masukan itu disimbolkan dengan n. Misalkan bila mengurutkan 1000 buah data maka n=1000.

Analisis waktu sebuah algoritma bergantung pada mesin komputer yang digunakan. Perbedaan kecepatan sebuah komputer atau mesin compiler dalam memproses sebuah eksekusi program mengakibatkan perbedaan hasil waktu proses. Misalkan terdapat sebuah komputer yang mampu menjalankan program dengan masukan berukuran n dalam waktu − × � detik. Maka dapat dihitung bahwa untuk,

a. n = 10, dibutuhkan waktu eksekusi kira-kira 1/10 detik, b. n = 20, dibutuhkan waktu eksekusi kira-kira 2 menit, c. n = 30, dibutuhkan waktu eksekusi lebih dari satu hari


(29)

Jika kita mengganti mesin baru yang dapat memproses 100 kali lebih cepat dari mesin pertama menjadi −�, maka proses yang dapat dilakukan lebih banyak karena waktu proses semakin cepat menjadi menjadi −�× � detik.

2.9.1 Kompleksitas Waktu dan Ruang

Secara teoritis model abstrak pengukuran waktu atau ruang harus independen dari pertimbangan mesin compiler apapun. Model abstrak seperti itu dapat dipakai untuk membandingkan algoritma yang berbeda. Kompleksitas waktu diekspresikan sebagai jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n [11]. kompleksitas ruang diekspresikan sebagai jumlah memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. dengan menggunakan besaran kompleksitas waktu/ruang algoritma, dapat ditentukan laju peningkatan waktu/ruang yang diperlukan algoritma dengan meningkatnya ukuran masukan n. Umumnya Algoritma mempunyai parameter utama yang paling menentukan waktu proses. Parameter ini berkaitan dengan jumlah data yang diproses algoritma tersebut. Parameter ini dapat berupa pangkat suatu persamaan polinom atau jumlah record yang akan diurutkan atau dicari. Kompleksitas algoritma menyatakan kelajuan perkembangan waktu proses dibandingkan dengan kelajuan perkembangan data yang diproses . Salah satu notasi kompleksitas algoritma adalah Big-Oh. Definisi dari Big-O Adalah fungsi yang lebih berkaitan dengan kelajuan proses daripada kelajuan pertambahan data yang dirumuskan dengan T(n) = O( f(n) ). Jika ada konstan c dan no sedemikian rupa sehingga T(n) ≤ c. f(n) untuk n ≥ no. Secara sederhana dikatakan bahwa O( f(n) ) dapat dianggap sebagai nilai maksimum dari c.f(n).

2.9.1.1Kompleksitas Waktu

Kompleksitas waktu diukur dengan menghitung banyaknya operasi yang dilakukan oleh algoritma [12]. Sebagai contoh terdapat suatu algoritma yang


(30)

memiliki proses pengisian nilai dan penjumlahan sesuai dengan pseudocode sebagai berikut:

a. Operasi Pengisian Nilai

Jumlah ← 0, jumlah eksekusi 1 kali

k ← 1, jumlah eksekusi 1 kali

jumlah ← jumlah + �, jumlah eksekusi n kali k ← k+1, jumlah eksekusi n kali r ← jumlah/n jumlah eksekusi 1 kali Jumlah seluruh operasi pengisian nilai adalah:

t1 = 1 + 1 + n + n + 1 = 3 + 2n

b. Operasi Penjumlahan

Jumlah + �, jumlah eksekusi n kali k + 1, jumlah eksekusi n kali

jumlah seluruh operasi penjumlahan adalah:

t2 = n + n = 2n

Dari kedua proses pengisian nilai dan penjumlahan pada algoritma tersebut dapat dihitung jumlah kompleksitas waktu berdasarkan jumlah operasi yang telah dilakukan yaitu:

T(n) = t1 + t2 = 3 + 2n + 2n = 4n + 3, dimana T(n) merupakan kompleksitas waktu yang menghasilkan 4n + 3


(31)

2.9.2 Aturan Algoritma

Aturan algoritma digunakan untuk mengklasifikasikan sebuah algoritma termasuk pada jenis algoritma seperti apa keterhubungan algoritma tersebut pada T(n) [11].

a. Perulangan (For Loop)

Algoritma yang termasuk pada jenis ini memiliki waktu eksekusi maksimum sebanyak waktu eksekusi statement yang ada didalam loop dikalikan banyaknya iterasi. Contoh:

For(a=0;a<n;a++) {

m=a+b; n=c+d; }

Waktu eksekusi yaitu 2 x n sehinggal T(n) = O(n). Algoritma yang memiliki 1 kali perulangan termasuk pada klasifikasi O(n).

b. Perulangan Bersarang (Nested For Loop )

Algoritma yang termasuk pada jenis ini yaitu algoritma yang memiliki perulangan bersarang. Waktu eksekusi total sebuah statement yaitu waktu eksekusi statement dikalikan hasil kali dari banyaknya iterasi semua loop yang ada didalamnya. Contoh:

for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

a[i,j]=0;

Dari pseudocode diatas a[i,j] akan dieksekusi sebanyak (m x n) kali sehingga T(n) termasuk dalam T(n) = O(� ).


(32)

c. Statement Yang Berurutan (Consecutive Statement)

Untuk statement yang berurutan, waktu eksekusinya adalah jumlah dari masing-masing statement. Contoh:

for(int k=0;k<10;k++)

x[k]=0;

for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

a[i,j]=0;

Jadi T(n)=T1(n)+T2(n)+T3(n) = O(� )

2.10 Pengertian ASCII

Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal

2.10.1 Tabel Karakter ASCII

Tabel berikut berisi karakter-karakter ASCII. Dalam sistem operasi Windows dan MS-DOS, pengguna dapat menggunakan karakter ASCII dengan menekan tombol Alt+[nomor nilai ANSI (desimal)]. Sebagai contoh, tekan kombinasi tombol Alt+87 untuk karakter huruf latin "W" kapital. Tabel kode ascii [13] dapat dilihat pada gambar 2.3.


(33)

Gambar 2.3 Table ascii

2.11 Data Flow Diagram (DFD)

Data Flow Diagram (DFD) merupakan diagram yang mengunakan notasi-notasi atau simbol-simbol untuk mengambarkan sistem jaringan kerja antar fungsi-fungsi yang berhubungan satu sama lain dengan aliran dan penyimpanan data (Jogiyanto, 2005).

DFD sering digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau dimana data tersebut akan disimpan. Salah satu keuntungan menggunakan diagram aliran data adalah


(34)

memudahkan pemakai (user) yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan.

DFD terdiri dari diagram konteks (context diagram) dan diagram rinci (level diagram). Diagram konteks adalah diagram yang terdiri dari suatu proses dan menggambarkan ruang lingkup suatu sistem. Diagram konteks merupakan level tertinggi dari DFD yang menggambarkan seluruh input ke sistem atau output dari sistem. Sistem dibatasi oleh boundary (dapat digambarkan dengan garis putus). Dalam diagram konteks biasanya hanya ada satu proses. Tidak boleh ada store dalam diagram konteks. Diagram rinci adalah diagram yang menguraikan proses apa yang ada dalam diagram level di atasnya.

Adapun yang digunakan dalam DFD adalah: 1. Entitas Eksternal (External Entity)

Entitas Eksternal (entity) di lingkungan luar sistem yang dapat berupa orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberikan input atau menerima output dari sistem. Suatu kesatuan luar dapat disimbolkan dengan suatu notasi persegi panjang.

Gambar 2.4 Entitas 2. Aliran data

Aliran data di DFD diberikan simbol suatu panah. Aliran data ini mengalir diantara proses (process), simpanan data (data store) dan kesatuan luar (External entity). Aliran data ini menunjukkan arus dari data yang dapat berupa masukan untuk sistem atau hasil dari proses sistem.


(35)

Gambar 2.5 Aliran Data 3. Proses

Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu aliran data yang masuk ke dalam proses untuk dihasilkan aliran data yang akan keluar dari proses. Suatu proses dapat disimbolkan dengan notasi lingkaran.

Gambar 2.6 Proses

4. Penyimpan Data (Data Store)

Penyimpan data (data store) merupakan penyimpan data yang dapat berupa: a. Suatu file atau basis data di sistem komputer.

b. Suatu arsip atau catatan manual. c. Suatu tabel acuan manual. d. Suatu agenda atau buku.

Simpanan data di DFD dapat disimbolkan dengan sepasang garis horizontal paralel yang ujungnya tidak ditutup.


(36)

27 3.1Analisis Masalah

Beberapa algoritma yang termasuk dalam metode fingerprinting yaitu Algoritma Rabin Karp, Algoritma Winnowing dan Algoritma Manber. Dalam penelitian ini akan dilakukan analisis performansi dari dua buah algoritma yang termasuk dalam metode fingerprinting yaitu Algoritma Winnowing dan Algoritma Manber yang dapat diterapkan untuk mendeteksi similaritas pada dokumen teks. Analisis performansi dilakukan dengan tujuan mendapatkan informasi dari kedua algoritma yaitu berupa informasi kecepatan, ketepatan, dan jumlah langkah dari Algoritma Winnowing dan Algoritma Manber dalam penerapannya pada sebuah sistem.

Dari sedikitnya penelitian dalam lingkup analisis performansi kedua algoritma ini maka menjadi dasar penelitian ini. Terdapat penelitian sebelumnya mengenai

perbandingan pendekatan kedua algoritma ini yang berjudul “Perbandingan

Pendekatan Deteksi Plagiarisme Dokumen Dalam Bahasa Inggris” oleh Ana Kurniawati dan I Wayan Simri Wicaksana dalam jurnalnya yang menganalisis perbandingan dan penerapannya pada dokumen berbahasa inggris. Berdasarkan hasil penelitian tersebut, disimpulkan bahwa algoritma winnowing lebih baik dari algoritma manber karena memberikan jaminan terdeteksinya dokumen sama [2]. Penerapan penelitian tersebut dilakukan pada sistem yang memproses teks berbahasa inggris. Berdasarkan hal tersebut maka akan dilakukan analisis yang nantinya akan diterapkan pada dokumen berbahasa Indonesia.

Penelitian lainnya dari kedua algoritma yaitu hanya berfokus pada implementasi algoritma sehingga informasi dari parameter-parameter yang digunakan tidak memiliki standar optimal untuk diterapkan pada rumus yang dipakai oleh kedua algoritma tersebut. Ketika ditemukan jumlah parameter optimal diharapkan dapat


(37)

mendapatkan akurasi yang lebih tepat dalam mendeteksi similaritas dari dokumen yang dibandingkan. Parameter yang perlu diuji yaitu jumlah gram, jumlah window, basis bilangan prima yang di gunakan dan proses pemilihan nilai hash yang berpengaruh pada persentasi kemiripan dari dokumen yang dibandingkan.

3.2Analisis Input dan Output

Analisis Input dan Output sistem menjelaskan tentang bagaimana sistem menerima inputan dan menghasilkan output dari proses yang telah dilakukan. Berikut ini merupakan analisis input dan output dari sistem yang akan dibuat.

3.2.1 Analisis Input dan Output Algoritma Winnowing

Algoritma Winnowing memiliki input dan output data sebagai berikut.

3.2.1.1Analisis Input

Pada penerapan Algoritma Winnowing dalam sebuah sistem membutuhkan beberapa inputan meliputi:

1. Dokumen Teks berektensi .txt 2. Jumlah Karakter Minimal 100 Huruf

3. Jumlah Gram = 5 , diambil berdasarkan jumlah penelitian sebelumnya [4]. 4. Jumlah Window = 4, diambil berdasarkan jumlah penelitian sebelumnya [4].

3.2.1.2Analisis Output

Output yang dihasilkan dari sistem berupa:

1. Persentasi Kemiripan dari dokumen yang dibandingkan 2. Informasi Waktu Proses

3.2.2 Analisis Input dan Output Algoritma Manber


(38)

3.2.2.1Analisis Input

Pada penerapan Algoritma Manber dalam sebuah sistem membutuhkan beberapa inputan meliputi:

1. Dokumen Teks berektensi .txt 2. Jumlah Karakter Minimal 100 Huruf

3. Jumlah Gram = 5, diambil berdasarkan jumlah penelitian sebelumnya [2]. 4. Jumlah Ukuran P = 4, diambil berdasarkan jumlah penelitian sebelumnya [2].

3.2.2.2Analisis Output

Output yang dihasilkan dari sistem berupa:

1. Persentasi Kemiripan dari dokumen yang dibandingkan 2. Informasi Waktu Proses

3.3Analisis Algoritma

Analisis algoritma yaitu tahapan analisis algoritma apa saja yang akan dianalisis dalam penelitian ini yaitu :

1. Analisis Algoritma Winnowing 2. Analisis Algoritma Manber

3.3.1 Analisis Algoritma Winnowing


(39)

Gambar 3.1 Langkah Algoritma Winnowing

Gambar 3.1 menjelaskan tahapan dari Algoritma Winnowing sampai pada proses menghasilkan nilai hash. Tahapan tersebut dilakukan pada dokumen pertama, setelah itu dilakukan tahapan yang sama untuk dokumen kedua sehingga menghasilkan dua nilai-nilai fingerprints dari kedua dokumen. Setelah itu proses dilanjutkan dengan perhitungan persentasi kemiripan dari kedua dokumen berdasarkan nilai fingerprints yang telah diperoleh. Persentasi kemiripan dihitung menggunakan metode jaccard similarity coefficient.

Input dari proses document fingerprinting adalah file teks. Kemudian output-nya berupa sekumpulan nilai hash yang disebut fingerprint. Fingerprint inilah yang akan dijadikan dasar pembanding antara file-file teks yang telah dimasukkan .

Algoritma Winnowing menghapus seluruh karakter-karakter yang tidak dibutuhkan seperti: tanda baca, spasi dan juga karakter lain, sehingga hanya


(40)

karakter-karakter yang berupa huruf yang akan diproses lebih lanjut . Berikut merupakan contoh dari alur proses Algoritma Winnowing:

1. Langkah 1:

Contoh kalimat : Hari Minggu sangat cerah!!!!.

Langkah awal pada Algoritma Winnowing yaitu melakukan lowercase pada setiap karakter dan membuang karakter-karakter yang tidak dibutuhkan seperti spasi dan symbol, sehingga teks menjadi bersih dari symbol-simbol selain huruf [a-z]. maka kalimat diatas akan menjadi

hariminggusangatcerah

2. Langkah 2:

Langkah berikutnya yaitu pembagian kata menurut gram yang diinputkan oleh pengguna. Sebagai contoh nilai gram=5. Maka teks akan terbagi menjadi :

harim mingg gusan ngatc cerah arimi inggu usang gatce

rimin nggus sanga atcer iming ggusa angat tcera

3. Langkah 3:

Langkah berikutnya setelah dibagi menurut gram yaitu dilakukan proses Rolling Hash untuk menghasilkan nilai hash dari setiap gram yang dibentuk. Proses Rolling Hash menggunakan persamaan (2.1) dan persamaan (2.2).

Contoh kata “harim


(41)

h=104, a=97, r=114, i=105, m=109 (nilai ascii karakter) 104*34 + 97*33 + 114*32 + 105*3 + 109

8424 + 2619 + 1026 + 315 + 109 = 12493

Dengan menggunakan rumus tersebut maka dapat dihasilkan nilai-nilai hash dari proses pembentukan gram sebelumnya

12493, 12312, 13475, 12826, 13066, 12828, 13084, 12619, 12938, 13888, 13330, 12161, 13011, 12404, 12297, 13417, 12167

4. Langkah 4:

Setelah mendapatkan nilai hash dari proses Rolling Hash maka langkah berikutnya adalah membagi nilai-nilai hash tersebut menurut window, nilai window dinputkan oleh pengguna sebagai contoh nilai window = 4. Pemilihan window hampir sama seperti pembentukan gram. Maka akan didapatkan window sebagai berikut:

{ 12493 12312 13475 12826 }, { 12312 13475 12826 13066 } { 13475 12826 13066 12828 }, { 12826 13066 12828 13084 } { 13066 12828 13084 12619 }, { 12828 13084 12619 12938 } { 13084 12619 12938 13888 }, { 12619 12938 13888 13330 } { 12938 13888 13330 12161 }, { 13888 13330 12161 13011 } { 13330 12161 13011 12404 }, { 12161 13011 12404 12297 } { 13011 12404 12297 13417 }, { 12404 12297 13417 12167 }

5. Langkah 5:

Langkah berikutnya yaitu memilih nilai terkecil dari setiap window untuk dijadikan fingerprints.


(42)

{ 12493 12312 13475 12826 }, { 12312 13475 12826 13066 } { 13475 12826 13066 12828 }, { 12826 13066 12828 13084 } { 13066 12828 13084 12619 }, { 12828 13084 12619 12938 } { 13084 12619 12938 13888 }, { 12619 12938 13888 13330 } { 12938 13888 13330 12161 }, { 13888 13330 12161 13011 } { 13330 12161 13011 12404 }, { 12161 13011 12404 12297 } { 13011 12404 12297 13417 }, { 12404 12297 13417 12167 }

Dari hasil pemilihan nilai terkecil dari setiap window maka didapatkan nilai fingerprints yaitu

12312, 12826, 12619, 12161, 12297,12167

Setelah itu dilakukan penambahan posisi dari fingerprints menjadi:

[12312, 1], [12826, 3], [12619, 8], [12161, 12], [12297, 15], [12167, 17]

6. Langkah 6:

Langkah berikutnya yaitu perhitungan persentasi kemiripan menggunakan jaccard’s similarity coefficient dengan rumus (2.3)

Sebagai contoh untuk mengetahui persentasi kesamaan dari dua dokumen sebagai berikut:

a. Dokumen A berisi kalimat : Hari minggu sangat cerah !!! b. Dokumen B berisi kalimat : Hari minggu mendung

Menggunakan proses Rolling hash dan pemilihan window didapat hasil fingerprints Dokumen A : 12312, 12826, 12619, 12161, 12297,12167


(43)

Dokumen B menghasilkan nilai hash dengan dilakukan proses yang sama seperti proses Dokumen A sehingga didapatkan hasil fingerprints 12312, 12826, 12605, 12512 . Berdasarkan rumus jaccard similarity coefficient maka dapat dilakukan perhitungan berikut ini berdasarkan hasil dari fingerprints Dokumen A dan B:

| | = 12312, 12826

| | = 12312, 12826, 12619, 12161, 12297,12167, 12605, 12512 , = (2/8)*100 = 25%

Jadi total persentasi kemiripan dari Dokumen A dan B yaitu sebesar 25%

3.3.1.1Analisis Kompleksitas Algoritma Winnowing

Perhitungan kompleksitas waktu asimptotik Algoritma Winnowing dapat dihitung dengan menelusuri setiap langkah algoritma winnowing pada pseudocode pada tabel 3.1

Table 3.1 Pseudocode Winnowing

No Algoritma Jumlah Eksekusi

1 int: gram 1

2 array: tampung 1

3 for (length = 0; length < value.Length; length++) do n

4 if (length == gram) then 1

5 for (start = 0; start <= value.Length - length; start++) do n x n 7 substring = value.Substring(start, length) n x n

8 tampung.Add(substring) 1

9 endfor 10 endif 11 endfor


(44)

menurut gram yang diinputkan}

13 {Proses selanjutnya perhitungan nilai hash}

14 array: tampungnilaihash 1

15 for (k = 0; k < tampung.Count; k++) do n

16 double : hitung 1

17 Jumlah=0 1

18 d = tampung[k] n

19 for (l = 0; l < gram; l++) do n x n

20 s = d.Substring(l, 1) n

21 w = s 1

22 asciiCodee = (int)w 1

23 hitung = asciiCodee * (Math.Pow(3, (gram - (l + 1)))) n x n

24 jumlah = jumlah + hitung; 1

25 endfor

26 tampungnilaihash.Add(jumlah) 1

27 endfor

28 {Mendapatkan hasil hashing dari setiap gram}

29 {tahap selanjutnya pembagian window dari hasil hashing}

30 array : tampungwindow 1

31 for (m = 0; m < (tampungnilaihash.Count) - (window - 1); m++) do

n

32 max = 100000 1

33 gabungin = “” 1

34 for (n = 0; n < window; n++) do n x n

35 bts2 = n + m 1

36 window1 = tampungnilaihash[bts2] n


(45)

38 if (min < max) then 1

39 max = min 1

40 endif

41 tampungwindow.Add(window1) 1

42 endfor

43 tampungfingerprints.Add(max) 1

44 endfor

Algoritma Winnowing terdiri dari banyak perulangan for atau lebih dikenal sebagai nested for loop. Perhitungan jumlah T(n) pada nested for loop memiliki dua aturan, yaitu :

1. Dianalisis dari loop terdalam kemudian keluar.

2. Waktu eksekusi total sebuah statement adalah waktu eksekusi statement tersebut dikalikan hasil kali dari banyaknya iterasi semua loop yang ada di luarnya.

Dari perhitungan pada tabel 3.1 didapatkan hasil kompleksitas waktu T(n) = 5�2+ 7n + 18 dan termasuk pada kelompok algoritma kuadratik sesuai dengan aturan nested for loop dengan kompleksitas waktu asimptotik yaitu T(n) = �2.

Perhitungan waktu yang dibutuhkan sesuai kerja mesin yaitu jika misalkan mesin dapat memproses 1 kali eksekusi membutuhkan waktu 10−6 detik, maka untuk memasukan data jika T(n) = 1000, maka T(n) = (n-1) menjadi T(1000) = (1000 – 1) x 10−6 = 0,000999 detik untuk n=1000.

Tabel 3.2 Pertumbuhan n terhadap T(n) Winnowing

n T(n) = 5�2 + 7n + 18 �2

10 750 100

100 52.500 10.000

1000 5.025.000 1.000.000


(46)

Dari tabel 3.2 dapat dikatakan bahwa T(n) tumbuh sama seperti �2 ketika n bertambah.

3.3.2 Analisis Algoritma Manber

Tahapan pada Algoritma Manber hampir sama dengan Algoritma Winnowing yang membedakan adalah proses pemilihan fingerprints dari hasil perhitungan Rolling Hash. Contoh tahapan Algoritma Manber dapat dilihat pada gambar 3.2.

Gambar 3.2 Tahapan Algoritma Manber

Gambar 3.2 menjelaskan tahapan dari Algoritma Manber sampai pada proses menghasilkan nilai hash. Tahapan tersebut dilakukan pada dokumen pertama, setelah itu dilakukan tahapan yang sama untuk dokumen kedua sehingga menghasilkan dua nilai-nilai fingerprints dari kedua dokumen. Setelah itu proses dilanjutkan dengan perhitungan persentasi kemiripan dari kedua dokumen berdasarkan nilai fingerprints


(47)

yang telah diperoleh. Persentasi kemiripan dihitung menggunakan metode jaccard similarity coefficient. Berikut ini merupakan contoh dari tahapan Algoritma Manber:

1. Langkah 1:

Contoh kalimat : Hari Minggu sangat cerah!!!!.

Langkah awal pada Algoritma Winnowing yaitu melakukan lowercase pada setiap karakter dan membuang karakter-karakter yang tidak dibutuhkan seperti spasi dan symbol, sehingga teks hanya menjadi bersih dari symbol-simbol selain huruf [a-z]. maka kalimat diatas akan menjadi

hariminggusangatcerah

2. Langkah 2:

Langkah berikutnya yaitu pembagian kata menurut gram yang diinputkan oleh pengguna. Sebagai contoh nilai gram=5. Maka teks akan terbagi menjadi :

harim mingg gusan ngatc cerah arimi inggu usang gatce

rimin nggus sanga atcer iming ggusa angat tcera

3. Langkah 3:

Langkah berikutnya setelah dibagi menurut gram yaitu dilakukan proses Rolling Hash untuk menghasilkan nilai hash dari setiap gram yang dibentuk. Proses Rolling Hash menggunakan persamaan (2.1) dan persamaan (2.2).

Contoh kata “harim

Sesuai persamaan (2.1) nilai hash yang diperoleh yaitu: h=104, a=97, r=114, i=105, m=109 (nilai ascii karakter)


(48)

104*34 + 97*33 + 114*32 + 105*3 + 109 8424 + 2619 + 1026 + 315 + 109 = 12493

Dengan menggunakan rumus tersebut maka dapat dihasilkan nilai-nilai hash dari proses pembentukan gram sebelumnya

12493, 12312, 13475, 12826, 13066, 12828, 13084, 12619, 12938, 13888, 13330, 12161, 13011, 12404, 12297, 13417, 12167

4. Langkah 4:

Langkah berikutnya pemilihan nilai hash yang memenuhi kriteria H mod P=0, ukuran P merupakan inputan pengguna. Sebagai contoh nilai P=5 sehingga dari hasil nilai hash sebelumnya dapat diambil nilai fingerprints yang memenuhi kriteria H mod P=0 yaitu:

13475, 13330 5. Langkah 5:

Langkah berikutnya yaitu perhitungan persentasi kemiripan menggunakan jaccard’s similarity coefficient dengan rumus:

, =| |

| | × 100

Sebagai contoh untuk mengetahui persentasi kesamaan dari dua dokumen sebagai berikut:

Dokumen A berisi kalimat : Hari minggu sangat cerah !!! Dokumen B berisi kalimat : Hari minggu mendung


(49)

Dokumen A : 13475, 13330 Dokumen B : 13475,12605

Dokumen B menghasilkan nilai hash dengan dilakukan proses yang sama seperti proses Dokumen A sehingga didapatkan hasil fingerprints 12312, 12826, 12605, 12512 . Berdasarkan rumus jaccard similarity coefficient sebelumnya maka dapat dilakukan perhitungan berikut ini berdasarkan hasil dari fingerprints Dokumen A dan B:

| | = 13475

| | = 13475,13330,12605 , = (1/3)*100 = 33,33%

Jadi total persentasi kemiripan dari Dokumen A dan B yaitu sebesar 33,33%

3.3.2.1Analisis Kompleksitas Manber

Perhitungan kompleksitas waktu asimptotik Algoritma Manber dapat dihitung dengan menelusuri setiap langkah algoritma winnowing pada pseudocode metode ini.

Tabel 3.3 Pseudocode Manber

No Algoritma Jumlah Eksekusi

1 int: gram 1

2 array: tampung 1

3 for (length = 0; length < value.Length; length++) do n

4 if (length == gram) then 1

5 for (start = 0; start <= value.Length - length; start++) do n x n 7 substring = value.Substring(start, length) n x n

8 tampung.Add(substring) 1

9 endfor 10 endif


(50)

11 endfor

12 {Didapatkan hasil proses pertama berupa pembagian kata menurut gram yang diinputkan}

13 {Proses selanjutnya perhitungan nilai hash}

14 array: tampungnilaihash 1

15 for (k = 0; k < tampung.Count; k++) do n

16 double : hitung 1

17 Jumlah=0 1

18 d = tampung[k] n

19 for (l = 0; l < gram; l++) do n x n

20 s = d.Substring(l, 1) n

21 w = s 1

22 asciiCodee = (int)w 1

23 hitung = asciiCodee * (Math.Pow(3, (gram - (l + 1)))) n x n

24 jumlah = jumlah + hitung; 1

25 endfor

26 tampungnilaihash.Add(jumlah) 1

27 endfor

28 {Mendapatkan hasil hashing dari setiap gram} 29 {tahap selanjutnya pemilihan nilai fingerprints}

30 array: tampungfingerprints 1

31 for (n = 0; n < tampungnilaihash.Count; n++) do n

32 mod = tampungnilaihash[n] % window n

33 if(mod == 0) 1

34 tampungfingerprints.Add(tampungnilaihash[n]) n 35 endif


(51)

Pseudocode Manber terdiri dari banyak perulangan for atau lebih dikenal sebagai nested for loop. Perhitungan jumlah T(n) pada nested for loop memiliki dua aturan, yaitu :

1. Dianalisis dari loop terdalam kemudian keluar.

2. Waktu eksekusi total sebuah statement adalah waktu eksekusi statement tersebut dikalikan hasil kali dari banyaknya iterasi semua loop yang ada di luarnya

Dari perhitungan pada tabel didapatkan hasil kompleksitas waktu T(n) = 4�2+ 7n + 13 dan termasuk pada kelompok algoritma kuadratik sesuai dengan aturan nested for loop dengan kompleksitas waktu asimptotik yaitu T(n) = �2.

Perhitungan waktu yang dibutuhkan sesuai kerja mesin yaitu jika misalkan mesin dapat memproses 1 kali eksekusi membutuhkan waktu 10−6 detik, maka untuk memasukan data jika T(n) = 1000, maka T(n) = (n-1) menjadi T(1000) = (1000 – 1) x 10−6 = 0,000999 detik untuk n=1000.

Tabel 3.4 Pertumbuhan n terhadap T(n) Manber

n T(n) = 4�2 + 7n + 13 �2

10 600 100

100 42.000 10.000

1000 4.020.000 1.000.000

10.000 400.200.000 100.000.000

Dari tabel 3.4 dapat dikatakan bahwa T(n) tumbuh sama seperti �2 ketika n bertambah. Berdasarkan analisis kompleksitas yang telah dilakukan, kedua algoritma termasuk kedalam algoritma yang sama.


(52)

3.4Analisis Kebutuhan Perangkat Lunak

Analisis kebutuhan perangkat lunak dilakukan bertujuan untuk mensimulasikan kedua algoritma kedalam sebuah perangkat lunak. Analisis kebutuhan perangkat lunak terbagi menjadi dua bagian yaitu:

1. Analisis Kebutuhan Non-Fungsional 2. Analisis Kebutuhan Fungsional

3.4.1 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non fungsional adalah langkah dimana seorang pembangun perangkat lunak (software developer) menganalisis sumber daya yang akan digunakan dan menggunakan perangkat lunak yang dibangun. Perangkat keras dan perangkat lunak yang dimiliki harus sesuai dengan kebutuhan sehingga dapat ditentukan kompabilitas aplikasi yang dibangun terhadap sumber daya yang ada.

Analisis kebutuhan non fungsional yang dilakukan dibagi dalam tiga tahap, yaitu:

1. Analisis perangkat keras (hardware). 2. Analisis perangkat lunak (software). 3. Analisis pengguna (user)

3.4.1.1Analisis Perangkat Keras

Spesifikasi perangkat keras minimum yang butuhkan untuk menjalankan sistem Deteksi similaritas dokumen dapat dilihat pada tabel 3.5.

Tabel 3.5 Spesifikasi Perangkat Keras

No Perangkat Keras Spesifikasi

1 Prosesor Kecepatan Minimal 1.8 GHz

2 Monitor Monitor 14.1‟‟


(53)

3.4.1.2Analisis Perangkat Lunak

Komponen perangkat lunak pendukung yang dibutuhkan untuk menjalankan sistem Deteksi Similaritas Dokumen ini, dapat dilihat pada table 3.6

Tabel 3.6 Spesifikasi Perangkat Lunak

No Perangkat Lunak

1 Sistem operasi Windows XP/ 7 2 Visual Studio 2010

3 Notepad++ 4 Wampserver

5 Mysql

3.4.1.3Analisis Perangkat Pikir

Analisis kebutuhan perangkat pikir merupakan uraian mengenai siapa saja yang akan menggunakan sistem dan terlibat dalam pengolahan data beserta karakteristiknya sehingga dapat diketahui tingkat pengalaman dan pemahaman pengguna terhadap sistem. Adapun karakteristik dari pengguna adalah sebagai berikut:

1. Pengguna dapat membaca tulisan.

2. Pengguna minimal mampu menggunakan keyboard dan mouse sebagai untuk berinteraksi dengan sistem.

3. Pengguna sudah terbiasa menggunakan komputer.

3.4.2 Analisis Kebutuhan Fungsional

Spesifikasi kebutuhan fungsional adalah spesifikasi tentang hal-hal yang akan dilakukan sistem ketika diimplementasikan. Analisis kebutuhan ini diperlukan untuk menentukan keluaran yang akan dihasilkan sistem, masukan yang diperlukan sistem, lingkup proses yang digunakan untuk mengolah masukan menjadi keluaran.


(54)

3.4.2.1Diagram Konteks

Diagram konteks adalah diagram yang menggambarkan input , process dan output secara umum yang terjadi pada sistem perangkat lunak yang akan di bangun . Berikut Diagram konteks dari Sistem Deteksi Kesamaan Dokumen:

PENGGUNA Sistem Deteksi

Kesamaan Dokumen Input dokumen

Input Jumlah Gram Input Jumlah Window

Info Persentasi Kemiripan Info Total Waktu Proses Info Penggunaan Memory

Gambar 3.3 Diagram Konteks

3.4.2.2Data Flow Diagram

Data Flow Diagram merupakan suatu media yang digunakan untuk menggambarkan aliran data yang mengalir pada suatu sistem informasi. Dalam Data Flow Diagram (DFD) terdiri dari entitas luar, aliran data, proses, dan penyimpanan data.

3.4.2.2.1 Data Flow Diagram Level 1

Berikut ini adalah Data Flow Diagram ( DFD) Level 1 dari Sistem Deteksi Kesamaan Dokumen ditunjukan pada gambar 3.4.


(55)

2 Pendeteksian Algoritma Manber

Info Persentasi Kemiripan Info Total Waktu Proses Info Penggunaan Memory PENGGUNA

1 Pendeteksian

Algoritma Winnowing

Input dokumen 1 Input dokumen 2 Input Jumlah Gram

Input Jumlah P Input dokumen 1

Input dokumen 2 Input Jumlah Gram Input Jumlah Window

Info Persentasi Kemiripan Info Total Waktu Proses Info Penggunaan Memory

3 Cek Histori

Gambar 3.4 DFD Level 1

3.4.2.2.2 Data Flow Diagram Level 2 Pendeteksian Algoritma Winnowing Berikut ini adalah Data Flow Diagram ( DFD) Level 2 proses pendeteksian algoritma winnowing dari Sistem Deteksi Kesamaan Dokumen ditunjukan pada gambar 3.5.

PENGGUNA

Tb_dokumen

1.1 Input Teks

Input dokumen 1 Input dokumen 2 Input Jumlah Gram Input Jumlah window

Info Persentasi Kemiripan Info Total Waktu Proses

Input id_proses Input nama_dokumen Input gram Input window Input persentasi Input waktu_proses 1.3 Hitung Kemiripan teks Algoritma Winnowing Input id_dok Input nama_dok Input tanggal Input gram Input window Input file Input fingerprints histori 1.2 Preprocesing tb_stopword Data_stopword


(56)

Ket : tb_dokumen dan histori merupakan tabel yang terdapat dalam database data_dokumen

3.4.2.2.3 Data Flow Diagram Level 2 Pendeteksian Algoritma Manber

Berikut ini adalah Data Flow Diagram ( DFD) Level 2 proses pendeteksian algoritma manber dari Sistem Deteksi Kesamaan Dokumen ditunjukan pada gambar 3.6.

PENGGUNA

Tb_dokumen

2.1 Input Teks

Input dokumen 1 Input dokumen 2 Input Jumlah Gram

Input Ukuran p

Info Persentasi Kemiripan Info Total Waktu Proses

Input id_proses Input nama_dokumen

Input gram Input jumlah p Input persentasi Input waktu_proses 2.3 Hitung Kemiripan teks Algoritma Manber Input id_dok Input nama_dok Input tanggal Input gram Input jumlah p

Input file Input fingerprints histori 2.2 Preprocesing tb_stopword Data_stopword

Gambar 3.6 DFD Level 2 Proses Pendeteksian Manber

Ket : tb_dokumen dan histori merupakan tabel yang terdapat dalam database data_dokumen


(57)

3.4.2.2.4 Data Flow Diagram Level 2 Proses Cek Histori

Berikut ini adalah Data Flow Diagram ( DFD) Level 2 proses cek histori dari Sistem Deteksi Kesamaan Dokumen ditunjukan pada gambar 3.7.

PENGGUNA

Tb_dokumen 3.2

Lihat Upload Dokumen

3.1 Download Dokumen Info

Dokumen Yang pernah

diupload

histori 3.3 Lihat Histori Perhitungan Dokumen

Info dokumen yang pernah dibandingkan

Gambar 3.7 DFD Level 2 Proses Cek Histori

Ket : tb_dokumen dan histori merupakan tabel yang terdapat dalam database data_dokumen

3.4.2.3 Spesifikasi Proses

Spesifikasi proses merupakan deskripsi dari setiap elemen proses yang terdapat dalam program, yang meliputi nama proses, input, output dan keterangan dari proses. Berikut ini spesifikasi proses dari Sistem Deteksi Kesamaan Dokumen ditunjukan pada tabel berikut ini

3.4.2.3.1 Spesifikasi Proses Input Teks

Spesifikasi Proses pada proses 1.1 Input Teks dapat dilihat pada table 3.7. Tabel 3.7 Spesifikasi Proses Input Teks


(58)

1 No Proses 1.1

Nama Input Teks

Source Pengguna

Input Input Dokumen 1, Input Dokumen 2, Input Jumlah Gram, Input Jumlah Window Output Info Persentasi Kemiripan

Info Total Waktu Proses

Logika Proses 1. Pengguna Melakukan input dokumen teks atau input manual teks pada form yang disediakan sistem

2. Pengguna melakukan input jumlah gram dan window

3. Sistem menampung inputan dan menyimpan info ke tabel tb_dokumen dalam database data_dokumen

3.4.2.3.2 Spesifikasi Proses Preprocessig

Spesifikasi Proses pada proses 1.2 Preprocessing dapat dilihat pada tabel 3.8 berikut:

Tabel 3.8 Spesifikasi Proses Preprocessing No Proses Keterangan

1 No Proses 1.2

Nama Preprocessing

Source 1.1 Input Teks Input Teks 1 , Teks 2

Output String yang sudah dilakukan proses penghapusan kata stopword dalam dokumen


(59)

2. Sistem menghapus kata-kata stopword yang bersumber dari database tabel tb_stopword

3. Sistem memberikan output berupa string yang bebas dari kata-kata stopword

3.4.2.3.3 Spesifikasi Proses Hitung Kemiripan

Spesifikasi Proses pada proses 1.3 Hitung Kemiripan Teks Algoritma Winnowing dapat dilihat pada table 3.9.

Tabel 3.9 Spesifikasi Proses Hitung Kemiripan

No Proses Keterangan

1 No Proses 1.3

Nama Hitung Kemiripan Teks Algoritma Winnowing Source 1.1 Input Teks

Input Dokumen 1, Dokumen 2, Jumlah Gram, Jumlah Window Output Info Persentasi Kemiripan

Info Total Waktu Proses Info Penggunaan Memory

Logika Proses 1. Pengguna Menginput dokumen teks atau input manual teks pada form yang disediakan sistem 2. Sistem menampung inputan dan menyimpan

info ke database dokumen

3. Sistem menghitung kemiripan dokumen menggunakan algoritma winnowing

4. Sistem menampilkan info perhitungan dan menyimpan data ke database dokumen


(60)

3.4.2.3.4 Spesifikasi Proses Download Dokumen

Spesifikasi Proses pada proses 1.2 Hitung Kemiripan Teks Algoritma Winnowing dapat dilihat pada table 3.10.

Tabel 3.10 Spesifikasi Proses Download Dokumen No Proses Keterangan

1 No Proses 3.1

Nama Download Dokumen

Source 3.2 Lihat Upload Dokumen, tb_dokumen

Input -

Output Isi File

Logika Proses 1. Pengguna memilih link download pada tabel dokumen

2. Sistem menampilkan file yang bersumber dari tb_dokumen dalam database data_dokumen

3.4.2.3.5 Spesifikasi Proses Lihat Upload Dokumen

Spesifikasi Proses pada proses 3.2 Lihat Upload Dokumen dapat dilihat pada table 3.11.

Tabel 3.11 Spesifikasi Proses Lihat Upload Dokumen No Proses Keterangan

1 No Proses 3.2

Nama Lihat Upload Dokumen

Source tb_dokumen

Input -

Output Dokumen yang pernah di upload Logika Proses 1. Pengguna memilih menu hitori


(61)

2. Sistem menampilkan data dokumen yang pernah diupload yangbbersumber dari tb_dokumen dalam database data_dokumen

3.4.2.3.6 Spesifikasi Proses Lihat Histori Perhitungan Dokumen

Spesifikasi Proses pada proses 3.3 Lihat Histori Perhitungan Dokumen dapat dilihat pada table 3.11.

Tabel 3.11 Spesifikasi Proses Lihat Histori Perhitungan Dokumen

No Proses Keterangan

1 No Proses 3.3

Nama Lihat Histori Perhitungan Dokumen Source Tabel histori

Input -

Output Info Dokumen yang pernah dilakukan perhitungan Logika Proses 1. Pengguna memilih menu histori

2. Sistem menampilkan data dokumen yang pernah dilakukan perhitungan yang bersumber dari tabel histori dalam database data_dokumen

3.4.3 Kamus Data

Kamus data dibuat berdasarkan aliran data yang ada pada DFD, dengan kamus data data-data yang mengalir dalam DFD didefinisikan secara detail. Kamus data pada sistem deteksi similaritas dokumen dapat dilihat pada tabel 3.12


(62)

Tabel 3.12 Tabel Kamus Data

No Kamus Keterangan

1 Nama Aliran Data Data Input Teks Digunakan Pada Proses 1.1, Proses 2.1

Deskripsi Berisi data input yang dilakukan pengguna Struktur Data nama_dok+ +gram+window

nama_dok gram window file [a-z|A-Z] [0-9] [0-9] [a-z|A-Z|0-9] 2 Nama Aliran Data Data Dokumen

Digunakan Pada Proses 1.1, Proses 2.1, Proses 3.1, Proses 3.2 Deskripsi Berisi data hasil input pengguna sebelum diolah Struktur Data Id_dok+nama_dok+gram+window+tanggal+file+

fingerprints Id_dok nama_dok gram window tanggal file fingerprints [0-9] [a-z] [0-9] [0-9] [0-9|-] [a-z|A-Z|0-9] [0-9|,]

3 Nama Aliran Data Data Hasil Perhitungan

Digunakan Pada Proses 1.3, Proses 2.3, Proses 3.3 Deskripsi Berisi data hasil perhitungan sistem

Struktur Data Id_proses+nama_dokumen+gram+window+ algoritma+persentasi+waktu_proses


(63)

id_proses nama_dokumen gram

window algoritma persentasi waktu_proses

[0-9] [a-z] [0-9] [0-9]

[Algoritma Winnowing|Algoritma Manber] [0-9|%]

[0-9]

3.4.4 Perancangan Sistem

Pada tahap ini digambarkan rancangan sistem yang akan dibangun sebelum dilakukan pengkodean ke dalam suatu bahasa pemrograman.

3.4.4.1Perancangan Struktur Menu

Perancangan struktur menu dilakukan sebagai panduan pengguna dalam memilih menu dan fungsi yang tersedia di halaman tampilan. Struktur menu pengguna dapat dilihat pada gambar 3.8.


(64)

3.4.4.2Perancangan Antar Muka

Perancangan antar muka Sistem Deteksi Similaritas Dokumen dilakukan agar membantu dalam proses implementasi antar muka sistem dari hasil analisis yang telah dilakukan.

3.4.4.2.1 Perancangan Antar Muka T01

Antar muka halaman pertama yaitu berisi menu-menu pilihan yang dapat dilihat pada gambar 3.9.

Gambar 3.9 Antar Muka Menu Utama 3.4.4.2.2 Perancangan Antar Muka T02

Antar Muka halaman kedua yaitu berisi form inputan teks pertama, teks kedua, jumlah gram, dan jumlah window yang diperlukan untuk perhitungan persentasi kemiripan menggunakan Algoritma Winnowing. Antar muka T02 dapat dilihat pada gambar 3.10.


(65)

Gambar 3.10 Antar Muka Winnowing

3.4.4.2.3 Perancangan Antar Muka T03

Antar Muka halaman kedua yaitu berisi form inputan teks pertama, teks kedua, jumlah gram, dan jumlah window yang diperlukan untuk perhitungan persentasi kemiripan menggunakan Algoritma Winnowing. Antar muka T02 dapat dilihat pada gambar 3.11.


(66)

Gambar 3.11 Antar Muka Manber

3.4.4.2.4 Perancangan Antar Muka T04

Antar muka T04 berisi tampilan antar muka riwayat hasil dari proses yang telah dilakukan. Halaman T04 menampilkan keseluruhan proses yang telah dilakukan berupa table dan keterangan-keterangan. Halaman TO4 memiliki 2 tab yaitu tab Histori Proses dan tab Histori Dokumen. Halaman T04 dapat dilihat pada gambar 3.12.


(67)

Gambar 3.12 Antar Muka Histori Tab 1

Tampilan berikutnya yaitu tampilan TO4 tab 2 yaitu berisi tentang dokumen apa saja yang pernah di unggah pengguna. Tampilan TO4 tab 2 dapat dilihat pada gambar 3.13.


(68)

3.4.4.2.5 Perancangan Antar Muka T05

Antar muka T05 merupakan antar muka yang menampilkan menu tentang yang berisi tentang teks tujuan dibuatnya aplikasi dan deskripsi aplikasi. Antar muka TO5 dapat dilihat pada gambar 3.14.

Gambar 3.14 Antar Muka Tentang Aplikasi 3.4.4.2.6 Perancangan Antar Muka T06

Antar muka T06 merupakan antar muka yang menampilkan menu bantuan yang berisi tentang cara penggunaan aplikasi. Antar muka TO6 dapat dilihat pada gambar 3.15.


(69)

Gambar 3.15 Antar Muka Bantuan 3.4.4.3Jaringan Semantik

Jaringan semantik menggambarkan keterkaitan antar halaman yang dibangun. Jaringan semantik sistem dapat dilihat pada gambar 3.16.


(70)

3.4.4.4Perancangan Basis Data

Perancangan basis data merupakan perancangan database yang meliputi struktur data dari suatu tabel dalam database. Tabel di bawah ini merupakan tabel beserta field dan data type yang digunakan dalam database dengan menggunakan MYSQL Database

3.4.4.4.1 Tabel tb_dokumen

Tabel tb_dokumen merupakan tabel untuk menampung data dokumen yang di upload oleh pengguna. Dapat dilihat pada tabel 3.13.

Tabel 3.13 Tabel tb_dokumen

Atribut Type Keterangan

Id_dok Int(10) Primary key dari tabel

nama_dok Varchar(30) Nama dari dokumen yang di upload tanggal DateTime Tanggal ketika pengguna upload

gram Int(10) Jumlah gram yang diinputkan window Int(10) Jumlah window yang diinputkan

file Varbinary(50000) Berisi file yang di upload pengguna fingerprints Varchar(10000) Nilai fingerprints dari proses

perhitungan dari dokumen yang diupload

3.4.4.4.2 Tabel histori

Tabel histori merupakan tabel untuk menampung data dokumen yang di upload oleh pengguna. Tabel histori dapat dilihat pada tabel 3.14.

Tabel 3.14 Tabel Histori


(71)

Id_proses Int(11) Primary key dari tabel

nama_dokumen Varchar(50) Nama dari dua dokumen yang telah dilakukan perhitungan

gram Int(10) Jumlah gram yang diinputkan window Int(10) Jumlah window yang diinputkan

algoritma Varchar(30) Nama algoritma yang dipilih ketika proses perbandingan dua dokumen persentasi Varchar(30) Nilai persentasi dari perbandingan dua

dokumen

waktu_proses Varchar(30) Total waktu proses ketika perbandingan dua dokumen berlangsung

3.4.4.4.3 Tabel Stopword

Tabel stopword merupakan tabel untuk menampung kata-kata yang masuk dalam kategori kata yang tidak memiliki makna namun sering digunakan (kata stopword). . tabel stopword dapat dilihat pada tabel 3.15.

Tabel 3.15 Tabel Stopword

Atribut Type Keterangan

Id_stopword Int(10) Primary key dari tabel stopword Varchar(30) Kata stopword

3.4.4.5Perancangan Prosedural

Perancangan prosedural adalah untuk menggambarkan rancangan prosedur yang ada pada pembuatan aplikasi ini. Terdapat dua prosedur yang dapat dilakukan pengguna yaitu prosedur input data dan prosedur cek histori .Perancangan prosedural dapat dilihat sebagai berikut:


(72)

1. Prosedur Input Data

Gambar 3.17 Prosedur Input Teks

2. Prosedur Cek Histori


(73)

(1)

85

BAB 5

KESIMPULAN

Pada bab ini berisikan kesimpulan dari hasil penelitian yang telah dilakukan serta saran untuk perbaikan dan pengembangan penelitian lebih lanjut.

5.1Kesimpulan

Berdasarkan hasil yang didapat dari penelitian secara keseluruhan, dapat ditarik kesimpulan sebagai berikut:

1. Dalam hal kecepatan Manber lebih baik dari Winnowing dikarenakan mmbutuhkan proses yang lebih sedikit.

2. Dalam hal ketepatan Winnowing lebih baik dari Manber dikarenakan Winnowing memilih nilai fingerprints dari nilai terkecil setiap window yang dibuat, sehingga pemilihan fingerprints dokumen diperoleh dari banyak perbandingan nilai dari nilai window-window yang beragam.

3. Telah dibuktikan pada tahapan analisis menggunakan notasi Big-O untuk ukuran n=10 terhadap T(n) = 5�2+ 7n + 18 Winnowing membutuhkan 750 langkah. Berbeda dengan Manber untuk ukuran n=10 terhadap T(n) = 4�2 + 7n + 13 membutuhkan 600 langkah. Sehingga dalam perbandingan jumlah langkah Winnowing lebih banyak langkahnya dari pada Manber.

4. Parameter yang diinputkan pengguna berupa gram, window, ukuran p mempengaruhi persentasi kemiripan karena nilai fingerprint tergantung pada proses pembagian gram, window dan ukuran p pada proses perhitungan yang dilakukan sistem.

5.2Saran


(2)

86

1. Sistem belum dapat menunjukan posisi dari karakter yang terbagi menjadi beberapa gram yang terdeteksi sama sehingga dibutuhkan pengembangan dalam tahap implementasi .

2. Sistem yang dibuat memiliki tujuan untuk keperluan analisis sehingga dokumen yang diproses yaitu masih dokumen yang berukuran kecil sehingga untuk pengembangan dapat dibuat agar sistem dapat memproses dokumen yang besar serta pemeriksaan acuan/referensi dalam sebuah dokumen

3. Sistem belum dapat membedakan sinonim dari sebuah kata, sehingga dibutuhkan sebuah metode yang dapat mendeteksi sinonim kata berbahasa Indonesia


(3)

BIODATA PENULIS

1. DATA PRIBADI

Nama : Bambang Imam Hermawan Jenis Kelamin : Laki-Laki

Tempat, Tanggal Lahir :Bandung, 04 Juli 1992

Agama : Islam

Kewarganegaraan : Indonesia Status : Belum Kawin Anak ke : 2 dari 3 bersaudara

Alamat : Bumi Cipacing Permai Jl.Kartika 15 Blok AB No.11 RT.07 RW.17 Kel.Cipacing Kec.Jatinangor Kab.Sumedang

No. Telepon : 085722181814

Email : bambangimam@rocketmail.com

2. RIWAYAT PENDIDIKAN

1. Sekolah Dasar : SDN Abdi Negara

Tahun Ajaran (1998-2004) 2. Sekolah Menengah Pertama : SMPN 3 Rancaekek

Tahun Ajaran (2004-2007) 3. Sekolah Menengah Atas : SMKN 6 Bandung

Tahun Ajaran (2007-2010) 4. Perguruan Tinggi : Universitas Komputer Indonesia

Tahun Ajaran (2010-2014) Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung, 24 Februari 2015


(4)

(5)

(6)