Gambar 3.4 Sequence Diagram
Dari sequence diagram dapat dilihat bahwa file diproses dengan algoritma Porter dan Winowing dengan menginput file terlebih dahulu . Setelah proses stemming
dan fingerprint dilakukan, maka di dapat hasil akhir persentase kemiripan file yang satu dengan yang lain.
3.5 Perancangan algoritma
Flow chart merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat
dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya menerjemahkannya ke bentuk program dengan bahasa pemrograman.
3.5.1 Flow chart Porter Flow chart atau diagram alir pada stemming porter menggambarkan langkah-
langkah sistematis dari algoritma itu sendiri. Dimulai dengan menginput kata yang akan di stemm, lalu kata tersebut akan diproses sesuai dengan algoritma porter,
seperti yangdi gambarkan pada gambar 3.5 .
Universitas Sumatera Utara
Gambar 3.5 Flow Chart Stemmer Porter
3.5.2 Flow chart winnowing
Universitas Sumatera Utara
Pada flowchart winnowing pertama tentukan gram yang akan di bentuk, lalu bentuk gram dan hash. Setelah hash terbentuk, maka langkah selanjutnya window
pun di bentuk. Nilai-nilai dari minimal dari masing-masing window inilah yang akan menjadi nilai fingerprint untuk menghitung nilai kesamaan dokumen
tersebut.
Gambar 3.6 Flow chart Winnowing
mulai
Tentukan gram
Bentuk gram
Bentuk window Buat hash
Bentuk fingerprint
selesai
Universitas Sumatera Utara
3.5.3 Algoritma Porter Stemmer
Awalan-awalan pada stemmer ditentukan dengan langkah-langkah berikut. 1.
Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”.
2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah
proses tambahan untuk menentukan tipe awalannya. 3.
Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.
4. Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan
“none” maka awalan dapat dilihat pada Tabel 2. Hapus awalan jika ditemukan.
Tabel 3.2 Kombinasi Awalan Akhiran Yang Tidak Diijinkan
Awalan Akhiran yang tidak diizinkan
be- -i
di- -an
ke- -i, -kan
me- -an
se- -i, -kan
Tabel 3.3 Cara Menentukan Tipe Awalan Untuk awalan “te-”
Following Characters Tipe
Awalan Set 1
Set 2 Set 3
Set 4
Universitas Sumatera Utara
“-r-“ “-r-“
- -
None “-r-“
- -
ter-luluh “-r-“
not vowel or “-r-”
“-er-“ vowel
Ter
“-r-“ not vowel or
“-r-” “-er-“
not vowel
ter-
“-r-“ not vowel or
“-r-” not “-er-“ -
Ter
not vowel or “-r-”
“-er-“ Vowel
- None
not vowel or “-r-”
“-er-“ not vowel -
Te
Tabel 3.4 Jenis Awalan Berdasarkan Tipe Awalannya
Tipe Awalan Awalan yang harus dihapus
di- di-
ke- ke-
se- se-
te- te-
ter- ter-
ter-luluh Ter
Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan- aturan dibawah ini:
Universitas Sumatera Utara
1. Aturan untuk reduplikasi. 1.
Jika kedua kata yang dihubungkan oleh tanda penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “buku-buku” root
word-nya adalah “buku”. 2.
Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika
keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki
root word yang sama yaitu “balas”, maka root word “berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “bolak” dan “balik” memiliki
root word yang berbeda, maka root word-nya adalah “bolak-balik”.
2. Tambahan bentuk awalan dan akhiran serta aturannya.
1. Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-”
memiliki tipe awalan “mem-”. 2.
Tipe awalan “meng-“, kata yang diawali dengan awalan “mengk-” memiliki tipe awalan “meng-”.
Berikut contoh-contoh aturan yang terdapat pada awalan sebagai pembentuk kata dasar.
1. Awalan SE-
Se + semua konsonan dan vokal tetap tidak berubah Contoh :
Universitas Sumatera Utara
1.
Se + bungkus = sebungkus
2.
Se + nasib = senasib
3.
Se + arah = searah
4.
Se + ekor = seekor
2. Awalan ME-
Me + vokal a,i,u,e,o menjadi sengau “meng” Contoh :
1.
Me + inap = menginap
2.
Me + asuh = mengasuh
3.
Me + ubah = mengubah
4.
Me + ekor = mengekor
5.
Me + oplos = mengoplos Me + konsonan b menjadi “mem”
Contoh :
1.
Me + beri = member
2.
Me + besuk = membesuk Me + konsonan c menjadi “men”
Contoh :
1.
Me + cinta = mencinta
2.
Me + cuci = mencuci
Universitas Sumatera Utara
Me + konsonan d menjadi “men” Contoh :
1.
Me + didik = mendidik
2.
Me + dengkur = mendengkur Me + konsonan g dan h menjadi “meng”
Contoh :
1.
Me + gosok = menggosok
2.
Me + hukum = menghukum Me + konsonan j menjadi “men”
Contoh :
1.
Me + jepit = menjepit
2.
Me + jemput = menjemput Me + konsonan k menjadi “meng” luluh
Contoh :
1.
Me + kukus = mengukus
2.
Me + kupas = mengupas Me + konsonan p menjadi “mem” luluh
Universitas Sumatera Utara
Contoh :
1.
Me + pesona = mempesona
2.
Me + pukul = memukul Me + konsonan s menjadi “meny” luluh
Contoh :
1.
Me + sapu = menyapu
2.
Me + satu = menyatu Me + konsonan t menjadi “men” luluh
Contoh :
1.
Me + tanama = menanam
2.
Me + tukar = menukar Me + konsonan l,m,n,r,w menjadi tetap “me”
Contoh :
1.
Me + lempar = melempar
2.
Me + masak = memasak
3.
Me + naik = menaik
4.
Me + rawat = merawat
5.
Me + warna = mewarna
3. Awalan KE-
Ke + semua konsonan dan vokal tetap tidak berubah
Universitas Sumatera Utara
Contoh :
1.
Ke + bawa = kebawa
2.
Ke + atas = keatas
4. Awalan PE-
Pe + konsonan h,g,k dan vokal menjadi “per” Contoh :
1.
Pe + hitung + an = perhitungan
2.
Pe + gelar + an = pergelaran
3.
Pe + kantor + = perkantoran Pe + konsonan “t” menjadi “pen” luluh
Contoh :
1.
Pe + tukar = penukar
2.
Pe + tikam = penikam Pe + konsonan j,d,c,z menjadi “pen”
Contoh :
1.
Pe + jahit = penjahit
2.
Pe + didik = pendidik
3.
Pe + cuci = pencuci
4.
Pe + zina = penzina
Universitas Sumatera Utara
Pe + konsonan b,f,v menjadi “pem” Contoh :
1.
Pe + beri = pemberi
2.
Pe + bunuh = pembunuh Pe + konsonan “p” menjadi “pem” luluh
Contoh :
1.
Pe + pikir = pemikir
2.
Pe + potong = pemotong Pe + konsonan “s” menjadi “peny” luluh
Contoh :
1.
Pe + siram = penyiram
2.
Pe + sabar = penyabar Pe + konsonan l,m,n,r,w,y tetap tidak berubah
Universitas Sumatera Utara
Contoh :
1.
Pe + lamar = pelamar
2.
Pe + makan = pemakan
3.
Pe + nanti = penanti
4.
Pe + wangi = pewangi
3.5.4 Algoritma Winowing Langkah-langkah algoritma Winnowing :
1. Penghapusan karakter-karakter yang tidak relevan
whitespace insensitivity
, antara lain spasi atau tanda baca.
2. Pembentukan rangkaian gram dengan ukuran k.
3. Penghitungan nilai hash dari setiap gram.
4. Membagi ke dalam window tertentu.
5. Pemilihan beberapa nilai
hash
menjadi
document fingerprinting
.
6. Menentukan prosentase kesamaan antara 2 dokumen dengan persamaan Jaccard
Coefficient
Universitas Sumatera Utara
Winnowing memiliki rumus sebagai berikut:
Berikut salah satu contoh untuk menghitung nilai fingerprints dari suatu kata;
1. Saya belajar Hapus spasi = sayabelajar
Ditentukan Gram : 3 , Window : 3
Bentuk Gram Say | aya | yab | abe | bel | ela | laj | aja | jar
Nilai Hash: Hsay | b=2 | k=3
asciis 2
3 −1
+ asciia 2
2 −1
+ asciiy 2
1 −1
115 2
2
+ 97 2
1
+ 121 2
= 460 + 194 + 121 = 775 Haya | b=2 | k=3
asciia 2
3 −1
+ asciiy 2
2 −1
+ asciia 2
1 −1
97 2
2
+ 121 2
1
+ 97 2
= 388 + 242 + 97 = 727 Hyab | b=2 | k=3
asciiy 2
3 −1
+ asciia 2
2 −1
+ asciib 2
1 −1
Universitas Sumatera Utara
121 2
2
+ 97 2
1
+ 98 2
= 484 + 194 + 98 = 776 Habe | b=2 | k=3
asciia 2
3 −1
+ asciib 2
2 −1
+ asciie 2
1 −1
97 2
2
+ 98 2
1
+ 101 2
= 388 + 196 + 101 = 685 Hbel | b=2 | k=3
asciib 2
3 −1
+ asciie 2
2 −1
+ asciil 2
1 −1
98 2
2
+ 101 2
1
+ 108 2
= 392 + 202 + 108 = 702 Hela | b=2 | k=3
asciie 2
3 −1
+ asciil 2
2 −1
+ asciia 2
1 −1
101 2
2
+ 108 2
1
+ 97 2
= 404 + 216 + 97 = 717 Hlaj | b=2 | k=3
asciil 2
3 −1
+ asciia 2
2 −1
+ asciij 2
1 −1
108 2
2
+ 97 2
1
+ 106 2
= 432 + 194 + 106 = 732 Haja | b=2 | k=3
asciia 2
3 −1
+ asciij 2
2 −1
+ asciia 2
1 −1
97 2
2
+ 106 2
1
+ 97 2
= 388 + 212 + 97 = 697 Hjar | b=2 | k=3
asciij 2
3 −1
+ asciia 2
2 −1
+ asciir 2
1 −1
106 2
2
+ 97 2
1
+ 114 2
= 424 + 194 + 114 = 732 Nilai Hash : 775 | 727 | 776 | 685 | 702 | 717 | 732 | 697 | 732
Maka didapat Window : {775 727 776}
{727 776 685} {776 685 702}
{685 702 717} {702 717 732}
{717 732 697} {732 697 732}
Universitas Sumatera Utara
Sehingga diperoleh nilai Fingerprint : [727, 1] [685,2] [702,5] [697,6]
2. Saya bermain
Ditentukan Gram : 3, Window : 3
Bentuk Gram say | aya | yab | abe | ber | erm | rma | mai | ain
Nilai Hash: Hsay | b=2 | k=3
asciis 2
3 −1
+ asciia 2
2 −1
+ asciiy 2
1 −1
115 2
2
+ 97 2
1
+ 121 2
= 460 + 194 + 121 = 775 Haya | b=2 | k=3
asciia 2
3 −1
+ asciiy 2
2 −1
+ asciia 2
1 −1
97 2
2
+ 121 2
1
+ 97 2
= 388 + 242 + 97 = 727 Hyab | b=2 | k=3
asciiy 2
3 −1
+ asciia 2
2 −1
+ asciib 2
1 −1
121 2
2
+ 97 2
1
+ 98 2
= 484 + 194 + 98 = 776 Habe | b=2 | k=3
asciia 2
3 −1
+ asciib 2
2 −1
+ asciie 2
1 −1
97 2
2
+ 98 2
1
+ 101 2
= 388 + 196 + 101 = 685 Hber | b=2 | k=3
asciib 2
3 −1
+ asciie 2
2 −1
+ asciir 2
1 −1
98 2
2
+ 101 2
1
+ 114 2
= 392 + 202 + 114 = 708 Herm | b=2 | k=3
asciie 2
3 −1
+ asciir 2
2 −1
+ asciim 2
1 −1
101 2
2
+ 114 2
1
+ 109 2
= 404 + 228 + 109 = 741 Hrma | b=2 | k=3
asciir 2
3 −1
+ asciim 2
2 −1
+ asciia 2
1 −1
114 2
2
+ 109 2
1
+ 97 2
= 456 + 218 + 97 = 771 Hmai | b=2 | k=3
asciim 2
3 −1
+ asciia 2
2 −1
+ asciii 2
1 −1
109 2
2
+ 97 2
1
+ 105 2
= 436 + 194 + 105 = 735 Hain | b=2 | k=3
asciia 2
3 −1
+ asciii 2
2 −1
+ asciin 2
1 −1
Universitas Sumatera Utara
97 2
2
+ 105 2
1
+ 110 2 = 388 + 210 + 110 = 708
Nilai Hash : 775 | 727 | 776 | 685 | 708 | 741 | 771 | 735 | 708 Maka didapat Window :
{775 727 776} {727 776 685}
{776 685 708} {685 708 741}
{708 741 771} {741 771 735}
{771 735 708} Dari kalimat pertama dan kedua didapat nilai fingerprint nya sebagai berikut:
Fingerprint1 : [727, 1] [685,2][702,5] [697,6] Fingerprint2 : [727,1] [685,2] [708,5][735,6]
3.5.5 Perhitungan kemiripan
Untuk menghitung kemiripan dari dua dokumen tersebut, diperlukan Jaccard’s Similarity Coefficient, dengan rumus :
│ Aᴖ B│ DA,B = ________________ X 100
│ AᴗB│- │ Aᴖ B│
DA,B merupakan nilai similarity ,
Universitas Sumatera Utara
│ Aᴖ B│ jumlah dari fingerprints dokumen 1 dan 2 yang sama,
│ AᴗB│ ialah jumlah fingerprints dokumen 1 dan 2 dikurangi jumlah yang sama.
Sehingga dari rumus bisa dihitung tingkat kemiripan dari kalimat pertama dan kedua ;
Kesamaan : 2 6 100 = 33,3
Penggunaan nilai window yang semakin besar dapat mempengaruhi dalam waktu proses, karena semakin besar nilai dari suatu window mempengaruhi proses
pembentukan nilai-nilai hashing yang semakin kecil. Selain itu, nilai k-gram dan basis juga mempengaruhi dalam memberikan persentasi kemiripan yang diperoleh sistem
itu sendiri.
3.6 Perancangan Sistem