• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Knuth-Morris Pratt String Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android"

Copied!
16
0
0

Teks penuh

(1)

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.

(2)

2.2 String

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 pattern pada 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 pattern dinyatakan dengan m.

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

(3)

2.2.2 Algoritma Knuth Morris Pratt String Matching

Algoritma Knuth Morris Pratt merupakan salah satu algoritma yang sering digunakan untuk menyelesaikan masalah pencocokan string. Algoritma ini adalah penyempurnaan dari algoritma pencocokan string dengan menggunakan algoritma brute force. Pada algoritma brute force, setiap kali ditemukan ketidak cocokan pattern dengan teks, maka pattern akan 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 untuk melakukan pergeseran yang lebih jauh, tidak seperti brute force yang melakukan 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

(4)

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] }

(5)

2.2.4 Fungsi Pembandingan String

Kemudian cara untuk melakukan pencocokan string dengan menggunakan algoritma Knuth Morris Pratt adalah sebagai berikut. Misal kita akan mencocokan teks T = abcabcabd dan kita mempunyai pattern P = 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 pattern yaitu 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 pattern ditentukan 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 awal pattern. ( 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

(6)

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 = -

procedure HitungPinggiran(input m :

integer, P : array[1..m] of char,

output b : array[1..m] of integer)

{ Menghitung nilai b[1..m] untuk

(7)

while (i n and not ketemu) do

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 string secara tepat dengan susunan karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama. Contoh : kata step akan menunjukkan kecocokan hanya dengan kata step.

(8)

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

a. Pencocokan string berdasarkan kemiripan penulisan (approximate string matching) merupakan pencocokan string dengan dasar kemiripan dari segi penulisannya (jumlahah karakter, susunan karakter dalam dokumen).Tingkat kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah string yang 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 string tersebut dikatakan cocok.

b. Pencocokan string berdasarkan kemiripan ucapan (phonetic string matching) merupakan pencocokan string dengan dasar kemiripan dari segi pengucapannya meskipun ada perbedaan penulisan dua string yang 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 string dalam dokumen yang sama persis dengan string masukan. Tetapi jika pengguna menginginkan pencarian string yang mendekati dengan string masukan atau terjadi kesalahan penulisan string masukan maupun dokumen objek pencarian, maka inexact string matching yang bermanfaat.

(9)

2.3 Mobile Device

Mobile Device merupakan suatu alat yang digunakan oleh pemakai 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 mobile atau mobile device lebih praktis karena bersifat mudah dibawa (portable) daripada perangkat teknologi lainnya. (Agus, 2011)

Meningkatnya pemakaian peranti mobile (mobile device) 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 mobile sudah 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. Mobile device dapat dibagi berdasarkan jumlah kegunaannya menjadi dua jenis yaitu:

1. Single purpose

Mobile device dengan single purpose digunakan untuk satu tujuan saja. contoh:

navigation box yang terdapat pada mobil atau truk pengangkut barang. 2. Multi purpose

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

(10)

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

(11)

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)

(12)

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)

(13)

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

(14)

Gambar 2.1. Android Architecture

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

(15)

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 (namun beberapa 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-kutipan muncul di dalam lapangan harus melarikan diri dengan mendahului dengan kutipan ganda lain. Sebagai contoh:

(16)

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)

Gambar

Tabel 2.1 Fungsi Pinggiran Untuk Pattern abcabd
Gambar 2.1.  Android Architecture

Referensi

Dokumen terkait

Sekali-sekali pasien akan mengalami rasa napas yang pendek (seperti orang yang kelelahan) dan bukanya tekanan pada substernal.Sekali-sekali bisa pula

Konsep ancaman digunakan dalam tulisan ini untuk memberikan deskripsi ancaman terhadap Indonesia terkait permasalahan peredaran senjata konvensional ilegal yang

Berdasarkan hasil pengujian hipotesis uji F dengan melihat model fit menunjukkan bahwa variabel independen rasio profitabilitas, solvabilitas dan likuiditas berpengaruh

Sebuah skripsi yang diajukan untuk memenuhi salah satu syarat memperoleh gelar sarjana pada Fakultas Pendidikan Bahasa dan Sastra. ©Rima Puspasari 2016 Universitas

Dalam pelaksanaan siklus I yaitu 3 pertemuan yaitu pertemuan pertama guru membuka pelajaran, mempresensi, apersepsi dan motivasi. Guru menjelaskan kepada siswa

(3) Pelayanan Terpadu pada masing-masing lembaga yang temlasuk dalam sistent pelal'anan terpadu bersilat mengikat instansi, lembaga dan organisasi untuk melakukall

Kepada mahasiswa disampaikan pem- belajaran dengan urutan (1) fungsi atap dan elemen atap; (2) pendidikan karakter: pentingnya kerjasama di dalam tim sama

Tujuan dari Penelitian ini adalah, untuk menghasilkan soal-soal open-ended yang valid dan praktis pada pokok bahasan segitiga dan segiempat di SMP, serta untuk melihat