materi

Chapter 10: Pushdown Automata (PDA) dan Komputasi Berbasis Stack

Konsep & Pembahasan Terperinci

1. Hierarki Mesin Berdasarkan Memori Sementara

Jenis Mesin AutomataKarakteristik Memori SementaraKelas Bahasa yang Dikenali
Finite Automata (FA)Tidak mempunyai memori (hanya mengingat via state)Regular Language
Pushdown Automata (PDA)Stack terstruktur LIFO (akses terbatas hanya di puncak)Context-Free Language (CFL)
Turing Machine (TM)Pita tak terhingga dengan akses acak (Random Access)Recursively Enumerable

2. Definisi Formal 7-Tuple Pushdown Automaton

Suatu PDA didefinisikan secara matematis oleh 7 komponen:

M=(Q,Σ,Γ,δ,q0,Z0,F)M = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)

Di mana:

  1. QQ : Himpunan berhingga state.

  2. Σ\Sigma : Alfabet simbol masukan (input).

  3. Γ\Gamma : Alfabet simbol stack (stack alphabet).

  4. δ\delta : Fungsi transisi:

δ:Q×(Σ{ϵ})×Γ2Q×Γ\delta : Q \times (\Sigma \cup \{\epsilon\}) \times \Gamma \longrightarrow 2^{Q \times \Gamma^*}
  1. q0q_0 : State awal (q0Qq_0 \in Q).

  2. Z0Z_0 : Simbol awal pengisi dasar stack (Z0ΓZ_0 \in \Gamma).

  3. FF : Himpunan state final (FQF \subseteq Q).


3. Cara Kerja Transisi dan Instantaneous Description (ID)

Setiap transisi dinyatakan dalam bentuk:

δ(q,a,X)={(p,α)}\delta(q, a, X) = \{(p, \alpha)\}

Artinya: Ketika mesin berada di state qq, membaca simbol input aa (bisa berupa ϵ\epsilon), dan simbol di puncak stack adalah XX:

  1. Mesin menghapus (pop) simbol XX dari puncak stack.

  2. Mesin berpindah ke state pp.

  3. Mesin menambahkan (push) deretan simbol αΓ\alpha \in \Gamma^* ke puncak stack (jika α=ϵ\alpha = \epsilon, berarti hanya operasi pop).

Notasi ID (Konfigurasi Sesaat):

q,w,α\langle q, w, \alpha \rangle
  • qq: State saat ini.

  • ww: Sisa string masukan yang belum dibaca.

  • α\alpha: Isi stack saat ini (simbol paling kiri adalah puncak stack).

  • Lambang \vdash menyatakan satu langkah transisi, dan \vdash^* menyatakan barisan nol langkah transisi atau lebih.


Studi Kasus 1: PDA Bahasa L={0n1nn1}L = \{0^n 1^n \mid n \ge 1\} (State Final)

Spesifikasi Mesin:

  • State: Q={q0,q1,q2}Q = \{q_0, q_1, q_2\}, State Awal: q0q_0, State Final: F={q2}F = \{q_2\}

  • Σ={0,1}\Sigma = \{0, 1\}, Γ={X,Z0}\Gamma = \{X, Z_0\}, Simbol Awal Stack: Z0Z_0

Aturan Transisi:

  1. δ(q0,0,Z0)={(q0,XZ0)}\delta(q_0, 0, Z_0) = \{(q_0, XZ_0)\} : Simbol 0 pertama     \implies push XX di atas Z0Z_0.

  2. δ(q0,0,X)={(q0,XX)}\delta(q_0, 0, X) = \{(q_0, XX)\} : Simbol 0 berikutnya     \implies push XX baru.

  3. δ(q0,1,X)={(q1,ϵ)}\delta(q_0, 1, X) = \{(q_1, \epsilon)\} : Simbol 1 pertama     \implies pindah ke q1q_1 dan pop satu XX.

  4. δ(q1,1,X)={(q1,ϵ)}\delta(q_1, 1, X) = \{(q_1, \epsilon)\} : Simbol 1 berikutnya     \implies tetap di q1q_1 dan pop satu XX.

  5. δ(q1,ϵ,Z0)={(q2,ϵ)}\delta(q_1, \epsilon, Z_0) = \{(q_2, \epsilon)\} : Jika seluruh XX habis dan Z0Z_0 terlihat     \implies pop Z0Z_0 dan pindah ke state final q2q_2.

Pelacakan (Tracing) ID untuk String Masukan w=0011w = 0011:

q0,0011,Z0q0,011,XZ0(Baca 0, push X)q0,11,XXZ0(Baca 0, push X)q1,1,XZ0(Baca 1, pop X, pindah q1)q1,ϵ,Z0(Baca 1, pop X)q2,ϵ,ϵ(Baca ϵ, pop Z0, pindah q2)\begin{aligned} \langle q_0, 0011, Z_0 \rangle &\vdash \langle q_0, 011, XZ_0 \rangle \quad &&(\text{Baca 0, push X}) \\ &\vdash \langle q_0, 11, XXZ_0 \rangle \quad &&(\text{Baca 0, push X}) \\ &\vdash \langle q_1, 1, XZ_0 \rangle \quad &&(\text{Baca 1, pop X, pindah } q_1) \\ &\vdash \langle q_1, \epsilon, Z_0 \rangle \quad &&(\text{Baca 1, pop X}) \\ &\vdash \langle q_2, \epsilon, \epsilon \rangle \quad &&(\text{Baca } \epsilon\text{, pop } Z_0\text{, pindah } q_2) \end{aligned}

Karena string input habis dibaca dan mesin berhenti di state final q2Fq_2 \in F, maka string $0011$ Diterima (Accepted).


Studi Kasus 2: PDA Palindrom Genap L={wwR}L = \{w w^R\} (Stack Kosong)

Spesifikasi Mesin:

  • Bahasa: L={wwRw{a,b}}L = \{w w^R \mid w \in \{a, b\}^*\} (Contoh: aabbaa)

  • Q={q0,q1}Q = \{q_0, q_1\}, F=F = \emptyset (Penerimaan murni berdasarkan stack kosong: N(M)N(M))

  • Σ={a,b}\Sigma = \{a, b\}, Γ={A,B,Z0}\Gamma = \{A, B, Z_0\}

Mekanisme Kerja:

  1. Di state q0q_0, setiap simbol aa di-push sebagai AA, dan simbol bb di-push sebagai BB.

  2. Tebakan Non-Deterministik: Mesin secara acak "menebak" bahwa ia telah berada di titik tengah palindrom, lalu melakukan transisi ϵ\epsilon berpindah ke state q1q_1 tanpa mengubah isi stack.

  3. Di state q1q_1, mesin mencocokkan input dengan puncak stack: jika input aa cocok dengan AA, pop AA; jika input bb cocok dengan BB, pop BB.

  4. Terakhir, pop Z0Z_0 untuk mengosongkan stack.

Tracing ID Sukses untuk String Masukan w=aabbaaw = \text{aabbaa} :

q0,aabbaa,Z0q0,abbaa,AZ0q0,bbaa,AAZ0q0,baa,BAAZ0q1,baa,BAAZ0(Tebakan tepat: pindah ke q1)q1,aa,AAZ0(Cocok b dengan B, pop)q1,a,AZ0(Cocok a dengan A, pop)q1,ϵ,Z0(Cocok a dengan A, pop)q1,ϵ,ϵ(Pop Z0, stack kosong!)\begin{aligned} \langle q_0, aabbaa, Z_0 \rangle &\vdash \langle q_0, abbaa, AZ_0 \rangle \\ &\vdash \langle q_0, bbaa, AAZ_0 \rangle \\ &\vdash \langle q_0, baa, BAAZ_0 \rangle \\ &\vdash \langle q_1, baa, BAAZ_0 \rangle \quad &&(\text{Tebakan tepat: pindah ke } q_1) \\ &\vdash \langle q_1, aa, AAZ_0 \rangle \quad &&(\text{Cocok b dengan B, pop}) \\ &\vdash \langle q_1, a, AZ_0 \rangle \quad &&(\text{Cocok a dengan A, pop}) \\ &\vdash \langle q_1, \epsilon, Z_0 \rangle \quad &&(\text{Cocok a dengan A, pop}) \\ &\vdash \langle q_1, \epsilon, \epsilon \rangle \quad &&(\text{Pop } Z_0\text{, stack kosong!}) \end{aligned}

String habis dibaca dan stack kosong     \implies Diterima (Accepted).


Perbandingan Konsep: State Final L(M)L(M) vs Stack Kosong N(M)N(M)

ParameterPenerimaan State Final L(M)L(M)Penerimaan Stack Kosong N(M)N(M)
Kriteria TerimaState akhir pFp \in F saat string habisStack benar-benar kosong (ϵ\epsilon) saat string habis
Kondisi StackBoleh masih tersisa simbol di stackWajib kosong, tidak memedulikan state akhir
Himpunan FFWajib memiliki FF \ne \emptysetHimpunan FF diabaikan (bisa F=F = \emptyset)
EkuivalensiEkuivalen secara komputasi: L(M)N(M)Context-Free LanguageL(M) \equiv N(M) \equiv \text{Context-Free Language}

Latihan Soal & Pembahasan

Level 1 - Basic

Soal 1.1

Sebutkan 7 komponen dalam tuple Pushdown Automata M=(Q,Σ,Γ,δ,q0,Z0,F)M = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F).

Soal 1.2

Apa fungsi dari simbol awal stack Z0Z_0?


Pembahasan/Jawaban

1.1 QQ (state), Σ\Sigma (alfabet input), Γ\Gamma (alfabet stack), δ\delta (fungsi transisi), q0q_0 (state awal), Z0Z_0 (simbol awal stack), FF (himpunan state final).

1.2 Simbol Z0Z_0 berfungsi sebagai penanda dasar stack sehingga operasi pop pada transisi pertama dapat dieksekusi secara sah, serta menjadi penanda bahwa seluruh simbol yang di-push sebelumnya telah berhasil dicocokkan.


Level 2 - Intermediate

Soal 2.1

Sebutkan 3 kondisi yang menyebabkan suatu string input ditolak (rejected) oleh PDA.


Pembahasan/Jawaban

Tiga kondisi penolakan string oleh PDA adalah:

  1. Tidak ada transisi yang valid dari konfigurasi saat ini (stuck / halt).

  2. Input belum selesai dibaca, tetapi stack sudah kosong terlebih dahulu.

  3. Seluruh input telah selesai dibaca, tetapi mesin berada di state yang bukan Final (pada model L(M)L(M)) atau stack belum kosong (pada model N(M)N(M)).


Level 3 - Advanced

Soal 3.1

Mengapa bahasa palindrom genap {wwR}\{w w^R\} membutuhkan sifat non-deterministik pada PDA dan tidak dapat diselesaikan oleh PDA deterministik (DPDA)?


Pembahasan/Jawaban

Karena pada palindrom tanpa pemisah di tengah (seperti wwRw w^R), mesin yang membaca deretan simbol tidak memiliki tanda eksplisit kapan bagian paruh pertama (ww) berakhir dan kapan paruh kedua yang berbalik (wRw^R) dimulai. Mesin harus bebas "menebak" secara non-deterministik kapan saat yang tepat untuk berhenti melakukan operasi push dan mulai melakukan operasi pop pencocokan.


Exam Cheat Sheet

  • 7-Tuple PDA: M=(Q,Σ,Γ,δ,q0,Z0,F)M = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F).

  • Aksi Transisi δ(q,a,X)\delta(q, a, X): Selalu pop XX, lalu push α\alpha.

  • Format ID: q,x,α\langle q, x, \alpha \rangle dengan relasi transisi \vdash.

  • Dua Cara Terima:

    • L(M)L(M): Berakhir di state final pFp \in F.

    • N(M)N(M): Berakhir dengan stack kosong (ϵ\epsilon).

  • Teorema Kesetaraan: L(M)N(M)CFLL(M) \equiv N(M) \equiv \text{CFL}.


Referensi & Bahan Bacaan

  1. Hopcroft, John E., Rajeev Motwani, Jeffrey D. Ullman. Introduction to Automata Theory (Chapter 6: Pushdown Automata).

  2. Michael Sipser. Introduction to the Theory of Computation (Section 2.2: Pushdown Automata).

Catatan Penutup

Dengan tuntasnya Bab 10, seluruh peta jalan kurikulum Teori Komputasi dan Bahasa Formal telah berhasil dipetakan secara utuh: dari konsep dasar alfabet dan string, Finite State Automata (DFA, NFA, ϵ\epsilon-NFA, Moore, Mealy, Minimisasi), representasi aljabar Regular Expression, hingga perancangan tata bahasa bebas konteks (CFG) dan mesin komputasi bertumpukan stack (Pushdown Automata).