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.
                        Dalam dokumen
                        
    Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP
                        (Halaman 42-61)