Oleh:
Fahmi Abdullah, ST., M.Kom
1
Push Down Automata (PDA)
1. Merupakan mesin abstrak yang mengenali CFG
2. Definisi Formal:
M = (Q, Σ, Г, δ, q0, Z0, F)
Keterangan:
• Q = himpunan state
• Σ = simbol-simbol input
• Г = simbol-simbol stack
• δ = fungsi transisi, Q x (Σ {ε}) x Г
• q0 = state awal, q0 ϵ Q
• Z0 = Simbol Stack Awal
• F = Final state, F Q
2
Push Down Automata (PDA)
Contoh: (q0, a, Z0) = (q0, aZ0)
State Input Simbol Stack
3
Mekanisme kerja PDA
1. Menggunakan konsep
stack
2. Operasi: push
pop
3. Setiap transisi /operasi
terjadi di TOP STACK
4. Stack terdiri dari sel-sel
yang hanya boleh
memuat satu simbol
stack
4
Deskripsi Seketika
Adalah suatu cara untuk menggambarkan
proses pemeriksaan suatu input, notasinya
sebagai berikut:
(q0, aba, Z0) (q0, ba, aZ0)
(q1, a, aZ0)
(q1, ε, Z0)
(q2, ε, Z0)
5
Berdasarkan transisinya, PDA terbagi menjadi:
1. PDA Deterministik
2. PDA Non-Deterministik
6
I. PDA Deterministik
Contoh: δ : (q0, a, Z0) = (q0, aZ0)
(q0, b, Z0) = (q0, bZ0)
1. Q = {q0, q1, q2} (q0, a, a) = (q0, aa)
Σ = {a, b, c} (q0, b, a) = (q0, ba)
(q0, a, b) = (q0, ab)
Г = {a, b, Z0}
(q0, b, b) = (q0, bb)
q0 = q0 (q0, c, Z0) = (q1, Z0)
(q0, c, a) = (q1, a)
F = {q2}
(q0, c, b) = (q1, b)
(q1, a, a) = (q1, ε)
(q1, b, b) = (q1, ε)
(q1, ε, Z0) = (q2, ε)
7
8
Contoh:
1) Cek apakah string ‘abcba’ diterima oleh PDA?
(q0, abcba, Z0) (q0, bcba, aZ0)
(q0, cba, baZ0)
(q1, ba, baZ0)
(q1, a, aZ0)
(q1, ε, Z0)
( q2 , ε, Z0)
؞diterima
9
Contoh:
2) Cek apakah string ‘bbc’ diterima oleh PDA?
(q0, bbc, Z0) (q0, bc, bZ0)
(q0, c, bZ0)
(q1, ε, bbZ0)
؞tidak diterima
10
Contoh:
2. Q = {q1, q2} δ : (q1, 0, R) = (q1, BR)
(q1, 0, B) = (q1, BB)
Σ = {0, 1, c} (q1, 0, G) = (q1, BG)
Г = {R, B, G} (q1, 1, R) = (q1, GR)
(q1, 1, B) = (q1, GB)
q0 = q1
(q1, 1, G) = (q1, GG)
Z0 = R (q1, c, R) = (q2, R)
(q1, c, B) = (q2, B)
F=ø
(q1, c, G) = (q2, G)
(q2, ε, R) = (q2, ε)
(q2, 0, B) = (q2, ε)
(q2, 1, G) = (q2, ε)
11
Contoh:
1) Periksa apakah string ‘1c1’ diterima oleh
PDA?
(q1, 1c1, R) (q1, c1, GR)
(q2, 1, GR)
(q2, ε, R)
(q2, ε, ε)
؞diterima
12
Contoh:
2) Periksa apakah string ‘0101’ diterima oleh
mesin PDA?
(q1, 0101, R) (q1, 101, BR)
(q1, 01, GBR)
(q1, 1, BGBR)
(q1, ε, GBGBR)
؞tidak diterima
13
Contoh:
3) Periksa apakah string ‘0c01’ diterima oleh
mesin PDA?
(q1, 0c01, R) (q1, c01, BR)
(q2, 01, BR)
(q2, 1, R)
؞tidak diterima
14
Contoh:
4) Periksa apakah string ‘0c0’ diterima oleh
mesin PDA?
(q1, 0c0, R) (q1, c0, BR)
(q2, 0, BR)
(q2, ε, R)
(q2, ε, ε)
؞diterima
15
II. PDA Non-Deterministik
Contoh: δ : (q0, a, Z0) = (q0, aZ0), (q1, aZ0)
(q0, b, Z0) = (q0, bZ0), (q1, aZ0)
1. Q = {q0, q1, q2} (q0, a, a) = (q0, aa), (q1, a)
Σ = {a, b} (q0, b, a) = (q0, ba), (q1, a)
(q0, a, b) = (q0, ab), (q1, b)
Г = {a, b, Z0}
(q0, b, b) = (q0, bb), (q1, b)
q0 = q0 (q0, ε, Z0) = (q1, Z0)
(q0, ε, a) = (q1, a)
F = {q2}
(q0, ε, b) = (q1, b)
(q1, a, a) = (q1, ε)
(q1, b, b) = (q1, ε)
(q1, ε, Z0) = (q2, Z0)
16
17
Contoh:
Cek apakah string ‘baab’ diterima?
(q0, baab, Z0) (q1, aab, aZ0) Ada istilah ‘back track’
(q1, ab, Z0)
؞tidak diterima
18
Contoh:
2. Q = {q0, q1} δ : (q0, 1, Z0) = (q0, XZ0)
Σ = {0, 1} (q0, 1, X) = (q0, XX)
Г = {Z0, X} (q0, 0, X) = (q1, X)
q0 = q0 (q0, ε, Z0) = (q0, ε)
Z0 = Z0 (q1, 1, X) = (q1, ε)
F=ø (q1, 0, Z0) = (q0, Z0)
19
1. Periksa string: ‘110’
1. Kondisi awal 3. .
(inisialisasi)
2. . 4. .
؞tidak diterima
20
2. Periksa string: ‘01’
1. Kondisi awal 3. .
(inisialisasi)
2. . 4. . diterima
21
3. Periksa string: ‘010’
1. Kondisi awal 3. .
(inisialisasi)
2. . 4. .
؞tidak diterima
22
4. Periksa string: ‘10’
1. Kondisi awal 3. .
(inisialisasi)
؞tidak diterima
2. .
.
23
Himbauan
Jika ada contoh PDA yang kurang dimengerti dan
dipahami selama perkuliahan berlangsung,
dimohon untuk membaca materi “Teori Bahasa
Automata” halaman 30-32
24
Pembentukan PDA untuk suatu CFG:
Langkah-langkah:
1. Definisi:
Q = {q1,q2,q3}
S = q1
F = {q3}
Σ = Simbol Terminal
Г = Semua simbol variabel, terminal dan z
(simbol awal state)
25
Pembentukan PDA untuk suatu CFG:
26
Pembentukan PDA untuk suatu CFG:
27
Pembentukan PDA untuk suatu CFG:
2) (q2,ε,A) = {q2,w|Aw adalah sebuah produksi
dalam CFG} untuk semua variabel A.
3) (q2,a,a) = {q2, ε}, untuk setiap simbol terminal
/ untuk mem-pop pembandingan terminal yang
sama.
4) (q2,ε,z) = {q3,z}, bila selesai membaca
semua input dan top stack adalah z, berarti string
input sukses diterima oleh PDA (q3 adalah state
akhir).
28
Contoh:
1. CFG: D aDa|bDb|c 2 3 (q1,ε,z) = {(q2,Dz)}
Jawab: (q2,ε,D) = {(q2,aDa),
1 Q = {q1, q2, q3}
(q2,bDb),
S = q1 (q2,c)}
F = {q3} (q2,a,a) = {(q2, ε)}
Σ = {a, b, c} (q2,b,b) = {(q2, ε)}
Г = {D, a, b, c, z} (q2,c,c) = {(q2, ε)}
29
1. Benarkah input ‘aca’ diterima?
1. . 4. .
2. .
5. .
3. .
30
1. Benarkah input ‘aca’ diterima?
6. .
7. .
8. .
؞diterima
31
2. Cek input ‘ab’!
1. . 4. .
2. .
5. .
3. .
32
2. Cek input ‘ab’!
6. . 7. .
؞ditolak
33
3. Cek input ‘bcb’!
1. . 4. .
2. .
5. .
3. .
34
3. Cek input ‘bcb’!
6. .
7. .
8. .
؞diterima
35
4. Cek input ‘c’!
1. . 3. .
2. . 4. .
؞diterima
36
Contoh:
2. CFG: S aSbb|a 2 3 (q1,ε,z) = {(q2,Sz)}
Jawab: (q2,ε,S) = {(q2,aSbb),
1 Q = {q1, q2, q3}
(q2,a)}
S = q1 (q2,a,a) = {(q2, ε)}
F = {q3} (q2,b,b) = {(q2, ε)}
Σ = {a, b} (q2,ε,z) = {(q3, z)}
Г = {a, b, z}
37
PR Pertemuan ke-12 (e-Learning)
• Bagi yang mengumpulkan tugas, akan
dianggap hadir untuk pertemuan ke-12 pra-
UAS e-learning (3 Januari 2022) [menurut
sistem e-learning].
• Tugas berupa softfile harap dikumpulkan
paling lambat 3 Januari 2022 pkl. 23:59 WIB ke
situs e-learning STT Bandung
38
PR Pertemuan ke-12 (e-Learning)
• Periksa apakah string “aabb” diterima?
39
Bukti kirim e-learning
40
Contoh:
3. CFG: S aAA 2 3 (q1,ε,z) = {(q2,Sz)}
A aS|bS|a (q2,ε,S) = {(q2,aAA)}
Jawab: (q2,ε,A) = {(q2,aS),
1 Q = {q1, q2, q3}
(q2,bS),
S = q1 (q2,a)}
F = {q3} (q2,a,a) = {(q2, ε)}
Σ = {a, b} (q2,b,b) = {(q2, ε)}
Г = {S, A, a, b, z}
(q2,ε,z) = {(q3, z)}
41
Intermezzo
1. Siapa di sini yang dulunya pernah menulis sepucuk
surat (kepada kerabat atau orangtua)?
2. Di era teknologi SMS maupun messenger saat ini,
masih adakah orang yang menulis dan mengirim
sepucuk surat?
• Semoga ini bisa membuat kita bernostalgia sejenak,
seperti apa sih kelebihan surat dibandingkan SMS
maupun messenger saat ini (teknologi messenger saat
generasi orangtua kita masih kecil).
• Letter Bee Opening 2 (season 1).mp4
42