Analisis Kebutuhan Flowchart Algoritma Galil-Seiferas

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