Anda di halaman 1dari 8

FINITE STATE AUTOMATA (FSA)

Pada akhir pertemuan ini diharapkan mahasiswa dapat memahami konsep Finite
State Machine (FSM) dan Finite State Automata (FSA) sebagai suatu konsep
abstrak matematis yang menggambarkan perilaku suatu mesin logika yang
menggambarkan cara kerja dari suatu mesin fisik, suatu program, algoritma,
atau konsepsi pemecahan masalah. Di dalam konteks teori bahasa, mesin FSA
dapat diterapkan untuk mengenali suatu string yang berasal dari bahasa
regular yang dibangkitkan dari suatu tata bahasa (grammar) regular. Dengan
demikian ada hubungan timbal balik antara bahasa regular dengan FSA, yaitu
jika dimiliki bahasa regular pasti dapat dikonstruksi suatu mesin FSA, dan
sebaliknya jika dimiliki suatu FSA pasti dapat diturunkan suatu bahasa
yang akan dikenali oleh mesin tersebut.

A. FINITE STATE MACHINE (FSM)


Finite State Machine (FSM) adalah suatu mesin abstrak yang diwakili oleh
sekumpulan keadaan (state), sekumpulan masukan, sekumpulan aturan transisi
(perpindahan kedudukan mesin), dan (mungkin) sekumpulan keluaran. Contoh
dari mesin ini adalah Mesin Jaja (Vending Machine), Pintu Otomatis, dan
Telepon Umum.

Contoh 1:
FSM dengan output, yaitu Mesin Jaja (Vending Machine)
Misalkan dimiliki sebuah Mesin Jaja yang dapat mengeluarkan dua macam
output yaitu Jus Jeruk dan Jus Apel. Mesin ini memiliki kedudukan sebanyak
7 state (misalkan dicatat sebagai S 0, S1, S2, ... , S6). Mesin ini dapat
menerima masukan uang pecahan yang dapat berupa 5-an, 10-an, dan 25-an.
Mesin ini selain dapat menerima masukan uang pecahan juga disediakan dua
tombol kuning (K) dan tombol merah (M). Jika mesin dalam kedudukan S 6,
maka jika ditekan K akan keluar Jus Jeruk dan jika ditekan M akan keluar
Jus Apel. Tabel transisi kedudukan dari mesin dapat disajikan seperti
tabel berikut:

Tabel 1. Fungsi Transisi untuk Mesin Jaja


TABEL TRANSISI KEDUDUKAN MESIN
NEXT STATE OUTPUT
STATE Masukan Masukan
5-an 10-an 25-an K M 5-an 10-an 25-an K M
S0 S1 S2 S5 S0 S0 n n n n n
S1 S2 S3 S6 S1 S1 n n n n n
S2 S3 S4 S6 S2 S2 n n 5 n n
S3 S4 S5 S6 S3 S3 n n 10 n n
S4 S5 S6 S6 S4 S4 n n 15 n n
S5 S6 S6 S6 S5 S5 n 5 20 n n
S6 S6 S6 S6 S0 S0 5 10 25 JJ JA

KETERANGAN:
n = tidak ada keluaran
K = tombol kuning ditekan
M = tombol merah ditekan
JJ/JA = mesin mengeluarkan Jus Jeruk/Jus Apel

1
Penggunaan Tabel 1 sebagai fungsi transisi dari Mesin Jaja dapat dipahami
dalam beberapa contoh, misalnya:

 Pada saat awal, mesin selalu dalam state S 0


 Jika pada state S0 menerima masukan 5-an maka akan pindah ke state S 1
 Jika pada state S0 menerima masukan 10-an maka akan pindah ke state S 2
 Jika pada state S0 menerima masukan 25-an maka akan pindah ke state S 5
 Jika pada state S1 menerima masukan 5-an maka akan pindah ke state S2
 Jika pada state S1 menerima masukan 25-an maka akan pindah ke state S 6

Output mesin diperoleh jika mesin dalam state S 6, yaitu:

 Jika pada state S6 menerima masukan K maka akan pindah ke state S 0 dan
menghasilkan OUTPUT JJ = yaitu keluar Jus Jeruk
 Jika pada state S6 menerima masukan M maka akan pindah ke state S 0 dan
menghasilkan OUTPUT JA = yaitu keluar Jus Apel

Mesin Jaja tersebut hanya bisa menerima uang receh maksimum 30. Isi mesin
adalah 30 ditunjukkan dengan keadaan S 6. Pada kondisi S6 ini mesin berharap
menerima masukan tekan tombol K atau M, bukan menerima masukan uang lagi.
Ini nampak jika dalam state tertentu dimasukkan uang receh sehingga nilai
uang dalam mesin diatas 30 maka akan dikeluarkan kembaliannya, misalnya:

 Jika pada state S6 menerima masukan 5-an maka akan tetap pada state S 6
dan menghasilkan OUTPUT (kembalian) 5-an.
 Jika pada state S2 menerima masukan 25-an maka akan pindah menuju state
S6 dan menghasilkan OUTPUT (kembalian) 5-an.

B. FINITE STATE AUTOMATA (FSA)


Finite State Machine (FSM) dapat berupa suatu mesin yang tidak memiliki
output. Finite State Machine (FSM) yang tidak mengeluarkan output ini
dikenal sebagai Finite State Automata (FSA). Pada FSA, mesin mula-mula
dalam state S0 dan menerima sederetan masukan yang dapat mengubah ke
state-state berikutnya.

Dalam FSA juga dikenal himpunan state-state tertentu yang disebut sebagai
FINAL STATE. Perubahan dari suatu state ke state berikutnya mengikuti
aturan tertentu yang dirumuskan sebagai suatu fungsi transisi δ (dibaca:
delta).

Secara formal FSA dapat didefinisikan sebagai Tupple-5: Kumpulan dari 5


himpunan, atau dinotasikan sebagai:

FSA adalah M = (S, ∑, δ, S0, dan F).


Dimana:

S = himpunan terhingga dari state-state.


∑ = himpunan terhingga dari simbol-simbol masukan pada mesin.
δ = fungsi transisi yang mengatur gerakan mesin.
S0 = state awal.
F = himpunan terhingga state akhir.

2
Perilaku FSA diekspresikan dalam bentuk tabel transisi atau dalam bentuk
diagram transisi.

Contoh 2:
Buatlah diagram transisi dari FSA yang didefinisikan sebagai berikut:
M = (S, ∑, δ, S0, dan F), dimana:
S = {S0, S1, S2, S3}
∑ = {0,1}
F = {S0, S3}
Fungsi transisi δ ada pada tabel transisi berikut:

TABEL TRANSISI
δ
State Input
0 1
S0 S0 S1
S1 S0 S2
S2 S0 S0
S3 S2 S1

Jawab:
Diagram transisi dari FSA dapat digambarkan sebagai berikut:

Gambar 1. Diagram Transisi

Cara kerja FSA:


 Mula-mula dalam state awal S0
 Jika dari S0 menerima 1, maka akan ke state S1
 Jika dari S0 menerima 11, maka akan ke state S1 lalu ke S2
 Jika dari S0 menerima 0, maka akan tetap di state S0
 Jika dari S0 menerima 10, maka akan tetap kembali lagi ke state S 0
 Jika dari S0 berturut-turut menerima masukan 111, maka ia akan kembali
ke state S0

3
C. FSA SEBAGAI PENGENAL STRING
Mesin FSA tersebut jika menerima masukan sederetan simbol masukan dari
simbol-simbol yang diijinkan maka akan menuju suatu state tertentu. Jika
state akhir yang ditempuh setelah suatu FSA menerima sederetan simbol
adalah state Final, maka deretan simbol (string) tersebut dikatakan
dikenali oleh FSA, atau dengan kata lain FSA mengenali string tersebut.

Untuk FSA di atas, string-string yang dikenali adalah antara lain:


0
00..0 atau 0*
10
010
010010
100*
110
111

Kumpulan seluruh string yang dikenali oleh FSA merupakan suatu BAHASA yang
dikenali oleh FSA tersebut. Jika dimiliki FSA M maka bahasa yang dikenali
oleh FSA dinotasikan sebagai:

L(M) = {x|x semua string yang mengantar M dari S 0 ke (Si  F)}

Untuk mesin FSA di atas, maka bahasa yang dikenali oleh FSA tersebut
adalah:

L(M) = {0*, 0*(10)0*, 0*(110,111)0*}

Contoh 3:
Tentukan bahasa L(M) yang dikenali oleh Mesin M berikut:

Gambar 2. Diagram Transisi

Jawab:
Dari diagram terlihat bahwa state akhir (final-state) adalah S3.
Pergerakan state yang mengantar ke final-state adalah S0S1S2S3 yakni
string 011 atau string 111 yang dapat ditulis sebagai (0,1)11.

Pergerakan yang lain adalah dari S0 langsung ke S2 yaitu S 0S2S3 yang


dilakukan melalui string 01.

Setelah berada pada final-state masih ada pergerakan yang bersifat


rekursif pada S3 yaitu apabila diberikan masukkan 0,00,000,... atau 0*.

4
Dengan demikian jika seluruh string tersebut digabungkan akan menjadi
(0,1)110*010*, sehingga bahasa yang dikenali mesin M adalah:

L(M) = {(0,1)110*010*} = {((0,1)1101)0*}

D. DETERMINISTIK dan NON-DETERMINISTIK FSA


FSA dapat dikelompokkan menjadi Deterministik FSA (DFA) dan Non-
Deterministik FSA (NFA) berdasarkan sifat fungsi transisinya.

1. DFA (Deterministik FSA):


Jika pada setiap state dari FSA tersebut apabila menerima input
sebuah simbol maka hanya ada satu next-state yang mungkin dituju.

2. NFA (Non-Deterministik FSA):


Jika FSA tersebut menerima input simbol maka minimal ada satu state
yang akan berpindah ke lebih dari satu next-state yang mungkin
dituju.

Contoh 4:
a) Tunjukkan bahwa diagram berikut adalah NFA:

Jawab:
Dari S0 jika menerima masukan 0 dapat memilih ke salah satu next-state
yaitu S1 atau S2. Dari S1 jika menerima masukan 1 dapat ke S2 atau tetap di
S1. Dengan demikian diagram diatas adalah NFA.

b) Tunjukkan bahwa diagram berikut adalah DFA:

Jawab:
Pada setiap state, jika menerima masukan selalu hanya satu next-state yang
dituju. Dengan demikian diagram di atas adalah DFA.

5
E. FSA SEBAGAI PENGENAL BAHASA REGULAR
FSA baik DFA maupun NFA merupakan pengenal terhadap kelas bahasa regular,
yang dapat dicirikan sebagai berikut:

 Aturan bahasa regular memiliki aturan produksi α  β


α : hanya terdiri dari satu simbol non-terminal saja, atau |α| = 1.
β : dalam bentuk salah satu diantara a, aB, atau ε.

 Tiap aturan produksi yang mungkin, dapat diwakili oleh gerakan dalam
FSA sebagai berikut:

1. Ekspresi regular  diwakili oleh gerakan:

2. Ekspresi regular ε diwakili oleh gerakan:

3. Ekspresi regular a, atau r aturan produksi A  a diwakili oleh:

4. Aturan produksi A  aB diwakili oleh:

5. Aturan produksi A  ε diwakili oleh:

6. Aturan produksi rekursif A  aA diwakili oleh:

Dengan demikian jika dimiliki suatu grammar regular G tertentu maka


akan dapat ditemukan FSA yang mampu mengenali bahasa yang

6
dibangkitkan oleh grammar tersebut. Demikian juga jika dimiliki
suatu FSA maka akan dapat ditentukan tata bahasa (grammar) regular
yang membangkitkan bahasa yang dikenali FSA tersebut.

Contoh 5:
Tentukan tata bahasa (grammar) yang mengenali bahasa yang dibangkitkan
oleh FSA berikut:

Jawab:
Grammar G(∑,N,S,P), dimana ∑ = {0,1}, dan N = {S,A,B} yakni dengan
mengamati diagram dan menganalogikan state-state sebagai non-terminal,
yaitu S0 terkait dengan non-terminal S, S1 terkait dengan non-terminal A,
dan S2 terkait dengan non-terminal B. Jika diagram tersebut diuraikan
setiap tahapnya akan berkaitan dengan aturan-aturan produksi P seperti
uraian berikut:

Analog dengan aturan S  1A

Analog dengan aturan A  0A

Analog dengan aturan A  1B

Analog dengan aturan S  0B

Analog dengan aturan B  ε

7
Dengan demikian ada 5 aturan produksi yang menjadi bagian dari tata bahasa
yang membangkitkan bahasa yang sama dengan bahasa yang dikenali oleh FSA
tersebut, yaitu:

P = {S1A, A0A, A1B, S0B, Bε}

Contoh 6:
Tentukan FSA yang mampu mengenali bahasa yang dibangkitkan oleh grammar
G(∑,N,S,P), dimana ∑={0,1}, N={A,B}, dan P=S0A; A0A; A1B; B1B; Bε

Jawab:
Jika aturan produksi tersebut dirinci menjadi:

1. S0A
2. A0A
3. A1B
4. B1B
5. Bε

Penurunan string dapat menempuh aturan 1, 3, 5: S0A01B01ε01 atau


aturan 1 dilanjutkan 2 (diulang tak terbatas), dilanjutkan 3, kemudian 4
(diulang tak terbatas), dan aturan 5:
S0A00A000A...0..0A0..01B0..011B0..0111B0..01..ε0..01...

Sehingga bahasa yang dibangkitkan oleh tata bahasa (grammar) tersebut


adalah L(G)={00*11*}.

Adapun FSA yang mengenali bahasa tersebut adalah: