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.

  1. LIFO (Last In, First Out): Piring yang terakhir ditaruh (paling atas) adalah yang pertama kali harus diambil.

  2. Akses Terbatas: Anda HANYA bisa melihat dan mengambil piring paling atas. Piring di bawahnya tertutup.

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

SimbolNamaPenjelasan Sederhana
StatesHimpunan semua kondisi/state yang ada di mesin (seluruh lingkaran).
StateSatu kondisi spesifik tempat mesin berada sekarang (misal atau ).
Input AlphabetHuruf/angka yang ada di string soal (misal: atau ). Ini yang dibaca dari pita input.
Stack AlphabetDaftar simbol yang boleh masuk ke dalam stack. Isinya bisa beda dengan input (misal: ).
Transition FunctionAturan main: “Jika di state , baca input , dan top stack , maka lakukan aksi…”
Start StateState awal saat mesin baru dinyalakan.
Initial Stack SymbolPenanda dasar stack. Kalau kamu lihat simbol ini di top, artinya stack sudah sampai dasar (kosong).
Final StatesHimpunan 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:

  1. Dimana saya? (Current State - )

  2. Apa yang saya baca? (Input Symbol - )

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

OperasiNotasi TransisiPenjelasan 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:

  1. Fase 1 (Baca 0 - Push): Setiap kali mesin melihat 0, simpan penanda (misal ) ke dalam stack. Ini untuk “mengingat” berapa banyak 0 yang sudah lewat.

  2. Transisi (Ganti Mode): Saat pertama kali melihat 1, berhenti menyimpan dan mulai mencocokkan.

  3. Fase 2 (Baca 1 - Pop): Setiap kali mesin melihat 1, ambil satu penanda dari stack. Ini untuk “memasangkan” 1 dengan 0.

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

Mari kita jalankan mesin di atas untuk input 0011.

Notasi ID:

  1. Awal:

    • Aksi: Baca 0, Top Push . State tetap .
  2. Langkah 1:

    • Aksi: Baca 0, Top Push . Stack jadi .
  3. Langkah 2:

    • Aksi: Baca 1, Top Pindah ke , Pop . Stack sisa .
  4. Langkah 3:

    • Aksi: Baca 1, Top Pop . Stack sisa .
  5. Langkah 4:

    • Aksi: Input habis (), Top Pindah ke (Final).
  6. Hasil: DITERIMA.

Summary

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 .