Algoritma Rabin-Karp sebagai berikut :
1 function RabinKarp
string s[1..n], string sub[1..m]
2 hsub :-hashsub[1..m]
3 hs :- hashs[1..m]
4 for i from 1 to n
5 if
hs – hsub
6 if s[ i..i+m-1] – sub
7 return
i
8 hs :- hash s[i+1..i+m]
9 return not found Alsasian, 2006
2.4 Dice Coefficient Similarity
Dice Coefficient Similarity digunakan untuk menghitung kesamaan dari dokumen. Rumus dari Dice Coefficient Similarity adalah :
2 | X ∩ Y |
D X , Y = ————— 3
| X | + | Y | Dimana:
X : Nilai Dokumen 1
Y : Nilai Dokumen 2
Dice Coefficient adalah rumus umum untuk menghitung kemiripan dokumen dengan mengalikan 2 jumlah nilai hash yang sama antara dokumen pertama dengan nilai hash
dokumen kedua kemudian membaginya dengan jumlah nilai hash dokumen pertama dengan nilai hash dokumen kedua.
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem merupakan tahap awal dalam melakukan penelitian. Tujuan dari analisis sistem adalah untuk mengetahui masalah-masalah yang ada dalam pembuatan
sistem. Analisis sistem merupakan teknik pemecahan masalah dengan menggambarkan proses-proses yang ada dalam sistem untuk mendapatkan keluaran
yang sesuai dengan kebutuhan user.
3.1.1 Analisis Masalah
Analisis masalah sistem dirancang menggunakan cause-and-effect analisis.
3.1.1.1 Cause-and-Effect analisis
Cause-and-Effect analisis adalah teknik menentukan sebab dan efek dari masalah yang dipelajari. Efek dapat menjadi gejala dari masalah yang lebih berakar yang pada
akhirnya harus dianalisis sebab dan akibat sehingga tidak menghasilkan gejala masalah lain. Seperti terlihat pada tabel 3.1.
Tabel 3.1 Cause-and-Effect Analysis
Cause-and-Effect Analysis System Improvement Objective
Problem or Opportunit
Cause and Effects System
Objective System Constraint
Pada umumnya deteksi
kemiripan file misalnya skripsi
masih dilakukan secara manual
1. Diperlukan sistem pendeteksi
kemiripan file. 2. Deteksi kemiripan
antar file secara manual
menghabiskan banyak waktu.
Diperlukan sistem yang
dapat mendeteksi kemiripan kata
dalam file teks. Tidak tersedianya
sistem pendeteksi kemiripan file teks
dengan algoritma Rabin-Karp
menggunakan stemming Nazief dan
Adriani
Diagram Ishikawa fishbone diagram sering disebut diagram sebab akibat. Diagram ini membantu mengidentifikasi, mengeksplorasi dan menggambarkan masalah dengan
mengikutsertakan sebab dan akibat dari permasalahan dalam visual grafis. Dengan diagram ishikawa ini proses pencapaian sistem akan sangat terbantu.
Masalah utama dari sistem yang akan dirancang pada skripsi ini adalah bagaimana membuat sebuah sistem pendeteksi kemiripan file dengan algoritma Rabin Karp dan
stemming Nazief dan Adriani. Di bawah ini adalah diagram ishikawa untuk analisis permasalahan sistem:
Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem
Pada diagram ishikawa gambar 3.1, masalah utama ditunjukkan pada segi empat yang berada paling kanan bagian kepala diagram ishikawa. Aspek ditunjukkan pada
segiempat yang dihubungkan ke ke garis utama garis horizontal menuju bagian kepala, sedangkan sebab – akibat ditunjukkan dalam bentuk tanda panah horizontal kecil pada
masing – masing kategori masalah.
3.1.2 Analisis Persyaratan Requirement Analysis
Analisis Persyaratan berguna untuk menentukan syarat-syarat yang diperlukan untuk membuat sebuah sistem. Analisis persyaratan sebuah sistem dapat dikelompokkan
menjadi 2 bagian yaitu, analisis fungsional dan analisis non-fungsional.
3.1.2.1 Analisis Fungsional Sistem
Analisis fungsional sistem merupakan kegiatan pelayanan yang harus dimiliki oleh sistem. Dapat berupa input, output, proses atau data yang tersimpan. Pada fase ini dapat
diketahui hal-hal apa saja yang dapat dilakukan oleh sistem, seperti:
Kata di-stem mengunakan stemming Nazief dan
Adriani Kemudian dihitung nilai
hash menggunakan Algoritma Rabin-Karp
Algoritma stemming Nazief dan Adriani
Algoritma Rabin-Karp
File berekstensi
.pdf Membutuhkan
sistem pendeteksi kemiripan file
Pengguna Metode
Deteksi tingkat kemiripan file
teks berbentuk skripsi
Mesin Prosedur
1. Sistem hanya mampu mendeteksi file berekstensi pdf. 2. Sistem dapat membaca file skripsi berekstensi pdf yang akan dibandingkan yang
diinput user dan kemudian disimpan ke database. 3. Sistem dapat melakukan proses preprocessing dengan stemming Nazief dan Adriani.
4. Sistem dapat melakukan proses perhitungan persentase kemiripan dengan algoritma Rabin Karp.
5. Sistem dapat menampilkan hasil persentase perhitungan kemiripan.
3.1.2.2 Analisis Non Fungsional Sistem
Analisis non fungsional sistem adalah karakteristik yang menentukan kepuasan sebuah sistem seperti performa, kemudahan penggunaan, anggaran biaya, efisiensi dan
dokumentasi yang mampu bekerja tanpa mengganggu fungsionalitas sistem lainnya. Analisis non fungsional sistem dari sistem yang dibangun yaitu dari segi
performa adalah sistem dapat mendeteksi file teks yang berbentuk skripsi dengan baik. Dari segi kemudahan penggunaan adalah sistem yang ditampilkan user friendly dan
menarik sehingga user mudah menggunakan sistem dan tidak mendapatkan kesulitan dalam mempelajari sistem. Dari segi anggaran biaya adalah sistem memiliki kemampuan
bekerja dengan baik tanpa harus mengeluarkan biaya tambahan untuk perangkat keras dan perangkat lunak. Dari segi efisiensi adalah sistem tidak memerlukan waktu yang
cukup lama dalam pemrosesan. Dari segi dokumentasi adalah sistem dapat menyimpan file yang sudah diproses.
3.1.3 Pemodelan Sistem dengan Use Case
Pemodelan sistem dilakukan untuk memperoleh gambaran secara jelas mengenai objek- objek apa saja yang akan berinteraksi dengan sistem dan juga hal-hal apa saja yang harus
dilakukan sistem agar berfungsi dengan baik menurut fungsionalitasnya. Pada penelitian ini dilakukan analisis dan perancangan sistem pendeteksi kemiripan file teks yang
berbentuk skripsi dengan algoritma Rabin Karp dan stemming Nazief dan Adriani.
3.1.3.1 Diagram Use Case
Pada sistem ini, Use case diagram digunakan untuk pemodelan fungsional sistem. Diagram use case merupakan diagram yang mendeskripsikan interaksi tipikal antara para
pengguna sistem dengan sistem. Masing-masing diagram use case memiliki actor, use case, sequence diagram dan hubungan antar mereka. Pada sistem ini actor sebagai
pengguna user dan yang dapat menginput file untuk dideteksi tingkat kemiripannya dengan file lain yang ada di database sistem seperti pada Gambar 3.2.
User «extends»
System
Membandingkan Skripsi
Melihat Daftar Skripsi
Stemming Nazief dan Adriani
Algoritma Rabin-Karp
Dice Coefficient Similarity
«extends» «extends»
Gambar 3.2 Use Case Diagram
Pada diagram use case yang ditunjukkan pada Gambar 3.2 diatas user juga dapat berperan sebagai admin. User menginputkan file yang akan dibandingkan dengan file
yang ada di database sistem, dimana hanya file yang berekstensi .pdf yang dapat diproses sistem. Kemudian sistem memproses file dengan algoritma yang dipakai.
3.1.3.2 Use Case Membandingkan Skripsi
Berikut ini merupakan tabel dokumentasi naratif dari use case membandingkan skripsi :
Tabel 3.2 Dokumentasi Naratif Use Case Membandingkan skripsi
Nama Use Case Membandingkan skripsi
Aktor AdminUser
Deskripsi Use Case ini berfungsi untuk membandingkan skripsi
menggunakan algoritma Rabin Karp dan stemming Nazief dan Adriani
Pre Condition Skripsi yang akan dibandingkan sudah diinput, sistem telah
dieksekusi Normal Flow
Kegiatan Aktor Respon Sistem
Langkah 1: User
menginputkan nim dan judul skripsi yang akan dibandingkan
Langkah 3: User menekan
tombol pilih skripsi
Langkah 5: User memilih
skripsi yang akan dibandingkan
Langkah 7: User menekan
tombol bandingkan untuk memulai proses
Langkah 2: Sistem menyimpan
ke database dan menampilkan nim dan judul skripsi yang baru
diinput
Langkah 4: Sistem
menampilkan file dialog
Langkah 6: Sistem menyimpan
lokasi skripsi dan menginputnya untuk dibandingkan
Langkah 8: Sistem melakukan
proses perbandingan dengan algoritma Rabin Karp dan
stemming Nazief dan Adriani
Langkah 9: Sistem
menampilkan persentase kemiripan skripsi yang diinput
dengan skripsi yang sudah tersimpan di database sistem
Past Condition User dapat melihat hasil perhitungan kemiripan skripsi
3.1.3.3 Activity Diagram Membandingkan Skripsi
Activity Diagram untuk use case Membandingkan Skripsi dapat dilihat pada gambar 3.3:
USER SISTEM
Menekan tombol “pilih skripsi”
Isi skripsi ditampilkan
Memproses skripsi dengan stemming Nazief dan Adriani
Membentuk Hash menggunakan algoritma Rabin-
Menginput nim dan judul skripsi yang
akan dibandingkan
Menyimpan nim dan judul ke database
Menekan tombol “Masukkan”
Menampilkan nim dan judul yang baru diinput
Menekan tombol “proses”
Gambar 3.3 Activity Diagram Membandingkan Skripsi
3.1.3.4 Use Case Algoritma Stemming Nazief dan Adriani
Tabel dokumentasi naratif dari use case algoritma stemming Nazief dan Adriani dapat dilihat pada tabel 3.3.
Tabel 3.3 Dokumentasi Naratif Use Case Algoritma Stemming Nazief dan Adriani
Nama Use Case Algoritma Stemming Nazief dan Adriani
Aktor Sistem
Deskripsi Use Case ini berfungsi untuk melakukan proses stemming kata
Menampilkan hasil persentase kemiripan antar file skripsi
Menampilkan nilai Hash hasil perhitungan
Menekan tombol “Masukkan ke
database” Memasukkan nilai hash yang
didapat ke database
Menghitung nilai kemiripan antar skripsi dengan
membandingkan nilai hash skripsi yang baru diinput
dengan skripsi yang sudah disimpan di database
menggunakan algoritma Nazief dan Adriani Pre Condition
User sudah mengklik tombol proses pada sistem Normal Flow
Kegiatan Aktor Respon Sistem
Langkah 1: User menginput
file
Langkah 2: Sistem mengambil
kata
Langkah 3: Sistem menghapus
partikel –lah, -kah, -pun.
Langkah 4: Sistem menghapus
kata ganti milik –ku, -mu, -nya.
Langkah 5: Sistem menghapus
akhiran -i, -an.
Langkah 6:
Sistem menghapus awalan se-, ke-, di-, ter-, ber-,
pe-, me-, per-.
Langkah 7:
Sistem memeriksa apakah kata merupakan kata
dasar Past Condition
Sistem memperoleh kata dasar
3.1.3.5 Activity Diagram Algoritma Stemming Nazief dan Adriani
Acitvity Diagram dari use case algoritma Stemming Nazief dan Adriani dapat dilihat pada gambar 3.4.
USER SISTEM
Gambar 3.4 Activity Diagram Algoritma Stemming Nazief dan Adriani
3.1.3.6 Use Case Algoritma Rabin-Karp
Tabel dokumentasi naratif dari use case algoritma Rabin-Karp dapat dilihat pada tabel 3.4.
Input File
Menghapus partikel -lah, -kah, -pun
Menghapus kata ganti milik –ku, -mu, -nya
Menghapus akhiran –i, -an
Menghapus awalan se-, ke-, di-, ter-, ber-, pe-, per-, me-
Memeriksa apakah kata dasar Mengambil kata
Tabel 3.4 Dokumentasi Naratif Use Case Algoritma Rabin-Karp
Nama Use Case Algoritma Rabin-Karp
Aktor Sistem
Deskripsi Use Case ini berfungsi untuk mendapat nilai hash
Pre Condition User sudah menekan tombol proses pada sistem
Normal Flow Kegiatan Aktor
Respon Sistem
Langkah 1: User menginput
file skripsi
Langkah 5: User dapat melihat
nilai hash file skripsi yang diinput
Langkah 2: Sistem membentuk
gram
Langkah 3: Sistem membentuk
hash
Langkah 4: Sistem menyimpan
nilai hash ke database
Past Condition Sistem menampilkan nilai hash
3.1.3.7 Activity Diagram Algoritma Rabin-Karp
Acitvity Diagram dari use case Algoritma Rabin-Karp dapat dilihat pada gambar 3.5.
USER SISTEM
Gambar 3.5 Activity Diagram Algoritma Rabin-Karp
3.1.3.8 Use Case Dice Coefficient Similarity
Tabel dokumentasi naratif dari use case Dice Coefficient Similarity dapat dilihat pada tabel 3.5.
Tabel 3.5 Dokumentasi Naratif Use Case Dice Coefficient Similarity
Nama Use Case Dice Coefficient Similarity
Aktor Sistem
Deskripsi Use Case ini berfungsi untuk menghitung persentase kemiripan
Input file skripsi
Menekan tombol proses Membentuk Gram
Membentuk hash
Menyimpan nilai hash ke database
Menampilkan nilai hash
file Pre Condition
User sudah berada di Form Kemiripan Normal Flow
Kegiatan Aktor Respon Sistem
Langkah 1: User melihat form
kemiripan pada sistem
Langkah 2: Sistem mengambil
nilai hash
Langkah 3: Sistem menghitung
persentase kemiripan skripsi dengan rumus Dice Coefficient,
rumus umum untuk menghitung kemiripan dokumen, yaitu
dengan mengalikan 2 jumlah nilai hash yang sama antara
dokumen pertama dengan nilai hash dokumen kedua kemudian
membaginya dengan jumlah nilai hash dokumen pertama
dengan nilai hash dokumen kedua.
Langkah 4: Sistem menyimpan
nilai persentase file skripsi ke database.
Langkah 5:
Sistem menampilkan presentase
kemiripan file skripsi. Past Condition
Sistem menampilkan persentase kemiripan antar skripsi pada Form Kemiripan
3.1.3.9 Activity Diagram Dice Coefficient Similarity
Acitvity Diagram dari use case Dice Coefficient Similarity dapat dilihat pada gambar 3.6.
USER SISTEM
Gambar 3.6 Activity Diagram Dice Coefficient Similarity
Mengambil nilai hash
Menghitung persentase kemiripan skripsi dengan rumus Dice
Coefficient Similarity 2 | X
∩ Y | D X , Y = —————
| X | + | Y |
Menyimpan nilai hasil persentase ke database
Melihat form kemiripan pada sistem
Menampilkan persentase kemiripan file skripsi pada Form Kemiripan
3.1.3.10 Use Case Melihat Skripsi
Tabel dokumentasi naratif dari use case melihat skripsi dapat dilihat pada tabel 3.6.
Tabel 3.6 Dokumentasi Naratif Use Case Melihat Skripsi
Nama Use Case Melihat skripsi
Aktor AdminUser
Deskripsi Use Case ini berfungsi untuk melihat daftar skripsi yang sudah
diproses menggunakan algoritma Rabin Karp dan stemming Nazief dan Adriani dan sudah disimpan di database
Pre Condition User sudah berada pada tampilan daftar skripsi
Normal Flow Kegiatan Aktor
Respon Sistem
Langkah 1: User melihat
daftar skripsi yang sudah disimpan ke database
Langkah 2: User mengklik
judul skripsi yang akan dilihat
Langkah 3: Sistem
menampilkan Judul Skripsi, isi skripsi dan nilai hash yang
sudah disimpan di database Past Condition
Sistem menampilkan data skripsi
3.1.3.11 Activity Diagram Melihat Skripsi
Acitvity Diagram dari use case Melihat skripsi dapat dilihat pada gambar 3.7.
USER SISTEM
Gambar 3.7 Activity Diagram Melihat Skripsi
3.1.4 Analisis Proses Sistem
Analisis proses pada sistem dapat digambarkan dengan Sequence Diagram. Sequence Diagram berfungsi menunjukkan hubungan statis antara actor dan lifeline. Sequence
Diagram untuk sistem pendeteksi tingkat kemiripan file teks menggunakan algoritma Rabin-Karp dan stemming Nazief dan Adriani dapat dilihat pada gambar 3.8.
Melihat daftar skripsi yang sudah disimpan ke database
Mengklik judul skripsi yang akan dilihat
Menampilkan judul skripsi, isi skripsi dan nilai hash yang sudah
disimpan ke database
Sistem Stemming Nazief dan Adriani
Algoritma Rabin-Karp Dice Coefficient Simillarity
kemiripan Cek_Kamuskata
Del_Inflection_Suffixeskata Del_Derivation_Suffixeskata
Del_Derivation_Prefixeskata hapus_spasiteks
pembentukan_gramteks, kgram pembentukan_hashgram
diceh1, h2 hitung_hash_samahash1, hash2
Gambar 3.8 Sequence Diagram Sistem
3.1.5 Flow Chart
Flow chart adalah diagram alir proses .
3.1.5.1 Flow Chart Algoritma Rabin-Karp
Flow Chart untuk algoritma Rabin-Karp dapat kita lihat pada gambar 3.9 berikut:
Mulai
Selesai Tentukan
Gram
Bentuk Gram
Bentuk Hash
Gambar 3.9 Flow Chart Algritma Rabin-Karp
3.1.5.2 Flow Chart Algoritma Stemming Nazief dan Adriani
Flow Chart untuk algoritma Stemming Nazief dan Adriani dapat kita lihat pada gambar
3.10 berikut ini: