penyebab masalah tersebut digambarkan dengan tanda panah yang mengarah ke masing-masing kategori.
3.1.1 Analisis Kebutuhan
Analisis kebutuhan sistem dibagi menjadi dua, yaitu analisis kebutuhan non- fungsional dan analisis kebutuhan fungsional. Pada tahapan analisis ini sangat
dibutuhkan dalam mendukung kinerja sistem, apakah sistem yang dibuat telah sesuai dengan kebutuhan atau belum, karena kebutuhan sistem akan mendukung tercapainya
tujuan yang diharapkan.
3.1.1.1 Analisis Fungsional
Analisis kebutuhan fungsional merupakan jenis kebutuhan yang berisi proses-proses apa saja yang nantinya dilakukan oleh sistem. Kebutuhan fungsional juga berisi
informasi-informasi apa saja yang harus ada dan dihasilkan oleh sistem. Berikut ini adalah kebutuhan fungsional dari sistem, yaitu:
a. Sistem dapat menginput data kamus oleh user.
b. Sistem dapat menampilkan data kamus.
c. Sistem dapat melakukan pencarian string kata pada kamus dengan
menggunakan algoritma Galil-Seiferas dan algoritma Not So Naϊve.
d. Sistem dapat menampilkan waktu proses serta tingkat akurasi pencarian dari
kedua algoritma tersebut.
3.1.1.2 Analisis Non-fungsional
Persyaratan non-fungsional sistem merupakan persyaratan apa yang harus dilakukan sistem. Beberapa persyaratan non-fungsional yang harus dipenuhi oleh sistem yang
dirancang adalah sebagai berikut. 1.
Performa Sistem yang akan dibangun harus dapat menunjukkan hasil dari proses pencarian
string kata. 2.
Mudah dipelajari dan digunakan Sistem yang akan dibangun harus sederhana dan mudah di pelajari oleh pengguna
user.
Universitas Sumatera Utara
3. Dokumentasi
Sistem yang akan dibangun dapat menyimpan saran kata yang ditambahkan oleh pengguna user ke dalam database.
4. Kontrol
Sistem yang akan dibangun harus memiliki pesan not found jika kata yang di ketikkan pengguna user tidak ada di dalam database kata.
5. Hemat biaya
Sistem yang akan dibangun tidak memerlukan perangkat tambahan dalam proses eksekusinya.
3.1.2 Pemodelan
Pemodelan sistem dapat dibagi menjadi Use Case Diagram, Activity diagram, dan Sequence diagram yang akan menggambarkan alur kerja dari sistem perbandingan
algoritma Galil-Seiferas dan algoritma Not So Naϊve.
3.1.2.1 Pemodelan Persyaratan Sistem dengan Use Case
Unified Modelling Language UML merupakan bentuk perancangan dan dokumentasi perangkat lunak berbasis pemrograman berorientasi objek. Pada
penelitian ini, bentuk perancangan UML menggunakan beberapa diagram, yaitu use case diagram, activity diagram dan sequence diagram. Use case adalah salah satu
pemodelan yang digunakan untuk memodelkan persyaratan sistem. Dengan use case ini digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja yang dapat
dilakukan dengan sistem. Diagram menunjukkan interaksi antara pengguna dan entitas eksternal lainnya
dengan sistem yang sedang dikembangkan. Lebih jelasnya use case diagram digunakan untuk menggambarkan interaksi antara user dengan sistem. Pada sistem ini
user menginputkan data kamus serta melakukan pencarian kata pada kamus hukum.
Universitas Sumatera Utara
Gambar 3.2 Use Case Diagram
Use case pada Gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user, user dapat melakukan pencarian kata dan akan mengecek kata tersebut ada atau tidak
ada pada kamus kata serta dapat menambahkan kata atau saran kata istilah baru pada kamus kata pada aplikasi tersebut. Selanjutnya proses pendeskripsian pencarian kata
dapat dilihat pada Tabel 3.1. Perbandingan Algoritma Galil-Seiferas dan Algoritma
Not So Naϊve
Pemasukan string kata huruf
Menampilkan daftar kata dan saran dengan
algoritma Galil-Seiferas dan
Not So Naϊve USER
«Includes»
Menampilkan hasil pencarian dan waktu
proses
Menambah data kata kamus
«Includes»
Universitas Sumatera Utara
Tabel 3.1 Dokumentasi Naratif Use Case
Nama Use case
Proses pencarian string kata
Actors User
Description
Use case ini mendeskripsikan Pencarian string kata dengan
algoritma Galil-Seiferas dan algoritma Not So Naϊve
.
Pre-Condition -
Basic Flow Kegiatan pengguna
Respon sistem
User memasukkan inputan karakter berupa huruf
Menunggu keseluruhan proses inputan selesai
Alternate Flow
User dapat
memilih alternatif saran
algoritma Galil-Seiferas
dan algoritma
Not So Naϊve
, tambah kata dan tampilan
lainnya.
Post-Condition
User mengetahui hasil pencarian, waktu proses alternatif algoritma
Galil-Seiferas dan algoritma Not So Naϊve
.
3.1.2.2 Activity Diagram
Activity diagram menggambarkan proses-proses yang terjadi ketika aktivitas dimulai sampai aktivitas berhenti. Sedangkan use case menggambarkan bagaimana aktor
menggunakan sistem untuk melakukan aktivitas. Aktivitas sistem pencarian string kata dengan algoritma Galil-Seiferas dan algoritma
Not So Naϊve ini didokumentasikan kedalam activity diagram seperti gambar 3.3 berikut.
Universitas Sumatera Utara
Gambar 3.3 Activity Diagram
Didalam activity diagram yang terlihat pada Gambar 3.3 dapat dijelaskan bahwa user harus memulai proses terlebih dahulu. Lalu sistem menampilkan form
pencarian. Selanjutnya user meng-input kata yang ingin dicari terjemahannya. Lalu sistem melakukan proses pencarian kata dengan menggunakan algoritma untuk
melakukan pencarian kata dan kemudian sistem melakukan pemanggilan fungsi mencari apakah list kata ditemukan. Jika kata ditemukan maka sistem akan
Mulai User
Sistem
Memilih tambah kata kamus Input string kata
Melakukan pencarian kata Dengan menggunakan algoritma
Kata tidak ditemukan
Menampilkan form tambah kata Menampilkan Kata
Waktu proses dan kata ditemukan
Menampilkan form Pencarian
= list kata
tidak
ya
Universitas Sumatera Utara
menampilkan kata, waktu proses, dan jumlah kata yang ditemukan. Jika kata tidak ditemukan pada sistem maka user akan memilih menambah data kamus lalu sistem
akan menampilkan form tambah data kamus.
Tabel 3.2 Keterangan Bagian-Bagian Rancangan Form Pencarian
Nama Use case
Proses pencarian string kata
Actors User
Description
Use case ini mendeskripsikan pencarian string kata dengan
algoritma Galil-Seiferas dan algoritma Not So Naϊve
.
Pre-Condition Sudah masuk ke menu utama sistem pencarian kata
Event detail
Kegiatan user Respon sistem
1. Menginputkan kata yang ingin dicari
2. Menekan tombol
Proses
3. Menekan tombol
Cancel
4. Menekan tombol tambah kata
5. Menambahkan kata yang baru
1. Sistem menampilkan halaman yang dipilih
2. Sistem
akan melakukan
searching pada database 3. Tampilkan hasil pencarian dan
waktu proses dalam pencarian kata 4. Menyimpan kata yang baru.
Pasca-Condition
Menampilkan hasil
pencarian kata
3.1.2.3 Sequence Diagram
Sequence diagram merupakan interaksi antara aktor-aktor yang terdapat dalam suatu sistem, dan terjadi komunikasi yang berupa pesan. Pada Gambar 3.4 berikut dijelaskan
sequence diagram sistem pencarian kata.
Universitas Sumatera Utara
Gambar 3.4 Sequence Diagram Sistem
Dari Gambar 3.4 dapat dijelaskan dengan sequence diagram mengenai informasi sistem yang berjalan saat ini, sehingga dengan diagram ini dapat
menggambarkan pergerakan sebuah objek dan pesan yang terjadi di dalam sistem penyampaian informasi.
3.1.3 Flowchart Algoritma Galil-Seiferas
Menampilkan Halaman Utama
Halaman Utama :Halaman Utama
:Halaman Hasil Pencarian User
Memilih tombol Pencarian Kata
Memilih Tombol Tambah Kata Menampilkan Halaman Tambah Kata
Menampilkan halaman Pencarian Kata :Halaman Tambah Kata
Universitas Sumatera Utara
Flowchart algoritma Galil-Seiferas adalah alur proses yang terjadi dalam pencarian kata seperti pada Gambar 3.5.
Start
m = length x n = length y
p = n-m ?
x[s+q] == y[p+s+q]
?
++q
q==m-s x[0..p] ==
y[p..s+1] ?
stop q == p1 +
q1 ?
p += p1 q -= p1
p += q k+1 q = 0
Input x = string yang dicari
y = tempat pencarian
tidak
Ya
++p
Ya tidak
tidak
Ya
Output p
Ya tidak
Gambar 3.5 Flowchart void search Algoritma Galil-Seiferas
Universitas Sumatera Utara
Start
m = length x n = length y
Input x = string yang dicari
y = tempat pencarian
x[s+q1] == x[s+p1+q1]
?
++q1
p1 + q1 = kp1
? s += p1
q1 -= p1
p1 += q1 k+1 q1 = 0
p1 = p2 ?
stop s=0
p1=1 Ya
tidak
Ya tidak
Ya
tidak newP1
Gambar 3.6 Flowchart void parse Algoritma Galil-Seiferas
Universitas Sumatera Utara
Start
m = length x n = length y
Input x = string yang dicari
y = tempat pencarian
x[s+q2] == x[s+p2+q2]
P2+q2kp2 ?
++q2
p2 + q2 = kp2
? Ya
tidak
Ya s + p2 + q2
== m ?
p2 += q2 k+1 q2 = 0
stop tidak
tidak
Ya
q2== p1+q1 ?
p2+=p1 q2-=p1
Ya tidak
++p2
parse search
newP2
Gambar 3.7 Flowchart void newP2 Algoritma Galil-Seiferas
Universitas Sumatera Utara
Start
m = length x n = length y
Input x = string yang dicari
y = tempat pencarian
x[s+q1] == x[s+p1+q1]
?
++q1
p1 + q1 = kp1
?
Ya
tidak Ya
s + p1 + q1 == m
?
p2 = q1 q2 = 0
p1 += q1 k+1 1 = 0
stop tidak
tidak Ya
newP2
search
Gambar 3.8 Flowchart void newP1 Algoritma Galil-Seiferas
Universitas Sumatera Utara
Pada algoritma Galil-Seiferas, pemanggilan fungsi dilakukan secara rekursif. Gambar 3.5, Gambar 3.6, Gambar 3.7, dan Gambar 3.8 menggambarkan alur pada
proses masing-masing void yang terdapat pada algoritma Galil-Seiferas untuk melakukan proses pencarian dimana proses awal yang diilakukan adalah
menginisialisasi variabel yaitu p, q, s untuk memasukkan pola didalam teks pencarian sebelum proses dimulai. Proses pencarian dimulai dari karakter paling kiri pattern.
Setiap karakter akan di cocokkan antara pola dan teks sampai ditemukan kecocokan. Dan jika terjadi kecocokan maka mengeluarkan hasil pencarian dan selesai.
3.1.4 Flowchart Algoritma Not So Naϊve