Anda di halaman 1dari 15

MAKALAH

PUSHDOWN AUTOMATA (PDA)


TEORI BAHASA & AUTOMATA
Dosen : Thoyyibah. T S.Kom., M.Kom.

Disusun oleh:
- Reza Ardian Sitorus ( 211011401391 )
- Rifqi Rizhansyah ( 211011401149 )

TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PAMULANG

Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax.


(021)7412566 Tangerang Selatan – Banten

1
KATA PENGANTAR

Puji syukur kami ucapkan kehadirat Allah SWT atas segala rahmat-Nya
sehingga makalah ini dapat tersusun sampai dengan selesai. Tidak lupa kami
mengucapkan terima kasih terhadap bantuan dari pihak yang telah berkontribusi dengan
memberikan sumbangan baik pikiran maupun materinya.
Penulis sangat berharap semoga makalah ini dapat menambah pengetahuan dan
pengalaman bagi pembaca. Bahkan kami berharap lebih jauh lagi agar makalah ini bisa
pembaca praktekkan dalam kehidupan sehari-hari.
Bagi kami sebagai penyusun merasa bahwa masih banyak kekurangan dalam
penyusunan makalah ini karena keterbatasan pengetahuan dan pengalaman Kami. Untuk
itu kami sangat mengharapkan kritik dan saran yang membangun dari pembaca demi
kesempurnaan makalah ini.

Pamulang, 10 November 2023

Penulis

2
DAFTAR ISI

MAKALAH PUSHDOWN AUTOMATA (PDA)................................................i


KATA PENGANTAR............................................................................................ii
DAFTAR ISI.........................................................................................................iii
DAFTAR GAMBAR.............................................................................................iv
BAB I PENDAHULUAN......................................................................................2
1.1 Latar Belakang Masalah.......................................................................2
1.2 Tujuan Penulisan...................................................................................2
BAB II PEMBAHASAN........................................................................................3
2.1 Teori Pushdown Automata (PDA).......................................................3
2.2 Memvisualisasikan Pushdown Automata melalui Diagram..............5
2.3 Jenis-jenis dan Contoh Pushdown Automata (PDA).........................6
2.1 Deterministik Pushdown Automata (DPDA)...................................6
2.2.2 Non-Deterministic Pushdown Automata (NPDA)...........................8
BAB III PENUTUP.............................................................................................11
3.1 Kesimpulan...........................................................................................11
DAFTAR PUSTAKA...........................................................................................12

3
DAFTAR GAMBAR

Gambar 2. 1 Diagram Pushdown Automata............................................................5


Gambar 2. 2 Ilustrasi Graf Pushdown Automata.....................................................8

4
BAB I
PENDAHULUAN

1.1 Latar Belakang Masalah


Pushdown automata (PDA) muncul sebagai hasil dari upaya untuk memahami dan
mengatasi keterbatasan finite automata dalam mengenali bahasa kontekstual. Finite
automata, meskipun mampu mengenali bahasa reguler, tidak dapat menangani bahasa
yang memerlukan pemrosesan kontekstual, seperti tanda kurung yang seimbang.
Pada tahun 1960-an, teori bahasa formal berkembang pesat, dan kebutuhan untuk
model komputasi yang lebih kuat muncul. PDA diperkenalkan oleh matematikawan dan
ilmuwan komputer Stephen Cole Kleene sebagai alat untuk memodelkan bahasa
kontekstual. Penggunaan tumpukan dalam PDA memberikan keunggulan dalam
mengelola informasi kontekstual, yang tidak dimiliki oleh finite automata.

1.2 Tujuan Penulisan


Tujuan dari makalah ini adalah untuk memberikan penjelasan mengenai Push
Down Automata.

5
BAB II
PEMBAHASAN

2.1 Teori Pushdown Automata (PDA)


Push Down Automata (PDA) merupakan mesin otomata dari Bahasa Bebas
Konteks (CFL). PDA digambarkan sebagai tempat penyimpanan tidak terbatas berupa
stack/tumpukan. Stack adalah kumpulan dari elemen-elemen sejenis dengan sifat
penambahan elemen dan pengambilan elemen memalui suatu tempat yang disebut top
of stack (puncak stack). Kita ingat bahwa sebuah stack diketahui top/puncaknya, dengan
aturan pengisian LIFO (Last In First Out). Pengambilan elemen dari stack dinyatakan
dengan operasi pop, sedang memasukkan elemen kedalam stack dengan operasi push.
Setiap elemen stack bisa memuat satu symbol, yang pada push down automata disebut
sebagai symbol stack.
Contoh sebuah stack:

Top stack →
A
D
E

Bila dilakukan operasi pop, maka kondisi stack menjadi:


Top stack →
D
E

Bila dilakukan operasi push B, maka kondisi stack menjadi:


Top stack →
B
D
E

6
Pada Pushdown Automata, terdapat 7 buah tuple; M = (Q, ∑, Γ, q 0, Z0, δ, F),
dimana:
Q = himpunan hingga state
∑ = alfabet input
Γ = alfabet/simbol stack

q0 ∈ Q = state awal
Z0 ∈ Γ = simbol awal stack
δ = fungsi transisi
F = himpunan state akhir/penerima

fungsi transisi : Q (   {})    2Q* (himpunan bagian dari Q  *)

(q0, a, Z0) = (q0, AZ0). push

Untuk state q  Q, simbol input a  , dan simbol stack X  , (q, a, X) = (p, )


berarti: PDA bertransisi ke state p dan mengganti X pada stack dengan string .

Konfigurasi PDA pada suatu saat dinyatakan sebagai triple (q, x, ),
dimana : q  Q : state pada saat tersebut, x * : bagian string input yang belum
dibaca, dan   * : string yang menyatakan isi stack dengan karakter terkiri
menyatakan top of stack.

Misalkan (p, ay, X) adalah sebuah konfigurasi,


dimana : a  , y  *, X  , dan   *. Misalkan pula  (p, a, X) = (q, )
untuk q  Q dan   *. Dapat kita tuliskan bahwa : (p, ay, X)  (q, y, ).

PDA memiliki 2 jenis transisi, yaitu :


1. Transisi memakai simbol input
Transisi ini bergantung pada simbol top of stack, dan state. Terdapat sejumlah
pilihan yang memungkinkan untuk bergerak, setiap pilihan terdiri dari state
berikutnya dan simbol- simbol untuk mengganti top of stack. Penggantian isi
stack dilakukan dengan operasi push dan pop.
2. Transisi ε.
Transisi ε tidak melakukan pembacaan input namun hanya menerima simbol top
of stack dan state. Transisi ini memungkinkan PDA untuk memanipulasi isi
stack dan berpindah antar state tanpa membaca input.

7
2.2 Memvisualisasikan Pushdown Automata melalui Diagram
Dalam ilmu komputer, konsep teoretis seperti Pushdown Automata sering kali
mendapat manfaat dari representasi visual. Diagram dapat membantu memahami
pengoperasian dan fungsinya. Diagram Pushdown Automata adalah alat visual yang
digunakan untuk mengekspresikan operasi dan transisi keadaan dalam Pushdown
Automata. Diagram Pushdown Automata menggunakan lingkaran untuk menandakan
keadaan, panah untuk melambangkan transisi, dan fungsi tumpukan berlabel yang
menunjukkan tindakan PUSH atau POP dari tumpukan. Keadaan dalam diagram
diwakili oleh lingkaran. Setiap lingkaran diberi label dengan nama keadaan tersebut.
Transisi digambarkan sebagai panah yang menghubungkan keadaan-keadaan. Label
pada panah ini mewakili kondisi transisi. Poin-poin berikut menguraikan komponen-
komponen penting dalam Diagram Pushdown Automata:
2. Keadaan : Ditampilkan dalam lingkaran, dilambangkan dengan label berbeda,
dengan keadaan awal umumnya menggunakan tanda panah masuk.
3. Transisi: Diilustrasikan sebagai panah yang menghubungkan berbagai keadaan,
diberi label dengan kondisi terjadinya transisi.
4. Operasi tumpukan: Ditampilkan di samping panah transisi, operasi ini menentukan
apakah suatu simbol akan dimasukkan atau dikeluarkan dari tumpukan.
5. Keadaan akhir: Keadaan di mana string masukan diterima, sering kali dilambangkan
dengan lingkaran ganda.

Gambar 2. 1 Diagram Pushdown Automata

8
2.3 Jenis-jenis dan Contoh Pushdown Automata (PDA)
Pushdown Automata dikategorikan menjadi dua jenis: Deterministic Pushdown
Automata (DPDA) dan Non-Deterministic Pushdown Automata (NPDA). Deterministic
Pushdown Automata (DPDA) hanya memiliki satu gerakan di setiap kondisi, sedangkan
Non-Deterministic Pushdown Automata (NPDA) dapat memiliki beberapa gerakan.
Penting untuk membedakan antara Pushdown Automata deterministik dan non-
deterministik. Kedua tipe ini berbagi fitur utama status, simbol input, dan operasi
tumpukan. Namun, fungsi transisi mereka berbeda secara signifikan, sehingga
mempengaruhi cara mereka memproses masukan dan kemajuan di seluruh negara. Di
luar tipe utama, terdapat beberapa variasi Pushdown Automata yang kurang umum,
dimodifikasi untuk memperoleh kemampuan atau perilaku pengoperasian tertentu,
yaitu:

 Visible Pushdown Automata (VPA) - Operasi push dan pop yang didefinisikan
secara eksplisit dalam simbol input.
 Automata Pushdown yang digerakkan oleh input - Operasi tumpukan ditentukan
oleh simbol input saat ini, dengan mengabaikan simbol teratas tumpukan.
 Counter Automata - Alih-alih tumpukan simbol, ia menggunakan penghitung
untuk mencatat nilai.

2.3.1 Deterministik Pushdown Automata (DPDA)


Penekanan Pushdown Automata dapat ditentukan oleh tujuh komponen:
(Q, ∑, Γ, q0, Z0, δ, F). Karakteristik utama dari DPDA adalah bahwa untuk
keadaan tertentu dan simbol masukan atau simbol tumpukan tertentu, hanya satu
transisi yang dapat terjadi. Hal ini membuat DPDA lebih mudah untuk diplot
dan dieksekusi. Namun, DPDA tidak dapat mengakomodasi seluruh Bahasa
Bebas Konteks (CFL) karena sifatnya yang deterministik.
Contoh Deterministik Pushdown Automata (DPDA):
PDA : M = (Q, ∑, Γ, q0, Z0, δ, F)
pengenal palindrome L = {xcxT | x ∈ (a | b)*}, dimana xT adalah cermin(x),
mempunyai tuple : Q = {q0, q1, q2}, F = {q2}, ∑ = {a, b, c}, Γ = {A, B, Z0}, dan
fungsi transisi δ terdefinisi melalui tabel berikut :
No. State Input TopStack Hasil
1 q0 a Z0 (q0, AZ0)
2 q0 b Z0 (q0, BZ0)
3 q0 a A (q0, AA)
4 q0 b A (q0, BA)
5 q0 a B (q0, AB)
6 q0 b B (q0, BB)
7 q0 c Z0 (q1, Z0)
8 q0 c A (q1, A)
9 q0 c B (q1, B)
10 q1 a A (q1, )
11 q1 b B (q1, )

9
12 q1  Z0 (q2, Z0)

Sebagai contoh, perhatikan bahwa fungsi transisi No. 1 dapat dinyatakan sebagai
: δ (q0, a, Z0) = (q0, AZ0). Pada tabel transisi tersebut terlihat bahwa pada state
q0 PDA akan melakukan PUSH jika mendapat input a atau b dan melakukan
transisi state ke state q1 jika mendapat input c. Pada state q 1 PDA akan
melakukan POP.

Berikut ini pengenalan dua string oleh PDA di atas :

1. abcba : (q0, abcba, Z0)  (q0, bcba, AZ0) (1)


 (q0, cba, BAZ0) (4)
 (q1, ba, BAZ0) (9)
 (q1, a, AZ0) (11)
 (q1, , Z0) (10)
 (q2, , Z0) (12) (diterima)
2. acb : (q0, acb, Z0)  (q0, cb, AZ0) (1)
 (q1, b, AZ0) (8), (crash  ditolak)
3. ab : (q0, ab, Z0)  (q0, b, AZ0) (1)
 (q0, , BAZ0) (4) (crash  ditolak)
Penerimaan dan penolakan tiga string di atas dapat dijelaskan
sebagai berikut :
1. String abcba diterima karena tracing sampai di state penerima
(q2) dan string “abcba” selesai dibaca (string yang belum dibaca =
).
2. String acb ditolak karena konfigurasi akhir (q 1, b, AZ0)
sedangkan fungsi transisi δ (q1, b, a) tidak terdefinsi.
3. String ab ditolak karena konfigurasi akhir (q0, , BAZ0) sedangkan
fungsi transisi δ (q0, , b) tidak terdefinsi.
Suatu string diterima jika Semua Masukan selesai dieksekusi dan Keadaan
terakhir merupakan keadaan yang diterima (simbol lingkaran ganda). Pada
keadaan akhir, isi tumpukan tidak diperdulikan (isi tumpukan dapat kosong).
Jika tidak memenuhi ketentuan tersebut maka string akan ditolak.

10
Ilustrasi graf fungsi transisi PDA di atas ditunjukkan melalui
gambar berikut :

Gambar 2. 2 Ilustrasi Graf Pushdown Automata

4. Notasi (p, ay, X)  (q, y, ) dapat diperluas menjadi :


(p, x, ) * (q, y, ), yang berarti konfigurasi (q, y, ) dicapai
melalui sejumlah (0 atau lebih) transisi.
5. Ada dua cara penerimaan sebuah kalimat oleh PDA, yang
masing-masing terlihat dari konfigurasi akhir, sebagaimana
penjelasan berikut :
Jika M = (Q, ∑, Γ, q0, Z0, δ, F) adalah PDA dan x ∈∑*, maka
x diterima dengan state akhir oleh PDA M Jika : (q 0, x, Z0) *
(q, , ) untuk  ∈ Γ * dan q ∈ A. x diterima dengan stack
hampa oleh PDA M jika : (q0, x, Z0) * (q, , ) untuk q ∈ Q.

Latihan
Berdasarkan contoh kasus sebelumnya, lakukanlah pengujian string berikut
menggunakan metode pushdown automata :
1. abcccba,
2. abca.

2.3.2 Non-Deterministic Pushdown Automata (NPDA)


Automata Pushdown Non-Deterministik memiliki representasi tupel yang
sama dengan DPDA. Namun, seperti yang tersirat dari namanya, NPDA dapat
memiliki beberapa kemungkinan transisi untuk simbol masukan yang sama,
bergantung pada simbol paling atas tumpukan. Perbedaan utamanya terletak
pada fungsi transisi δ, memungkinkan lebih dari satu langkah berikutnya untuk
keadaan tertentu, simbol masukan, dan kombinasi simbol tumpukan.

11
Contoh Non-Deterministic Pushdown Automata (NPDA):
PDA M = (Q, ∑, Γ, q0, Z0, δ, F)
pengenal palindrome L = {xxT | x ∈ (a | b)*} mempunyai komponen tuple
berikut : Q = {q0, q1, q2}, F = {q2}, ∑ = {a, b}, Γ = {a, b, Z0}, dan fungsi transisi
δ terdefinisi melalui tabel berikut :
No. State Input TopStack Hasil
1 q0 a Z0 (q0, aZ0), (q1, Z0)
2 q0 b Z0 (q0, bZ0), (q1, Z0)
3 q0 a a (q0, aa), (q1, a)
4 q0 b a (q0, ba), (q1, a)
5 q0 a b (q0, ab), (q1, b)
6 q0 b b (q0, bb), (q1, b)
7 q0  Z0 (q1, Z0)
8 q0  a (q1, a)
9 q0  b (q1, b)
10 q1 a a (q1, )
11 q1 b b (q1, )
12 q1  Z0 (q2, )

q0, aba, z = q0, ba, az (1 kiri)


= q1, a, az (4 kanan)
= q1, , z (10)
= q2, ,  (12) diterima
q0, aba, z = q0, ba, az (1 kiri)
= q0, a, baZ (4 kiri)
= q1, ,baZ (5 kanan)
= halt
q0, aa, Z = q0, a, aZ = q0, , aaZ = q1, , aaZ = halt
q0, aa, Z = q0, a, aZ = q1, , aZ = halt
q0, aa, Z = q1, a, Z = halt
q0, abba, Z = q0, bba, aZ = q0, ba, baZ = q0, a, bbaZ = q0, , abbaZ = q1,

Pada tabel transisi tersebut terlihat bahwa pada state q 0 PDA akan
melakukan PUSH jika mendapat input a atau b dan melakukan transisi state ke
state q1 jika mendapat input . Pada state q1 PDA akan melakukan POP. Kedua
contoh di atas menunjukkan bahwa PDA dapat dinyatakan sebagai mesin
PUSH-POP.

12
Berikut ini pengenalan string “baab” oleh PDA di atas :

1. (q0, baab, Z0)  (q0, aab, bZ0) (2 kiri)


 (q0, ab, abZ0) (5 kiri)
 (q1, b, abZ0) (3 kanan)
 (q1, b, bZ0) (11)
 (q1, , Z0) (10)
 (q2, , Z0) (12) (diterima)

2. (q0, baab, Z0)  (q0, baab, Z0) (2 kanan) (crash  ditolak)

3. (q0, baab, Z0)  (q0, aab, bZ0) (2 kiri)


 (q0, ab, abZ0) (5 kiri)
 (q0, b, aabZ0) (3 kiri)
 (q1, b, aabZ0) (4 kanan) (crash  ditolak)

4. (q0, baab, Z0)  (q0, aab, bZ0) (2 kiri)


 (q0, ab, abZ0) (5 kiri)
 (q0, b, aabZ0) (3 kiri)
 (q0, , baabZ0) (4 kiri)
 (q1, , baabZ0) (9) (crash  ditolak)
q0, aba, z = q0, ba, az = q1, a, az = q1, , z = q2, , 

Latihan
Berdasarkan contoh kasus sebelumnya, lakukanlah pengujian string berikut
menggunakan metode pushdown automata :
1. abba,
2. abcbcba.

13
BAB III
PENUTUP

3.1 Kesimpulan
Pushdown Automata (PDA) adalah model komputasi yang penting dalam teori
bahasa formal dan automata. PDA memainkan peran kunci dalam mengenali dan
memodelkan bahasa kontekstual, yang melibatkan pemrosesan informasi kontekstual
yang tidak dapat diakomodasi oleh finite automata.
Melalui penggunaan stack, PDA dapat mengelola informasi secara dinamis
selama proses komputasi, memungkinkan pengenalan pola dan struktur dalam bahasa
yang lebih kompleks. Keberadaan PDA memperluas cakupan pemahaman kita tentang
jenis bahasa yang dapat diakui oleh mesin komputasi.

14
DAFTAR PUSTAKA

Adil, A. (2018). Pengantar Teori Bahasa Formal, Otomata, Dan Komputasi.


Deepublish.
Aranski, A. (2018). Teori Bahasa dan Otomata. Pustaka Galeri Mandiri.
Hariyanto, B. (2004). Teori Bahasa, Otomata, dan Komputasi serta terapannya.
Bandung.
Hopcroft, J., & Ullman, J. (1979). Introduction to Automata Theory, Languages, and
Computation.
https://ocw.upj.ac.id. (n.d.). PUSH DOWN AUTOMATA (PDA).
https://www.studysmarter.co.uk. (n.d.). Push Down Automata.

15

Anda mungkin juga menyukai