Analisis Perbandingan Performansi Algoritma Zhu-Takaoka Dan Algoritma KARP-RABIN Pada Pencarian Kata Di Rumah Baca Buku Sunda

(1)

(2)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

Program Strata Satu Program Studi Teknik Informatika

Fakultas Teknik dan Ilmu Komputer

Universitas Komputer Indonesia

Puji Pra Ramdhani

10108057

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG


(3)

(4)

(5)

i ABSTRAK

ANALISIS PERBANDINGAN PERFORMANSI ALGORITMA ZHU-TAKAOKA DAN ALGORITMA KARP-RABIN PADA PENCARIAN

KATA DI RUMAH BACA BUKU SUNDA Oleh

Puji Pra Ramdhani 10108057

Pada rumah baca buku sunda calon pembaca yang datang mencari buku berdasarkan judul akan tetapi terkadang calon pembaca mencari buku terbitan lama dan tidak mengingat judul buku yang akan di carinya. Hanya mengingat nama tokoh dalam buku tersebut atau kata yang sering muncul pada isi buku tersebut. Tentu saja nama tokoh atau kata yang sering muncul dalam isi buku tidak terdapat dalam katalog buku biasa. Hal tersebut mengakibatkan calon pembaca mengalami kesulitan mencari buku yang akan dibaca.

Dengan ada permasalahan tersebut perlu adanya suatu perangkat lunak pencarian kata yang dapat menyelesaikan permasalah tersebut dengan tepat dan juga cepat. Sehingga dapat membantu calon pembaca menemukan buku yang dicari. Ada sekitar 35 algoritma pencarian kata yang bisa digunakan dalam perangkat baik merupakan algoritma yang diciptakan dari awal maupun berupa pengembangan dari algoritma yang sudah ada. Dua di antaranya yaitu algoritma Karp-Rabin dan Algoritma Zhu-Takaoka.

Dengan melakukan analisis perbandingan performansi dari algoritma Karp-Rabin dan algoritma Zhu-Takaoka maka akan dapat diketahui cara kerja dan performansi dalam kecepatan dan ketepatan dari kedua algoritma tersebut. Agar selanjutnya algoritma yang lebih mangkus dapat digunakan pada perangkat lunak pencocokan kata.

.


(6)

ii

ANALYSIS OF COMPARATIVE PERFORMANCE BETWEEN ZHU-TAKAOKA AND KARP-RABIN ALGORITHMS ON WORDS SEARCHING

IN RUMAH BACA BUKU SUNDA By

Puji Pra Ramdhani 10108057

Commonly, in the rumah baca buku sunda, readers look for a book which are wanted to be read according to its titles, but sometimes, they seek old published book and do not remember its title. Usually, they only remember names of the characters in that book or phrases which often appear to which both of them do not exist in the catalog. That matter causes them hard to find the desired book.

For handling the problem, there must be software of word searchING which can finish the problem properly and correctly. Therefore, the software can help the readers to find the desirable book. There are about 35 algorithms of word search which can be used in the software, both algorithms which were created in the beginning and algorithms which are developed form the existed algorithms. Two of them are Karp-Rabin and Zhu-Takaoka algorithms.

By doing analysis of comparative performance between Karp-Rabin and Zhu-Takaoka algorithms, it will be known a process and a performance in speed and accuracy from both algorithms. Furthermore, algorithms which are more efficient can be used on software of string matching.


(7)

iii

KATA PENGANTAR

Assalamu’alaikum, Wr.,Wb.

Yang Terucap akan lenyap, yang Tercatat akan teringat, Alhamdulillah puji dan syukur kehadirat Allah SWT yang telah melimpahkan rahmat serta hidayah-Nya, karena tidak lepas dari kehendak-Nya juga penulis dapat menyelesaikan penyusunan skripsi ini. Sholawat serta salam semoga Allah SWT limpahkan kepada junjungan alam baginda nabi besar Muhammad SAW, yang telah membawa umat manusia dari alam kegelapan ke alam yang penuh dengan berkah dan maghfiroh. Skripsi ini diajukan untuk memenuhi syarat dalam menempuh ujian sidang sarjana strata satu (S1) pada Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Skripsi ini berjudul: “ANALISIS PERBANDINGAN PERFORMANSI ALGORITMA ZHU-TAKAOKA DAN ALGORITMA KARP-RABIN PADA PENCARIAN KATA DI RUMAH BACA BUKU SUNDA”.

Sehubungan dengan telah selesainya Tugas Akhir ini, penulis yakin bahwa tugas ini tidak akan berhasil tanpa doa, bimbingan, petunjuk dan dukungan dari berbagai pihak yang terlibat dalam pembuatan tugas ini. Oleh karena itu penulis mengucapkan terima kasih kepada :


(8)

iv

1. Allah S.W.T yang telah memberikan penulis nikmat dan kesehatan sehingga dapat menyelesaikan skripsi tahun ini.

2. Kedua Orang Tua penulis yang tidak kenal leleah untuk selalu mendoakan dan memberikan dukungan selama ini.

3. Yang terhormat Bapak Adam Mukharil Bachtiar,S.Kom. selaku Dosen Wali sekaligus Pembimbing dan Mentor yang telah memberikan arahan dan meluangkan waktunya dalam membantu penyusunan skripsi ini. 4. Yang terhormat Ibu Mira Kania Sabariah, S.T.,M.T. selaku Dosen Penguji

1 yang telah meluangkan waktu untuk memberikan pengarahan dan memberikan masukan dalam penyelesaian skripsi ini.

5. Dosen-dosen Teknik Informatika yang telah mengajari berbagai hal dan berbagai bidang ilmu pengetahuan.

6. Untuk pihak sekretariat jurusan yang telah melayani tentang kemahasiswaan selama empat tahun ini.

7. Buat teman seperjuangan yang ngambil skripsi juga Sandi Barkah dan Iham Andrian yang selalu ada jika penulis membutuhkan bantuan dalam proses penyusunan skripsi ini.

8. Rekan-rekan kelas IF-02 angkatan 2008 yang selama empat tahun ini menjadi teman berbagi ilmu, tawa dan cerita.


(9)

v

9. Hilman,Helmy,Natalla dan semua pihak yang telah memberikan bantuan dan dukungan dalam menyelesaikan skripsi.

10.Pihak-pihak lain yang tidak dapat penulis sebutkan satu persatu.

Saya menyadari bahwa Laporan penelitian tugas akhir yang penyusun buat ini masih jauh dari sempurna, seperti kata pepatah : “Tak ada gading yang tak retak”. Oleh karenanya saran dan kritik guna kelengkapan dan kesempurnaan skripsi ini sangat saya harapkan, serta demi peningkatan kemampuan dan pengetahuan dimasa-masa yang akan datang.

Sebagai penutup peneliti berharap semoga penyusunan skripsi ini berguna, khususnya bagi peneliti dan umumnya bagi kita semua. Semoga Allah SWT selalu meridhoi kita semua, amin.

Jazakumullah Khairan Katsiran, Wassalamu alaikum, Wr., Wb.

Bandung, 26 Agustus 2012


(10)

vi

DAFTAR ISI ... vi

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... x

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xv

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Perumusan Masalah ... 3

1.3. Maksud dan Tujuan ... 3

1.3.1. Maksud ... 3

1.3.2. Tujuan ... 3

1.4. Batasan Masalah ... 3

1.5. Metodologi Penelitian ... 4

1.5.1. Metode Pengumpulan Data ... 4

1.5.2. Metode Pembangunan Perangkat Lunak... 5

1.6. Sistematika Penulisan ... 7

BAB 2 LANDASAN TEORI... 9

5.1 Rumah Baca Buku Sunda ... 9

5.2 Landasan Teori ... 10


(11)

vii

2.2.5. Metode Pembangunana Perangkat Lunak ... 25

2.2.6. Object Oriented Programing (OOP) ... 26

2.2.7. JAVA ... 29

2.2.8. NetBeans IDE 6.9.1 ... 31

2.2.9. WAMP Server ... 32

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 33

3.1. Analisis Sistem ... 33

3.1.1. Analisis Masalah ... 33

3.1.2. Analisis Algoritma ... 34

3.1.3. Spesifikasi Kebutuhan Perangkat Lunak ... 57

3.2. Perancangan Sistem ... 59

3.2.1. Perancangan Arsitektural Perangkat Lunak ... 59

3.2.2. Perancangan Struktur Menu ... 59

3.2.3. Perancangan Antarmuka Perangkat Lunak ... 60

3.2.4. Perancangan Jaringan Semantik ... 64

3.2.5. Perancangan Prosedural ... 65

BAB 4 IMPLEMETASI DAN PENGUJIAN ... 67

4.1. Implementasi Sistem ... 67

4.1.1. Implementasi Perangkat Keras... 67


(12)

viii

4.2.2. Pengujian White Box ... 71

4.2.3. Pengujian Black Box ... 81

4.2.4. Kesimpulan Pengujian. ... 86

BAB 5 KESIMPULAN DAN SARAN ... 85

5.1 Kesimpulan ... 85

5.2 Saran ... 85


(13)

1

1.1. Latar Belakang

Rumah Baca Buku Sunda atau yang disingkat RBBS merupakan perpustakaan non profit, mulai di bentuk sekitar Februari 2004 Pengunjung RBBS beragam seperti orang tua, murid-murid sekolah (SD, SMP, atau SMA), mahasiswa, dan masyarakat umum lainnya. Koleksi buku di RBBS berjumlah sekitar 8000 buah dan 3000 buah diantaranya adalah karya sastra Sunda seperti novel, kumpulan cerita pendek, kumpulan esai, kumpulan puisi dan sajak, dan ada juga yang membahas tentang kebudayaan Sunda. Koleksi buku Sunda di RBBS tidak hanya buku-buku tentang sastra dan kebudayaan Sunda yang berbahasa Sunda saja. Ada juga buku-buku yang membahas hal sama tetapi disajikan dalam bahasa Indonesia atau bahasa lain seperti bahasa Inggris. Selain itu, ada pula buku-buku umum yang merupakan sastra Indonesia, sastra berbahasa asing seperti bahasa Inggris, dan sastra terjemahan.

Dari hasil observarsi calon pembaca Rumah Baca Buku Sunda yang datang mencari buku berdasarkan judul akan tetapi terkadang calon pembaca mencari buku terbitan lama dan tidak mengingat judul buku yang akan di carinya. Hanya mengingat nama tokoh dalam buku tersebut atau kata yang sering muncul pada isi buku tersebut. Tentu saja nama tokoh atau kata yang sering muncul dalam isi buku tidak terdapat dalam katalog buku biasa. Hal tersebut mengakibatkan calon pembaca mengalami kesulitan mencari buku yang akan dibaca.


(14)

Perangkat lunak yang cepat dan tepat tergantung dari algoritma yang digunakan, Ada sekitar 35 algoritma pencarian kata yang bisa digunakan dalam perangkat baik merupakan algoritma yang diciptakan dari awal maupun berupa pengembangan dari algoritma yang sudah ada [1]. Dua di antaranya yaitu algoritma Karp-Rabin dan Algoritma Zhu-Takaoka. Untuk single pattern, yaitu ketika pattern yang dicari hanya satu atau tunggal, algoritma Karp-Rabin kalah dibandingkan dengan Knuth-Morris-Pratt, Boyer-Moore dan algoritma pencocokan string cepat yang lain, karena kelambatannya dalam kasus terburuk [2]. Tetapi algoritma Rabin-Karp unggul dalam kasus pencarian string dengan pattern yang panjang dan kasus pencarian string dengan multipattern [3]. Algoritma Zhu-Takaoka lebih cepat dibandingkan dengan algoritma Raita dan untuk pattern berupa kalimat algoritma Zhu-Takaoka lebih cepat juga dibandingkan dengan algoritma Raita [4]. Dengan melakukan analisis perbandingan performansi dari algoritma Karp-Rabin dan algoritma Zhu-Takaoka maka akan dapat diketahui cara kerja dan performansi dalam kecepatan dan ketepatan dari kedua algoritma tersebut. Agar selanjutnya algoritma yang lebih mangkus dapat digunakan pada perangkat lunak pencocokan kata.

Berdasarkan permasalah yang telah dipaparkan maka dapat disimpulkan bahwa perlu dibangun perangkat lunak pencocokan kata yang dapat membantu menganalisis performansi algoritma Karp-Rabin dan algoritma Zhu-Takaoka. Oleh karena itu dibangunlah perangkat lunak pencocokan kata pada pencarian kata dirumah baca buku sunda.


(15)

1.2. Perumusan Masalah

Berdasarkan latar belakang masalah maka dirumuskan sebuah masalah yaitu bagaimana menganalisis performansi algoritma Zhu-Takaoka dan algoritma Karp-Rabin pada pencarian kata dirumah baca buku sunda.

1.3. Maksud dan Tujuan 1.3.1. Maksud

Maksud dari penelitian ini adalah menganalisis performansi algoritma Zhu-Takaoka dan algoritma Karp-Rabin pada pencarian kata di rumah baca buku sunda.

1.3.2. Tujuan

Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah untuk mengetahui algoritma pencocokan kata mana yang lebih cepat dan tepat dirumah buku baca sunda.

1.4. Batasan Masalah

Pembahasan permasalahan diharapkan tidak menyimpang dari pokok permasalahan, sehingga diperlukan batasan masalah.Adapun batasan dari penulisan tugas akhir ini adalah sebagai berikut :

1. Algoritma yang digunakan yaitu algoritma Zhu-Takaoka dan algoritma Karp-Rabin.

2. Buku yang digunakan hanya buku berbahasa Indonesia

3. Hasil informasi data pencarian yang dihasilkan bersumber pada data buku yang diinputkan berekstention txt.


(16)

4. Output pencarian dari perangkat lunak adalah judul buku, jumlah karakter,posisi kata yang dicari, waktu pencarian dan memori yang digunakan untuk melakukan pencarian.

5. Pattern atau kata yang dicari memiliki relevansi dengan data buku yang ada di database.

6. Input berupa teks ASCII.

7. Pendekatan analisis pembangunan perangkat lunak menggunakan pendekatan analisis berorientasi objek.

8. Parameter yang digunakan dalam analisis perbandingan adalah kecepatan,ketepatan dan efesiensi dari algoritama

1.5. Metodologi Penelitian

Metodologi penelitian yang akan digunakan dalam pembuatan Skripsi ini menggunakan metodologi Analisis Deskriptif, yaitu metode penelitaian menggunakan studi kasus. Metodologi ini terbagi menjadi dua metode yaitu: 1.5.1. Metode Pengumpulan Data

Adapun teknik pengumpulan data yang akan digunakan terdiri dari tiga cara pengumpulan data, diantaranya :

1. Studi literatur

Studi literatur merupakan kegiatan yang dilakukan dengan mencari pustaka yang menunjang penelitian yang akan dikerjakan. Pustaka tersebut dapat berupa buku, artikel, laporan akhir, dan sebagainya.


(17)

2. Studi lapangan

Studi lapangan merupakan kegiatan pengamatan secara langsung di tempat penelitian untuk mengumpulkan data yang dibutuhkan. 3. Wawancara

Wawancara yaitu mendapatkan informasi dengan cara bertanya langsung kepada responden. Tanpa wawancara, peneliti akan kehilangan informasi yang hanya dapat diperoleh dengan jalan bertanya langsung kepada responden. Data semacam itu merupakan tulang punggung suatu penelitian survey.

1.5.2. Metode Pembangunan Perangkat Lunak

Tahap pengembangan perangkat lunak dalam pembuatan aplikasi ini menggunakan classic life style atau waterfall . Tahapan pengembangan system adalah sebagai berikut :

a. Requirements analysis and definition

Tahap Requirements analysis and definition merupakan tahap pengumpulan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.


(18)

Tahap System and software design merupakan tahap mendesain perangkat lunak yang dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.

c. Implementation and unit testing

Tahap Implementation and unit testing merupakan tahap hasil desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.

d. Integration and system testing

Tahap Integration and system testing merupakan tahap penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).

e. Operation and maintenance

Tahap Operation and maintenance merupakan tahap mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.


(19)

Requirements definition

System and Software Design

Implementation and unit testing

Integration and sytem testing

Operation and maintenance

Gambar 1.1 Model Proses Waterfall [5]

1.6. Sistematika Penulisan

Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Adapun sistematika penulisan skripsi ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab 1 merupakan proses menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan maksud dan tujuan penelitian, yang kemudian diikuti dengan pembatasan masalah, metodelogi penelitian, dan sistematika penulisan.


(20)

BAB 2 LANDASAN TEORI

Bab 2 membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik yang diangkat dan hal-hal yang berguna dalam proses analisis permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang pernah dilakukan sebelumnya termasuk sintesisnya.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab 3 berisi analisis kebutuhan untuk sistem yang akan dibangun sesuai dengan metode pengembangan perangkat lunak yang digunakan. Selain itu, bab ini juga berisi perancangan struktur antar muka untuk perangkat lunak yang akan dibangun.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab 4 berisi hasil implementasi analisis dan perancangan sistem yang dilakukan, serta hasil pengujian sistem untuk mengetahui apakah aplikasi yang dibangun sudah memenuhi kebutuhan

BAB 5 KESIMPULAN DAN SARAN

Bab 5 berisi kesimpulan hasil penelitian berdasarkan tujuan yang ingin dicapai dan saran yang dapat diberikan untuk perangkat lunak ini untuk kemudian dapat dikembangkan kembali.


(21)

9

2.1 Rumah Baca Buku Sunda

Rumah Baca Buku Sunda atau yang disingkat RBBS mulai dibentuk sekitar Februari 2004. Awalnya RBBS merupakan perpustakaan pribadi milik Mamat Sasmita. Sebelumnya, Mamat Sasmita atau yang akrab dipanggil Uwak Sasmita merasa koleksi bukunya sudah semakin banyak dan rasanya sayang bila hanya dibaca sendiri. Ia pun memutuskan untuk menjadikan perpustakaan pribadinya sebagai rumah baca buku untuk umum. Koleksi buku di RBBS berjumlah sekitar 8000 buah dan 3000 buah diantaranya adalah karya sastra Sunda seperti novel, kumpulan cerita pendek, kumpulan esai, kumpulan puisi dan sajak, dan ada juga yang membahas tentang kebudayaan Sunda. Koleksi buku Sunda di RBBS tidak hanya buku-buku tentang sastra dan kebudayaan Sunda yang berbahasa Sunda saja. Ada juga buku-buku yang membahas hal sama tetapi disajikan dalam bahasa Indonesia atau bahasa lain seperti bahasa Inggris. Selain itu, ada pula buku-buku umum yang merupakan sastra Indonesia, sastra berbahasa asing seperti bahasa Inggris, dan sastra terjemahan. Buku-buku yang ada biasanya dibeli dari para penjual buku loak di Bandung seperti yang ada di daerah Palasari, Dewi Sartika, Cikapundung, Cibeunying, dan Jatayu. Selain membeli sendiri, koleksi buku juga didapatkan dari sumbangan pihak luar dan biasanya buku-buku bertemakan sastra serta kebudayaan.


(22)

• Kamoes Basa Sunda karangan R. Satjadibrata yang diterbitkan Bale Poestaka pada tahun 1948.

• Kamus Sunda-Inggris yang disusun Jonathan Rigg, (anggota The Batavia Society of Arts and Sciences) dan diterbitkan Batavia Lange & Co pada tahun 1862.

• Buku puisi Sawer Bahasa Sunda yang diterbitkan Departemen Pendidikan dan Kebudayaan.

• Novel Sunda Sebelum Perang karangan Yus Rusyana.

• Dipati Ukur Djilid 4 yang diterbitkan Daja Sunda Pusat.

• Jagad Carita (Kandaga Carpon Dunya) karangan Hawé Setiawan.

• Pasini Jangji di Muaraberes (Carita Mundinglaya) karangan Rohmat Tasdik Al Garuti.

2.2 Landasan Teori 2.2.1. String Matching

String dalam ilmu komputer dapat diartikan dengan sekuens dari karakter. Walaupun sering juga dianggap sebagai data abstrak yang menyimpan sekuens nilai data, atau biasanya berupa bytes yang mana merupakan elemen yang digunakan sebagai pembentuk karakter sesuai dengan encoding karakter yang disepakati seperti ASCII, ataupun EBCDIC [

6

]. Pencocokan string atau string matching adalah proses pencarian semua kemunculan string pendek P[0..n-1]

yang disebut pattern di string yang lebih panjang T[0..m-1] yang disebut teks. Pencocokan string merupakan permasalahan paling sederhana dari semua permasalahan string lainnya, dan merupakan bagian dari pemrosesan data,


(23)

pengkompresian data, lexical analysis, dan temu balik informasi. Teknik untuk menyelesaikan permasalahan pencocokan string biasanya akan menghasilkan

implikasi langsung ke aplikasi string lainnya [

7

].

2.2.2. ASCII (American Standard Code for Information Interchange)

Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal.

Tabel 2-1 ASCII CODE

No Decimal Hex Binary Value

1 32 20 100000 (space)

2 33 21 100001 !

3 34 22 100010 "

4 35 23 100011 #

5 36 24 100100 $

6 37 25 100101 %

7 38 26 100110 &

8 39 27 100111 '

9 40 28 101000 (


(24)

No Decimal Hex Binary Value

11 42 02A 101010 *

12 43 02B 101011 +

13 44 02C 101100 ,

14 45 02D 101101 -

15 46 02E 101110 .

16 47 02F 101111 /

17 48 30 110000 0

18 49 31 110001 1

19 50 32 110010 2

20 51 33 110011 3

21 52 34 110100 4

22 53 35 110101 5

23 54 36 110110 6

24 55 37 110111 7

25 56 38 111000 8

26 57 39 111001 9

27 58 03A 111010 :

28 59 03B 111011 ;

29 60 03C 111100 <

30 61 03D 111101 =

31 62 03E 111110 >

32 63 03F 111111 ?

33 64 40 1000000 @

34 65 41 1000001 A


(25)

No Decimal Hex Binary Value

36 67 43 1000011 C

37 68 44 1000100 D

38 69 45 1000101 E

39 70 46 1000110 F

40 71 47 1000111 G

41 72 48 1001000 H

42 73 49 1001001 I

43 74 04A 1001010 J

44 75 04B 1001011 K

45 76 04C 1001100 L

46 77 04D 1001101 M

47 78 04E 1001110 N

48 79 04F 1001111 O

49 80 50 1010000 P

50 81 51 1010001 Q

51 82 52 1010010 R

52 83 53 1010011 S

53 84 54 1010100 T

54 85 55 1010101 U

55 86 56 1010110 V

56 87 57 1010111 W

57 88 58 1011000 X

58 89 59 1011001 Y

59 90 05A 1011010 Z


(26)

No Decimal Hex Binary Value

61 92 05C 1011100 \

62 93 05D 1011101 ]

63 94 05E 1011110 ^

64 95 05F 1011111 _

65 96 60 1100000 `

66 97 61 1100001 a

67 98 62 1100010 b

68 99 63 1100011 c

69 100 64 1100100 d

70 101 65 1100101 e

71 102 66 1100110 f

72 103 67 1100111 g

73 104 68 1101000 h

74 105 69 1101001 i

75 106 06A 1101010 j

76 107 06B 1101011 k

77 108 06C 1101100 l

78 109 06D 1101101 m

79 110 06E 1101110 n

80 111 06F 1101111 o

81 112 70 1110000 p

82 113 71 1110001 q

83 114 72 1110010 r

84 115 73 1110011 s


(27)

No Decimal Hex Binary Value

86 117 75 1110101 u

87 118 76 1110110 v

88 119 77 1110111 w

89 120 78 1111000 x

90 121 79 1111001 y

91 122 07A 1111010 z

92 123 07B 1111011 {

93 124 07C 1111100 |

94 125 07D 1111101 }

95 126 07E 1111110 ~

96 127 07F 1111111 DEL

2.2.3. Algoritma

Algoritma merupakan urutan langkah-langkah dalam menentukan suatu masalah. Algoritma juga dapat didefinisikan dengan deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran

2.2.4. Algoritma String Matching

Algoritma pencocokan string dapat dibedakan atas dua cara pembacaan : 1) dari kiri ke kanan

Alogoritma pencarian dengan teknik ini sangat banyak. Hampir sebagian besar algoritma pencarian menggunakan cara pembacaan teks dari kiri ke kanan.

2) dari kanan ke kiri

Dalam Algoritma ini, terdapat algoritma Boyer-Moore yang dianggap merupakan salah satu algoritma yang utama dan algoritma standar dalam pencocokan string. Sampai saat ini terdapat banyak algoritma pencocokan string, ada sekitar 35


(28)

algoritma yang bisa digunakan, baik merupkan algoritma yang diciptakan dari

awal maupun berupa pengembangan dari algoritma yang sudah ada. [

1

].

2.2.4.1Algoritma Karp-Rabin

Algoritma Rabin-Karp diperkenalkan pertama kali oleh Michael O. Rabin dan Richard M. Karp pada tahun 1987. Algoritma ini menggunakan tabel array dan metode Hashing dalam pengoperasiannya. Metode hashing ini digunakan terutama untuk meningkatkan kecepatan pencarian dengan meningkatkan pengujian kesetaraan dalam teks. Pada faktanya, fungsi hash menyimpan bentuk

string dalam bentuk lain yaitu enumerasi sehingga suatu string tertentu akan memiliki nilai enumerasinya sendiri-sendiri (unik). Karena suatu string hanya memiliki sebuah nilai enumerasi maka hal inilah yang digunakan oleh algoritma Rabin-Karp untuk mempercepat pencarian string dalam tabel hash. Dengan menggunakan metode seperti ini, akan terdapat kebocoran pada pencarian dalam teks yang panjang, karena pada teks yang panjang akan terjadi penomoran string

yang sama meskipun string yang dituju berbeda. Sehingga dibutuhkan verifikasi lebih lanjut terhadap isi string tersebut. Hal ini sebenarnya dapat memakan waktu yang cukup lama apabila terjadi pada substring yang panjang. Namun fungsi hash

yang baik akan menjamin kekurang seperti ini jarang terjadi, sehingga rata-rata waktu pencarian rata-rata menggunakan metode ini relatif baik.

Rolling hash adalah fungsi hash dengan basis. Basis biasanya adalah bilangan prima. Berikut ini adalah penggunaan fungsi hash dengan basis. Misalnya kembali menggunakan contoh sebelumnya yaitu dengan menggunakan


(29)

1. Dengan menggunakan a= 2 sebagai basis lalu tentukan panjang sumber

string disini ”strategi” n = 8. Sedangkan untuk pattern yang dicari ”rat”

panjangnya m = 3.

2. Selanjutnya ubah pattern yang dicari dengan menggunakan fungsi Rolling hash. Dengan persamaan :

H = C0*am-1 + C1*am-2 + ... + C[m-1]*a0

H = nilai hash

C = nilai ASCII karakter a = nilai basis

m = banyaknya karakter

Jadi nilai hash dari ”rat” adalah 766 didapat dari :

H = 114*22 + 97*21 + 116*20 = 456 + 194 + 116

= 766

(nilai ASCII r = 114, a = 97 , t = 116) Percobaan ke 1 :

Hash(rat) = 766 Hash (y[0..2]) = 806

s t r a t e g i


(30)

Nilai hash dari indeks ke 0 samapai dengan 2 tidak cocok dengan nilai hash target maka dilakukan pergeseran.

Percobaan ke 2 : Hash(rat) = 766 Hash (y[1..3]) = 789

s t r a t e g i

r a t

Tidak seperti menggunakan fungsi hash biasa pada percobaan ke dua menggunakan fungsi rolling hash tidak mengalami kecocokan nilai hash. Dengan 798 didapat dari :

H = 116*22 + 114*21 + 97*20 = 464 + 228 + 97

= 789

Maka kembali dilakukan pergeseran.

Percobaan ke 3 : Hash(rat) = 766 Hash (y[2..4]) = 766

s t r a t e g i


(31)

Terjadi kecocokan nilai hash maka algoritma menandai lokasi penemuan dan t melanjutkan pencarian sampai karakter pada sumber string habis.

Percobaan ke 4 : Hash(rat) = 766 Hash (y[3..5]) = 721

s t r a t e g i

r a t

Percobaan ke 5 : Hash(rat) = 766 Hash (y[3..5]) = 769

s t r a T e g i

R a t

Percobaan ke 6 : Hash(rat) = 766 Hash (y[3..5]) = 715

s t r a t e g i

r a t

2.2.4.2Algoritma Zhu-Takaoka

Algoritma Zhu-Takaoka merupakan algoritma pencocokan string (String Matching) yang dipublikasikan oleh Zhu Rui Feng dan Tadao Takaoka pada tahun 1986. Dalam makalahnya, Zhu dan Takaoka menyebut algoritma pencocokan


(32)

string ini sebagai BM‟ Algorithm (Boyer-Moore‟ Algorithm). BM‟ Algorithm merupakan algoritma modifikasi dari algoritma pencocokan string Boyer-Moore Algorithm yang dibuat oleh Boyer R.S dan Moore J.S.

Algoritma BM‟ (Algoritma Zhu-Takaoka) yang merupakan modifikasi dari Algoritma BM mempunyai ciri-ciri yang sama dalam proses pencarian string. Ciri-ciri tersebut yaitu adanya tahap Preprocessing, Right-to-left scan, Bad-character rule, dan Good-suffix rule. Perbedaan antara Algoritma Boyer-Moore dan Algoritma Zhu-Takaoka yaitu terletak pada tahap penentuan bad character rule. Dalam Boyer-Moore, bad character hanya terdiri array satu dimensi, sedangkan dalam Zhu-Takaoka dimodifikasi menjadi array dua dimensi. Berikut karakteristik dari Algoritma Zhu-Takaoka.

1) Preprocessing

Prepocessing dalam algoritma Zhu-Takaoka meliputi pencarian nilai pergeseran karakter (good-suffix shift) dan pergeseran karakter jika karakter tidak cocok (bad-character shift). Nilai good-suffix shift ditetukan dalam good-suffix prepocessing sedangkan nilai character shift ditentukan dalam bad-characterprepocessing. Prepocessing dilakukan sebelum proses inti dari pencarian pattern dalam suatu text. (Pratama, 2008)

2) Right-to-Left Scan Rule

Proses inti pencarian Algoritma Zhu-Takaoka yaitu dilakukan dengan teknik Right-to-left scan rule. Teknik ini yaitu melakukan perbandingan antara pattern yang dicari dengan target text secara terbalik yaitu bergerak dari kanan ke kiri. Perbandingan pattern dengan target text dimulai dengan membandingkan karakter


(33)

terakhir dari pattern (karakter paling kanan) dengan target text paling kanan. Apabila ada kecocokan maka perbandingan akan dilanjutkan dengan bergerak ke kiri sampai karakter pertama dari pattern. Sedangkan apabila terjadi ketidakcocokan maka akan dilakukan pergeseran, besarnya pergesaran yang dilakukan ditentukan oleh dua fungsi pergeseran yaitu bad-character shift dan good-suffix shift.

3) Bad-Charcter Shift Rule

Aturan bad-character shift dibutuhkan untuk menghindari pengulangan perbandingan yang gagal dari suatu karakter dalam target text dengan pattern. Besarnya pergeseran yang dilakukan dalam aturan bad-character shift disimpan dalam bentuk tabel array dua dimensi, tabel ini terdiri dari beberapa kolom yaitu kolom karakter dan kolom shift yang menunjukkan besarnya pergeseran yang harus dilakukan.

4) Good Suffix Shift Rule

Aturan good-suffix shift dibuat untuk menangani kasus dimana terdapat pengulangan karakter pada pattern. Contoh dibawah ini akan menjelaskan bagaimana aturan bad-character shift gagal dalam menangani adanya perulangan bagian dalam pattern

Langkah – langkah pencarian :

Proses inti pencarian Algoritma Zhu-Takaoka yaitu dilakukan dengan teknik Right-to-left scan rule. Teknik ini membandingkan pattern yang dicari dengan sumber teks dimulai dari kanan ke kiri. Berikut contoh pencocokan string dengan algoritma Zhu-Takaoka :


(34)

Pattern yang dicari : done

Sumber string : indonesiaindonesi

Dari hasil preproccessing maka dihasil kan tabel ztBc :

a d e i N o s a 4 3 4 4 4 4 4 d 4 3 4 4 4 2 4 e 4 3 4 4 4 4 4 i 4 3 4 4 4 4 4 n 4 3 4 4 4 4 4 o 4 3 4 4 1 4 4 s 4 3 4 4 4 4 4

bmGs:

i 0 1 2 3 X[i] d o n e bmGs 4 4 4 1

Percobaan ke 1:

i n d o n e s i a i n d o n e s i a


(35)

Dari hasil percobaan pertama terlihat pada karakter akhir pattern yang dicari yaitu karakter e sejajar dengan karakter o pada sumber string artinya pada percobaan pertama terjadi ketidakcocokan, maka dilakukan pergeseran sejauh dua karakter. Nilai pergeseran dua karakter ini diperoleh dari tabel ztBc dimana dicocokannya dua karakter akhri pada sumber string yang sejajar dengan karakter akhir pattern. Pada contoh ini diisi dengan karakter d dan o. maka cek pada tabel ztBc baris d dan kolom o maka bernilai dua.

Percobaan ke 2 :

i n d o n e s i a i n d o n e s i a

d o n e

Terlihat dari hasil percobaan ke dua pattern yang dicari ditemukan pada sumber string maka akan diberi tanda dan dilanjutkan pada pencocokan selanjutnya dengan pergeseran berdasarkan nilai dari tabel bmGs. Dari tabel bmGs karakter d berada pada array ke nol dan memiliki nilai pergeseran empat, maka pattern digeser sejauh 4 karakter.

Percobaan ke 3 :

i n D O N E s I a i n d o N e s i a

d O n e

Dari hasil percobaan ke tiga terlihat pada karakter akhir pattern yang dicari yaitu karakter e sejajar dengan karakter i pada sumber string artinya pada percobaan ketiga terjadi ketidakcocokan. Sama dengan sebelumnya nilai pergeseran diambil


(36)

dari dua karakter akhri pada sumber string yang sejajar dengan karakter akhir pattern yang kemudian dicocokan dengan tabel ztBc. Untuk percobaan ketiga diisi dengan karakter a dan i dan setelah dicocokan baris a dan kolom i pada tabel ztBc menghasilkan nilai pergeseran empat.

Percobaan ke 4 :

i n D O N E s i a i n d O n e s i a

d o N e

pada hasil percobaan ke empat terlihat pada karakter akhir pattern yang dicari yaitu karakter e sejajar dengan karakter n pada sumber string artinya pada percobaan empatpun terjadi ketidakcocokan. Dengan dua karakter akhir yang diambil yaitu o dan n maka nilai pergeseran dari ketidakcocokan adalah satu.

Percobaan ke 5 :

i n D O N E s i a i n d o n E s i a

d o n E

Terlihat dari hasil percobaan ke lima terjadi kecocokan maka pergeseran berdasarkan tabel bmGs. Dari tabel bmGs karakter d berada pada array ke nol dan memiliki nilai pergeseran empat, maka pattern digeser sejauh 4 karakter. Karena panjang sumber string sudah habis maka pencocokanpun dihentikan. Dari contoh diatas dapat ditarik kesimpulan dengan panjang sumber string 18 karakter dan


(37)

panjang pattern yang dicari empat dilakukan lima kali percobaan dan menghasilkan dua pola yang cocok.

i n D O N E s i a i n D O N E s i a

2.2.5. Metode Pembangunana Perangkat Lunak

Dalam proses pembangunan perangkat lunak digunakan beberapa model. Adapun model-model tersebut yaitu [

5

]:

2.2.5.1 Waterfall Model

Model proses waterfall merupakan dasar proses aktifitas pembangunan suatu perangkat lunak. Model proses waterfall mempunyai beberapa tahapan yang berurutan seperti yang dapat dilihat pada gambar berikut ini :

Setiap tahapan mempunyai arti tersendiri dalam proses pembangunan suatu perangkat lunak serta tahapan-tahapan tersebut harus dilakukan secara berurutan. Berikut ini merupakan penjelasan dari setiap tahapan yang ada dalam

waterfall model

a. Requirements analysis and definition

Tahap ini adalah tahap untuk mengumpulkan kebutuhan secaralengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Tahap ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.


(38)

Tahap ini adalah tahap mendesain sistem dan perangkat lunak yang dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.

c. Implementation and unit testing

Tahap ini mendesain sistem dan program maka pada tahap ini desain diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudahditentukan.Program yang dibangun langsung diuji baik secara unit.

d. Integration and system testing

Pada tahap ini unit-unit program disatukan kemudiandiuji secara keseluruhan (system testing).

e. Operation and maintenance

Tahap ini program dioperasikan pada lingkungannya dan dilakukan pemeliharaan, seperti penyesuaian atau perubahan karenaadaptasi dengan situasi sebenarnya

2.2.6. Object Oriented Programing (OOP)

Analisis dan desain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunkan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dab perilaku dalam suatu entitas. Model berorientasi objek bermanfaat untuk memahami masalah, komunikasi dengan ahli aplikasi, pemodelan suatu organisasi, meyiapkan dokumentasi serta perancangan program dan basis data. Pertama-tama suatu model analisis dibuat untuk menggambarkan aspek dasar dari domain aplikasi, dimana model tersebut berisi objek yang


(39)

terdapat dalam domain aplikasi termasuk deskripsi dari keterangan objek dan perilakunya. Secara spesifik, pengertian berorientai objek berarti bahwa mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya. Hal ini yang membedakan dengan pemograman konvensional dimana struktur data dan perilaku hanya berhubungan secara terpisah. Terdapat beberapa cara untuk menentukan karateristik dalam pendekatan berorientasi objek, tetapi secara umum mencakup empat hal, yaitu identifikasi, klasifikasi, polymorphism (polimorfisme) dan inheritance

(pewarisan).

1) Karateristik dari objek

Identitas berarti bahwa data diukur mempunyai nilai tertentu yang membedakan entitas dan disebut objek. Suatu paragraf dari dokumen, suatu windows dari workstation, dan raja putih dari buah catur adalah contoh dari objek. Objek dapat kongkrit, seperti halnya arsip dalam sistem, atau konseptual seperti kebijakan penjadualan dalam multiprocessing pada sistem operasi. Setiap objek mempunyai sifat yang melekat pada identitasnya. Dua objek dapat berbeda walaupun bila semua atributnya identik Klasifikasi berarti bahwa suatu kegiatan mengumpulkan data (atribut) dan perilaku (operasi) yang mempunyai struktur data sama ke dalam satu grup yang disebut kelas. Paragraf, window, buah catur adalah contoh dari kelas. Kelas merupakan abstraksi yang menjelaskan sifat penting pada suatu aplikasi dan mengabaikan yang lain. Setiap kelas menunjukan suatu kumpulan infinite yang mungkin dari objek. Suatu objek dapat dikatakan sebagai instans dari kelas, setiap


(40)

instans dari kelas mempunyai nilai individu untuk setiap nama atribut dan operasi, tetapi memiliki bersama atribut dan operasi dengan instans lain dalam kelas

2) Karateristik Metodologi Berorientasi Objek

Metodologi pengembangan sistem berorientasi objek mempunyai tiga karateristik utama yaitu:

1) Encapsulation

Encapsulation (pengkapsulan) merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. Data dan prosedur atau fungsi dikemas dalam bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. Data terlindung dari prosedur atau objek lain kecuali prosedur yang berada dalam objek itu sendiri.

2) Inheritance

Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi atribut dan metoda dari induknya langsung. Atribut dan metoda dari objek induk diturunkan kepada anak objek, demikian seterusnya. Pendefinisian objek dipergunakan untuk membangun suatu hirarki dari objek turunannya, sehingga tidak perlu membuat atribut dan metoda lagi pada anaknya, karena telah mewarisi sifat induknya.

3) Polymorphism

Polymorphism (polimorfisme) yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda.


(41)

Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.

2.2.7.JAVA

Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Karena perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Juga karena manufaktur – manufaktur berbeda memilih processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”. Niklaus Wirth, pencipta bahasa Pascal telah merancang bahasa portabel yang menghasilkan intermediate code untuk mesin hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode ini kemudian dapat digunakan di sembarang mesin yang memiliki interpreter. Proyek Green menggunakan mesin maya untuk mengatasi isu utama tentang netral terhadap arsitektur mesin. Karena orang – orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural.

Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang

mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka


(42)

sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java. Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :

1) Sederhana (Simple)

Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.

2) Berorientasi objek (Object Oriented)

Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.

3) Terdistribusi (Distributed)

Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.

4) Interpreted

Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

5) Robust

Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa


(43)

pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.

6) Secure

Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.

7) Architecture Neutral

Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual Machine.

8) Portable

Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.

9) Performance

Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan

2.2.8. NetBeans IDE 6.9.1

Platform NetBeans memungkinkan aplikasi dibangun dari sekumpulan komponen perangkat lunak moduler yang disebut ‘modul’. Sebuah modul adalah suatu arsip Java (Java archive) yang memuat kelas-kelas Java untuk berinetraksi dengan NetBeans Open API dan file manifestasi yang mengidentifikasinya sebagai modul. Aplikasi yang dibangun dengan modul-modul dapat dikembangkan dengan menambahkan modul-modul baru. Karena modul dapat


(44)

dikembangkan secara independen, aplikasi berbasis platform NetBeans dapat dengan mudah dikembangkan oleh pihak ketiga secara mudah dan powerful. Pengembangan NetBeans diawali dari Xelfi, sebuah proyek mahasiswa tahun 1997 di bawah bimbingan Fakultas Matematika dan Fisika Universitas Charles, Praha. Sebuah perusahaan kemudian dibentuk untuk proyek tersebut dan menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun Microsystem pada tahun 1999. Sun kemudian menjadikan NetBeans open source pada bulan Juni tahun 2000. Sejak itu komunitas NetBeans terus berkembang. 2.2.9. WAMP Server

Wamp Server adalah paket web server yang bekerja secara pada localhost yang dibuat secara independen dan di instal pada sistem operasi Windows. WAMP adalah singkatan dari dari Windows and the principal components of the package: Apache, MySQL and PHP (or Perl or Python). Apache adalah Web server, MySQL adalah database, PHP adalah bahasa scripting yang dapat memanipulasi informasi yang dibuat di database dan menghasilkan halaman web dinamis konten setiap waktu diminta oleh browser. Program lain juga dapat dimasukkan dalam paket, seperti phpMyAdmin yang menyediakan antarmuka pengguna grafis untuk manajer database MySQL, atau bahasa scripting Python


(45)

33

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya. Dalam membangun perangkat lunak ini dilakukan beberapa tahap analisis yaitu :

1. Analisis Masalah 2. Analisis Algoritma

3. Spesifikasi kebutuhan perangkat lunak 4. Analisis Kebutuhan Non Fungsional 5. Analisis Kebutuhan Fungsional 3.1.1. Analisis Masalah

Dari hasil pengamatan diketahui bahwa rata-rata pengunjung yang datang ke rumah baca buku sunda adalah untuk mencari buku atau bacaan dengan terbitan lawas, karena memang rumah baca buku sunda menyediakan buku-buku dengan terbitan lama. Timbul masalah ketika pengunjung tidak mengingat judul buku atau pengarang buku yang akan mereka cari dan hanya mengingat nama tokoh dalam buku tersebut atau kata yang sering muncul dalam buku sehingga pengunjung mengalami kesuliatan dalam melakukan pencarian.


(46)

Oleh sebab itu perlu dibangunnya perangkat lunak pencarian kata yang dapat menyelesaikan permasalah tersebut dengan tepat dan juga cepat. Sehingga dapat membantu calon pembaca menemukan buku yang dicari. Ada sekitar 35 algoritma pencarian kata yang bisa digunakan dalam perangkat baik merupakan algoritma yang diciptakan dari awal maupun berupa pengembangan dari algoritma

yang sudah ada [

1

]. Dua di antaranya yaitu algoritma Karp-Rabin dan Algoritma Zhu-Takaoka. Dengan melakukan analisis perbandingan performansi dari algoritma Karp-Rabin dan algoritma Zhu-Takaoka maka akan dapat diketahui cara kerja dan performansi dalam kecepatan dan ketepatan dari kedua algoritma tersebut. Agar selanjutnya algoritma yang lebih mangkus dapat digunakan pada perangkat lunak pencocokan kata.

3.1.2. Analisis Algoritma

Pembuatan program komputer tidak terlepas dari algoritma, apalagi program yang dibuat sangat kompleks. Analisis algoritma sangat membantu di dalam meningkatkan efesiensi program. Kecanggihan suatu program bukan dilihat dari tampilan program, tetapi berdasarkan efisiensi algoritma yang terdapat didalam program tersebut. Program dapat dibuat dengan mengabaikan algoritma, tetapi jangan heran bila ada program yang mirip tetapi memiliki akses yang lebih cepat dan memakai memori yang sangat sedikit. Analisis algoritma adalah bahasan utama dalam ilmu komputer. Dalam menguji suatu algoritma, dibutuhkan beberapa kriteria untuk mengukur efisiensi algoritma. Terdapat dua tipe analisis


(47)

1. Memeriksa kebenaran algoritma dapat dilakukan dengan cara perurutan, memeriksa bentuk logika, implementasi algoritma, pengujian dengan data dan menggunakan cara matematika untuk membuktikan kebenaran.

2. Penyederhanaan Algoritma Membagi algoritma menjadi bentuk yang sederhana.

3.1.2.1.Analisis Algoritma Zhu-Takaoka

Pada Gambar 3.1 Flowchart Algoritma Zhu-Takaoka dapat dilihat alur kerja algoritma Zhu-Takaoka.

Algoritma BM‟ (Algoritma Zhu-Takaoka) yang merupakan modifikasi dari Algoritma Boyer Moore mempunyai ciri-ciri yang sama dalam proses pencarian string. Ciri-ciri tersebut yaitu terbagi dua fase yaitu fase preprocessing dan fase pencarian. Perbedaan antara Algoritma Boyer-Moore dan Algoritma Zhu-Takaoka yaitu terletak pada tahap penentuan bad character rule. Dalam Boyer-Moore, bad character hanya terdiri array satu dimensi, sedangkan dalam Zhu-Takaoka dimodifikasi menjadi array dua dimensi. Karakteristik Algoritma Zhu-Takaoka

1. Pengembangan dari algoritma Boyer-Moore

2. Menggunakan array dua dimensi untuk menghitung nilai pergeseran. 3. Melakukan pencocokan dari kanan ke kiri


(48)

start

apakah pattern dan sumber string cocok?

End Pattern yang cari,

sumber string

pencarian

Pattern ditemukan Ya

Pattern tidak ditemukan Tidak


(49)

Tabel 3-1 Pseudocode Algoritma Zhu-Takaoka dengan notasi Big-O

Procedure ZT(input x : array of char,input m :integer,input

y :array of char , input n : integer)

{IS : pencocokan string dengan algoritma zhu-takaoka FS : keluaran yang diharapkan hasil dari pencocokan}

Kamus

i, j : integer

ztBc : array[0..ASIZE][0..ASIZE] of integer bmGs : array[0..XSIZE] of integer

algorimta

{preprocessing} preZtBc(x, m, ztBc); preBmGs(x, m, bmGs); {pencarian}

j = 0; O(1)

while (j <= n - m) { O(n)

i ← m - 1; O(1)

while (i < m and x[i] = y[i + j]; --i) O(n)

if (i < 0) { O(1)

OUTPUT(j); O(1)

j ← j + bmGs[0]; O(1)

}

else

j ← j + MAX(bmGs[i],ztBc[y[j + m - 2]][y[j + m -

1]]); O(1)

endif

endwhile endwhile Endprocedure

Perhitungan Big-O

Tabel 3-2 Perhitungan Big-O algoritma Zhu-Takaoka

Pseudocode Nilai Big-O

j = 0; O(1)

while (j <= n - m) O(n)


(50)

while (i < m and x[i] = y[i + j]; --i) O(n)

if (i < 0) O(1)

OUTPUT(j) O(1)

j ← j + bmGs[0]; O(1)

j ← j + MAX(bmGs[i],ztBc[y[j + m - 2]][y[j + m -

1]]);

O(1)

Jumlah O(n2)

Berdasarkan hasil perhitungan performansi algoritma Zhu-Takaoka menggunakan notasi Big-O didapat kompleksitas waktu dengan O(n2) dengan n adalah ukuran inputan . Yang mempengaruhi nilai kompleksitas waktu dari algoritma Zhu-Takaoka adalah nilai n karena n berpangkat dua.

3.1.2.2.Analisis Algoritma Karp-Rarbin

Pada dapat dilihat Gambar 3.2 Flowchart Algoritma Karp-Rabin alur kerja algoritma Karp-Rabin.


(51)

Pattern/ inputan, sumber string Mulai

Menghitung nilai hash dari pattern/inputan

apakah nilai h(Si)= h(P)

Lakukan pencocokan antara string Si dengan string P secara brute force

String ditemukan Selesai Penelusuran sampai string berakhri Ya tidak String tidak ditemukan Melakukan pencocokan nilai hash

antara nilai hash pattern dengan nilai substring dari sumber string

Gambar 3.2 Flowchart Algoritma Karp-Rabin

Algoritma Karp-Rabin ini tidak melakukan pergeseran yang rumit untuk menyelesaikan masalah, algoritma ini mempercepat pengecekan kata pada suatu teks dengan menggunakan fungsi hash dalam mencari suatu string. Fungsi hash


(52)

adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed)

umumnya berukuran jauh lebih kecil daripada ukuran string semula [

12

]. Pada algoritma ini untaian string akan diubah menjadi integer berdasarkan bilangan ASCII-nya. Pendekatan utamanya adalah, string yang sama akan memiliki nilai hash yang sama.

Hal yang penting yang harus dilakukan sebelum melakukan pencocokan dengan algoritma Karp-Rabin adalah mengubah sumber string dan pattern yang dicari menjadi untaian integer. Karakteristik algoritma Karp-Rabin

1. Menggunakan Fungsi Rolling Hashing. 2. Melakukan pencocokan dari kiri ke kanan 3. Pergeseran dilakukan secara brute-force Pseudocode Algoritma Karp-Rabin

Jika algoritma Rabin-Karp ditulis secara keseluruhan dalam pseudocode :

Tabel 3-3 Pseudocode Algoritma Karp-Rabin dengan notasi Big-O

function RabinKarp (input s: string[1..m], teks: string[1..n])

{IS : Melakukan pencarian string s pada string teks dengan algoritma Rabin Karp

FS : keluaran yang diharapkan pencarian string berhasil dilakukan}

}

Deklarasi

i : integer ketemu = boolean

Algoritma:

ketemu false O(1) hs hash(s[1..m]) O(1) for i 1 to n-m+1 do O(n) hsub hash(teks[1..i+m-1]) O(1) if hsub = hs then O(1)

if teks[i..i+m-1] = s then O(1)

ketemu true O(1)


(53)

hsub hash(teks[i+1..i+m]) O(1) endif

endif endfor

return ketemu O(1)

endfunction

Perhitungan Big-O

Tabel 3-4 Peritungan Big-O

Pseudocode Big-O

ketemu false O(1)

hs hash(s[1..m]) O(1)

for i 1 to n-m+1 do O(n)

hsub hash(teks[1..i+m-1]) O(1)

if hsub = hs then O(1)

if teks[i..i+m-1] = s then O(1)

ketemu true O(1)

hsub hash(teks[i+1..i+m]) O(1)

return ketemu O(1)

Jumlah O(n)

Berdasarkan hasil perhitungan performansi algoritma Karp-Rabin

menggunakan notasi Big-O didapat kompleksitas waktu dengan O(n) . dengan n adalah ukuran inputan.

3.1.2.3. Perbandingan Algoritma

Sample Sinopsi yang diambil dari rumah baca buku sunda yang dijadikan sample penelitian dalam perhitungan performansi algoritma Zhu-Takaoka dan algoritma Karp-Rabin dikategorikan berdasarkan jumlah karakter deskripsi buku bisa dilihat pada tabel Tabel 3-5 Data Buku dan kombinasi inputan pencarian seperti :


(54)

1. Huruf kecil , contoh : lengkong 2. Huruf besar, contoh : LENGKONG

3. Huruf besar dilanjutkan huruf kecil, contoh : Lengkong 4. Angka , contoh : 1945

5. Karakter inputan sama, contoh : dan

6. Jumlah karakter sebelum karakter ditemukan sama

Tabel 3-5 Data Buku

Buku ke Judul buku Jumlah karakter

Deskripsi

1 Azab dan Sengsara 468 2 Akademi militer dan peristiwa lengkong 1858

3 Hulubalang Raja 3208

4 Salah Asuhan 3900


(55)

(56)

Untuk perhitungan waktu computer dengan arsitektur yang berbeda akan berbeda pula lama waktu untuk setiap jenis operasinya hal ini disebabkan dalam system operasi tertentu untuk mengeksekusi perintah tertentu dilakukan


(57)

penjadwalan yang berbeda – beda. Untuk itu model abstrak pengukuran waktu atau ruang besaran yang dipakai adalah kompleksitas algoritma.

Dari hasil percobaan dengan inputan huruf kecil,untuk kecepatan dan efesiensi algoritma Karp-Rabin lebih unggul dari pada algoritma Zhu-Takaoka dan hal yang berpengaruh pada pencocokan yaitu posisi karakter ketika ditemukan dan karakteristik jenis huruf sebelum diketemukan . Sedangkan dari segi ketepatan kedua algoritma sama-sama dapat menyelesaikan pencocokan dan menghasilkan keluaran yang tepat.

Gambar 3.3 Grafik Waktu uji coba kedua Algoritma terhadap inputan huruf kecil(ms)

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Buku ke-1 Buku ke-2 Buku ke-3 Buku ke-4 Buku ke-5

Algoritma Zhu-Takaoka Algoritma Karp-Rabin


(58)

(59)

Pada percobaan dengan inputan huruf besar, dari segi waktu dan memori yang digunakan algoritma Karp-Rabin lebih cepat dan efesien dibandingkan dengan berpengaruh terhadap pencocokan yaitu karakteristik karakter sebelum ditemukan huruf capital dan huruf kecil berpengaruh terhadap waktu pencarian


(60)

algoritma Zhu-Takaoka. Hal yang Sedangkan dari segi ketepatan kedua algoritma sama-sama dapat menyelesaikan pencocokan dan menghasilkan keluaran yang tepat

Gambar 3.4 Grafik Waktu uji coba kedua Algoritma terhadap inputan huruf besar

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Buku ke-1 Buku ke-2 Buku ke-3 Buku ke-4 Buku ke-5

Algoritma Zhu-Takaoka


(61)

(62)

Pada percobaan dengan inputan huruf besar dilanjutkan huruf kecil, dari segi waktu dan memori yang digunakan algoritma Karp-Rabin lebih cepat dan efesien dibandingkan dengan berpengaruh terhadap pencocokan yaitu karakteristik karakter sebelum ditemukan huruf capital dan huruf kecil berpengaruh terhadap waktu pencarian algoritma Zhu-Takaoka. Hal yang Sedangkan dari segi ketepatan kedua algoritma sama-sama dapat menyelesaikan pencocokan dan menghasilkan keluaran yang tepat.

Gambar 3.5 Grafik Waktu uji coba kedua Algoritma terhadap inputan huruf Besar dilanjutkan huruf kecil

0 200 400 600 800 1000 1200 1400 1600 1800

Buku ke-1 Buku ke-2 Buku ke-3 Buku ke-4 Buku ke-5

Algoritma Zhu-Takaoka Algoritma Karp-Rabin


(63)

(64)

(65)

Gambar 3.6 Grafik Waktu uji coba kedua Algoritma terhadap inputan Angka

Pada percobaan dengan inputan angka, dari segi waktu dan memori yang digunakan algoritma Karp-Rabin lebih cepat dan efesien dibandingkan dengan berpengaruh terhadap pencocokan yaitu karakteristik karakter sebelum ditemukan huruf capital dan huruf kecil berpengaruh terhadap waktu pencarian algoritma Zhu-Takaoka. Hal yang Sedangkan dari segi ketepatan kedua algoritma sama-sama dapat menyelesaikan pencocokan dan menghasilkan keluaran yang tepat.

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Buku ke-1 Buku ke-2 Buku ke-3 Buku ke-4 Buku ke-5

Algoritma Zhu-Takaoka Algoritma Karp-Rabin


(66)

(67)

(68)

Gambar 3.7 Grafik Waktu uji coba kedua Algoritma terhadap inputan sama

Dari hasil uji coba keseluruhan terhadap kedua algoritma ,keduanya memiliki ke akuratan yang sama-sama baik. Algoritma Karp-Rabin cendrung lebih cepat dan efesien dalam penggunaan ruang memori, hal yang mempengaruhi pencarian waktu dan penggunaan ruang adalah panjangnya karakter sebelum kata pencarian ditemukan dan karakteristik karakter sebelum kata pencarian ditemukan, huruf besar dan huruf kecil ikut dan dari hasil perhitungan kompleksitas menggunakan metode Big –O algoritma Karp-Rabin menghasilikan kompleksitas O(n) sedangkan untuk algoritma Zhu-Takaoka menghasilkan kompleksitas O(n2). Maka dapat ditarik kesimpulan algoritma Karp-Rabin cendrung lebih baik dari pada algoritma Karp-Rabin.

0 200 400 600 800 1000 1200

Buku ke-1 Buku ke-2 Buku ke-3 Buku ke-4 Buku ke-5

Algoritma Zhu-Takaoka Algoritma Karp-Rabin


(69)

3.1.3. Spesifikasi Kebutuhan Perangkat Lunak

Spesifikasi kebutuhan perangkat lunak yang akan dibangun berdasarkan kebutuhan pengguna pada jurnal dan artikel serta hasil observasi. Spesifikasi kebutuhan perangkat lunak akan dibagi kedalam dua bagian yaitu SKPL-F ( Spesifikasi Kebutuhan Perangkat Lunak Fungsional ) dan SKPL-NF ( Spesifikasi kebutuhan perangkata lunak non-fungsional ) Berikut ini adalah tabel Spesifikasi kebutuhan perangkat lunak pencocokan string :

Tabel 3-11 Spesifikasi Kebutuhan Perangkat Lunak Fungsional

Kode Kebutuhan

SKPL-F001 Perangkat lunak dapat malakukan inputan string atau pola yang diinginkan oleh user

SKPL-F002 Perangkat lunak dapat memproses hasil inputan untuk kemudian dimulai pencocokan string atau pola.

SKPL-F003 Perangkat lunak dapat mengukur waktu eksekusi ketika memulai pencarian.

SKPL-F004 Perangkat lunak dapat menampilkan penggunaan ruang memori saat melakukan pencocokan string.

SKPL-F005 Perangkat lunak dapat menampilkan hasil dari pencocokan string.

Tabel 3-12 Spesifikasi kebutuhan perangakat lunak non-fungsional

Kode Kebutuhan

SKPL-NF001 Pengguna atau user yang menggunakan perangkat lunak ini adalah user yang ingin melakukan pencarian buku.

SKPL-NF002 Perangkat lunak yang dibangun berbasis desktop

SKPL-NF003 Perangkat keras yang digunakan adalah komputer dengan spesifikasi minimal processor Intel Pentium 4 2.6 GHz , memori 1024 MB,keyboard,dan mouse.


(70)

3.1.3.1. Analisis Perangkat Lunak

Rumah baca buku sunda menggunakan sistem operasi Windows 7 . Kebutuhan perangkat lunak dalam membangun dan menerapkan sistem yang akan dibuat di rumah baca buku sunda adalah sebagai berikut :

1. Sistem Operasi Windows XP 2. Software :

a. NetBeans IDE 6.9.1

b. Java Runtime Edition, sebagai platform untuk menjalankan sistem c. Java Development Kit versi 5 atau 6 , untuk kompilasi kode – kode

program

Spesifikasi kebutuhan perangkat lunak tersebut dipilih karena kemudahannya, familiar dan Interaktif serta mudah dalam memahami cara kerjanya.

3.1.3.2. Analisis Perangkat pikir

Analisa dan spesifikasi kebutuhan diperlukan agar kemampuan perangkat lunak yang dibangun menjadi jelas. Beberapa analisa dan kebutuhan yang berkaitan dengan perangkat lunak yang akan dibangun nanti yaitu analisa dan kebutuhan pengguna. Adapun karakteristik pengguna pada perangkat lunak pencocokan string yang akan dibangun yaitu user sebagai berikut :

1. User dapat menggunakan komputer, minimal mampu menggunakan keyboard sebagai sarana penginputan data dan kata kunci pencarian.


(71)

2. User dapat membaca.

3. Jenjang pendidikan dimulai dari Anak sekolah (SD,SMP dan SMA), Mahasiswa

Berdasarkan analisis pada user, dapat diambil kesimpulan bahwa pengguna (user) yang ada cukup memenuhi syarat sebagai pengguna sistem yang akan dikembangkan, sehingga tidak diperlukan pelatihan khusus mengenai penggunaan komputer, cukup berupa dokumen atau buku panduan untuk membantu menjalankan perangkat lunak.

3.2. Perancangan Sistem

Perancangan merupakan penggambaran, perencanaan, dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam suatu kesatuan yang utuh. Tahapan ini meliputi mengkonfigurasi komponen-komponen perangkat lunak dan perangkat keras dari suatu sistem. Adapun perancangan sistem dari sistem informasi kepegawaian yang dibuat dijelaskan sebagai berikut. 3.2.1. Perancangan Arsitektural Perangkat Lunak

Perancangan arsitektur adalah tahap yang dilakukan dalam merancang stuktur menu , merancang antarmuka bagi pengguna, perancangan pesan dalam perangkat lunak serta jaringan semantik.

3.2.2. Perancangan Struktur Menu

Perancangan struktur menu berisikan menu dan submenu yang berfungsi memudahkan pengguna didalam menggunakan sistem. Pada perangkat lunak ini perancangan struktur menu pada user menggunakan struktur menu hirarki atau sekuensial untuk jelasnya dapat dilihat pada Gambar 3.8 struktur menu pada User


(72)

Bantuan Pencarian

Tentang

Gambar 3.8 struktur menu pada User

3.2.3. Perancangan Antarmuka Perangkat Lunak

Perancangan antarmuka merupakan sebuah penggambaran, perencanaan, dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi. Adapun perancangan antarmuka perangkat lunak pencocokan string adalah sebagai berikut :

1. Desain Form pencarian

Form pencarian merupakan form yang digunakan sebagai tampilan user pada saat akan mulai pencarian dimana algoritma di implementasikan. Desain tampilan form dan deskripsi objek dari aplikasi ini dapat dilihat pada Gambar 3.9 Desain tampilan form pencarian


(73)

Gambar 3.9 Desain tampilan form pencarian

Tabel 3-13 Deskripsi objek form pencarian

Objek Jenis Keterangan

Column 1,Content 2 Tabel Tempat menampilkan data buku yang telah tersedia dari data inputan

Algoritma Combo Box Memilih algoritma yang akan digunakan Buka Direktori Button Menginputkan data buku yang akan menjadi

sumber pencarian

Cari Button Memulai pencarian dari buku yang dipilih muncul F06

Cari Semua Buku Button Memulai pencarian dari semua buku yang terdapat di data base

Keluar Button Keluar aplikasi

Tentang Button Menuju F08, melihat tentang pembuat

Bantuan Button Menuju F07, melihat bantuan cara penggunaan


(74)

Form proses pencarian merupakan form yang digunakan sebagai tampilan dimana proses pencarian dikerjakan. Desain tampilan form dan deskripsi objek dari aplikasi ini dapat dilihat pada Gambar 3.10 Desain tampilan form proses pencarian

2. Tampilan Form Proses Pencarian

Gambar 3.10 Desain tampilan form proses pencarian Tabel 3-14 Deskripsi objek form proses pencarian

Objek Jenis Keterangan

Pattern yang dicari Text Menampilkan pattern yang dicari

Hasil Text area Menampilkan hasil pencarian lengkap dengan waktu dan memori yang digunakan.

Keluar Button Keluar aplikasi

3. Desain Form bantuan

Form bantuan merupakan form yang menampilkan tatacara penggunaan perangkat lunak. Desain tampilan form dan deskripsi objek dari aplikasi ini dapat dilihat pada gambar dibawah.


(75)

3. Tampilan Form Bantuan

Gambar 3.11 Desain tampilan form bantuan

Tabel 3-65 Deskripsi objek form bantuan

Objek Jenis Keterangan

bagaimana label Menampilkan judul form

Langkah-langkah Text area Menampilkan langkah – langkah untuk menggunakan perangkat lunak

Keluar Button Keluar aplikasi

4. Desain Form tentang

Form bantuan merupakan form yang menampilkan tentang pembuat perangkat lunak. Desain tampilan form dan deskripsi objek dari aplikasi ini dapat dilihat pada gambar dibawah.


(76)

Gambar 3.12 Desain tampilan form tentang

Tabel 3-76 Deskripsi objek form tentang

Objek Jenis Keterangan

Langkah-langkah Text area Menampilkan langkah – langkah untuk menggunakan perangkat lunak

Keluar Button Keluar aplikasi

3.2.4. Perancangan Jaringan Semantik

Berikut ini adalah gambar jaringan semantik yang menggambarkan hubungan antar modul perangkat lunak pencocokan string untuk user :


(77)

F05 F06 F06 F06

Gambar 3.13 jaringan semantik user

3.2.5. Perancangan Prosedural

Perancangan prosedural adalah tata cara atau urutan langkah – langkah untuk melakukan suatu proses. Perancangan prosedural menggambarkan algoritma dari prosedur - prosedur yang terdapat pada perangkat lunak yang dibangun. Adapun perancangan prosedural pada perangkat lunak pencocokan string adalah sebagai berikut :


(78)

start

Input kata yang dicari

Input algoritma

yang digunakan

Input dasar pencarian

Malakukan pencocokan

Apakah data ditemukan

Memberi tanda data ditemukan

Hasil data tidak ditemukan

selesai


(79)

67

4.1. Implementasi Sistem

Tahap implementasi sistem merupakan tahap pembuatan perangkat lunak, tahap lanjut dari tahap perancangan sistem. Tahap yang dilakukan untuk menerjemahkan perancangan berdasarkan hasil analisis dalam bahasa yang dimengerti oleh komputer serta penerapan perangkat lunak pada keadaan yang sebenarnya.

4.1.1. Implementasi Perangkat Keras

Spesifikasi perangkat keras (hardware) yang digunakan untuk membangun perangkat lunak pencocokan string ini tercantum dalam Tabel 4-1 Spesifikasi Perangkat Keras berikut ini :

Tabel 4-1 Spesifikasi Perangkat Keras

NO Perangkat Keras Spesifikasi

1 Processor Pentium Dual Core T4200 2.00GHz

2 RAM 1 Gb

3 Harddisk 250 Gb

4 VGA 512 Mb


(80)

4.1.2. Implementasi Perangkat Lunak

Spesifikasi perangkat keras (hardware) yang digunakan untuk membangun perangkat lunak pencocokan string ini tercantum dalam Tabel 4-2 Spesifikasi Perangkat Lunakberikut ini :

Tabel 4-2 Spesifikasi Perangkat Lunak

NO Perangkat Lunak Keterangan

1 Windows 7 Sistem Operasi

2 NetBeans Tools Pembangun Perangkat Lunak

3 StarUML Pemodelan Sistem

4.1.3. Implementasi Antarmuka

Implementasi antarmuka dilakukan untuk setiap tampilan program yang dibangun dalam bentuk file code. Berikut ini adalah implementasi antarmuka untuk admin dan pengguna. Berikut ini adalah tabel implementasi antarmuka pada perangkat lunak pencocokan String :

Tabel 4-3 Form Perangkat lunak

NO

Form Antarmuka

Proses Nama File Keterangan

1 Form Pencarian Proses inputan string UiBrowseBook.java Tampilan untuk menginputkan

kata yang dicari

2 Form Proses Pencarian Proses pencarian string UiProcessBook.java Tampilan hasil pencarian


(81)

NO

Form Antarmuka

Proses Nama File Keterangan

3 Form Bantuan

Proses tentang bantuan UiAboutDialog.java Tampilan bantuan cara penggunaan prangkat lunak

4 Form Tentang

Proses tentang pembuat UiHelpDialog.java Tampilan tentang pembuat perangkat lunak

Gambar implementasi antarmuka dapat dilihat pada bagian lampiran A.

4.2. Pengujian Sistem

Pengujian Sistem merupakan hal terpenting yang bertujuan untuk menemukan kesalahan – kesalahan atau kekurangan – kekurangan pada perangkat lunak yang akan diuji. Pengujian bermaksud untuk mengetahui perangkat lunak yang dibuat sudah memenuhi kriteria yang sesuai dengan tujuan perancangan perangkat lunak tersebut. Pada tahap pengujian sistem ini terdiri dari beberapa bagian yaitu :

1. Rencana Pengujian 2. Pengujian White Box

3. Pengujian Black Box

4. Pengujian Beta


(82)

4.2.1. Rencana Pengujian

Rencana pengujian perangkat lunak ini dibagi menjadi 2 bagian yaitu teknik pengujian black box dan teknik pengujian white box. Pengujian black box berfokus pada pengujian semua perintah-perintah dan kondisi yang dieksekusi oleh perangkat lunak dan pengujian ini dilakukan oleh pembangun aplikasi. Pengujian white box dilakukan untuk menguji function pada sistem perangkat lunak dan menguji apakah function tersebut memenuhi kebutuhan sistem. Strategi pengujian akan dilakukan dengan menggunakan strategi pengujian Beta. Strategi pengujian beta bertujuan untuk mengetahui pendapat user sebenarnya terhadap fungsi-fungsi program apakah sudah berjalan sesuai kebutuhan atau tidak. Strategi pengujian ini dilakukan dengan cara memberikan perangkat lunak kepada user yang telah ditentukan tanpa didampingi pembangun perangkat lunak.

Tabel 4-4 Rencana Pengujian

No Item Uji Detail Pengujian Jenis Uji

1 Proses pencocokan

algoritam Zhu Takaoka

Uji algoritma White box

2 Proses pencocokan

Karp-Rabin

Uji algoritma White box

3 Login Verifikasi data masuk pengguna dan sandi Black Box

4 Pengolahan data buku Tambah data buku Black Box

Ubah data buku Black Box


(83)

5 Pencarian Kata Pencarian kata Black Box

4.2.2. Pengujian White Box

Pengujian white box bertujuan untuk mengetahui kinerja logika yang dibuat pada sebuah perangkat lunak apakah berjalan dengan baik atau tidak. Pengujian white box akan digunakan pada algoritma Zhu Takaoka dan Karp Rabin, untuk mengukur kinerja logika berdasarkan pseudocode yang telah dibuat pada tahap analisis.

Pengujian white box dilakukan dengan beberapa tahap, yaitu :

1. Langkah pertama ubah pseudocode menjadi flowchart.

2. Ubah flowchart menjadi flowgraph ke dalam bentuk yang lebih sederhana.

3. Tahap pengujian, dimana tahap pengujian ini dilakukan dengan 5 cara yaitu, menghitung region, menghitung Cyclomatic Complexity, menghitung independent path, menggunakan graph matriks,

menghitung predicate node.

4.2.2.1. Pengujian Algoritma Zhu-Takaoka

Pengujian dilakukan berdasarkan pseudocode pada Error! Reference source not found.


(84)

Mulai 1 2 3 4 6 5 7 8 9 Selesai 1,2,3, 4 5 6 7 8 9 10 10 11 I II III IV

Gambar 4.1 Pengubahan Flowchart menjadi Flowgraph algoritma Zhu-Takaoka

2. Tahap Pengujian a. Region = 4

b. V(G) = Edge – Node + 2

= 10 – 8 + 2 = 2 + 2 = 4


(85)

c. Independent Path

Path 1 = 1-2-3-4-5-7-8-9-10-11 Path 2 = 1-2-3-4-6-7-8-9-10-11

Path 3 = 1-2-3-4-5-7-8-9-4-6-7-8-9-10-11

Path 4 = 1-2-3-4-5-7-8-9-10-2-3-4-5-7-8-9-10-11 d. Predicate Node

V(G) = Jumlah node yg memiliki lebih dari 1 jalur + 1

= 3 + 1 = 4

e. Graph Matriks

Graph dapat dilihat pada Gambar 4.2 Graph Matriks

Tabel 4-5 Graph Matriks Algoritma ZhuTakaoka

Node 1 2 3 4 5 6 7 8

1 1 1 1

2 1 0

3 1 0

4 1 0

5 1 0

6 1 1 1

7 1 1 1

8 0


(86)

1 2 3 4 5 6 7 8

Gambar 4.2 Graph Matriks Algoritma Zhu-Takaoka

V(G) = Jumlah Graph Matriks + 1

= 3 + 1 = 4

Tabel 4-6 Uji Coba Independent Path Independent Path ke Penggunaan Contoh data masukan Yang Diharapkan Hasil

1 Ketika Predicate node 1

bernilai false

lampu

Proses looping

berhenti

[ x ] Diterima

[ ] Ditolak

2 Ketika Predicate node 1

bernilai True

sutan Proses looping

berhenti

[ x ] Diterima


(87)

3 Ketika Predicate node 2

bernilai True

sutan Proses looping

berhenti

[ x ] Diterima

[ ] Ditolak

4 Ketika Predicate node 3

bernilai True

sutan Proses looping

berhenti

[ x ] Diterima

[ ] Ditolak

Langkah terakhir dalam melakukan pengujian menggunakan metoda basis path testing adalah menyiapkan kasus-kasus uji untuk mengeksekusi semua alur logika yang telah dibuat pada langkah sebelumnya. Kasus uji yang dimaksud disini adalah dengan cara memberikan nilai pada variable yang terlibat. Nilai yang dimasukkan haruslah nilai yang mungkin muncul dan sesuai dengan tipe data yang telah didefinisikan. Test case dibuat dalam bentuk tabel yang tujuannya untuk mempermudah eksekusi setiap basis path, karena nilai-nilai yang dimasukkan dan yang dihasilkan akan lebih mudah diamati.

1. Pengujian Path 1 = 1-2-3-4-5-7-8-9-10-11

Pada path ini, supaya node-4 dapat menuju ke node 5, maka nilai dari node 4 harus dapat menghasilkan nilai false. Maka data uji coba diasumsikan terdapat deskripsi buku dengan jumlah 3000 karakter dimana didalam deskripsi dari buku tersebut tidak mengandung kata lampu. Agar bernilai false digunakan kata lampu sebagai data uji coba.

2. Pengujian Path 2 = 1-2-3-4-6-7-8-9-10-11

Pada path ini, supaya node-4 dapat menuju ke node 6, maka nilai dari node 4 harus dapat menghasilkan nilai true. Maka data uji coba diasumsikan terdapat deskripsi buku dengan jumlah 3000 karakter dimana didalam deskripsi dari


(88)

buku tersebut mengandung kata sutan. Agar bernilai true digunakan kata sutan sebagai data uji coba.

3. Pengujian Path 3 = 1-2-3-4-5-7-8-9-4-6-7-8-9-10-11

Pada path ini, supaya node-9 dapat menuju ke node 4, maka nilai dari node 9 harus dapat menghasilkan nilai true agar looping dapat berhenti. Maka data uji coba diasumsikan terdapat deskripsi buku dengan jumlah 3000 karakter dimana didalam deskripsi dari buku tersebut mengandung kata sutan. Agar bernilai true digunakan kata sutan sebagai data uji coba.

4. Pengujian Path 4 = 1-2-3-4-5-7-8-9-10-2-3-4-5-7-8-9-10-11

Pada path ini, supaya node-9 dapat menuju ke node 4, maka nilai dari node 9 harus dapat menghasilkan nilai true agar looping dapat berhenti. Maka data uji coba diasumsikan terdapat deskripsi buku dengan jumlah 3000 karakter dimana didalam deskripsi dari buku tersebut mengandung kata sutan. Agar bernilai true digunakan kata sutan sebagai data uji coba.

4.2.2.2. Pengujian Algoritma Karp-Rabin

Pengujian dilakukan berdasarkan pseudocode pada Error! Reference source not found.


(89)

Mulai 1 2 3 4 5 6 7 10 8 9 11 Selesai 1,2,3, 4,5 6 7 10 11 12 II III I 8 9 IV

Gambar 4.3 Pengubahan Flowchart menjadi Flowgraph algoritma Karp-Rabin

2. Tahap Pengujian a. Region = 4

b. V(G) = Edge – Node + 2

= 10 – 8 + 2 = 2 + 2 = 4


(90)

Path 1 = 1-2-3-4-5-6-8-10-11-12 Path 2 = 1-2-3-4-5-6-9- 10-11-12

Path 3 = 1-2-3-4-5-7-10-11-1-2-3-4-5-7-10-11-12 Path 4 = 1-2-3-4-5-7-10-11-12

d. Predicate Node

V(G) = Jumlah node yg memiliki lebih dari 1 jalur + 1

= 3 + 1 = 4

e. Graph Matriks

Graph dapat dilihat pada

Tabel 4-7 Graph Matriks Algoritma Karp-Rabin

Node 1 2 3 4 5 6 7 8

1 1 1 1

2 1 1 1

3 1 0

4 1 0

5 1 0

6 1 0

7 1 1 1

8


(1)

Algoritma Karp-Rabin

1.

Region

= 4

2.

Cyclomatic Complexity

V

(G)

= Edge

Node + 2

= 10

8 + 2

= 2 + 2

= 4

3.

Independent Path

Path 1 = 1-2-3-4-5-6-8-10-11-12

Path 2 = 1-2-3-4-5-7-10-11-12

Path 3 = 1-2-3-4-5-7-10-11-1-2-3-4-5-7-10-11-12

Path 4 = 1-2-3-4-5-6-9-10-11-12

4.

Predicate Node

V

(G)

= Jumlah node yg memiliki lebih dari 1 jalur + 1

= 3 + 1

= 4

5.

Graph Matriks

V

(G)

= Jumlah

Graph Matriks

+ 1

= 3 + 1

= 4

Mulai 1 2 3 4 5 6 7 10 8 9 11 Selesai 1,2,3, 4,5 6 7 10 11 12 II III I 8 9 IV


(2)

Pengujian |Blackbox Model

Kasus dan Hasil Uji (Data Benar)

Data Masukan Yang Diharapkan Pengamatan Kesimpulan

Mengisi Username: sasmita Password: sasmita

Memasukkan username dan password pada

text fieldusername dan password

Dapat mengisi username dan password pada text fieldusername dan password

[ x ] Diterima [ ] Ditolak Klik tombol login Data username dan data password benar

maka akan masuk ke menu utama admin

Data username dan data password benar maka dapat masuk ke menu utama admin

[ x ] Diterima [ ] Ditolak

Kasus dan Hasil Uji (Data Salah)

Data Masukan Yang Diharapkan Pengamatan Kesimpulan

Memasukkan username dan password yang tidak terdaftar

Tampilkan pesan kesalahan “Username yang Anda masukan belum terdaftar”

Dapat menampilkan pesan kesalahan

“Username yang Anda masukan belum terdaftar”

[ x ] Diterima [ ] Ditolak Memasukkan username benar dan

password salah

Tampilkan pesan kesalahan “Username

atau password yang Anda masukkan

salah.”

Dapat menampilkan pesan kesalahan

“Password yang Anda masukkan salah.”

[ x ] Diterima [ ] Ditolak Memasukkan username salah dan

password benar

Tampilkan pesan kesalahan“Username yang Anda masukan belum terdaftar”

Dapat menampilkan pesan kesalahan

“Username yang Anda masukan belum terdaftar”

[ x ] Diterima [ ] Ditolak Mengosongkan username dan

password

Tampilkan pesan kesalahan “Username

yang Anda masukan belum terdaftar” Dapat menampilkan pesan kesalahan “Username yang Anda masukan belum

terdaftar”

[ x ] Diterima [ ] Ditolak Mengosongkan username Tampilkan pesan kesalahan “Username

yang Anda masukan belum terdaftar”

Dapat menampilkan pesan kesalahan

“Username yang Anda masukan belum terdaftar”

[ x ] Diterima [ ] Ditolak Mengosongkan password Tampilkan pesan kesalahan “Password

yang Anda masukkan salah”

Dapat menampilkan pesan kesalahan

“Password yang Anda masukkan salah”

[ x ] Diterima [ ] Ditolak


(3)

(4)

Kesimpulan

Perangkat Lunak pencocokan kata ini dapat membantu

calon pembaca rumah baca buku sunda dalam menemukan

buku yang akan dibaca.

Algoritma Karp-Rabin lebih cepat dan efesien dibandingkan

dengan algorimta Zhu-Takaoka.

Algoritma Karp-Rabin lebih cocok digunakan untuk

pencocokan kata dirumah baca buku sunda


(5)

Saran

Perangkat lunak ini dapat dikembangkan lagi dengan

algoritma lain yang lebih baik.

Tampilan dari perangkat lunak diperbaiki sesuai dengan

kebutuhan.


(6)