MAKALAH
FINITE STATE AUTOMATA
Disusun Oleh: Ahmad Luthfillah
Program Studi / Semester Semester : Teknik Informatika 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 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 F in ite State Automata (F SA) 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 F in ite State Automata (F SA) 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
2
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.
3
BAB II. PEMBAHASAN
2.1. Pengertian F in ite State Au tomata
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 Terdapat dua jenis FSA, yaitu Deterministic Finite Automata (DFA) dan Nondeterministic Finite Automata (NFA).
2.1.1. Determi nistic F ini te Automata (DF A)
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 :
4
Q
: himpunan state/kedudukan
∑
: himpunan simbol input
∂
: fungsi transisi
S
: State awal (initial state)
F
: himpunan state akhir (final state)
Contoh DFA:
0
1 1
q₂
1 0
q₃
q₁
0
Keterangan: Q = {q1, q2, q3}
δ
0
1
∑ = {0,1}
q1
q1
q2
S = q1
q2
q3
q2
F = q3
q3
q1
q3
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. Nondeter min istic F in ite Au tomata (NF A)
Nondeterministic Finite Automata memiliki aturan bahwa untuk setiap state tidak selalu tepat ada satu state berikutnya untuk setiap simbol input yang ada.
5
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
S
: State awal (initial state)
F
: himpunan state akhir (final state)
Contoh NFA:
Keterangan: Q = {{},{q0},{q1},{q2},{q1,q2}} ∑ = {p,r } S = q0 F = {{q1},{q1,q2}} p
δ
r
{}
{}
{}
{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.
6
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. F in it e State Au tomata 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:
7
1012 = 5; 10112 = 2*5+1 = 11; jika i/3 mempunyai sisa p, maka untuk input berikutnya bernilai 0, maka 2i/3 mempunyai sisa 2 p mod 3: untuk p = 0, maka 2 p mod 3 = 0; untuk p = 1, maka 2 p mod 3 = 2; untuk p = 2, maka 2 p mod 3 = 1; jika i/3 mempunyai sisa p, maka untuk input berikutnya bernilai 1, maka (2i+1)/3 mempunyai sisa (2 p+1) mod 3: untuk p = 0, maka (2 p+1) mod 3 = 1; untuk p = 1, maka (2 p+1) mod 3 = 0; untuk p = 2, maka (2 p+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 q 2/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
8
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 F in it e State Au tomata
Aturan-aturan produksi dapat dikonstruksi untuk suatu tata bahasa regular. Batasan atur an produksi untuk bahasa reguler adalah:
9
(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. * 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 F SA
a
q q
0
a
b
q
q
1
4
b
q
b
3
Gambar Mesin FSA
Gambar di atas memiliki input „a‟ dan „b‟ (terminal). Untuk mengkonstruksi aturan produksi FSA, maka:
10
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 q2 dan q3. Maka, aturan produksinya adalah: EA
&
E B
3. q2 diidentikkan sebagai A, dan q 3 sebagai B 4. Kumpulan aturan produksi yang diperoleh bisa dituliskan sebagai berikut: S
aE
E
A B
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
11
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.
12
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/wpcontent/uploads/2009/05/praktika-finite-automata-dengan-output.doc (diakses pada 18 Januari 2014)
13