Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan

dokumen-dokumen yang mirip
APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik Kompresi Data

Penggunaan Algoritma Pencocokkan Pola pada Sistem Barcode

Aplikasi Algoritma Pencocokan String pada Mesin Pencari Berita

Penilaian Ujian Tertulis Menggunakan Algoritma Pattern Matching IF3051 Strategi Algoritma

Penerapan Algoritma Knuth-Morris-Pratt dalam Music Identification (Musipedia)

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT DALAM CONTENT-BASED MUSIC INFORMATION RETRIEVAL

Algoritma String Matching pada Mesin Pencarian

PENERAPAN ALGORITMA BFS DFS DAN KNUTH-MORRIS-PRATT PADA PENCARIAN BERKAS DALAM KOMPUTER

Aplikasi String Matching Pada Fitur Auto-Correct dan Word-Suggestion

Perbandingan Algoritma String Matching yang Digunakan dalam Pencarian pada Search Engine

PENGGUNAAN ALGORITMA APOSTOLICO-CROCHEMORE PADA PROSES PENCARIAN STRING DI DALAM TEKS

String Matching Dalam Permainan The Hunt for Gollum

Penerapan Pencocokan String pada Aplikasi Kamusku Indonesia

Aplikasi Algoritma Pencocokan String dan Algoritma Runut Balik dalam Konversi Romaji ke Hangul

Penerapan String Matching Pada Auto-Correct Berbasis Algoritma Levenshtein Distance

BAB 2 LANDASAN TEORI

Penerapan Algoritma Knuth Morris Pratt dalam Aplikasi Penerjemah Teks

Aplikasi Algoritma String Matching dan Regex untuk Validasi Formulir

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penggunaan String Matching Dalam Mencari Kata Dalam Permainan Mencari Kata Dari Sebuah Matriks Huruf

Algoritma Pencocokan String dalam Permainan Hangman

Aplikasi String Matching pada Plugin SMS Blocker untuk Validasi Pesan

Penerapan Pencocokan String dalam Aplikasi Duolingo

Pattern Matching dalam Aplikasi Pencarian Jodoh

Penerapan Algoritma String Matching dalam Intelligent Personal Assistant Siri

II. DASAR TEORI I. PENDAHULUAN

Penerapan Algoritma Pencocokan String Boyer-Moore dan Knuth-Morris-Pratt (KMP) dalam Pencocokkan DNA

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Implementasi Algoritma Knuth-Morris-Pratt Pada Fungsi Pencarian Judul Tugas Akhir Repository

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

Penerapan String Matching pada Fitur Auto Correct dan Fitur Auto Text di Smart Phones

PENGGUNAAN BRUTE FORCE UNTUK MERETAS PASSWORD FILE RAR

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

ANALISIS STRING MATCHING PADA JUDUL SKRIPSI DENGAN ALGORITMA KNUTH-MORRIS PRATT (KMP)

Implementasi Algoritma Knuth Morris Pratt pada Alat Penerjemah Suara

Algoritma Exhaustive Search Dalam Permainan Congklak

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

IMPLEMENTASI PROGRAM DINAMIS DENGAN ALGORITMA NEEDLEMAN-WUNSCH PADA PENSEJAJARAN DNA DAN PROTEIN

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

BAB 2 LANDASAN TEORI

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Perbandingan dan Pengujian Beberapa Algoritma Pencocokan String

Strategi Algoritma Penyelesaian Puzzle Hanjie

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Algoritma Brute Force (lanjutan)

DETEKSI PLAGIAT DOKUMEN MENGGUNAKAN ALGORITMA RABIN-KARP

TECHNICAL REPORT PENGGUNAAN ALGORITMA PENCOCOKAN STRING BOYER-MOORE DALAM MENDETEKSI PENGAKSESAN SITUS INTERNET TERLARANG

IMPLEMENTASI ALGORITMA BREADTH FIRST SEARCH DAN STRING MATCHING PADA SISTEM PAKAR

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Perbandingan Penggunaan Algoritma BM dan Algoritma Horspool pada Pencarian String dalam Bahasa Medis

Penerapan Algoritma String Matching untuk Mendeteksi Musik Plagiat

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

Penerapan Algoritma Pencocokan String dalam Perangkat Lunak Pemblokir Akses Situs Negatif

Aplikasi String Matching dalam Analisis Cap Bibir

PENERAPAN ALGORITMA PATTERN MATCHING KNUTH-MORRIS-PRATT DALAM PROGRAM MOUSE CAM

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Algoritma Cepat Pencocokkan String

Penggunaan Algoritma Pencocokkan Pola pada Aplikasi How-Old.net

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Aplikasi Algoritma BFS dan String Matching pada Tag Suggestions di Facebook

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Algoritma Penentuan Graf Bipartit

PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT, STRING MATCHING ON ORDERED ALPHABET, dan BOYER-MOORE dalam PENCARIAN UNTAI DNA

Penerapan Algoritma Brute Force pada permainan Countdown Number

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Kombinasi Algoritma Pattern Matching dan BFS-DFS pada aplikasi Music Discovery

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Algoritma Brute Force

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Pattern Matching dalam Aplikasi SimSimi

Penggunaan Algoritma Greedy Dalam Perancangan Papan Teka Teki Silang

Deteksi Plagiarisme Gambar menggunakan Algoritma Pencocokan Pola Rabin-Karp

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT PADA MESIN PENCARI KATA UNTUK LINGKUNGAN WEBSITE MAHASISWA INFORMATIKA 2005

Algoritma Puzzle Pencarian Kata

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Implementasi Pencocokan String Tidak Eksak dengan Algoritma Program Dinamis

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

Penentuan Lokasi Pemasaran Produk dengan Media Periklanan Menggunakan Algoritma Greedy

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Transkripsi:

Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan Andri Rizki Aminulloh Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jalan Ganesha No 1 Bandung Jawa Barat e-mail: andrizki@students.itb.ac.id ABSTRAK Makalah ini akan membahasa tentang pengenalan tulisan tangan(handwriting recognition) yang dilakukan oleh sebuah komputer atau sebuah gadget sebagai aplikasi dari algoritma pencarian string Knuth-Morris-Pratt. Pengenalan tulisan tangan adalah teknologi yang sudah lama dikembangkan oleh para ahli di bidang teknologi informasi. Tetapi beberapa tahun belakangan teknologi ini kembali menjadi sorotan seiring semakin berkembang dan digemarinya device yang dilengkapi dengan layar sentuh(touchscreen). Dengan adanya layar sentuh pada device, seperti PDA, tablet PC, bahkan ponsel, maka sangat memungkinkan bagi device tersebut untuk mengenali tulisan tangan. Ditambah lagi penggunaan keyboard saat ini sudah dianggap kurang praktis oleh beberapa pengguna device-device ini terutama pada PDA dan ponsel. Algoritma Knuth- Morris-Pratt untuk pencarian string sendiri adalah algoritma pencarian string yang cukup populer dan banyak digunakan oleh para pengembang perangkat lunak. Algoritma ini sangat mangkus dan sangkil sehingga sangat baik untuk digunakan sebagai solusi dalam pencarian string. Kata kunci:. Pencarian string, pengenalan tulisan tangan 1. PENDAHULUAN Pengenalan tulisan tangan (handwriting recognition) pertama kali dikenal pada awal tahun 198-an dimana pada saat itu seorang bernama Dr. Charles Elbaum mendirikan sebuah perusahaan bernama Nestor dan membuat sebuah alat bernama NestorWriter handwriting recognizer dan mendapatkan nobel dari hasil karyanya ini. Penemuan ini menimbulkan euphoria tersendiri, banyak orang mengganggap bahwa penggunaan alat ini untuk komputasi, yang selanjutnya disebut pen computing, dapat menggantikan penggunaan komputer dengan keyboard dan mouse konvensional dan akan semakin banyak orang yang akan akrab dengan komputer karena lebih banyak orang yang bisa menggunakan pena(pen) daripada yang bisa menggunakan keyboard. Pada tahun 1991 pen computing berada pada puncaknya. Sebuah pena(yang digunakan untuk handwriting recognition) dianggap sebagai tandingan untuk mouse, dan pen computer(komputer yang menggunakan teknologi handwriting recognition) akan bisa mengalahkan desktop. Hal ini tentu saja mengancam Microsoft yang jelas-jelas mengembangkan Windows untuk desktop. Microsoft pun akhirnya mau tidak mau mengikuti euphoria ini dengan meluncurkan sebuah extension pack untuk pen computing. Setelah peluncuran ini perusahaan-perusahaan produsen hardware berlombalomba menciptakan alat pengenal tulisan tangan yang compatible dengan versi Windows ini. Namun ternyata pada tahun 1992, perusahaanperusahaan ini harus menelan pil pahit dan mengalami kerugian setelah mengetahui kenyataan bahwa produk yang mereka tawarkan tidak terjual. Pen Computing ternyata tidak digemari oleh pengguna komputer. Beberapa orang beropini hal ini dikarenakan sulitnya penggunaan hardware pengenal tulisan ini, selain itu ada yang juga berpendapat bahwa hal ini karena banyak kekurangan pada teknologi ini dan terkadang hardware yang mereka gunakan tidak berfungsi sama sekali. Euphoria pun meredup dan produsen-produsen tidak lagi memproduksi pen comp[uters maupun hardware yang mendukungnya. Sampai akhirnya pada tahun 22 dunia teknologi komputer terhenyak pada peluncuran tablet PC oleh microsoft. Bill Gates ternyata masih percaya bahwa teknologi ini bisa berkembang, dan ia benar, tablet PC menjadi fenomena. Pen Computing akhirnya terus berkembang sampai saat ini, bahkan penggunaanya telah meluas sampai ke level ponsel. Saat ini device dengan touchscreen(hardware

yang memungkinkan input pada layar) sangat diminati dan hampir semua perusahaan teknologi informasi di dunia berusaha mengembangkannya. 2. PENGENALAN TULISAN TANGAN (HANDWRITING RECOGNITION) Seperti yang telah disebutkan sebelumnya pengenalan tulisan tangan memungkinkan karena adanya touch screen. Touchscreen mampu mengirimkan informasi posisi tempat dirinya disentuh. Informasi posisi ini kemudian direpresentasikan menjadi matriks vektor. Misalkan seorang user menuliskan huruf e seperti Kemudian hasil pencitraan(pencatatan posisi) tulisan yang digoreskan akan tercatat ke dalam matriks. Bagian yang tergores akan berubah angka menjadi 1. seperti 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Gambar 1. Contoh tulisan tangan Sebelumnya telah layar akan direpresentasikan seperti matriks kosong seperti Gambar 3. Matriks hasil pencitraan Jika anda perhatikan matriks diatas terdiri dari 9 upamatriks. Langkah selanjutnya adalah mengubah tiap-tiap upa-matriks diatas menjadi list, contoh upa-matriks pertama diubah menjadi seperti 1111 List ini kemudian dicocokkan dengan pattern-pattern yang sudah disimpan sebelumnya. Pattern-pattern mewakili bentuk-bentuk dasar dari huruf-huruf. Contoh : 1 11111 Gambar 2. Matriks kosong 1 1 1 1 11111 Gambar 4. Contoh pattern tersimpan

Jika hasil pencocokkan sama maka list tersebut disimpan, jika tidak maka list tersebut akan dibah menjadi pattern yang paling mirip / hampir sama. Lalu list tersebut disimpan. Begitu seterusnya sampai upa-matriks ke sembilan. List-list yang disimpan ini kemudian dibuat kombinasi berdasarkan pattern kemudian kombinasi ini akan menjadi sebuah string, misal list pertama adalah pattern a, list kedua adalah c, ketiga e, keempat m, kelima n, keenam y, ketujuh g, kedelapan p, maka akan terbentuk string a c e m n y g String ini kemudian dicocokkan lagi dengan string baku sebuah huruf yang terdapat di dalam memori sebuah device. Ada cara lain dalam pengenalan tulisan tangan ini yaitu mengubah langsung seluruh matriks menjadi sebuah list. Untuk contoh diatas maka akan menjadi: 11111111 1111111 11111111111 111111111 111111 Kemudian list ini akan langsung dicocokkan dengan pattern-pattern kemungkinan cara penulisan huruf yang telah disimpan di dalam memori. 3. ALGORITMA KNUTH-MORRIS- PRATT (KMP) 3.1 Pengertian Algoritma Knuth-Morris-Pratt adalah salah satu algoritma pencari string yang dikembangkan oleh D.E. Knuth bersama dua orang rekannya J. H. Morris dan V. R. Pratt. Dengan menggunakan algoritma ini kita dapat mencari sebuah sub-string dari sebuah string dengan cara mencocokkan masing-masing karakter. Berbeda dengan algoritma brute force dimana jika pada saat pencocokkan pattern yang dicocokkan tidak sesuai maka bergeser satu karakter ke kanan, pada algoritma KMP sebelum pencocokkan dimulai algoritma ini menyimpan informasi yang dapat digunakan untuk mengetahui dimana pencocokkan berikutnya akan dilakukan, sehingga pergeseran yang tidak perlu tidak akan terjadi. [1] Sebagai contoh, misalkan kita akan mencari pattern al di dalam teks alasan algoritma mangkus : Teks : a l a s a n a l g o r i t m a m a n g k u s Pattern : a l p h a Dapat terlihat bahwa pencocokkan akan gagal di karakter ke-3. Jika kita melakukan pencarian dengan brute force maka pencocokkan selanjutnya akan dilakukan mulai karakter ke-2. Tetapi dengan algoritma KMP yang akan terjadi adalah sebagai Teks : a l a s a n a l g o r i t m a m a n g k u s Pattern : a l p h a Pencocokkan langsung dimulai dari karakter yang paling mungkin berhasil. Selain itu pencocokan juga langsung dimulai dari karakter pattern ke-2 karena pencocokkan karakter pertama telah dilakukan saat pengambilan informasi. Secara definitif algoritma KMP dapat dituliskan seperti Misalkan A adalah alfabet dan x = x 1 x 2... x 4, k N adalah string yang panjangnya k yang dibentuk dari karakter-karakter di dalam alfabet A. [1] Awalan dari x adalah substring u dengan u = x 1 x 2... x 4, k {1, 2,..., k 1} dengan kata lain, x diawali dengan u. Akhiran dari x adalah substring u dengan u = x k b x k b + 1... x k, k {1, 2,..., k 1} dengan kata lain, x diakhiri u. Awalan u dari x atau akhiran u dari x disebut awalan atau akhiran sebenarnya (proper) jika u x, yaitu panjangnya, b, lebih kecil daripada k. Pinggiran (border) dari x adalah substring r sedemikian sehingga r = x 1 x 2... x k 1 dan r = x k b x k b + 1... x k, k {1, 2,..., k 1} dengan kata lain, pinggiran dari x adalah substring yang keduanya awalan dan juga akhiran sebenarnya dari x. 3.2 Fungsi Pinggiran Menghitung fungsi pinggiran adalah langkah awal dan langkah terpenting dari algoritma KMP, karena fungsi inilah kunci dari kemangkusan algoritma ini Hasil perhitungan fungsi pinggiran akan mengindikasikan

pergeseran yang harus dilakukan pattern. Dengan adanya fungsi pinggiran ini pergeseran yang tidak perlu dapat dicegah. Fungsi pinggiran ini hanya bergantung pada karakterkarakter di dalam pattern, oleh karena itu kita dapat melakukan perhitungan sebelum proses pencarian string dimulai. Adapun cara penghitungan fungsi pinggiran adalah sebagai berikut. Kita ambil contoh pattern ababc, kita dapat menghitung fungsi pinggiran b(j) j 1 2 3 4 5 P[j] A b a b c b(j) 1 2 2 Lalu mari kita coba gunakan hasil penghitungan ini untuk pencarian dalam teks abababcd. Teks Pattern : a b a b a b c d : a b a b c Percobaan pertama yang terjadi adalah ujung kiri pattern dan ujung kiri teks disamakan. Karakter pada posisi 1...4 sama, tetapi karakter pada posisi 5 tidak sama. Percobaan selanjutnya ditentukan oleh pinggiran dari awalan pattern yang bersesuaian. Dapat dilihat bahwa awalan yang bersesuaian pada contoh diatas adalah abab, panjangnya adalah l = 4. Lalu pinggiran yang terpanjang dari awalan tersebut adalah ab yang panjangnya b(4) = 2, maka jarak pergeseran adalah l b = 4 2 = 2. Jadi, pattern akan digeser 2 karakter langsung dan pencocokan akan langsung dimulai dari karakter ke-2 dari awal pattern. Teks : a b a b a b c d Pattern : a b a b c Algoritma selengkapnya: 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 (KMP). 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 direpresenasikan 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 i 1 ketemu false while (i n and not ketemu) do while((j > ) and (P[j+1] T[i])) do j b[j] endwhile if P[j+1]=T[i] then j j+1 if j = m then ketemu true else i i+1 endwhile if ketemu then idx i-m+1 { catatan: jika indeks array dimulai dari, maka idx i-m } else idx -1 3.3 Kompleksitas Waktu Kompleksitas waktu dari algoritma KMP ditentukan oleh waktu yang dibutuhkan saat penghitungan fungsi pinggiran dan pada saat pencarian string. Untuk menghitung fungsi pinggiran dibutuhkan waktu O(m), sedangkan untuk pencarian string dibutuhkan waktu O(n), maka kompleksitas waktu dari algoritma KMP adalah O(m+n). 4. ALGORITMA KNUTH MORRIS PRATT (KMP) DALAM PENGENALAN TULISAN TANGAN Seperti yang telah tertulis diatas bahwa dalam pengenalan tulisan tangan banyak sekali ditemukan kasus

pencocokan string. Kasus-kasus inilah yang dapat diselesaikan dengan algoritma KMP dengan mangkus dan sangkil. Kita ambil contoh kasus pencocokan sebuah upamatriks dengan sebuah pattern. Mula-mula kita hitung funsi pinggiran dari sebuah pattern dengan string : 11111 sesuai dengan algoritma yang telah dijelaskan sebelumnya. j 1 2 3 4 5 6 7 8 9 P[j] 1 1 b(j) 1 2 3 4 5. j 1 11 12 13 14 15 16 17 18 P[j] b(j) 6 7 8 1 2 3 4 j 19 2 21 P[j] 1 b(j) 1 Setelah fungsi pinggiran dihitung, pencarian dapat dimulai. Misalkan pencarian dilakukan pada hasil pencitraan dengan string: 1111111 Pencarian pertama akan terjadi seperti Ketidakcocokkan langsung terjadi pada pencocokkan karakter pertama, sehingga awalan yang bersesuaian adalah l = dan pinggiran b = -1 (sesuai algoritma, lihat pseudo code). Maka pergeseran yang terjadi l b = (-1) = 1. Dilihat dari string yang dicocokkan hal ini akan terjadi sampai karakter ke-3 dimana setelah itu keadaan akan menjadi seperti Pada percobaan ini hal yang sama seperti sebelumnya terjadi kembali maka, pattern akan bergeser lagi sebanyak 4 karakter menjadi seperti Pada percobaan ini ternyata terjadi kecocokan pada seluruh pattern maka pencarian pun selesai. 4. KESIMPULAN Adanya fungsi pinggiran dalam algoritma pencocokan string Knuth-Morris-Pratt membuat algoritma ini dapat menyelesaikan pencarian dengan waktu yang lebih singkat dari yang dibutuhkan oleh algoritma brute force. Algoritma pencocokan string dapat digunakan untuk menyelesaikan banyak persoalan sejauh persoalan tersebut dapat direpresentasikan ke dalam sebuah string, tidak hanya untuk pencarian kata dan semacamnya,. REFERENSI [1] Rinaldi Munir, Diktat Kuliah Strategi Algoritmik, Program Studi Teknik Inofrmatika ITB, 26. [2] http://en.wikipedia/wiki/knuth_morris_pratt_algoritm, diakses pada tanggal 19 Mei 28 pukul 23: [3] http://www.webpronews.com/expertarticles/25/12/2/abrief-history-of-tablet-pcs, diakses pada tanggal 2 Mei 28 pukul 9. [4] http://en.wikipedia.org/wiki/handwriting_recognition, diakses pada tanggal 2 Mei 28 pukul 8. [5] http://en.wikipedia.org/wiki/knuth-morris- Pratt_algorithm, diakses pada 2 Mei 28 pukul 22. [6] http://www.dontveter.com/basisofai/char.html diakses pada tanggal 2 Mei 28 pukul 9. Pada percobaan kali ini terjadi kecocokkan pada 12 karakter pertama kemudian ketidakcocokkan pada karakter ke 13, sehingga tercipta awalan dengan panjang l = 12 dan pinggiran dengan panjang b = 8. Maka untuk percobaan berikutnya pattern akan bergeser sebanyak l b = 12 8 = 4 karakter. Sehingga keadaan yang terbentuk akan menjadi seperti