Analisis Dan Perbandingan Algoritma Maximal Shift Dengan Algoritma Quick Search Pada Aplikasi Kamus Farmakologi Chapter III V

BAB 3

ANALISIS DAN PERANCANGAN

3.1.

Analisis Sistem

Analisis sistem adalah penguraian dari suatu sistem informasi yang utuh kedalam
bagian-bagian komponennya dengan maksud untuk mengindentifikasikan dan
mengevaluasi permasalahan, kesempatan, hambatan, yang terjadi dan kebutuhan yang
diharapkan. Analisis sistem terdapat langkah-langkah dasar yang harus dilakukan
antara lain: mengidentifikasikan masalah (identify), analisis kebutuhan atau
memahami kerja dari sistem yang ada, dan analisis proses. Pada analisis masalah
adalah untuk mengenal dan mempelajari penyebab masalah dari sistem yang
digunakan. Kemudian dilanjutkan dengan analisis kebutuhan adalah menjelaskan
proses kerja fungsi-fungsi yang digunakan sistem. Dan yang terakhir adalah analisis
proses yang bertujuan untuk memodelkan perancangan dari sistem.

3.1.1. Analisis Masalah


Permasalahan pada penelitian ini adalah untuk mengetahui perbandingan kinerja dari
masing-masing algoritma string matching, yaitu algoritma Maximal Shift dan
algoritma Quick Search. Dalam perbandingan kedua algoritma string matching dapat
melihat perbedaan waktu pencarian kata (running time) dalam kamus farmakologi.
Masalah-masalah pada penelitian ini diidentifikasikan dengan menggunakan diagram
Ishikawa . Diagram Ishikawa atau yang sering dikenal dengan Cause and

Effect

Diagram adalah suatu alat visual untuk mengidentifikasi dan menggambarkan secara

detail semua penyebab yang berhubungan dengan suatu permasalahan.Permasalahan
pada penelitian ini secara umum dapat ditunjukan pada diagram ishikawa pada
Gambar 3.1.

Universitas Sumatera Utara

Mesin

Manusia

Pengguna yang
ingin
melakukan
pencarian kata
nama obat
dalam kamus

Visual Studia
2012 dan
databse SQL
server 2012

Mencari Kata
dengan proses
waktu yang cepat,
dengan algoritma
maximal shift dan
quick search

Memasukka

n data namanama obat
untuk
disimpan ke
database

Material

Analisis dan
Perbandingan Algoritma
Maximal Shift dan
Algoritma Quick Search
pada Aplikasi Kamus
Farmakologi

Metode

Gambar 3.1 Diagram Ishikawa

Pada gambar 3.1 terdapat empat katagori pada penelitian perbandingan Algoritma
Maximal shift dan Algoritma Quick Search. Pengelompokan empat katagori tersebut


adalah manusia (people), metode (method), material (material), mesin (machine).
Katagori mesin adalah penggunaan software pemrogram dan penyimpanan data yaitu:
Visual Studio Ekspres For Dekstop 2012 dan database SQL server 2012. Katagori
manusia adalah sebagai pengguna untuk melakukan pencarian kata dalam kamus.
Katagori material adalah data nama obat, keterangan dan produksi obat tersebut dari
sumber Informasi Spesialite Obat Indonesia (ISO). Katagori metode, yang digunakan
untuk melakukan pecarian kata dalam database adalah algoritma Maximal Shift dan
algoritma Quick Search untuk mencapai tujuan yaitu: melakukan pencarian kata
dalam kamus dengan waktu yang cepat.

3.1.2. Analisis Kebutuhan

Analisis kebutuhan sistem dapat dikelompokkan menjadi dua bagian, yaitu Kebutuhan
Fungsional dan Kebutuhan Non Fungsional.

Universitas Sumatera Utara

3.1.2.1. Kebutuhan Fungsional


Kebutuhan fungsional adalah kebutuhan sistem yang harus melakukan proses-proses
termasuk dalam melakukan pelayanan yang disediakan sistem dan reaksi sistem untuk
mendapatkan hasil berdasarkan instruksi yang diberikan.Beberapa hal yang menjadi
syarat kebutuhan fungsional yang harus dipenuhi (Timothy, 2010) :
1. Sistem harus mampu membaca string yang berada pada database.
2. Sistem harus mampu melakukan pencocokan string dengan menggunakan
algoritma Maximal Shift dan Quick Search.
3. Sistem harus mampu menghitung, yaitu waktu proses dengan satuan (ms )
pada saat pencarian kata.
4. Sistem harus mampu menampilkan waktu ketika proses pencarian kata sedang
berjalan dan mencatat waktu tercepat dalam bentuk teks.

3.1.2.2. Kebutuhan Non Fungsional

Kebutuhan non-fungsional merupakan deskripsi dari beberapa fitur , karateristik, dan
batasan suatu sistem. Terdapat beberapa hal yang menjadi syarat kebutuhan nonfungsional antara lain: (Timothy, 2010):
1. Mudah digunakan (User friendly) yaitu sistem yang akan dibangun harus user
friendly, artinya bahwa sistem mudah digunakan oleh user dengan tampilan

(interface) yang sederhana dan mudah dimengerti.

2. Menjadi referensi yaitu, sistem yang akan dibangun diharapkan mampu
menjadi referensi bagi user untuk mempermudah mencari nama obat yang
dibutukan oleh user didalam database.
3. Pelayanan sistem yang telah dirancang bisa dikembangkan ke tingkat yang
lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem
tersebut sehingga solusi yang diberikan lebih efektif.
4. Tampilan antarmuka sistem dapat dengan mudah dimengerti oleh pengguna
sistem.
5. Perangkat lunak yang dibangun akan menampilkan pesan tidak ditemukan (not
found) untuk setiap kata istilah yang tidak tersimpan dalam database nya.

Universitas Sumatera Utara

3.2. Pemodelan Sistem
Pemodelan merupakan konsep penyederhanaan suatu masalah dalam suatu bahasa
tertentu.Sebelum merancang perangkat lunak, maka pada tahap pemodelan ini
dilakukan untuk memudahkan perancangan sistem selanjutnya (Timothy, 2010).
Pemodelan sistem yang dirancang oleh penulis yaitu untuk menggambarkan sebuah
kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pada
penelitian ini model UML (Unified Modeling Language) yang digunakan antara lain

use case diagram, activity diagram, dan squence diagram.

3.2.1. Diagram Use Case

Use-case Diagram adalah gambaran skenario penggunaan aplikasi sistem tentang

bagaimana cara sistem bekerja dengan pengguna. Use-case Diagram membutuhkan
identifikasi siapakah pengguna yang akan menggunakan sistem tersebut (Timothy,
2010). Use case diagram juga berperan untuk menggambarkan interaksi antar
komponen-komponen yang berperan dalam sistem yang nantinya akan dirancang.

Gambar 3.2 Diagram Use Case Sistem.

Universitas Sumatera Utara

Pada gamabar 3.2 dapat dilihat terdapat seorang actor yang akan berperan sebagai
user. User menggunakan kamus untuk memperoleh pencarian kata dalam database

dengan cara memasukkan kata dan melakukan pencarian dengan menekan tombol
cari. Setelah itu, sistem akan berjalan melakukan pencarian kata dengan algoritma

Maximal Shift dan algoritma Quick Search, dan menampilkan hasil pencarian kata

serta menampilkan keterangan dari kata yang dicari. Dari hasil pencarian kata akan
mencatat waktu dan menampilkan waktu (running time) ke layar sistem untuk masingmasing algoritma. Proses input kata pada kamus dapat dilihat pada Tabel 3.1.

Tabel 3.1 Usecase Input Kata pada Kamus Farmakologi
Name

Masukan Kata

Actors

User

Description

Use Case ini mendeskripsikan memasukkan kata
farmakologi yang ingin dicari dengan algoritma
Maximal shift dengan Algoritma Quick Search


Basic Flow

User memasukkan kata

Alternate
Flow

-

Pre
Condition
Typical
course of
Event

Post
Condition

Aplikasi siap menerima masukkan
Kegiatan user

1. Menekan
tombol cari

Respon system
Menampilkan hasil
pencocokan kata dalam
kamus

User mendapatkan hasil pencarian kata, terjemahan
dan waktu pencarian

Universitas Sumatera Utara

Tabel 3.2 Usecase Bantuan pada Kamus Farmakologi
Name

Bantuan

Actors


User

Description

Use Case ini memberitahukan bagaimana cara
penggunaan dari sistem kamus farmakologi

Basic Flow

User membutuhkan bantuan

Alternate
Flow
Pre Condition

-

Aplikasi siap menampilkan bantuan

Typical course Kegiatan User
of event
1. Menekan
tombol bantuan
Post
Condition

Respon system
Menampilkan isi dari tombol
bantuan

User mendapatkan bantuan penggunaan cara sistem
kamus farmakologi

Table 3.3 Use Case Tentang pada Kamus Famakologi
Name

Tentang

Actors

User

Description

UseCase ini menjelaskan tentang kegunaan dari aplikasi
kamus farmakologi

Basic Flow

User membutuhkan pengetahuan tentang Aplikasi
kamus farmakologi

Alternate
Flow

-

Pre Condition

Aplikasi siap menampilakan isi menu tentang

Typical
course of
Event

Post
Condition

Kegiatan user
1. Menekan
tombol tentang

Respon system
Menampilkan informasi
tentang aplikasi kamus
farmakologi

user mendapatkan informasi tentang pembuat aplikasi
kamus farmakologi

Universitas Sumatera Utara

3.2.2. Diagram Sequence

Sequence Diagram adalah diagram yang menunjukkan hubungan yang terjadi antara

satu objek dengan objek lain. Diagram Sequences digunakan untuk mendekripsikan
pola komunikasi antar objek, dimana diagram Sequences ini menggambarkan urutan
waktu dari aliran pemanggilan pada suatu metode (Timothy, 2010). Berikut diagram
Sequence pada penelitian ini dapat dilihat pada Gambar 3.3.

Gambar 3.3 Diagram Sequence.

Universitas Sumatera Utara

3.2.3.

Diagram Activity

Activity Diagram adalah diagram yang menggambarkan alur kerja proses sistem

menggunakan notasi nodes. Activity nodes digunakan untuk menjelaskan alur kontrol
kerja sistem seperti sinkronisasi dan keputusan dari awal sampai berakhirnya proses.
Nodes bulat penuh adalah nodes awal proses, sedangkan nodes bulat penuh ditengah

adalah akhir proses (Timothy, 2010). Activity diagram pada sistem dapat ditunjukkan
pada Gambar 3.4.

Gambar 3.4 Diagram Activity.

3.3. Analisis Proses
Aplikasi yang dibangun pada penilitian ini menggunakan algortima Maximal Shift dan
algoritma Quick Search untuk melakukan pencarian kata dalam aplikasi kamus. Data
yang tersimpan dalam database akan dicari melalui pencocokan kata dengan masingmasing algoritma. Pada saat data ditemukan akan menghasilkan nama obat,
keterangan obat, dan waktu proses (running time) yang akan dicatat dan di tampilkan
pada layar aplikasi dengan tujuan untuk mengetahui perbandingan kecepatan waktu.

Universitas Sumatera Utara

3.3.1. Analisis Pencocokan String dengan Algoritma Maximal Shift

Algoritma Maximal Shift adalah algoritma yang mencari pola dalam teks dengan cara
pola dicari dari karakter yang memiliki nilai minShift yang terbesar hingga minShift
yang terkecil. Tahapan proses dari algoritma Maximal shift terdiri dari memilah
karakter pola dalam urutan penurunan pergeseran, membangun bad-charaters shift
dan fungsi good-suffix Shif. Fungsi tersebut disesuaikan dengan urutan scanning
karakter pola, (Charras & Lecroq, 2004). Berikut akan dijelaskan langkah-langkah
dalam melakukan pencocokan string.

Teks : DHEAAGIEWILYA
Pola

: AGIE

Proses pertama adalah menghitung nilai minshift karakter pada pola yang akan
digunakan untuk proses pengurutan, seperti pada Tabel 3.4.

Tabel 3.4 Nilai minShift pada Algoritma Maximal Shift
I

0

1

2

3

char

A

G

I

E

1

2

3

4

Minshift
[i]

Proses kedua adalah orderPattern yang digunakan untuk pengurutan karakter pada
pola dari nilai minshift tertinggi hingga terkecil pada pola. Jika ditemukan karakter
yang memiliki nilai minshift yang sama maka pengurutan didasarkan pada posisi
pencarian dari kanan ke kiri, yaitu posisi karakter yang ditemukan dahulu diurutkan
lebih awal. Seperti table dibawah ini:

Universitas Sumatera Utara

Tabel 3.5 Orderpattern Algoritma Maximal Shift

I

0

1

2

3

Char

E

I

G

A

3

2

1

0

minshift
[i]

Proses ketiga adalah preQsBc yang menghitung nilai qsBc pada tiap-tiap karakter
yang selanjutnya nilai tersebut kemungkinan akan digunakan untuk pergeseran pola
dengan cara menentukan posisi karakter dalam pola dari kanan ke kiri dan jika ada
karakter sama dalam pola maka posisi karakter yang pertama ditemukan yang dicatat,
Posisi dihitung mulai dari satu dan dari kanan ke kiri, pada table dibawah:

Tabel 3.6 PreQsBc pada Algoritma Maximal Shift
Char

A

G

I

E

QsBc [Char]

4

3

2

1

Proses keempat adalah PreAdaptedGS yang menghitung nilai pada tiap posisi dan
kemudian nilai inilah yang kemungkinan akan digunakan untuk pergeseran pada pola,
seperti pada table dibawah:

Tabel 3.7 PreAdaptedGs pada Agoritma Maximal Shift
I

0

1

2

3

AdaptedGs[i]

1

4

4

4

Selanjutnya akan dimulai langkah-langkah pencarian dengan menggunakan algoritma
maximal shift dengan menentukan terlebih dahulu pola yang dicari. Setelah langkah-

langkah selesai dilakukan, maka proses pencarian dimulai dengan mencocokan pola

Universitas Sumatera Utara

yang telah diurutkan terhadap teks. Hitung selisih panjang pola dan panjang teks.
Karaketer dengan urutan pertama dalam orderPattern dicocokan dengan teks dengan
teks pada posisi yang sama pada pola. Jika terjadi kecocokan maka pencarian
diteruskan dengan pencocokan pola sesuai dengan posisi yang telah diurutkan dengan
karakter pada teks. Jika semua pola ditemukan maka dianggap telah menumakan
output string yang dicari. Jika tidak ada ketidakcocokkan maka terjadi perhitungan
qsBc dan adaptedGs. Kemudian diambil nilai terbesar dari hasil perhitungan qsBc atau
adaptedGs, yang digunakan untuk pergeseran. Pergeseran terus terjadi hingga jumlah

pergeseran lebih besar dari pada selisih panjang teks dengan panjang pola (Handika,
W. 2005).

Langkah 1:
D

H

E

A

A

G

I

E

W

I

L

Y

A

mismatch
A
3

G
2

I
1

E
0

i
:0
selisih : 9
geser : 0
Urutan pencarian dimulai dari huruf “e” yang ternyata tidak cocok dengan teks, maka
dilakukan pergeseran yang akan ditentukan oleh nilai adaptedGs yang ke-i atau
adaptedGs [0] = 1 dan qsBc untuk karakter berikutnya atau qsBc[a] = 4. Nilai yang

akan dipakai untuk pergeseran adalah nilai yang lebih besar atau dalam hal ini adalah
4.

Universitas Sumatera Utara

Langkah 2:
D

H

E

A

A

G

I

E

W

I

L

Y

A

Exact match
A

G

2

1

3

I

E

0

i
:0
selisih : 9
geser : 4
Urutan pencarian dimulai dari huruf “e” yang ternyata cocok dengan teks, kemudian
dilanjutkan dengan huruf “i” yang ternyata cocok dengan teks, dan dilanjutkan dengan
huruf “g” dan “a” yang ternyata cocok dengan teks sehingga pencarian dianggap
menemukan output string yang sama. Maka dilakukan pergeseran yang akan
ditentukan oleh nilai adaptedGs yang ke-i atau adaptedGs [0] = 1 dan qsBc untuk
karakter berikutnya atau qsBc[w] = 5. Nilai yang akan dipakai untuk pergeseran
adalah nilai yang lebih besar atau dalam hal ini adalah 5.

Langkah 3:
D

H

E

A

A

G

I

E

W

I

L

Y

A

Mismatch
A

G

I

E

3

2

1

0

i
:0
selisih : 9
geser : 9

Universitas Sumatera Utara

Urutan pencarian dimulai dari huruf “e” yang ternyata tidak cocok dengan teks, maka
dilakukan pergeseran yang akan ditentukan oleh qsBc untuk karakter berikutnya yang
ternyata tidak tersedia, maka pencarian dianggap selesai.

3.3.2. Analisis Pencocokan String dengan Algoritma Quick Search

Algoritma Quick Search mencari data secara berurut pada tiap karater dalam teks
sehingga pencarian disebut pencarian sekuensial atau sequential search. Algoritma
Quick Search mencari pola karakter berdasarkan nilai Quick Search-bad character

atau qsBc (Handika, W. 2006). Berikut akan dilakukan langkah-langkah pencocokan
string denngan algoritma Quick Search.

Teks : DHEAAGIEWILYA
Pola

: AGIE

Proses pertama yang dilakukan adalah mencari nilai Quick Search-bad character atau
qsBc yang digunakan untuk proses pergeseran.

Tabel 3.8 PreQsBc pada Algoritma Quick Search
Char

D

h

E

A

g

i

w

L

Y

QsBc [char]

5

5

1

4

3

2

5

5

5

Selanjutnya akan dimulai langkah-langkah pencarian dengan menggunakan algoritma
Quick Search. Pertama-tama dihitung panjang pola dan panjang teks. Proses pencarian

dimulai dengan mencocokkan pola pertama dengan karakter teks pertama, jika terjadi
kecocokkan maka pencarian diteruskan dengan mencocokkan karakter pola
selanjutnya dengan karakter pada teks. Jika terjadi ketidakcocokkan maka terjadi
perhitungan qsBc. Hasil perhitungan qsBc akan digunakan untuk pergeseran.
Pergeseran terus terjadi hingga jumlah pergeseran lebih besar daripada selisih panjang
teks dengan panjang pola. Jika semua pola telah ditemukan maka dianggap telah
menemukan output string yang dicari (Handika, W. 2005).

Universitas Sumatera Utara

Langkah 1:
D

H

E

A

A

G

I

E

W

I

L

Y

A

mismatch
A
0

G
1

I
2

E
3

i
:0
selisih : 9
geser : 0
Urutan pencarian dimulai dari huruf “a” yang ternyata tidak cocok dengan teks, maka
dilakukan pergeseran yang akan ditentukan oleh nilai qsBc untuk karakter berikutnya
atau qsBc[a]= 4.

Langkah 2:

D

H

E

A

A

G

I

E

W

I

L

Y

A

Exact match
A
0

i

1

G
2

I

E

3

:0

selisih : 9
geser : 4
Urutan pencarian dimulai dari huruf “a” yang ternyata cocok dengan teks, kemudian
dilanjutkan dengan huruf selanjutnya “g” yang ternyata cocok pada teks, kemudian
pada huruf “i” dan huruf ”e” yang ternyata cocok pada teks sehingga pencarian

Universitas Sumatera Utara

dianggap menemukan output string yang sama. Selanjutkan akan dilakukan
pergeseran yang akan ditentukan oleh nilai qsBc untuk karakter berikutnya atau
qsBc[w] = 5.

Langkah 3:
D

H

E

A

A

G

I

E

W

I

L

Y

A

Mismatch
A

G

0

1

I
2

E
3

i
:0
selisih : 9
geser : 9
Urutan pencarian dimulai dari huruf “a” yang ternyata tidak cocok dengan teks, maka
dilakukan pergeseran yang akan ditentukan oleh qsBc untuk karakter berikutnya yang
ternyata tidak tersedia, maka pencarian dianggap selesai.

3.4. Flowchart Algoitma
Flowchart adalah bagan yang menunjukka n

prosedur

dan

proses

pemecahan

masalah sistem, mendeskripsikan prosedur penyelesaian masalah dalam bentuk
algoritma. Flowchart dapat diartikan sebagai suatu alat untuk sarana yang
menunjukan langakah-langkah yang harus dilaksanakan dalam menyelesaikan suatu
permasalahan untuk komputasi dengan cara mengekpresikannya ke dalam serangkaian
simbol-simbol grafik khusus (Sutanta, 2004).

Universitas Sumatera Utara

3.4.1. Flowchart MinShift

Nilai minShift merupakan nilai pencarian pola dalam teks dengan cara pola di cari dari
karakter yang memiliki nilai minShift terbesar hingga nilai minShift yang terkecil pada
Algoritma Maximal Shift. Berikut adalah flowchart mencari nilai minShift pada
Gambar 3.5.
Start

Input:
x : pattern
m : leng (x)

i=0

No
i= 0 ?

yes
No

No
--j

x [i] = = xj]
?

yes
yes
++i

minShift [i]= i - j

Gamabar 3.5 Flochart mencari nilai minShift pada Algoritma Maximal Shift.

Universitas Sumatera Utara

3.3.2. Flowchart MatchShif dan AdaptedGs

MatchShift adalah nilai untuk mencari nilai adaptedGs. AdaptedGs adalah yang

menghitung nilai pada tiap posisi dan kemudian nilai inilah yang kemungkinan akan
digunakan untuk pergeseran pada pola. Berikut adalah flowchart dari matchShift yang
dapat dilihat pada Gambar 3.6.
Start
Input:
x : pattern
m : leng (x)
Lshift = 1
Ploc = 1

AdaptaedGs(ploc) =
lshift

No

i= 0 ?

yes

j = ((pat[i].loc - lshift)