• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Dan Perbandingan Algoritma Maximal Shift Dengan Algoritma Quick Search Pada Aplikasi Kamus Farmakologi"

Copied!
87
0
0

Teks penuh

(1)

LISTING PROGRAM

void orderPattern(string x, pattern[] pat) {

int matchshift(string x, int ploc, int lshift, pattern[] pat)

{

int i, j;

(2)

break; }

return lshift; }

void preAdaptedGS(string x, int[] adaptedGS, pattern[] pat) {

int lshift, i, ploc;

adaptedGS[0] = lshift = 1;

for (ploc = 1; ploc <= x.Length; ++ploc) {

lshift = matchshift(x, ploc, lshift, pat); adaptedGS[ploc] = lshift;

lshift = matchshift(x, ploc, lshift, pat); }

adaptedGS[ploc] = lshift; }

}

bool MS(string x, string y) { value) ? (value > adaptedGS[i] ? value :

adaptedGS[i]) : (qsbc1['*'] > adaptedGS[i] ? qsbc1['*'] : adaptedGS[i]);

}

(3)

1.2. Quick Search

//disini mulai algoritma quick search #region QuickSearchLama

(4)

using System.Collections;

string queri = "SELECT keterangan, produsen from kamus where kata ='" + listBoxkata.SelectedItem.ToString() + "'";

(5)

tampil.perintah.CommandText = queri;

file.WriteLine(katams[i].ToString() + " " + waktums[i].ToString() + " Maximal Shift"); }

for (int i = 0; i < kataqs.Length; i++) {

(6)

file.Close();

(7)

this.groupBox1.Controls.Add(this.label1);

this.cmdqs.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold,

System.Drawing.GraphicsUnit.Point, ((byte)(0)));

(8)
(9)
(10)

this.listBoxkata.Size = new System.Drawing.Size(169,

private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button cmdqs;

private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtcari; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.TextBox produksi; private System.Windows.Forms.Label label2;

private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.TextBox rtqs;

private System.Windows.Forms.Label label4;

(11)

private System.Windows.Forms.TextBox rtms;

private System.Windows.Forms.RichTextBox rtbhasil; private System.Windows.Forms.ListBox listBoxkata; }

(12)

DAFTAR PUSTAKA

Azizah, 2013. Perbandingan Detektor Tepi Prewit dan Dektor Tepi Laplacian

Berdasarkan Kompleksitas Waktu dan Citra Hasil. Skripsi. Universitas Pendidikan Indonesia.

Charras, & Lecroq. 2004. Handbook of Exact String-Matching Algorithms-Foreword Collage Publications : Prancis.

Effendi, 2013. Penerapan String Matching Menggunakan Algoritma Boyer-Moore pada Translator Bahasa Pascal ke C. Jurnal Sistem Informasi UNIKOM, Vol 11(2): 262-275.

Fitrianingsih & Zulkoni. 2009. Farmakologi Obat-obat Dalam Praktek Kebidanan. Nuha Medika : Yogyakarta.

Hadika, 2006. Analisis Perbandingan Kinerja Pencarian String Dari Algoritma Maximal Shift, Optimal Mismatch, dan Quick Search. Skripsi Universitas Bina Nusantara.

Larsson, 1999. Stuctures of String Matching and Data Compression. Department of Computer Science. Lund University.

Lavitin, 2011. Introduction to the Design and Analysis of Algorithm 3rd Edition. United State of America. Pearson Education,Inc.

Munir, 2007. Algoritma dan Pemrograman dalam bahasa pascal dan C. Informatika: Bandung.

Navarro, 2002. Flexible Pettern Matching In Strings: Practical On-Line Search Algorithms For Texts and Biological Sequences. Cambridge University Press: United Kingdom.

Yatini, 2010. Flowchart, Algoritma, dan Pemrograman menggunakan bahasa C++ Builder. Graha Ilmu: Yogyakarta.

Sarno, et al. 2012. Semantic Search Pencarian Berdasarkan konten. Andi: Yogyakarta.

Sirait, 2014. Informasi Spesialite Obat Indonesia. Innovative Scientific Futuristic Informatif : Jakarta.

Stephen, 1994. String Searching Algorithms. World Scientific: Singapore. Suarga, 2006. Algoritma Pemrograman. Andi : Yogyakarta.

Sunday, 1990. A very fast substring search algorithm. Communications of the ACM . 33 (8): 132-142.

Sutanta, 2004. Algoritma Teknik Penyelesaian Permasalahan untuk Komputasi. Graha Ilmu: Yogyakarta.

Sutedjo, & Michael. 1997. Algoritma dan Teknik Pemrograman. Andi: Yogyakarta. Susanti & Kumala. 2011. Farmakologi Kebidanan Aplikasi Dalam Praktik Kebidanan.

Trans Info Media : Jakarta.

(13)

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.

(14)

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.

(15)

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 non-fungsional 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.

(16)

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.

(17)

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 masing-masing 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

Kegiatan user Respon system 1. Menekan

(18)

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 of event

Kegiatan User Respon system 1. Menekan

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

Kegiatan user Respon system 1. Menekan

(19)

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.

(20)

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

(21)

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

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:

I 0 1 2 3

char A G I E

Minshift

(22)

Tabel 3.5 Orderpattern Algoritma Maximal Shift

I 0 1 2 3

Char E I G A

minshift

[i] 3 2 1 0

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

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

Char A G I E

(23)

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

3 2 1 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.

(24)

Langkah 2:

D H E A A G I E W I L Y A

Exact match

3 2 1 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

3 2 1 0

i : 0 selisih : 9 geser : 9

A G I E

(25)

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

(26)

Langkah 1:

D H E A A G I E W I L Y A

mismatch

0 1 2 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

0 1 2 3

i : 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

A G I E

(27)

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

0 1 2 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).

(28)

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

i < m ?

j = i - 1

j >= 0 ?

x [i] = = xj] ?

minShift [i]= i - j ++i

Output: minShift

End

yes yes

yes

--j

No

yes

No No

(29)

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.

No

(30)

Setelah mendapatkan hasil nilai matchShift akan diteruskan untuk mencari nilai adaptedGs. Berikut adalah flowchart adapetedGs dapat dilihat dari Gambar 3.7.

Start

(31)

3.4.3. Flowchart QsBc

Quick search bad-character (qsBc) adalah nilai pada 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. Berikut adalah flowchart mencari nilai preqsBc pada Algoritma Maximal Shift dan Algoritma Quick Search yang dapat dilihat pada Gambar 3.8.

Start

Input: x : pattern m : leng (x)

i = 0

i < ASIZE ?

qsBc[i]= m+1

i < m ?

qsBc[x[i]] m - i

++i Output:

QsBc[i]

End

yes yes

No

i++

i = 0 No

(32)

3.4.4. Flowchart Maximal Shift

Maximal shift adalah proses pencarian dengan mentukan terlebih dahulu pola yang ingin dicari. Setelah semuanya selesai dilakukan, maka proses pencarian dimulai dengan mencocokkan pola yang telah diurutkan terhadap teks.Berikut adalah flowchart proses pencocokkan kata yang dapat dilihat pada Gambar 3.9.

Start

(33)

3.4.5. Flowchart Quick Search

Quick search adalah proses pencarian pola karakter berdasarkan nilai quick search bad-character yang sudah dilakukan sebelumnya. QsBc tersebut adalah sebagai nilai pergeseran. Berikut adalah flowchart proses pencocokkan kata pada algoritma Quick Search yang dapat dilihat pada Gambar 3.10.

Start

Input: x : pattern m : leng (x)

i = 0

i < ASIZE ?

qsBc[i]= m+1

i < m ?

qsBc[x[i]] m - i

++i Output:

QsBc[i]

End

yes yes

No

i++

i = 0 No

(34)

3.5. Perancangan Database

Penelitian ini menggunakan basis data (database), yaitu: kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari database tersebut. Aplikasi kamus farmakologi menggunakan SQL Server Management Studio 2012 sebagai tempat penyimpanan informasi nama-nama obat. Data yang tesimpan di dalam database ± 350 informasi nama-nama obat. Sistem memiliki satu tabel yaitu: Kamus, kemudian memiliki empat field yaitu: idkata, nama obat, keterangan obat, dan produksi. Perancangan database dapat dilihat pada Tabel 3.9.

Tabel 3.9 Database Kamus

No Field Tipe

1 Idkata Varchar

2 Nama obat Varchar

3 Keterangan Obat Varchar

4 Produksi Varchar

3.6. Perancangan Antarmuka (Interface)

Antarmuka (interface) adalah salah satu layanan yang disediakan oleh suatu sistem sebagai sarana interaksi antara pengguna dengan sistem. Perancangan antarmuka digunakan untuk memudahkan penggunaan aplikasi sistem yang ditujukkan kepada pengguna (user) sehingga sistem dapat berjalan sesuai dengan fungsinya secara optimal berdasarkan instruksi yang diberikan oleh user. Aplikasi yang dibangun pada penelitian ini menggunakan dua bahasa yaitu bahasa bahasa C# (Timothy, 2010).

3.6.1. Rancangan Halaman Utama

(35)

Gambar 3.11 Rancangan Halaman Utama.

Keterangan:

1. Merupakan tampilan logo farmakologi.

2. Menu kamus yaitu, halaman untuk pencarian kata.

3. Menu bantuan yaitu, halaman yang berisi panduan penggunaan aplikasi.

4. Menu tentang yaitu, halaman yang berisi informasi dari pembuat aplikasi dan judul aplikasi.

5. Exit yaitu, Keluar dari halaman utama.

3.6.2. Rancangan Halaman Kamus

Halaman kamus merupakan tampilan pencarian kata pada kamus farmakologi. Dalam halaman kamus terdiri dari masukkan kata, tekan tombol cari, kemudian diproses dan menampilkan kata dan keterangan, dan kecepatan waktu dari masing-masing algoritma. Perancangan dapat dilihat pada tampilan Gambar 3.12.

KAMUS FARMAKOLOGI

LOGO

KAMUS

BANTUAN

TENTANG

KELUAR

1 1

2

3

4

(36)

Gambar 5.12 Rancangan Halaman Kamus. Keterangan :

1. Masukkan kata yang ingin dicari. 2. Tombol pencarian kata.

3. Tampilan kata yang dicari.

4. Tampilan keterangan dari kata yang dicari. 5. Tampilan produksi dari kata yang dicari.

6. Tampilan running time pada algoritma Maximal Shift. 7. Tampilan running time pada algoritma Quick Search. 8. Tombol hapus untuk menghapus pada tampilan kata. 9. Tombol kembali untuk kembali kehalaman utama.

3

4

1

Input

Produksi

5

Hapus Keluar

8

9

Running Time Maximal Shift

Running Time Quick Search

6

7

Cari

(37)

3.6.3. Rancangan Halaman Bantuan

Halaman bantuan berisi tentang panduan bagaimana cara menggunakan aplikasi kamus farmakologi. Rancangan dapat dilihat pada Gambar 3.13.

Gamabar 3.13 Rancangan Halaman Bantuan.

Keterangan :

1. Penjelasan bagaimana cara penggunaan aplikasi kamus farmakologi. 2. Tombol kembali berfungsi untuk kembali ke halaman utama.

Penjelasan tentang aplikasi

Kembali

1

(38)

3.6.4. Rancangan Halaman Tentang

Halaman tentang berisi informasi profil pembuat aplikasi dan menampilkan judul dari aplikasi. Rancangan dapat dilihat pada Gambar 3.14.

Gambar 3.14 Perancangan Halaman Tentang.

Keterangan :

1. Tampilan imageview pembuat. 2. Tampilan judul aplikasi.

3. Tombol kembali ke halaman utama.

Judul Aplikasi Profi

Kembali

1

2

(39)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi Sistem

Implementasi sistem adalah tahapan setelah dilakukannya analisis dan perancangan. Pada tahap ini, aplikasi sistem yang dibangun akan melakukan cara kerja utamanya. Aplikasi sistem menggunakan bahasa C# dan sistem data (database). Perangkat lunak yang digunakan sebagai Integrated Development Environment (IDE) pada penelitian ini adalah Microsoft Visual Studio Ekspres 2012 For Windows Dekstop, dan SQL Server Management Studio sebagai sistem data. Pada aplikasi sistem terdapat 4 tampilan halaman yang digunakan yaitu halaman utama, halaman kamus, bantuan dan tentang.

4.1.1. Halaman Utama

Halaman utama adalah halaman awal yang berisi fitur-fitur yaitu kamus, bantuan, dan tentang. Berikut adalah tampilan halaman utama pada Gambar 4.1.

(40)

4.1.2. Halaman Kamus

Halaman kamus adalah tampilan pencarian kata yang akan digunakan user untuk mencari kata dalam kamus dengan memasukkan kata yang ingin dicari dan memilih algoritma pencarian sehingga menghasilkan kata dan keterangan dari kata tersebut. Berkikut adalah tampilan halaman kamus dapat dilihat pada Gambar 4.2.

(41)

4.1.3. Halaman Bantuan

Halaman bantuan adalah berisi penjelasan atau tata cara penggunaan aplikasi kamus farmakologi. Berikut adalah tampilan halaman bantuan yang dapat dilihat pada Gambar 4.3.

(42)

4.1.4. Halaman Tentang

Berikut adalah tampilan halaman tentang yang dapat dilihat pada Gambar 4.4.

Gambar 4.4 Tampilan Halaman Tentang.

4.2. Pengujian Sistem

(43)

4.2.1. Pengujian Pencarian Kata

Berikut adalah tampilan pengujian sistem pencarian kata pada kamus farmakologi dengan memasukkan kata ADALAT kemudia tekan tombol cari yang dapat dilihat pada Gambar 4.5.

Gambar 4.5 Pengujian Pencarian Kata.

(44)

4.2.3. Perbandingan Waktu (Running Time)

Berikut adalah tampilan perbandingan waktu yang tersimpan dalam bentuk teks untuk setiap algoritma yaitu Algoritma Maximal Shift dan Algoritma Quick Search yang dapat dilihat dapa Gambar 4.6.

Gambar 4.6 Perbandingan Waktu (Running Time).

(45)

4.3. Hasil Pengujian

Hasil pengujian dari penelitian ini adalah waktu (running time) dari pencarian kata dan jumlah kata yang ditemukan pada Algoritma Maximal Shift dan Algoritma Quick Search yang dilakukan terhadap string yang berbeda. Pada Gambar 4.7 dapat dilihat perbandingan waktu (running time) dari tampilan tersebut maka dapat diperoleh hasil pengujian yang dapat dilihat pada Tabel 4.1 dan Tabel 4.2.

Tabel 4.1 Hasil Pengujian Waktu pada Algoritma Maximal Shift.

No Pola Waktu

(Running Time)

1 E 2826

2 DY 3467

3 FUNGI 3033

4 DYSTAN 274

5 CALCIUM 2914

TOTAL 9481 ms

(46)

Tabel 4.2 Hasil Pengujian Waktu (Running Time) pada Algoritma Quick Search.

Pada Tabel 4.1 dan Tabel 4.2 dapat dilihat hasil pengujian waktu (running tiime) dari masing-masing algoritma. Setelah hasil pengujian didapat maka akan dibuat grafik perbandingan hasil pengujian dari masing-masing algoritma yang dapat dilihat pada Gambar 4.7.

Gambar 4.7 Grafik Waktu Proses Pencarian Algoritma Maximal Shift dan Algoritma Quick Search.

pencarian kata yang di Inputkan

(47)

Gambar 4.8 Grafik Total dan Waktu Rata-Rata Pencarian Algoritma Maximal Shift dan Algoritma Quick Search.

Dari grafik Gambar 4.7, 4.8, dan 4.9 dapat dijelaskan bahwa Algoritma Maximal Shift memiliki kecepatan waktu yang lebih cepat dibandingkan dengan Algoritma Quick Search. Artinya bahwa Algoritma Maximal Shift lebih cepat untuk pencocokan kata dibandingkan dengan Algoritma Quick Search yang lebih lama dalam pencocokan kata.

4.4. Kompleksitas Algoritma

Kompleksitas algoritma yang akan diuji adalah kompleksitas Algoritma Maximal Shift dan Algoritma Quick Search. Penelitian ini hanya menggunakan kompleksitas .

4.4.1 Kompleksitas Algoritma Maximal Shift

Perhitungan kompleksitas pada Algoritma Maximal Shift terdiri dari: nilai minShift, orderpattern, qsBc, proses pencarian Maximal Shift yang dapat dilihat pada Tabel 4.3, Tabel 4.4, Tabel 4.5, Tabel 4.6.

9481

waktu total dan waktu rata-rata pencarian kata

Grafik Perbandingan Waktu Rata-Rata

Algoritma Maximal Shift

(48)

Tabel 4.3 Kompleksitas MinShift.

Berikut adalah nilai Minshift dari algoritma Maximal Shift :

T(n) = C1 + C2 + C3m + C4m2 + C5m2 + C6m2 + C7m = C1 + C2 + (C3)m + (C4)m +(C5)m + (C6)m + (C7)m = (C1+C2+)m0 + ( C7)m1 + (C3+C4+ 3C5 + C6 )m2 =

= 2

Pada Tabel 4.3 dapat dilihat kolom C yaitu: C1, C2, C3, C4, C5, C6 dan C7 adalah sebuah konstanta. Kemudian # adalah frekuensi yang berfungsi sebagai ukuran masukan yaitu: (1) artinya, hanya melakukan sekali proses, (m) melakukan perulangan, dan (m2) adalah terjadinya perulangan di dalam perulangan, kemudian C.# adalah untuk mencari kompleksitas waktu (T(n)), t adalah waktu dan n adalah jumlah proses. Jumlahkan hasil dari perkalian C.#, kemudian ambil pangkat terbesar dari nilai masukan (#) dan akan di dapatkan pangkat terbesar yaitu m.

Code C # C.#

Void computeMinShift(x, m) { C1 1 C1

int i, j; C2 1 C2

For (i = 0; i<m; ++i) { C3 m C3m

For (j = i – 1; j >= 0; --j) C4 m2 C4m If (x[i] == x[j]) C5 m2 C5m

Break; C6 m2 C6m

minShift[i]= i – j }

}

(49)

Tabel 4.4 Kompleksitas Orderpattern. Berikut adalah preorderpattern dari algoritma Maximal Shift :

T(n) = C1 + C2 + C3m + 3C4m + C5

= C1 + C2 + (C3)m + 3C4m + C5 = (C1+C2+ C5)m0 +(C3+ 3C4)m1 =

(50)
(51)

Berikut adalah OrdernPattern dari algoritma Maximal Shift :

T(n) = C1 + C2 + C3 + C4m + C5m + C6m + C7m + C8m + C9m2 + C10m2 + C11m2 + C12m2 + C13m2 + C14m2 + C15m

= (C1+ C2+C3)m0 + (C4+C5+C6+ C7 +C8+ C15)m1 + (C9+C10+ C11 + C12+C13+C14)m2

= 2

Pada Tabel 4.6 dapat dilihat kolom C yaitu: C1, C2, C3, C4, C5, C6, C7, C8, C9, C10,C11, C12,C13 dan C14 adalah sebuah konstanta. Kemudian # adalah frekuensi yang berfungsi sebagai ukuran masukan yaitu: (1) artinya, hanya melakukan sekali proses, (m) melakukan perulangan sepanjang string atau teks , (m2) melakukan perulangan di dalam perulangan kemudian C.# adalah untuk mencari kompleksitas waktu (T(n)), t adalah waktu dan n adalah jumlah proses dari pola yang di inputkan oleh user. Jumlahkan hasil dari perkalian C.#, kemudian ambil pangkat terbesar dari nilai masukan (#) dan akan di dapatkan pangkat terbesar yaitu m.

Tabel 4.7 Kompleksitas Maximal Shift

Code C # C.#

public static void MS(){ C1 1 C1

int i, j; C2 1 C2

j = 0; C3 1 C3

while(j <= n - m){ C4 n C4n

i = 0; C5 1 C5

while (i < m && pat[i].c == y.charAt(j + pat[i].loc)) C6 mn C6mn

i++; C7 mn C7mn

if (i >= m) C8 mn C8mn

Output J; C9 mn C9mn

j+= Max (adaptedGS[i], qsBc.[ y [ j + m ]]); }

(52)

Berikut adalah Searching dari algoritma Maximal Shift :

T(n) = C1 + C2 + C3 + C4n + C5 + C6mn + C7mn + C8mn + C9mn + C10mn

= (C1+ C2+C3+C5)m0 + (C4)n1 + (C6 +C7+ C8+C9+C10)mn1 = m0 + n1 + mn1

=

Pada algoritma Maximal Shift menghasilkan preorderpattern T(n) = , preQsBc memiliki T(n)= , preadaptedGs T(n) = , dan pencarian dengan Maximal Shift T(n) = . Karena pangkat yang teebesar adalah .

4.4.2. Kompleksitas dengan Algoritma Quick Search

Perhitungan kompleksitas pada Algoritma Quick Search terdiri dari: nilai PreQsBc yang sudah di terangkan pada Tabel 4.5 dan proses pencarian Algoritma Quick Search pada Tabel 4.8.

Tabel 4.8 Kompleksitas Quick Search.

Code C # C.#

public static void QS(){ C1 1 C1

int i, j; C2 1 C2

j = 0; C3 1 C3

while(j <= n - m){ C4 n C4n

If (memcmp (x,y + j,m) == 0) C5 mn C5mn

Output (j) C6 mn C6mn

J += qsBc [y[j + m]]; }

}

C7 mn C7mn

Berikut adalah Searching dari algoritma Quick Search : T(n) = C1 + C2 + C3 + C4n + C5mn + C6 + C7mn

(53)

Pada Tabel 4.7 dapat dilihat kolom C yaitu: C1, C2, C3, C4, C5, C6, dan C7 adalah sebuah konstanta. Kemudian # adalah frekuensi yang berfungsi sebagai ukuran masukan yaitu: (1) artinya, hanya melakukan sekali proses, (m) melakukan perulangan sepanjang string atau teks , (m2) melakukan perulangan di dalam perulangan kemudian C.# adalah untuk mencari kompleksitas waktu (T(n)), t adalah waktu dan n adalah jumlah proses dari pola yang di inputkan oleh user. Jumlahkan hasil dari perkalian C.#, kemudian ambil pangkat terbesar dari nilai masukan (#) dan akan di dapatkan pangkat terbesar yaitu m.

(54)

BAB V

KESIMPULAN

5.1 Kesimpulan

Berdasarkan pembahasan dan hasil dari penelitian, maka diperoleh beberapa kesimpulan sebagai berikut:

1. Algoritma Maximal Shift memiliki banyak kompleksitas yaitu; MinShift, Ordernpattern, adaptedGs, PreQsBc dan proses pencarian dengan Maximal Shift yang membuat pencarian kata menjadi lebih lama.

2. Algoritma Quick Search memiliki kompleksitas PreQsBc dan proses pencarian dengan Quick Search sehingga proses pencarian lebih cepat dibandingkan Maximal Shift

5.2 Saran

Berikut ini adalah saran yang dapat digunakan untuk tahap pengembangan penelitian sistem ini antara lain:

1. Algoritma String Matching pada penelitian ini menggunakan dua algoritma yaitu Algoritma Maximal Shift dan Algoritma Quick Search. Penulis berharap pengembang selanjutnya membandingkan kinerja dengan Algoritma String Matching ya lainnya.

2. Aplikasi kamus farmakologi ini hanya mampu mencari kata dalam kamus dengan jumlah kata dalam database 350 kata. Diharapkan pada pengembang untuk menambahkan kata dalam database dari sumber yang lain.

(55)

BAB 2

TINJAUAN PUSTAKA

2.1. Algoritma

Algoritma ditemukan oleh seorang ahli matematika dari Uzbekistan, yang bernama

Abu Ja’far Muhammad Ibnu Al-Kwarizmi (770-840). Dalam bukunya yang berjudul

“Al-Jabr W’al Muqabala”, beliau telah menjelaskan langkah-langkah dalam

penyelesaian berbagai persoalan aritmatika. Kata “Algoritma”, kemungkinan diambil

dari kata “Al-Kwarizmi” yang kemudian berubah menjadi “Algorizm”, selanjutnya

panggilan ini dipakai untuk menyebut konsep “Algorithm” yang ditemukan (Munir,

2007).

Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi, algoritma adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran (Munir, 2007). Tujuan algoritma memberikan petunjuk tentang langkah-langkah logika penyelesaian permasalahan dalam bentuk yang mudah dipahami nalar manusia sebagai acuan yang membantu dalam mengembangkan program komputer. Pemahaman tentang algoritma akan mencegah sejak dini kemungkinan terjadinya kesalahan logika pada program komputer yang dikembangkan. Untuk mencapai tujuan diatas terdapat lima syarat yang harus dipenuhi dalam algoritma menurut (Sutanta, 2004).

1. Logika prosedur pada algoritma harus cukup mudah dipahami nalar manusia. 2. Validitas prosedur pada algoritma dapat ditelusuri dengan mudah.

3. Tidak menimbulkan kerancuan interpretasi bagi orang lain.

4. Prosedur pada algoritma harus cukup mudah dikonversi ke program komputer. 5. Prosedur pada algoritma tidak terpengaruh/bergantung pada bahasa

pemrograman apapun.

(56)

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, tinjau kembali algoritma Euclidean. Pada langkah 1, jika n=0, algoritma berhenti. Jika n≠0, maka nilai n selalu berkurang sebagai akibat langkah 2 dan 3, dan pada akhirnya nilai n=0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang dimaksud dengan “m dan n adalah bilangan bulat tak-negatif”. Contoh pernyataan, “bagilah p dengan

sejumlah beberapa buah bilangan bulat positif” dapat bermakna ganda.

Berapakah yang dimaksud dengan “berapa”?. Algoritma menjadi jelas jika

langkah tersebut ditulis “bagilah p dengan 10 buah bilangan positif ”.

3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk diproses. Algoritma Euclidean mempunyai dua buah masukan, m dan n.

4. Algoritma mempunyai nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan.

5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

Berdasarkan ciri algoritma yang dipaparkan oleh Donald Knuth dan defenisi algoritma maka dapat disimpulkan sifat utama suatu algoritma (Suarga, 2006) yaitu :

1. Input : Suatu algoritma memiliki input atau kondisi awal sebelum algoritma dilaksanakan dan bisa berupa nilai-nilai pengubah yang diambil dari himpunan khusus.

2. Output : Suatu algoritma menghasilkan output setelah dilaksanakan, atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diproses melalui algoritma.

3. Definiteness : Langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksana oleh penggunaan algoritma.

(57)

5. Effectiveness : Setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya memberi solusi sesuai yang diharapkan.

2.2. Konsep Algoritma

Penyelesain permasalahan dengan menggunakan alat bantu sistem komputer paling tidak akan melibatkan lima tahapan, yaitu:

1. Analisis masalah. 2. Merancang algoritma.

3. Membuat program komputer. 4. Menguji hasil program komputer. 5. Dokumentasi.

Tahapan-tahapan tersebut dapat dikelompokan menjadi dua, yaitu fase penyelesaian permasalahan (problem solving phase) dan fase implementasi (implementasi phase). Langkah pertama, yaitu analisis masalah merupakan langkah paling awal untuk mengetahui lebih jauh tentang permasalahan yang akan diselesaikan dengan menggunakan alat bantu komputer. Langkah kedua, yaitu merancang algoritma dilakukan dengan tujuan utama sebagai berikut (Sutanta, 2004).

a. Menentukan ide solusi. b. Menyatakan algoritma. c. Memvalidasi algoritma. d. Menganalisis algoritma.

(58)

2.3. String Matching

String matching adalah sebuah subjek yang banyak digunakan dalam lingkup pencarian teks. Algoritma-algoritma string matching menjadi komponen dasar yang diaplikasi pada berbagai piranti lunak dan dapat ditemukan pada hampir semua jenis sistem operasi (Charras & Lecroq, 1997). Selain itu, algoritma-algoritma string matching mempengaruhi metode pemrograman yang menjadi pola/acuan dalam bidang lainnya di computer science (baik sistem maupun perancangan piranti lunak). Algoritma-algoritma string matching juga mempunyai perubahan penting dalam lingkup teori computer science dengan menyediakan tantangan-tantangan dan permasalahan-permasalahan untuk dipecahkan.

Secara umum, String Matching merupakan proses pencarian kata (pattern) dalam sebuah kalimat teks (string), String matching bisa untuk menemukan satu pattern yang pertama kali ditemukan, atau yang lebih umum menampilkan semua pattern yang dapat ditemukan dalam teks (Charras & Lecroq, 1997). Jenis string matching bermacam-macam, dibedakan menurut hasil yang diinginkan. Yang akan dibahas pada tulisan ini adalah Exact String Matching, Artinya pencarian yang dilakukan untuk menemukan sebuah substring/pattern yang tepat sama dalam sebuah string/text. Pattern dilambangkan dengan P=P[O...m-1], yang mana m adalah panjang dari pattern tersebut atau bisa disebut P:Length. Teks dilambangkan dengan T=IIO ...n-1], yang mana n adalah panjang dari teks atau bisa disebut I:Length. String Matching dirumuskan sebagai berikut:

x = x[0…m-1]

y = y[0…n-1]

Dimana : x adalah pattern

m adalah panjang pattern y adalah teks

n adalah panjang teks

Kedua string terdiri dari sekumpulan karakter yang disebut alfabet yang dilambangkan

dengan ∑ (sigma) dan mempunyai ukuran σ (tao). String matching dibagi menjadi

(59)

Exact Matching digunakan untuk menemukan pattern yang berasal dari satu teks. Contoh pencarian exact matching adalah pencarian kata “pelajar” dalam kalimat “saya

seorang pelajar” atau “saya seorang siswa”. Sistem akan memberikan hasil bahwa

kalimat pertama mengandung kata “pelajar” sedangkan kalimat kedua tidak, meskipun kenyataannya pelajar dan siswa adalah kata yang bersinonim (Sarno, et al, 2012). Cara kerja algoritma Exact String Matching adalah sebagai berikut: Posisi awal pencarian adalah pada ujung kiri (karakter pertama) dari P atau T, lalu karakter pada posisi tertentu di T dibandingkan dengan karakter pada P, bagian ini biasa disebut dengan pattern, dan setelah seluruh perbandingan telah dilakukan atau ditemukan ketidaksamaan maka P akan digeser ke kanan. Prosedur ini dilakukan berulang-ulang sampai ujung kanan P bertemu dengan ujung kanan T. Setiap pattern dengan posisi i pada T terjadi ketika P berada pada posisi m-1. Berdasarkan arah pemeriksaan karakter, metode yang digunakan dikelompokkan menjadi (Cahyo, 2007):

1. Metode pembacaan berawal dari posisi kiri mengarah ke kanan, salah satu contohnya adalah algoritma Knut-Morris-Pratt. Metode ini tergolong alamiah karena sesuai dengan arah pembacaan biasa dan memiliki karakteristik seperti proses pada automata.

2. Metode pembacaan berawal dari posisi kanan mengarah ke kiri, misalnya algoritma Boyer-Moore. Metode ini umumnya menghasilkan algoritma yang sederhana dan dianggap paling mangkus.

3. Metode pencarian dengan aturan tertentu, salah satunya adalah pencarian dua arah yang diawali dengan kemunculan algoritma dua jalur yang dicetuskan oleh Crochemore-Perrin. Metode ini melakukan dua jenis pencarian, yang pertama adalah mencari bagian kanan pola dari kiri ke kanan, dan jika tidak ada ketidakcocokan, pencarian dilanjutkan dengan bagian kiri.

(60)

String matching adalah pencarian sebuah pattern pada sebuah teks. Prinsip kerja algoritma string matching adalah sebagai berikut (Effendi, et al, 2013):

1. Memindai teks dengan bantuan sebuah window yang ukurannya sama dengan panjang pattern.

2. Menempatkan window pada awal teks.

3. Membandingkan karakter pada window dengan karakter dari pattern. Setelah pencocokan (baik hasilnya cocok atau tidak cocok), dilakukan shift ke kanan pada window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini disebut mekanisme sliding-window.

Algoritma string matching mempunyai tiga komponen utama (Effendi, et al, 2013), yaitu:

1. Pattern, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan dengan x[0..m-1], panjang pattern dinyatakan dengan m.

2. Teks, yaitu tempat pencocokan pattern dilakukan, dinyatakan dengan y[0..n-1], panjang teks dinyatakan dengan n.

3. Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern, dinyatakan dengan ∑ dengan ukuran dinyatakan dengan ASIZE.

2.4. Algoritma Maximal Shift

(61)

Proses pertama adalah prosedur perhitungan nilai minShift karakter pola yang akan digunakan untuk proses pengurutan. Dapat dilihat pada Tabel 2.1.

.

Tabel 2.1 Menentukan Nilai MinShift pada Contoh.

Proses kedua adalah orderPattern yang digunakan untuk mengurutkan karakter pada pola dari nilai minShift tertinggi hingga terkecil pada pola. Jika menemukan karakter yang memiliki nilai minShift yang sama maka pengurutan didasarkan pada posisi pencarian dari kanan ke kiri, yaitu posisi karakter yang di temukan dahulu diurutkan lebih awal. Seperti pada Tabel 2.2.

Tabel 2.2 OrdernPattern Maximal Shift pada Contoh.

I 0 1 2 3 4 5 6 7

Pat[i].loc 3 2 7 6 5 4 1 0 Pat[i].c G A G A G A C G

Proses ketiga adalah preQsBc yang mengitung nilai qsBc pada tiap-tiap karakter yang selanjutnya nilai tersebut kemungkinan akan digunakan untuk pergeseran pola dengan cara menetukan posisi karakter dalam pola dari kanan ke kiri dan jika ada karakter sama dalam pola maka posisi karakter yang pertama ditemukan yang dicatat. Seperti pada Tabel 2.3.

Tabel 2.3 Perhitungan preqsBc pada Contoh

i 0 1 2 3 4 5 6 7

x[i] G C A G A G A G minShift[i] 1 2 3 3 2 2 2 2

c A C G T

(62)

Proses keempat adalah preAdatedGs yang menghitung nilai pada tiap posisi dan kemudian nilai inilah yang kemungkinan akan digunakan untuk pergeseran pada pola. Dapat dilihat pada Tabel 2.4.

Tabel 2.4 Perhitungan adaptedGs pada Contoh.

(63)

Gambar 2.1 Tahap pencarian algoritma Maximal Shift.

2.5. Algoritma Quick Search

Menurut (Sunday, 1990) algoritma Quick Search adalah algoritma yang paling sederhana dimana perbandingan yang dilakukan secara ketat dari kiri ke kanan (Stephen, 1994). Algoritma Quick Search ini 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 (Handik, 2006).

[ ] { { [ ] }}

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

Tabel 2.5 Perhitungan preQsBc pada Contoh QS

Langkah-langkah pencarian dengan algoritma Quick Search. 1. Pertama dihitung selisih panjang pola dan panjang teks.

2. Proses pencarian dimulai dengan mencocokkan karakter pola pertama dengan karakter teks pertama.

C A C G T

(64)

3. Jika terjadi kecocokkan maka pencarian diteruskan dengan mencocokkan karakter pola selanjutnya dengan karakter pada teks.

4. Jika semua pola ditemukan maka dianggap telah menemukan ouput string yang dicari.

(65)

Gambar 2.2 Tahap pencarian algoritma Quick Search

2.6. Kompleksitas Algoritma

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma membutuhkan waktu yang lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. Kompleksitas algoritma terdiri dari dua macam yaitu kompleksitas waktu dan kompleksitas ruang (Azizah, 2013).

Kompleksitas waktu dinyatakan oleh T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan sebagai fungsi dari ukuran masukan n, dimana ukuran masukan (n) merupakan jumlah data yang diproses oleh algoritma. Waktu yang diperlukan untuk menjalankan suatu algoritma harus semakin cepat. Karena kompleksitas waktu menjadi hal yang sangat penting, maka analisis kompleksitas algoritma deteksi tepi akan dilakukan terhadap running time algoritma tersebut.

2.6.1. Notasi Asimptotik

Untuk nilai n cukup besar, bahkan tidak terbatas, dilakukan analisis efisiensi asimptotik dari suatu algoritma untuk menentukan kompleksitas waktu yang sesuai atau disebut juga kompleksitas waktu asimptotik. Notasi yang digunakan untuk menentukan kompleksitas waktu asimptotik dengan melihat waktu tempuh (running time). Kompleksitas waktu asimptotik terdiri dari tiga macam yaitu (Lavitin, 2011):

1. Keadaan terbaik (best case) dinotasikan dengan Big-Omega.

(66)

3. Keadaan terburuk (worsh case) dilambangkan dengan notasi ( ) Big-O.

Gambar 2.3 Contoh Grafik Notasi Asimptotik Ω.

Gambar 8.3 menunjukan notasi Ω menjadi batas bawah dari suatu fungsi agar

berada dalam suatu faktor konstan. Dinyatakan jika terdapat konstanta positif dan sedemikian sehingga pada dan dikanan , nilai selalu berada tepat pada atau diatas (Lavitin, 2011).

Gambar 2.4 Contoh Grafik Notasi Asimptotik .

(67)

, , dan sedemikian sehingga pada dan di kanan , nilai selalu berada tepat pada , tepat pada , atau diantara dan .

Gambar 2.5 Contoh Grafik Notasi Asimptotik .

(68)

2.7. Farmakologi

Farmakologi adalah ilmu yang mempelajari tentang obat, bertujuan agar dapat menggunakan obat untuk pencegahan, diagnosis, dan pengobatan penyakit. Prinsip farmakologi adalah molekul obat harus dapat mempengaruhi secara kimia satu atau lebih isi sel agar mengahasilkan respons farmakologi. Cabang-cabang farmakologi mencakup (Susanti & Kumala, 2011) :

1. Farmakoqnosi adalah ilmu yang mempelajari tentang sifat-sifat tumbuhan dan bahan lain yang merupakan sumber obat.

2. Farmasi adalah ilmu yang mempelajari tentang cara membuat, memformulasikan, menyimpan dan menyediakan obat.

3. Farmakologi klinik adalah ilmu yang mempelajari tentang efek obat pada manusia.

4. Farmakokinetika adalah ilmu yang mempelajari tentang nasib obat dalam tubuh yaitu absorpsi, distribusi, metabolisme, dan ekskresinya.

5. Farmakodinamika adalah ilmu yang mempelajari tentang efek obat terhadpa fisiologi dan biokimia berbagai organ tubuh mekanisme kerjanya.

(69)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Dalam ilmu kesehatan banyak terdapat istilah medis yang berasal dari bahasa Yunani atau Latin. Secara umum, istilah yang berkaitan dengan diagnosis dan operasi

memiliki asal-usul Yunani, sedangkan istilah anatomi berasal dari Latin. Farmakologi

berasal dari kata Yunani yaitu, farmakon yang berarti obat dalam makna sempit, dan

dalam makna luas adalah semua zat selain makanan yang dapat mengakibatkan

perubahan susunan atau fungsi jaringan tubuh, sedangakan logos yang bearti ilmu.

Sehingga farmakologi adalah ilmu yang mempelajari pengaruh bahan kimia pada sel

hidup dan sebaliknya reaksi sel hidup terhadap bahan kimia tersebut. Pemahaman

tentang istilah medis dan kemampuan untuk memecah istilah medis yang dapat

membantu masyarakat memaksimalkan manfaat dari penggunaan aplikasi kamus

farmakologi dan membuat terminologi medis lebih mudah dipahami.

Komputer memiliki banyak kemampuan antara lain mengolah, menyimpan, dan mencari data yang telah disimpan, membuat file, melakukan perhitungan, mengubah data, serta mengirim data dengan internet. Pencarian data dalam internet memakai kata kunci. Oleh sebab itu, harus menggunakan metode yang tepat agar kegiatan pengolahan dan pencarian data dapat dilakukan dan ditemukan dengan cepat dan tepat.

(70)

perintah replace. Pattern dan teks merupakan string (kumpulan karakter dengan panjang tertentu) (Charras & Lecroq, 1997).

Salah satu algoritma String Matching adalah algoritma Quick Search yang merupakan penyederhanaan dari algoritma Boyer-Moore (merupakan varian yang lebih sederhana). Algoritma ini hanya menggunakan tabel bad-character shift. Pencocokan dilakukan dari kiri ke kanan. Kemudian algoritma yang lainnya adalah Maximal Shift yang merupakan algoritma yang mencari pola dalam teks dengan cara pola dicari dari karakter yang memiliki nilai minShift yang terbesar hingga nilai minShift yang terkecil (Handika, 2006). Berdasarkan latar belakang yang telah dituliskan, maka penulis akan

mencoba membuat penelitian dengan judul “Analisis dan Perbandingan Algoritma

Maximal Shift dengan Algoritma Quick Search pada Aplikasi Kamus Farmakologi ”.

1.2. Rumusan Masalah

Rumusan masalah penelitian ini adalah sebagai berikut:

1. Merancang sebuah aplikasi kamus farmakologi yang memudahkan untuk pencarian kata dengan cepat dan tepat.

2. Mengetahui kinerja algoritma pencarian string dengan membandingkan waktu pencarian string yang dibutuhkan dari masing-masing algoritma yaitu algoritma Maximal Shift dan algoritma Quick Search.

1.3. Batasan Masalah

Batasan masalah di dalam tulisan ini adalah sebagai berikut:

1. Aplikasi ini hanya mampu menginput data, melakukan pencarian serta mengukur dalam satuan waktu milisekon proses pencarian string/kata ( . 2. Kamus farmakologi ini hanya memberikan keterangan tentang istilah

farmakologi atau fungsi dari obat.

3. Penelitian ini hanya membahasa algoritma Maximal Shift dan Algoritma Quick Search.

(71)

5. Jumlah kata yang tersedia pada database ± 350 kata, sumber dari informasi spesialite obat Indonesia (ISO) dan farmakologi kebidanan.

6. Perancangan aplikasi ini menggunakan aplikasi C# dan SQL Server Management Studio 2012.

1.4. Tujuan Penelitian

Penelitian ini bertujuan menganalisis untuk mengetahui perbandingan kinerja algoritma pencarian string dengan membandingkan waktu pencarian string dalam kompleksitas Big dari masing-masing algoritma yaitu algoritma Maximal Shift dan algoritma Quick Search.

1.5. Manfaat Penelitian

Penelitian ini diharapkan dapat memberikan manfaat sebagai berikut:

1. Memudahkan untuk pencarian kata dalam kamus farmakologi.

(72)

1.6. Metodologi Penelitian

Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur

Pada tahap ini penulisan dimulai dengan studi kepustakaan yaitu proses pengumpulan bahan-bahan referensi baik dari buku-buku, artikel-artikel, maupun dari hasil penelitian mengenai String Matching, Algoritma Maximal Shift dan Algoritma Quick Search.

2. Analisis dan Perancangan

Masalah akan dianalisis untuk dimodelkan secara konseptual dengan mengidentifikasi seluruh elemen yang dibutuhkan dan batasan masalah dalam mencapai tujuan. Kemudian perancangan sistem dilakukan dengan mendesain user interface, flowchart, sebagai gambaran sistem yang akan dibuat.

3. Implementasi

Pada tahap ini sistem akan dibangun dengan menggunakan bahasa pemrograman C#.

4. Pengujian Sistem

Sistem yang akan dibuat akan diuji dengan mencocokkan kata (pattern) dengan string yang dicari dengan cara kerja yang berbeda pada String Matching lalu melihat kecepatan proses pencarian kata pada sistem yang akan dibuat dengan menggunakan algoritma Maximal Shift dengan algoritma Quick Search.

5. Dokumentasi

(73)

1.7. Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu :

BAB 1 PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penelitian judul

skripsi “Analisis dan Perbandingan Algoritma Maximal Shift dengan Algoritma Quick Search pada Aplikasi Kamus Farmakologi.”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan skripsi.

BAB 2 LANDASAN TEORI

Berisi tentang penjelasan singkat mengenai defenisi String Matching, tujuan String Matching, penjelasan algoritma, tujuan algoritma dan penjelasan algoritma Maximal Shift dan algoritma Quick Search.

BAB 3 ANALISIS DAN PERANCANGAN

Berisi tentang uraian analisis mengenai proses kerja dari algoritma Maximal Shift dan Quick Search yang terdiri dari flowchart, pseudocode, Unified Modeling Language (UML) serta perancangan dari aplikasi.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Pada tahap ini dilakukan pembuatan sistem dan coding sesuai dengan analisis dan perancangan. Kemudian melakukan pengujian sistem.

BAB 5 KESIMPULAN DAN SARAN

(74)

ABSTRAK

Aplikasi kamus farmakologi dapat membantu masyarakat untuk memahami istilah medis yang berasal dari bahasa Yunani atau Latin yang sulit dipahami. Sehingga, dibutuhkan algoritma String Matching untuk memudahkan pencarian kata pada aplikasi tersebut, terdapat beberapa algoritma String Matching yaitu; Maximal Shift dan Quick Search. Dalam proses pencarian kata algoritma Maximal Shift dan Quick Search memiliki cara kerja yang berbeda. 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 dan perbandingan pola yang dilakukan dari kanan ke kiri. Sedangkan, Quick Search adalah algoritma sederhana dimana perbandingan yang dilakukan secara ketat dari kiri ke kanan dan mencari pola karakter berdasarkan nilai Quick Search-bad character. Aplikasi kamus farmakologi ini akan menampilkan pencarian kata serta perbandingan running time kedua algoritma. Dari hasil pencarian kata terdapat nilai rata-rata running time pada algoritma Maximal Shift yaitu; dan Algoritma Quick Search yaitu;

. Nilai rata-rata tersebut dapat disimpulkan Algoritma Maximal Shift lebih

cepat melakukan pencocokkan kata.

(75)

ANALYSIS AND COMPARISION MAXIMAL SHIFT ALGORITHM WITH QUICK SEARCH ALGORITHM FOR DICTIONARY APPLICATION

PHARMACOLOGY

ABSTRCT

Pharmacology dictionary application can help people to understand medical terms that derived from Greek or Latin. However, this application needs string matching algorithm to work in order to get the definition faster. Some of the string matching algorithm are Maximal shift and Quick search. Maximal shift and quick search algorithm have different processes. Maximal shift is an algorithm that looks for pattern in the text from the character’s biggest value of minShift to smallest minshift, The comparison of patterns started from right to left. Meanwhile, the Quick search algorithm is a simple algorithm whereby the comparison of patterns is done strictly from left to right, and the find is of the characters pattern is based on Quick

search-bad character’s value.The pharmacology dictionary application will show the

comparison of the two algorithm’s running time. Of the word search results there the average value on Maximal Shift Algorithm running time is and Quick Search Algorithm is . It is therefor concluded that Maximal Shift Algorithm is faster than String Matching.

(76)

ANALISIS DAN PERBANDINGAN ALGORITMA MAXIMAL SHIFT DENGAN ALGORITMA QUICK SEARCH PADA APLIKASI KAMUS

FARMAKOLOGI

SKRIPSI

DHEA AGIE WILYA 141421082

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

(77)

ANALISIS DAN PERBANDINGAN ALGORITMA MAXIMAL SHIFT DENGAN ALGORITMA QUICK SEARCH PADA APLIKASI KAMUS FARMAKOLOGI

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

DHEA AGIE WILYA 141421082

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

(78)

PERNYATAAN

ANALISIS DAN PERBANDINGAN ALGORITMA MAXIMAL SHIFT DENGAN ALGORITMA QUICK SEARCH PADA APLIKASI KAMUS FARMAKOLOGI

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, juli 2016

Gambar

Gambar 3.7 Flowchart mencari nilai adaptedGs pada Algoritma Maximal shift.
Gambar 3.8 Flowchart mencari nilai preQsBc pada Algoritma Maximal Shift dan
Gambar 3.9 Flowchart pencarian Maximal Shift.
Gambar 3.10 Flowchart proses pencarian Algoritma Quick Search.
+7

Referensi

Dokumen terkait

Pada tahap ketiga papan permainan akan membaca teks secara diagonal dari kiri atas ke kanan bawah dan begitupun sebaliknya untuk mencari pola kata, namun pada tahap

Dalam aplikasi kamus hukum ini membutuhkan algoritma pencocokan string ( String Matching ) yaitu algoritma yang dapat mencari kata ( pattern ) dalam sebuah kalimat

Algoritma kategori ini melakukan pencocokan string dimulai dari karakter paling kiri pattern seperti yang ditunjukkan pada Gambar 2.2b. Beberapa algoritma yang termasuk

Algoritma RAITA merupakan salah satu metode model pencarian dengan mencocokan pola kata dari sebuah string dengan pola kata yang ingin dicari, proses pencocokan pola

Knuth-Morris-Pratt, metode ini mencari kehadiran sebuah kata dalam teks dengan melakukan observasi awal (preprocessing) dengan cara mengecek ulang kata

adalah penulis mencari algoritma mana yang lebih efisien dengan mencocokkan. string diukur berdasarkan kompleksitas ( big Ө ) dan waktu yang

Hasil penelitian menunjukkan bahwa pencarian string pada teks bahasa medis dengan menggunakan algoritma Boyer-Moore lebih. baik dibandingkan dengan algoritma

Model kompresi file teks dengan menggunakan algoritma sequitur dengan mencari pasangan karakter yang sama kemudian karakter-karkter tersebut diberi simbol yang disebut juga simbol