Anda di halaman 1dari 34

Finite State Automata

(DFA & NFA)


Ressa Priskila, S.T., M.T.
Finite State Automata

 Apa itu Finite State Automata (FSA)?


• Finite State Automata adalah mesin abstrak berupa sistem
model matematika dengan masukan dan keluaran diskrit yang
dapat mengenali bahasa paling sederhana.

• Model matematika yang dapat menerima input dan


mengeluarkan output
Finite State Automata

 Apa itu Finite State Automata (FSA)?


• Memiliki state yang berhingga banyaknya dan dapat berpindah
dari satu state ke state lainnya berdasar input dan fungsi
transisi

• Tidak memiliki tempat penyimpanan/memory, hanya bisa


mengingat state terkini

• Mekanisme kerja FSA dapat diterapkan pada analisis leksikal,


text editor, protocol komunikasi jaringan, pencek parity..
Finite State Automata

 Arti bentuk (symbol) pada graph transisi transisi FSA?

Mesin Automata pengecek pariti ganjil


Biasa juga disebut graph transisi
Finite State Automata
 Pernyataan FSA secara formal?

FSA dinyatakan oleh 5 tuple M = (Q , Σ , δ , S , F ).


Keterangan :
Q = himpunan state.
Σ = himpunan simbol input.
δ = fungsi transisi δ : Q × Σ.
S = state awal / initial state , S ∈ Q.
F = state akhir, F ⊆ Q.

*Setiap otomaton:
a. mempunyai tepat satu S
b. mempunyai satu F atau lebih
Finite State Automata

 Contoh 1

Mesin Automata pengecek pariti ganjil.

Sistem akan menerima jika jumlah bit 1 adalah ganjil.


Finite State Automata

 Contoh 1
maka dapat ditulis:

Q = {Genap, Ganjil}
Σ = {0,1}
S = Genap
Fungsi transisi
F = {Ganjil}
δ(Genap,0) = Genap
δ(Genap,1) = Ganjil
δ(Ganjil,0) = Ganjil
δ(Ganjil,1) = Genap
Finite State Automata

 Contoh 1

Ketika mendapat input 1101 maka urutan state yang akan terjadi adalah
Genap 1 Ganjil 1 Genap 0 Genap 1 Ganjil

Berakhir dengan state Ganjil, maka 1101 diterima oleh mesin.


Finite State Automata

 Contoh 1

Ketika mendapat input 110 maka urutan state yang akan terjadi adalah
Genap 1 Ganjil 0 Ganjil 1 Genap

Berakhir dengan FSA Ganjil, maka 110 ditolak oleh mesin.


Finite State Automata

Berdasarkan pendefinisian kemampuan merubah statenya,


FSA dikelompokkan ke dalam dua jenis:

▪ Deterministic Finite State Automata (DFA)

▪ Non-Deterministic Finite State Automata (NFA)


Deterministic FSA (DFA)

Pada DFA, dari suatu state hanya ada tepat satu sate
berikutnya untuk setiap simbol masukan yang diterima
Deterministic FSA (DFA)
 Contoh 2:
Pada DFA, dari suatu state terdapat tepat satu sate
berikutnya untuk masukan yang diterima.
Deterministic FSA (DFA)
 Secara formal dinyatakan sebagai berikut:

Q = {q0, q1, q2} δ:


Σ = {a,b} δ(q0,a) = q0 δ(q1,b) = q2
S = q0 δ(q0,b) = q1 δ(q2,a) = q1
F = {q2} δ(q1,a) = q1 δ(q2,b) = q2
Deterministic FSA (DFA)
 Tabel Transisi
Biasanya fungsi transisi disajikan juga dalam bentuk tabel

δ a b
q0 q0 q1
q1 q1 q2
q2 q1 q2
Deterministic FSA (DFA)
 Kapan suatu string input dinyatakan diterima?

• Suatu string x dinyatakan diterima bila δ(S,x) berada pada state akhir

• Secara formal dinyatakan jika M adalah suatu FSA maka:

M= (Q , Σ , δ , S , F ) menerima Bahasa (L) yang disebut L(M) yang


merupakan himpunan {x|δ (S,x) di dalam F}
Deterministic FSA (DFA)
 Contoh 3:

Jika pada gambar Contoh 2 kita inputkan string ‘abb’ maka:


δ (q0, abb) = δ (q0, bb) = δ (q1, b) = q2
Karena q2 termasuk state akhir, maka ‘abb’ berada dalam L(M)
Deterministic FSA (DFA)
 Contoh 4:

Jika pada gambar Contoh 3 kita inputkan string ‘baba’ maka:


δ (q0, baba) = δ (q1, aba) = δ (q1, ba) = δ (q2, a) = q1
Karena q1 tidak termasuk state akhir, maka ‘baba’ tidak
berada dalam L(M)
Deterministic FSA (DFA)
 Contoh 5: Pengecekan bit 0 dan 1 genap

Tabel transisi

Gambar mesin DFA


Deterministic FSA (DFA)
 Secara formal dinyatakan sebagai berikut:

Q = {q0, q1, q2 , q3}


Σ = {0,1}
S = q0
F = {q0}
δ:
Deterministic FSA (DFA)
 Secara formal dinyatakan sebagai berikut:

String Status
0011 Diterima
00111 Ditolak
01010 Ditolak
010111 Diterima

Gambar mesin DFA


Deterministic FSA (DFA)
 Contoh 7:

Mesin DFA Tabel Transisi


Latihan DFA
 Contoh 6:

Mesin DFA String Status


01
10
1110
11
101
1100101
Tabel Transisi
0100011101
Non-Deterministic FSA (NFA)

 Kemungkinan transisinya ke lebih dari satu state. Dari suatu


state bisa terdapat 0, 1 atau lebih transisi dengan label input
yang sama.

 Perubahan state dapat terjadi secara spontan tanpa input


(transisi kosong)

 Pada NFA, kemungkinan transisinya dapat lebih dari satu state.

 String diterima NFA bila terdapat suatu urutan transisi


berdasar input, dari state awal ke state akhir.
Non-Deterministic FSA (NFA)

 Contoh 8:
FSA dinyatakan oleh 5 tuple M = (Q , Σ , δ , S , F )
dimana:
• Tabel Transisi
• Q = {q0, q1, q2 , q3 , q4}
• Σ = {a,b,c}
• S = q0
• F = {q4}
Non-Deterministic FSA (NFA)

 Contoh 8:
FSA dinyatakan oleh 5 tuple M = (Q , Σ , δ , S , F )
dimana:

• Tabel Transisi
Non-Deterministic FSA (NFA)

 Contoh 9:

Apakah gambar
disamping merupakan

NFA?
Non-Deterministic FSA (NFA)

 Contoh 9:

Tabel Transisi
Non-Deterministic FSA (NFA)

• Pada NFA, String diterima jika setidaknya ada 1 dari


semua kemungkinan transisi berakhir pada sebuah final
sate.

• Harus mencoba semua kemungkinan.


Non-Deterministic FSA (NFA)

 Contoh 10:

δ 0 1
q0 {q0,q3} {q0,q1}
q1 ε {q2}
q2 {q2} {q2}
q3 {q4} ε
q4 {q4} {q4}
Non-Deterministic FSA (NFA)

 Contoh 10:
Contoh string 01001

Non-Accepting State

Non-Accepting State

Accepting State
Non-Deterministic FSA (NFA)

• Pada NFA boleh terdapat transisi kosong

• Simbol ε berarti tanpa masukan atau disebut transisi


kosong

• Terjadi perubahan state secara spontan


Non-Deterministic FSA (NFA)

 Contoh 11:
Non-Deterministic FSA (NFA)

 Contoh 12:

String abab
NFA dan DFA
 Jadi perbedaan antara DFA dan NFA adalah

Anda mungkin juga menyukai