• Tidak ada hasil yang ditemukan

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

N/A
N/A
Protected

Academic year: 2021

Membagikan "Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP"

Copied!
134
0
0

Teks penuh

(1)

 

 

 

 

 

Hak cipta dan penggunaan kembali:

Lisensi ini mengizinkan setiap orang untuk menggubah,

memperbaiki, dan membuat ciptaan turunan bukan untuk

kepentingan komersial, selama anda mencantumkan nama

penulis dan melisensikan ciptaan turunan dengan syarat

yang serupa dengan ciptaan asli.

Copyright and reuse:

This license lets you remix, tweak, and build upon work

non-commercially, as long as you credit the origin creator

and license it on your new creations under the identical

terms.

(2)

IMPLEMENTASI LOCALITY SENSITIVE HASHING DAN

JACCARD INDEX PADA APLIKASI PENDETEKSI

KEMIRIPAN DOKUMEN

SKRIPSI

Diajukan sebagai salah satu syarat untuk memperoleh gelar

Sarjana Komputer (S.Kom.)

David Berlian

14110110010

PROGRAM STUDI INFORMATIKA

FAKULTAS TEKNIK DAN INFORMATIKA

UNIVERSITAS MULTIMEDIA NUSANTARA

TANGERANG

2018

(3)

HALAMAN PENGESAHAN SKRIPSI

IMPLEMENTASI LOCALITY SENSITIVE HASHING DAN JACCARD

INDEX PADA APLIKASI PENDETEKSI KEMIRIPAN DOKUMEN

Oleh

Nama

: David Berlian

NIM

: 14110110010

Prodi

: Informatika

Fakultas

: Teknik dan Informatika

Tangerang, 27 Juli 2018

Ketua Sidang

Adhi Kusnadi, S.T., M.Si.

Dosen Penguji

Alethea Suryadibrata, S.Kom., M.Eng.

Dosen Pembimbing

Dennis Gunawan, S.Kom., M.Sc.

Mengetahui,

Ketua Program Studi

Informatika

(4)

PERNYATAAN TIDAK MELAKUKAN PLAGIAT

Dengan ini saya:

Nama

: David Berlian

NIM

: 14110110010

Program Studi : Informatika

Fakultas

: Teknik dan Informatika

menyatakan bahwa skripsi yang berjudul “IMPLEMENTASI LOCALITY

SENSITIVE HASHING DAN JACCARD INDEX PADA APLIKASI

PENDETEKSI KEMIRIPAN DOKUMEN” ini adalah karya ilmiah saya sendiri,

bukan plagiat dari karya ilmiah yang ditulis oleh orang lain atau lembaga lain, dan

semua karya ilmiah orang lain atau lembaga lain yang dirujuk dalam skripsi ini

telah disebutkan sumber kutipannya serta dicantumkan di Daftar Pustaka. Jika di

kemudian hari terbukti ditemukan kecurangan/penyimpangan, baik dalam

pelaksanaan skripsi maupun dalam penulisan laporan skripsi, saya bersedia

menerima konsekuensi dinyatakan TIDAK LULUS untuk mata kuliah Skripsi yang

telah saya tempuh.

Tangerang, 27 Juli 2018

(5)

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMUAH

UNTUK KEPENTINGAN AKADEMIS

Sebagai sivitas akademik Universitas Multimedia Nusantara, saya yang bertanda

tangan di dibawah ini:

Nama

: David Berlian

NIM

: 14110110010

Program Studi

: Informatika

Fakultas

: Teknik dan Informatika

Jenis Karya

: Skripsi

Demi pengembangan ilmu pengetahuan, menyetujui dan memberi izin kepada

Universitas Multimedia Nusantara hak Bebas Royalti Non-eksklusif

(Non-exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul :

Implementasi Locality Sensitive Hashing dan Jaccard Index pada aplikasi

pendeteksi kemiripan dokumen

Beserta perangkat yang diperlukan.

Dengan Hak Bebas Royalti Non-eksklusif ini, pihak Universitas Multimedia

Nusantara berhak menyimpan, mengalihmedia atau format-kan, mengelola dalam

bentuk pangkalan data (database), merawat, dan mendistribusi dan menampilkan

atau mempublikasikan karya ilmiah saya di internet atau media lain untuk

kepentingan akademis, tanpa perlu meminta izin dari saya maupun memberikan

royalti kepada saya, selama tetap mencantumkan nama saya sebagai penulis ilmiah

tersebut.

Demikian pernyataan ini saya buat dengan sebenarnya untuk dipergunakan

sebagaimana mestinya.

Tangerang, 27 Juli 2018

(6)

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa karena atas berkat dan

rahmat-Nya, skripsi yang berjudul “IMPLEMENTASI LOCALITY SENSITIVE

HASHING DAN JACCARD INDEX PADA APLIKASI PENDETEKSI

KEMIRIPAN DOKUMEN” ini dapat diselesaikan dengan baik dan tepat waktu.

Skripsi merupakan salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada Universitas Multimedia Nusantara.

Penyelesaian skripsi ini juga dibantu oleh berbagai pihak, seperti

teman-teman, dan keluarga. Oleh karena itu, ucapan terima kasih yang sebesar-besarnya

diucapkan kepada:

1.

Dr. Ninok Leksono, selaku Rektor Universitas Multimedia Nusantara.

2.

Hira Meidia, B.Eng., Ph.D., selaku Dekan Fakultas Teknik dan Informatika

Universitas Multimedia Nusantara.

3.

Seng Hansun, S.Kom., M.Cs., selaku Ketua Program Studi Informatika

Universitas Multimedia Nusantara.

4.

Dennis Gunawan, S.Kom., M.Sc., selaku dosen pembimbing skripsi yang

telah dengan sabar mengajar penulis tata cara menulis karya ilmiah dengan

baik dan benar serta memotivasi penulis untuk menyelesaikan skripsi

dengan baik.

5.

Keluarga yang selalu senantiasa memotivasi dan mendukung penulisan dan

penyelesaian skripsi.

6.

Teman-teman seperjuangan dalam Group [DG] Skripsi 2014 yang terdiri

dari Bryan, Charles, Dhaniya, Edwin, Erwin, Hansen, Hendricksen, Hendro,

Ivan, Kenny, Rudiyanto, Sintya, Thomas, William, Willy dan Yudha yang

(7)

dengan kompak saling menyemangati, dan berbagi ilmu demi kelulusan

bersama.

7.

Teman – teman yang selalu membantu dan mendukung selama penulisan

skripsi.

8.

Seluruh pihak yang telah memberikan bantuan dalam penulisan skripsi ini.

Oleh sebab itu, kritik dan saran sangat diharapkan guna memperbaiki

kesalahan-kesalahan yang masih ada pada laporan ini. Semoga laporan skripsi ini

dapat memberikan manfaat bagi para pembaca.

Tangerang, 27 Juli 2018

(8)

IMPLEMENTASI LOCALITY SENSITIVE HASHING DAN

JACCARD INDEX PADA APLIKASI PENDETEKSI

KEMIRIPAN DOKUMEN

ABSTRAK

Perkembangan kecanggihan teknologi informasi berdampak pada

meningkatnya kebutuhan akan informasi. Penggunaan teknologi dalam melakukan

pencarian informasi membuat sebagian besar komputer memiliki banyak dokumen

yang mirip dikarenakan copy dan sharing dari dokumen antar pengguna internet.

Dokumen yang mirip dalam jumlah yang banyak akan membuat pengguna

kesulitan dalam mencari dokumen yang dibutuhkan. Oleh karena itu, dibuatlah

sebuah aplikasi pendeteksi kemiripan dokumen yang dapat digunakan dalam

mendeteksi kemiripan dokumen dengan dokumen yang lainnya. Aplikasi dibangun

dengan mengimplementasikan algoritma Locality Sensitive Hashing dan Jaccard

Index guna menghitung kemiripan berdasarkan kemiripan lexical. Proses pengujian

dilakukan dengan menggunakan 2000 dokumen dari 20 newsgroups dengan rata –

rata waktu yang dibutuhkan untuk melakukan pengujian adalah kurang lebih 5.8

detik. Berdasarkan data pengujian, nilai rata-rata F-Measure terbaik didapatkan

dengan nilai ambang batas 0.1 pada 0.3 threshold LSH, diperoleh nilai rata-rata

precision sebesar 0.271, nilai rata-rata recall sebesar 0.652, dan F-Measure sebesar

0.384, serta ditemukan bahwa semakin besar nilai permutasi maka nilai F-Measure

akan semakin membaik.

Kata Kunci : informasi, jaccard index, kemiripan dokumen, Locality Sensitive

(9)

IMPLEMENTATION OF LOCALITY SENSITIVE HASHING AND

JACCARD INDEX ON DOCUMENT SIMILARITY DETECTOR

APPLICATION

ABSTRACT

The need for information was increased due to the research and

development of the technology. The implementation of the technology looking for

the information made most of the computer have many identical documents because

they share the documents among the other internet users. The big number of the

similar documents made users have to look for the needed document. Because of it,

an application to detect the similarity of the documents was made to facilitate the

user to detect the similarity of one document to other documents. The application

was developed with the implementation of Locality Sensitive Hashing and Jaccard

Index algorithm to calculate the similarity based on lexical. The examination was

done using 2000 documents from 20 newsgroups with approximately used time to

examine the data around 5.8 seconds. Based on the examination result, the highest

average of F-Measure was obtained with 0.1 threshold and 0.3 LSH threshold,

resulted the average precision around 0.271, the average recall around 0.652, and

the F-Measure around 0.384. The better F-Measure value is obtained using greater

permutation.

Keywords : document similarity, information, jaccard index, locality sensitive

(10)

DAFTAR ISI

HALAMAN PENGESAHAN SKRIPSI ... ii

PERNYATAAN TIDAK MELAKUKAN PLAGIAT ... iii

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMUAH UNTUK

KEPENTINGAN AKADEMIS ... iv

KATA PENGANTAR ... v

ABSTRAK ... vii

ABSTRACT ... viii

DAFTAR ISI ... ix

DAFTAR TABEL ... x

DAFTAR GAMBAR ... xi

DAFTAR RUMUS ... xii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 3

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian ... 3

1.6 Sistematika Penulisan ... 3

BAB II LANDASAN TEORI ... 5

2.1 Jaccard Index ... 5

2.2 Shingling ... 6

2.3 Min-Wise Independent Permutation... 8

2.4 Locality Sensitive Hashing ... 11

2.5 F-Measure ... 14

BAB III METODOLOGI DAN PERANCANG APLIKASI... 15

3.1 Metodologi Penelitian ... 15

3.2 Perancangan Aplikasi ... 16

3.2.1

Perancangan Flowchart ... 16

3.2.2 Perancangan Antarmuka ... 25

BAB IV IMPLEMENTASI DAN UJI COBA ... 29

4.1 Spesifikasi Perangkat ... 29

4.2 Implementasi Aplikasi ... 29

4.3 Uji Coba ... 48

BAB V SIMPULAN DAN SARAN ... 66

5.1 Simpulan ... 66

5.2 Saran ... 66

DAFTAR PUSTAKA ... 68

(11)

DAFTAR TABEL

Tabel 2.1 Contoh Min-Wise ... 8

Tabel 2.2 Singature Matrix ... 10

Tabel 2.3 Signature Matrix 2 ... 11

Tabel 4.1 Tabel Perhitungan Signature Matrix ... 42

Tabel 4.1 Tabel Perhitungan Signature Matrix (Lanjutan) ... 43

Tabel 4.2 Signature Matrix ... 44

Tabel 4.3 Signature Matrix ... 47

Tabel 4.4 20Newsgroups dataset ... 48

Tabel 4.5 Perhitungan Precision dan Recall ... 50

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...51

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...52

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...53

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...54

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...55

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...56

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...57

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...58

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...59

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...60

Tabel 4.5 Perhitungan Precision dan Recall (Lanjutan) ...61

Tabel 4.6 Rata-rata Precision dan Recall pada 0.1 threshold LSH ... 62

Tabel 4.7 Rata-rata Precision dan Recall pada 0.2 threshold LSH ... 62

Tabel 4.8 Rata-rata Precision dan Recall pada 0.3 threshold LSH ... 62

Tabel 4.9 Rata-rata Precision dan Recall pada 0.4 threshold LSH ... 63

(12)

DAFTAR GAMBAR

Gambar 2.1 Jaccard Index ... 5

Gambar 2.2 Candidate Pairs ... 12

Gambar 2.3 Kurva S ... 13

Gambar 2.4 Kurva S ... 14

Gambar 3.1 Flowchart Aplikasi ... 17

Gambar 3.2 Flowchart Calculate... 18

Gambar 3.3 Flowchart Remove Punctuation ... 19

Gambar 3.4 Flowchart Calculate Signature ... 21

Gambar 3.5 Flowchart Calculate Jaccard... 22

Gambar 3.6 Flowchart OptimalRB ... 23

Gambar 3.7 Flowchart Calculate LSH ... 24

Gambar 3.8 Rancangan Antarmuka Homepage ... 25

Gambar 3.9 Rancangan Antarmuka Dialog ... 26

Gambar 3.10 Rancangan Antarmuka Select File Dialog ... 27

Gambar 3.11 Rancangan Antarmuka Select File Dialog ... 27

Gambar 3.12 Rancangan Antarmuka Result Page ... 28

Gambar 4.1 Tampilan Awal ... 30

Gambar 4.2 Dialog Opsi ... 30

Gambar 4.3 Dialog Eror ... 31

Gambar 4.4 Halaman Result ... 31

Gambar 4.5 Tampilan Result 2 ... 32

Gambar 4.6 Dialog Pemberitahuan Selesai ... 32

Gambar 4.7 Dokumen 1 ... 33

Gambar 4.8 Dokumen 2 ... 33

Gambar 4.9 Potongan Kode Calculate ... 35

Gambar 4.10 Potongan Kode Minhash ... 36

Gambar 4.11 Isi Shingle ... 36

Gambar 4.12 Potongan Kode Calculate Signature ... 37

Gambar 4.13 Isi Shingle Comparison File ... 38

Gambar 4.14 Shingle Matrix ... 39

Gambar 4.15 Potongan Kode Pair ... 40

Gambar 4.16 Pair ... 41

Gambar 4.17 Potongan Kode Hitung RB ... 44

Gambar 4.18 Hasil Perhitungan Row dan Band ... 45

Gambar 4.19 Potongan kode compute LSH ... 46

Gambar 4.20 Screenshoot Hasil ... 47

Gambar 4.21 Screenshoot Uji Coba ... 48

Gambar 4.22 Screenshoot Hasil ... 49

Gambar 4.23 Grafik Perbandingan F-measure dan Permutasi ... 64

Gambar 4.24 Grafik Rata–Rata Perbandingan F-measure dan Permutasi ... 65

(13)

DAFTAR RUMUS

Rumus 2.1 Rumus Jaccard Index ... 5

Rumus 2.2 Rumus Reassemble ... 6

Rumus 2.3 Rumus Permutasi ...10

(14)

BAB I

PENDAHULUAN

1.1

Latar Belakang Masalah

Perkembangan kecanggihan teknologi informasi berdampak pada

meningkatnya kebutuhan akan informasi (Fahdiansyah & Anas, 2017).

Perkembangan ini membawa manusia ke era baru dari konvensional ke era digital

di mana manusia menggunakan World Wide Web sebagai lingkungan mendapatkan

informasi (Levy, 1997).

Pada tahun 2017, International Telecommunication Union memperkirakan

sekitar 40% penduduk dunia merupakan pengguna internet (Sanou, 2017). Sekitar

85% pengguna internet menggunakan mesin pencari untuk mendapatkan berbagai

informasi (Alsulami, Abulkhair, & Eassa, 2012). Penggunaan internet membuat

sebagaian besar komputer pengguna memiliki banyak dokumen yang sama

dikarenakan banyak yang membuat copy dari dokumen, sharing across device, dan

sharing between people (Karlson, Smith, & Lee, 2011). Dokumen yang mirip

dan/atau duplikat dalam jumlah yang banyak membuat pengguna kesulitan dalam

mencari dokumen yang diinginkan (Fowke, Hinze, & Heese, 2013).

Pendeteksian kemiripan dokumen dapat digunakan untuk membantu

pengguna dalam mengetahui dokumen yang mirip, duplikat, atau mungkin

dokumen versi sebelumnya (Karlson, Smith, & Lee, 2011). Melakukan

pendeteksian terhadap kemiripan dapat dilakukan dengan pencarian satu persatu

dari dokumen tertentu (Gionis, Lndyk, & Motwani, 1999), maupun menghitung

kemiripan dengan membandingkan objek-objek yang paling mirip dari dokomen

tertentu (Lieve, et al., 1989).

(15)

Dalam menentukan kemiripan dokumen, kalimat dan paragraf dapat

menggunakan kata–kata sebagai objek kemiripan. Kemiripan kata dibagi menjadi

dua yaitu lexically dan semantically. Lexical adalah kemiripan yang memiliki

kesamaan karakter sedangkan Semantic adalah kemiripan yang memiliki makna

yang sama (Gomaa & Gahmy, 2013). Metode yang dapat digunakan untuk

menghitung kemiripan objek-objek adalah Jaccard (Tan, 2005). Jaccard Index

dapat melakukan prediksi terhadap objek yang luas dan besar (Birks, 1987).

Pada penelitian sebelumnya, penggunaan hashing pada perhitungan

kemiripan membuat perhitungan menjadi lebih efisien dibandingkan penggunaan

string matching (Leonardo, 2016). Pada tahun 2011, Figenblat melakukan

penelitian mengenai pengembangan algoritma hashing dengan menambahkan

fungsi permutation. Permutasi digunakan untuk mengurangi jumlah perhitungan

pada dokumen dan membuat waktu yang digunakan jauh lebih efisien dalam

melakukan penghitungan terhadap banyak dokumen (Feigenblat, Porat, & Shiftan,

2011). Berdasarkan penelitian di atas dan latar belakang masalah yang ada,

penelitian ini akan mengimplementasikan Locality Sensitive Hashing dan Jaccard

Index pada aplikasi pendeteksi kemiripan dokumen.

1.2

Rumusan Masalah

Berdasarkan latar belakang, masalah yang dapat dirumuskan dalam

penelitian ini yaitu bagaimana mengimplementasikan Locality Sensitive Hashing

dan Jaccard Index pada aplikasi pendeteksi kemiripan dokumen?

(16)

1.3

Batasan Masalah

Batasan masalah pada penelitian ini antara lain sebagai berikut.

1. Dokumen yang dideteksi adalah dokumen teks dengan format .pdf, .odf, .doc,

.docx, .ppt, .pptx, .rtf dan .txt

2. Jumlah kata di dalam dokumen yang dideteksi adalah tidak lebih dari 2000 kata

3. Jumlah maksimal permutasi yang digunakan tidak lebih dari 2000 permutasi.

4. Kemiripan yang dideteksi adalah kemiripan Lexical.

1.4

Tujuan Penelitian

Berdasarkan rumusan masalah, maka penelitian ini bertujuan untuk

mengimplementasikan Locality Sensitive Hashing dan Jaccard Index pada aplikasi

pendeteksi kemiripan dokumen.

1.5

Manfaat Penelitian

Manfaat yang diharapkan dari implementasi Locality Sensitive Hashing dan

Jaccard Index pada aplikasi pendeteksi kemiripan dokumen adalah dapat

melakukan pendeteksian kemiripan terhadap banyak dokumen.

1.6

Sistematika Penulisan

Sistematika penulisan yang diguanakan dalam penulisan skripsi ini adalah

sebagai berikut.

(17)

1.

BAB I PENDAHULUAN

Bab ini berisi latar belakang pemilihan judul “Implementasi Locality

Sensitive Hashing dan Jaccard Index pada Aplikasi Pendeteksi Kemiripan

Dokumen”, rumusan masalah, batasan masalah dalam penelitian, tujuan penelitian,

manfaat penelitian, dan sistematika penulisan skripsi.

2.

BAB II LANDASAN TEORI

Bab ini berisi dasar-dasar teori yang digunakan dalam penelitian terkaitt

permasalahan yang dibahas. Teori-teori yang digunakan dalam penelitian ini antara

lain Jaccard Index, Shingling, Min-Wise Independent Permutation, Locality

Sensitive Hashing, dan F-Measure.

3.

BAB III METODOLOGI DAN PERANCANGAN APLIKASI

Bab ini berisi metodologi penelitian yang terdiri dari studi literatur,

perancangan, pembangunan aplikasi, pengujian aplikasi, dan analisis hasil uji coba

aplikasi. Perancangan terdiri atas flowchart dan mock-up dari aplikasi.

4.

BAB IV IMPLEMENTASI DAN UJI COBA

Bab ini berisi hasil implementasi algoritma, diikuti oleh data hasil uji coba

penelitian yang dilakukan beserta hasil analisis data berdasarkan hasil uji coba

penelitian yang dilakukan.

5.

BAB V SIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil uji coba dan analisis yang telah

dilakukan dalam penelitian, beserta saran untuk pengembangan penelitian lebih

lanjut.

(18)

BAB II

LANDASAN TEORI

2.1

Jaccard Index

Jaccard Index yang juga dikenal sebagai similarity coefficient, adalah

statistik yang digunakan untuk membandingkan tingkat kemiripan dan keragaman

objek dari dua sampel set (Jaccard, 1908). Jaccard Index dirumuskan pada Rumus

2.1 adalah ukuran persimpangan dibagi dengan union dari dua sampel set

(Agarawal, Rawat, & Maheshwari, 2017).

Gambar 2.1 Jaccard Index

J(S, T) =

|S∩T|

|S∪T|

=

|S∩T|

|S|+|T|−|S∩T|

…(2.1)

Pada Gambar 2.1, set S berisi 5 titik, dan set T berisi 6 titik. Jaccard Index

diukur dengan Rumus 2.1 maka irisan S dan T atau |S ∩ T| adalah 3 titik. Union

dari S dan T atau |S ∪ T| adalah 8 titik. Tingkat kemiripan dari S dan T menurut

(19)

2.2

Shingling

Dokumen dapat diuji kemiripan berdasakan kata yang ada di dalam

dokumen. Kata dibagi ke dalam suatu set yang terdiri dari satu atau lebih kata untuk

mempermudah perhitungan. Pembagian kata ini lebih dikenal sebagai shingling

(Leskovec, Rajaraman, & Ullman, 2012). Untuk menghitung kemiripan dan/atau

kesamaan dari dua dokumen kita harus membagi setiap dokumen menjadi potongan

teks. Potongan teks dapat dihitung dengan cepat sehingga tidak perlu

membandingkan secara huruf per huruf (Nevin, 1996).

Sebagai contoh bila kalimat “a rose is a flower which is a rose”

menggunakan 1-Shingle maka dibagi menjadi a, rose, is, a, flower, which, is, a dan

rose. Sedangkan bila 2-Shingle menjadi a rose, is a, flower which, is a dan rose

begitu pula seterusnya.

𝑟

𝑤

(𝐴, 𝐵) =

|𝑆(𝐴,𝑤)∩𝑆(𝐵,𝑤)|

|𝑆(𝐴,𝑤)∪𝑆(𝐵,𝑤)|

…(2.2)

𝑟

𝑤

(𝐴, 𝐵) adalah kemiripan A dan B pada w-Shingle; 𝑆(𝐴, 𝑤) adalah

shingling pada A dengan w-Shingle; |

𝑆(𝐴, 𝑤) ∩ 𝑆(𝐵, 𝑤)| adalah jumlah absolut

dari irisan shingling pada A dengan Shingle dan shingling pada B dengan

w-Shingle;

|𝑆(𝐴, 𝑤) ∪ 𝑆(𝐵, 𝑤)| adalah jumlah absolut dari union shingling pada A

dengan w-Shingle dan shingling pada B dengan w-Shingle.

Shingling dapat digunakan untuk melakukan perhitungan kemiripan dengan

bantuan Jaccard Index yang dirumuskan pada Rumus 2.2. Penggunaan rumus

dengan 2 sampel set adalah sebagai berikut.

1.

Sampel A adalah kalimat “a rose is a rose is a rose”.

(20)

3.

1 shingle dari sampel A atau 𝑆(𝐴, 1) adalah “a”, “rose”, “is”, “a”, “rose”,

”is”, “a”, dan “rose”.

4.

1 shingle dari sampel B atau

𝑆(𝐵, 1) adalah “a”, “rose”, “is”, “a”,

“flower”, ”which”, “is”, “a”, dan “rose”.

5.

Irisan untuk 1 shingle A dan 1 shingle B dengan notasi |𝑆(𝐴, 1) ∩ 𝑆(𝐵, 1)|

adalah 7 terdiri dari “a”, “rose”, “is”, “a”, “is”, ”a” dan “rose”.

6.

Union untuk 1 shingle A dan 1 shingle B dengan notasi |

𝑆(𝐴, 1) ∪ 𝑆(𝐵, 1)|

adalah 10 terdiri dari “a”, “rose”, “is”, “a”, “flower”, ”which”, “is”, “a”,

“rose”, dan “rose”.

Maka dengan menggunakan shingle dan Jaccard Index kemiripan dari A

dan B pada 1 shingle adalah sebesar 7 dibagi 10 adalah 0.7 (Broder, 1997).

Penghitung kemiripan dapat dipercepat dengan penggunaan 1 shingle atau lebih

dari satu shingle. Shingle diolah menjadi hash/fingerprint yang terdiri dari 8 bit

hingga 8 byte untuk mengurangi tempat penyimpanan dan mempercepat proses

penghitungan sehingga menjadi lebih cepat dan efisien (Ullaman, 2010).

(21)

2.3

Min-Wise Independent Permutation

Min-Wise Independent Permutations atau juga dikenal sebagai MinHash

adalah salah satu teknik Locality Sensitive Hashing untuk mempercepat perkiraan

antara dua objek yang sama dengan menggunakan permutasi. Teknik ini diciptakan

oleh Andrei Broder pada tahun 1997, dan awalnya digunakan oleh AltaVista untuk

mendeteksi halaman duplikat pada web dan menghapusnya dari hasil pencarian

(Broder, Charikar, & Frieze, 1998).

Min-Wise Independent Permutation pada dasarnya adalah mengurangi

penghitungan dengan menggunakan sebanyak n-set permutasi untuk mendapatkan

hasil dengan waktu sebaik mungkin (Broder, 1997). Penggunaan permutasi

dimaksudkan untuk menghemat proses pengujian dibandingkan dengan melakukan

pengujian satu-satu terhadap elemen. Hasil permutasi nantinya akan dikalikan

terhadap baris matriks dokumen dimulai dari 1 kemudian ditambahkan ke dalam

baris signature matrix yang masih 0. Apabila baris pada signature matrix masih

mengandung 0 maka akan dilanjutkan hingga tidak ada lagi 0 pada baris signature

matrix.

Tabel 2.1 Contoh Min-Wise

Sebagai contoh, pada Tabel 2.1 dilakukan pengujian terhadap 5 dokumen

dengan 3 set permutasi, maka disimulasikan sebagai berikut.

Permutasi Ke-

Matriks Dokumen

1

2

3

baris

A

B

C

D

2

4

3

1

1

0

1

0

3

2

4

2

1

0

0

1

7

1

7

3

0

1

0

1

6

3

2

4

0

1

0

1

1

6

6

5

0

1

0

1

5

7

1

6

1

0

1

0

(22)

1.

Permutasi ke-1 nilai 1 ada pada baris ke-5 maka matriks baris 5 akan dikali

1 menjadi 0,1,0,1.

2.

Karena masih mengandung 0, operasi dilanjutkan pada permutasi ke-1, nilai

2 pada baris 1 akan dikali 2 dan ditambah pada hasil sebelumnya bila 0

menjadi 2,1,2,1.

3.

Karena sudah terpenuhi maka dilanjutkan ke permutasi berikutnya dan hasil

disimpan kedalam signature matrix baris 1.

4.

Permutasi ke-2 nilai 1 pada baris ke-3 maka matriks baris ke 3 akan dikali

1 menjadi 0,1,0,1.

5.

Karena masih mengandung 0, operasi dilanjutkan pada permutasi ke-2, nilai

2 pada baris 2 akan dikali 2 dan ditambah pada hasil sebelumnya bila 0

menjadi 2,1,0,1.

6.

Karena masih mengandung 0, operasi dilanjutkan pada permutasi ke-2, nilai

3 pada baris 4 akan dikali 3 dan ditambah pada hasil sebelumnya bila 0

menjadi 2,1,0,1.

7.

Karena masih mengandung 0, operasi dilanjutkan pada permutasi ke-2, nilai

4 pada baris 1 akan dikali 4 dan ditambah pada hasil sebelumnya bila 0

menjadi 2,1,4,1.

8.

Karena sudah terpenuhi maka dilanjutkan ke permutasi berikutnya dan hasil

disimpan kedalam signature matrix baris 2.

9.

Permutasi ke-3 nilai 1 pada baris ke-6 maka matriks baris ke 6 akan dikali

1 menjadi 1,0,1,0.

(23)

10.

Karena masih mengandung 0, operasi dilanjutkan pada permutasi ke-3, nilai

2 pada baris 4 akan dikali 2 dan ditambah pada hasil sebelumnya bila 0

menjadi 1,2,1,2.

11.

Karena sudah terpenuhi maka dilanjutkan ke permutasi berikutnya dan hasil

disimpan ke dalam signature matrix baris 3.

Semua signature dimasukkan dan didapatkan signature matrix pada Tabel 2.2

Tabel 2.2 Singature Matrix

Signature Matrix

A

B

C

D

2

1

2

1

2

1

4

1

1

2

1

2

Didapatkan bahwa signature A adalah 221, signature B adalah 112,

signature C adalah 241, dan signature D adalah 112. Teknik Min-Wise Independent

Permutations dapat dikembangkan menggunakan Locality Sensitive Hashing dan

Jaccard Index untuk mendapatkan informasi yang relevan dan dibutuhkan baik

dalam dokumen berukuran besar maupun sedang (Leskovec, Rajaraman, & Ullman,

2012).

ℎ(𝑥) = (𝑎𝑥 + 𝑏) 𝑚𝑜𝑑 𝑐

…(2.3)

Untuk melakukan perhitungan permutasi yang besar. Banyak waktu yang

dibutuhkan untuk menyiapkan permutasi apabila bila dilakukan secara acak akan

terjadi banyak collision. Pembuatan permutasi dilakukan dengan menggunakan

Rumus 2.3 sehingga tidak perlu menyiapkan permutasi terlebih dahulu. Proses

(24)

pembuatan permutasi dilakukan saat penghitungan dengan menyiapkan pair

sebanyak n-set permutasi. Pair akan dimasukkan ke dalam rumus sebagai a dan b,

dengan ketentuan tidak ada pair yang sama untuk mengurangi peluang collision

dimana nilai Pair antara 1 sampai c, c adalah bilangan prima setelah populasi. Pada

Tabel 2.3 populasi adalah 4 maka nilai prima setelahnya adalah 5 untuk c dan pair

untuk 2-set permutasi adalah 1 dan 1 serta 3 dan 1 (Ullaman, 2010).

Tabel 2.3 Signature Matrix 2

Row

S1

S2

S3

S4

x + 1 mod 5

3x + 1 mod 5

0

1

0

0

1

1

1

1

0

0

1

0

2

4

2

0

1

0

1

3

2

3

1

0

1

1

4

0

4

0

0

1

0

0

3

2.4

Locality Sensitive Hashing

Locality Sensitive Hashing adalah teknik untuk mencari kemiripan

dokumen yang di inginkan dengan memanfaatkan fungsi hash yang dimasukkan ke

dalam bucket/matrix yang nantinya akan menghasilkan signature dapat dilakukan

pencarian, pengenalan, dan estimasi berbagai jenis objek. Teknik ini dikembangkan

untuk penghitungan pada data yang besar dan luas (Li & Li, 2010).

(25)

Gambar 2.2 Locality Sensitive Hashing

Pada Gambar 2.2 terlihat pendekatan untuk melakukan penghitungan LSH

dapat dilakukan dengan Signature matrix dibagi kedalam beberapa candidate pairs

sejumlah b-band yang terdiri dari r-row. Kemudian dilakukan pengecekan terhadap

candidate pairs untuk diuji kemiripan dengan melakukan pengecekan apakah

candidate pairs memiliki nilai jaccard index setidaknya sebesar batas ambang batas

yang diinginkan atau threshold LSH. Apabila candidate pairs telah sesuai akan

masuk ke dalam bucket yang sama. Setelah itu dilakukan perhitungan hitung

dengan Jaccard. Candidate pairs yang berbeda namun masuk ke dalam bucket yang

sama disebut false positive serta pasangan yang sama namun masuk kedalam bucket

yang berbeda disebut false negative (Ullaman, 2010).

Untuk meminimalisir false negative dan false positive sebelum merubah

(26)

pairs atau r-row dilakukan perhitungan untuk menghitung b-band dan r-row.

Beberapa analisis dimana r adalah jumlah baris, b adalah jumlah band dan s adalah

probabilitas candidate pairs cocok di sejumlah baris tertentu.

1. Probabilitas bahwa candidate pair cocok di semua baris pada suatu band

tertentu adalah s

r

.

2. Probabilitas bahwa candidate pair tidak cocok di setidaknya satu band

tertentu adalah 1-s

r

.

3. Probabilitas bahwa candidate pair tidak cocok di setidaknya satu baris

masing–masing dari band adalah (1-s

r

)

r

.

4. Probabilitas bahwa candidate pair cocok di semua baris setidaknya satu

band adalah 1-(1-s

r

)

b

.

(27)

Persamaan tersebut akan membuat sebuah kurva S dimana digambarkan

pada Gambar 2.3. Setelah mendapatkan kurva S maka akan dapat dihitung false

negative dan false positive dari row dan band seperti pada Gambar 2.4 terdiri dari

50 permutasi dengan 5-row dan 10-band (Ullaman, 2010).

Gambar 2.4 Kurva S

2.5

F-Measure

F-Measure adalah pengukuran akurasi yang mengkombinasikan precision

dan recall yang diterapkan ke deret harmonik untuk mendapatkan hasil yang

optimal (Sasaki, 2007).

𝐹 = 2 ⋅

𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛⋅𝑟𝑒𝑐𝑎𝑙𝑙

𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙

...(3)

Precision adalah perbandingan jumlah dokumen yang dideteksi mirip dan

benar mirip terhadap jumlah dokumen yang dideteksi mirip. Recall adalah

perbandingan jumlah dokumen yang dideteksi mirip dan benar mirip terhadap

jumlah dokumen yang benar mirip (Powers, 2011).

(28)

BAB III

METODOLOGI DAN PERANCANG APLIKASI

3.1

Metodologi Penelitian

Beberapa metode penelitian digunakan demi menunjang proses penelitian

ini adalah sebagai berikut.

1.

Studi Literatur

Dalam studi literatur dilakukan pembelajaran dari teori-teori yang

berhubungan dengan penerapan Locality Sensitive Hashing, Min-Wise Independent

Permutations, dan Jaccard Index untuk melakukan penghitungan kemiripan

dokumen.

2.

Perancangan Aplikasi

Pada tahap ini dilakukan perancangan flowchart dan antarmuka dari

penelitian yang akan dibuat.

3.

Pembangunan Aplikasi

Pada tahap ini dilakukan pembangunan aplikasi menggunakan bahasa

pemrograman Java. Pembangunan aplikasi berdasarkan rancangan flowchart dan

antarmuka dari tahap perancangan aplikasi.

4.

Pengujian Aplikasi

Tahapan pengujian dimulai dengan menggunakan aplikasi dan memilih

dokumen yang akan diuji dan dokumen perbandingannya. Aplikasi akan melakukan

penghitungan dan menampilkan hasil dalam bentuk tabel yang berisi file yang

dibandingkan, waktu, dan indeks kemiripan. Hasil tabel akan menjadi dasar

pengujian hasil implementasi yang dihitung menggunakan F-Measure.

(29)

5.

Analisis Hasil

Kinerja implementasi ini dihitung akurasinya dari hasil pengujian dengan

menggunakan F-Measure.

6.

Penulisan Laporan

Sebuah laporan mengenai hasil implementasi ditulis secara bertahap

dimulai dari studi literatur hingga penarikan kesimpulan berdasarkan analisis hasil

yang sudah didapatkan.

3.2

Perancangan Aplikasi

Perancangan dilakukan dengan menggambarkan alur dari aplikasi atau

flowchart dan rancangan antarmuka.

3.2.1 Perancangan Flowchart

Flowchart digunakan untuk menggambarkan alur dari aplikasi yang dibuat.

A.

Flowchart Aplikasi

Gambar 3.1 merupakan flowchart dari Aplikasi. Aplikasi akan

mempersiapkan segala variabel yang dibutuhkan berupa tabel, file dan list file.

Aplikasi akan menampilkan homepage dimana pengguna dapat melakukan

pemilihan dari dokumen dan dokumen pembanding yang akan diuji. Setelah dipilih

aplikasi akan menampilkan hasil pemilihan dari dokumen-dokumen yang dipilih

dan menampilkan data berupa nama dan directory akan ditampilkan. Terdapat

beberapa tombol seperti Add File, Up, Del dan Calculate. Tombol Add File dapat

digunakan untuk menambah dokumen, Tombol Up dapat digunakan untuk

menaikan dokumen dari dafttar. Tombol Del dapat digunakan untuk menghapus

dokumen dari daftar yang ada. Tombol Calculate digunakan untuk memulai proses

(30)

penghitungan, sebelum memulai proses penghitungan aplikasi akan menampilkan

dialog untuk melakukan pemiilihan permutasi yang akan digunakan. Setelah selesai

aplikasi akan memberikan informasi bahwa sudah selesai.

(31)

B.

Flowchart Calculate

Gambar 3.2 merupakan flowchart dari proses dimana aplikasi akan

melakukan perhitungan terhadap dokumen dan menampilkan hasil yang diperoleh

kedalam tampilan hasil. Aplikasi akan mempersiapkan variable seperti fileName

untuk menyimpan nama dari dokumen yang akan ditampilkan di halaman hasil,

fileAuthor untuk menyimpan penulis dari dokumen yang diuji. Setelah siap dengan

variabel yang dibutuhkan aplikasi akan melakukan perhitungan row dan band yang

optimal untuk perhitungan LSH. Aplikasi akan mencatat waktu untuk pengujian

setiap dokumen yang akan ditampilkan, mempersiapkan signature matrix, LSH

indeks dan untuk opsi yang bukan LSH akan dilakukan perhitungan jaccard dengan

terpisah lalu akan mengubah tampilan hasil.

(32)

C.

Flowchart Remove Punctuation

Gambar 3.2 menggambarkan proses penghapusan tanda baca. Aplikasi akan

melakukan iterasi sebanyak jumlah kata lalu akan melakukan iterasi sebanyak huruf

dari kata, apabila terdapat huruf bukan dari alphabet maka akan dihapus.

(33)

D.

Flowchart Calculate Signature

Gambar 3.4 merupakan proses untuk membuat signature matrix yang

didapatkan dari dokumen yang ada. Aplikasi akan membaca dokumen mainFile dan

mengolah kata-kata yang ada didalam dokumen menjadi shingle. Sebelum diolah

seluruh tanda baca akan di proses pada fungsi Remove Punctuation. Aplikasi juga

akan membuka dokumen pembanding yang akan dibandingkan dan melakukan hal

yang sama. Lalu aplikasi akan memulai penghitungan signature matrix. Akan ada

perulangan sejumlah permutasi dan sebanyak jumlah kata atau shingle yang ada

didalam dokumen lalu akan dilakukan perhitungan dari hashval dimana dengan

menggunakan pair AB dan C yang telah disiapkan sebagai nilai dari permutasi

untuk mendapatkan nilai hash yang benar untuk kata yang sedang di hitung. Apabila

nilai hashval lebih kecil dari signautre_matrix[0][k] maka nilai hashval akan

dipindahkan kedalam signature_matrix[0][k]. Aplikasi akan melakukan

perhitungan diatas sampai selesai sehingga mendapatkan signature matrix yang

memiliki nilai hasval terendah untuk setiap shingle. Hal yang sama dilakukan pada

kata yang ada didalam dokumen pembandingkan dengan dihitung hashval dimana

menggunakan pair AB yang sama lalu akan mendapatkan signature matrix untuk

masing-masing dokumen. Signature matrix akan digunakan untuk melakukan

perhitungan LSH.

(34)
(35)

E.

Flowchart Calculate Jaccard

Gambar 3.5 merupakan flowchart dari perhitungan jaccard dimana dari

hasil signature matrix akan dihitung. Bila baris dari signature matrix adalah sama

maka akan ditambahkan satu terjadap nilai match. Match dibagi dengan jumlah

permutasi untuk mendapatkan indeks kemiripan dari dokumen yang diuji.

(36)

F.

Flowchart Optimal RB

Gambar 3.6 merupakan flowchart dari perhitungan band dan row yang akan

digunakan untuk melakukan perhitungan LSH. Aplikasi akan menyiapkan beberapa

variabel yang dibutuhkan untuk menyimpan nilai dari false negative dan false

positive serta nilai dari row dan band-nya. Aplikasi akan melakukan iterasi dari 1

sampai jumlah permutasi yang akan disimpan sebagai band dan banyaknya row

didapatkan dengan pembagian permutasi dan band, setelah itu dilakukan

perhitungan dari nilai false positive dan false negative dengan rumus 1-(1-s

r

)

b

untuk

mengukur area dari false positive dan false negative. Setelah mendapatkan area dari

false positive dan false negative akan dicari yang memiliki nilai terendah untuk

meminimalisir false postive dan false negative. Setelah mendapatkan nilai terendah

maka aplikasi akan mengembalikan nilai dari band dan row yang akan digunakan

untuk perhitunga LSH.

(37)

G.

Flowchart Calculate LSH

Gambar 3.6 merupakan flowchart dari perhitungan LSH dimana dari hasil

signature matrix akan dihitung. Aplikasi akan membagi signature matrix

berdasarkan band sejumlah row lalu akan dilakukan perhitungan bila sama dan

jumlah yang sama cukup dengan threshold maka akan dianggap sama untuk band

tersebut. Sama seperti jaccard namun untuk persamaan dibatasi threshold yang akan

menentukan sama atau tidaknya 2 signature yang telah dibagi seukuran band.

(38)

3.2.2 Perancangan Antarmuka

Aplikasi yang dibangun memiliki beberapa window dengan tampilan yang

berbeda.

A.

Rancangan Antarmuka Homepage

Gambar 3.6 merupakan rancangan tampilan dari halaman utama saat

aplikasi dijalankan. Pada tampilan ini terdapat lima buah tombol seperti Add Main

File, Add Comparison File, Up, Del dan Calculate. Tombol dapat digunakan untuk

pengguna memilih dokumen utama yang akan diuji, dokumen pembanding untuk

diuji, menaikkan dokumen dari daftar, menghapus dokumen dari daftar, melakukan

proses penghitungan kemiripan. Setelah menekan tombol Calculate akan muncul

dialog untuk melakukan pemilihan jumlah permutasi yang akan digunakan, lalu

proses penghitungan dimulai.

(39)

B.

Rancangan Antarmuka Dialog

Gambar 3.7 merupakan rancangan dialog. Dialog sebelah kiri adalah dialog

dari homepage dimana setelah pengguna menekan tombol calculate maka akan

ditampilkan dialog. Dialog sebelah kanan adalah dialog dari halaman result page

untuk melakukan penghitungan ulang. Dialog ini digunakan untuk melakukan

pemilihan jumlah permutasi yang akan digunakan.

(40)

C.

Rancangan Antarmuka Select File Dialog

Gambar 3.8 merupakan rancangan dialog pemilihan dokumen. Pengguna

dapat melakukan pemilihan dokumen yang akan diuji.

Gambar 3.10 Rancangan Antarmuka Select File Dialog

D.

Rancangan Antarmuka Select File Dialog Add Comparison File

Gambar 3.8 merupakan rancangan dialog pemilihan dokumen. Pengguna

dapat melakukan pemilihan dokumen pembanding yang akan diuji.

(41)

E.

Rancangan Antarmuka Result Page

Gambar 3.9 merupakan rancangan tampilan dari hasil perhitungan

kemiripan. Pada tampilan ini akan ditampilkan data mengenai hasil dari uji

kemiripan yang dilakukan. Pada halaman ini pengguna dapat kembali ke halaman

sebelumnya dan melakukan penghitungan ulang.

(42)

BAB IV

IMPLEMENTASI DAN UJI COBA

4.1

Spesifikasi Perangkat

Spesifikasi perangkat yang digunakan dalam pembangunan aplikasi dan

penelitian ini adalah sebagai berikut

1.

Perangkat Lunak

- Sistem Operasi macOS High Sierra 10.13.4

- InteliJ IDEA Ultimate versi 2017.2

- Java versi 1.8.0_101

- Tika Apache versi 1.17

- JFoenix

2.

Perangkat Keras

- Intel i7 2.6GHz

- 8GB DDR3 RAM

- 512GB SSD

- Intel HD Graphics 4000 1536MB

- NVDIA GeForce GT 650M 1024MB

4.2

Implementasi Aplikasi

Dalam proses implementasi pembangunan aplikasi dilakukan dengan

platform JavaFX dengan bahasa pemrograman Java.

4.2.1 Tampilan Aplikasi

Gambar 4.1 menggambarkan tampilan awal aplikasi. Pada tampilan ini

pengguna dapat memilih dokumen yang akan diuji dan dokumen pembanding

(43)

sesuai yang ingin diuji. Pengguna juga dapat membersihkan form dengan tombol

Reset Form bila ingin mengulang dari awal. Setelah selesai dengan pemilihan

dokumen pengguna dapat melanjutkan ke proses perhitungan dengan tombol

Calculate.

Gambar 4.1 Tampilan Awal

Setelah menekan tombol Calculate akan muncul dialog untuk

memasukkan opsi berupa jumlah permutasi mulai dari 1 hingga 2000, threshold

yang ingin dicari mulai dari 0.1 hingga 1 serta opsi apakah ingin menghitung LSH

atau ingin mengetahui persamaan dari signature matrix seperti pada Gambar 4.2.

(44)

Apabila data yang dimasukkan tidak sesuai maka akan muncul pesan eror

seperti pada Gambar 4.3. Setelah menekan tombol OK maka pengguna akan

diarahkan kembali ke halaman sebelumnya.

Gambar 4.3 Dialog Eror

Apabila sudah sesuai maka aplikasi akan melakukan penghitungan dan

menampilkan halaman result seperti pada Gambar 4.4. Pada tampilan halaman

result akan ditampilkan nama file yang diuji dan penulis serta modifikasi terakhir

serta total waktu yang dibutuhkan untuk melakukan proses perhitungan. Apabila

pengguna memilih opsi LSH maka dokumen yang memiliki kemiripan lebih dari

LSH akan menapatkan nilai yang lebih tinggi.

(45)

Apabila pengguna memilih opsi selain LSH maka akan dihitung juga nilai

Signature Matrix sehingga mendapatkan signature similarity serta akan

ditampilkan highest dan lowest sesuai dengan Gambar 4.5.

Gambar 4.5 Tampilan Result 2

Sesaat setelah perhitungan selesai aplikasi akan memunculkan pesan

pemberitahuan kepada pengguna bahwa penghitungan telah selesai seperti pada

Gambar 4.6.

(46)

4.2.2 Implementasi Algoritma dan Skenario Uji Coba

Pada bagian ini dilakukan skenario uji coba untuk mendapatkan hasil dari

perhitungan LSH pada dokumen yang dipilih. Pada skenario ini dokumen yang

digunakan sebanyak 2 dokumen dengan isi seperti pada Gambar 4.7 dan Gambar

4.8.

Gambar 4.7 Dokumen 1

Gambar 4.7 berisi skenario 1 akan digunakan sebagai dokumen utama

yang akan dibandingkan dengan dokumen pada Gambar 4.8 berisi skenario 3

untuk di uji tingkat kemiripannya.

(47)

Gambar 4.9 merupakan potongan kode yang berfungsi menjalankan

perhitungan mulai dari menginisialisasi minhash, membuat signature matrix,

menghitung nilai dari LSH, dan perhitungan kemiripan dari signature matrix.

Aplikasi akan menjalankan fungsi minhash untuk dapat mengambil shingle yang

ada di dokumen utama yang akan dibandingkan, setelah itu aplikasi akan

melakukan perhitungan untuk mendapatkan row dan band untuk melakukan

perhitungan nilai dari LSH.

Aplikasi akan mencatat waktu mulai perhitungan menggunakan

System.currentTimeMilis. Setelah itu aplikasi akan melakukan iterasi untuk

masing-masing dokumen yang akan diuji. Dalam iterasi akan dilakukan

pencatatan waktu, pembuatan signature matrix dengan fungsi CalcSignature,

perhitungan nilai LSH dengan computeLSH, bila memilih opsi selain LSH maka

akan ditambahkan perhitungan tersendiri untuk signature matrix guna

mendapatkan kemiripan berdasarkan signature matrix, hasil dari perhitungan LSH

dan signature matrix yang telah berhasil didapatkan dan ditampilkan ke dalam

tabel result beserta waktu untuk masing-masing dokumen sesaat setelah

perhitungan selesai. Setelah iterasi selesai akan ditampilkan waktu total yang

dibutuhkan untuk melakukan uji pada tampilan result. Lalu aplikasi akan

menampilkan dialog selesai untuk memberitahu pengguna bahwa proses

perhitungan telah selesai dilakukan.

(48)

Gambar 4.9 Potongan Kode Calculate

Gambar 4.10 merupakan potongan kode dari fungsi inisialisasi minhash.

Fungsi minhash dipanggil pada potongan kode di Gambar 4.9 dimana aplikasi

akan mengambil isi dari dokumen dengan fungsi FileReader.getData berupa

string. Setelah itu akan dibersihkan yang merupakan tanda baca akan dihapus serta

dijadikan huruf kecil sehingga hanya kata saja yang akan diproses sebagai shingle.

(49)

Gambar 4.10 Potongan Kode Minhash

Setelah potongan kode pada Gambar 4.10 dijalankan maka isi dari shingle

akan menjadi seperti pada Gambar 4.11 dimana seluruh kata dari dokumen utama

akan disimpan ke dalam sebuah variable untuk diolah lebih lanjut.

(50)

Gambar 4.12 Potongan Kode Calculate Signature

Setelah selesai melakukan fungsi minhash aplikasi akan melakukan

penghitungan signature matrix sesuai dengan potongan kode pada Gambar 4.12.

Dimana aplikasi akan mengambil isi dari dokumen yang akan dibandingkan. Lalu

membuang semua tanda baca sehingga hanya kata-kata saja yang akan diolah

menjadi shingle seperti pada Gambar 4.11. Setelah itu akan disiapkan hashset

untuk menggabungkan 2 set shingle guna mendapatkan 1 set shingle baru yang

berguna sebagai map untuk dalam perhitungan Minwise Independent

(51)

Gambar 4.13 Isi Shingle Comparison File

Gambar 4.13 adalah hasil shingle dari dokumen skenario 3 dimana akan

diolah bersama shingle sebelumnya menjadi seperti di Gambar 4.14 lalu akan

dihitung dengan Minwise Independent Permutation untuk mendapatkan signature

(52)
(53)

Gambar 4.15 Potongan Kode Pair

Gambar 4.15 adalah potongan kode untuk medapatkan pair yang akan

digunakan untuk membantu proses pembuatan permutasi yang akan digunakan

untuk menghitung signature matrix. Untuk pembuatan pair nilainya mulai dari 1

sampai bilangan prima setelah jumlah dari semua shingle yang telah digabungkan

dengan melakukan pengacakan. Untuk contoh pada Gambar 4.14 adalah 100

sehingga 103 adalah bilangan prima setelahnya sehingga hasil dari perhitungan

(54)

a 50 96 11 b 24 77 72 c 101 101 101 No p1 p2 p3 No p1 p2 p3 No p1 p2 p3 0 24 77 72 47 51 44 84 94 78 11 96 1 74 72 83 48 0 39 95 95 27 6 6 2 23 67 94 49 50 34 5 96 77 1 17 3 73 62 4 50 100 29 16 97 26 97 28 4 22 57 15 51 49 24 27 98 76 92 39 5 72 52 26 52 99 19 38 99 25 87 50 6 21 47 37 53 48 14 49 100 75 82 61 7 71 42 48 54 98 9 60 8 20 37 59 55 47 4 71 9 70 32 70 56 97 100 82 10 19 27 81 57 46 95 93 11 69 22 92 58 96 90 3 12 18 17 2 59 45 85 14 13 68 12 13 60 95 80 25 14 17 7 24 61 44 75 36 15 67 2 35 62 94 70 47 16 16 98 46 63 43 65 58 17 66 93 57 64 93 60 69 18 15 88 68 65 42 55 80 19 65 83 79 66 92 50 91 20 14 78 90 67 41 45 1 21 64 73 0 68 91 40 12 22 13 68 11 69 40 35 23 23 63 63 22 70 90 30 34 24 12 58 33 71 39 25 45 25 62 53 44 72 89 20 56 26 11 48 55 73 38 15 67 27 61 43 66 74 88 10 78 28 10 38 77 75 37 5 89 29 60 33 88 76 87 0 100 30 9 28 99 77 36 96 10 31 59 23 9 78 86 91 21 32 8 18 20 79 35 86 32 33 58 13 31 80 85 81 43 34 7 8 42 81 34 76 54 35 57 3 53 82 84 71 65 36 6 99 64 83 33 66 76 37 56 94 75 84 83 61 87 38 5 89 86 85 32 56 98 39 55 84 97 86 82 51 8 40 4 79 7 87 31 46 19 41 54 74 18 88 81 41 30 42 3 69 29 89 30 36 41 43 53 64 40 90 80 31 52 44 2 59 51 91 29 26 63 45 52 54 62 92 79 21 74 46 1 49 73 93 28 16 85

Gambar 4.16 Pair

Gambar 4.16 (a) adalah hasil pembuatan pair dan (b) adalah bukti dari pair

yang telah dibuat dengan rumus ℎ(𝑥) = (𝑎𝑥 + 𝑏) 𝑚𝑜𝑑 𝑐 dimana a adalah pair a

(55)

dan b adalah pair b, x adalah nomor atau urutan dan c adalah c atau bilangan prima

yang lebih besar dari jumlah shingle untuk menghasilkan sebuah permutasi. Tabel

4.1 adalah Gambaran dari variabel shingleInDoc (Shingle), mainFileShingle (Doc

1), comparisonFileShingle (Doc2) dan AB (ab) yang ada pada potongan kode di

Gambar 4.13 yang akan menghasilkan signature matrix.

(56)
(57)

Pada Tabel 4.1 permutasi pertama hasil perhitungan signature matrix di

dokumen 1 adalah 0 dimana pada kata printing nilai permutasinya adalah 0 dan

tidak ada yang lebih kecil dari 0 lagi dan di dokumen 2 pada kata printing nilai

permutasinya adalah 0 dan tidak ada yang lebih kecil. Hal ini diteruskan hingga

50 kali sehingga mendapatkan signature matrix dari kedua dokumen seperti Tabel

4.2.

Tabel 4.2 Signature Matrix

SM 1 0

1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Doc 1 0

1

0

0

0

0

0

0

3

0

0

0

0

1

1 23 0

0

0

0

0

0

0

1

0

Doc 2 0

0

3

1

1

0

0

1

0

0

1

0

1

0

0 23 2

1

2

0

1

0

0

0

1

SM 2 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Doc 1 1

0

0

1

0

1

0

0

0

0

0

1

0

0

2

1

0

1

1

0

0

3

0

0

0

Doc 2 0

0

0

0

2

0

3

6

1

0

1

0

0

0

0

0

1

0

0

1

0

0

2

1

3

Gambar 4.17 adalah potongan kode untuk menentukan nilai dari row dan

band yang akan digunakan pada perhitungan LSH.

(58)

Fungsi optimalRB pada Gambar 4.17 akan digunakan untuk mendapatkan

nilai row dan band dengan eror terkecil berdasarkan rumus perhitungan False

Positive(0-t) dan False Negative(t-1) lalu dihitung areanya. Untuk perhitungan 50

permutasi dan 0.2 LSH didapatkan nilai terbaik yaitu 2 row dan 25 band yaitu

senilai 0.07 seperti pada gambar 4.18.

(59)

Pada Gambar 4.19 merupakan potongan kode menghitung nilai dari LSH

dimana setelah signature matrix didapatkan maka akan dilakukan penghitungan

dari nilai LSH. Perhitungan dimulai dengan membagi signature matrix kedalam

row dan band berdasarkan hasil perhitungan sebelumnya yaitu 25 band dimana

setiap band terdiri dari 2 row yang kemudian disebut candidate pair sesuai dengan

gambar 4.18. Candidate pairs yang terdiri dari 2 row lalu diuji apakah memenuhi

threshold yang diinginkan yaitu 0.2 lalu dihitung dan dibagi dengan rumus

jaccard sehingga mendapatkan nilai dari LSH antara signature matrix yang diuji.

(60)

Tabel 4.3 adalah hasil dari pembagian candidate pairs dimana pada 0.2

LSH dan 50 permutasi adalah 25 bands dan 2 row. Bila langsung dihitung dengan

jaccard tanpa LSH maka akan mendapatkan 15 pasangan signature yang sama

sehingga 15 / 50 adalah 0.3 (signature similarity) dan nilai dari perhitungan

jaccard dengan LSH maka ada 14 candidate pairs yang memenuhi threshold LSH

0.2 sehingga 14 / 25 adalah 0.56. Hasil dapat terlihat pada screenshoot di Gambar

4.20.

Tabel 4.3 Signature Matrix

Signature Matrix0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Doc 1

0 1

0 0

0 0 0 0 3 0 0 0

0 1

1 23

0 0

0 0 0 0 0 1

0

Doc 2

0 0

3 1

1 0 0 1 0 0 1 0

1 0

0 23

2 1

2 0 1 0 0 0

1

Signature Matrix

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Doc 1

1

0 0

1 0 1 0 0 0

0 0 1 0 0 2

1 0 1 1

0 0

3 0 0 0

Doc 2

0

0 0

0 2 0 3 6 1

0 1 0 0 0 0

0 1 0 0

1 0

0 2 1 3

Gambar 4.20 adalah hasil screenshot dari perhitungan antara dokumen

skenario 1 dan dokumen skenario 3. Hasil menunjukan nilai LSH 0.56 dimana

sama dengan perhitungan pada Tabel 4.4.

(61)

4.3

Uji Coba

Uji coba dilakukan menggunakan data set 20 Newsgroups yang terdiri dari

20,000 dokumen yang dibagi ke dalam 20 kategori kecil dan 6 kategori besar yang

dapat dilihat pada Tabel 4.4. Dalam uji coba dokumen yang digunakan sebanyak

2,000 dokumen dimana 100 dokumen untuk masing-masing kategori kecil.

Pengujian dilakukan dengan memilih 1 buah dokumen diluar 2,000 dokumen yang

akan dibandingkan dengan 2,000 dokumen kemudian di uji dengan paremeter

permutasi dan threshold LSH lalu diukur precision, recall, dan f-measure.

Pengujian dilakukan sebanyak 10 kali.

Tabel 4.4 20Newsgroups dataset

comp.graphics

comp.os.ms-windows.misc

comp.sys.ibm.pc.hardware

comp.sys.mac.hardware

comp.windows.x

rec.autos

rec.motorcycles

rec.sport.baseball

rec.sport.hockey

sci.crypt

sci.electronics

sci.med

sci.space

misc.forsale

talk.politics.misc

talk.politics.guns

talk.politics.mideast

talk.religion.misc

alt.atheism

soc.religion.christian

Uji coba dimulai dengan melakukan pemilihan terhadap 1 dokumen lalu

2,000 dokumen serta opsi perhitungan kedalam aplikasi seperti pada Gambar 4.21.

(62)

Setelah selesai melakukan perhitungan aplikasi akan menampilkan

halaman result atau hasil seperti pada Gambar 4.22 lalu akan dilakukan

perhitungan dan dimasukan dalam tabel relevansi.

Gambar 4.22 Screenshoot Hasil

4.3.1 Uji Coba Perhitungan Relevansi

Pada pengujian, evaluasi aplikasi dilakukan dengan mengevaluasi nilai

ambang batas (threshold), skor kemiripan dokumen (similarity) dengan inputan

jumlah permutasi dan threshold LSH.

Keterangan Tabel 4.5

Dok = Dokumen yang diuji

P = Nilai Permutasi

(63)

T = Ambang batas

Dt = Jumlah dokumen yang terpanggil

Dr = Jumlah dokumen relevan yang terpanggil

Nr = Jumlah dokumen relevan dalam koleksi pengujian

F = F-Measure

Tabel 4.5 Perhitungan Precision dan Recall

Dok

P

LSH

(Waktu)

T

Dt

Dr

Nr Precision

(Dr/Dt)

Recall

(Dr/Nr)

F

Comp.

graphics-0

20

0.1

(6.192)

0.1 690

189 500 0.27391

0.378

0.31764

0.2

83

22

500 0.26506

0.044

0.07571

0.3

9

2

500 0.22222

0.004

0.00785

0.4

0

0

500

0

0

0

0.5

0

0

500

0

0

0

0.6

0

0

500

0

0

0

0.7

0

0

500

0

0

0

0.8

0

0

500

0

0

0

0.9

0

0

500

0

0

0

1.0

0

0

500

0

0

0

0.2

(5.202)

0.1 1397 367 500 0.26270

0.734

0.38692

0.2

650

183 500 0.28153

0.366

0.31826

0.3

236

76

500 0.32203

0.152

0.20652

0.4

57

22

500 0.38596

0.044

0.07899

0.5

12

2

500 0.16666

0.004

0.00781

0.6

1

0

500

0

0

0

0.7

0

0

500

0

0

0

0.8

0

0

500

0

0

0

0.8

0

0

500

0

0

0

1.0

0

0

500

0

0

0

0.3

(5.179)

0.1 1397 362 500 0.25912

0.724

0.38162

0.2

692

177 500 0.25578

0.354

0.29697

0.3

247

57

500 0.23076

0.144

0.15261

0.4

54

17

500 0.31481

0.034

0.06197

0.5

13

2

500 0.15384

0.004

0.00779

0.6

3

0

500

0

0

0

0.7

0

0

500

0

0

0

0.8

0

0

500

0

0

0

0.9

0

0

500

0

0

0

Gambar

Gambar 2.1 Jaccard Index  J(S, T) = |S∩T|
Gambar 2.2 Locality Sensitive Hashing
Gambar 2.3 Kurva S
Gambar  3.1  merupakan  flowchart  dari  Aplikasi.  Aplikasi  akan  mempersiapkan  segala  variabel  yang  dibutuhkan  berupa  tabel,  file  dan  list  file
+7

Referensi

Dokumen terkait

pengujian hipotesis daya tahan jantung paru (X 1 ) dan daya tahan otot tungkai (X 2 ) terhadap kemampuan tendangan sabit (Y) pada Atlet Putra Pencak Silat UKM Unsyiah

karakteristik manusia dan dalam bidang pendidikan merupakan hasil belajar. Kemampuan afektif merupakan bagian dari hasil belajar dan memiliki peran penting. Keberhasilan

Kertas ini mengkaji corak kemeruapan harga saham sektor ekonomi di Bursa Malaysia, di samping mengenal pasti sektor yang meruap secara berkelangsungan bagi tempoh masa sebelum,

Berdasarkan hasil pengamatan, diketahui bahwa spesies burung rangkong (Bucerotidae) yang terdapat di pegunungan Gugop Kemukiman Pulo Breuh Selatan Kecamatan Pulo Aceh

1) Dalam Pelaksanaannya Komisi Penyiaran Indonesia Daerah (KPID) Riau sudah menjalankan kewenangannya, sebagaimana kewenanganya yang diatur dalam pasal 8 Undang-Undang

Bu nedenle kredi aynı tarihte (14/12/2014) kapatıldığında ilgili ayda tahakkuk eden peşin komisyon tutarı olan 1.268,81 TL ve geri kalan sekiz aya ilişkin itfa edilmemiş

dengan menawarkan sejumlah kemudahan. Ditambah dengan pembeli digital Indonesia diperkirakan mencapai 31,6 juta pembeli pada tahun 2018, angka ini meningkat dari

Dari Gambar 1 tampak baik simulasi pada data suhu udara maupun data kecepatan angin memiliki rataan yang lebih mendekati data setelah menggunakan algoritma Filter