APLIKASI ANALISIS DAN UJI PERBANDINGAN ALGORITHMA KNUT MORRIS PRATT ( KMP ) DAN BOOYER MOORE ( BM ) UNTUK PENCARIAN POLA KATA DALAM FILE TEKS.

(1)

KNUT MORRIS PRATT ( KMP ) DAN BOOYER MOORE ( BM ) UNTUK PENCARIAN POLA KATA DALAM FILE TEKS

SKRIPSI

Oleh :

ARFIN SAKA ADIENATA PUTRA 0734010128

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL "VETERAN" JAWA TIMUR

2012

Hak Cipta © milik UPN "Veteran" Jatim :


(2)

APLIKASI ANALISIS DAN UJI PERBANDINGAN ALGORITHMA KNUT MORRIS PRATT ( KMP ) DAN BOOYER MOORE ( BM )

UNTUK PENCARIAN POLA KATA DALAM FILE TEKS

SKRIPSI

Diajukan Untuk Memenuhi Sebagian Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

ARFIN SAKA ADIENATA PUTRA 0734010128

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR


(3)

i

Pertama-tama penulis panjatkan puji syukur atas kehadiran Allah S.W.T

karena atas rahmat dan karunia-Nyalah akhirnya laporan tugas akhir ini dapat

penulis selesaikan. Tak lupa pula shalawat dan salam penulis panjatkan kepada

Nabi akhir zaman Muhammad S.A.W, karena berkat perjuangan-Nyalah karunia

Iman dan Islam senantiasa menjadi inspirasi bagi penulis.

Adapun maksud penulisan Laporan Tugas Akhir ini adalah sebagai

gambaran terhadap apa yang penulis kerjakan pada Tugas Akhir. Selain itu juga

laporan ini sebagai syarat untuk pelaksanaan mata kuliah Tugas Akhir dalam

menyelesaikan program studi strata satu (S-1) di Universitas Pembangunan

Nasional “Veteran” Jawa Timur.

Penulis menyadari sepenuhnya masih terdapat banyak kekurangan dalam

penyelesaian penulisan laporan Tugas Akhir ini. Namun penulis berusaha

menyelesaikan laporan ini dengan sebaik mungkin. Segala kritik saran yang

bersifat membangun sangat diharapkan dari semua pihak, guna perbaikan dan

pengembangan di masa yang akan datang. Akhirnya besar harapan penulis agar

laporan ini dapat diterima dan berguna bagi semua pihak.

Surabaya, Februari 2012

Penulis

Hak Cipta © milik UPN "Veteran" Jatim :


(4)

UCAPAN TERIMAKASIH

Ucapan terimakasih ini saya persembahkan sebagai perwujudan rasa

syukur atas terselesaikannya Laporan Tugas Akhir. Ucapan terima kasih ini saya

tujukan kepada :

1. Allah SWT, karena berkat Rahmat dan berkahNya kami dapat menyusun

dan menyelesaikan Laporan Tugas Akhir ini hingga selesai.

2. Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri UPN

“Veteran” Jawa Timur.

3. Ibu Dr. Ir. Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Informatika

UPN “Veteran” Jawa Timur.

4. Ibu Hj. Asti Dwi Irfianti, S.Kom, M.Kom selaku Dosen Pembimbing

Pertama yang telah meluangkan begitu banyak waktu, tenaga, dan pikiran

serta sabar dalam membimbing penulis dari awal hingga terselesaikannya

Laporan Tugas Akhir ini.

5. Ibu Dr. Ir. Ni Ketut Sari, MT selaku Dosen Pembimbing Kedua yang telah

meluangkan begitu banyak waktu, tenaga, dan pikiran serta sabar dalam

membimbing penulis dari awal hingga terselesaikannya Laporan Tugas

Akhir ini.

6. Bapak Agus Hermanto, S.Kom selaku dosen yang memberikan ide –


(5)

iii

7. Kedua orang tua tercinta atas semua doa, dukungan, serta harapannya pada

saat penulis melakukan Tugas Akhir sampai terselesaikannya penyusunan

Laporan Tugas Akhir ini.

8. Kakak saya Mbak Nilla dan suami (Mas Fery) beserta anaknya, Mbak Ita

dan Suami (Mas Rudy) yang tidak bosan-bosannya membantu dan selalu

memberikan motivasi serta semangat kepada penulis mulai dari awal

sampai terselesaikannya Tugas Akhir ini.

9. Keponakan saya Justine Raditya Abid Putra ( Abiie ) yang selalu

memberikan keceriaan dan kelucuan dari tingkahnya yang bisa

memberikan refresh otak penulis jika penulis mengalami kepenatan atau

kebuntuan pada tugas akhir ini.

10. Sahabat terbaik yang pernah saya miliki: Yayuk (Anggi), Ndha (Ennanda),

dan Cungkring ( Septian ), Cucky ( S. Lucky ), Gondrong ( Duwi M. )

yang tidak bosan-bosannya untuk membantu dan mendengarkan keluh

kesah penulis setiap saat serta selalu memberikan motivasi agar cepat

menyelesaikan tugas akhir ini, dan sekarang gantian kamu odek yang

harus cepat-cepat menyelesaikan tugas akhirmu.

11. Sang Motivator: Eko “ The Chief of Spaghetti “ , Sigit32 ( Sigit R. ),

Atenk ( Rizal Rangga A. ) karena kalian bertigalah yang mampu membuat

penulis semangat untuk mengejar ketertinggalan sehingga tugas akhir ini

selesai juga dan terimakasih yang tak terhingga atas semua bantuan, saran,

dan doanya selama ini kawan-kawan terbaikku.

Hak Cipta © milik UPN "Veteran" Jatim :


(6)

12. Teman - teman seangkatan dan seperjuangan teknik informatika, teman -

teman Sedan Puti ’01 dan semua teman-teman yang tidak bisa disebutkan

satu persatu. Terimakasih banyak karena telah membantu penyelesaian

Tugas Akhir ini

Sebagai manusia penulis mempunyai keterbatasan dan kekurangan. Oleh

karena itu, dibutuhkan kritik dan saran dalam memperbaiki penulisan laporan ini.

Surabaya, Februari 2012


(7)

v

KATA PENGANTAR ... i

UCAPAN TERIMAKASIH ... ii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... x

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah... 1

1.2 Perumusan Masalah... 2

1.3 Batasan Masalah... 3

1.4 Tujuan Penelitian... 3

1.5 Manfaat Penelitian... 3

1.6 Metodologi Penelitian... 4

1.7 Sistematika Penulisan... 5

BAB II TINJAUAN PUSTAKA 2.1 Algorithma dan Pemrograman ………... 7

2.2 Algorithma Knut Morris Pratt ……... 8

2.3 Algorithma Booyer – Moore ………... 11

2.4 Rekayasa Perangkat Lunak ………... 16

2.5 Pengujian Perangkat Lunak …... 19

Hak Cipta © milik UPN "Veteran" Jatim :


(8)

2.6 Flow Map …………... 20

2.7 Embarcadero Delphi 2010 ………... 21

2.8 Penanganan Database pada Delphi ... 26

2.9 Interaksi Manusia dan Komputer ... 27

2.9.1 Tujuan Interaksi Manusia dan Komputer ... 28

2.9.2 Media Antarmuka manusia dan Komputer ... 29

2.9.3 Sub Bidang Studi Interaksi Manusia dengan Komputer ... 30

2.9.4 Aturan Desain Antarmuka ……… 31

BAB III ANALISA PERMASALAHAN 3.1 Alur Kegiatan Penelitian ... 32

3.2 Bahan Penelitian ……... 33

3.2.1 Algorithma Knut Morris Pratt …...………... 33

3.2.2 Algorithma Booyer – Moore …..……... 36

3.3 Analisis Perbandingan... 38

3.3.1 Perbandingan Booyer Moore ... 38

3.3.2 Perbandingan Knut Morris Pratt ... 39

3.3.3 Hasil Perbandingan ... 39

3.4 Diagram Alur Sistem ………... 40

3.5 Spesifikasi Perangkat Yang Dipergunakan ... 41


(9)

vii

4.1 Implementasi Hasil Perancangan ………... 43

4.2 Implementasi Prosedur Knut Morris Pratt... 43

4.3 Implementasi Prosedur Booyer – Moore ... 44

4.4 Pengujian Aplikasi ... 46

4.4.1 Percobaan 1 …..……… 48

4.4.2 Percobaan 2 …..……… 49

4.4.3 Percobaan 3 …..……… 50

4.4.4 Percobaan 4 …..……… 52

4.4.5 Percobaan 5 …..……… 53

4.4.6 Percobaan 6 …..……… 54

4.4.7 Percobaan 7…..………. 55

4.4.8 Percobaan 8 ..……… 56

4.4.9 Percobaan 9 ..……….... 57

4.4.10 Percobaan 10 …..……….. 58

4.5 Tabel Hasil Percobaan ………... 59

BAB V PENUTUP 5.1 Kesimpulan... 61

5.2 Saran ………. 62

DAFTAR PUSTAKA... ... 63

Hak Cipta © milik UPN "Veteran" Jatim :


(10)

DAFTAR TABEL

Tabel 2.1 Jenis – jenis File dalam Delphi …………... 26

Table 3.1 Perolehan Waktu Hasil Pengujian... 38 Tabel 4.1 Hasil Percobaan ………. 60


(11)

viii

Gambar 2.1 Pondasi RPL ………... 17

Gambar 2.2 Tampilan Awal Delphi …... 23

Gambar 2.3 Daftar Komponen Palet Standar Delphi ... 24

Gambar 2.4 Daftar Komponen Palet Additional ... 24

Gambar 2.5 Daftar Komponen Palet Win 32 ... 24

Gambar 2.6 Daftar Komponen Palet System ... 25

Gambar 2.7 Komponen Palet Dialog ... 25

Gambar 2.8 Membuat Aplikasi Sederhana dengan Delphi ... 25

Gambar 3.1 Alur Kegiatan Penelitian ... 32

Gambar 3.2 Grafik Booyer Moore... 38

Gambar 3.3 Grafik Knut Morris Pratt... 39

Gambar 3.4. Diagram Alur Pencarian Pola String... 40

Gambar 3.5 Perancangan Antar Muka ………... 42

Gambar 3.6 Perancangan Grafik Antar Muka ………. ... 42

Gambar 4.1 Tampilan Awal Aplikasi ... 46

Gambar 4.2 Tampilan Menginputkan File Teks ... 47

Gambar 4.3 Tampilan File Teks Sudah Diinputkan ... 47

Gambar 4.4 Percobaan 1 String yang Dicari “ sangkuriang “ ... 48

Gambar 4.5 Percobaan 1 pada algorithma Knut Morris Pratt ... 48

Gambar 4.6 Percobaan 2 String “ sumbi “ ... 49

Gambar 4.7 Percobaan 2 String “ sumbi “ ... 50

Hak Cipta © milik UPN "Veteran" Jatim :


(12)

Gambar 4.8 Percobaan 3 String “ Dayang “ ………... 50

Gambar 4.9 Percobaan 3 String “ Dayang “ ………... 51

Gambar 4.10 Percobaan 4 String “ tumang “ ... 52

Gambar 4.11 Percobaan 4 String “ tumang “ ... 52

Gambar 4.12 Percobaan 5 String “ Tumang “ ………... 53

Gambar 4.13 Percobaan 5 String “ Tumang “ ………... 53

Gambar 4.14 Percobaan 6 String “ jama “ ... 54

Gambar 4.15 Percobaan 6 String “ jama “ ... 54

Gambar 4.16 Percobaan 7 String “ jawa Barat “... 55

Gambar 4.17 Percobaan 7 String “ jawa Barat “ …... 55

Gambar 4.18 Percobaan 8 String “ JawaBarat “ ……... 56

Gambar 4.19 Percobaan 8 String “ JawaBarat “ …... 56

Gambar 4.20 Percobaan 9 String “ Jawa Barat “ ... 57

Gambar 4.21 Percobaan 9 String “ Jawa Barat “ ... 58

Gambar 4.22 Percobaan 10 String “ perahu “ …... 58


(13)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Judul : Aplikasi Analisa Dan Uji Perbandingan

Algorithma Knut Morris Pratt ( KMP ) Dan Boyer

Moore ( BM ) Untuk Pencarian Pola Kata Dalam

File Teks

Dosen pembimbing I : Hj. Asti Dwi Irfianti, S.Kom, M.Kom Dosen Pembimbing II : Dr. Ir. Ni Ketut Sari, MT

Penulis : Arfin Saka Adienata Putra

ABSTRAK

Penggunaan komputer yang makin pesat pada saat ini menyebabkan terjadinya penumpukan data dalam jumlah besar. Hal ini menimbulkan masalah dalam pencarian file data tertentu, data yang disimpan seringkali lupa penempatannya sehingga mempersulit proses pencarian.

String pattern matching merupakan salah satu teknik pencarian data dengan cara mencocokkan pola yang diinputkan oleh user dengan isi file ( yang juga berupa string ). Teknik ini sangat membantu proses pencarian file berdasarkan isi yang terkandung dalam file tersebut berdasarkan kata kuncinya. Algoritma yang digunakan dalam proses pencocokan string antara lain Algoritma Brute Force, Algoritma Knuth-Morris-Pratt (KMP), Algoritma Boyer-Moore (BM), Algoritma Karp-Rabin, dan Algoritma Shift Or.

Pada Tugas Akhir kali ini penulis akan membandingkan antara algorithma Knuth-Morris-Pratt (KMP) dengan algoritma Boyer-Moore (BM) guna mengetahui manakah yang terbaik diantara kedua algorithma tersebut.

Kata kunci : String Pattern Matching, algorithma Knut Morris Prat , algoritma Boyer-Moore (BM), algoritma Karp-Rabin, dan algoritma Shift Or.

Hak Cipta © milik UPN "Veteran" Jatim :


(14)

1

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Seiring dengan berkembangnya ilmu pengetahuan dan teknologi

tentang perangkat keras akhir-akhir ini, maka berkembang pula ilmu tentang

rekayasa perangkat lunak. Berbagai macam bentuk metode dan algorithma

pemrograman mulai ditemukan untuk meningkatkan kinerja komputasi dan

sekaligus memecahkan masalah-masalah yang sudah ada maupun masalah

yang baru.

Dampak positip dari perkembangan tersebut adalah semakin

bervariasinya perangkat lunak yang dapat mempermudah pekerjaan dalam

kehidupan sehari-hari. Mulai dari sistem operasi hingga hiburan dan

interkoneksi global sudah bukan hal yang sulit.

Salah satu perangkat lunak yang berkembang dan paling banyak

digunakan oleh komputer adalah program untuk penyuntingan dokumen.

Kendala yang paling umum dan sering dijumpai dalam proses penyuntingan

dokumen tersebut yaitu menemukan kata tertentu untuk mengetahui dimana

letak kata tersebut. Contoh yang dapat kita amati lainnya adalah pencarian

string pada data DNA (data genomic), yang berfungsi untuk mengetahui

kemiripan suatu makhluk hidup dengan makhluk hidup lain ataupun juga

mengetahui manfaat dari suatu protein tertentu dengan melakukan

perbandingan pada protein yang terdapat di bank data protein. Oleh karena


(15)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. dapat diatasi dengan metode String pattern matching atau pencocokan pola

string. [4].

String pattern matching merupakan salah satu teknik pencarian kata dengan cara mencocokan pola yang diinputkan oleh user dengan isi file

(yang juga berupa string). Teknik ini sangat membantu proses pencarian

kata berdasarkan input user yang terkandung dalam file tersebut, sehingga

proses editing dokumen menjadi lebih mudah.

Algoritma string pattern matching terdapat beberapa macam, baik

yang termasuk dalam kategori metode heuristic maupun brute force.

Masing-masing algorithma mempunyai kelebihan dan kekurangan.

Berdasarkan uraian tersebut, maka dalam Tugas Akhir kali ini penulis akan

membuat aplikasi yang membandingkan kinerja dari algorithma KMP (Knut

Morris Prat) dengan BM (Booyer Moore), untuk mengetahui manakah yang lebih baik diantara keduanya.

1.2. Perumusan Masalah

Rumusan masalah yang digunakan dalam tugas akhir ini adalah :

1. Bagaimana membuat aplikasi perbandingan kinerja pencarian pola kata

menggunakan algorithma Knut Morris Pratt ( KMP ) dan Booyer Moore

( BM ) ?

2. Bagaimana melakukan analisa perbandingan kinerja pencarian pola kata

tersebut menggunakan algorithma Knut Morris Pratt ( KMP ) dan

Booyer Moore ( BM ) ?

Hak Cipta © milik UPN "Veteran" Jatim :


(16)

3

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

1.3. Batasan Masalah

Agar pembahasan dan penyusunan Tugas Akhir ini dapat dilakukan

secara terarah dan tidak menyimpang serta sesuai dengan apa yang

diharapkan, maka perlu ditetapkan batasan-batasan dari masalah yang

dihadapi, yaitu :

1. Format file yang dipergunakan sebagai uji coba adalah file teks

(ekstensi .txt).

2. Aplikasi dibangun dengan menggunakan algoritma Knut Morris Pratt

( KMP ) dan Booyer Moore ( BM )

3. Aplikasi dibangun dengan menggunakan Developer Embarcadero

studio 2010.

4. Aplikasi dapat berjalan pada sistem operasi Microsoft Windows Xp ,

Windows Vista atau Windows Seven.

1.4. Tujuan

Tujuan yang ingin dicapai pada pengerjaan tugas akhir ini adalah

melakukan pengujian dan perbandingan algorithma Knut Morris Pratt

( KMP ) dan Booyer Moore ( BM ) untuk mengetahui algoritma mana yang

lebih baik dalam pencarian pola kata.


(17)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Manfaat yang diperoleh dari pengerjaan tugas akhir ini adalah

mempermudah user ( pengguna komputer ) mencari kata dengan hasil

akurasi yang lebih baik dan efisien dalam menggunakan aplikasi ini.

1.6. Metodologi Penelitian

Adapun metode penelitian yang dipergunakan dalam pengerjaan tugas

akhir ini adalah :

a. Studi Literatur

Mencari referensi dan bahan pustaka tentang teori-teori yang

berhubungan dengan permasalahan yang akan dikerjakan dalam tugas

akhir ini.

b. Studi Kasus

Mencari contoh-contoh kasus serupa yang berhubungan dengan

permasalahan dalam tugas akhir ini.

c. Analisis dan Perancangan

Membuat analisa berdasarkan data-data yang sudah dimiliki, membuat

model dan merancang alur penyelesaian berdasarkan algoritma Knut

Morris Pratt ( KMP ) dan Booyer Moore ( BM ). Perancangan aplikasi dimulai dengan perancangan antar muka aplikasi, kemudian merancang

detail algoritma Knut Morris Pratt ( KMP ) dan Booyer Moore ( BM ).

d. Implementasi Program

Mengimplementasikan teknik algoritma yang akan digunakan. Detail

mengenai implementasi program dilakukan sesuai hasil analisis dan

perancangan aplikasi pada tahapan sebelumnya.

Hak Cipta © milik UPN "Veteran" Jatim :


(18)

5

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. e. Pengujian Aplikasi

Pengujian dilakukan pada aplikasi yang telah dibuat. Menguji validitas

dan efektifitas algoritma yang diterapkan pada aplikasi.

f. Evaluasi dan Penarikan kesimpulan

Evaluasi dilakukan untuk mengetahui kinerja algorithma pencari pola

string sesuai algorithma yang dipergunakan, selanjutnya dilakukan

penarikan kesimpulan.

1.7. Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan

gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan

tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, identifikasi masalah,

maksud dan tujuan yang ingin dicapai, batasan masalah,

metodologi penelitian yang diterapkan dalam memperoleh dan

mengumpulkan data, waktu dan tempat penelitian, serta

sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Membahas berbagai konsep dasar dan teori-teori yang

berkaitan dengan topik masalah yang diambil dan hal-hal


(19)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB III ANALISIS DAN PERANCANGAN

Menganalisis masalah dari model penelitian untuk

memperlihatkan keterkaitan antar variabel yang diteliti serta

model matematis untuk analisisnya.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Membahas mengenai pengimplementasian aplikasi yang telah

dibuat ke perangkat yang akan digunakan serta melakukan

pengujian terhadap aplikasi yang telah diimplementasikan

tersebut.

BAB V PENUTUP

Berisi kesimpulan dan saran yang sudah diperoleh dari hasil

penulisan tugas akhir.

Hak Cipta © milik UPN "Veteran" Jatim :


(20)

BAB II

TINJAUAN PUSTAKA

2.1. Algorithma dan Pemrograman

Dalam matematika dan komputasi, algoritma atau algoritme

merupakan kumpulan perintah untuk menyelesaikan suatu masalah.

Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga

akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap

masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum

menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua

kondisi awal yang memenuhi kriteria, dalam hal ini berbeda

dengan heuristik. Algoritma sering mempunyai langkah pengulangan

(iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan)

sampai tugasnya selesai. Sedangkan pemrograman itu sendiri adalah proses

menulis, menguji dan memperbaiki (debug), dan memelihara kode yang

membangun sebuah program komputer. Kode ini ditulis dalam

berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk

memuat suatu program yang dapat melakukan suatu perhitungan atau

“pekerjaan” sesuai dengan keinginan si pemrogram. Untuk dapat melakukan

pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa

pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain


(21)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

2.2. Algorithma Knuth Morris Pratt

Algoritma Knuth – Morris - Pratt adalah salah satu algoritma

pencarian string, dikembangkan secara terpisah oleh Donald E. Knuth pada

tahun 1967 dan James H. Morris bersama Vaughan R. Pratt pada tahun

1966, namun keduanya mempublikasikannya secara bersamaan pada tahun

1977.

Jika kita melihat algoritma brute force lebih mendalam, kita

mengetahui bahwa dengan mengingat beberapa perbandingan yang

dilakukan sebelumnya kita dapat meningkatkan besar pergeseran yang

dilakukan. Hal ini akan menghemat perbandingan, yang selanjutnya akan

meningkatkan kecepatan pencarian.

Perhitungan penggeseran pada algoritma ini adalah sebagai berikut, bila

terjadi ketidakcocokkan pada saat pattern sejajar dengan teks[i..i + n − 1],

kita bisa menganggap ketidakcocokan pertama terjadi di

antara teks[i + j] dan pattern[j], dengan 0 < j < n. Berarti, teks[i..i + j − 1]

= pattern[0..j − 1] dan a = teks[i + j] tidak sama dengan b = pattern[j].

Ketika kita menggeser, sangat beralasan bila ada sebuah awalan v dari

pattern akan sama dengan sebagian akhiran u dari sebagian teks. Sehingga

kita bisa menggeser pattern agar awalan v tersebut sejajar dengan akhiran

dari u.

Dengan kata lain, pencocokkan string akan berjalan secara efisien bila

kita mempunyai tabel yang menentukan berapa panjang kita seharusnya


(22)

9

pattern. Tabel 1` harus memuat next[j] yang merupakan posisi

karakter pattern[j] setelah digeser, sehingga kita bisa menggeser pattern

sebesar j − next[j] relatif terhadap teks. [5].

Secara sistematis, langkah-langkah yang dilakukan algoritma

Knuth-Morris-Pratt pada saat mencocokkan string :

1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal

teks.

2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per

karakter pattern dengan karakter di teks yang bersesuaian, sampai salah

satu kondisi berikut dipenuhi :

a. Karakter di pattern dan di teks yang dibandingkan tidak cocok

(mismatch).

b. Semua karakter di pattern cocok. Kemudian algoritma akan

memberitahukan penemuan di posisi ini.

3. Algoritma kemudian menggeser pattern berdasarkan tabel next, lalu

mengulangi langkah no. 2 sampai pattern berada di ujung teks. [5].

Pseudocode

Berikut adalah pseudocode algoritma Knuth-Morris-Pratt pada fase

pra-pencarian :

procedure preKMP(

input P : array[0..n-1] of char, input n : integer,


(23)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. )

Deklarasi: i,j: integer Algoritma i := 0;

j := kmpNext[0] := -1; while (i < n) {

while (j > -1 and not(P[i] = P[j])) j := kmpNext[j];

i:= i+1; j:= j+1;

if (P[i] = P[j])

kmpNext[i] := kmpNext[j]; else

kmpNext[i] := j; endif

endwhile

Dan berikut adalah pseudocode algoritma Knuth-Morris-Pratt pada fase

pencarian :

procedure KMPSearch( input m, n : integer,

input P : array[0..n-1] of char, input T : array[0..m-1] of char,

output ketemu : array[0..m-1] of boolean )

Deklarasi:

i, j,next: integer

kmpNext : array[0..n] of interger Algoritma:

preKMP(n, P, kmpNext) i:=0


(24)

11

j:=0

while (j < n and T[i+j] = P[j]) do j:=j+1

endwhile if(j >= n) then ketemu[i]:=true; endif

next:= j - kmpNext[j] i:= i+next

endwhile

2.3. Algorithma Booyer - Moore

Algoritma Booyer - Moore adalah salah satu algoritma pencarian

string, dipublikasikan oleh Robert S. Boyer, dan J. Strother Moore pada

tahun 1977.

Algoritma ini dianggap sebagai algoritma yang paling efisien pada

aplikasi umum. Tidak seperti algoritma pencarian string yang ditemukan

sebelumnya, algoritma Booyer-Moore mulai mencocokkan karakter dari

sebelah kanan pattern. Ide dibalik algoritma ini adalah bahwa dengan

memulai pencocokkan karakter dari kanan, dan bukan dari kiri, maka akan

lebih banyak informasi yang didapat.

Misalnya ada sebuah usaha pencocokan yang terjadi pada teks[i..i + n −

1], dan anggap ketidakcocokan pertama terjadi di

antara teks[i + j] dan pattern[j], dengan 0 < j < n. Berarti, teks[i + j +

1..i + n − 1] = pattern[j + 1..n − 1] dan a = teks[i + j] tidak sama


(25)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. sebelum b dan v adalah sebuah awalan dari pattern, maka

penggeseran-penggeseran yang mungkin adalah :

1. Penggeseran good-suffix yang terdiri dari mensejajarkan

potongan teks[i + j + 1..i + n − 1] = pattern[j + 1..n − 1] dengan

kemunculannya paling kanan di pattern yang didahului oleh karakter

yang berbeda dengan pattern[j]. Jika tidak ada potongan seperti itu,

maka algoritma akan mensejajarkan akhiran v dari teks[i + j + 1..i + n −

1] dengan awalan dari pattern yang sama.

2. Penggeseran bad-character yang terdiri dari

mensejajarkan teks[i + j] dengan kemunculan paling kanan karakter

tersebut di pattern. Bila karakter tersebut tidak ada di pattern, maka

pattern akan disejajarkan dengan teks[i + n + 1].

Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore

pada saat mencocokkan string adalah :

1. Algoritma Boyer-Moore mulai mencocokkan pattern pada awal teks.

2. Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per

karakter pattern dengan karakter di teks yang bersesuaian, sampai salah

satu kondisi berikut dipenuhi :

a. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).

b. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.


(26)

13

3. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai

penggeseran good-suffix dan penggeseran bad-character, lalu

mengulangi langkah 2 sampai pattern berada di ujung teks. [3].

Berikut adalah pseudocode algoritma Boyer-Moore pada fase pra-pencarian :

procedure preBmBc(

input P : array[0..n-1] of char, input n : integer,

input/output bmBc : array[0..n-1] of integer )

Deklarasi: i: integer Algoritma:

for (i := 0 to ASIZE-1) bmBc[i] := m; endfor

for (i := 0 to m - 2) bmBc[P[i]] := m - i - 1; endfor

procedure preSuffixes(

input P : array[0..n-1] of char, input n : integer,

input/output suff : array[0..n-1] of integer )

Deklarasi:

f, g, i: integer Algoritma:


(27)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. g := n - 1;

for (i := n - 2 downto 0) {

if (i > g and (suff[i + n - 1 - f] < i - g)) suff[i] := suff[i + n - 1 - f];

else

if (i < g) g := i; endif f := i;

while (g >= 0 and P[g] = P[g + n - 1 - f]) --g;

endwhile

suff[i] = f - g; endif

endfor

procedure preBmGs(

input P : array[0..n-1] of char, input n : integer,

input/output bmBc : array[0..n-1] of integer )

Deklarasi: i, j: integer

suff: array [0..RuangAlpabet] of integer preSuffixes(x, n, suff);

for (i := 0 to m-1) bmGs[i] := n endfor


(28)

15

for (i := n - 1 downto 0) if (suff[i] = i + 1) for (j:=j to n - 2 - i) if (bmGs[j] = n)

bmGs[j] := n - 1 - i endif

endfor endif endfor

for (i = 0 to n - 2)

bmGs[n - 1 - suff[i]] := n - 1 - i; endfor

Dan berikut adalah pseudocode algoritma Boyer-Moore pada fase pencarian :

procedure BoyerMooreSearch( input m, n : integer,

input P : array[0..n-1] of char, input T : array[0..m-1] of char,

output ketemu : array[0..m-1] of boolean )

Deklarasi:

i, j, shift, bmBcShift, bmGsShift: integer BmBc : array[0..255] of interger

BmGs : array[0..n-1] of interger Algoritma:

preBmBc(n, P, BmBc) preBmGs(n, P, BmGs) i:=0


(29)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. j:=n-1

while (j >=0 n and T[i+j] = P[j]) do j:=j-1

endwhile if(j < 0) then ketemu[i]:=true; endif

bmBcShift:= BmBc[chartoint(T[i+j])]-n+j+1 bmGsShift:= BmGs[j]

shift:= max(bmBcShift, bmGsShift) i:= i+shift

2.4. Rekayasa Perangkat Lunak

Rekayasa perangkat lunak telah berkembang sejak pertama kali

diciptakan pada tahun 1940-an hingga kini. Fokus utama pengembangannya

adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan

produktivitas para praktisi pengembang perangkat lunak dan kualitas

aplikasi yang dapat digunakan oleh pemakai.

Menurut IEEE, RPL adalah aplikasi yang pendekatannya sistematis,

disiplin, bisa terukur untuk pengembangan operasional dan pembuatan

software.

Pondasi RPL adalah lapisan proses, karena terkait dengan teknologi dan

waktu pengembangan. Proses mendefinisikan framework Key Prosess Are

(KPA) yang harus dibuat untuk penekanan teknologi RPL yang efektif.


(30)

17

Yang termasuk metode : analisa, desain, pembuatan program, pengujian

dan perawatan. Tool padA RPL digunakan untuk memberikan dukungan

otomatisasi atau semi otomatis pada proses dan metode. Sistem yang biasa

digunakan untuk mendukung pengembangan disebut Computer Aided

Software Enginering (CASE). CASE mengkombinasikan software, hardware dan database RPL ( berisi informasi mengenai analisa, desain, pembuatan program dan pengujian ).

Gambar 2.1. Pondasi RPL

Rekayasa adalah analisa, desain, pembuatan, verifikasi dan manajemen

teknis (atau sosial). Tanpa memandang entitas yang harus direkayasa, ada

beberapa pertanyaan yang harus dijawab :

1. Problem apa yang harus dicarikan solusinya ?

2. Apa saja karakteristik entitas yang digunakan untuk menyelesaikan

persoalan tersebut.

3. Bagaimana entitas (dan solusinya) dapat direalisasikan ?

4. Bagaimana entitas akan dibangun ?

5. Pendekatan apa yang akan digunakan untuk mencegah terjadinya

kesalahan desain dan pembuatan entitas?

6. Bagaimana entitas akan didukung selama mungkin, pada saat ada

permintaan koreksi, adaptasi dan pengembangan oleh user.

A Quality Focus Tools Method Process


(31)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Pekerjaan yang berhubungan dengan RPL bisa dikategorikan ke dalam

3 fase umum tanpa memandang area aplikasi, ukuran proyek atau

kompleksitas. Fase tersebut yaitu :

1. Definition Phase

Selama fase ini, software developer berusaha untuk

mengidentifikasi informasi apa saja yang harus diproses, apa saja

fungsi dan kinerja yang digunakan, tingkah laku sistem yang

diharapkan, apa saja interface yang harus dibuat, apa saja kendala

desain yang ada, dan kriteria validasi yang diperlukan untuk

mendefinisikan kesuksesan sistem.

2. Development Phase

Selama fase ini, software developer berusaha untuk

mendefinisikan bagaimana data disusun, bagaimana fungsi bisa

diimplementasikan sesuai dengan arsitektur software, bagaimana

prosedur detil untuk implemetasi, bagaimana karakter interface,

bagaimana hasil desain bisa ditranslasikan ke bahasa pemrograman

dan bagaimana cara pengujiannya.

Ada tiga aktivitas teknis yang selalu terjadi:

a. Desain Software

b. Pembuatan Program

c. Pengujian Software

3. Maintenance Phase

Difokuskan pada perubahan sehubungan dengan adanya


(32)

19

customer. Ada 4 tipe perubahan : 1. Correction

Mengubah software untuk memperbaiki kesalahan-kesalahan

yang ada.

2. Adaption

Modifikasi yang dilakukan terhadap software dikarenakan

adanya perubahan lingkungan eksternal (misal: CPU, sistem

operasi, aturan bisnis, karakter produk eksternal).

3. Enhancement

Pada saat software dipakai, user meminta tambahan-tambahan

fungsi. Sehingga software dikembangkan dari kebutuhan

semula.

4. Prevention

Sering disebut software re-enginering, harus dilakukan untuk

memungkinkan software bisa sesuai dengan keinginan end

user. Pada fase ini dilakukan perubahan - perubahan ke program komputer, sehingga program tersebut bisa dikoreksi,

beradaptasi dan dikembangkan dengan mudah. [1].

2.5. Pengujian Perangkat Lunak

Pengembangan sistem perangkat lunak melibatkan sederetan aktivitas

produksi di mana peluang terjadinya kesalahan manusia sangat besar.

Kesalahan dapat mulai terjadi pada permulaan proses di mana sasaran


(33)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. pengembangan selanjutnya. Karena ketidakmampuan manusia untuk

melakukan dan berkomunikasi dengan sempurna, maka pengembangan

perangkat lunak harus selalu diiringi dengan aktivitas jaminan kualitas.

Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas

Perangkat Lunak, dan mempresentasikan kajian pokok dari spesifikasi,

desain, dan pengkodean. Dengan meningkatnya visibilitas perangkat lunak

sebagai suatu elemen sistem, dan biaya yang muncul akibat kegagalan

perangkat lunak, maka memotivasi dilakukakannya perencanaan yang baik

melalui pengujian yang teliti.

Adalah hal yang wajar jika organisasi pengembangan Perangat Lunak

meningkatkan 30 – 40 % usaha proyek pengembangan Perangkat Lunak

pada tahap pengujian. [1].

2.6. Flow Map

Flow Map adalah diagram yang menunjukan aliran data berupa

formulir -formulir ataupun keterangan berupa dokumentasi yang

mengalir atau beredar dalam suatu sistem. Notasi yang digunakan dalam

suatu flow map merupakan penggabungan notasi flow chart program.

Hal-hal yang harus diperhatikan dalam menggambarkan flow map

adalah sebagai berikut :

1. Penggambaran flow map dimulai dari atas halaman ke bagian

bawah, kemudian dari kiri kebagian kanan

2. Penggambaran flow map dilakukan berdasarkan pembagian atau


(34)

21

3. Dalam flow map harus jelas dimana awal suatu status informasi,

kemudian dimana akhir silkus

4. Semua bagian siklus informasi harus jelas Menggunakan kertas

kerja yang jelas sesuai dengan yang akan dilakukan dalam sistem

5. Semua sub sistem yang digambarkan, harus mengalami siklus

informasi

6. Jika penggambaran suatu siklus informasi terpotong, maka gunakan

penghubung antar bagian.

2.7. Embarcadero Delphi 2010

Delphi merupakan alat bantu pengembangan aplikasi yang berbasis visual. Perangkat ini merupakan hasil pengembangan dari bahasa

pemrograman pascal yang diciptakan oleh Niklaus Wirth. Pada masa itu,

Wirth bermaksud membuat bahasa pemrograman tingkat tinggi sebagai alat

bantu mengajar logika pemrograman komputer kepada para mahasiswanya.

Bahasa pemrograman pascal ini kemudian dikembangkan oleh Borland

yang merupakan salah satu perusahaan software menjadi sebuah tools

dengan dibuatkan kompiler dan dijual ke pasar dengan nama TURBO

PASCAL. [2].

Seiring dengan ditemukannya metode pemrograman berorientasi obyek,

bahasa pemrograman pascal berevolusi menjadi object pascal dan

dikembangkan oleh Borland dengan nama Borland Delphi.

Keberhasilan Borland dalam mengembangkan Delphi menjadikan salah


(35)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Visual Basic yang dikeluar Microsoft di kemudian hari. Lingkungan

pengembangan Delphi yang mudah, intuitif dan memudahkan pemakai,

berhasil melampaui popularitas rivalnya, yaitu Visual Basic, sehingga

pernah menyandang predikat “VB-Killer”.

Karena tuntutan perkembangan teknologi, Borland berganti nama

menjadi Code Gear, tetapi tetap mempergunakan nama Delphi untuk tools

yang berbasis object pascal ini. Tidak lama kemudian Code Gear diakuisisi

oleh Embarcadero dan namanya pun berubah menjadi Embarcadero RAD

Studio dengan tetap mempertahankan Delphi sebagai salah satu tools-nya.

Beberapa kelebihan yang dimiliki oleh Embarcadero Delphi 2010 ini

antara lain : [2].

1. Delphi dibangun dengan menggunakan arsitektur native compiler,

sehingga proses kompilasi instruksi menjadi bahasa mesin menjadi

lebih cepat.

2. Semua file yang disertakan saat proses kompilasi, digabungkan

menjadi satu sesuai dengan arsitektur native compiler, sehingga

mengurangi ketergantungan terhadap library ataupun file - file

pendukung lainya, sesuai dengan prinsip build once, runs

everywhere.

3. Delphi mempunyai kemampuan selective object linking, sehingga

apabila terdapat pemanggilan sebuah library dan ternyata tidak

terdapat instruksi dalam library tersebut yang dipergunakan dalam

system, maka secara otomatis, kompiler tidak akan menyertakan library tersebut dalam proses kompilasinya. Hal ini berbeda dengan


(36)

23

tools lain yang tidak mempunyai kemampuan seperi itu. Dengan

adanya kemampuan tersebut, maka file eksekusi yang dihasilkan

delphi menjadi lebih optimal.

4. Lingkungan pengembangan Delphi sangat intuitif karena semua

komponen yang menjadi alat utama desain visual telah ditampilkan

saat pertama kali langsung dapat diamati oleh user dan dapat

digunakan secara langsung.

Berikut ini adalah tampilan Delphi :

Gambar 2.2. Tampilan awal Delphi

Dalam delphi seperti halnya bahasa visual lainnya menyediakan

komponen. Komponen adalah “jantung” bagi pemograman visual.

Componen Palette telah terbagi menjadi berbagai jenis komponen, diantaranya adalah Standard, Additional, Win32, System, dan beberapa

lainnya. Berikut ini adalah uraian yang komponen palet yang paling sering


(37)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Gambar 2.3. Daftar komponen palet standard Delphi

Tampak pada palet standard diatas (dengan urutan dari kiri ke kanan),

adalah frame, main menu, pop up menu, label, edit text, memo, button,

check box, radio button, list box, combo box, scroll bar, group box, radio

group, panel dan action list.

Gambar 2.4. Daftar komponen palet additional

Pada palet additional terdapat komponen bit button, speed button, mask

edit, string grid, draw grid, image, shape, bevel, scroll box, list box, splitter,

static text, tlink label, control bar, application events, value list edit, labeled

edit, buttoned edit, color box, color list box, category button, button group,

dock tab set, tab set, tray icon, flow panel, grid panel, balloon hint, category

group dan action manager.

Gambar 2.5. Daftar komponen palet win 32

Pada palet win 32 terdapat komponen tab control, page control, image

list, rich edit, track bar, progress bar, up down, hot key, animate, date time

picker, month calendar, tree view, list view, header control, status bar, tool


(38)

25

Gambar 2.6. Daftar komponen palet system

Komponen yang terdapat dalam palet system adalah timer, paint box,

media player, ole container, comadmin dialog, DDE Client Conv, DDE

Client Item, DDE Server Conv dan DDE Server Item.

Gambar 2.7. Komponen Palet Dialog

Komponen yang terdapat dalam palet dialog adalah open dialog, save

dialog, open picture dialog, save picture dialog, open text file dialog, save

text file dialog, font dialog, color dialog, print dialog, printer setup dialog,

find dialog, replace dialog, page setup dialog.

Gambar 2.8. Membuat aplikasi sederhana dengan Delphi

Sebuah proyek Delphi akan terdiri dari berberapa file. Ada file yang


(39)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Karena setiap aplikasi terdiri dari beberapa file. Sangat disarankan agar

menyimpan, sebuah aplikasi pada sebuah folder. Berbagai jenis file yang

dibuat saat membangun aplikasi menggunakan Delphi adalah sebagai

berikut : [2].

Tabel 2.1. Jenis-jenis file dalam Delphi

Jenis File Keterangan

.dproj File proyek, fungsinya untuk linking object

.dfm File form, fungsinya menyimpan nilai properti form

.pas File unit, berisi source code prosedur dan fungsi

.dpk File package, berisi instalasi komponen

.res File resource

.cfg File konfigurasi proyek

.dof File pilihan proyek

.dcu Hasil kompilasi file .pas

.exe File executable (yang dapat dijalankan)

.~* File cadangan (back up)

2.8. Penanganan Database pada Delphi

Implementasi database pada prinsipnya dibagi menjadi dua, yaitu :

a. Model pertama mengemas seluruh data yang terkait dalam sebuah

database ke dalamsebuah berkas. Model seperti ini dijumpaipada Access, Interbase, dan kebanyakan Server SQL lainnya.


(40)

27

b. Model kedua menggunakan sejumlah berkas untuk menyimpan data,

indeks, dan hal-hal lainyang terkait dengan database. Biasanya

keseluruhan berkas ini disimpan pada direktori yang sama. Foxpro,

dBase, dan Paradox termasuk dalam kategori ini.

Pada form, sumber data diakses melalui komponen yang merupakan

turunan dari kelas TdataSet. Melalui form, pada prinsipnya kita dapat

memanipulasi databse (membaca, menyimpan, menampilkan, dan

sebagainya). Bagaimana halnya dengan Delphi, Delphi juga menyediakan

berbagai cara untuk mengakses database. Salah satu diantaranya adalah

melalui BDE (Borland Database Engine). Melalui BDE anda dapat

mengakses sejumlah sumber data seperti dBASE, Paradox, Foxpro, dan

Accsess. [2].

2.9. IMK ( Interaksi Manusia dan Komputer )

Interaksi manusia dan komputer adalah disiplin ilmu yang mempelajari

hubungan antara manusia dan komputer yang meliputi perancangan,

evaluasi, dan implementasi antarmuka pengguna komputer agar mudah

digunakan oleh manusia. Ilmu ini berusaha menemukan cara yang paling

efisien untuk merancang pesan elektronik. Sedangkan interaksi manusia dan

komputer sendiri adalah serangkaian proses, dialog dan kegiatan yang

dilakukan oleh manusia untuk berinteraksi dengan komputer yang keduanya

saling memberikan masukan dan umpan balik melalui sebuah antarmuka


(41)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. terjadi pada saat input maupun output atau biasanya disebut interface

(antarmuka). IMK memberikan arahan bagi perancang interface untuk

dapat memahami apa yang baik bagi user. [8].

2.9.1. Tujuan interaksi manusia dengan komputer

Tujuan utama disusunnya berbagai cara interaksi manusia dan

komputer adalah untuk mempermudah manusia dalam

mengoperasikan komputer dan mendapatkan berbagai umpan balik

yang perlukan selama bekerja pada sebuah sistem komputer. Kita

harus dapat mengetahui hal-hal apa saja yang dibutuhkan dan

diinginkan user sehingga kita harus tahu kebiasaan apa saja yang

digunakan user dalam menggunakan sebuah system dan juga alat

bantunya. Hal ini sangatlah penting, karena sebagus apa pun

program yang kita buat, dan secanggih apa pun alat yang kita

gunakan, jika itu tidak sesuai dengan kebiasaan user tersebut maka

program dan alat bantu tersebut tidak akan pernah diterima oleh

user tersebut. Oleh karena itu, kita harus dapat membuat program

yang (user friendly). Sebagai contoh, misalnya sebuah komputer

lengkap dipasang pada sebuah tempat yang tidak nyaman bagi

seorang pengguna yang menggunakan. Atau keyboard yang

digunakan pada komputer tersebut tombol-tombolnya keras


(42)

29

2.9.2. Media Antarmuka Manusia dan komputer

a. Media Tekstual

Adalah bentuk sederhana dialog atau komunikasi antara

manusia dan komputer yang hanya berisi teks dan kurang

menarik. Salah satu contoh antarmuka manusia dan komputer

berbentuk teks yang menggunakan bahasa pemrograman

PASCAL adalah readln dan writeln. [8].

b. Media GUI ( graphical User Interface )

Adalah bentuk dialog atau komunikasi antara manusia dan

komputer yang berbentuk grafis dan sangat atraktif. Contoh

antarmuka manusia dan komputer yang berbentuk grafis

menggunakan pemrograman visual (Visual Basic, Visual

Foxpro, Delphi dan lain-lain). [8].

2.9.3. Sub Bidang Studi Interaksi Manusia Dengan Komputer

Ada beberapa sub-bidang studi yang berhubungan dengan

interaksi dengan komputer : [8]

a. Teknik Elektronika dan Ilmu Komputer : merupakan aspek

yang berhubungan dengan hardware dan software yang dapat

memberikan kenyamanan terhadap pengguna. Kriteria

interface software yang bagus yaitu mudah dioperasikan,


(43)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. b. Psikologi : sebagai perancang system kita harus dapat

mengetahui dan memahami sifat dan kebiasaan baik pengguna.

c. Perancangan Grafis dan tipografi : memanfaatkan

gambar/image sebagai media komunikasi.

d. Ergonomik : aspek fisik dan lingkungan yang akan

memberikan kenyamanan bagi pengguna yang biasanya

menggunakan computer dalam waktu lama.

e. Antropologi : dapat memberikan padangan mendalam tentang

tata kerja berkelompok yang masing-masing anggota

memberikan kontribusi sesuai bidangnya.

f. Linguistik : bahasa yang digunakan dalam berkomunikasi

dengan computer misalnya bahasa grafis, bahasa alami, bahasa

menu atau bahasa perintah.

g. Sosiologi : mengenai struktur sosial suatu masyarakat tentang

kekhawatiran manusia akan terjadinya pengambil alihan

pekerjaan oleh mesin / komputer / otomatisasi.

Bagi para perancangnya alat fisik interaksi antarmuka

komputer sering diuji, sehingga memungkinkan pertukaran

informasi. Beberapa aspek yang menjadi fokus dalam perancangan


(44)

31

a. Metodologi dan proses yang digunakan dalam perancangan

sebuah antarmuka.

b. Metode implementasi antarmuka.

c. Metode evaluasi dan perbandingan antarmuka.

d. Pengembangan antarmuka baru.

e. Mengembangkan sebuah deskripsi dan prediksi atau teori dari

sebuah antarmuka baru.

2.9.4. Aturan Desain Antarmuka

Adapun beberapa aturan dalam mendesain antarmuka sebagai

berikut :

a. Upayakan untuk konsistensi.

b.

Memungkinkan pengguna sering untuk menggunakan jalan pintas

c.

Penawaran informatif umpan balik

d.

Desain dialog untuk menghasilkan penutupan.

e.

Penawaran kesalahan pencegahan dan penanganan kesalahan sederhana.

f.

Izin tindakan pemulihan.

g.

Dukungan internal lokus kontrol


(45)

32

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB III

ANALISA PERMASALAHAN

3.1. Alur Kegiatan Penelitian

Gambar 3.1. Alur Kegiatan Penelitian

Studi Literatur 1. Mempelajari teori pola pencocokan string 2. Mempelajari berbagai algorithma pencocokan

pola string

3. Mempelajari berbagai paper analisa kinerja algorithma Knuth Morris Pratt dan Boyer Moore

Data Peneltian

Pencarian Data Penunjang Peneltian

Algorithma String Pattern Matching

Komputerisasi

Aplikasi uji kinerja dan Perbandingan KMP dan BM

Metode Pengembangan Perangkat Lunak

Tahap Analisa 1. Diagram Alir 2. Algorithma KMP 3. Algorithma BM 4. Spesifikasi Alat

Tahap Perancangan 1. Perancangan Data 2. Perancangan Arsitektur 3. Perancangan Antar Muka 4. Perancangan Prosedur

Coding


(46)

33

3.2 Bahan Penelitian

Dalam melakukan perbandingan kinerja algorithma Knot Morris

Pratt dan Booyer Moore dalam tugas akhir ini, dibutuhkan bahan penelitian yang berupa artikel dalam bentuk file text (.txt). File ini adalah uraian artikel

yang diambil dari berbagai sumber. Setiap baris di dalam file tersebut dapat

mengandung kata-kata yang dapat dicari.

Kata-kata yang terdapat pada file tersebut dipisahkan dengan tanda

spasi, sehingga digunakan sebagai mekanisme dalam mengenali pola string

yang akan dicari. Hasil pencarian akan ditampilkan berupa lokasi string dan

waktu yang dibutuhkan dalam pencarian. Terdapat pula informasi berupa

grafik yang menampilkan perbandingan waktu hasil pencarian dari dua

metode tersebut.

3.2.1 Algorithma Knuth Morris Pratt

Penjelasan algorithma diatas adalah sebagai berikut : user

melakukan input string yang dicari, kemudian sistem akan membaca

file yang akan dicari. Selanjutnya sistem akan memanggil dua sub

Deklarasi Variabel

str_cari : literal karakter str_sumber : literal karakter hasil : numerik

begin

str_cari = user_input str_sumber = baca_file

Hasil = Posisi(kmp_search(str_cari,str_sumber, kmp_table(str_cari))+1)


(47)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. rutin yaitu kmp_search dan kmp_table dan mengembalikan nilai posisi

string yang ditemukan.

A. Sub Rutin Algorithma KMP_Search

Deklarasi Variabel

m, i: Numerik

W, S: Literal Karakter T : array bertipe numerik Result : numerik

begin i = 1 m = 1

while ((( m + i) <= Length(S)) and (i<= Length(W))) do begin

jika (S[m + i] = W[i]) maka i = i + 1 Selain itu

M = m + (i - T[i]) jika (i > 1) maka i = T[i]

end

jika m = Length( S ) maka Result = 0

Selain itu Result := m end


(48)

35

Penjelasan algorithma diatas adalah sebagai berikut :

Sistem akan mulai melakukan pencarian dengan selalu

memeriksa indeksnya (yang diwakili w dan s dalam menampung

string sumber dan string yang dicari), apabila karakter pada S[m + i] = W[i] maka nilai i akan bertambah satu, jika tidak sama nilai m akan

ditambah berdasarkan formula M = m + (i - T[i]). Proses ini akan terus

berlangsung sampai nilai (m+i) lebih dari panjang (S) dan nilai (i)

lebih dari panjang (W). Apabila nilai m sama dengan s, berarti string

tidak ditemukan dan sub rutin akan mengembalikan nilai 0, jika tidak

sistem akan mengembalikan posisi string, yaitu nilai m itu sendiri.

B. Sub Rutin Algorithma KMP_Table

var i, j : numerik T : Array dinamis begin

i = 3 j = 1

SetLength(T,Length(W)+1) t[1] = 0

t[2] = 1

while (i <= Length(W)) do jika (W[i - 1] = W[j]) maka T[i] = j + 1

Inc(j) Inc(i)

Selain itu jika ( j > 1 ) maka j = T[j]

selain itu T[i] = 1 Inc(i) j = 1 Result = T end


(49)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Algorithma diatas dipergunakan untuk membentuk tabel yang

menyimpan string berikutnya. Hal ini sesuai dengan prinsip utama

dalam algorithma Knot Morris Prat ( KMP ) yang menyatakan bahwa

pencocokkan string akan berjalan secara efisien bila kita mempunyai

tabel yang menentukan berapa panjang kita seharusnya menggeser

seandainya terdeteksi ketidakcocokkan di karakter ke-j dari pattern.

Tabel T harus memuat next[j] yang merupakan posisi karakter

pattern[j] setelah digeser, sehingga kita bisa menggeser pattern

sebesar j − next[j] relatif terhadap teks.

3.2.2 Algorithma Boyer Moore

var

i, j, k, m, n, MAXCHAR : numerik skip: array [100000] bertipe numerik found : boolean

begin

found = FALSE BM_search = 0 m = length(pat)

MAXCHAR = length(text) jika m=0 maka

BM_search = 1 found = TRUE

for k = 0 to MAXCHAR skip[k] = m for k = 1 to m-1

skip[ord(pat[k])] = m-k end


(50)

37

Penjelasan algorithma diatas adalah sebagai berikut : pertama sistem

akan memberikan nilai false pada variabel found ( berarti awalnya string

pattern dianggap tidak ditemukan ), kemudian sistem akan mulai mencari

dari kanan string untuk memulai pencocokan string (perhatikan pernyataan

m = length(pat)). Jika m bernilai 0 pencarian akan dihentikan, selain itu

sistem mulai melakukan iterasi pencarian berdasarkan dua kondisi. Hal ini

terdapat pada pernyataan (while not found and (k <= n)), sehingga

akan dilanjutkan pada proses (if text[i] <> pat[j]) hingga kondisi

(j = 0) yang berarti sudah mencapai akhir patter (posisi paling kiri string).

k = m

n = length(text) while not found and (k <= n) do begin

i = k j = m

while (j >= 1) do begin

if text[i] <> pat[j] then j = -1

else

j = j-1 i = i-1

jika j = 0 maka BM_search = i+1 found = TRUE;

k = k + skip[ord(text[k])] end


(51)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

3.3 Analisis Perbandingan

Analisis perbandingan merupakan evaluasi perbandingan dari

kedua algoritma agar dapat diketahui perbedaan antara algoritma satu

dengan yang lain. Proses-proses perbandingan dan hasilnya dapat

dijelaskan lebih terperinci lagi pada sub pokok dibawah ini. [4].

3.3.1 Perbandingan Booyer-Moore

Pada perbandingan ini program dilakukan uji coba terhadap

600 query dari file sumber. Dari uji coba program akan

memberikan hasil berupa waktu yang dibutuhkan dalam melakukan

pencarian serta pada posisi ke berapa substring ditemukan dan hasil

yang di berikan hanya merupakan informasi keberadaan substring

pertama saja.

Gambar 3.2 Grafik Booyer Moore

Pada grafik diatas terlihat bahwa waktu maksimal yang

dibutuhkan oleh algoritma Booyer-Moore dalam melakukan

pencarian substring yang cocok dengan query adalah 0.02 detik


(52)

39

3.3.2 Perbandingan Knut Morris Pratt

Waktu pencarian yang diperlukan oleh algoritma Knut Morris

Pratt dalam menemukan substring pertama yang cocok dengan query memiliki waktu pencarian 0.0035 detik.

Gambar 3.3 Grafik Knut Morris Pratt

3.3.3 Hasil Perbandingan

Hasil perbandingan yang dilakukan terhadap 600 query dari

file sumber, algoritma Booyer Moore tetap memberikan hasil yang

lebih baik daripada algoritma Knut Morris Pratt.

Table 3.1 Perolehan Waktu Hasil Pengujian

Apabila ditinjau dari teori yang telah dijelaskan sebelumnya,

maka running time dari algoritma Booyer Moore (N/M + O


(53)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. adalah panjang dari query, merupakan running time yang paling

cepat dibanding algoritma lainnya, sedangkan algoritma Knut

Morris Pratt memiliki running time O(M+N).

3.4 Diagram Alur Sistem

Diagram alur sistem merupakan sebuah diagram dengan

simbol-simbol grafis yang menyatakan tipe operasi program yang berbeda dan juga

sebagai representasi dari sebuah program. Berikut ini merupakan diagram

alur dari sistem aplikasi pencarian pola string :

Gambar 3.4. Diagram Alur Pencarian Pola String

START

Hard Drive Baca File Teks

Input String Pattern

Pilih KMP? Pilih BM?

Sub Rutin KMP Sub Rutin BM

Hasil Pencarian

End

Ya Ya


(54)

41

3.5 Spesifikasi Perangkat Yang Dipergunakan

Dalam melakukan penelitian tugas akhir ini, penulis menggunakan

perangkat keras dan perangkat lunak. Adapun perangkat keras yang

dipergunakan untuk aplikasi ini, yaitu :

1. Processor : Intel Dual Core, 2.4 Ghz

2. Memory : 1024 Mhz, DDR II

3. Display : LCD Monitor resolusi 1366 x 768, true color 32 bit, 60 Hz

4. Hard Drive : SATA II, dengan minimum ruang kosong 20 GB

5. Keyboard + Mouse : Standard Microsoft Compliance

Sedangkan perangkat lunak yang dipergunakan, yaitu :

1. Sistem Operasi : Microsoft Windows Seven Home Premium 64 bit

2. Developer : Embarcadero RAD Studio 2010

3. Dokumentasi : Microsoft Office Profesional Edition 2010

3.6 Perancangan Antar Muka

Perancangan antar muka diperlukan sebagai cara untuk

menentukan bentuk interaksi antara sistem dengan user. Dengan adanya

desain antar muka yang baik, berarti akan memudahkan user dalam

mempergunakan sistem tersebut sehingga meminimalkan waktu

pembelajaran. Desain antar muka dari sistem yang dibuat dalam tugas


(55)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Gambar 3.5. Perancangan Antar Muka


(56)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi Hasil Perancangan

Pada bab ini merupakan tahapan implementasi sistem yang telah

dirancang dengan landasan teori dan metodologi penelitian yang telah

dijelaskan pada bab sebelumnya. Proses ini melibatkan interaksi user

dalam menginputkan data dan mengkustomisasi hasil dari proses

encoding, kompresi, dekompresi dan decodingnya.

Dalam melakukan proses implementasi ini, terdapat beberapa

penyesuaian yang diperlukan. Penyesuaian yang dilakukan meliputi

penggunaan tipe data ataupun pembuatan prosedur atau fungsi, yang

mungkin tidak terdapat dalam proses analisa ataupun perancangan sistem.

Langkah penyesuaian tersebut dilakukan agar proses pembuatan

aplikasi dapat berjalan dengan baik sesuai tujuan dan hasil yang

diharapkan, sehingga tugas akhir ini dapat terselesaikan dengan baik.

Berikut ini adalah langkah-langkah implementasinya.

4.2. Impementasi Prosedur Knuth Morris Pratt i := 1;

m := 1;

while ( ( ( m + i ) <= Length( S ) ) and ( i <= Length( W ) ) ) do begin

if ( S[m + i] = W[i] ) then begin Inc( i );


(57)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Pada potongan prosedur Knuth Morris Pratt diatas telah diasumsikan

bahwa nilai index akan bernilai 1 apabila pola string yang dicari tidak

ditemukan dan proses pencarian akan berhenti jika panjang string yang

dicari sama dengan ( = ) panjang pattern. Setiap karakter pada pola string

yang dicari akan terus dibandingkan sampai menemukan kecocokan pada

file teks tersebut.

4.3. Impementasi Prosedur Booyer Moore

else begin

m := m + ( i - T[i] ); if ( i > 1 ) then i := T[i]; end;

ix:=ix+1; end;

if m = Length( S ) then Result := 0

else

Result := m; end;

found := FALSE; BM_search := 0; m := length(pat);

MAXCHAR:= length(text); if m=0 then

begin

BM_search := 1; found := TRUE; end;


(58)

45

Pada algorithma Booyer – Moore nilai index ditentukan dengan 0

atau telah diset dengan False, hal ini digunakan apabila pada proses

pencarian di suatu kata telah mencapai beberapa karakter namun belum

ketemu maka akan dianggap tidak ketemu meski belum karakter tersebut

belum habis.

for k:=0 to MAXCHAR do begin skip[k] := m;

ix:=ix+1; end;

for k:=1 to m-1 do begin skip[ord(pat[k])] := m-k; ix:=ix+1;

end; k := m;

n := length(text);

while not found and (k <= n) do begin

i := k; j := m; ix:=ix+1;

while (j >= 1) do begin

ix:=ix+1;

if text[i] <> pat[j] then j := -1

else begin


(59)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4.4. Pengujian Aplikasi

Pengujian menggunakan metode black box, sehingga diasumsikan

semua prosedur telah berfungsi dengan baik. Skenario pengujian meliputi

pemasukan menggunakan pola string kombinasi huruf besar dan kecil,

angka dan kombinasi keduanya. Pola string yang dicari juga meliputi kata

yang memang terdapat dalam teks ataupun tidak terdapat didalamnya.

Berikut ini adalah pengujian aplikasinya :

Gambar 4.1 Tampilan Awal Aplikasi

Tampilan awal aplikasi pencarian pola kata sebelum file teks

diinputkan maka akan tampak seperti pada Gambar 4.1 dengan grafik yang

sama kosong berada pada sisi sebelah kanan. Perbandingan algorithma


(60)

47

Gambar 4.2 Tampilan Menginputkan File Teks

Pada Gambar 4.2 diatas menunjukkan ketika tombol File Open

maka akan menampilkan direktori file teks yang akan di inputkan kedalam

aplikasi tersebut. File yang dapat diinputkan hanya berupa file teks.

Gambar 4.3 Tampilan File Teks Sudah Diinputkan

Apabila file telah diinputkan maka kolom akan terisi dengan teks.


(61)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4.4.1. Percobaan 1

Gambar 4.4 Percobaan 1 String yang Dicari “ sangkuriang “

Pada Gambar 4.4 menunjukkan bahwa pada Percobaan 1 string yang

akan dicari adalah “sangkuriang“. Dan kemudian tombol search pada

algorithma Booyer – Moore diklik maka akan menunjukkan hasil 0 pada

urutan string dikarenakan “ sangkuriang “ tidak ada didalam teks tersebut

dan waktu menunjukkan 3601 mili detik atau 0,3601 detik.


(62)

49

Pada Gambar 4.5 Percobaan 1 menunjukkan bahwa algorithma Knut

Morris Pratt menghasilkan nilai 1 yang artinya string juga tidak ditemukan

dan waktu yang dihasilkan 3016 mili detik. Waktu yang ditunjukkan pada

kedua algorithma tidak berbeda jauh pada string “ sangkuriang “.

4.4.2. Percobaan 2

Gambar 4.6 Percobaan 2 String “ sumbi “

Pada Gambar 4.6 string yang dicari adalah “ sumbi “, metode Booyer

– Moore tidak berhasil menemukan string tersebut dengan menampilkan nilai 0 dengan waktu 4145 mili detik. Grafik pun menampilkan waktu

yang telah diperoleh algorithma tersebut saat memprosesnya dan grafik


(63)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Gambar 4.7 Percobaan 2 String “ sumbi “

Pada Gambar 4.7 string yang dicari adalah “ sumbi “, metode Knut

Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 1 dengan waktu 3610 mili detik. Grafik pun

menampilkan waktu yang telah diperoleh algorithma tersebut saat

memprosesnya dan grafik menunjukkan datar.

4.4.3. Percobaan 3


(64)

51

Pada Gambar 4.8 string yang dicari adalah “ Dayang “, metode

Booyer – Moore berhasil menemukan string tersebut dengan menampilkan nilai 112 dengan waktu 2990 mili detik. Grafik pun menunjukkan ke arah

bawah karena waktu yang dimilikinya.

Gambar 4.9 Percobaan 3 string “ Dayang “

Pada Gambar 4.9 string yang dicari adalah “ Dayang “, metode Knut

Morris Pratt berhasil menemukan string tersebut dengan menampilkan nilai 112 dengan waktu 120 mili detik lebih cepat dari waktu yang

dihasilkan algorithma Booyer - Moore. Grafik yang dihasilkannya pun


(65)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4.4.4. Percobaan 4

Gambar 4.10 Percobaan 4 String “ tumang “

Pada Gambar 4.10 string yang dicari adalah “ tumang “, metode

Booyer–Moore tidak berhasil menemukan string tersebut dengan menampilkan nilai 0 dengan waktu 4044 mili detik. Grafik pun

menunjukkan ke arah atas atau naik.

Gambar 4.11 Percobaan 4 string “ tumang “

Pada Gambar 4.11 string yang dicari adalah “ tumang “, metode

Knut Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 1 dengan waktu 3073 mili detik. Grafik yang dihasilkan


(66)

53

4.4.5. Percobaan 5

Gambar 4.12 Percobaan 5 String “ Tumang “

Pada Gambar 4.12 string yang dicari adalah “ Tumang “, metode

Booyer – Moore berhasil menemukan string tersebut dengan menampilkan nilai 263 dengan waktu 3041 mili detik. Grafik pun menunjukkan ke arah

bawah atau turun.

Gambar 4.13 Percobaan 5 string “ Tumang “

Pada Gambar 4.13 string yang dicari adalah “ Tumang “, metode

Knut Morris Pratt berhasil menemukan string tersebut dengan menampilkan nilai 263 dengan waktu 271 mili detik. Grafik yang


(67)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4.4.6. Percobaan 6

Gambar 4.14 Percobaan 6 String “ jama “

Pada Gambar 4.14 string yang dicari adalah “ jama “, metode Booyer –

Moore berhasil menemukan string tersebut dengan menampilkan nilai 37 dengan waktu 2962 mili detik. Grafik pun menunjukkan ke arah bawah atau turun.

Gambar 4.15 Percobaan 6 String “ jama “

Pada Gambar 4.15 string yang dicari adalah “ jama “, metode Knut

Morris Pratt berhasil menemukan string tersebut dengan menampilkan nilai 37 dengan waktu 41 mili detik. Grafik yang dihasilkan pun turun.


(68)

55

4.4.7. Percobaan 7

Gambar 4.16 Percobaan 7 String “ jawa Barat “

Pada Gambar 4.16 string yang dicari adalah “ jawa Barat “, metode

Booyer – Moore tidak berhasil menemukan string tersebut dengan menampilkan nilai 0 dengan waktu 3695 mili detik. Grafik pun

menunjukkan ke arah atas atau naik.

Gambar 4.17 Percobaan String “ jawa Barat “

Pada Gambar 4.17 string yang dicari adalah “ jawa Barat “, metode

Knut Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 1 dengan waktu 2971 mili detik. Grafik yang dihasilkan


(69)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4.4.8. Percobaan 8

Gambar 4.18 Percobaan 8 String “ JawaBarat “

Pada Gambar 4.18 string yang dicari adalah “ JawaBarat “, metode

Booyer – Moore tidak berhasil menemukan string tersebut dengan menampilkan nilai 0 dengan waktu 3658 mili detik. Grafik pun

menunjukkan ke normal atau datar karena grafik sebelumnya naik dan

berada di kisaran waktu 3600 mili detik.


(70)

57

Pada Gambar 4.19 string yang dicari adalah “ JawaBarat “, metode

Knut Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 1 dengan waktu 2942 mili detik. Grafik yang dihasilkan

pun cenderung datar karena waktu yang ditunjukkan tidak jauh berbeda

dari waktu sebelumnya.

4.4.9. Percobaan 9

Gambar 4.20 Percobaan 9 String “ Jawa Barat “

Pada Gambar 4.20 string yang dicari adalah “ Jawa Barat “, metode

Booyer – Moore telah berhasil menemukan string tersebut dengan menampilkan nilai string ke 93 dengan waktu 2977 mili detik. Grafik pun


(71)

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Gambar 4.21 Percobaan 9 String “ Jawa Barat “

Pada Gambar 4.21 string yang dicari adalah “ Jawa Barat “, metode

Knut Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 93 dengan waktu 109 mili detik. Grafik yang dihasilkan

pun turun.

4.4.10. Percobaan 10


(72)

59

Pada Gambar 4.22 string yang dicari adalah “ perahu “, metode

Booyer – Moore tidak berhasil menemukan string tersebut dengan menampilkan nilai string ke 0 dengan waktu 4736 mili detik. Grafik pun

menunjukkan ke arah atas atau naik.

Gambar 4.23 Percobaan 10 String “ perahu “

Pada Gambar 4.23 string yang dicari adalah “ perahu “, metode Knut

Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 1dengan waktu 2988 mili detik. Grafik yang dihasilkan

pun naik.

4.5 Tabel Hasil Percobaan

Tabel hasil percobaan merupakan tabel yang mencatat waktu yang

diperoleh dari percobaan satu sampai percobaan sepuluh dan dibawah ini


(73)

60

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Tabel 4.1 Hasil Percobaan

No. Percobaan Kata Yang

Dicari

Waktu Yang Diperlukan Untuk Mencari Kata Dengan Algoritma BM

Waktu Yang Diperlukan Untuk Mencari Kata Dengan Algoritma KMP 1. Percobaan 1 Sangkuriang 3601 mili detik atau 0,3601 detik 3016 mili detik

2. Percobaan 2 Sumbi 4145 mili detik 3610 mili detik

3. Percobaan 3 Dayang 2990 mili detik 120 mili detik

4. Percobaan 4 tumang 4044 mili detik 3073 mili detik

5. Percobaan 5 Tumang 3041 mili detik 271 mili detik

6. Percobaan 6 jama 2962 mili detik 41 mili detik

7. Percobaan 7 jawa Barat 3695 mili detik 2971 mili detik

8. Percobaan 8 JawaBarat 3658 mili detik (kisaran waktu 3600 mili detik) 2942 mili detik

9. Percobaan 9 Jawa Barat 2977 mili detik 109 mili detik

10. Percobaan 10 Perahu 4736 mili detik 2988 mili detik


(74)

(75)

61

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB V PENUTUP

5.1. Kesimpulan

Berdasarkan hasil pengujian pada aplikasi perbandingan algorithma

Knuth Morris Pratt dan algorithma Booyer Moore dalam tugas akhir ini, berikut adalah :

1. Dalam menemukan pola pencarian string, algorithma algorithma Knuth

Morris Pratt memerlukan waktu 187,289% lebih cepat dibandingkan algorithma Booyer Moore.

2. Kedua algorithma memiliki kemampuan yang sama, yaitu dapat

menemukan posisi string yang pertama dalam suatu teks. Jadi bila terdapat

beberapa kata yang sama dalam suatu teks, maka hanya kata yang sesuai


(76)

62

5.2. Saran

Berikut ini adalah saran-saran yang dapat dijadikan pertimbangan

dalam pengembangan tugas akhir selanjutnya :

1. Perlu dibandingkan dengan algorithma lain untuk mengetahui apakah

terdapat algorithma yang lebih baik dibandingkan dengan Knuth Morris

Pratt ( KMP ) dan Booyer Moore ( BM ) seperti yang telah dilaksanakan dalam tugas akhir ini.

2. Akurasi pencarian perlu lebih ditingkatkan dengan cara menghilangkan

sifat case sensitif sehingga dapat mendeteksi pola kata yang sama

walaupun hurufnya berbeda.

3. Untuk pengembangan lebih lanjut sebaiknya pencarian dilakukan untuk

kata dasar dari suatu kata. Hal ini dapat dilakukan dengan menambahkan


(1)

59

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Pada Gambar 4.22 string yang dicari adalah “ perahu “, metode Booyer – Moore tidak berhasil menemukan string tersebut dengan menampilkan nilai string ke 0 dengan waktu 4736 mili detik. Grafik pun menunjukkan ke arah atas atau naik.

Gambar 4.23 Percobaan 10 String “ perahu “

Pada Gambar 4.23 string yang dicari adalah “ perahu “, metode Knut Morris Pratt tidak berhasil menemukan string tersebut dengan menampilkan nilai 1dengan waktu 2988 mili detik. Grafik yang dihasilkan pun naik.

4.5 Tabel Hasil Percobaan

Tabel hasil percobaan merupakan tabel yang mencatat waktu yang diperoleh dari percobaan satu sampai percobaan sepuluh dan dibawah ini adalah tabelnya :


(2)

60

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Tabel 4.1 Hasil Percobaan No. Percobaan Kata Yang

Dicari

Waktu Yang Diperlukan Untuk Mencari Kata Dengan Algoritma BM

Waktu Yang Diperlukan Untuk Mencari Kata Dengan Algoritma KMP 1. Percobaan 1 Sangkuriang 3601 mili detik atau 0,3601 detik 3016 mili detik

2. Percobaan 2 Sumbi 4145 mili detik 3610 mili detik

3. Percobaan 3 Dayang 2990 mili detik 120 mili detik

4. Percobaan 4 tumang 4044 mili detik 3073 mili detik

5. Percobaan 5 Tumang 3041 mili detik 271 mili detik

6. Percobaan 6 jama 2962 mili detik 41 mili detik

7. Percobaan 7 jawa Barat 3695 mili detik 2971 mili detik

8. Percobaan 8 JawaBarat 3658 mili detik (kisaran waktu 3600 mili detik) 2942 mili detik

9. Percobaan 9 Jawa Barat 2977 mili detik 109 mili detik

10. Percobaan 10 Perahu 4736 mili detik 2988 mili detik


(3)

61

Hak Cipta © 2007 UPN "Veteran" Jatim


(4)

61

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB V PENUTUP

5.1. Kesimpulan

Berdasarkan hasil pengujian pada aplikasi perbandingan algorithma Knuth Morris Pratt dan algorithma Booyer Moore dalam tugas akhir ini, berikut adalah :

1. Dalam menemukan pola pencarian string, algorithma algorithma Knuth Morris Pratt memerlukan waktu 187,289% lebih cepat dibandingkan algorithma Booyer Moore.

2. Kedua algorithma memiliki kemampuan yang sama, yaitu dapat menemukan posisi string yang pertama dalam suatu teks. Jadi bila terdapat beberapa kata yang sama dalam suatu teks, maka hanya kata yang sesuai pada posisi awal saja yang terdeteksi.


(5)

62

Hak Cipta © 2007 UPN "Veteran" Jatim

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

5.2. Saran

Berikut ini adalah saran-saran yang dapat dijadikan pertimbangan dalam pengembangan tugas akhir selanjutnya :

1. Perlu dibandingkan dengan algorithma lain untuk mengetahui apakah terdapat algorithma yang lebih baik dibandingkan dengan Knuth Morris Pratt ( KMP ) dan Booyer Moore ( BM ) seperti yang telah dilaksanakan dalam tugas akhir ini.

2. Akurasi pencarian perlu lebih ditingkatkan dengan cara menghilangkan sifat case sensitif sehingga dapat mendeteksi pola kata yang sama walaupun hurufnya berbeda.

3. Untuk pengembangan lebih lanjut sebaiknya pencarian dilakukan untuk kata dasar dari suatu kata. Hal ini dapat dilakukan dengan menambahkan morphological analiser kedalam aplikasi.


(6)

63

[1]AOE, J.I., 1994, Computer algorithms : string pattern matching strategies, IEEE Computer Society press.

[2]Bina Sarana Informatika, 2006, Modul Praktek Laboratorium Komputer Borland Delphi, Team Penyusun Modul Delphi, Jakarta.

[3]Boyer R.S., Moore J.S., 1977, A fast string searching algorithm. Communications of the ACM. 20:762-772.

[4]Desiana. 2007. Pencarian String dengan Menggunakan Metode Indexing pada Data Genomic.pdf. Fakultas Ilmu Komputer, Universitas Indonesia. [5]Knuth D.E., Morris (Jr) J.H., Pratt V.R., 1977, Fast pattern matching in

strings, SIAM Journal on Computing 6(1):323-350.

[6]Munir, Rinaldi., 2007, Diktat Kuliah Strategi Algoritmik., Program Studi Teknik Informatika, Institut Teknologi Bandung. Diakses dari

http://www.docstoc.com/docs/40337710/Analisis-Algoritma-Pencarian-String-(-String-Matching-) ( pada tanggal 1 November 2011 ).

[7]Wahyudi Bambang, 2011, Algoritma dan Pemrograman. Diakses dari

http://www.bwahyudi.staff.gunadarma.ac.id/Downloads/files/1342/ALG

ORITMA+PEMROGRAMAN.pdf tanggal 14 November 2011.

[8]http://www.docstoc.com/docs/6849820/modul-IMK ( diakses online pada