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
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
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,
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,
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
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
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.
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 .
DAFTAR ISI
halaman
Persetujuan ii
Pernyataaan iii
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
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
DAFTAR TABEL
halaman
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
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 .
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,
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
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
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
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
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
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
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.
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] }
Fungsi tersebut akan menghasilkan output berupa array integer yang merupakan
angka-angka pinggiran untuk setiap posisi iterasi pada pattern. Barulah kemudian
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
Telah itu kita kembali membandingkan karakter per karekter seperti di proses
sebelumnya sampai kita menemukan teks yang sama dengan pattern hingga karakter
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
while (i n and not ketemu) do
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
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
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
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
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.
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)
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
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
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:
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
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
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
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
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
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
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
3.4.1. Flowchart System
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
Gambar 3.10. Flowchart Proses Knuth morris pratt
tidak
ya tidak
Input pattern yang akan dicari Array s
Selama (in) PanjangKarakter Pattern s(m) dan
panjang karakter teks w(n)
Jika (s[q+1]==w[i+1])
Proses Geser Pola ke Kanan
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
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
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
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
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
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.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
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
• 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
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
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
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
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 ) .
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
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 pada aplikasi pada kamus Komputer :
Teks : FAST ETHERNET
Pattern : THER
Teks :
F A S T E T H E R N E T
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
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