Implementasi Algoritma Knuth-Morris Prattstring Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android

(1)

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH

STRING MATCHING UNTUK MENCARI KATA ATAU

ISTILAH PADA KAMUS KOMPUTER

BERBASIS ANDROID.

SKRIPSI

INDAH MUSTIKA TANJUNG

121421004

PROGRAM STUDIEKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015


(2)

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA KAMUS KOMPUTER

BERBASIS ANDROID.

SKRIPSI

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

Oleh :

INDAH MUSTIKA TANJUNG 121421099

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

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA KNUTH-MORRIS

PRATTSTRING MATCHING UNTUK MENCARI

KATA ATAU ISTILAH PADA KAMUS KOMPUTER BERBASIS ANDROID.

Kategori : SKRIPSI

Nama : INDAH MUSTIKA TANJUNG

Nomor Induk Mahasiswa : 121421004

Program Studi : EKSTENSI S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Januari 2015 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ade Candra, ST, M.Kom Drs. Agus Salim Harahap, M.Si NIP. 19790904 200912 1 002 NIP. 19540828 198103 1 004

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 011


(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA KNUTH-MORRIS PRATHSTRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA

KAMUS KOMPUTER BERBASIS ANDROID.

SKRIPSI

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

Medan,

Indah Mustika Tanjung 121421004


(5)

PENGHARGAAN

Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah Yang Maha Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa orangtua penulis yang sangat mengasihi dan menyayangi penulis dan memberi dukungan tiada henti. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan sebagai Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skrisi ini .

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak Drs. Agus Salim Harahap, M.Siselaku Dosen Pembimbing I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

6. Bapak Ade Candra, ST, M.Kom selaku Dosen Pembimbing II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

7. IbuDian Rachmawati, M.Komselaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.


(6)

8. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

9. Keluarga besar penulis, Orang tua yang senantiasa mendoakan dan mendukung serta adik- adik tersayang Habib, Putri, Pipin, Tita

10. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk 2012, teman-teman D3 Mipa teruntuk M. Iqbal dalam diskusi pembuatan program. Dan adik-adik junior yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.

11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, Februari 2015 Penulis,

( Indah Mustika Tanjung )

IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA


(7)

ABSTRAK

Kamusadalahbukuacuan yang digunakan manusia untuk menerjemahkan suatu bahasa/istilah asing. Pada umumnya disusun menurut abjad berikut keterangan tentangmaknanya, pemakaiannya, atau terjemahannya. Demikian halnya dengan kamus istilah komputer sangat diperlukan dalam menerjemahkan istilah komputer. Begitu banyak metode algoritma yang dapat digunakan dalam pembuatan aplikasi kamus, salah satunya dengan menggunakan algoritma Knuth Morris Pratt (KMP). Dengan algoritma ini, setiap teks yang akan diterjemahkan akan ditinjau kata-kata untuk kemudian dicari kecocokannya dengan kata padanan dalam istilah yang diinginkan. Dalam kajian ini penulis akan melakukan analisa sekaligus uji coba terhadap penerapan algoritma Knuth Morris Pratt ini dalam aplikasi kamus istilah komputer pada smartphone Android. Didapatkan hasil dengan menggunakan Algoritma Knuth Morris Pratt bahwa aplikasi ini dapat membantu pengguna gadget untuk mencari kata atau istilah pada kamus komputer berbasis Android.

Kata-kata Kunci : Algoritma, String Matching, Knuth-Morris-Pratt (KMP), Kamus, Android.


(8)

TO FIND THE WORD OR TERM ON ANDROID BASED COMPUTER DICTIONARY

ABSTRACT

Dictionary is a reference book that we used to translate a language / foreign terms. Generally, the following is alphabetical with description of its meaning, its use, or its translation. Similarly, the dictionary of computer terms is needed in translating the computer term. So many methods of algorithms that can be used in the making of an dictionary application, one of them by using the algorithm of Knuth Morris Pratt (KMP). With this algorithm, any text that we translated will be reviewed by words then searched for compatibility with the word equivalent in terms desired. In this study the authors will perform an analysis and a tests on the application of this Knuth Morris Pratt algorithm in computer terms dictionary app on Android smartphone. Is obtained by using the algorithm of Knuth Morris Pratt that this application can help users gadget to search for words or terms in the dictionary of computer -based Android .

Keywords: Algoritm, String Matching, Knuth - Morris - Pratt ( KMP ) , Dictionary, Android.


(9)

DAFTAR ISI

halaman

Persetujuan ii

Pernyataaan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar isi vii

Daftar tabel ix

Daftar gambar x

BAB 1. PENDAHULUAN 1

1.1. Latar Belakang 1

1.2. Rumusan Masalah 2

1.3. Batasan Masalah 3

1.4. Tujuan Penelitian 3

1.5. Manfaat Penelitian 3

1.6. Metodologi Penelitian 4

1.7. Sistematika Penulisan 5

BAB 2. TINJAUAN PUSTAKA 6

2.1. Definisi Algoritma 6

2.1.1. Algoritma 6

2.2. String 7

2.2.1. StringMatching 7

2.2.2. Algoritma Knuth Morris Pratt StringMatching 8

2.2.3. Fungsi Pinggiran 8

2.2.4. Fungsi Pembanding String 10

2.2.5. Klasifikasi Pencocokan String 12

2.3. Mobile Device 14

2.4. Android 15

2.4.1. Sejarah Android 15

2.4.2. Pengertian Android 16

2.4.3. Versi Android 16

2.4.4. Arsitektur Android 18

2.5. Database 19

2.5.1. Menggunakan Format CSV 19

2.6. Kamus 21

BAB 3. ANALISIS DAN PERANCANGAN SISTEM 22

3.1. Analisis System 22

3.1.1. Analisis kebutuhan Sistem 23

3.2. Analisis Kebutuhan Sistem 23


(10)

3.2.2. Kebutuhan Non-Fungsioanal 24

3.3. Pemodelan Sistem 24

3.3.1. Use-Case Diagram 24

3.3.2. Activity Diagram 25

3.3.3. Sequence Diagram 31

3.4. Perancangan Sistem 32

3.4.1. Flowchart System 33

3.4.2. Flowchart Algoritma Knuth Moriis Pratt 34 3.5. Perancangan Antarmuka Sistem (Interface) 36

3.5.1. Halaman Utama 36

3.5.2. Rancangan Halaman Cari Kata 38 3.5.3. Rancangan Halaman Tambah Kata 40 3.5.4. Rancangan Halaman Tentang 41

3.5.5. Rancangan Halaman Bantuan 42

BAB 4. IMPLEMENTASI DAN PENGUJIAN 43

4.1. Pengujian Sistem 43

4.2. Implementasi Sistem 54

4.2.1. Halaman Utama 55

4.2.2. Halaman Cari kata 55

4.2.3. Halaman Tambah Kata 57

4.2.4. Dataset .csv 58

4.2.5. Halaman Tentang 60

4.2.6. Halaman Bantuan 62

Kompleksitas Waktu Algoritma PROMETHEE 86

BAB 5. KESIMPULAN DAN SARAN

5.1. Kesimpulan 64

5.2. Saran 64


(11)

DAFTAR TABEL

halaman Tabel 2.1. Fungsi Pinggiran Untuk Pattern abcabd 8 Tabel 2.2 Pengklasifikasian dalam Use Case Diagram 21 Tabel 2.3. Tabel Relasi-relasi dalam Use Case Diagram 21 Tabel 3.1. Keterangan Bagian-Bagian Rancangan Halaman Utama 39 Tabel 3.2. Keterangan Bagian-Bagian Rancangan Pencarian Kata 41 Tabel 3.3. Keterangan Bagian-Bagian Rancangan Tambah Kata 42 Tabel 3.4. Keterangan Bagian-Bagian Rancangan Tentang Aplikasi 43 Tabel 3.5. Keterangan Bagian-Bagian Rancangan Bantuan Aplikasi 44


(12)

DAFTAR GAMBAR

halaman

Gambar 2.1. AndroidArchitecture 25

Gambar 3.1. Diagram Ishikawa Untuk Analisis Masalah 28 Gambar 3.2. Use Case Algoritma Knuth Morris Pratt 28 Gambar 3.3. Activity Diagram Panjang Teks dan Pattern 29 Gambar 3.4. Activity Diagram Proses Awal Menemukan Karakter 30 Gambar 3.5 Activity Diagram Menghitung Nilai Pergeseran Karakter 31 Gambar 3.6. Activity Diagram Membandingkan Karakter Per Karakter 32

Gambar 3.7. Activity Diagram System 33

Gambar 3.8. Sequence System Pada Kamus komputer 35

Gambar 3.9. Flowchart System 36

Gambar 3.10. Flowchart Proses KMP 37

Gambar 3.11. Rancangan Halaman Utama 39

Gambar 3.12. Rancangan Halaman Cari Kata 40 Gambar 3.13. Rancangan Halaman Tambah Kata 42 Gambar 3.14. Rancangan Halaman Tentang Aplikasi 43 Gambar 3.15. Rancangan Halaman Bantuan Aplikasi 44 Gambar 4.1. Perbatasan r, s dari a string x 47

Gambar 4.2. Perpanjangan Perbatasan 47

Gambar 4.3. Awalan Panjang i Dari Pola Dengan Batas Lebar b[i] 48 Gambar 4.4. Batas Panjang m Dari Awalan x pt 49 Gambar 4.5. Pergeseran Pola Ketika Ketidakcocokan Pada Posisi j Terjadi 50 Gambar 4.6. Hasil Pencarian Menggunakan Algoritma KMP 55

Gambar 4.7. Halaman Utama 57

Gambar 4.8. Contoh Fungsi Autocomplete 58

Gambar 4.9. Tambah Kata 59

Gambar 4.10. Penyimpanan Kata Istilah Komputer 60

Gambar 4.11. Tentang Aplikasi Komputer 63


(13)

TO FIND THE WORD OR TERM ON ANDROID BASED COMPUTER DICTIONARY

ABSTRACT

Dictionary is a reference book that we used to translate a language / foreign terms. Generally, the following is alphabetical with description of its meaning, its use, or its translation. Similarly, the dictionary of computer terms is needed in translating the computer term. So many methods of algorithms that can be used in the making of an dictionary application, one of them by using the algorithm of Knuth Morris Pratt (KMP). With this algorithm, any text that we translated will be reviewed by words then searched for compatibility with the word equivalent in terms desired. In this study the authors will perform an analysis and a tests on the application of this Knuth Morris Pratt algorithm in computer terms dictionary app on Android smartphone. Is obtained by using the algorithm of Knuth Morris Pratt that this application can help users gadget to search for words or terms in the dictionary of computer -based Android .

Keywords: Algoritm, String Matching, Knuth - Morris - Pratt ( KMP ) , Dictionary, Android.


(14)

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Lahirnya teknologi informasi komputer dan fasilitas pendukungnya seperti layanan internet saat ini membuat perkembangan yang sangat luas. Segala informasi-informasi dapat didapatkan begitu cepat membuat jarak dan waktu tidak menjadi masalah. Namun disamping itu masih jarang ditemukan aplikasi yang dapat mempermudah proses translasi kata.

Dalam kaitannya dengan translasi kata maka diperlukan pencarian berdasarkan frase atau kata, pada umumnya perangkat lunak yang ada menggunakan teknik String matching(pencarian yang bersifat tepat). Teknik tersebut sangat sesuai jika pemakai perangkat lunak benar dalam mengetikkan frase atau kata yang akan dicari. AlgoritmaString Matching merupakan algoritma yang digunakan untuk mempercepat proses pencarian kata yang diinginkan. Proses pencocokan String(String matching) yang merupakan bagian dalam proses pencarian Stringmemegang peranan penting untuk mendapatkan dokumen yang sesuai dengan kebutuhan informasi. Hasil dari pencarian sebuah Stringdalam dokumen tergantung dari teknik atau cara pencocokan Stringyang digunakan.

String matching yaitu untuk mencari kesamaan antara teks dan Pattern yang telah ada. Salah satu Algoritma pencocokan kata yang di gunakan yaitu algoritma Knuth Morris Pratt, Algoritma ini dapat memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran angka lebih jauh. Dengan algoritma Knuth Morris Pratt ini, waktu pencarian dapat dikurangi secara signifikan.


(15)

Sangat banyak alat yang dapat membantu manusia terutama dibidang komunikasi, salah satunya adalah kamus. Kamus terdiri dari berbagai macam fungsi, salah satunya adalah untuk mengartikan kata atau kalimat dari satu bahasa ke bahasa lain. Tidak hanya itu saja, akan tetapi kamus juga memiliki fungsi untuk mengartikan sebuah istilahtertentu yang umumnya bermuatkan bahasa asing. Untuk mencari kata atau istilah di dalam sebuah kamus umumnya dengan cara manual yakni mengetikkan semua kata yang ingin dicari, dan proses pengetikan kata harus lengkap sesuai dengan kata atau istilah yang ingin dicari. Sehingga mereka menggunakan browser dan terhubung oleh internet untuk mengakses setiap kosakata yang baru. Hal ini sangat memakan banyak waktu karena harus mencari kata perkata dalam search engine pada browser.

Android adalah sistem operasi yang bersifat open source (terbuka). Disebut open source karena source code dari sistem operasi android dapat dilihat, di-download, dimodifikasi secara bebas. Dan sistem operasi dapat diilustrasikan sebagai jembatan antara piranti (device) dan penggunanya, sehingga pengguna dapat berinteraksi dengan device-nya dan menjalankan aplikasi-aplikasi yang tersedia pada device.

Dari uraian di atas, maka penulis memilih judul yaitu “IMPLEMENTASI ALGORITMA KNUTH MORRIS PRATTSTRING MATCHINGUNTUK MENCARI KATA ATAU ISTILAH PADA KAMUS KOMPUTER BERBASIS ANDROID”.

1.2.Rumusan Masalah

Berdasarkan uraian pada latar belakang di atas, rumusan masalah yang akan dibahas adalah

1. Bagaimana merancang dan membangun aplikasi yang dapat mendukung

pencarian istilah komputer dengan metode AlgoritmaKnuth Morris PrattStringMatching berbasis Android.

2. Apakah pencarian istilah komputer menggunakan tehnik Knuth Moriss

PrattStringmatching dapat membantu pemakai untuk mencari kata istilah komputer yang diharapkan.


(16)

1.3. Batasan Masalah

Agar tidak terjadi penyimpangan masalah yang akan dibahas, maka permasalahan dibatasi sebagai berikut :

1. Algoritma yang digunakan adalah Knuth Morris Pratt String Matching. 2. Perancangan aplikasi menggunakan simulator eclipse versi 4.4 (luna). 3. Menggunakan Handphone Android versi 4.1 (Jelly Bean).

4. Perangkat lunak dibuat dengan menggunakan bahasa pemrograman Java 8.

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah:

1. Membangun sebuah aplikasi kamus untuk istilah komputer menggunakan Algoritma Knuth Morris Pratt String Matching berbasis Android.

2. Untuk memperoleh sebuah perangkat lunak dalam pengelolaan sistem pencarian istilah komputer.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah sebagai berikut:

1. Penelitian ini diharapkan menghasilkan implementasi dan manfaat dalam pembuatan sistem berbasis Android menggunakan Algoritma Knuth Morris Pratt String Matching. Sehingga Mobile Application Developers lebih mudah untuk membuat dan mengembangkan aplikasi mobile untuk semua jenis Android. 2. Penelitian ini diharapkan memudahkan pengguna gadget dalam pencarian istilah


(17)

1.6 Metodologi Penelitian

Dalam proses pengerjaan skripsi ini penulis menggunakan beberapa tahapan metode penelitian, yaitu:

a. Studi Literatur

Mempelajari literatur tentang teori dasar yang mendukung penelitian ini yaitu Kecerdasan buatan menggunakan Metode Algoritma Knuth Morris PrattString Matching

b. Analisis dan Pengumpulan Data

Pada tahap ini dilakukan analisis kebutuhan aplikasi yang akan dibuat, seperti memperoleh data dengan cara mencari informasi tentang bagaimana cara membuat database di Sistem operasi Android dan melakukan Pengumpulan Kata Istilah Komputer.

c. Perancangan Sistem

Pada tahap ini hasil analisis akan menjadi dasar perancangan aplikasi sistem pendukung keputusan pemilihan sistem operasi pada komputer. Rancangan sistem dibuat menggunakan Unified Modeling Language(UML) dalam bentuk use case diagram, activity diagram, dan sequence diagram. Pada tahap ini juga dilakukan perancangan interface dari aplikasi dan flowchart cara menggunakan sistem. d. Implementasi Sistem

Pada tahap ini akan dilakukan pengimplementasian dari rancangan yang telah dibuat ke dalam bahasa pemrograman Java dengan menggunakan format CSV sebagai tempat disimpannya kamus komputer.

e. Pengujian

Setelah proses pengkodean selesai maka akan dilakukan proses pengujian terhadap program yang dihasilkan untuk mengetahui apakah program sudah berjalan dengan benar dan sesuai dengan perancangan yang dilakukan.

f. Penyusunan Laporan dan Kesimpulan Akhir.

Membuat laporan hasil analisis, perancangan dan kesimpulan akhir ke dalam format penulisan tugas akhir.


(18)

1.7 Sistematika Penelitian

Adapun langkah-langkah dalam menyelesaikan penelitian ini adalah sebagai berikut :

BAB 1 : PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi “Implementasi Algoritma Knuth-Morris-PrattSring MatchingUntuk Mencari Kata Atau Istilah Pada Kamus Komputer BerbasisAndroid”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.

BAB 2 : TINJAUAN PUSTAKA

Bab ini membahas mengenai teori-teori yang berkaitan dengan perancangan aplikasi kamus untuk mencari istilah komputer berbasis Android.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan analisis yang dilakukan terhadap permasalahan dan penyelesaian persoalan dalam menggunakan kamus berbasis Android dengan mengimplementasikan Algoritma Knuth Morris PrattString Matching untuk mencari istilah komputer.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi implementasi perancangan sistem dari hasil analisis dan perancangan yang sudah dibuat, serta menguji sistem untuk menemukan kelebihan dan kekurangan pada sistem yang dibuat.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari keseluruhan uraian bab-bab sebelumnya dan saran-saran yang diharapkan dapat bermanfaat dalam pengembangan selanjutnya


(19)

(20)

BAB 2

TINJAUAN PUSTAKA

2.1. Definisi Algoritma

2.1.1 Algoritma

Istilah algoritma (algorithm) berasal dari kata “algoris” dan “ritmis”, yang pertama kali diungkapkan oleh Abu Ja’far Mohammed Ibn Musa al Khowarizmi (825 M) dalam buku Al-Jabr Wa-al Muqabla. Dalam bidang pemrograman algoritma didefenisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara matematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.(Jogiyanto, 2005)

Terdapat beberapa defenisi yang diberikan untuk kata algoritma antara lain:

a) Algoritma adalah sekelompok aturan untuk menyelesaikan perhitungan yang dilakukan oleh tangan atau mesin.

b) Algoritma adalah langkah demi langkah sebuah prosedur berhinggga yang dibutuhkan untuk menghasilkan sebuah penyelesaian.

c) Algoritma adalah urutan langkah-langkah perhitungan yang mentrasformasikan dari nilai masukan menjadi keluaran.

d) Algoritma adalah urutan operasi yang dilakukan terhadap data yang terorganisasi dalam struktur data.

e) Algoritma adalah sebuah program abstrak yang dapat dieksekusi secara fisik oleh mesin.

f) Algoritma adalah sebuah model perhitungan yang akan dilakukan oleh komputer. (eko, 2008).


(21)

2.2String

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.

Hubungan string dengan tulisan ini adalah bahwa karakteristik dari musik yang akan disimpan dalam database dapat dianggap serupa dengan string. Hal ini akan memudahkan desainer dalam membangun sistem pencocokan audio dari sampel audio yang akan dikonversi terlebih dahulu menjadi serupa dengan string ataupun deretan bytes. Konversi inilah yang nantinya akan dibandingkan langsung dengan informasi karakteristik yang disimpan dalam database.

2.2.1.String Matching

String matching adalah pencarian sebuah patternpada sebuah teks (Ronald L. Rivest dkk. 1994). Prinsip kerja algoritma string matching adalah sebagai berikut:

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

2. Menempatkan window pada awal teks.

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

Algoritma string matching mempunyai tiga komponen utama, yaitu:

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

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

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


(22)

2.2.2 Algoritma Knuth Morris Pratt String Matching

Algoritma Knuth Morris Pratt merupakan salah satualgoritma yang sering digunakan untuk menyelesaikan masalah pencocokan string. Algoritma ini adalah penyempurnaan dari algoritma pencocokan string dengan menggunakan algoritma brute force. Pada algoritma bruteforce, setiap kali ditemukan ketidak cocokan patterndengan teks, maka patternakan digeser satu ke kanan. Sedangkan pada algoritma Knuth-Morris-Pratt, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran angka lebih jauh, tidak hanya satu karakter seperti pada algoritma brute force. Dengan algoritma Knuth Morris Pratt ini, waktu pencarian dapat dikurangi secara signifikan. Algoritma Knuth Morris Pratt ini dikembangakan oleh D. E. Knuth, bersama-sama dengan J. H. Morris dan V. R. Pratt.

Algoritma Knuth-Morris-Prath memelihara informasi yang digunakan saat melakukan pergeseran. Informasi ini digunakan untukmelakukan pergeseran yang lebih jauh, tidak seperti brute force yangmelakukan pergeseran perkarakter. Pergeseran dilakukan berdasarkan suffix kesamaan suffix dan prefix dalam pattern dan yang ditemukan di dalam teks.Dalam algoritma Knuth Morris Pratt ini kita akan menemui beberapa definisi yang nantinya akan digunakan dalam algoritma ini.

2.2.3 Fungsi Pinggiran

Algoritma Knuth Morris Pratt melakukan proses awal atau preproccesing terhadap pattern P dengan menghitung fungsi pinggiran (dalam literatur lain menyebut fungsi overlap, fungsi failure, dsb) yang mengindikasikan pergeseran s terbesar yang mungkin dengan menggunakan perbandingan yang dibentuk sebelum pencarian string. Fungsi pinggiran hanya bergantung pada karakter-karakter di dalam pattern, dan bukan pada karakter-karekter di dalam teks yang dicari. Oleh karena itu, kita dapat melakukan perhitungan fungsi awalah sebelum pencarian string dilakukan. Fungsi pinggiran b(j) didefinisikan sebagai ukuran awalan terpanjang dari P yang


(23)

merupakan akhiran dari P[1..j]. Sebagai contoh, tinjau pattern P = abcabd. Nilai F untuk setiap karakter di dalam P adalah sebagai berikut.

Tabel 2.1 Fungsi Pinggiran Untuk Pattern abcabd

j 1 2 3 4 5 6

P(j) A b c a b d

B(j) 0 0 1 1 2 0

Di bawah ini adalah algoritma untuk menghitung fungsi pinggiran. procedure HitungPinggiran

(input m : integer, P : array[1..m] of char,output b : array[1..m] of integer) { Menghitung nilai b[1..m] untuk

pattern P[1..m] }

Deklarasi

k,q : integer

Algoritma:

b[1] 0 q 2 k 0

for q 2 to m do

while ((k > 0) and (P[q] P[k+1])) do

k b[k] endwhile

if P[q]=P[k+1] then k k+1

endif

b[q]=k endfor

Keterangan :

Fungsi tersebut akan menghasilkan output berupa array integer yang merupakan angka-angka pinggiran untuk setiap posisi iterasi pada pattern. Barulah kemudian dapat diproses pencocokkan antara pattern dan teks yang diberikan.


(24)

2.2.4 Fungsi Pembandingan String

Kemudian cara untuk melakukan pencocokan stringdengan menggunakan algoritma Knuth Morris Pratt adalah sebagai berikut. Misal kita akan mencocokan teks T = abcabcabd dan kita mempunyai patternP = abcabd. 123456789

Teks = abcabcabd Pattern = abcabd

Mula-mula kita hitung fungsi pinggiran dari pattern P tersebut. Fungsi pinggiran P = abacabd tertera seperti table 1 di atas. Kemudian lakukan langkah-langkah berikut. Samakan ujung kiri pattern dengan ujung kiri teks. Karakter-karakter pada karakter 1-5 sama, tetapi pada posisi ke 6 tidak sama. Hal itu karena karakter ke 6 pada teks yaitu c tidak sama dengan karakter ke 6 pada patternyaitu d. Untuk mencocokan kembali, kita harus menggeser pattern. Jika dalam brute force kita akan menggeser pattern 1 karakter ke kanan. Namun jika menggunakan algoritma Knuth Morris Pratt jumlah pergeseran patternditentukan oleh pinggiran dari awalan P yang bersesuaian. Pada contoh di atas, awalan yang bersesuaian adalah abcab, dengan panjang l = 5. Pinggiran terpanjang untuk string P[1..5] adalah ab yang panjangnya adalah b(5) = 2. Jarak pergeseran adalah l – b = 5 – 2 = 3. Jadi, pattern P digeser sejauh 3 karakter dan perbandingan dilakukan mulai pada posisi j = 3 dihitung dari awalpattern. ( Kukuh, 2013 ).

j 1 2 3 4 5 6

P[j] A b c a b d

b(j) 0 0 0 1 2 0

Teks: abcabcabd Pattern: abcabd

j = 3

Telah itu kita kembali membandingkan karakter per karekter seperti di proses sebelumnya sampai kita menemukan teks yang sama dengan pattern hingga karakter terakhir. Algoritma Knuth Morris Pratt selengkapnya adalah sebagai berikut:


(25)

procedure KMPsearch(input m,n:integer, input P : array[1..m] of char,input T : array[1..n] of char, output idx :

integer) {

Mencari kecocokan pattern P di dalam teks T dengan algoritma Knuth-Morris- Pratt. Jika ditemukan P di dalam T, lokasi awal kecocokan disimpan di dalam peubah idx.

Masukan: pattern P yang panjangnya m dan teks T yang panjangnya n.

Teks T direpresentasika

sebagai string (array of character) Keluaran: posisi awal kecocokan

(idx). Jika P tidak ditemukan, idx = - 1.

}

Deklarasi

i, j : integer ketemu : boolean

b : array[1..m] of integer

procedure HitungPinggiran(input m : integer, P : array[1..m] of char, output b : array[1..m] of integer) { Menghitung nilai b[1..m] untuk pattern P[1..m] }

Algoritma:

HitungPinggiran(m, P, b) j 0

i 1


(26)

while (i n and not ketemu) do

while((j > 0) and (P[j+1] T[i])) do j b[j]

endwhile

if P[j+1]=T[i] then j j+1

endif

if j = m then ketemu true else

i i+1 endif

endwhile

if ketemu then

idx i-m+1 { catatan: jika indeks array dimulai dari 0, maka idx i-m } else

idx -1 endif

(Thomas, 2007)

2.2.4 Klasifikasi Pencocokan String

Pencocokan string(string matching) secara garis besar dapat dibedakan menjadi dua yaitu :

1. Exact string matching, merupakan pencocokan stringsecara tepat dengan susunan karakter dalam stringyang dicocokkan memiliki jumlah maupun urutan karakter dalam stringyang sama. Contoh : kata step akan menunjukkan kecocokan hanya dengan kata step.

2. Inexact string matching atau Fuzzy string matching, merupakan pencocokan stringsecarasamar, maksudnya pencocokan stringdimanastringyang dicocokkan memiliki kemiripandimana keduanya memiliki susunan karakteryang berbeda (mungkin jumlah atau urutannya)tetapi string-stringtersebut memiliki kemiripanbaik kemiripan tekstual/penulisan (approximate string matching) atau


(27)

kemiripan ucapan(phonetic string matching). Inexact string matching masih dapat dibagi lagi menjadi dua yaitu :

a. Pencocokan stringberdasarkan kemiripan penulisan (approximate string matching) merupakan pencocokan stringdengan dasar kemiripan dari segi penulisannya (jumlahah karakter, susunan karakter dalam dokumen).Tingkat kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah stringyang dibandingkan tersebut dan nilai tingkat kemiripan ini ditentukan oleh pemrogram (programmer).

Contoh : compuler dengan compiler, memiliki jumlahah karakter yang sama tetapi ada dua karakter yang berbeda. Jika perbedaan dua karakter ini dapat ditoleransi sebagai sebuah kesalahan penulisan maka dua stringtersebut dikatakan cocok.

b. Pencocokan stringberdasarkan kemiripan ucapan (phonetic string matching) merupakan pencocokan stringdengan dasar kemiripan dari segi pengucapannya meskipun ada perbedaan penulisan dua stringyang dibandingkan tersebut.

Contoh step dengan step dari tulisan berbeda tetapi dalam pengucapannya mirip sehingga dua string tersebut dianggap cocok. Contoh yang lain adalah step, dengan steppe, sttep, stepp,stepe. Exact string matching bermanfaat jika pengguna ingin mencari stringdalam dokumen yang sama persis dengan stringmasukan. Tetapi jika pengguna menginginkan pencarian stringyang mendekati dengan stringmasukan atau terjadi kesalahan penulisan stringmasukan maupun dokumen objek pencarian, maka inexact string matching yang bermanfaat.

Pada Implementasi Algoritma Knuth Morris Pratt untun mencari kata atau istilah pada komputer berbasis Android maka masuk dalam klasifikasi pencocokan stringExact string matching yang merupakan pencocokan stringsecara tepat dengan susunan karakter dalam stringyang dicocokkan memiliki jumlah maupun urutan karakter dalam stringyang sama


(28)

2.3MobileDevice

MobileDevice merupakan suatu alat yang digunakan olehpemakai untuk meminta informasi yang dibutuhkan, dimana informasi dapat diberikan dalam bentuk suara, gambar, dan text. Informasi yang diinginkan dapat dicari melalui fasilitas untuk mengakses internet seperti GPRS atau wireless. Pada umumnya perangkat mobileataumobiledevice lebih praktis karena bersifat mudah dibawa (portable) daripada perangkat teknologi lainnya. (Agus, 2011)

Meningkatnya pemakaian peranti mobile(mobiledevice) telah merevolusi kegiatan-kegiatan yang bersifat tradisional menjadi lebih sederhana dan mudah dengan penggunaan perangkat mobile. Mobilitas yang tinggi tidak menjadi penghalang lagi, karena saat ini peranti mobilesudah dapat mengakses server atau pusat data. Peranti mobile sekarang tidak hanya berfungsi sebagai pencatat jadwal dan buku alamat. Fungsi peranti mobile sudah berkembang pesat dan idealnya siap mengganti dokumen berbasis kertas.Mobiledevice dapat dibagi berdasarkan jumlah kegunaannya menjadi dua jenis yaitu:

1. Single purpose

Mobiledevice dengan single purpose digunakan untuk satu tujuan saja. contoh: navigation box yang terdapat pada mobil atau truk pengangkut barang.

2. Multi purpose

Mobiledevice dengan multi purpose dapat digunakan untuk mengakses berbagai macam informasi yang diinginkan, contoh : Smart phone, handphone, PDA, Laptop.

Aplikasi kamus komputer yang akan penulis rancang menggunakan perangkatmobile jenis multi purpose yaitu handphone, di mana handphone yang digunakan harus mendukung sistem operasi Android.


(29)

2.4 Android

2.4.1 Sejarah Android

Android adalah sebuah system operasi untuk perangkat mobile berbasis linux yang mencakup system operasi, middleware dan aplikasi. Android menyediakan platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat peranti lunak untuk ponsel/smartphone . kemudian untuk mengembangkan Android dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi. Termasuk Google. HTC, Intel, Motorolla, Qualcomm, T-Mobile, dan Nvidia.

Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Hansdset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilisa kode-kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat selular.

Di dunia terdapat jenis distributor system operasi Android. Pertama yang mendapat dukungan penuh dari Google atau google Mail Service (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa dukunagan langsung Google atau dikenal Open Handeset Distribution (OHD).

Sekitar September 2007 Google mengenalkan Nexus One, salah satu jenis smartphone yang menggunakan Android sebagai system operasinya. Telepon selular. Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank. Sony Ericsson, Thosiba Corp, dan Vodafone Group Pls. seiring pembentukan Open Handset alliance, OHA mengumumkan produk perdana mereka android, perangkat mobile yang merupakan modifikasi kernel Linux 2.6. sejak android dirilis telah dilakukan berbagai pembaharuan berupa perbaikan bug dan penambahan fitur baru. (Nazruddin, 2011)


(30)

2.4.2 Pengertian Android

Android adalah sebuah system operasi untuk Smartphone dan Tablet. System operasi dapat diilustrasikan sebagai ‘jembatan’ antara piranti (device) dan penggunanya, sehingga pengguna bisa berinteraksi dengan device-nya dan menjalankan aplikasi-aplikasi yang tersedia pada device. Android merupakan system operasi yang bersifat open source (sumber terbuka) disebut open source karena source code (kode sumber) dari system operasi Android dapat dilihat, di-download, dan dimodifikasi secara bebas. Paradigm open source ini memudahkan pengembangan teknologi Android, karena semua pihak yang tertarik dapat memberi konstribusi, baik pengembangan system operasi maupun aplikasi. (Alfa, Eva, 2014)

2.4.3 Versi Android

Dengan semakin pesatnya perkembangan dari dunia telekomunikasi, disertai juga dengan perkembangan aplikasi dari Android dengan beberapa pembaharuan estetis pada aplikasinya dan dilengkapi dengan fitur-fitur lainya sehingga memungkinkan terpenuhinya kebutuhan manusia dalam dunia telekomunikasi. Beberapa versi Android yang telah berkembang saat ini adalah:

a. Android Versi 1.0

Versi pertama Android dirilis pada 23 september 2008 dan digunakan pada HTC Dream. (Nazruddin, 2011)

b. Android versi 1.1

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. (Nazruddin, 2011)

c. Android versi 1.5 (Cupcake)

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. (Nazruddin, 2011)


(31)

d. Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indicator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN , Gestures, dan Text-to-speech engine, kemampuan dial kontak, teknologi text to change speech tidak tersedia pada semua ponsel, pengadaan resolusi VWGA. (Nazruddin, 2011)

e. Android versi 2.0/2.1 (Eclair)

Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. (Nazruddin, 2011)

f. Android versi 2.2 (Froyo: Frozen Yoghurt)

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto-update dalam aplikasi Android Market. (Nazruddin, 2011)

g. Android versi 2.3 (Gingerbread)

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan Webcam, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jUMLah kamera yang lebih dari satu. (Nazruddin, 2011)


(32)

Pada tanggal 22 Februari 2011, android Honeycomb diluncurkan kepasar , dan hanaya digunakan untuk Tablet. Dan tablet pertama yang menggunakan Honeycomb yaitu Motorolla Xoom.

i. Android versi 4.0 (Ice Cream Sandwitch)

Pada tanggal 19 Oktober 2011, android meluncurkan Ice Cream Sandwitch. Versi ini dapat bekerja secara optimal baik di Smartphone maupun tablet. (Alfa & Eva 2014).

j. Android versi 4.1 (Jelly Bean)

Pada tanggal 9 Juli 2012 Android Jelly Bean diluncurkan untuk meningkatkan apa yang sudah tersedia di Ice Cream Sandwitch, dengan memperbaiki bug-bug dan menambah fitur-fitur. (Alfa & Eva 2014)

k. Android versi 2.0/2.1 (Eclair)

Tanggal 3 September 2013, diumumkan versi Android selanjutnya adalah Android Kit Kat. Android sudah mendapat izin dari Nestle dan Hershey selaku pemilik merek dagang Kit Kat. Sebelum pengumuman ini, banayak yang berspekulasi bahwa versi Android berikutnya akan diberi nama Key Lime Pie. .(Alfa & Eva 2014).

2.4.4. Arsitektur Android

Dengan menyediakan sebuah platform pengembangan yang terbuka, pengembang Android menawarkan kemampuan untuk membangun aplikasi yang sangat kaya dan inovatif. Pengembang bebas untuk mengambil keuntungan dari perangkat keras, akses informasi lokasi, menjalankan background services, mengatur alarm, tambahkan pemberitahuan ke status bar, dan banyak lagi. Android bergantung pada Linux untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen proses, network stack, dan model driver. Kernel juga bertindak sebagai lapisan abstraksi antara hardware dan seluruh software stack. AndroidArchitecture berisi kernel-kernel application, application framework, libraries, Android runtime, dan linux kernel yang berisi beberapa data fungsi dalam aplikasi Android. (Nazruddin, 2011)


(33)

Gambar 2.1. AndroidArchitecture

2.5 Database

2.5.1 Menggunakan Format CSV

Walaupun ada berbagai spesifikasi dan implementasi untuk Format CSV (untuk ex. [4], [5], [6] dan [7]), tidak ada yang formal spesifikasi yang ada, yang memungkinkan untuk berbagai macam interpretasi dari file CSV. Bagian ini mendokumentasikan format yang tampaknya akan diikuti oleh sebagian besar implementasi:

1. Setiap record terletak pada baris terpisah, dibatasi oleh garis istirahat (CRLF). Sebagai contoh:

aaa, bbb, ccc CRLF zzz, yyy, xxx CRLF

2. Catatan terakhir dalam file mungkin atau mungkin tidak memiliki garis akhir istirahat. Sebagai contoh:

aaa, bbb, ccc CRLF zzz, yyy, xxx

3. Ada mungkin sebuah baris header opsional muncul sebagai baris pertama dari file dengan format yang sama sebagai garis catatan yang normal. IniHeader akan berisi nama sesuai dengan bidang dalam file dan harus berisi jumlah yang sama bidang sebagai catatan dalam sisa file (ada atau tidak adanya baris header


(34)

harus ditunjukkan melalui opsional "header" parameter ini Tipe MIME). Sebagai contoh: nama_kolom, nama_kolom, nama_kolom CRLF

aaa, bbb, ccc CRLF zzz, yyy, xxx CRLF

Dalam header dan setiap record, mungkin ada satu atau lebih bagian, yang dipisahkan dengan koma. Setiap baris harus berisi sama sejumlahah bidang di seluruh file. Ruang dianggap sebagai bagianlapangan dan tidak boleh diabaikan. Bidang terakhir dicatatan tidak boleh diikuti oleh koma. Sebagai contoh:

aaa, bbb, ccc

4. Setiap bidang mungkin atau mungkin tidak diapit tanda kutip ganda (namunbeberapa program, seperti Microsoft Excel, tidak menggunakan tanda kutip ganda sama sekali). Jika bidang tidak tertutup dengan tanda kutip ganda, maka tanda kutip ganda mungkin tidak muncul dalam bidang. Sebagai contoh:

"aaa", "BBB", "ccc" CRLF zzz, yyy, xxx

5. Bidang mengandung jeda baris (CRLF), tanda kutip ganda, dan koma harus tertutup dalam tanda kutip ganda. Sebagai contoh:

"aaa", "b CRLF bb "," ccc "CRLF zzz, yyy, xxx

6. Jika tanda kutip ganda digunakan untuk melampirkan bidang, maka double-kutipanmuncul di dalam lapangan harus melarikan diri dengan mendahului dengankutipan ganda lain. Sebagai contoh:


(35)

2.6 Kamus

Berikut pengertian kamus menurut beberapa ahli dan sebuah situs, yaitu:

1. Kamus merupakan khazanah perbendaharaan kata suatu bahasa yang menggambarkan tingkat peradaban bangsa pemiliknya. (Alwi, 2003).

2. Kamus adalah buku yang berisi keterangan tentang arti kata-kata. (Poerwadarminta, 2005)

Kamus adalah buku acuan yang memuat kata dan ungkapan yang biasanya disusun menurut abjad berikut keterangan tentang maknanya. (Hoetomo, 2005).


(36)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Masalah utama yang diangkat dari penelitian ini adalah Bagaimana merancang dan membangun aplikasi yang dapat mendukungpencarian istilah komputer dengan metode AlgoritmaKnuth Morris PrattString Matching berbasis Android.

Gambar 3.1. merupakan diagram Ishikawayang dapat digunakan untuk menganalisis masalah.Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara di pada bagian tulang merupakan penyebab.

Gambar 3.1 Diagram Ishikawa Untuk Analisis Masalah

Sistem pembuatan kamus istilah komputer ini menggunakan Unified Modeling Language (UML). Sistem yang akan dibangun menggunakan Eclipse yang memudahkan developer dalam pengembangan sistem aplikasi tersebut. Dan Sistem


(37)

operasi mobile yang dalam hal ini sistem akan dikembangkan untuk perangkat Android.

Dalam Model UML ini akan digambarkan beberapa pemodelan dari sistem yang akan dibangun. Dari pemodelan requirement, pemodelan Analysis dan pemodelan Design. Tool yang digunakan untuk menggambarkan model UML adalah Umlet.

3.2.Analisis Kebutuhan Sistem

Untuk membangun sebuah sistem, perlu dilakukan sebuah tahap analisis kebutuhan sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu: kebutuhan fungsional dan kebutuhan non-fungsional.

3.2.1. Kebutuhan Fungsional

Kebutuhan fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Kebutuhan fungsional sistem yang akan dirancang antara lain sebagai berikut:

1. Sistem harus menyediakan Versi Android yang sudah ditentukan untuk menginstal aplikasi Kamus Berbasis Android

2. Sistem dapat melakukan pencarian untuk mencari istilah atau kata pada komputer agar mendapatkan informasi kata tersebut dengan mengimplementasikan algoritma Knuth Morris PrattString Matching.

3. Sistem dapat menyediakan tempat untuk menambahkan kosa kata yang baru sehingga pengguna aplikasi dapat menyimpan kata atau istilah yang berhubungan dengan komputer.

4. System dapat memberi informasi bantuan terhadap penggunakan aplikasi kamus tersebut.


(38)

3.2.2. Kebutuhan Non-Fungsional

Kebutuhan non-fungsional merupakan deskripsi dari beberapa fitur, karateristik, dan batasan suatu sistem. Kebutuhan Non-Fungsional dari sistem adalah:

1. Mudah digunakan (User friendly) yaitu Sistem yang akan dibangun harus user friendly, artinya bahwa sistem mudah digunakan oleh user dengan tampilan (interface) yang sederhana dan mudah dimengerti.

2. Menjadi Referensi yaitu Sistem yang akan dibangun diharapkan mampu menjadi referensi bagi user untuk mencari istilah komputer serta dapat menambahkan istilah komputer yang belum terdapat pada database istilah.

3. Pelayanan Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut sehingga solusi yang diberikan lebih efektif.

4. Tampilan antarmuka sistem dapat dengan mudah dimengerti oleh pengguna sistem.

5. Perangkat lunak yang dibangun akan menampilkan pesan not founduntuk setiap kata istilah yang tidak tersimpan dalam databasenya.

3.3. Pemodelan Sistem

Pemodelan sistem yang dirancang penulis bertujuan menggambarkan kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan sistem dilakukan dengan membuat use-case diagram, activity diagram dan sequence diagram.

3.3.1. Use-Case Diagram

Use case merupakan fungsionalitas dari suatu sistem, sehingga customeratau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun.Use case berperan menggambarkan interaksi antar komponen-komponen yang berperan dalam sistem yang akan dirancang. Use case pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user, user dapat melakukan pencarian istilah komputer dan akan mengecek istilah tersebut ada atau tidak ada pada aplikasi


(39)

kamus komputer serta dapat menambahkan kosa kata istilah baru pada aplikasi kamus komputer.

,Gambar 3.2 Use Case Algoritma Knuth morris pratt

3.3.2. Activity Diagram

Activity diagram merupakan salah satu cara memodelkan event-event yang terjadi dalam use case. Pada diagram ini secara ensensial mirip dengan diagram alir (Flowchart), memperlihatkan aliran kendali dari suatu aktifitas ke aktifitas lainnya. Activity diagram berfungsi untuk menvisualisasikan, menspesifikasi, mengkonstruksi, serta mendokumentasikan sifat dari sekumpulan objek, selain itu juga dapat digunakan memodelkan aliran kendali dari suatu operasi. Seperti tampak pada gambar gambar berikut ini:


(40)

(41)

(42)

(43)

(44)

(45)

Tabel 3.1. Keterangan Bagian-Bagian Rancangan Halaman Utama

3.3.3. Sequence Diagram

Sequence Diagram ialah interaksi antar objek dalam sebuah system yang biasa digunakan untuk menggambarkan scenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event uuntuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Seperti pada gambar 3.8: Name Activity Diagram Activity diagram System

Actors User

Deskripsi Activity ini mendeskripsikan proses System pada Aplikasi Kamus Komputer

Prakondisi Sudah Masuk ke tampilan utama Bidang Khas Suatu

Kejadian

Kegiatan User Respon system 1. Memilih menu tombol

2. Menekan tombol cari kata

3. Menginputkan istilah yang ingin dicari

4. Menekan tombol tambah kata

5. Menambahkan arti dan kata yang baru

6. Menekan tombol tentang

7. Menekan tombol

bantuan.

1. System menampilkan halaman yang dipilih 2. System akan melakukan

searching pada dataset 3. Tampilkan arti istilah

pada kamus komputer 4. Menyimpan kosa kata

yang baru.

5. Kembali pada tampilan utama


(46)

Gambar 3.8Sequence System Pada Kamus Komputer

Dari keterangan diatas dapat digambarkan dengan sequence diagram mengenai informasi sistem yang berjalan saat ini, sehingga dengan diagram ini dapat menggambarkan pergerakan sebuah objek dan pesan yang terjadi di dalam sistem penyampaian informasi

3.4. Perancangan Sistem

Berdasarkan gambaran dari hasil analisis proses maka dibangun suatu model rancangan flowchart sistem dan juga rancangan antar muka system.


(47)

3.4.1. Flowchart System


(48)

Keterangan :

Pada gambar 3.9 dijelaskan mengenai Menu Utama Aplikasi. User dapat masuk melalui halaman menu utama dan melakukan pilihan di aplikasi kamus tersebut. User dapat memilih melakukan pencarian istilah komputer, user dapat menambahkan kata baru untuk dimasukkan ke Kamus komputer, user juga dapat melihat informasi bantuan terkait aplikasi kamus tersebut dan user juga dapat mengetahui cara penggunakan kamus tesebut.

3.4.2. Flowchart Algoritma Knuth morris pratt

Pada gambar 3.10. merupakan penjelasan dari algoritma Knuth Morris Pratt, flowchart ini menjelaskan bagaimana metode Knuth Morris Pratt mendapatkan output yang berupa posisi karakter yang cocok. Terlihat pada gambar, metode knuth Morris Pratt menyimpan nilai pergeseran dalam variable (i), pergeseran dilakukan sebanyak nilai (i) itu sendiri.


(49)

Gambar 3.10. Flowchart Proses Knuth morris pratt

tidak

ya tidak

Input pattern yang akan dicari Array s

Selama (in)

Selesai Output i – q;

ya Mulai

Proses Perhitungan PanjangKarakter Pattern s(m) dan

panjang karakter teks w(n)

Jika (s[q+1]==w[i+1])

qq+1 ii+1

Jika (q==m)

Jika (q==0)

II +1

Proses Geser Pola ke Kanan

ya

tidak

Array int s – output

Int, p 0 (awalan saat ini dalam s)

Int, I 0 (posisi dari karakter di w)

tidak


(50)

3.5.Perancangan Antarmuka Sistem

Untuk rancangan antar muka dari sistem yang akan dibangun menggunakan bahasa pemograman Java. Sistem akan dibangun menggunakan compiler Eclipse Luna dengan Android SDK. Handphone digunakan untuk menampilkan antar muka yang responsive (menyesuaikan dengan display perangkat, tempat aplikasi berjalan). Antar muka menggunakan 1 Menu Utama dan 4 halaman setiap antar muka :

Menu Utama

1.1Cari (System pencarian Istilah komputer) a. Pencarian

b. Tambah kata c. Kembali

1.2Tambah Kata ( sistem untuk menambahkan istilah baru) a. Simpan (melakukan penyimpanan kata dan artinya) b. Kembali (kembali ke menu utama)

1.3Tentang (Menjelaskan mengenai pembuat aplikasi) a. Kembali

1.4Bantuan (Menjelaskan mengenai penggunaan aplikasi) a. Kembali

3.5.1. Halaman Utama

Halaman utama merupakan tampilan awal yang menampati nama dari project program tersebut, ketika program dijalankan pada handphone ataupun pada emulator. Setelah tampil Dimana halaman utama ini terdiri dari beberapa tombol, yaitu tombol cari, tombol tambah kata, tombol tentang dan tombol About . Tampilan rancangan halaman utama dapat dilihat pada Gambar 3.11.

Untuk melakukan pencarian, masukkan pada tombol cari kata kemudian pilih menu kemudian akan muncul halaman dari pilihan menu.Tampilan rancangan halaman utama dapat dilihat pada Gambar 3.11.


(51)

Gambar 3.11 Rancangan Halaman Utama

Tabel 3.1. Keterangan Bagian-Bagian Rancangan Halaman Utama

NO. Jenis Objek Keterangan

1 Nama aplikasi (Edit Teks)

Judul Aplikasi yang akan dirancang.

2 Nama halaman utama Edit Teks

Sub judul aplikasi

3 Tombol cari Berisi halaman pencari 4 Tombol tambah kata Berisi halaman tambah kata

5 Tombol tentang Menu yang berisi sekilas tentang aplikasi 6 Tombol bantuan Berisi informasi bantuan pengguna aplikasi


(52)

Keterangan :

Untuk dapat menjalankan program pada emulatoreclipse atau handphone, terlebih dahulu harus membuat Android SDK dan AVD Manager, setelah selesai kemudian create AVD, kemudian buat project baru pada eclipse kemudian tentukan Project Name, Applicationa Name, Package Name, Create Activity dan Min SDK Version, setelah selesai diisi semuanya kemudian finish. Selanjutnya setelah selesai pembentukan projectpada eclipse kemudian dimulai dengan pengetikan program. Sebelum memulai pengetikan, terlebih dahulu atur pathpenyimpanan dan tentukan nama file dari proyek yang telah dibuat sebelumnya pada eclipse. Setelah selesai pengetikan kemudian simpan ke filedan buka kembali eclipse untuk menjalankan program

3.5.2. Rancangan Halaman Pencarian Kata


(53)

Halaman Pencarian Kata ini yang akan kita gunakan untuk mendapatkan istilah komputer dengan menggunakan metode algoritma Knuth-Morris-Pratt yang membantu untuk mencari kata lebih cepat. Karena algoritma ini melakukan pergeseran lebih cepat untuk membaca karakter yang dicari .

Disini menggunakan Auto Complete Text View yang berfungsi untuk memberi pilihan yang kita cari. Contohnya, jika kita mengetikkan satu kata pada google.com. saat masih mengetikkan beberapa huruf, google akan otomatis memberi beberapa pilihan untuk kita pilih, sehingga tidak perlu lagi mengetik secara lengkap.

Tabel 3.2. Keterangan Bagian-Bagian Rancangan Halaman Pencarian Kata

NO. Jenis Objek Keterangan

1 Nama Aplikasi Teks view

Judul aplikasi yang dibuat

2 Kolom kata (Edit Teks)

Tempat melakukan pencarian kata

3 Tombol cari Tombol ini akan melakukan pencarian

menggunakan menggunakan Algoritma String Matching yang akan mencari databasenya dengan fotmat .csv

4 Tombol tambah kata Tombol ini akan ke halaman tambah kata yang akan masuk ke format .csv


(54)

3.5.2. Rancangan Halaman Tambah Kata

Halaman ini Pengguna Aplikasi akan dapat menambahkan sendiri Kosa Kata yang baru agar memperkaya Istilah yang terdapat dalam Aplikasi Kamus Komputer.

Gambar 3.13 Rancangan Halaman Tambah Kata

Tabel 3.3. Keterangan Bagian-Bagian Rancangan Tambah Kata

NO. Jenis Objek Keterangan

1 Teks View Keterangan nama pada kolom kata 2 Kolom kata

(Edit Teks)

Tempat melakukan pencarian kata

3 Tombol cari Tombol ini akan melakukan pencarian

4 Tombol simpan Tombol ini akan melakukan penyimpanan ke dalam format .csv


(55)

3.5.2. Rancangan Halaman Tentang

Rancangan halaman Tentang ini berfungsi menampilkan informasi tentang Aplikasi Kamus Komputer. Rancangan About dapat dilihat pada Gambar 3.14.

Gambar 3.14. Rancangan Halaman Tentang Aplikasi

Tabel 3.4. Keterangan Bagian-Bagian Rancangan Tentang Aplikasi

NO. Jenis Objek Keterangan

1 Teks view Judul halaman tentang

2 Edit Teks Keterangan pada halaman tentang 3 Tombol kembali Akan kembali ke halaman utama


(56)

3.6.4. Rancangan Halaman Bantuan

Rancangan Halaman Bantuan ini akan menginformasikan bagaimana cara menggunakan Aplikasi Kamus komputer tersebut kepada setiap pengguna yang akan mencari kata atau istilah komputer.

Gambar 3.15. Rancangan Rancangan Tampilan Bantuan

Tabel 3.5. Keterangan Rancangan Tampilan Bantuan

NO. Jenis Objek Keterangan

1 Teks view Judul halaman Bantuan

2 Edit Teks Keterangan pada halaman Bantuan 3 Tombol kembali Akan kembali ke halaman utama


(57)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Pengujian Sistem

Pencarian istilah dalam kamus komputer dirancang akan menggunakan algoritma string matching sebagai solusi dalam pencarian istilah berdasarkan isi Kamus, berhubung isi kamus komputeryang sangat banyak, maka sangat sulit untuk merealisasikan penyajian arti dari istilah berdasarkan isi Kamus komputer secara keseluruhan karena terbatasnya ukuran layar handphone yang berbasis Android. Oleh karena itu pada implementasi algoritma string matching untuk pencarian istilah dalam kamus komputer diharapkan dapat menyelesaikan masalah tersebut, dimana dalam algoritma string matching penyajian arti dari istilah lebih sedikit karena adanya proses seleksi sampai ditemukan istilah berdasarkan isi kamus itu sendiri dengan menggunakan kata kunci.Dalam algoritma string matching, pencarian string dirumuskan sebagai berikut:

1. Sebuah teks(text), yaitu sebuah long string yang panjang n karakter

2. Pattern, yaitu sebuah string dengan panjang m karakter (m<n) yang akan dicari dalam text.

Dalam algoritma pencocokan string, teks diasumsikan berada dalam memori, sehingga bila kita mencari string di dalam sebuah arsip, maka semua isi arsip perlu dibaca terlebih dahulu kemudian disimpan didalam memory. Jika pattern muncul lebih dari sekali didalam teks, maka pencarian hanya akan memberikan keluaran berupa lokasi pattern ditemukan pertama kali.

Algoritma Knuth , Morris dan Pratt memanfaatkan informasi yang diperoleh dengan perbandingan simbol sebelumnya. Ini tidak pernah kembali membandingkan simbol teks yang telah cocok simbol pattern.Ada beberapa definisi yang perlu dipahami pada algoritma ini: Misalkan A adalah alfabet dan x = x1x2…xk adalah string yang panjangnya k yang dibentuk dari karakter-karakter di dalam alfabet A.


(58)

Awalan (prefix) dari x adalah upa-string (substring) u dengan u = x1x2…xj – 1 , j є{1, 2, …, k}

dengan kata lain, x diawali dengan u.

Akhiran (suffix) dari x adalah upa-string(substring) u dengan u = xj – b xj – b + 1 …xk , j є {1, 2, …, k}

dengan kata lain, x di akhiri dengan v.

Pinggiran (border) dari x adalah upa-string r sedemikian sehingga r = x1x2…xj – 1

dan

u = xj – b xj – b + 1 …xj , j є {1, 2, …, k}

dengan kata lain, pinggiran dari x adalah upastring yang keduanya awalan dan juga akhiran sebenarnya dari x.

Misalkan A adalah alfabet dan x = x0 ..., bilangan elemen k - 1 xk serangkaian panjang k atas A. Sebuah awalan x adalah substring u dengan u = x0 ... xb - 1 di mana b elemen {0 , ... , k} yaitu x dimulai dengan u. Sebuah akhiran x adalah substring u dengan u = xk - b ... xk - 1 di mana b elemen {0 , ... , k}

yaitu x berakhir dengan u.

Sebuah awalan u x atau akhiran u x disebut awalan yang tepat atau akhiran, masing-masing, jika equalx Unot, yaitu jika panjang b kurang dari k.

Sebuah perbatasan x adalah r substring dengan r = x0 ... xb - 1 dan r = xk - b ... xk - 1 di mana b elemen {0 , ... , k - 1}

Sebuah perbatasan x adalah substring yang baik awalan yang tepat dan akhiran yang tepat x. Kami menyebutnya panjangnya b lebar perbatasan.

Contoh: Misalkan x = Abacab. Awalan yang tepat x adalah ε, a, ab, aba, Primero, abaca

Akhiran yang tepat x adalah ε, b, ab, taksi, ACAB, bacab Perbatasan x adalah


(59)

Perbatasan ε memiliki lebar 0, perbatasan ab memiliki lebar 2. The string kosong ε selalu perbatasan x, untuk semua x elemen A +. String kosong ε sendiri tidak memiliki perbatasan.

Contoh berikut menggambarkan bagaimana jarak pergeseran algoritma Knuth - Morris - Pratt ditentukan dengan menggunakan gagasan perbatasan string.

contoh :

0 1 2 3 4 5 6 7 8 9... a b c a b c a b d a b c a b d a b c a b d

Simbol pada posisi 0,...,4 telah dicocokkan. Perbandingan c - d pada posisi 5 menghasilkan ketidakcocokan. Pattern bisa digeser oleh 3 posisi, dan perbandingan yang kembali pada posisi 5.

Jarak pergeseran ditentukan oleh perbatasan terluas dari awalan pencocokan p. Dalam contoh ini , awalan pencocokan abcab , panjangnya j = 5. Perbatasan terluas adalah ab lebar b = 2. Jarak shift j - b = 5-2 = 3.

Pada tahap preprocessing, lebar perbatasan terluas setiap awalan dari pattern ditentukan. Kemudian pada tahap pencarian, jarak pergeseran dapat dihitung sesuai dengan awalan yang cocok .

Teorema : Biarkan r, s menjadi perbatasan string x, di mana | r | < | s |. Maka r adalah perbatasan s.

Bukti : Gambar 1 menunjukkan string x dengan batas r dan s. Karena r adalah awalan dari x, juga merupakan awalan yang tepat s, karena lebih pendek dari s. Tetapi r juga merupakan akhiran x dan, oleh karena itu, akhiran yang tepat s. Dengan demikian r adalah perbatasan s


(60)

Definisi: Misalkan x berupa string dan elemen A simbol . Sebuah r perbatasan x dapat diperpanjang oleh , jika ra adalah perbatasan xa .

Gambar 4.2. Perpanjangan Perbatasan

Gambar 4.2 menunjukkan bahwa r perbatasan j lebar x dapat diperpanjang oleh , jika xj = a .

Pada tahap preprocessing array b panjang m + 1 dihitung . Setiap entri b [ i ] berisi lebar perbatasan terluas awalan panjang i dari pattern ( i = 0 , ... , m ) . Karena ε awalan panjang i = 0 tidak memiliki perbatasan , dan menetapkan b [ 0 ] = -1 .

Gambar 4.3 : Awalan panjang i dari pattern dengan perbatasan lebar b [ i ]

Asalkan nilai b [ 0 ], ... , b [ i ] sudah diketahui, nilai b [ i + 1 ] dihitung dengan memeriksa jika perbatasan p0 awalan ... pi - 1 dapat diperpanjang oleh simbol pi. Hal ini terjadi jika pb [ i ] = pi ( Gambar 4.3 ). Perbatasan untuk diperiksa diperoleh dalam urutan menurun dari nilai b [ i ], b [ b [ i ] ] dll

Algoritma preprocessing terdiri dari lingkaran dengan j variabel mengambil nilai-nilai ini. Sebuah perbatasan lebar j dapat diperpanjang oleh pi, jika pj = pi. Jika tidak, perbatasan berikutnya terluas diperiksa dengan menetapkan j = b [ j ]. Loop berakhir paling lambat jika tidak ada batas dapat diperpanjang ( j = -1 ).


(61)

Setelah meningkatkan j oleh pernyataan j++ dalam setiap kasus j adalah lebar perbatasan terluas dari p0 ... pi. Nilai ini ditulis untuk b[ i + 1 ] (b [ i ] setelah meningkat i dengan pernyataan i ++).

Proses Algoritma

void kmpPreprocess() {

int i=0, j=-1; b[i]=j; while (i<m) {

while (j>=0 && p[i]!=p[j]) j=b[j]; // karakter berikutnya yang tidak cocok

i++; j++;// karakter berikutnya yang tidak cocok

b[i]=j; }

}

Contoh : Untuk patternp = ababaa lebar dari perbatasan dalam array b memiliki nilai berikut . Misalnya kita telah b [ 5 ] = 3 , karena ababa awalan panjang 5 memiliki perbatasan lebar 3

.

j: 0 1 2 3 4 5 6 p[j]: a b a b a a b[j]: -1 0 0 1 2 3 1

Secara konseptual , algoritma preprocessing di atas dapat diterapkan pada string pt bukan p . Jika sampai batas lebar m dihitung saja, maka perbatasan m lebar beberapa awalan x pt sesuai dengan perbandingan dari pattern di t (asalkan perbatasan tidak self- overlapping ) ( Gambar 4.4 ) .


(62)

Hal ini menjelaskan kesamaan antara algoritma preprocessing dan algoritma pencarian berikut .

Pencarian Algoritma

void kmpSearch() {

int i=0, j=0;

while (i<n) // memindai teks dari kiri ke kanan {

while (j>=0 && t[i]!=p[j]) j=b[j]; // karakter berikutnya yang tidak cocok

i++; j++; // karakter berikutnya yang tidak cocok

if (j==m) // Apakah semua Pattern cocok?

{

report(i-j); j=b[j]; }

} }

Keterangan :

Ketika di saat loop ketidakcocokan pada posisi j terjadi ,perbatasan terluas dari awalan pencocokan panjang j dari parttern dianggap (Gambar 4.5). Melanjutkan perbandingan pada posisi b [j], lebar perbatasan, menghasilkan pergeseran daripattern sehingga perbatasan cocok. Jika lagi ketidakcocokan terjadi, perbatasan berikutnya terluas dianggap, dan seterusnya, sampai tidak ada batas kiri (j = -1) atau simbol berikutnya perbandingan. Kemudian kita memiliki awalan pencocokan baru dari pattern dan lanjutkan dengan while loop luar.


(63)

Gambar 4.5 : Pergeseran Pattern Ketika Ketidakcocokan Pada Posisi j Terjadi

Jika semua simbol m dari pattern telah dicocokkan jendela teks yang sesuai (j = m), laporan fungsi disebut untuk melaporkan perbandingan di posisi ij. Setelah itu, pattern digeser sejauh perbatasan terluas memungkinkan.

Pada contoh berikut perbandingan yang dilakukan oleh algoritma pencarian yang ditampilkan, di mana perbandingan diambil dalam warna hijau dan ketidaksesuaian merah.

Contoh:

0 1 2 3 4 5 6 7 8 9 ... a b a b b a b a a

a b a b a c

a b a b a c

a b a b a c

a b a b a c

a b a b a c

Contoh pada aplikasi pada kamus Komputer : Teks : FAST ETHERNET

Pattern : THER

Teks :

F A S T E T H E R N E T


(64)

T H E R

Langkah 1:

F A S T E T H E R N E T

Pattern[1] tidak cocok dengan Teks[1], maka digeser satu langkah ke kanan.

Langkah 2:

F A S T E T H E R N E T

Pattern[1] tidak cocok dengan Teks[2], maka digeser 1 karakter ke kanan.

Langakah 3:

F A S T E T H E R N E T

Pattern[1] tidak cocok dengan Teks[3], maka Pettern digeser satu karakter ke kanan. Langkah 4:

F A S T E T H E R N E T

T H E R

T H E R

T H E R


(65)

Pattern[1] cocok dengan Teks[4], maka dilanjutkan membandingkan Pattern[2] dengan Teks[5].

Langkah 5:

F A S T E T H E R N E T

Pattern[2] ternyata tidak cocok dengan Teks[5]. Maka Pencocokan selanjutnya dimulai lagi dari Pattern[1] dengan membandingkan Pattern[1] dengan Teks[6].

Langkah 6:

F A S T E T H E R N E T

Pattern[1] cocok dengan Teks[6], maka Patterntidak melakukan pergeseran dan selanjutnya membandingkan Pattern[2] dengan Teks[7].

Langkah 7:

F A S T E T H E R N E T

Pattern[2] cocok dengan Teks[7], maka dilanjutkan membandingkan Pattern[3] dengan Teks[8].

Langkah 8:

F A S T E T H E R N E T

Pattern[3] cocok dengan Teks[8], maka dilanjutkan membandingkan Pattern[4] dengan Teks[9].

T H E R

T H E R

T H E R


(66)

Langkah 9:

F A S T E T H E R N E T

Pattern[4] cocok dengan Teks[9], maka pencocokan berhenti karena Patternyang dicari telah cocok dengan Teks sehingga terbentuk pattern kata di Teks sesuai dengan Pattern. Pencocokan berhenti meskipun karakter dalam Teks belum habis.

Berdasarkan contoh di atas maka dapat disimpulkan bahwa informasi yang digunakan untuk melakukan pergeseran adalah berdasarkan hitungan ketidak cocokan Pattern dari kiri pada Teks.

Adapun potongan script pada Eclipse yang digunakan untuk algoritma KMP string matching sebagai berikut:

KMP.java

package com.indah.kmp;

publicclass KMP {

publicint[] prekmp(Stringpattern) {

int[] next = newint[pattern.length()]; int i=0, j=-1;

next[0]=-1;

while (i<pattern.length()-1) {

while (j>=0 &&pattern.charAt(i)!=pattern.charAt(j)) j = next[j];

i++; j++; next[i] = j; }

return next;


(67)

}

publicint kmp(String text, Stringpattern) { int[] next = prekmp(pattern);

int i=0, j=0;

while (i<text.length()) { while (j>=0 &&

text.charAt(i)!=pattern.charAt(j))

j = next[j]; i++; j++;

if (j==pattern.length()) return

i-pattern.length();

}

return -1; }

}


(68)

4.2. Implementasi Sistem

Aplikasi Kamus Komputer yang telah dirancang merupakan aplikasi kamus berbasis mobile, dimana aplikasi mobile tersebut dapat dijalankan pada handphone yang mendukung sistem operasi Android. Aplikasi kamus istilah komputer dibuat dengan menggunakan bahasa pemograman Java, dimana untuk mengetikan listing programnya digunakan Eclipse Luna yang merupakan perangkat lunak emulator dan berfungsi juga untuk menjalankan programnya.

Aplikasi Kamus Komputer juga menggunakan algoritma String Matching Knuth-Morris-Pratt untuk proses pencarian istilah didalam kamus komputer. Algoritma ini dapat memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma menggunakan informasi tersebut untuk membuat pergeseran angka lebih jauh. Dengan algoritma Knuth-Morris-Pratt ini, waktu pencarian dapat dikurangi secara signifikan yang berguna untuk melakukan pencocokan istilah.

4.2.1 Tampilan Halaman Utama

Menu utama dapat dikatakan sebagai antar muka (user interface) antara user dengan program. Menu utama menampilkan pilihan menu yang tersedia pada program. Setelah tampil dimana halaman utama ini terdiri dari beberapa tombol, yaitu tombol cari, tombol tambah kata, tombol tentang dan tombol About. Tampilan rancangan halaman utama dapat dilihat pada Gambar 4.1.


(69)

Untuk melakukan pencarian, masukkan pada tombol Cari Kata kemudian pilih menu kemudian akan muncul halaman dari pilihan menu. Tampilan rancangan halaman utama dapat dilihat pada gambar dibawah ini. Gambar Halaman Utama setelah di install kamus komputer di layar handphone.

Gambar 4.7. Halaman Utama

4.2.2. Tampilan Halaman Cari Kata

Halaman Cari Kata ini adalah Halaman untuk melakukan pencarian terhadap istilah yang ingin diketahui maknanya pada kamus komputer. Pada saat melakukan pencarian yang digunakan yaitu dengan menggunakan Algoritma String Maching Knuth-Morris-Pratt. Algoritma ini akan melakukan pergeseran lebih jauh untuk mendapatkan teks yang cocok. Algoritma Pencarian dalam Knuth-Morris-Pratt (KMP). Pada algoritma Pencarian ini menjelaskan tahapan bagaimana algoritma


(70)

Knuth-Morris-Prattmelakukan proses pencocokan kata di dalam Patterndengan karakter di dalam sebuah Text, sampai dijumpai kecocokan kata yang dicari.

Dengan adanya fungsi Auto Complete Text View dapat memberi pilihan yang kita cari. Disini contohnya ingin mencari istilah “Access Server” pada saat mengetik 2 huruf. Maka akan muncul secara auto istilah yang sudah tersimpan di dataset

sebelumnya. Dengan begitu akan otomatis memberi beberapa pilihnya untuk kita pilih, sehingga tidak perlu lagi mengetik secara lengkap. Seperti gambar 4.3. adapun potongan Script pada fungsi autocomplete adalah sebagai berikut.

String[] kata = listkata.toArray(new String[listkata.size()]);

ArrayAdapter adapter = new ArrayAdapter

(this,android.R.layout.simple_list_item_1,kata);

actv = (AutoCompleteTextView)

findViewById(R.id.autoCompleteTextView1);

actv.setAdapter(adapter);


(71)

Gambar 4.8. Contoh Fungsi Autocomplete

Maka setelah menggunakan fungsi Auto-Complete maka kita akan menggunakan tombol cari untuk mendapatkan informasi maknanya. Pada Halaman ini juga menyediakan Tombol Tambah Kata yaitu tombol ketika kita klik akan menuju ke tampilan Halaman Tambah Kata. Jika Ingin kembali pada Halaman Utama telah disediakan tombol Kembali.

4.2.3. Tampilan Halaman Tambah Kata

Halaman ini pengguna Aplikasi akan dapat menambahkan sendiri Kosa Kata yang baru agar memperkaya Kata atau Istilah yang terdapat dalam Aplikasi Kamus


(72)

Komputer.Disini kosa kata yang ditambah akan otomatis berada di file .csv yang akan menyimpan setiap kata atau istilah yang di inputkan.

Gambar 4.9. Halaman Tambah Kata

4.2.4. Tampilan Dataset .CSV

Pada rancangan Aplikasi ini penulis memasukkan 200 kata atau istilah di Notepad ++ dengan format .CSV. Pada dataset ini akan secara otomatis bisa menambahkan istilah baru saat berada di halaman Tambah Kata. Pada dataset ini mempunyai ketentuan bahwa file akan terbaca jika penulisannya satu baris tanpa space di dalam kerjaku.csv. Dapat dilihat pada gambar berikut :


(73)

Gambar 4.10. Penyimpanan Kata atau Istilah Komputer

Disamping itu file kerjaku.csv berada didalam folder “contoh” yang akan dipanggil dari tempat penyimpanan eksternal. Pada saat melakukan proses pencarian digunakan juga fungsi autocompete saat memanggil dataset .csv untuk menemukan kata atau islilah pada kamus komputer tersebut. Adapun potongan script yang digunakan sebagai berikut:

File fl = new File(Environment.getExternalStorageDirectory() + "/contoh");

String ck = fl.toString()+"/"+"kerjaku.csv";

BufferedReader br = null;

String line = "";

String cvsSplitBy = "#";


(74)

4.2.5. Tampilan Halaman Tentang

Rancangan halaman Tentang ini berfungsi menampilkan informasi tentang aplikasi kamus Komputer. Rancangan About dapat dilihat pada Gambar berikut.


(1)

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button_cari" android:layout_centerVertical="true"

android:height="80dp"

android:text="Tentang Aplikasi" android:width="120dp" />

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button_cari" android:layout_alignParentTop="true"

android:layout_alignRight="@+id/button_tambah" android:gravity="center"

android:layout_marginTop="28dp"

android:text="KAMUS ISTILAH KOMPUTER"

android:textAppearance="?android:attr/textAppearanceMediu m" />

</RelativeLayout>

tambah_kata.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/addkamus" android:orientation="vertical">

<Button

android:id="@+id/btn2"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="24dp" android:layout_marginRight="27dp" android:text="Kembali" />

<EditText

android:id="@+id/edarti"

android:layout_width="match_parent" android:layout_height="wrap_content"


(2)

android:layout_alignBottom="@+id/btncari" android:layout_alignLeft="@+id/textView3" android:layout_alignRight="@+id/btn2" android:layout_marginBottom="57dp" android:ems="10">

<requestFocus /> </EditText>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kata"

android:textColor="#FF6600" android:textSize="27sp" android:textStyle="bold"

android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="18dp" android:layout_marginTop="26dp"

android:textAppearance="?android:attr/textAppearanceMediu m" />

<EditText

android:id="@+id/edkata"

android:layout_width="match_parent" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView3" android:layout_alignRight="@+id/edarti" android:layout_below="@+id/textView2" android:layout_marginTop="27dp"

android:ems="10" /> <TextView

android:id="@+id/textView3"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView2" android:layout_below="@+id/edkata"

android:layout_marginTop="26dp" android:text="Arti"

android:textSize="27sp" android:textStyle="bold" android:textColor="#FF6600"

android:textAppearance="?android:attr/textAppearanceMediu m" />


(3)

<Button

android:id="@+id/btncari" android:layout_width="146dp"

android:layout_height="wrap_content" android:layout_above="@+id/btn2"

android:layout_alignLeft="@+id/textView3" android:layout_marginBottom="76dp"

android:text="Simpan" /> </RelativeLayout>

Tentang.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/tentang" android:orientation="vertical"

android:singleLine="false"> <TextView

android:id="@+id/textView1"

android:layout_width="match_parent" android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMediu m" />

android:text="Tentang Aplikasi Komputer"

<TextView

android:id="@+id/textView2"

android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="35dp"

android:layout_weight="0.11"

android:text="Kamus Istilah Komputer ini yaitu sebuah alat bantu bagi manusia untuk mendapatkan arti dari suatu kata atau istilah yang biasanya disusun berdasarkan abjad sehingga akan lebih mudah mengetahui makna dari istilah komputer. Dengan menggunakan perangkat teknologi mobile device berbasis android sebagai alat yang lebih praktis karena sifatnya portable sehingga memudahkan bagi yang ingin mendapatkan informasi mengenai Istilah komputer." />


(4)

<Button

android:id="@+id/button1"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="47dp"

android:text="Kembali" /> </RelativeLayout>

Bantuan.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bantuan" android:orientation="vertical">

<TextView

android:id="@+id/textView2"

android:layout_width="match_parent" android:layout_weight="0.00"

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceLarge " />

android:text="Bantuan Menggunakan Aplikasi"

<TextView

android:id="@+id/textView1" android:layout_width="228dp"

android:layout_height="wrap_content"

android:text="1. Instal KMP.apk pada handpone Android. 2. lalu buka aplikasi KMP3. Terdapat 4 menu tombol pada Halaman Utama 4. Tombol CARI KATA yaitu halaman untuk melakukan pencarian istilah komputer.5. Tombol TAMBAH KATA yaitu halaman untuk menambah kosa kata baru istilah komputer .6. Tombol TENTANG yaitu Halaman untuk

mengetahui tentang Aplikasi Komputer 7. Tombol BANTUAN yaitu Halamat untuk mendapatkan cara menggunakan

Aplikasi." /> <Button


(5)

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kembali" />

</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest

xmlns:android="http://schemas.android.com/apk/res/android "

package="com.indah.kmp" android:versionCode="1" android:versionName="1.0"> <uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="19" /> <uses-permission

android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission

android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application

android:allowBackup="true"

android:icon="@drawable/iconbaru" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity

android:name=".MainActivity"

android:label="@string/app_name"> <intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter> </activity>

<activity

android:name=".TambahKata"

android:label="@string/app_name"> </activity>


(6)

<activity

android:name=".CariKata"

android:label="@string/app_name"> </activity>

<activity

android:name=".Tentang"

android:label="@string/app_name"> </activity>

</application> </manifest>