BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem merupakan pengumpulan, penginterpretasi dan pendiagnosaan persoalan sehingga menjadi prasyarat untuk mendesain sistem dan spesifikasi untuk sebuah sistem yang baru atau sistem yang diperbaiki.
Analisis sistem harus menjelaskan bentuk-bentuk kerja sistem secara terperinci dan teliti sehingga memudahkan pengembangan sistem ketika melakukan desain sistem secara menyeluruh.
3.1.1. Analisis Masalah
Analisis masalah merupakan tahapan awal dalam analisis sistem, karena analisis masalah bertujuan untuk mengindetifikasi pokok-pokok masalah sehingga tercapai titik keputusan. Sebelumnya telah diuraikan latar belakang dari skripsi ini, masalah yang akan dibahas adalah bagaimana melakukan pencarian atau pencocokan untuk menemukan string pada teks dalam kamus istilah Telekomunikasi berbasis android dan meneliti perbandingan antara algoritma Morris - Pratt dengan algoritma Horspool
untuk pencocokan string. Dalam menganalisis, mengidentifikasi, dan menyelesaikan masalah memerlukan suatu cara yang saat ini sering digunakan yaitu Ishikawa diagram/diagram Ishikawa.
Gambar 3.1. Diagram Ishikawa untuk Analisis Masalah
Pada gambar 3.1. bagian paling kanan (kotak/ kepala ikan) adalah nama masalah yaitu bagaimana membuat aplikasi Kamus Istilah Telekomunikasi berbasis Android. Kemudian duri- duri yang mengarah ke tulang utama (garis horizontal yang menuju ke kepala ikan) merupakan kategori masalah. Kategori penyebab masalahnya yaitu pengguna, material, metode dan mesin. Keseluruhan detail tersebut mengarah ke bagian kepala yang merupakan topik utama dalam analisis masalah.
3.1.2. Analisis Kebutuhan
Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional yang mendeskripsikan aktivitas sistem dan kebutuhan nonfungsional yang mendeskripsikan fitur, karakteristik dan batasan lainnya (Whitten, 2004).
3.1.2.1. Kebutuhan Fungsional
Kebutuhan fungsional pada aplikasi kamus Istilah Telekomunikasi ini adalah : 1. Aplikasi dapat mencocokan string dari kata yang dimasukkan oleh pengguna
2. Aplikasi dapat mencari kata dengan menggunakan algoritma Morris - Pratt dan algoritma Horspool
3. Aplikasi dapat memberikan hasil pencarian kata dan menampilkannya pada antarmuka sistem.
Belum ada metode algoritma Morris - Pratt dan Horspool yang membaca buku kamus
Bahan acuan dalam bentuk hardcopy
kurang efektif
3.1.2.2. Kebutuhan Nonfungsional
Kebutuhan nonfungsional pada aplikasi kamus Istilah Telekomunikasi ini adalah : 1. Performa
Perangkat lunak yang dibangun dapat menunjukkan hasil pencarian kata yang diinputkan oleh pengguna.
2. Mudah Dipahami dan Digunakan
Tampilan yang dibangun simple dan user friendly (ramah pengguna) sehingga pengguna tertarik dan mudah untuk memahami setiap desain tampilan
3. Hemat Biaya
Perangkat lunak yang dibangun hemat biaya karena dapat di share secara gratis dengan bluetooth atau aplikasi Share lainnya. Ukuran file aplikasi tidak terlalu besar sehingga jika diunduh pada Playstore tidak mengambil kuota terlalu banyak. 4. Panduan
Perangkat lunak yang dibangun memiliki panduan penggunaan. 5. Kontrol
Perangkat lunak yang dibangun akan menampilkan pemberitahuan “kata tidak ditemukan” apabila kata yang dimasukkan pengguna tidak terdapat di dalam database.
3.1.3. Analisis Proses
Sistem yang akan dibangun menggunakan algoritma Morris – Pratt dan algoritma
Horspool untuk proses pencocokan string. Sistem akan mencocokkan pattern yang dimasukkan oleh pengguna dan apabila pattern terdapat dalam database maka hasilnya akan ditampilkan.
3.2 Perancangan Sistem
Perancangan sistem merupakan teknik pemecahan masalah untuk merangkai kembali bagian – bagian komponen sehingga menjadi sistem yang lengkap dengan analisis sistem yang saling melengkapi (Whitten et al. 2004).
3.2.1 General Arsitektur Perancangan Sistem
General arsitektur perancangan sistem adalah penjelasan berupa gambaran sistem yang terdiri dari input data, processing data, dan output data yang dikeluarkan dari sistem. Berikut adalah gambaran perancangan sistem yang dapat dilakukan pengguna kepada sistem.
Tahap Perancangan
Tahap Pengujian
Gambar 3.2 General Arsitektur Perancangan Sistem Obervasi Literatur
Perancangan fungsi pencarian dengan Morris-Pratt
Perancangan fungsi pencarian dengan Horspool
Perhitungan kompleksitas algoritma
string tidak valid (tidak ada dalam kamus)
Analisis hasil pengujian running time dan kompleksitas
Penjelasan tahapan dalam general arsitektur perancangan sistem adalah sebagai berikut :
1. Tahap Perancangan
Pada tahap ini terdiri dari 4 fase yaitu :
a. Observasi Literatur Kata Istilah Telekomunikasi
Pada fase ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan. Referensi yang digunakan dapat berupa buku, jurnal, artikel, paper, makalah, baik dari media cetak maupun media internet mengenai istilah telekomunikasi.
b. Menentukan Kata untuk dimasukkan kedalam Aplikasi
Kata-kata yang digunakan pada aplikasi ini adalah sebanyak 500 kata yang diambil berdasarkan abjad dengan jumlah kata yang disesuaikan. Kata-kata tersebut akan diambil dari Kamus Istilah Telekomunikasi Drs. Gouzali Saydam, BC.TT Penerbit Pustaka Reka Cipta.
c. Perancangan Database dari kata yang telah dipilih
Database yang digunakan adalah database SQlite yang akan terhubung dengan Android Studio. Perancangan class untuk algoritma string matching dilakukan di software Android Studio.
d. Perancangan Fungsi Pencarian dengan Morris-Pratt dan Horspool
Dalam perancangan fungsi pencarian dengan Algoritma Morris – Pratt
dan Horspool harus ditentukan Flowchart dan Pseudocode.
2. Tahap Pengujian Pada tahap ini terdiri dari 2 fase yaitu :
a. Skenario Pengujian Pada fase ini, dilakukan pengujian pencarian untuk
b. Pencatatan pada fase ini dengan mengecek dan membandingkan running time dan komplikesitas big (Ө) Morris-Pratt dengan Horspool sehingga dapat ditemukan hasil algoritma yang lebih efisien.
3. Analisis Hasil Pengujian Hasil pengujian setiap fase akan di analisis di tahap ini, sehingga dapat ditemukan algoritma mana yang lebih efektif serta efisien untuk setiap kata terpendek, kata terpanjang maupun secara keseluruhan.
4. Penarikan Kesimpulan Pada tahap ini, dilakukan penarikan kesimpulan berdasarkan hasil dari analisis hasil pengujian. Tahap ini adalah tahap akhir dimana kesimpulan ini dapat dijadikan suatu acuan terhadap penelitian yang akan dilakukan berikutnya.
3.2.2 Use-Case Diagram
Use-case diagram adalah alur yang merepresentasikan interaksi yang terjadi antara pengguna dan sistem. Diagram ini mendeskripsikan siapa saja yang dapat berinteraksi dengan sistem dan bagaimana cara mereka berinteraksi. Diagram ini divisualisasikan dengan actor, use case, dan relasinya sebagai suatu urutan tindakan yang memberikan nilai terukur untuk aktor. Sebuah use case digambarkan sebagai
ellips horizontal dalam suatu diagram use-case (Haviluddin, 2011).
Hubungan yang menyatakan suatu use-case merupakan perluasan (extend) dari suatu use-case lainnya digambarkan oleh garis putus-putus dengan tanda panah terbuka (Harahap, A. 2014). Tanda anak panah dimulai dari extension use-case dan menunjuk kepada use-case yang diperluas. Masing-masing garis extend relationship
disebut “<<extends>>”.
Gambar 3.3 Use-case Diagram
Diagram use-case pada gambar 3.3 menujukkan bahwa sistem berinteraksi kepada pengguna. Pengguna dalam gambar 3.3 dapat didefinisikan sebagai Actor yang berinteraksi dengan empat use-case. Pertama, pengguna akan memilih algoritma pencarian yaitu dengan pilihan Morris – Pratt atau Horspool. Kedua, pengguna memasukkan kata yang ingin dicari. Ketiga, sistem akan menampilkan hasil pencarian yang ditampilkan pada interface sistem, seperti yang dijelaskan sebelumnya pada analisis proses.
Includes pada use-case menunjukkan bahwa untuk menampilkan hasil pencarian kata hanya jika pengguna telah memasukkan kata. Untuk memperjelas use-case
Tabel 3.1 Tabel Skenario Use-case Memilih Algoritma Pencarian
Name Memilih algoritma pencarian
Actor Pengguna
Description Mendeskripsikan algoritma yang akan dipilih untuk
melakukan pencarian kata
Basic Flow Penguna memilih jenis algoritma pencarian
Alternate Flow User memilih algoritma Morris-Pratt atau Horspool sebagai algoritma pencocokan string yang dipilih
Pre Condition Pengguna ingin memilih jenis algoritma pencarian
Post Condition Pengguna telah memilih jenis algoritma pencarian
Tabel 3.2 Tabel Skenario Use-case Masukkan Kata
Name Memilih algoritma pencarian
Actor Pengguna
Description Mendeskripsikan proses kata yang akan dicari
Basic Flow Penguna menginputkan kata yang akan dicari
Alternate Flow -
Pre Condition Pengguna ingin menginputkan kata
Post Condition Pengguna telah menginputkan kata
3.2.3 Activity Diagram
Activity Diagram mendeskripsikan alur kerja (workflow), aktivitas sistem serta proses timbal balik antar sistem. (Setiady, et al. 2013)
Gambar 3.4 Activity Diagram
Activity Diagram pada gambar 3.4 menjelaskan interaksi antara pengguna dan sistem. Diawali dengan pengguna yang membuka aplikasi, lalu sistem menampilkan interface
sistem. Kemudian pengguna memilih algoritma pencarian dan sistem akan membaca algoritma yang sudah dipilih. Pengguna memasukkan kata yang ingin dicari dan sistem akan merespon serta melakukan proses pencarian terhadap inputankata. Dalam prosesnya, ada dua kondisi. Jika kata yang dicari ditemukan maka sistem akan memberikan hasil pencarian atau outputnya namun jika kata yang dicari tidak ditemukan maka sistem tidak akan menampilkan apapun dan meminta pengguna untuk memasukkan kembali kata yang dicari. Ketika kata yang dicari ditemukan, maka sistem berhasil dan selesai.
3.2.4 Sequence Diagram
Sequence Diagram mendeskripsikan perilaku objek seperti pesan yang dikirimkan dan diterima antar objek serta waktu hidup objek (Setiady, et al. 2013). Sequence diagram
Gambar 3.5 Sequence Diagram
3.2.5 Pseudocode
Untuk Pseudocode algoritma Morris – Pratt ditunjukkan oleh Gambar 3.6 berikut.
Untuk pseudocode algoritma Horspool ditunjukkan pada Gambar 3.7. berikut (Nasution, 2016).
3.2.6 Diagram Alir (Flowchart)
Flowchart atau diagram alir merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses dengan pernyataannya (Zarlis, 2008). Flowchart dari gambaran umum sistem ditunjukkan pada gambar 3.8 berikut ini.
Algoritma Ya Morris Pratt
Tidak Tidak
Algoritma
Horspool
Gambar 3.8 Flowchart Gambaran Umum Sistem Masukkan Pattern
Pencocokan pattern dengan menggunakan algoritma yang
telah dipilih
Output teks dan running time
Mulai
Adapun flowchart dari algoritma Morris-Pratt seperti gambar 3.9 berikut.
Masukkan pattern yang akan dicari
Fase preprosessing
Apakah Tidak
pattern
ditemukan ?
Ya
Gambar 3.9 Flowchart Algoritma Morris-Pratt
Bandingkan karakter per karakter
Output teks dan running time
Geser pattern
berdasarkan Table mpNext[i] Pencocok dengan Algoritma
Morris Pratt
Mulai
Adapun flowchart dari algoritma Horspool seperti gambar 3.10 berikut.
Apakah i <= panjang teks n – panjang
pattern m?
Apakah pattern
[panjang pattern m-1] = = Tidak c&& str.compare [pattern, teks + i,
panjang pattern m-1]= = 0?
Ya Tidak
Gambar 3.10 Flowchart Algoritma Horspool
preBmBc (pattern, BmBc); i = 0
c = teks y [ i + panjang pattern m – 1]
i++
i+= BmBc [c] Mulai
Adapun flowchart dari sistem pencarian istilah dengan algoritma Horspool seperti gambar 3.11 berikut.
Input pattern yang akan dicari
for i = 0 to
panjang pattern - 1
Apakah Tidak cocok?
Ya
Apakah semua karakter
cocok?
Ya
Tampilkan hasil Tidak
pencarian
Gambar 3.11 Flowchart Sistem Pencarian Istilah denganAlgoritma Horspool
Proses mencocokan karakter paling kanan pattern dengan teks
Proses mencocokan ke karakter berikutnya (kiri)
Pattern bergeser berdasarkan tabel bad- match
Mulai
3.2.7 Perancangan Antarmuka (Interface)
Perancangan antarmuka bertujuan untuk mempermudah pengguna dalam berinteraksi dengan sistem yang pada umumnya tampilan antarmuka bersifat sederhana. Antarmuka yang dirancang diharapkan dapat memperhatikan faktor pengguna sehingga menghasilkan aplikasi yang ramah pengguna (user friendly). Perancangan antarmuka ini disesuaikan dengan kerangka menu seperti yang telah dituliskan sebelumnya.
1. Halaman Utama
Gambar 3.12 merupakan tampilan awal ketika aplikasi pertama kali dijalankan. Pada halaman ini terdapat dua tab, yaitu algoritma Morris – Pratt bagi pengguna yang ingin melakukan pencarian dengan algoritma Morris - Pratt. Kemudian, algoritma Horspool, bagi pengguna yang ingin melakukan pencarian dengan algoritma Horspool.
Keterangan Gambar :
1) Action Bar memuat judul aplikasi dan sebuah icon. Dimana icon memuat pilihan halaman about dan tentang.
2) Tabhost digunakan untuk memilih algoritma pencarian.
3) FieldText digunakan untuk memasukkan kata yang ingin dicari terjemahannya.
4) Button Delete digunakan untuk menghapus kata yang ada di dalam fieldtext. 5) Listview untuk menampilkan kata yang ada di dalam database.
2. Halaman Hasil Pencarian
Gambar 3.13 adalah tampilan ketika pengguna memasukkan kata yang ingin dicari dan akan memberikan hasil pencarian.
Gambar 3.13 Hasil Pencarian
Dcs X
Algoritma Morris - Pratt
Algoritma Horspool
Kamus Istilah Telekomunikasi
1. DCS
3. Halaman Tentang
Pada halaman tentang memuat tentang identitas singkat dari penulis dan judul penelitian ini. Adapun tampilan dari halaman tentang dapat ditunjukkan pada gambar 3.14 berikut ini.
Gambar 3.14 Halaman About
Keterangan Gambar :
1) Action Bar berisikan judul dari halaman aplikasi. 2) TextView untuk menampilkan judul dari penelitian. 3) TextView untuk menampilkan identitas singkat penulis 4) ImageView untuk menampilkan logo Universitas.
5) TextView untuk menampilkan Program Studi, Fakultas, Universitas, kota dan tahun
About
Perbandingan Algoritma Morris – Pratt dengan Algoritma
Horspool pada Aplikasi Kamus Istilah Telekomunikasi berbasis Android
SKRIPSI Laura Angelina Hasibuan
131401047
Program Studi S1 Ilmu Komputer
Fakultas Ilmu Komputer dan Teknologi Informasi
4. Halaman Bantuan
Halaman bantuan memuat panduan untuk menggunakan aplikasi yang akan dibangun. Adapun tampilan untuk halaman bantuan dapat dilihat pada gambar 3.15 berikut.
Gambar 3.15 Halaman Help
Keterangan Gambar :
1) Action Bar untuk menampilkan judul halaman aplikasi 2) TextView untuk menampilkan poin – poin bantuan
Help
1. Mencari arti kata istilah Telekomunikasi dengan
algoritma pencarian Algoritma Morris- Pratt
2. Mencari arti kata istilah Telekomunikasi dengan
algoritma pencarian Algoritma Horspool
3. Menghapus Kata dalam fieldtext
1
BAB IV
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1. Implementasi Sistem
Tahapan implementasi sistem adalah next step dari tahapan analisis dan perancangan sistem yang telah dibahas pada bab tiga. Pembahasan dalam bab tiga akan diimplementasikan ke dalam bahasa pemrograman Java. Proses interface system dibangun dengan bahasa Java dengan Android Studio.
4.1.1. Tampilan Antarmuka Utama
Halaman utama adalah tampilan awal saat aplikasi pertama kali dijalankan dan terdapat dua kondisi yaitu Morris – Pratt dan Horspool. Pada halaman utama, pilihan pencarian string pertama langsung terhubung dengan algoritma Morris- Pratt dan untuk menggunakan algoritma Horspool dapat mengklik Horspool.
Gambar 4.1 Tab Morris - Pratt
Gambar 4.1 adalah kondisi ketika user memilih untuk mencari kata dengan algoritma pencarian Morris - Pratt.
Gambar 4.2 Tab Horspool
4.1.2. Tampilan Antarmuka Hasil Pencarian
Pada tampilan hasil pencarian, sistem akan menampilkan hasil dari kata yang dicari oleh pengguna. Setiap kata di dalam database yang mengandung kata dan dimasukkan oleh pengguna akan ditampilkan di dalam listview. Seperti gambar 4.3, ketika pengguna memasukkan kata jaringan, maka kata jaringan junction dan jaringan lokal, juga ditampilkan dikarenakan kata – kata tersebut mengandung kata jaringan. Tidak hanya defenisi kata yang ditemukan namun Running Time dari algoritma pencarian juga.
Gambar 4.3 Antarmuka Hasil Pencarian Ditemukan
Ketika kata yang dicari oleh pengguna tidak ditemukan di dalam database, maka sistem akan mengeluarkan notifikasi bahwa kata tidak ditemukan dan beserta running timenya. Tampilan aplikasi apabila hasil pencarian tidak ditemukan dapat dilihat pada gambar 4.4 berikut ini.
Gambar 4.4 Hasil Pencarian Tidak Ditemukan
4.1.3 Tampilan Antarmuka Tentang (About)
Pada gambar 4.5 merupakan tampilan menu yang berisi informasi singkat dari penulis. Tampilan menu tentang dapat dilihat pada gambar 4.5 berikut ini.
4.1.4 Tampilan Antarmuka Bantuan (Help)
Pada aplikasi ini terdapat menu bantuan yang menginformasikan langkah – langkah dari proses penggunaan aplikasi.
Gambar 4.6 Menu Help
4.1.5 Tampilan Antarmuka Sumber (Source)
Pada aplikasi ini terdapat menu source yang menjelaskan bahwa kosa kata yang ada di database bersumber pada buku Kamus Istilah Telekomunikasi Drs. Gouzali Saydam, BC.TT Penerbit Pustaka Reka Cipta.
4.2 Pengujian Sistem
Pengujian sistem bertujuan untuk mengetahui bagaimana sistem berjalan dan kinerja yang dihasilkan pada pencarian kata istilah Telekomunikasi yang terdapat dalam database dengan algoritma pencarian Morris – Pratt dan Horspool.
Dalam pengujian sistem ini, yang bertindak sebagai masukan adalah string.
String yang cocok di dalam database akan dikeluarkan sebagai output sistem ketika algoritma berhasil melakukan pencocokan kata.
4.2.1. Pengujian pencarian kata dengan Algoritma Morris - Pratt
Pengujian sistem pertama kali adalah melakukan pencarian kata dengan algoritma Morris - Pratt. Ketika pengguna memilih jenis terjemahan dan memasukkan
pattern kata yang ingin dicari, maka seluruh kata di dalam database kamus yang terkait dengan pattern masukan akan keluar sebagai output.
Berikut adalah contoh perhitungan tabel pergeseran mpNext untuk pattern
HASIBUAN pada teks LAURA HASIBUAN.
Tabel 4.1 Nilai mpNext[i] untuk pattern HASIBUAN
I 0 1 2 3 4 5 6 7 8
x[i] H A S I B U A N *
mpNext[i] -1 0 0 0 0 0 0 0 1
Keterangan :
i : indeks untuk setiap karakter pada pattern
x : pattern
mpNext[i] : nilai mpNext[i] untuk setiap karakter pada pattern
Tahap 2 :
L A U R A H A S I B U A N
0 1
H A S I B U A N
Shift = 0 – mpNext[0] = 0 – -1 = 1 Tahap 3 :
L A U R A H A S I B U A N
0 1
H A S I B U A N
Shift = 0 – mpNext[0] = 0 – -1 = 1
Tahap 4 :
L A U R A H A S I B U A N
0 1
H A S I B U A N
Shift = 1 – mpNext[1] = 1 – 0 = 1
Tahap 5 :
L A U R A H A S I B U A N
0 1
H A S I B U A N
Shift = 0 – mpNext[0] = 0 – -1 = 1
Tahap 5 :
L A U R A H A S I B U A N 0 1
H A S I B U A N
Tahap 6 :
L A U R A H A S I B U A N
0 1 2 3 4 5 6 7 H A S I B U A N
Shift = 7 – mpNext[7] = 7 – 0 = 7
Pada percobaan keenam, pattern sudah sesuai dengan karakter pada teks. Algoritma Morris - Pratt akan terus bergerak ke kanan hingga karakter pada teks berakhir. Pada contoh ini, algoritma Morris - Pratt melakukan 15 kali perbandingan karakter dengan teks.
Kecocokan input, output, serta hasil running time pencariannya terdapat pada Tabel 4.2. berikut ini.
Tabel 4.2. Pengujian sistem pencocokan string dengan Algoritma Morris - Pratt
No String
Masukan
Gambar Hasil Hasil
Pencarian
Running
Time(ms)
2 Ne ditemukan 37
4 tele ditemukan 46
5 shell Tidak
ditemukan
4.2.2. Pengujian pencarian kata dengan Algoritma Horspool
Pengujian sistem selanjutnya adalah melakukan pencarian kata dengan algoritma Horspool. Ketika pengguna memilih jenis algoritma dan memasukkan pattern
kata yang ingin dicari, maka seluruh kata di dalam database kamus yang terkait dengan pattern masukan akan keluar sebagai output. Contoh proses pada pattern ditunjukkan pada Tabel 4.3 dan kecocokan output beserta running time dapat dilihat pada tabel 4.8 berikut ini.
Sebagai contoh, dapat dilihat pada Tabel 4.3 berikut.
Pattern: HASIBUAN
⏟ ⏟⏟⏟ ⏟ ⏟
H A S I B U A N 0 1 2 3 4 5 6 7
Tabel 4.3 Bad-match pada praproses Karakter Index Value
H 0 7
* : karakter yang tidak dikenali
Untuk menggambarkan rincian algoritma, akan diberikan contoh kasus dimana
pattern P = “HASIBUAN” dan teks T = “LAURA HASIBUAN”. Inisialisasi awal dan
Tabel 4.4 Inisialisasi awal bad-match
sebagai panjang pattern dan i sebagai indeks. Tabel 4.5 menunjukkan nilai pergeseran
bad-match dengan menghitung nilai v seperti yang telah dilakukan pada Tabel 4.3. Pada tahap awal pencarian, dilakukan perbandingan karakter paling kanan pattern
terhadap window. Apabila terjadi ketidakcocokan, akan dilakukan pergeseran ke kanan untuk melewati karakter yang tidak cocok dimana nilai pergeserannya terdapat pada tabel bad-match. Karakter paling kanan teks pada window berfungsi sebagai landasan untuk menentukan jarak geser yang akan dilakukan. Hal ini terlihat pada Tabel 4.6 berikut.
Tabel 4.6 Iterasi algoritma Horspool pertama
M 1 2 3 4 5 6 7 8 9 10 11 12 13 14
T L A U R A H A S I B U A N
P H A S I B U A N I 0 1 2 3 4 5 6 7
Terdapat ketidakcocokan seperti yang terlihat pada Tabel 4.6. Karakter “A” adalah karakter paling kanan teks pada window. Pada tabel bad-match, nilai geser karakter “A” adalah 6. Maka, dilakukan pergeseran ke kanan pada window
Tabel 4.7 Iterasi algoritma Horspool kedua
M 1 2 3 4 5 6 7 8 9 10 11 12 13 14
T L A U R A H A S I B U A N
P H A S I B U A N
I 0 1 2 3 4 5 6 7
Pada Tabel 4.7, window telah berada pada akhir teks dan semua pattern cocok dengan teks. Seluruh pencocokan karakter menggunakan algoritma Horspool telah selesai dan berhenti pada iterasi kedua.
Tabel 4.8 Pengujian sistem pencocokan string dengan Algoritma Horspool
No String
Masukan
Gambar Hasil Hasil
Pencarian
Running
Time
(ms)
2 Bi ditemukan 61
4 jaringan ditemukan 46
5 bdbdbbd Tidak
ditemukan
4.3 Hasil Pengujian Sistem
Hasil pengujian dari penelitian ini adalah running time dari pencarian kata yang ditemukan oleh algoritma Morris - Pratt dan algoritma Horspool. Adapun hasil pengujian dari kedua algoritma pencocokan string dalam mencari kata, akan dijelaskan pada Tabel 4.9., 4.10., 4.11., dan 4.12. berikut.
Tabel 4.9. Hasil pengujian Algoritma Morris - Pratt
No Pattern Running Time (ms)
Tabel 4.10 Hasil pengujian Algoritma Horspool
Tabel 4.11 Hasil pengujian pencarian kata terpanjang
Tabel 4.12 Hasil pengujian pencarian kata terpendek
0
Running Time (ms) untuk Urutan Pattern
Morris - Pratt Horspool
Running Time (ms) untuk Pattern Terpanjang
Morris - Pratt Horspool
Setelah mendapatkan hasil pengujian untuk running time kedua algoritma, maka dibuat grafik perbandingan hasil pengujian kedua algoritma tersebut. Grafik dapat dilihat pada Gambar 4.8., 4.9., dan 4.10. berikut.
Waktu
0
Running Time (ms) untuk Pattern Terpendek
Morris - Pratt Horspool
Waktu
Pattern Terpendek
Gambar 4.10. Perbandingan hasil running time pencarian kata terpendek
Dari grafik di atas, dapat disimpulkan bahwa algoritma Horspool mendapatkan hasil running time yang lebih tinggi dibandingkan dengan algoritma Horspool. Bahkan dalam segala pencarian, baik berdasarkan kata terpanjang maupun kata terpendek. Dari hasil perbandingan kedua algoritma secara keseluruhan menunjukkan bahwa algoritma Morris - Pratt bekerja lebih cepat untuk proses pencocokan dan pencarian kata dibandingkan dengan algoritma Horspool. Meskipun perbedaan yang tampak antara kedua algoritma tersebut tidak terlalu signifikan, tetapi kedua algoritma ini dapat mencari kata dengan cukup cepat.
4.4. Kompleksitas Algoritma
Terdapat beberapa jenis notasi asimtotik yang merepresentasikan kompleksitas algoritma, salah satunya adalah notasi Big (Ө). Notasi Big- Ө
digunakan untuk mengkategorikan algoritma ke dalam fungsi yang menggambarkan batas atas (upper limit) dari pertumbuhan sebuah fungsi ketika masukan dari fungsi tersebut bertambah banyak.
Pada penelitian ini, kompleksitas algoritma yang akan diuji adalah kompleksitas algoritma Morris - Pratt dan Algoritma Horspool dengan menggunakan notasi Big- Ө. Kompleksitas kedua algoritma tersebut akan dijelaskan pada Tabel 4.13., 4.14., 4.15 dan 4.16.,berikut.
4.4.1. Kompleksitas Algoritma Morris - Pratt
Tabel 4.13 Kompleksitas fungsi fase preprocessing algoritma Morris - Pratt
No Kode Program C # C x #
Kompleksitas fase Preprocessing :
� �� ( ) = �1+�2m +C2 + �3 + 2C4
= 1 + m + 1 + 1 + 2 = 5 + m
Tabel 4.14 Kompleksitas fungsi fase pencarianalgoritma Morris - Pratt
Kode Program C # C x #
Kompleksitas fase pencarian :
Tmax (n) = 10 C1 + C2 +C3(m+n)+2C4+C5+C6+2C7 = 10 +1 + (m+n) 2+1+1+2
= 17+m+n = Ө (m+n)
Tabel 4.14 menjelaskan tentang kompleksitas algoritma Morris - Pratt untuk fase preprocessing. Pada algoritma Morris - Pratt, fase preprocessing
memiliki �( ) = Ө (m). Pada tabel 4.8 menjelaskan fase pencarian dan didapat kompleksitas algoritma Morris - Pratt adalah Ө (m+ ).
4.4.2. Kompleksitas Algoritma Horspool
Tabel 4.15. Kompleksitas fungsi fase preprocessing Algoritma Horspool
N
Kompleksitas fase preprocessing:
� �� (m) = �1+256�2 + C1 +�2m+�1
= 3C1 + C2 (256+m) = 3 + 256 +m = 259 +m
= Ө
(
m
)
Tabel 4.16 Kompleksitas fungsi pencarianAlgoritma Horspool
Kode Program C # C x #
public int search(String pat,String
target){
j+= bmBc[target.charAt(j+m - 1)];
}
Kompleksitas fase pencarian:
� �� ( ) = �1+ �1+ �1+�2 +�3 +C4n+C5+C6n+C5 = 3�1++C3n+C4n+C4n + C6n +2C5
= 3 +2 +3n = Ө (n)
Tabel 4.15 dan Tabel 4.16. menjelaskan tentang kompleksitas algoritma Horspool untuk fase preprocessing dan fase pencarian. Pada algoritma Horspool, fase preprocessing memiliki �( ) = Ө (m) dan fase pencarian memiliki �( ) = Ө
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan analisis, perancangan, dan pengujian dari penelitian, maka dapat diperoleh kesimpulan sebagai berikut :
1. Pencocokan kata dengan Algoritma Morris - Pratt dan Horspool pada Aplikasi Kamus Istilah Telekomunikasi berbasis android dapat diimplementasikan dan berjalan dengan baik.
2. Total rata-rata running time untuk algoritma Morris - Pratt adalah 46,6 ms dan algoritma Horspool adalah 50,5 ms. Pada skenario pencarian kata terpanjang, algoritma Morris - Pratt memiliki rata-rata running time selama 35.1 ms dan algoritma Horspool selama 38,2 ms dan untuk pencarian kata terpendek, algoritma Morris - Pratt memiliki running time selama 51,4 ms dan algoritma Horspool selama 62,1 ms. Hal ini membuktikan bahwa algoritma Morris - Pratt melakukan pencarian string lebih cepat dibandingkan algoritma Horspool.
3. Kompleksitas algoritma Morris-Pratt adalah Ө (m) pada preprocessing dan
Ө( + ) pada processing. Sedangkan kompleksitas algoritma Horspool adalah
5.2Saran
Pada penelitian ini, terdapat beberapa saran yang dapat dipertimbangkan. Untuk pengembangan penelitian selanjutnya, penulis memberikan beberapa saran, yaitu sebagai berikut:
1. Dalam pencarian string dengan studi kasus kamus istilah, disarankan agar mengimplementasikan algoritma-algoritma string matching lainnya seperti Knuth-Morris-Pratt karena algoritma ini bagus sekali.
2. Dapat mengembangkan sistem ke dalam basis lainnya, seperti basis desktop atau
web sehingga tidak hanya berbasis mobile saja.