• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
137
0
0

Teks penuh

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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.

(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.

(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

(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.

(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

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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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.

(48)

start

apakah pattern dan sumber string cocok?

End Pattern yang cari,

sumber string

pencarian

Pattern ditemukan Ya

[image:48.595.146.412.119.672.2]

Pattern tidak ditemukan Tidak

(49)
[image:49.595.109.515.114.587.2]

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

(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

[image:51.595.199.406.109.613.2]

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

(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

[image:52.595.80.488.518.746.2]

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

[image:53.595.109.509.108.454.2]

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

(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

(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

[image:57.595.122.503.354.592.2]

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

(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

(60)

algoritma Zhu-Takaoka. Hal yang Sedangkan dari segi ketepatan kedua algoritma

sama-sama dapat menyelesaikan pencocokan dan menghasilkan keluaran yang

[image:60.595.86.480.214.442.2]

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

[image:62.595.85.521.326.577.2]

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

(63)
(64)
(65)
[image:65.595.110.529.135.373.2]

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

(66)
(67)
(68)
[image:68.595.86.503.113.351.2]

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

(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

[image:69.595.148.516.327.546.2]

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

(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

(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)
[image:73.595.94.555.112.371.2]

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

[image:73.5

Gambar

Gambar 3.1 Flowchart Algoritma  Zhu-Takaoka
Tabel 3-1 Pseudocode Algoritma Zhu-Takaoka dengan notasi Big-O
Gambar 3.2 Flowchart Algoritma  Karp-Rabin
Tabel 3-3 Pseudocode Algoritma Karp-Rabin dengan notasi Big-O
+7

Referensi

Dokumen terkait

Pengadaan Jasa Outsourcing Pengemudi, Teknis dan Tenaga Fungsional Lainnya

Berdasarkan Berita Acara Evaluasi Penawaran Pengadaan Jasa Outsourching Pengemudi, Teknisi dan Tenaga Fungsional Lainnya TA 2015 dari Pokja Pengadaan Jasa Outsourching

Pengadaan barang/jasa dilaksanakan secara elektronik, dengan mengakses aplikasi Sistem Pengadaan Secara Elektronik (aplikasi SPSE) pada alamat: www.lpse.bkkbn.go.id.

Soal model PISA pada konten Quantity untuk mengukur kemampuan berfikir kritis pada protipe kedua diujicobakan pada small group yang terdiri dari 5 orang siswa kelas

Luas hutan yang mengalami deforestasi diperkira- kan akan mengalami peningkatan drastis pada tahun ke 7 dan 17 karena pada tahun-tahun tersebut terjadi peningkatan luas lahan kelapa

(2) diteliti ulang dan ditelusuri secara cermat guna mengetahui faktor yang menyebabkan butir soal tersebut dapat dijawab betul oleh seluruh testee; setelah dilakukan

Adapun kemampuan menerapkan (menggunakan konsep, prosedur, dan fakta), mampu menafsirkan matematika dalam berbagai konteks, dan mampu melakukan penalaran secara matematis

[r]