IMPLEMENTASI ALORITMA KMP (KNUTH MORRIS PARTT) DALAM PENCOCOKAN STRING DALAM APLIKASI PONS ASINORUM...

21
IMPLEMENTASI ALORITMA KMP (KNUTH MORRIS PARTT) DALAM PENCOCOKAN STRING DALAM APLIKASI PONS ASINORUM (JEMBATAN KELEDAI) Oleh : Candra Robiansyah 125150102111001 KEMENTRIAN PENDIDIKAN DAN KEBUDAYAAN UNIVERSITAS BRAWIJAYA PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER MALANG 2015

Transcript of IMPLEMENTASI ALORITMA KMP (KNUTH MORRIS PARTT) DALAM PENCOCOKAN STRING DALAM APLIKASI PONS ASINORUM...

IMPLEMENTASI ALORITMA KMP (KNUTH MORRIS PARTT)

DALAM PENCOCOKAN STRING DALAM APLIKASI PONS

ASINORUM (JEMBATAN KELEDAI)

Oleh :

Candra Robiansyah

125150102111001

KEMENTRIAN PENDIDIKAN DAN KEBUDAYAAN

UNIVERSITAS BRAWIJAYA

PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER

MALANG

2015

2

LEMBAR PENGESAHAN

Implementasi Algoritma KMP (Knuth Morris Pratt) dalam

Pencocokan String Pada Aplikasi Pons Asinorum (Jembatan

Keledai)

Bidang Keminatan Kecerdasan Buatan

CANDRA ROBIANSYAH

125150205111004

Malang, 24 April 2015

Dosen Pembimbing I, Dosen Pembimbing II,

Mengetahui

Ketua Program Studi Informatika/Ilmu Komputer,

Mardji, Drs., M.T

NIP. 19670801 199203 1 001

3

PERNYATAAN ORISINALITAS

Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan saya, di dalam naskah proposal skripsi ini tidak terdapat karya ilmiah yang pernah diajukan oleh orang lain untuk memperoleh gelar akademik di suatu perguruan tinggi, dan tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis disitasi dalam naskah ini dan disebutkan dalam daftar pustaka.

Apabila ternyata didalam naskah skripsi ini dapat dibuktikan terdapat unsur-unsur plagiasi, saya bersedia skripsi ini digugurkan dan gelar akademik yang telah saya peroleh (sarjana) dibatalkan, serta diproses sesuai dengan peraturan perundang-undangan yang berlaku (UU No. 20 Tahun 2003, Pasal 25 ayat 2 dan Pasal 70).

Malang, 31 Mei 2015

Candra Robiansyah

NIM: 125150102111001

4

Daftar Isi

BAB I ……………………………………………………4

PENDAHULUAN ……………………………………………………4

1.1 Latar Belakang ……………………………………………………4

1.2 Rumusan Masalah ……………………………………………………6

1.3 Batasan Masalah ……………………………………………………6

1.4 Tujuan ……………………………………………………6

1.5 Manfaat ……………………………………………………7

1.6 Sistematika penulisan ……………………………………………………7

BAB II ……………………………………………………8

TINJAUAN PUSTAKA ……………………………………………………8

2.1 Tabel Kajian Pustaka ……………………………………………………8

2.2 Kompleksitas …………………………………………………..11

2.2.1 Definisi Kompleksitas …………………………………………………..11

2.3 Pencocokan String (String Matching) …………………………………………………..11

2.3.1 pengertian Pencocokan String …………………………………………………..11

2.3.2 Klasifikasi Pencocokan String …………………………………………………..12

2.4 KMP (Knuth Morris Pratt) …………………………………………………..13

BAB III …………………………………………………..15

METODOLOGI PENELITIAN …………………………………………………..15

3.1 Studi Literatur …………………………………………………..15

3.2 Pengumpulan Data …………………………………………………..16

3.2.1 Wawancara …………………………………………………..16

3.2.2 Kuisoner …………………………………………………..16

3.3 Analisa dan Perancangan …………………………………………………..16

3.3.2 Kerangka Konseptual …………………………………………………..16

3.3.1 Analisis Sistem …………………………………………………..17

3.3.2 Analisis Kebutuhan …………………………………………………..18

5

BAB I

PENDAHULUAN

1.1 Latar Belakang

Banyak anggapan bahwa ingatan manusia itu ibarat sebuah memori yang berfungsi untuk mendapatkan sebuah informasi dan melibatkan otk untuk menyimpan informasi tersebut.Ingatan tersendiri dibahas dalam ilmu psikologi dan ilmu syaraf. Pada umumnya para ahli memandang ingatan sebagai hubunggan pengalaman dan masa lampau.Apa yang pernah diingat pasti adalah hal yang mereka alami,pernah di masukkan kedalam jiwanya dan disimpan sehinga mengakar kuat didalam otak dan apabila ada hal yang bersangkut paut dengan pengalamannya tersebut makan akan secara otomatis pengalam tersebut akan dibangkitkan.ingatan merupakan kemampuan untuk menyimpan dan menimbulkan kembali apa yang pernah di simpan dan dialami dalam otak kita.

Otak juga merupakan fungsi untuk mengontrol pengendalian tubuh,bukan hanya berfikir,otak juga berinteraksi,bekerja memerintah anggota tubuh lainnya dalam suatu kegiatan.Seandainya paru-paru atau bahkan jantung anda berhenti bekerja untuk beberapa menit / detik anda masih dapat bertaha hidup.Namun apabila otak anda berhenti bekerja dalam satu detik saja,maka dapat dipastikan tubuh anda akan mati.Itulah sebabnya mengapa otak disebut sebagai organ vital.

Secara umum otak manusi terbagi menjadi 2 bagian,yaitu otak kanan dan otak kiri dan fungsi keduanya berbeda.Otak kanan sering di identikkan dengan kreatifitas yang sering halnya dimiliki oleh seorang seniman.Sedangkan otak kiri biasa di identikkan dengan kecerdasan analitik.Biasanya otak kiri ini sangat bermanfaat dalam memahami hal-hal yang kompleks dan perlu pemikiran yang mendetail.Orang yang biasanya mengandalkan otak kiri adalah seorang peneliti atau scientist.

Dengan otak yang telah diberikan oleh Yang Maha Kuasa kita bias berfikir, bersosialisasi, berkomunikasi dan menggingat segala kejadia yang telah kita lewati.Benar apa yang dikatakan oleh Albert Enstain dan para ahli yang lainnya mengenai otak manusia.Menurut mereka manusia hanya menggunakan 10% dari kemampuan otak mereka.Untuk itu keseimbangan antara otak kiri dan otak kanan sangat dibutuhkan jika kita ingin mengoptimalka kerjanya.Otak yang bekerja secara sinergis akan mempunyai kapasitas jauh lebih besar dari otak yang hanya berkembang sebelah.

Begitupun saat kita mengigat hal-hal yang tidak pernah kita lakukan maka kita akan mudah melupakannya.Ingatan alami manusia sulit untuk menerima sesuatu tidak menarik untuk diingat.Dimana pada asumsinya ingatan manusi terdiri dari ingatan Alami dan ingatan Buatan.Ingatan alami adalah ingatan manusia yang dibawah sejak dia dilahirkan dan telah menjadi kebiasaan-kebiasaan yang sering dilakukan,Sedangkan ingatan buatan bias dibangun dengan belajar dan bias di latih menggunakan teknik jembatan keledai

6

Asal mula jembatan keledai sendiri, menurut Papi Ray di majalah elektronik Papyrus,diambil dari bahasa belanda : Ezelbrug atau Ezelbruggetje. Ezel - keledai, kuldi, brug / bruggetje - jembatan / jembatan kecil. Konon kata ini diambil dari ungkapan bahas Latin yang sudah biasa dipakai di jaman pertengahan.

Pons Asinorum (jembatan para keledai) dinamakan demikian, karena menurut pengamatan, agar keledai dapat sampai ke tempat seberang dia hanya memerlukan blabag atau batang kayu yang kecil, dan dengan jembatan kecil ini dia bisa sampai ke tujuan. Dalam hal menghafalkan sesuatu, membuat kunci ingatan kepada apa yang harus diingat dapat ditolong dengan membuat "jembatan keledai ini". Istilah Inggris yang sekarang dipakai ialah mnemonic device, sarana untuk mengingat-ingat sesuatu.

Jembatan keledai bisa digunakan untuk mengingat daftar yang panjang dan sulit diingat hanya dengan ingatan alami, misalnya dalam mengingat unsur kimia, anatomi, taksonomi, tata bahasa dan rumus matematika.

Dengan jembatan keledai itu, menghafalkan sesuatu memang menjadi gampang. Tapi yang sulit justru saat kita membuatnya.

7

1.2 Rumusan Masalah

Berdasarkan uraian latar belakang diatas, maka dapat dirumuskan permasalahan pada penelitian ini yaitu sebagai berikut :

1. Bagaimana merancang aplikasi jembatan keledai yang sangat membatu kebutuhan menghafal Suatu kata yang sulit kita ingat.

2. Bagaimana membentuk kata / kalimat yang unik untuk di hafal ?

3. Bagaimana kompleksitas algoritma KMP (Knuth Morris Pratt) dalam penerapan aplikasi Jembatan Keledai

1.3 Batasan Masalah Agar permasalahan yang dirumuskan dapat lebih terfokus dan tidak meluas, maka

batasan-batasan yang ditentukan pada penelitian ini yaitu:

1. Metode yang digunakan untuk menyusun kalimat berdasarkan SPOPK (Subyek Predikat

Objek Pelengkap Keterangan).

2. Menggunakan algoritma KMP (Knuth Morris Pratt) dalam matching untuk mencocokkan huruf dalam text yang di inputkan dengan petern.

3. Inputan yang mau kita hafalkan berbentuk kata maksimal 12 kata .

4. Petern yang digunakan untuk matching menggunakan bahasa indonesia

5. Petern yang digunakan dikategorikan berdasarkan SPOPK.

6. Database yang digunakan dalam pembuatan aplikasi ini adalah mySQL.

7. Aplikasi ini dibuat berbasis Web .

1.4 Tujuan

Tujuan dari penelitian ini adalah untuk merancang aplikasi Pons Asinorum (Jembatan Keledai) Yang digunakan untuk menghafal berbasis android serta mengimplementasikan algoritma string matching yaitu KMP (Knuth Morris Pratt) .

1.5 Manfaat Penulisan penelitian ini diharapkan mempunyai manfaat yang baik dan berguna bagi

semua orang khususnya para pelajar. Adapun manfaat yang diharapkan adalah sebagai berikut:

1. Penulis dapat menerapkan ilmu yang didapatkan dalam perkuliahan untuk membantu Permasalahan pelajar khususnya.

2. Penulis dapat secara langsung mendalami materi khususnya algoritma matching

8

terutama algoritma KMP (Knuth Morris Pratt) dalam melakukan pencocokan string.

3. Mempermudah menghafal suatu kalimat yang asing bagi kita sehingga mendapatkan pola yang mudah untuk kita hafalkan.

1.6 Sistematika penulisan

Sistematika penulisan dalam skripsi ini sebagai berikut:

BAB I Pendahuluan

Memuat latar belakang, rumusan masalah, tujuan, batasan masalah, manfaat dan sistematika penulisan.

BAB II Kajian Pustaka

Menguraikan tentang dasar teori dan referensi yang mendasari pembuatan aplikasi Pons Asinorum dengan menggunakan algoritma KMP (Knuth Morris Pratt).

BAB III Metode Penelitian

Membahas metode yang digunakan dalam penelitian yang terdiri dari studi literatur, perancangan sistem perangkat lunak, implementasi sistem perangkat lunak, pengujian dan analisis, serta penulisan laporan.

9

BAB II

TINJAUAN PUSTAKA

Bab ini membahas tentang tinjauan pustaka yang meliputi kajian pustaka dan dasar teori yang diperlukan untuk penelitian. Kajian pustaka adalah membahas penelitian yang telah ada dan yang diuraikan. Dasar teori adalah membahas teori yang diperlukan untuk menyusun penelitian yang diusulkan.

Tabel 0.1 Kajian pustaka

No Peneliti Judul penelitian

Objek (Input) Metode (Proses)

Hasil (Output)

1 Thio , Rika dkk (2012).

Pembuatan Aplikasi untuk Pendeteksi Kebenaran Perintah SQL Query Menggunakan Metode KNUTH-MORRIS PRATT (KMP)

mencocokkan query yang dibuat oleh mahasiswa dengan jawaban query

yang ada pada database

Inputan: Query

Metode KMP (Knuth Morris Pratt) dalam pencocokan Query.

- Pencocokan petern dari awal teks.

- Pencocokan dari kiri ke kanan.

- Karakter perkarakter akan dicocokkan sampai kondisi berikut dipenuhi :

* Karakter di petern dan di teks yang dibandingkan tidak cocok (Mismatch).

Kecocokan antara Pattern dengan teks atau tidak ada Pettern dan teks yang cocok (Mismatch).

10

* Semua karakter di petern cocok kemudian algoritma akan memberitahu penemuan di posisi mana.

- Algoritma kemudian menggeser paterrn berdasakan table,lalu menggulanggi langkah 2 sampai pettern berada di ujung teks.

2 Efori Buulolo (2013) Implementasi Algoritma String Matching dalam Pencaran Surat dan Ayat dalam Bible Berbasis Android

Pencarian surat dan Ayat dalam Bible.

Input : surat dan ayat

Metode Algoritma KMP (Knuth Morris Pratt) dalam Pencocokan surat dan ayat.

-Memelihara informasi yang digunakan untuk memelihara kebenaran.

-Meggunakan informasi

Surat atau ayat yang dicari.

11

hitungan ketidak cocokan Pettern dari kiri teks untuk melakukan pergeseran

3 Vita Meriati Pandiangan (2015)

Implementasi Left Corner Parser pada Perancangan Aplikasi Pemeriksaan Tata Bahasa Dalam Kalimat Bahasa Indonesia

Pemeriksaan Tata Bahasa Dalam Kalimat Bahasa Indonesia.

Input : Subjek,

Predikat Objek dan Keterangan.

Metode Left Corner Parser.

-mula-mula menerima sebuah kata, menentukan jenis constituent .

Kalimat yang sesuai dengan aturan tata

bahasa yang baku.

12

2.2 Kompleksitas

2.2.1 Definisi Kompleksitas

Komplesitas merupakan kajian atau studi terhadap sistem kompleks . kata “kompleksitas” berasal dari bahasa latin complexice yang artinya ‘totalitas’ atau ‘keseluruhan’, sebuah ilmu yang mengkaji totalitas sistem dinamik secara keseluruhan (Dimitrov, 2003)

Ada dua macam kompleksitas algoritma, yaitu : kompleksitas waktu dan kompleksitas ruang.

Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n.

Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.

Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n.

Dalam praktek, kompleksitas waktu dihitung berdasarkan jumlah operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisisnya dari implementasi. Tinjau algoritma menghitung rerata pada Contoh 1. Operasi yang mendasar pada algoritma tersebut adalah operasi penjumlahan elemen-elemen ak (yaitu jumlah jumlah + ak). Kompleksitas waktu HitungRerata adalah T(n) = n.

2.3 Pencocokan String (String Matching) 2.3.1 Pengertian Pencocokan String

Pengertian string menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology (NIST) adalah susunan dari karakter-karakter (angka, alfabet atau karakter yang lain) dan biasanya direpresentasikan sebagai struktur data array. String dapat berupa kata, frase, atau kalimat (Efori Buulolo,2013).

Pencocokan string merupakan bagian penting dari sebuah proses pencarian string (string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam dokumen tergantung dari teknik atau cara pencocokan string yang digunakan. Pencocokan string (string matching) menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology (NIST), diartikan sebagai sebuah permasalahan untuk menemukan pola susunan karakter string di dalam string lain atau bagian dari isi teks.

13

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

2. Inexact string matching atau Fuzzy string matching, merupakan pencocokan string secara samar, maksudnya pencocokan string dimana string yang dicocokkan memiliki kemiripan dimana keduanya memiliki susunan karakter yang berbeda (mungkin jumlah atau urutannya) tetapi string-string tersebut memiliki kemiripanbaik kemiripan tekstual/penulisan (approximate string 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 (jumlah 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 (programmar). Contoh: c mpuler dengan compiler, memiliki jumlah 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 steb dari tulisan berbeda tetapi dalam pengucapannya mirip sehingga dua string tersebut dianggap cocok. Contoh yang lain adalah step, dengan steppe.

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. Beberapa algoritma exact string matching antara lain: algoritma KnuthMorris-Pratt, Bayer-Moore, dll. Beberapa algoritma phonetic string matching antara lain: soundex, metaphone, caverphone, phonex, NYSIIS, JaroWinkler, dll.

Dari contoh yang diberikan, sebenarnya phonetic string matching juga dapat dimanfaatkan untuk approximate string matching dengan batasan dua string yang dicocokkan masih memiliki kemiripan ucapan.

Phonetic string matching sering juga dimanfaatkan untuk approximate

14

string matching karena phonetic string matching lebih mudah diimplementasikan. Phonetic string matching banyak digunakan dalam bahasa Inggris karena dalam bahasa Inggris terdapat perbedaan antara penulisan dan pengucapan.

2.4 KMP (Knuth Morris Pratt)

Algoritma Knuth Morris Pratt (KMP) dikembangkan oleh D. E. Knuth, bersama dengan J. H. Morris dan V. R. Pratt. Untuk pencarian string dengan menggunakan algoritma Brute Force, setiap kali ditemukan ketidakcocokan pattern dengan teks, maka pattern akan digeser satu karakter ke kanan. Sedangkan pada algoritma KMP, kita memelihara in Formasi yang digunakan untuk melakukan jumlah pergeseran (Thio Wibowo, 2012).

Meskipun antara Knuth dan Pratt serta Morris menemukan algoritma secara sendiri-sendiri, namun mereka bertiga sepakat untuk mempublikasikannya secara bersama-sama, maka jadilah nama algoritma ini yang dikenal dengan algoritma Knuth-Morris-Pratt.Algoritma Knuth-Morris-Pratt atau yang sering disingkat KMP ini merupakan salah satu algoritma yang digunakan untuk mencari apakah suatu kata terdapat dalam suatu string atau kumpulan kata. Cara kerja algoritma ini sebenarnya cukup sederhana yakni dengan cara mencocokkan kata yang mau dicari dalam string atau kumpulan kata sampai seluruh huruf dalam kata yang dicari tadi menemui padanannya dalam kumpulan kata yang ada. Jika ada satu saja huruf dari kata yang dicari tidak cocok, maka proses pengecekan akan diulangi seperti semula tapi ke karakter selanjutnya yang masih mungkin bisa sesuai dengan karakter awal dari kata yang dicari. Untuk lebih jelasnya perhatikan contoh pergerakan dari proses pencarian kata berikut.

1) m : 01 23 456 7 8901 23 4 567 89 01 2 S : ABC ABCDAB ABCDABCDABDE W : ABCDABD i : 0 1 23 45 6

Ket : dari proses pertama ini bisa diketahui bahwa huruf D dari kata yang dicari tidak sama dengan karakter spasi, maka diproses selanjutnya pencocokkan akan dimulai dari kata kedua setelah spasi, sebab karakter spasi tidak mungkin menjadi awalan dari kata yang dicari yaitu ABCDABD.

2) m : 01 2345 67 8901 23 45 67 89 01 2 S : ABC ABCDAB ABCDABCDABDE W : ABCDABD I : 0 1 2 3 4 5 6

Ket : dari proses kedua ini kata yang dicari masih belum sepenuhnya cocok, maka proses dilanjutkan dengan ke karakter berikutnya yang masih mungkin cocok.

15

3) m : 01 2345 67 890 12 345 67 89 01 2 S : ABC ABCDAB ABCDABCDABDE W : ABCDABD i : 0 1 23 45 6

Ket : proses pencocokkan kata masih gagal atau tidak memenuhi kriteria kata yang dicari.

4) m : 01 2345 67 890 12 345 67 89 01 2 S : ABC ABCDAB ABCDABCDABDE W : ABCDABD i : 0 1 23 45 6

Ket : proses pencarian sekali lagi menunjukkan bahwa kata yang dicari belum semuanya cocok dengan string yang diberikan.

5) m : 01 2345 67 890 12 345 67 89 01 2 S : ABC ABCDAB ABCDABCDABDE W : ABCDABD i : 0 1 23 45 6

Ket : pada langkah kelima ini semua karakter atau huruf dalam kata yang dicari menemui padanannya pada kalimat atau string yang diberikan, maka proses berhenti dengan mengembalikan posisi dimana kata ditemukan.

16

BAB III

METODOLOGI PENELITIAN

Bab metodologi ini akan dibahas tentang metode yang digunakan dalam pembuatan aplikasi dengan menggunakan algoritma KMP (Knuth Morris Pratt). Metodologi penelitian yang dilakukan dalam penelitian ini melalui beberapa tahapan yaitu studi literatur, pengumpulan data,analisa dan perancangan, implementasi sistem, uji coba sistem, dan kesimpulan. Tahapan-tahapan dalam penelitian tersebut dapat diilustrasikan dengan blok metode penelitian. Gambar dibawah menunjukkan diagram blok metodologi penelitian.

3.1 Studi Literatur Tahapan penelitian ini membutuhkan studi literatur untuk merealisasikan pembuatan

Aplikasi Jembatan Keledai dengan menggunakan algoritma KMP. Informasi dan pustaka yang berkaitan dengan penelitian ini didapat dari, situs internet, jurnal, dosen pembimbing, dan rekan – rekan mahasiswa. Adapun teori-teori yang dipelajari tentang :

1. Pencocokan String (String Matching)

2. Algoritma KMP (Knuth Morris Pratt)

3. Teori tentang Pengurutan kata berdasarkan SPOK.

Studi literatur

Analisa dan perancangan

Pengumpulan data

kesimpulan

Uji coba Sistem

Implementasi sistem

17

3.2 Pengumpulan Data 3.2.1 Wawancara

Wawancara yang akan dilakukan penulis terutama ditunjukkan kepada pelajar atau mahasiswa yang kebanyakan kusilatan dalam hal menghafal.Tujuan wawancara adalah untuk mendapatkan metode-metode menghafal yang paling efektif.

3.2.2 Kuisoner

Penulis melakukan 2 kali kuisoner , pada setiap kuisoner penulis mengambil sample sebanyak 20 responden .

3.3 Analisa dan Perancangan

3.3.1 Kerangka Konseptual

Penelitian dimulai dari inputan string berupa kata dan dilakukan pemotongan kata minimal 2 karakter huruf dan maksimal 4 karakter untuk dilakukan matching dengan database SPOK menggunakan algoritma KMP dimana aturan bahasa SPOK disesuaikan dengan input user, jika pengguna melakukan banyak kata yang diinputkan maka semakin kompleks aturan SPOK yang akan digunakan sistem.

Input String

Pemotongan String

Memproses dengan algoritma KMP

Konfigurasi aturan SPOK

Output String / kalimat.

18

3.3.2 Analisis Sistem

Melakukan pemotongan pattern dengan syarat 1 < Pettern > 5 .Algoritma KMP mulai mencocokkan pattern (Sting input yang telah dilakukan pemotongan) pada awal teks yang ada pada database.Dari kiri ke kanan,algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:

Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).

Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan

penemuan di posisi ini.

Algoritma kemudian menggeser pattern berdasarkan tabel,lalu mengulanggi langkah 2 sampai pettern berada di ujung teks.pencocokan petern selanjutnya dan mengutamakan pencocokan pertama dilakukan di teks yang mengandung pettern pertama jika tidak ada mencari ke database dan begitu seterusnya sampai terbentuk pola kalimat / string.

Mencocokkan Pattern (String Input) pada

awal teks yang ada pada database SPOK

Pencocokan dilakukan dari kiri ke kanan

Pencocokan karakter per karakter

Mismatch / Pettern cocok

Petern berada di ujung teks

pemotongan pattern = 1 < Pettern > 5

Pembentukan kalimat SPOK.

19

3.3.3 Analisis Kebutuhan

Berdasarkan uraian system diatas kebutuhan fungsional proses sistem adalah sebagai berikut :

1. Pemotongan String. 2. Algoritma KMP (Knuth Morris Pratt). 3. Proses pembentukan kalimat berdasarkan tata bahasa SPOK.

Kebutuhan Non-fungsional sistem :

1. Kompleksitas algoritma KMP.

20

Daftar Pustaka

[1]. Siregar Ivan Michael, 2011, Mengembangkan Aplikasi Enterprise Berbasis Android, Penerbit Gava Media, Yogyakarta, Edisi I.

[2]. Syaroni M,Munir R, 2005, Pencocokan String Berdasarkan Kemiripan Ucapan(Phonetic String Matching) Dalam Bahasa Inggris, Institut Teknologi Bandung.

[3]. Hadiati Desi, 2007, Penerapan Algoritma String Matching Pada Permainan Word Search Puzzle, Institut Teknologi Bandung.

[4]. Hartoyo EG,Vebrina YG,Meilana AF, 2005, Analisis Algoritma Pencarian String(String Matching), Institut Teknologi Bandung.

[5].Tentang Alkitab di dalam Wikipedia http://id.wikipedia.org/wiki/Alkitab.htm.

[ 6]. Al-Bahra bin Ladjamudin. 2006, Analisis dan Desain Sistem Informasi. Gramedia Pustaka Utama. Jakarta. Hal: 143

[7]. Adi Nugroho. 2010. Chap.1

[8]. A.S Rosa, Salahuddin, M. 2011. Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek)

[9]. George M Scoot. 2008. Principles Of Manajement Information System. Yang diterjemahkan oleh Jogianto H.M.

[10]. Keraf Gorys. Tata Bahasa Indonesia. 1989 : 24)

[11]. Murhada, Yo Cheng Giap, Pengantar Teknologi Informasi, 2011

[12]. Utdirartatmo Firrar. 2003. Teknik Kompilasi. J&J Learning. Yogyakarta. Hal: 55

[13]. Slamet Y. 2014. Problematika Berbahasa Indonesia dan Pembelajaranya. Graha Ilmu. Yogyakarta.

[14]. Widyo. Visual Basic 2008. Cv Andi Offset. 2009. Hal: 3-22 )

[15]. http://acl.ldc.upenn.edu/E/E93/E93- 1036/jurnal.pdf , Diakses 7 Mei 2014

[16]. James Suciadi (2001) “Studi Analisis Metode-metode Parsing dan Interpretasi Semantik Pada Natural Language Processing”

[17]. http://download.portalgaruda.org/article.php? captcha=jacuaru&article=67265&val=347&ti tle=&yt0=Download%2FOpen, Diakses 7 Mei 2014

[18]. Rosalina Paramita, Dwi H.Widyantoro, Ayu Purwanrianti.” INAGP : Pengurai Kalimat Bahasa Indonesia Sebagai Alat Bantu Untuk Pengembangan Aplikasi PBA”.

[19]. Jurnal:http://www.panl10n.net/english/outputs/Indonesia/BPPT/0902/SMTFinalReport/jur

nal.pdf, Diakses 7 Mei 2014

21