Anda di halaman 1dari 9

JURNAL MEDIA APLIKOM

ISSN : 2086 - 972X


Vol. 1, No. 3, September 2010

APLIKASI PENCOCOKAN STRING DENGAN


METODE FINITE AUTOMATA

Agus Priyanto
Sekolah Tinggi Ilmu Komputer Yos Sudarso Purwokerto

ABSTRAK

Permasalahan pencocokan string semakin bertambah seiring dengan berjalannya waktu,


bahkan permasalahannya berasal dari bidang-bidang yang berbeda. Seperti misalnya dalam
pencarian string dalam kosakata bahasa indonesia. Dalam kehidupan sehari-hari kita sering
mengalami kesulitan dalam pemeriksaan kosakata yang tepat dalam Bahasa Indonesia.
Pemeriksaan Kosakata adalah sebuah masalah yang kerap kali kita temui, yaitu apabila
kita berhubungan dengan suatu text atau interpreter, mulai dari permasalahan sederhana
sampai dengan permasalahan yang komplex. Contohnya adalah proses pencarian suatu kata
dari sebuah dokumen text. Mengingat betapa pentingnya keberadaan proses pemeriksaan
kosakata, maka berbagai penelitian dan pengembangan dilakukan oleh berbagai pihak, dengan
menggunakan berbagai metode untuk menemukan algoritma yang seefisien mungkin.

Kata kunci: string, finite automata, pencocokan string, pola.


1. PENDAHULUAN tidak mungkin, bahwa saat ini sudah
ditemukan algoritma lain yang berbeda,
dengan sudut pandang yang berbeda
Dalam kehidupan sehari-hari kita untuk mengatasi masalah Pemeriksaan
sering mengalami kesulitan dalam Kosakata ini.
pemeriksaan kosakata yang tepat dalam
Bahasa Indonesia. Pemeriksaan
Kosakata adalah sebuah masalah yang Dalam Matematika Diskret
kerap kali kita temui, yaitu apabila kita terdapat satu cabang ilmu yang khusus
berhubungan dengan suatu text atau mempelajari tentang bahasa, yaitu Teori
interpreter, mulai dari permasalahan Bahasa Formal. Bahasa yang dibahas
sederhana sampai dengan permasalahan pada Teori Bahasa Formal adalah
yang komplex. Contohnya adalah bahasa tulisan. Penelitian ini ditujukan
proses pencarian suatu kata dari sebuah pada Pencarian Kosakata pada bahasa
dokumen text. secara tertulis. Keuntungan dari
penggunaan Teori Bahasa Formal
adalah kita bisa memodelkan
Mengingat betapa pentingnya Pemeriksaan Kosakata menggunakan
keberadaan proses pemeriksaan Finite State Automata, yaitu suatu
kosakata, maka berbagai penelitian dan mesin abstrak yang dapat mengenali
pengembangan dilakukan oleh berbagai bahasa.
pihak, dengan menggunakan berbagai
metode untuk menemukan algoritma
yang seefisien mungkin. Dan bukanlah

157
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

2. TINJAUAN PUSTAKA Pengertian mesin diatas, bukan


hanya mesin elektronis/mekanis saja
melainkan segala sesuatu (termasuk
a. Teori Bahasa Formal perangkat lunak) yang memenuhi
ketiga ciri di atas. Penggunaan
automata pada perangkat lunak
Teori bahasa membicarakan terutama pada pembuatan compiler
bahasa formal (formal language), bahasa pemrograman. Secara garis
terutama untuk kepentingan besar ada dua fungsi automata dalam
perancangan kompilator (compiler) hubungannya dengan bahasa, yaitu :
dan pemroses naskah (text
processor). Bahasa formal adalah
kumpulan kalimat. Semua kalimat  Fungsi automata sebagai
dalam sebuah bahasa dibangkitkan pengenal (RECOGNIZER)
oleh sebuah tata bahasa (grammar) string-string dari suatu bahasa,
yang sama. Sebuah bahasa formal dalam hal ini bahasa sebagai
bisa dibangkitkan oleh dua atau lebih masukan dari automata
tata bahasa berbeda. Dikatakan
bahasa formal karena grammar
diciptakan mendahului  Fungsi automata sebagai
pembangkitan setiap kalimatnya. pembangkit (GENERATOR)
Bahasa manusia bersifat sebaliknya, string-string dari suatu bahasa,
grammar diciptakan untuk dalam hal ini bahasa sebagai
meresmikan kata-kata yang keluaran dari automata
digunakan di masyarakat.
c. Klasifikasi Bahasa Menurut
b. Teori Automata Chomsky

Berasal dari bahasa Yunani Untuk menyelesaikan suatu


automatos, yang berarti sesuatu yang masalah, mula-mula harus dikenali
bekerja secara otomatis (mesin). dulu dengan baik masalah yang
Dalam tulisan ini akan dipergunakan sebenarnya dihadapi. Salah satu
istilah automaton sebagai bentuk caranya adalah dengan
tunggal dan automata sebagai bentuk mengklasifikasikan masalah tersebut.
jamak. Teori Automata adalah teori Dengan demikian dapat dikenali ciri-
tentang mesin abstrak yang : ciri masalah tersebut, dan dapat lebih
difokuskan penyelesaian masalah
tersebut pada ciri-ciri yang berhasil
 Bekerja Sekuensial dikenali. Pada masalah bahasa,
klasifikasi tersebut sudah pernah
dilakukan. Chomsky membagi
 Menerima Input bahasa menjadi 4 kelas berdasarkan
tata bahasanya. Keempat kelas
tersebut adalah :
 Mengeluarkan Output

158
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

1. Regular Grammar/Regular Ciri-ciri : bentuk produksi P


Language (RG/RL) α→β, α,β | (T U N) +, |α| ≤ |β|

Mesin Pengenal : Finite State 4. Unrestricted


Automata (FSA) Grammar/Unrestricted
Language (UG/UL)

Dapat dibagi menjadi dua


subkelas : Mesin Pengenal : Turing
Machine ™

a. Left Linear Grammar/Left


Linear Language Ciri-ciri : bentuk produksi P
(LLG/LLL), jika P α→β, α,β | (T U N) +
berbentuk A→ Bx|x
d. FSA (Finite State Automata)
b. Right Linear Setiap jenis automata
Grammar/Right Linear mempunyai keunikan yang
Language (RLG/RLL), jika membuatnya berbeda fungsinya
P berbentuk A→ xB|x, di dengan automata yang lain. Berikut
mana A,B N dan x T*
ini akan dibahas sifat-sifat FSA :
 Pita masukan hanya bisa
2. Context Free dibaca, berisi string yang
Grammar/Context Free berasal dari suatu abjad.
Language (CFG/CFL)
 Setelah membaca satu simbol
pada pita, kepala pita akan
Mesin Pengenal : Push Down maju ke posisi symbol
Automata (PDA) berikutnya.
 Kepala pita tidak bisa mundur.
Ciri-ciri : bentuk produksi P  Mempunyai sejumlah
A→β, di mana A | N dan β (T U berhingga status, setiap saat
N) * FSA berada pada status
tertentu.
3. Context Sensitive Setiap FSA bisa diasosiasikan
Grammar/Context Sensitive dengan sebuah diagram transisi,
Language (CSG/CSL) yaitu suatu graf berarah sebagai
berikut :
Mesin Pengenal : Linear  Setiap simpulnya mewakili
Bounded Automata (LBA) setiap status pada FSA.

159
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

 Jika ada transisi dari status p ke dari state q ke state β(q,a). Ketika
status q pada input a, maka ada state sekarang q adalah anggota A,
busur dari p ke q berlabel a. mesin M bisa menerima string yang
 Status awal ditandai dengan dibaca.
kata START, status akhir
ditandai dengan 2 lingkaran.
Jadi fungsi dari diagram transisi
adalah untuk menggambarkan cara
kerja suatu FSA. Finite Automata
digunakan untuk memutuskan
apakah sebuah kata atau string
adalah kata yang diterima oleh mesin
Gambar 2.1. Finite automaton
automata tersebut. Sebuah aoutomata
sederhana dengan himpunan state Q =
memiliki status dan fungsi transisi
{0,1}, state awal q0 = 0, dan input
yang merubah status berdasarkan alphabet = {a,b}. (a) representasi tabel
status saat ini dan karakter yang dari fungsi transisi β (b) sebuah diagram
dibaca saat ini. Ada yang disebut transisi.
sebagai status akhir dan status ini
mungkin lebih dari satu. Bila string
itu dijalankan dan berakhir disalah
3. JALANNYA PENELITIAN
satu status akhir maka string itu Membangun sebuah system atau aplikasi
diterima atrau termasuk dalam adalah menganalisa, mendesain dan
behasa tersebut. memanajemen setiap faktor teknik yang
Sebuah finite automaton M berguna untuk memecahkan suatu masalah.
adalah sebuah 5-tuple (Q,q0,A, ∑, β) Pengembangan perangkat lunak
dimana diasumsikan sebagai sebuah masalah yang
terus berputar dan selalu menuntut pada para
 Q adalah himpunan state
pengembang sistem agar mempunyai suatu
 q0 adalah start state strategi, dengan tujuan tersebut maka
 A adalah himpunan state membuat sebuah model proses merupakan
yang diterima suatu keharusan agar dalam melakukan
 ∑adalah himpunan alfabet pengerjaan suatu perangkat lebih mudah
dalam mengerjakan setiap prosesnya. Model
masukan
proses untuk seorang pengembang sistem
 β adalah fungsi transisi dari dibuat berdasarkan kebutuhan dari suatu
M produk aplikasi. Gambar 2.10 merupakan
Finite automaton mulai dari salah satu contoh model proses yang
state q0 dan membaca karakter- digunakan pengembang perangkat lunak
karakter dari string masukan secara yang meliputi proses awal sampai akhir.
berurutan. Bila automaton pada state
q dan membaca karakter masukan a,
automaton tersebut akan berpindah
160
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

Problem
Identification

Analysis

Design

Code

Testing

Maintenance

Gambar 2.4 Waterfall Model

a. Identifikasi Masalah (Problem diantaranya struktur data,


Identification) arsitektur perangkat lunak, detail
Pengidentifikasian masalah prosedur dan karakteristik dari
merupakan dasar dalam antar muka (Interface), sehingga
menentukan langkah berikutnya perangkat lunak yang dibuat bisa
yang akan diambil, dalam langkah sesuai dengan permintaan
ini dilakukan dengan pengguna.
pengumpulan data dari pengguna, d. Pengkodean (Coding)
sehingga permasalahan yang Desain yang dibuat kemudian
mungkin dihadapi pada tahap diterjemahkan dengan bahasa
berikutnya akan diperkecil dengan pemrograman yang akan
memperoleh data yang lengkap. digunakan. Saat ini banyak pilihan
b. Analisa Kebutuhan (Analysis) bahasa pemrograman dan setiap
Analisa data dilakukan untuk bahasa pemrograman tersebut
dibuat rancangan perangkat lunak memiliki kelebihan maupun
agar sesuai dengan kebutuhan, kekurangan masing-masing, dan
sehingga perangkat lunak yang mempunyai spesifikasi
dibuat bisa sesuai dengan apa penggunaan yang berbeda-beda
yang diharapkan. pula.
c. Perancangan (Design) e. Pengujian program (Testing)
Perancangan perangkat lunak Setelah proses pengkodean selesai
merupakan pekerjaan bertahap dilaksanakan kemudian
yang sangat difokuskan pada dilanjutkan dengan pengujian
elemen dari program yaitu program. Langkah ini berfungsi

161
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

untuk menguji logika internal dari 4. HASIL DAN PEMBAHASAN


perangkat lunak, untuk a. Menu Utama
Setelah proses perancangan
memastikan setiap perintah telah
benar atau setidaknya dilakukan maka dihasilkan sebuah
meminimalisir kesalahan sistem. aplikasi sistem pemeriksaan kosakata
yang siap untuk digunakan. Form
f. Peningkatan kualitas
utama merupakan halaman awal
(Maintenance)
Langkah ini merupakan langkah aplikasi pemeriksaan kosakata yang
terakhir dalam proses pembuatan terdiri atas berbagai macam menu
perangkat lunak, hal ini dilakukan yang digunakan untuk membuka
agar perangkat lunak yang dibuat form lain yang berkaitan. Selain
menjadi lebih baik dari hasil tombol menu, dalam halaman utama
sebelumnya baik dari tampilannya juga terdiri atas nama aplikasi, nama
maupun kecepatan aksesnya. pembuat, waktu dan tanggal.
Tampilan halaman utama aplikasi
Pemeriksaan Kosakata menggunakan
Finite State Automata diperlihatkan
pada gambar dibawah ini.

Gambar 4.1 Form Menu Utama

162
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

b. Simulasi FA diperiksa ditolak atau diterima oleh


Form Simulasi FA ini digunakan mesin maka aplikasi akan
untuk melakukan simulasi bilangan memunculkan output yang diterima
biner yang akan diperiksa atau ditolak oleh mesin.
menggunakan konsep Finite State
Automata. Jika bilangan biner yang

Gambar 4.2 Form Simulasi FA


c. Pencocokan String Bahasa Indonesia kemudian kata
Form String Matching digunakan tersebut akan diperiksa dengan
untuk melakukan pengecekan kata, menggunakan mesin automata.
user hanya memasukan kata dalam

163
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

Gambar 4.3 Form String Matching

d. About
Form About digunakan untuk
menampilkan biodata dari pembuat
aplikasi ini.

164
Gambar 4.4 Form About
JURNAL MEDIA APLIKOM
ISSN : 2086 - 972X
Vol. 1, No. 3, September 2010

5. KESIMPULAN

Kesimpulan yang diperoleh setelah melakukan perancangan, pembuatan dan pengujian


Aplikasi Pencocokan String Menggunakan Prinsip Finite State Automata yaitu:
a. String yang dimasukan kedalam Aplikasi dapat diterima oleh mesin automata dengan
menggunakan Prinsip Finite State Automata. Setiap inputan string tersebut dapat berakhir
pada Final State.
b. Algoritma pencarian string merupakan salah satu komponen penting dalam
pemrosesan string dan juga digunakan sebagai dasar dari berbagai aplikasi perangkat lunak
khususnya sebagai bentuk dasar transfer data. Algoritma pencarian string bekerja dengan
menghasilkan posisi tempat terjadinya pengulangan suatu pola string dalam string yang
lebih panjang.

6. DAFTAR PUSTAKA
[1] Kusumo, S.A., 2000. Microsoft Visual Basic 6.0. PT. Elex Media Komputindo, Jakarta.
[2] Jogiyanto, H. M., 2005. Analisis dan Desain. Andi Offset, Yogyakarta.
[3] English Wikipedia 2009 http://en.wikipedia.org/wiki/Stri ng_searching_algorithm
Tanggal akses : 28 Maret 2010 pukul : 22.00
[4] String Matching with Finite Automata http://www.math.uic.edu/~leon/ cs-
mcs401- s08/handouts/finite- automata.pdf Tanggal akses : 28 Maret 2010 pukul :
22.30
[5] Munir, Rinaldi, “Diktat Kuliah IF2251 Strategi Algoritmik”, 2006, Program
Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut
Teknologi Bandung,186.

165

Anda mungkin juga menyukai