Konsep Algoritma String Matching

5. Effectiveness : Setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya memberi solusi sesuai yang diharapkan.

2.2. Konsep Algoritma

Penyelesain permasalahan dengan menggunakan alat bantu sistem komputer paling tidak akan melibatkan lima tahapan, yaitu: 1. Analisis masalah. 2. Merancang algoritma. 3. Membuat program komputer. 4. Menguji hasil program komputer. 5. Dokumentasi. Tahapan-tahapan tersebut dapat dikelompokan menjadi dua, yaitu fase penyelesaian permasalahan problem solving phase dan fase implementasi implementasi phase. Langkah pertama, yaitu analisis masalah merupakan langkah paling awal untuk mengetahui lebih jauh tentang permasalahan yang akan diselesaikan dengan menggunakan alat bantu komputer. Langkah kedua, yaitu merancang algoritma dilakukan dengan tujuan utama sebagai berikut Sutanta, 2004. a. Menentukan ide solusi. b. Menyatakan algoritma. c. Memvalidasi algoritma. d. Menganalisis algoritma. Validasi algoritma diperlukan untuk menguji validasi prosedur yang telah dinyatakan dalam algoritma terhadap seluruh kemungkinan data yang di input. Sedangkan analisis algoritma dimaksudkan untuk mengetahui tingkat efisiensi proses dalam algoritma, yang berkaitan dengan efisiensi waktu dan efisiensi penggunaan memori dalam sistem komputer. Universitas Sumatera Utara

2.3. String Matching

String matching adalah sebuah subjek yang banyak digunakan dalam lingkup pencarian teks. Algoritma-algoritma string matching menjadi komponen dasar yang diaplikasi pada berbagai piranti lunak dan dapat ditemukan pada hampir semua jenis sistem operasi Charras Lecroq, 1997. Selain itu, algoritma-algoritma string matching mempengaruhi metode pemrograman yang menjadi polaacuan dalam bidang lainnya di computer science baik sistem maupun perancangan piranti lunak. Algoritma-algoritma string matching juga mempunyai perubahan penting dalam lingkup teori computer science dengan menyediakan tantangan-tantangan dan permasalahan-permasalahan untuk dipecahkan. Secara umum, String Matching merupakan proses pencarian kata pattern dalam sebuah kalimat teks string, String matching bisa untuk menemukan satu pattern yang pertama kali ditemukan, atau yang lebih umum menampilkan semua pattern yang dapat ditemukan dalam teks Charras Lecroq, 1997. Jenis string matching bermacam-macam, dibedakan menurut hasil yang diinginkan. Yang akan dibahas pada tulisan ini adalah Exact String Matching, Artinya pencarian yang dilakukan untuk menemukan sebuah substringpattern yang tepat sama dalam sebuah stringtext. Pattern dilambangkan dengan P=P[O...m-1], yang mana m adalah panjang dari pattern tersebut atau bisa disebut P:Length. Teks dilambangkan dengan T=IIO ...n-1], yang mana n adalah panjang dari teks atau bisa disebut I:Length. String Matching dirumuskan sebagai berikut: x = x [0…m-1] y = y[0…n-1] Dimana : x adalah pattern m adalah panjang pattern y adalah teks n adalah panjang teks Kedua string terdiri dari sekumpulan karakter yang disebut alfabet yang dilambangkan dengan ∑ sigma dan mempunyai ukuran σ tao. String matching dibagi menjadi dua, yakni exact matching dan heuristic atau statistical matching Sarno, et al, 2012. Universitas Sumatera Utara Exact Matching digunakan untuk menemukan pattern yang berasal dari satu teks. Contoh pencarian exact matching adalah pencarian kata “pelajar” dalam kalimat “saya seorang pelajar” atau “saya seorang siswa”. Sistem akan memberikan hasil bahwa kalimat pe rtama mengandung kata “pelajar” sedangkan kalimat kedua tidak, meskipun kenyataannya pelajar dan siswa adalah kata yang bersinonim Sarno, et al, 2012. Cara kerja algoritma Exact String Matching adalah sebagai berikut: Posisi awal pencarian adalah pada ujung kiri karakter pertama dari P atau T, lalu karakter pada posisi tertentu di T dibandingkan dengan karakter pada P, bagian ini biasa disebut dengan pattern, dan setelah seluruh perbandingan telah dilakukan atau ditemukan ketidaksamaan maka P akan digeser ke kanan. Prosedur ini dilakukan berulang-ulang sampai ujung kanan P bertemu dengan ujung kanan T. Setiap pattern dengan posisi i pada T terjadi ketika P berada pada posisi m-1. Berdasarkan arah pemeriksaan karakter, metode yang digunakan dikelompokkan menjadi Cahyo, 2007: 1. Metode pembacaan berawal dari posisi kiri mengarah ke kanan, salah satu contohnya adalah algoritma Knut-Morris-Pratt. Metode ini tergolong alamiah karena sesuai dengan arah pembacaan biasa dan memiliki karakteristik seperti proses pada automata. 2. Metode pembacaan berawal dari posisi kanan mengarah ke kiri, misalnya algoritma Boyer-Moore. Metode ini umumnya menghasilkan algoritma yang sederhana dan dianggap paling mangkus. 3. Metode pencarian dengan aturan tertentu, salah satunya adalah pencarian dua arah yang diawali dengan kemunculan algoritma dua jalur yang dicetuskan oleh Crochemore-Perrin. Metode ini melakukan dua jenis pencarian, yang pertama adalah mencari bagian kanan pola dari kiri ke kanan, dan jika tidak ada ketidakcocokan, pencarian dilanjutkan dengan bagian kiri. 4. Metode yang tidak memiliki suatu pola tertentu, biasanya algoritma ini menggunakan sebagian metode dari algoritma pada tiga kelompok di atas yang dikombinasikan dengan metode lain, contohnya adalah algotima quick search. Universitas Sumatera Utara String matching adalah pencarian sebuah pattern pada sebuah teks. Prinsip kerja algoritma string matching adalah sebagai berikut Effendi, et al, 2013: 1. Memindai 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. Algoritma string matching mempunyai tiga komponen utama Effendi, et al, 2013, 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. Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern , dinyatakan dengan ∑ dengan ukuran dinyatakan dengan ASIZE.

2.4. Algoritma Maximal Shift