Anda di halaman 1dari 42

Push Down Automata (PDA)

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. Berdasarkan mekanisme penerimaan input,


PDA terbagi menjadi:
1. PDA Final State
2. PDA Null State

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. .

Tolong dikoreksi, jika menemukan kesalahan

‫؞‬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

Atau cari informasi lain yang relevan dengannya


dari sumber lain.

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:

2. Mesin ini dimulai dengan mem-push z pada


top stack, berikutnya lakukan salah satu dari
hal berikut:
1. Jika pada stack dari simbol tumpukan
adalah suatu variabel (misal: A), maka kita
menggantinya dengan ruas kanan dari A,
misal: Aw, maka kita ganti dengan w.

26
Pembentukan PDA untuk suatu CFG:

2. Jika top stack dari simbol tumpukan


adalah sebuah terminal dan jika ia
menyamai simbol masukan berikutnya, kita
pop dari tumpukan.
3. Berdasarkan aturan langkah (2), kita dapat
mengonstruksi 4 tipe transisi:
1) (q1,ε,z) = {q2,Sz}, untuk mem-push
simbol awal (S) ke Stack.

27
Pembentukan PDA untuk suatu CFG:
2) (q2,ε,A) = {q2,w|Aw 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

Anda mungkin juga menyukai