Anda di halaman 1dari 15

MAKALAH

FINITE STATE AUTOMATA

Disusun Oleh:
Ahmad Luthfillah
Program Studi / Semester

: Teknik Informatika / VII-A

Dosen Pengampu

: Sri Handriyana D.H., M.Kom.

Mata Kuliah

: Teori Bahasa dan Otomata

PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI


MANAJEMEN
INFORMATIKA DAN KOMPUTER SYAIKH ZAINUDDIN
NAHDLATUL WATHAN ANJANI
2014
1

KATA PENGANTAR

Bismillairrahhmanirrahim
Alhamdulillah, puja dan puji syukur penulis haturkan ke hadirat
Allah

SWT.

yang

telah

melimpahkan

kasih,

rahmat,

nikmat,

dan

kesempatan kepada kita semua pada umumnya, dan khusus untuk penulis
sehingga dapat menyelesaikan penyusunan makalah Teori Bahasa dan
Otomata tentang Finite State Automata (FSA) ini. Shalawat serta salam
selalu

tercurah

kepada

junjungan

alam,

kekasih

Allah,

Rasulullah

Muhammad SAW. Tidak lupa ucapan terima kasih kepada semua pihak
yang telah mendukung dan membantu penulis dalam menyelesaikan
makalah ini, terutama kepada ibu Sri Handriyana D.H., M.Kom. selaku
dosen pembimbing mata kuliah Teori Bahasa dan Otomata, segenap
keluarga, teman-teman seangkatan, dan yang lainnya yang tidak dapat
penulis sebutkan seluruhnya.
Penulis menyadari makalah tentang Finite State Automata
(FSA) ini masih jauh dari kata baik, jika tidak boleh dikatakan sempurna.
Oleh karena itu, saran, masukan, dan kritik yang membangun penulis
harapkan dapat disampaikan dengan baik kepada penulis. Harapan penulis
dengan diselesaikannya makalah ini adalah agar dapat memberikan
manfaat bagi penulis dan pembaca baik dari sisi akademis maupun
lainnya. Semoga dapat memberikan sumbangsih sekecil apapun bagi
rekan-rekan pembaca dan pihak-pihak yang, setidaknya, membutuhkan
referensi untuk makalah, karya tulis, atau bahan belajar.

Penulis

BAB I. PENDAHULUAN

1.1. Latar Belakang


Komputer mengikuti sejumlah prosedur sistematis, atau algoritma, yang dapat
diaplikasikan untuk serangkaian input (string) yang menyatakan integer dan
menghasilkan jawaban setelah sejumlah berhingga langkah. Teori otomata adalah studi
tentang peralatan atau mesin komputasi abstrak, yang dapat didefinisikan secara
matematis. Tahun 1930-an Alan Turing telah mempelajari mesin abstrak yang memiliki
kemampuan seperti komputer sekarang (dalam hal apa yang dihitung). Mesin abstrak
merupakan model teoritis dari perangkat keras atau perangkat lunak yang digunakan
dalam teori otomata.
Tipe paling sederhana dari mesin abstrak adalah finite automaton atau finite
state machine. Prinsip yang mendasari mesin ini adalah sistem pada setiap saat dalam
salah satu dari sejumlah state berhingga dan bergerak diantara state-state tersebut dalam
merespon sinyal input individual.
Teori otomata mempelajari model mesin komputer menggunakan model
matematika. Namun, matematika yang digunakan benar-benar berbeda disbanding
matematika klasik dan kalkulus. Model yang digunakan adalah model mesin state atau
model transisi state.
1.2. Tujuan
Tujuan penyusunan makalah ini adalah agar dapat menjadi
bahan referensi untuk mempelajari Finite State Automata yang
merupakan bagian dari materi pembelajaran Teori Bahasa dan
Otomata. Dengan demikian, penulis berharap makalah ini dapat
memberikan manfaat bagi rekan-rekan mahasiswa maupun dosen
pengampu bersangkutan, serta masyarakat pada umumnya.
1.3. Metode Penyusunan

Dalam menyusun makalah ini, penulis mempergunakan metode kepustakaan.


Penulis melakukan studi literatur terkait cara penyusunan materi makalah. Dalam metode
ini, penulis mencari, mendownload, dan membaca beberapa literatur berupa materi
presentasi PowerPoint atau resume.

BAB II. PEMBAHASAN

2.1. Pengertian Finite State Automata


Finite State Automata (FSA) merupakan suatu mesin abstrak
yang

digunakan

untuk

merepresentasikan

penyelesaian

suatu

persoalan dari suatu sistem diskrit. Sebagai sebuah mesin, maka FSA
akan bekerja jika diberikan suatu masukan. Hasil proses adalah suatu
nilai kebenaran diterima atau tidaknya masukan yang diberikan.
Finite State Automata merupakan suatu tool yang berguna
untuk merancang sistem nyata. Finite State Automata memiliki state
yang banyaknya berhingga, jika diberikan suatu simbol input, maka
dapat terjadi suatu perpindahan dari sebuah state ke state lainnya.
Perubahan state tersebut dinyatakan oleh suatu simbol transisi.
Mekanisme

FSA

tidak

memiliki

memori

sehingga

selalu

mendasarkan prosesnya pada posisi state saat ini. Misalnya pada


mekanisme kontrol pada sebuah lift, selalu didasari pada posisi lift saat
itu pada suatu lantai, pergerakan ke atas atau ke bawah dan
sekumpulan permintaan yang belum terpenuhi.
Finite State Automata didefinisikan sebagai pasangan 5 tupel,
yaitu Q, , , S, dan F, di mana:
Q

: himpunan hingga state

: himpunan hingga simbol input (alfabet)

: fungsi transisi, menggambarkan transisi state FSA akibat


pembacaan simbol input. Fungsi transisi ini biasanya
diberikan dalam bentuk tabel.

S Q : state AWAL
F Q : himpunan state AKHIR
4

Terdapat dua jenis FSA, yaitu Deterministic Finite Automata


(DFA) dan Non-deterministic Finite Automata (NFA).
2.1.1. Deterministic Finite Automata (DFA)
Deterministic Finite Automata memiliki aturan bahwa dari
suatu state ada tepat satu state berikutnya untuk setiap simbol
masukan yang diterima.
Secara formal DFA didefinisikan dengan 5 tuple, yaitu:
M = (Q, , , S, F)
di mana :
Q : himpunan state/kedudukan

: himpunan simbol input

: fungsi transisi

: State awal (initial state)

: himpunan state akhir (final state)

Contoh DFA:

1
1

Keterangan:

Q = {q1, q2, q3}

q1

q1

q2

S = q1

q2

q3

q2

F = q3

q3

q1

q3

= {0,1}

Aturan-aturan pada DFA adalah:

Untuk sebuah state dan input yang berlaku bisa

ditentukan tepat satu state berikutnya.


Suatu string x dinyatakan diterima apabila:
1. (S,x) berada pada state akhir
2. M adalah sebuah bahasa FSA

M = (Q, , , S, F)
Menerima bahasa yang disebut L(M) yang merupakan
himpunan { x | (S,x) di dalam F }

2.1.2. Nondeterministic Finite Automata (NFA)


Nondeterministic Finite Automata memiliki aturan bahwa
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.
Secara formal DFA didefinisikan dengan 5 tuple, yaitu:
M = (Q, , , S, F)
di mana :
Q : himpunan state/kedudukan

: himpunan simbol input

: fungsi transisi

: State awal (initial state)

: himpunan state akhir (final state)

Contoh NFA:

Keterangan:

Q = {{},{q0},{q1},{q2},{q1,q2}}

= {p,r}
S = q0
F = {{q1},{q1,q2}}

{}

{}

{}

{q0}

{q1,q2}

{}

{q1}

{}

{q2}

{q2}

{q1}

{q1}

{q1,q2}

{q1}

{q1,q2}

Aturan-aturan pada NFA adalah:

Suatu string diterima oleh NFA bila terdapat suatu


urutan

transisi

sehubungan

dengan

input

string

tersebut dari state awal sampai state akhir.


NFA harus dicoba semua kemungkinan yang ada

sampai terdapat satu yang mencapai state akhir.


Suatu string x dinyatakan diterima oleh bahasa NFA,
M = (Q, , , S, F) apabila:
{x | (S,x) memuat sebuah state di dalam F}

2.2. Finite State Automata dengan Output


2.2.1.
Mesin Moore
a. Definisi
Mesin Moore didefinisikan dalam 6(enam) tupple, Mo =
(Q,,,S,,), di mana :
Q = Himpunan state terbatas / letter
= Himpunan simbol input
= Fungsi transisi
S = State awal, S Q
= Himpunan simbol output / karakter
= Fungsi output untuk setiap state
Pada

mesin

Moore,

diawal

proses

selalu

mencetak/menghasilkan karakter yang berada pada start


state. Mesin Moore tidak mendefinisikan suatu bahasa dalam
menerima

untai-untai,

karena

setiap

input

string

menghasilkan output string dan tidak terdapat final state.


Proses akan berhenti jika input letter/abjad terakhir dibaca
dan output karakter terakhir dicetak. Jikalau input string
misalnya n abjad, maka output string akan terdapat n+1
karakter karena terdapat n+1 state yang dilalui dalam
prosesnya/path.

b. Representasi Graf
Misalkan kita ingin memperoleh sisa pembagian (modulus)
suatu bilangan dengan tiga (3) dengan input yang dinyatakan
dalam biner, maka:
Q = (q0,q1,q2), = {0,1}, = {0,1,2}, S = q0, (q0) =
0, (q1) = 1, (q2) = 2
Prinsipnya:

jika i diikuti dengan 0, maka hasilnya 2i:


1012 = 5; 10102 = 2*5 = 10;
jika i diikuti dengan 1, maka hasilnya 2i+1:
1012 = 5; 10112 = 2*5+1 = 11;
jika i/3 mempunyai sisa p, maka untuk input
berikutnya bernilai 0, maka 2i/3 mempunyai sisa

2p mod 3:
untuk p = 0, maka 2p
untuk p = 1, maka 2p
untuk p = 2, maka 2p
jika i/3 mempunyai sisa

mod 3 = 0;
mod 3 = 2;
mod 3 = 1;
p, maka untuk input

berikutnya bernilai 1, maka (2i+1)/3 mempunyai


sisa (2p+1) mod 3:
untuk p = 0, maka (2p+1) mod 3 = 1;
untuk p = 1, maka (2p+1) mod 3 = 0;
untuk p = 2, maka (2p+1) mod 3 = 2;

Dari gambar di atas:


Misal: 5 mod 3 = ?
Input:101,

maka

urutan

state

yang

dicapai:

q0,q1,q2,q2
State terakhir yang dicapai adalah q2/2, (q2)
=2
Jadi, 5 (1012) mod 3 = 2
2.2.2.
Mesin Mealy
a. Definisi

Mesin Mealy didefinisikan dengan enam (6) tupple, Me =


(Q,,,S,,), dimana :
Q = Himpunan state terbatas / letter
= Himpunan simbol input
= Fungsi transisi
S = State awal, S Q
= Himpunan simbol output / karakter
= Fungsi output untuk setiap transisi
Setiap edge yang terbentuk dilabeli komposisi simbol I/O
(input/output). Setiap state harus mempunyai satu buah edge
yang

mengarah

ke

state

berikutnya

untuk

setiap

kemungkinan input letter. Edge yang dilalui tergantung


kepada input letter i, ketika menjelajahi edge kita harus
mencetak

output

karakter

o.

Mesin

Moore

tidak

mendefinisikan suatu bahasa dalam menerima untai-untai,


karena setiap input string menghasilkan output string dan
tidak terdapat final state. Jikalau input string misalnya n
abjad, maka output string akan terdapat n karakter.
b. Representasi Graf
Misalkan
kita
ingin

mendeteksi

ekspresi

reguler

(0+1)*(00+11). Maka:
M = (Q,,,S,,);
Q : q0,q1,q2;
: [0,1];
S : q0;
: [0,1,2];
(q0,0) = T;
(q0,1) = T;
(q1,0) = Y;
(q1,1) = T;
(q2,0) = T;
(q2,1) = Y;

2.3. Aturan Produksi Finite State Automata


Aturan-aturan produksi dapat dikonstruksi untuk suatu tata bahasa
regular. Batasan aturan produksi untuk bahasa reguler adalah:

(bisa dibaca : menghasilkan )


: sebuah symbol variable
: maksimal memiliki sebuah symbol variabel yang terletak di
paling kanan bila ada
atau bisa berupa simbol terminal atau simbol non-terminal/variabel
atau bisa berupa simbol terminal atau simbol non-terminal/variabel.
Suatu tata bahasa (grammar) didefinisikan dengan 4 tuppel:
(G=V,T,P,S)
di mana:
V = himpunan simbol variabel/non-terminal
T = himpunan simbol terminal
P = kumpulan aturan produksi
S = simbol awal
* Simbol variabel/non-terminal adalah simbol yang masih
bisa diturunkan, sedang simbol terminal sudah tidak bisa
diturunkan lagi.

10

* Simbol terminal biasanya dinyatakan dengan huruf kecil,


missal

a,b,c.

Simbol

non-terminal/variabel

biasanya

dinyatakan dengan huruf besar, missal A,B,C.


Mengkonstruksi Aturan Produksi FSA

11

Gambar Mesin FSA


b

b
a

q1

12

Gambar di atas memiliki input a dan b (terminal). Untuk


mengkonstruksi aturan produksi FSA, maka:
1. Tentukan S sebagai simbol awal. S diidentikkan dgn q 0. q0
mendapat input a menjadi q1. Bisa dituliskan sebagai aturan
produksi:
S aE
E diidentikkan dengan q1
2. Dari q1 mendapat transisi (tanpa menerima input) ke q 2
dan q3. Maka, aturan produksinya adalah:
EA
& EB
3. q2 diidentikkan sebagai A, dan q3 sebagai B
4. Kumpulan aturan produksi yang diperoleh bisa dituliskan
sebagai berikut:
S aE
EAB
A aA b
B bB b
Secara formal, tata bahasa yang diperoleh dari FSA adalah:
V= S,E,A,B
T = a,b
P = S aE, E A B, A aA b, B bB b

S=S

13

KESIMPULAN
Finite State Automata dengan output merupakan evolusi dari Finite
State Automata konvensional yang mempunyai kemampuan lebih yaitu
menghasilkan output. Mesin Mealy dan Mesin Moore merupakan contoh
konkret dari FSA dengan output. Tujuan inti dari penemu mesin ini adalah
untuk mendesain suatu model matematika untuk sirkuit sekuensial.
Output pada

mesin

Mealy

berasosiasi dengan

rule

transisi,

sementara pada mesin Moore output berasosiasi dengan state. Pada


mesin Mealy maupun Moore, tidak terdapat final state sehingga tidak bisa
mendefinisikan suatu bahasa dari untai-untai masukan.

14

DAFTAR RUJUKAN
_____. (2010). Teori Bahasa dan Automata: Week 6. (PPTM),
http://xa.yimg.com/kq/groups/25675390/1281568777/name/week6.
pptm (diakses pada 18 Januari 2014)
El-Said, Fairuz. 2011. Finite State Automata. (PDF),
http://fairuzelsaid.wordpress.com (diakses pada 18 Januari 2014)
Subiyanto, Aris Eka. 2009. AUTOMATA dan BAHASA FORMAL Praktika
Finite Automata Dengan Output. (DOC),
http://ilmukomputer.org/wp-content/uploads/2009/05/praktikafinite-automata-dengan-output.doc (diakses pada 18 Januari 2014)

15

Anda mungkin juga menyukai