Anda di halaman 1dari 6

Deterministic Finite Automata

Dewi Kurniawati Hasanah


Departemen Teknik Informatika
Institut Teknologi Bandung

IF-ITB/DK/11 Des'03 Page 1


Matematika Informatik

Konfigurasi Model DFA


• Mesin finite-state
• Input : string
• Output : no output
• Satu input tape (read-only)
• Head tape : Input Tape
– Bergerak dr kiri ke kanan (dari awal 0 1 1 0 0 1 0 1
sampai akhir tape)
– Arah head tidak dapat diubah Head
– Satu simbol untuk satu saat
pembacaan
• Membaca satu masukan dr tape FiniteControl
Finite Control
– Mungkin mengubah / tidak
mengubah current state
– Head membaca input symbol
berikutnya

IF-ITB/DK/11 Des’ 03 Page 2


Matematika Informatik

1
Definisi DFA
• DFA terdiri dari 5-tuple:
M = (Q, Σ, δ, q0, F)
– Q : kumpulan state berhingga
– Σ : data input (alphabet)
– δ : fungsi transisi Q x Σ Æ Q
– q0 : state awal Є Q
– F : state akhir
• Rekam Struktur DFA : membaca state-
transition diagram
• Input tape : masukan string untuk M
IF-ITB/DK/11 Des’ 03 Page 3
Matematika Informatik

Input Tape
• FA menggunakan tape cells/tape squares
– Setiap tape berisi satu simbol Є Σ
– Marker tape 〈,〉
– Tape alphabet ΣT = Σ U {〈,〉}
• Konfigurasi Tape : pasangan (p,w) dimana
0≤ p ≤ |w| + 1, w Є Σ*
– p adalah posisi head
– w adalah content tape
– p = 0, p mengacu pada marker tape 〈
– p = |w|+1, p mengacu pada marker tape 〉
– (p≠0) & (p≠|w|+1), head mengacu w(p)

IF-ITB/DK/11 Des’ 03 Page 4


Matematika Informatik

2
Konfigurasi DFA
• Konfigurasi DFA pada input w Є Σ* adalah
urutan pasangan (q,[p,w])
– q Є Q adalah state
– [p,w] adalah konfigurasi input tape
• Konfigurasi awal mesin M
C0 = (q,[1,w])
• Next mesin DFA dinotasikan sbg |-
C1 |- C2 jika dan hanya jika
• p2= p1+1 dan ada transisi
• δ(q1,σ[p,w]) = q2

IF-ITB/DK/11 Des’ 03 Page 5


Matematika Informatik

Contoh DFA
• Q = {q0,q1,q2,q3} • (q0,ababbabb)
• Σ = {a,b} |-Q(q0,babbabb)
• q0 = q0 |-Q(q1,abbabb)
• F = {q0,q2,q3} |-Q(q0,bbabb)
|-Q(q1,babb)
• State-transition diagram: |-Q(q2,abb)
q σ δ(q, σ)
|-Q(q0,bb)
q0 a q0
|-Q(q1,b)
q0 b q1
|-Q(q2,ε)
q1 a q0
q1 b q2
q2 a q0
q2 b q3
q3 a q3
q3 b q3

IF-ITB/DK/11 Des’ 03 Page 6


Matematika Informatik

3
Contoh DFA

IF-ITB/DK/11 Des’ 03 Page 7


Matematika Informatik

Contoh DFA

IF-ITB/DK/11 Des’ 03 Page 8


Matematika Informatik

4
Contoh DFA

IF-ITB/DK/11 Des’ 03 Page 9


Matematika Informatik

Contoh Penggunaan DFA


• Pattern Recognition :
– Lexical Analysis
– Parser
• Compiler harus bisa mengenali string yang
dikategorikan ke dalam variable names, numeric
constants, reserved words dll
• Masalah mengenali variabel
– Variabel pada programming language secara umum
• Diawali huruf dan bisa diikuti oleh huruf atau angka
• Tidak bisa diawali dengan angka
– Setiap lexical token diakhiri oleh of simbol yang khusus
yang sering disebut end-of-string (EOS) markers or
delimiters. exampe: <space> <CR> <tab> ;

IF-ITB/DK/11 Des’ 03 Page 10


Matematika Informatik

5
Diagram Transisi DFA
• Variabel • Identifier dan number

IF-ITB/DK/11 Des’ 03 Page 11


Matematika Informatik