Perbandingan Algoritma Morris - Pratt dan Algoritma Horspool Pada Aplikasi Kamus Istilah Telekomunikasi Berbasis Android Chapter III V

14

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.

Diagram Ishikawa (fishbone diagram) yang dikembangkan oleh Dr. Kaoru
Ishikawa sekitar tahun 1960-an . Diagram Ishikawa adalah analisis sebab akibat
dengan bentuk kerangka tulang ikan yaitu bagian kepala, sirip dan duri. Konsep dasar
dari diagram Ishikawa adalah permasalahan mendasar yang diletakkan pada bagian
kanan dari diagram atau bagian kepala dari kerangka tulang ikannya. Penyebab
permasalahan digambarkan pada sirip dan durinya (Asmoko, 2015).

Universitas Sumatera Utara

15

Pengguna

Material
Bahan acuan dalam
bentuk hardcopy
kurang efektif


Kurangnya minat
membaca buku kamus
Pengguna ingin
menemukan definisi kata
istilah telekomunikasi
dengan cepat

Belum ada metode
algoritma Morris - Pratt
dan Horspool yang
diimplementasikan
dalam aplikasi berbasis
android

Pencarian kata masih
manual (kurang
efisien)

Masih sedikitnya kamus
Istilah Telekomunikasi

berbasis Android yang
berbahasa Indonesia

Metode

Membuat aplikasi
Kamus Istilah
Telekomunikasi berbasis
Android
Smartphone saat ini
sudah banyak digunakan
masyarakat.
Smartphone lebih
flexibel untuk digunakan

Mesin

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.


Universitas Sumatera Utara

16

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).
Tujuan dari perancangan sistem ini adalah menjelaskan, mempermudah dan
mengevaluasi implementasi sistem yang akan dibangun. Pada perancangan sistem
terdapat flowchart, use case diagram, activity diagram,

sequence diagram dan

perancangan antarmuka (interface).

Universitas Sumatera Utara


17

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.
Obervasi Literatur
Kata Istilah
Telekomunikasi

Memilih kata untuk
dimasukkan ke
dalam aplikasi

Perancangan fungsi pencarian

dengan Morris-Pratt

Perancangan
database dari kata
yang telah dipilih

Perancangan
fungsi
pencarian dengan Horspool

Perhitungan kompleksitas algoritma
Perancangan desain android
Tahap Perancangan

Kalkulasi Big Ө
(Ө)
Algoritma
Morris-Pratt

Kalkulasi

Big
(Ө) Algoritma
Horspool

Perhitungan

Tampilkan
running
time
dengan MorrisPratt

Tampilkan
running
time
dengan
Horspool
Pencatatan

Pencarian untuk
string terpendek

Pencarian untuk
string terpanjang
Pencarian untuk
string tidak valid
(tidak ada dalam
kamus)
Skenario Pengujian

Tahap Pengujian
Analisis hasil pengujian running time dan kompleksitas
Penarikan Kesimpulan
Gambar 3.2 General Arsitektur Perancangan Sistem

Universitas Sumatera Utara

18

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. Katakata 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
string terpendek dan pencarian untuk string terpanjang. Hal ini berfungsi
untuk membandingkan hasil pengujian dengan kata terpendek dalam
kamus dengan kata terpanjang dan algoritma mana yang lebih efisien.

Universitas Sumatera Utara

19

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 “”.
Aktor yang berinteraksi dalam sistem ini adalah pengguna aplikasi, dan fungsi
(use-case) dihubungkan dengan tanda panah yang menyatakan bahwa aktor
mengajukan permintaan terhadap use-case. Use-case diagram dari sistem yang akan
dibangun dapat dilihat pada Gambar 3.3.

Universitas Sumatera Utara

20

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
tersebut dapat di deskripsikan kedalan tabel skenario pada tabel 3.1 dan 3.2.

Universitas Sumatera Utara

21

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 merupakan activity diagram dari aplikasi yang akan dibangun
pada penelitian ini.

Universitas Sumatera Utara

22

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 inputan kata. 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
pada sistem kamus ini akan ditunjukkan pada gambar 3.5.

Universitas Sumatera Utara

23

Gambar 3.5 Sequence Diagram

3.2.5 Pseudocode
Pseudocode adalah barisan kode untuk menulis sebuah algoritma dengan cara
tidak terikat dengan bahasa pemrograman tertentu. Pseudocode menggunakan
bahasa yang hampir mirip dengan bahasa pemrograman namun perbedaannya
adalah bahasa yang digunakan lebih mudah dipahami dan lebih ringkas.

Universitas Sumatera Utara

24

Untuk Pseudocode algoritma Morris – Pratt ditunjukkan oleh Gambar 3.6 berikut.

Tahap Preprocessing
Procedure preMp )
input j : array[0. . m-1] of char,
input m : integer,
input x : array[0 . . m-1] of char,
input/output mpNext : array [0 . . n-1] of
integer
)
Deklarasi :
i : integer
Algoritma :
for( j = mpNext[0] = -1; i < m; mpNext[i] = j)
endfor
while(j > -1 && x[i] != x[j]) j = mpNext[j]
endfor
++i;
++j;
endfor

Tahap Pencarian
Procedure MorrisPrattSearch(
input i,j, n : integer,
input x : array[0 . . m-1] of char,
input y : array[0 . . n-1] of char,
output find : array[0 . . m-1] of boolean
)
Deklarasi :
j:=0
i:=0
Algoritma:
preMp(x, m, mpNext)
while(j < n) do
while(i > -1 && x[i] != y[j]) do
i = mpNext[i];
Endfor
++i;
++j;
if(i >= m) then
i = mpNext[i];

Gambar 3.6 Pseudocode pencarian Algoritma Morris - Pratt

Universitas Sumatera Utara

25

Untuk pseudocode algoritma Horspool ditunjukkan pada Gambar 3.7. berikut
(Nasution, 2016).
Tahap Preprocessing

Procedure preBmBc (
input P : array[0. . m-1] of char,
input m : integer,
input/output BmBc : array [0 . . n-1] of integer
)
Deklarasi:
i : integer
Algoritma:
for (i := 0
BmBc[i] :=
endfor
for (i := 0
BmBc[P[i]]

to ASIZE – 1)
m;
to m-2)
:= m – i – 1;

Endfor

Tahap Pencarian:
Procedure HorspoolSearch (
input m, n : integer,
input P : array[0 . . m-1] of char,
input T : array[0 . . n-1] of char,
output find : array[0 . . m-1] of boolean
)
Deklarasi:
j : integer
BmBc : array[0 . . n] of integer
c : char
Algoritma:
preBmBc(P, m, BmBc)
j := 0

while (j
c = T[j
if (P[m
then
find[j]

-1 && x[i] != y[j]) {

C3

m

C3m

i = mpNext[i];
}

C1

1

C1

++i;

C4

1

C4

++j;

C4

1

C4

if(i >= m) {

C5

1

C5

nilai = true;

C1

1

C1

i = mpNext[i];
}
}

C1

1

C1

if(nilai)
{

C6

1

C6

return 1;
}

C7

1

C7

return
}
}

C7

1

C7

public int MP(String pat, String
text) {

0;

Universitas Sumatera Utara

55

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

Kode Program

C

#

C x #

C1

1

C1

C2

256

256C2

C1

1

C1

for (int i = 0; i < m - 1; ++i)

C2

m

C2m

bmBc[pat.charAt(i)] = m - i - 1;

C1

1

C1

o
public class bmBc {

1

int []BmBc =new int[256];

2

public

3

void

pat,int

preBmBc(String
m,int[] QsBc){

for(int i=0;i