Anda di halaman 1dari 9

Finite State Automata :

Finite Automata adalah mesin abstrak berupa sistem model matematika dengan
masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler)
dan dapat diimplementasikan secara nyata. Sedangkan Finite State Automata (FSA) adalah
model matematika dari sistem dengan masukan dan keluaran berupa nilai diskrit.
Pengaplikasian Finite Automata dapat ditemukan pada algoritma- algoritma yang
digunakan untuk pencocokkan string pada perangkat lunak editor teks dan perangkat lunak
pengecekan ejaan, serta dapat ditemui juga pada penganalisa sintaks yang digunakan oleh
Assemblers atau Compilers.
Automata memiliki suatu alur khusus dan unik untuk setiap kata yang akan dikenali
atau diterima. Jika suatu alur berakhir pada suatu state yang disebut sebagai Final State atau
Accepting State, maka kata yang ditelusuri tersebut dikatakan dikenali oleh automata.
Komponen dasar yang dimiliki oleh Finite Automata adalah Alphabet yaitu
Himpunan symbol/ lambang yang dikenali.
Himpunan Alfabet diwakili dengan jika dan hanya jika merupakan himpunan symbol
yang bersifat tetap dan bukan merupakan himpunan kosong.
Contoh umum dari Alphabet adalah 26 (dua puluh enam) huruf yang dikenali dalam bahasa
Indonesia ataupun rangkaian karakter ASCII, yang merupakan rangkaian standar dari kodekode komputer. Sedangkan sebuah word, yang disebutkan juga string atau sentence adalah
rangkaian satu atau lebih alphabet yang telah dinyatakan sebelumnya. Rangkaian word itu
sendiri disebut bahasa (language), yang diwakili dengan L.
Berikut ini adalah contoh Alphabet beserta words yang dapat dibentuknya :

= {a, b}, maka contoh words yang dapat dibentuknya yaitu aab, abab, a,
bbbbbb, dan lain- lain.
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, maka contoh words yang dapat dibentuknya yaitu
26498098, 100103, 0000, dan lain- lain.

Lebih lanjut, Concatenation adalah proses menggabungkan dua buah words menjadi satu
word baru, yaitu terdiri dari rangkaian alphabet dari word pertama dan disambung dengan
rangkaian alphabet dari word ke-dua.
= {a, b}, words = aaa dan y = bbbdimana setiap a merupakan anggota
himpunan , a dan setiap b anggota himpunan , b . Maka, gabungan atau
concatenation x dan y, dinyatakan dengan x,y = aaabbb.
Setelah memiliki pemahaman diatas, maka definisi dari sebuah Finite Automata dapat
ditetapkan sebagai suatu model Matematis dari sebuah mesin yang menerima suatu rangkaian
words tertentu yang mengandung alphabet .

Setiap FSA memiliki:


1. Himpunan berhingga (finite) status (state):
Satu buah status sebagai status awal (initial state), biasa dinyatakan q0.
Beberapa buah status sebagai status akhir (final state).
2. Himpunan berhingga simbol masukan.
3. Fungsi transisi:
Menentukan status berikutnya dari setiap pasang status dan sebuah simbol
masukan.

FSA didefinisikan sebagai pasangan 5 Tupel/ Komponen M = ( Q, , , S, F ) :

M
Q

S
F

: Nama Mesin.
: Himpunan hingga state/ kedudukan.
: Himpunan hingga simbol input/ masukan (alfabet).
: Fungsi transisi, berbentuk (qi, a) = qk
: State AWAL (Start)/ kedudukan awal, S > Q.
: Himpunan state AKHIR (Final), F > Q.

Contoh : FSA untuk mengecek parity ganjil.

Q ={Gnp, Gjl} himpunan state .


={0,1} himpunan simbol input.
= fungsi transisi,

S = Gnp (Start).
F = {Gjl} (Final) himpunan state AKHIR.
( Ingat untuk himpunan harus ditulis di dalam { } ).

Dari diagram tersebut Contoh Bahasa/L(m) yang diterima adalah :


0110 = Karena state akhirnya adalah finalnya state, dalam konteks ini adalah Gjl.
1011 = Diterima.
0100 = Diterima.
11110 = Diterima.
011 = Ditolak (karenan state akhirnya tidak di final state, Gnp).
11011 = Ditolak.

Secara visual, suatu bagan Finite Automata diwakili dengan suatu graf berarah dengan
rumus G= < V , E > ; dimana V = S dan E =
t }. V merupakan
^
himpunan verteks pada graf, E merupakan himpunan sisi pada graf yang pada dasarnya
merupakan fungsi- fungsi transisi antara state yang satu ke state yang lain (state s dan t,
yang masing- masingnya merupakan anggota dari S). Selain itu, setiap sisi graf diberi nama
dengan alphabet penghubung (alphabet a) antara dua verteks yang dihubungkannya.
Pada umumnya dalam suatu bagan Finite Automata terdapat minimal satu state akhir.
Verteks graf yang menunjukkan suatu state, tetapi bukan state akhir, dinyatakan dengan
lingkaran, sedangkan yang menunjukkan suatu state akhir dinyatakan dengan lingkaran
ganda, sisi graf yang menunjukkan fungsi transisi dinyatakan dengan tanda panah.
Jadi suatu state dapat menjadi asal dan tujuan dalam suatu fungsi transisi yang melibatkan
dua buah state. Ditinjau dari sudut pandang state asal, maka setiap state (kecuali state akhir)
pasti menjadi state asal dan memiliki fungsi transisi ke state yang lain, sedangkan state akhir
dapat tidak memiliki fungsi transisi state ke yang lain. Ditinjau dari sudut pandang state
tujuan, maka setiap state (kecuali state awal) pasti menjadi pasti state tujuan.

FSA dibedakan menjadi dua macam, yaitu :


Deterministic Finite Automata (DFA).
Transisi state FSA akibat pembacaan sebuah simbol bersifat tertentu.
Non-Deterministik Finite Automata (NDFA).
Transisi state FSA akibat pembacaan sebuah simbol bersifat tak tentu.

Jenis FSA:

DFA (Deterministic Finite Automata) :


Atomata berhingga yang pasti (tetap/tertentu).
Setiap rancangan state input selalu tepat ada satu state berikutnya.
Dari suatu state ada tepat satu state berikutnya untuk setiap symbol masukan yang
diterima.
Untuk sebuah state dan input yang berlaku bisa ditentukan tepat satu state berikutnya.
Suatu string x dinyatakan diterima bila _(S,x) berada pad state akhir.
Dengan kata lain secara formal bila M adalah sebuah bahasa FSA,
M = (Q, _, d, S, F) menerima bahasa yang disebut L(M) yang
merupakan himpunan {x | d (S,x) di dalam F}.
NDFA (Non-Deterministic Finite Automata) :
Atomata berhingga yang tidak pasti.
Untuk setiap pasangan state input, bisa memiliki 0 (nol) atau lebih pilihan untuk state
berikutnya.
Untuk setiap state tidak selalu tepat ada satu state berikutnya untuk setiap simbol
input yang ada.
Dari suatu state bisa terdapat 0,1 atau lebih busur keluar (transisi) berlabel simbol
input yang sama.
Untuk NFA harus dicoba semua kemungkinan yang ada sampai terdapat satu yang
mencapai state akhir.
Suatu string x dinyatakan diterima oleh bahasa NFA, M= (Q, _, d, S, F) bila {x | d
(S,x) memuat sebuah state di dalam F}.
(DFA)Deterministic Finite Automata:

Contoh DFA:
DFA :
Q = {q0, q1, q2}
diberikan dalam tabel berikut :
= {a, b}
S = q0
F = {q0, q1}

Kalimat yang diterima oleh DFA : a, b, aa, ab, ba, aba, bab, abab, baba.
Kalimat yang ditolak oleh DFA : bb, abb, abba.
DFA ini menerima semua kalimat yang tersusun dari simbol a dan b yang tidak mengandung
substring bb.
---------------------------------------------------------------------------------------------------------------DFA :
Pada suatu NFA, Suatu state dapat memiliki tujuan ke beberapa state yang berbeda
dengan alphabet penghubung yang sama. Akan tetapi, hal ini tidak diperbolehkan pada suatu
DFA. Untuk menyederhanakan suatu NFA menjadi suatu DFA dipergunakan Tabel Transisi
yang memiliki kolom berupa variasi alphabet yang diterima dan baris berupa nama- nama
state asal. Sedangkan titik temu antara suatu kolom dan baris diisi dengan nama- nama state
tujuan dari state asal yang tertera pada bagian kolom.
Berikut ini adalah Contoh suatu DFA yang akan mengenali suatu bilangan Cacah :
DFA bilangan C

0,

F>

= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
S = {S0, S1, S2}
S0 = S0
F = {S1, S2}
Bagan DFA untuk Bilangan Cacah:

Table Transisi DFA untuk Bilangan Cacah:

1..9

S 0 S1

S2

S1

S 2 S2

S2

Bagan pada Gambar di atas sudah merupakan bagan DFA karena tidak ada state asal yang
memiliki tujuan ke lebih dari satu state tujuan dengan alphabet penghubungan yang sama.

(NFA) Non-deterministik Finite Automata:


Pada NFA terdapat kemungkinan lebih dari 1 transisi yang keluar dari sebuah state
dengan sumber input yang sama.
Gambar berikut ini adalah Contoh NFA yang menginformasikan NFA yang menerima aa* |
bb*:

Table Transisi NFA Seperti :


a

1,3

Bagan pada gambar itu sudah merupakan bagan NFA, karena ada state asal yang memiliki
tujuan ke lebih
).
Pada gambar diatas state 0 sebagai start dan state 2 serta state 4 adalah final state. Disini
digambarkan NFA menerima suatu input berupa aa* | bb*. Suatu string aaa akan diterima
dengan melalui state 0, 3, 4, 4, 4 dan 4. NFA mempunyai kelebihan dapat melakukan
backtracking, namun aksesnya lebih lambat dibandingkan dengan DFA (Deterministic Finite
Automaton).

NFA
Contoh NFA:
Berikut ini sebuah contoh NFA (Q, , , S, F). dimana :
Q = {q0 , q1 , 21 ,q3 , q4 }
= {a, b,c}
S = q0
F = {q4}

Kalimat yang diterima NFA di atas : aa, bb, cc, aaa, abb, bcc, cbb
Kalimat yang tidak diterima NFA di atas : a, b, c, ab, ba, ac, bc
Sebuah kalimat di terima NFA jika :

Salah satu tracing-nya berakhir di state AKHIR, atau


Himpunan state setelah membaca string tersebut mengandung state
AKHIR.

Implementasi Finite Automata.


Sistem dengan state berhingga diterapkan pada:

Sistem elevator.
Mesin pengeluar minuman kaleng (vending machine).
Pengatur lampu lalu lintas (traffic light regulator).
Sirkuit penyaklaran (switching) di komputer dan telekomunikasi.
Protokol komunikasi (communication protocol).
Analisis Leksikal (Lexical analyzer).
Neuron nets.
Sistem Komputer.

Finite State Diagram (FSD).


Finite State Automata dapat dimodelkan dengan Finite State Diagram (FSD) dapat juga
disebut State Transition Diagram.
Finite State Diagram terdiri dari:
1. Lingkaran menyatakan state.
Lingkaran diberi label sesuai dengan nama state tersebut.
Adapun pembagian lingkaran adalah:
- Lingkaran bergaris tunggal berarti state sementara.
- Lingkaran bergaris ganda berarti state akhir.
2. Anak Panah menyatakan transisi yang terjadi.
Label di anak panah menyatakan simbol yang membuat transisi dari 1 state ke state
lain.
1 anak panah diberi label start untuk menyatakan awal mula transisi dilakukan.

Kesimpulan :
Klasifikasi FSA.

Dibedakan menjadi dua jenis FSA :


I.

II.

(DFA) Deterministic Finite Automata.


Terdiri dari 1 transisi dari suatu state pada 1 simbol masukan.
(NFA) Non-Deterministik Finite Automata.
Terdiri lebih dari 1 transisi dari suatu state dimungkinkan pada simbol masukan yang
sama.

Kedua Finite Automata tersebut mampu mengenali himpunan reguler secara presis.
Dengan demikian kedua Finite Automata itu dapat mengenali string-string yang ditunjukkan
dengan ekspresi reguler secara tepat.
DFA dapat menuntun recognizer (pengenal) lebih cepat dibanding NDFA.
Namun demikian, DFA berukuran lebih besar dibanding NDFA yang ekivalen
dengannya. Lebih mudah membangun NDFA dibanding DFA untuk suatu bahasa, namun
lebih mudah mengimplementasikan DFA dibanding NDFA.

Anda mungkin juga menyukai