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