Back to IF2224 Teori Bahasa Formal dan Otomata
Topic: Konversi ke Chomsky Normal Form (CNF)
Questions/Cues
Definisi Formal CNF
Mengapa bentuk lain salah?
Prasyarat Konversi
Algoritma Utama
Step 1: Pisahkan Terminal
Variabel baru ()
Step 2: Pecah Body Panjang
Teknik Cascading
Jumlah variabel baru
Studi Kasus Lengkap
Contoh Ekspresi Matematika
Reference Points
Slide-15_2025_CNF.pdf (Hal 10-14) - Sumber Contoh Lengkap
Bab 7 Sifat2 CFG.pdf (Hal 13-14)
1. Definisi Ketat Chomsky Normal Form
Sebuah CFG dikatakan dalam bentuk CNF jika dan hanya jika setiap aturan produksinya memenuhi salah satu dari dua pola ini:
Variabel Dua Variabel:
(Syarat: B dan C adalah variabel, bukan terminal)
Variabel Satu Terminal:
(Syarat: a adalah terminal)
Bentuk yang DILARANG di CNF:
(Campuran terminal & variabel di body )
(Lebih dari 2 variabel)
(Kecuali pada Start Symbol, jika bahasa memuat )
(Unit production)
2. Algoritma Konversi (Setelah Penyederhanaan)
Asumsikan grammar sudah “bersih” (bebas , unit, useless). Kita tinggal memperbaiki bentuk body produksinya.
Langkah 1: Isolasi Terminal (Terminal Separation)
Masalah: Ada aturan di mana terminal “bercampur” dengan variabel dalam body yang panjangnya . Contoh: .
Solusi:
Untuk setiap terminal yang muncul di body campuran, buat variabel baru (misal atau ).
Tambahkan aturan: .
Ganti semua kemunculan di body campuran dengan .
Contoh:
Awal:
Revisi:
Buat dan .
Ubah menjadi .
Langkah 2: Pecah Body Panjang (Cascading)
Masalah: Ada aturan dengan variabel di body. Contoh: .
Solusi:
Pecah menjadi rantai aturan biner menggunakan variabel perantara (new variables).
Pola:
Ubah menjadi:
…
Contoh ():
Ambil 2 simbol pertama/terakhir. Misal kita sisakan di depan.
Sisa body adalah . Karena panjangnya sudah 2, jadikan aturan untuk .
.
Hasil Akhir: (Semuanya bentuk CNF).
3. Studi Kasus Lengkap (Walkthrough)
Mari kita gunakan contoh kompleks dari Slide-15_2025_CNF.pdf (Hal 12-14): Grammar Ekspresi Matematika.
Grammar Awal (Setelah Simplify):
Tahap 1: Pisahkan Terminal
Terminal yang bercampur: , , , .
Buat variabel baru untuk mereka:
(Plus)
(Multiply)
(Left paren)
(Right paren)
Substitusi ke grammar:
(Perhatikan: dibiarkan karena sudah CNF)
Tahap 2: Pecah Body Panjang
Kita punya body panjang 3 variabel: , , .
Pecah :
Pecah (dan ):
Pecah (dan lainnya):
Hasil Akhir Grammar CNF:
Konversi ke Chomsky Normal Form (CNF) berfokus pada restrukturisasi sintaksis grammar agar sesuai dengan format biner ketat ( atau ). Proses ini dilakukan setelah tahap penyederhanaan dan terdiri dari dua langkah sistematis: (1) Isolasi Terminal, di mana terminal yang berada dalam body majemuk diganti dengan variabel baru khusus, dan (2) Pemecahan Body (Cascading), di mana produksi dengan 3 variabel atau lebih dipecah menjadi rantai produksi biner menggunakan variabel-variabel perantara baru. Hasil akhirnya adalah grammar yang secara struktural lebih besar (lebih banyak variabel) namun sangat teratur dan mudah diproses oleh mesin.