• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN UJI COBA

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

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.

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.

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.

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.

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.

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.

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.

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

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

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

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

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.

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.

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.

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.

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 Matrix25 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.

Dokumen terkait