Back to IF2224 Teori Bahasa Formal dan Otomata
Topic: Studi Kasus & Latihan Soal (Penerapan Teori)
Questions/Cues
Strategi Konversi CNF
Penanganan Unit &
Trik Pembuktian Closure
Logika Set Difference
Tracing CYK Manual
Analisis Tabel CYK
Apa itu Pumping Lemma?
Syarat Pumping Lemma
Reference Points
Slide-15_2025_CNF.pdf (Halaman 46) - Sumber Soal Utama
Bab 7 Sifat2 CFG.pdf (Halaman 57, 68)
1. Studi Kasus 1: Konversi ke CNF
Soal (Slide 15, Hal 46):
Ubah grammar berikut ke CNF:
Penyelesaian Step-by-Step:
Tahap 1: Eliminasi -production
Variabel Nullable: (karena ).
Produksi :
S ada:
S hilang:
Produksi :
S dua-duanya ada:
Satu S hilang:
Dua S hilang: (Hapus)
Hasil Sementara:
Tahap 2: Eliminasi Unit Production
Unit: (Hapus saja, tidak ngefek).
Hasil Sementara:
Tahap 3: Konversi ke Bentuk Normal ( atau )
Masalah 1: (Terminal campur).
Buat , .
Ubah jadi .
Masalah 2: (Panjang 3 & Terminal campur).
Ubah terminal: .
Pecah body: , .
Hasil Akhir (CNF):
(Catatan: Jika bahasa asli memuat , boleh tambahkan khusus di start symbol).
2. Studi Kasus 2: Pembuktian Closure
Soal (Slide 15, Hal 46):
Apakah CFL tertutup (closed) terhadap operasi ?
(Petunjuk: )
Analisis Logika:
Kita tahu rumus beda himpunan: .
Jadi, melibatkan operasi Komplemen () dan Irisan ().
Fakta: CFL TIDAK tertutup terhadap Komplemen.
Fakta: CFL TIDAK tertutup terhadap Irisan.
Pembuktian Counter-Example:
Misal (Ini Regular, jadi pasti CFL).
Misal adalah CFL.
Maka (Komplemen dari ).
Karena CFL tidak tertutup terhadap komplemen, maka operasi pengurangan () juga TIDAK TERTUTUP (Not Closed).
3. Studi Kasus 3: Tracing Algoritma CYK
Soal (Slide 15, Hal 46):
Cek apakah diterima oleh grammar:
Penyelesaian Tabel CYK:
Input .
Basis (Panjang 1):
(): . Isi {A}.
(): . Isi {A}.
(): . Isi {B}.
(): . Isi {B}.
Induksi (Panjang 2):
(): . Cek . Isi {A}.
(): . Cek . Isi {S}.
(): . Cek . Isi {B}.
Induksi (Panjang 3):
():
Split 1: (Tidak ada).
Split 2: . Cek . Isi {S}.
():
Split 1: . Cek . Isi {S}.
Split 2: (Tidak ada).
Induksi (Panjang 4 - Final):
():
Split 1 (): (Nihil).
Split 2 (): . Ada .
Split 3 (): (Nihil).
Hasil .
Kesimpulan: Karena , maka string DITERIMA (VALID).
Latihan soal ini mendemonstrasikan aplikasi praktis dari teori CFL. Konversi CNF mengajarkan kita disiplin memecah struktur grammar kompleks menjadi bentuk biner sederhana. Pembuktian Closure melatih logika himpunan untuk membuktikan ketidaktetupan operasi pengurangan. Algoritma CYK membuktikan keampuhannya sebagai parser yang sistematis; meskipun kita bisa menebak valid secara intuitif (), CYK memberikan bukti matematis yang tak terbantahkan melalui pengisian tabel.
Ad Libitum: The Missing Link (Pumping Lemma)
Dalam slide sering disebutkan “bisa dibuktikan dengan Pumping Lemma”. Apa itu sebenarnya?
Pumping Lemma untuk CFL adalah alat utama untuk membuktikan sebuah bahasa BUKAN CFL.
Konsep Inti:
Jika adalah CFL, maka setiap string panjang di dalam dapat dipompa (diulang bagian tengahnya) dan hasilnya tetap di dalam .
String dipecah jadi 5 bagian: .
v dan x adalah bagian yang bisa di-”pompa” (diulang kali).
Syarat: (v dan x tidak boleh kosong barengan).
Hasil: harus tetap ada di untuk setiap .
Cara Pakai untuk Pembuktian (Kontradiksi):
Anggap adalah CFL.
Ambil string contoh yang “sulit”, misal .
Tunjukkan bahwa bagaimanapun cara kita memecah jadi , hasil pompanya () pasti akan merusak pola jumlah yang harus sama.
Karena hasil pompa keluar dari bahasa, asumsi awal salah BUKAN CFL.
Spaced Repetition Questions (Review)
1. Mengapa operasi $L_1 - L_2$ tidak tertutup (not closed) pada CFL?
Karena operasi selisih himpunan melibatkan operasi Komplemen (), dan CFL diketahui tidak tertutup terhadap Komplemen.
2. Dalam konversi CNF, apa yang harus dilakukan jika ada produksi $S \to aSb$?
Terminal dan harus “dibungkus” menjadi variabel baru (misal ), dan body yang panjang harus dipecah (Cascading) menjadi dan .
3. Apa tanda sebuah string diterima oleh algoritma CYK?
Jika pada sel puncak tabel (yang mewakili panjang string penuh, ), terdapat Start Symbol ().
4. Apa kegunaan utama Pumping Lemma dalam teori CFL?
Digunakan untuk membuktikan bahwa suatu bahasa BUKAN merupakan Context-Free Language (biasanya bahasa yang butuh membandingkan 3 variabel atau lebih seperti ).