Back to IF2224 Teori Bahasa Formal dan Otomata
Topic: Fundamental Pushdown Automata (PDA)
Questions/Cues
Apa itu PDA?
Analogi Stack (LIFO)
Perbedaan Utama PDA vs FA
3 Syarat Gerakan
Tabel Simbol & Istilah
Tabel Operasi Stack
Notasi Formal (7-Tuple)
Cara Membaca Fungsi Transisi
Reference Points
Bab 6 PDA.pdf (Halaman 1-10)
Konsep Dasar Struktur Data (Stack)
1. Definisi & Intuisi Dasar
Pushdown Automata (PDA) adalah mesin komputasi abstrak yang lebih “pintar” daripada Finite Automata (FA).
Mengapa kita butuh PDA?
Finite Automata (FA) punya kelemahan besar: Pikun. Ia tidak punya memori untuk mengingat apa yang sudah lewat.
Contoh FA: Bisa mengenali pola sederhana, tapi tidak bisa menghitung apakah jumlah huruf ‘a’ sama dengan jumlah huruf ‘b’ () karena ia lupa berapa banyak ‘a’ yang sudah lewat.
Solusi PDA: PDA diberikan “buku catatan” berupa tumpukan (Stack).
Analogi Tumpukan Piring (Stack):
Bayangkan PDA seperti pelayan yang memiliki tumpukan piring.
LIFO (Last In, First Out): Piring yang terakhir ditaruh (paling atas) adalah yang pertama kali harus diambil.
Akses Terbatas: Anda HANYA bisa melihat dan mengambil piring paling atas. Piring di bawahnya tertutup.
Operasi: Anda bisa menaruh piring baru (Push) atau mengambil piring teratas (Pop).
Kesimpulan: PDA = NFA (Otak non-deterministik) + Stack (Memori Tumpukan tak terbatas).
2. Tabel Terminologi Dasar PDA
Berikut adalah kamus istilah yang wajib dipahami untuk membaca diagram PDA:
Simbol Nama Penjelasan Sederhana States Himpunan semua kondisi/state yang ada di mesin (seluruh lingkaran). State Satu kondisi spesifik tempat mesin berada sekarang (misal atau ). Input Alphabet Huruf/angka yang ada di string soal (misal: atau ). Ini yang dibaca dari pita input. Stack Alphabet Daftar simbol yang boleh masuk ke dalam stack. Isinya bisa beda dengan input (misal: ). Transition Function Aturan main: “Jika di state , baca input , dan top stack , maka lakukan aksi…” Start State State awal saat mesin baru dinyalakan. Initial Stack Symbol Penanda dasar stack. Kalau kamu lihat simbol ini di top, artinya stack sudah sampai dasar (kosong). Final States Himpunan state penerima (lingkaran ganda). Jika input habis dan mesin berhenti di sini, string diterima. 3. Mekanisme Gerakan (Transition)
PDA lebih kompleks daripada FA karena gerakannya ditentukan oleh 3 faktor sekaligus.
Syarat Pindah State:
Agar mesin bisa bergerak, ia harus mencocokkan tiga hal:
Dimana saya? (Current State - )
Apa yang saya baca? (Input Symbol - )
Apa isi tumpukan paling atas? (Top of Stack - )
Jika ketiga syarat ini cocok dengan aturan di , mesin baru boleh bergerak.
4. Tabel Operasi Stack: Push, Pop, Skip
Apa yang terjadi pada tumpukan saat mesin bergerak?
Operasi Notasi Transisi Penjelasan Visual PUSH (Tambah) “Tumpuk di atasnya”. Simbol lama tidak dibuang, simbol baru ditaruh di atas . Stack jadi lebih tinggi. POP (Hapus) “Buang piring teratas”. Simbol dihapus dan diganti dengan (kosong). Stack jadi lebih pendek. REPLACE (Ganti) “Tukar piring”. Simbol dibuang, langsung diganti dengan . Tinggi stack tetap sama. STAY / SKIP ”Lihat saja”. Simbol diambil, lalu ditaruh lagi . Tidak ada perubahan isi stack. 5. Formalisme Matematis (7-Tuple)
Jika diminta mendefinisikan PDA secara formal, tuliskan 7 komponen ini:
Fungsi Transisi () secara detail:
Input: State , Input , Top Stack .
Output: Himpunan pasangan .
Kenapa Himpunan? Karena PDA umumnya Non-deterministic. Satu input bisa memicu dua kemungkinan takdir (misal: satu jalan push, jalan lain pop). Mesin bisa “membelah diri” untuk mencoba semua kemungkinan.
6. Studi Kasus Step-by-Step
Studi Kasus 1: Desain PDA untuk
Tujuan: Membuat mesin yang menerima string jika jumlah ‘0’ sama dengan jumlah ‘1’, dan urutan ‘0’ selalu di depan. Contoh diterima:
01,0011,000111.Logika Desain:
Fase 1 (Baca 0 - Push): Setiap kali mesin melihat
0, simpan penanda (misal ) ke dalam stack. Ini untuk “mengingat” berapa banyak0yang sudah lewat.Transisi (Ganti Mode): Saat pertama kali melihat
1, berhenti menyimpan dan mulai mencocokkan.Fase 2 (Baca 1 - Pop): Setiap kali mesin melihat
1, ambil satu penanda dari stack. Ini untuk “memasangkan”1dengan0.Fase Akhir (Cek): Jika input habis DAN stack kosong (tinggal ), berarti jumlah pasangan cocok.
Definisi Transisi ():
Start ():
: Ketemu 0 pertama, tumpuk X.
: Ketemu 0 berikutnya, tumpuk X lagi.
Switch ():
- : Ketemu 1 pertama, pindah state ke dan POP satu X.
Match ():
- : Ketemu 1 lagi, POP lagi.
Accept ():
: Input habis, di stack tinggal . Terima!
Studi Kasus 2: Penelusuran (Tracing) String
0011Mari kita jalankan mesin di atas untuk input
0011.Notasi ID:
Awal:
- Aksi: Baca 0, Top Push . State tetap .
Langkah 1:
- Aksi: Baca 0, Top Push . Stack jadi .
Langkah 2:
- Aksi: Baca 1, Top Pindah ke , Pop . Stack sisa .
Langkah 3:
- Aksi: Baca 1, Top Pop . Stack sisa .
Langkah 4:
- Aksi: Input habis (), Top Pindah ke (Final).
Hasil: DITERIMA.
Pushdown Automata (PDA) adalah upgrade dari Finite Automata yang dilengkapi dengan memori Stack (LIFO). Hal ini memungkinkan PDA mengenali struktur bahasa yang lebih kompleks (Context-Free Languages). Komponen terpenting PDA adalah Fungsi Transisi () yang menentukan aksi mesin berdasarkan tiga input: State saat ini, Input yang dibaca, dan Simbol Top Stack. Aksi utamanya meliputi Push (menambah data), Pop (menghapus data), atau Replace (mengganti data). Secara formal, PDA didefinisikan dengan 7-Tuple .
Ad Libitum: Pendalaman Teknis
1. Konsep Non-Determinism pada PDA
Berbeda dengan Deterministic Finite Automata (DFA), Non-deterministic PDA (NPDA) adalah standar default dalam teori otomata.
NPDA: Untuk input dan stack yang sama, bisa ada banyak pilihan langkah. Contoh: . Mesin bisa memilih untuk pop ATAU push sekaligus (secara konseptual paralel).
DPDA (Deterministic): Setiap situasi hanya punya maksimal satu langkah pasti. DPDA lebih lemah daripada NPDA (DPDA hanya bisa mengenali sebagian CFL, biasanya untuk parsing bahasa pemrograman).
2. Notasi String Stack ()
Dalam transisi , string ditulis dari kiri ke kanan merepresentasikan urutan dari Top ke Bawah di stack.
Jika , maka akan berada di paling atas (Top baru), dan di bawahnya.
Hati-hati: Urutan penulisan sangat penting saat melakukan operasi Push multiple symbol.
Spaced Repetition Questions (Review)
1. Apa perbedaan utama antara Finite Automata (FA) dan Pushdown Automata (PDA) dalam hal memori?
FA tidak memiliki memori penyimpanan (hanya state), sedangkan PDA memiliki memori eksternal berbentuk Stack (tumpukan) yang bekerja dengan prinsip LIFO.
2. Sebutkan 7 tuple yang mendefinisikan PDA!
(states), (input alphabet), (stack alphabet), (transition function), (start state), (start stack symbol), (final states).
3. Apa tiga parameter yang dibutuhkan oleh fungsi transisi PDA untuk menentukan langkah selanjutnya?
- Current State ()
- Current Input Symbol ( atau )
- Top of Stack Symbol ()
4. Dalam transisi $\delta(q, a, Z) = \{(p, \epsilon)\}$, apa yang terjadi pada stack?
Terjadi operasi POP. Simbol dihapus dari tumpukan dan digantikan oleh string kosong ().
5. Mengapa PDA disebut non-deterministik secara default?
Karena untuk satu kombinasi (state, input, stack symbol), fungsi transisi bisa menghasilkan lebih dari satu kemungkinan langkah selanjutnya (outputnya berupa himpunan).
