Abstrak—Algoritma pencocokkan string merupakan tergabung menjadi satu. Substring S[i..j] dari S
algoritma yang digunakan dalam pencarian string dalam merupakan bagian dari string antara indeks i sampai j.
sebuah string yang lebih besar. Ada dua algoritma Sebuah prefiks S merupakan substring dari indeks 0
pencocokkan string yang terkenal, yaitu algoritma Knutt-
sampai i. Sedangkan sebuah sufiks S adalah substring
Morris-Pratt dan algoritma Boyer-Moore. Hangman
merupakan sebuah permainan kata yang bertujuan untuk antara indeks i sampai indeks terakhir pada string.
menebak kata apa yang dimaksud penanya dengan Sebagai contoh yaitu sebuah string S = andrew
menebak huruf satu per satu. Dalam makalah ini, akan memiliki indeks dari 0 sampai 5.
dibahas bagaimana memecahkan permainan Hangman
dengan algoritma pencocokkan string.
I. PENDAHULUAN
Substring S[1..3] ialah “ndr”. Prefiks yang mungkin
Makalah ini dibuat karena ketertarikan dan rasa
dari S ada “andrew”, “andre”, “andr”, “and”, “an” dan
penasaran penulis akan permainan Hangman. Hangman
“a”. Sedangan sufiks yang mungkin dari S ialah
merupakan sebuah permainan sederhana dengan
“andrew”, “ndrew”, “drew”, “rew”, “ew”, dan “w”.
kesulitan yang rumit. Inti dari permainan Hangman ini
Ada beberapa cara populer yang digunakan dalam
hanya menebak kata apa yang dimaksudkan oleh
algoritma pencocokkan string.
penanya dengan cara mengisi kata-kata yang kosong
Cara pertama yang digunakan ialah algoritma
dengan pilihan satu dari 26 huruf yang ada.
sederhana, yaitu algoritma Brute Force. Cara kedua ialah
Penulis juga kagum tentang algoritma pencocokkan
algoritma Knutt-Morris-Pratt dan ketiga algoritma
string dikarenakan fungsinya yang lebih dari sekedar
Boyer-Moore.
mencari string dalam sebuah string yang lebih besar.
Algoritma Brute Force bekerja dengan mencocokkan
Dalam implementasinya, algoritma string digunakan
semua posisi dari teks T untuk melihat apakah string P
sebagai pencocokkan sidik jari, juga untuk semua hal
merupakan substringnya.
yang berhubungan dengan recognition atau
pencocokkan.
Dalam implementasi sebenarnya, pemecahan masalah
hangman tidak hanya menggunakan algoritma
pencocokkan string, tapi beragam algoritma juga
digunakan, seperti algoritma bruteforce yang nanti akan
digunakan untuk menghitung jumlah kata, algoritma
greedy dalam pemilihan huruf yang akan diberikan dan Secara iteratif string “rew” digeser dengan
masih banyak lagi. membandingkan karakter pertamanya dengan teks T.
Jika ternyata berbeda, maka string P digeser dan
dibandingkan dengan indeks +1 dari teks T. Pencarian
II. ALGORITMA PENCOCOKKAN STRING
ini dilakukan hingga ditemukan pola P dalam teks T atau
Pencocokkan string merupakan sebuah masalah yang hingga pola P tidak dapat digeser lagi dikarenakan sudah
sering diketemukan dalam kehidupan sehari-hari. mencapai batas akhir teks T.
Beberapa Aplikasi yang menggunakan algoritma ini Algoritma brute force dalam pencocokkan string ini
ialah text editor, web search engine, ataupun image memiliki kompleksitas algoritma O(mn) dalam kasus
analysis. terburuk, seperti mencari pola “aaaaaaab” dalam teks
String merupakan sekumpulan karakter yang
j=5
123456789..
Teks: bimbingan belajar atau bimbel
Pattern: bimbel
j=2
Sehingga kompleksitas total dari algoritma KMP ialah 3. Jika kasus pertama dan kasus kedua tidak dapat
O(m+n). dilakukan, maka geser P hingga P[0] dengan
Keunggulan dari KMP ialah kecepatannya yang T[i+1]
tinggi. Algoritmanya tidak pernah bergerak mundur
dalam teks T. Hal ini membuat algoritma ini bagus untuk
B. Strategi 4 _A___A
Permainan dapat diselesaikan oleh seorang manusia Word:
_
biasa. Dalam Bahasa Indonesia, setiap huruf pasti Guess: I
mempunyai huruf vokal, a, i, u, e, dan o. Sehingga
Misses: e,o,t
menebak salah satu dari huruf tersebut memperbesar
kemungkinan kita untuk menebak jawaban dari kata
yang dimaksud. Ketika kira-kira sudah tertebak satu atau
dua huruf vokal, kita dapat melanjutkan dengan menebak
huruf kapital yang sering terdapat pada kata-kata dalam 5 _A___A
Bahasa Indonesia seperti huruf n,m,s,t,r, dan p. Word:
_
Kemudian dengan pengetahuan tentang huruf yang ada,
kita dapat mengikuti pola dari kata untuk menebak apa Guess: N
kata yang dimaksud. Misses: e,i,o,t
C. Contoh Permainan
Berikut ini ialah contoh permainan hangman dimulai
dari awal hingga selesai. 6 _AN__A
Word:
N
Guess: S
Misses: e,i,o,t
0 ______
Word:
_
Guess: E
Misses: 7 _AN__A
Word:
N
Guess: H
Misses: e,i,o,s,t
1 ______
Word:
_
Guess: T
Misses: e 8 HAN__A
Word:
N
Guess: R
Misses: e,i,o,s,t
2 ______
Word:
_
Guess: A
Misses: e,t 9 HAN__A
Word:
N
Guess:
Misses: e,i,o,r,s,t
3
Guesser loses - the answer was
_A___A
Word: HANGMAN.
_