Penyederhaan Tata Bahasa Bebas Konteks
"Penyederhaan Tata Bahasa Bebas Konteks"
Sebuah Tata Bahasa Bebas Konteks dapat disederhanakan
dengan melakukan :
- Penghilangan
Produksi Useless
- Penghilangan
Produksi Unit
- Penghilangan
Produk Empty
Berikut adalah penjelasan dari setiap teknik
penyederhanaan :
1. Penghilangan Produksi Useless
(a) Produksi Useless adalah produksi yang memuat
simbol variabel yang tidak memiliki turunan ke terminal-terminal seluruhnya.
(b) Produksi yang tidak akan mencapai turunan apapun
dari simbol awal sehingga produksi itu disebut redundan
Contoh :
S → Ab | Bcd
A → BB | Adc
B → Bca | b
C → b
Kesimpulan :
a. A → Adc tidak
memiliki penurunan yang menuju terminal maka dinyatakan useless.
b. B → Bca tidak memiliki
penurunan yang menuju terminal maka dinyatakan useless.
c. yang menyebabkan S → Bcd
tidak memiliki penurunan.
d. C bersifat redundan
Hasil Penyederhanaan :
S → Ab
A → BB
2. Penghilangan Produksi Unit
(a) Produksi unit adalah produksi yang dimana
masing-masing ruas aturan produksi memiliki satu variabel saja
Contoh 1 : A → B,
C → D
Contoh 2 :
S → Sb
S → C
C → D
C → ef
D → dd
Penggantian Berurutan :
C → D = C → dd
S → C = S → dd
| ef
Maka, Aturan Produksi setelah Penyederhanaan :
S → Sb
S → dd | ef
C → dd
C → ef
D → dd
3. Penghilangan Produksi Empty
(a) Penghilangan
produksi ε dilakukan dengan penggantian produksi yang memuat variabel yang bisa
menuju produksi εε atau biasa disebut nullable.
Contoh 1 :
S → Bc | Ab
A → bc
B → ε
Maka :
(a) Menghilangakan
B → ε
Dengan cara menghilangkan B pada
aturan Produksi S → Bc
S → c | Ab
A → bc
Contoh 2 :
Bagaimana jika Empty bukan
satu-satunya aturan produksi terminal?
S → bcAd
A → bd | ε
Maka :
(a) Menghilangakan
A → ε
Dengan cara menambahkan aturan
produksi S dengan menghilangkan A di bcAd
Maka terbentuklah Aturan
Produksi S → bcd
S → bcAd | bcd
A → bd
Contoh Soal Kompleks :
S → BACa
B → AC
A → dC | ε
C → D | ε
D → d
Langkah Pertama :
(Penghilangan Produksi Empty)
(a) Menghilangkan C → ε
Dengan cara menduplikasi BACa
tetapi menghilangkan C terbentuklah aturan Produksi S → BAa.
Menduplikasi AC tetapi
menghilangkan C terbentuklah aturan Produksi S → A
S → BACa | BAa
B → AC | A
A → dC | d | ε
C → D
D → d
(b) Menghilangkan A → ε
Dengan cara
menduplikasi B → BACa dan B → BAa
namun menghilangkan A
Menduplikasi B → AC | A
namun menghilangkan A
S → BACa | BAa | BAa |
Ba
B → AC | A | C | ε
(nullable baru)
A → dC | d
C → D
D → d
Karena B → A dengan
formulanya adalah menghilangkan A maka duplikasi B →
A menghasilkan nullable baru yang perlu dihilangkan.
(c) Menghilangkan B → ε
Dengan cara
menduplikasi BACa | BAa | BAa | Ba | namun menghilangkan B
S → BACa | BAa | BAa | Ba |
ACa | Aa | Aa | a
B → AC | A | C
A → dC | d
C → D
D → d
Langkah Kedua :
Penghilangan Produksi Unit
S → BACa | BAa | BAa | Ba |
ACa | Aa | Aa | a
B → AC | A | C
A → dC | d
C → D
D → d
Penggantian Berurutan :
C → D =
C → d
B → C = B → d
B → A = B → dc
*Karena S memiliki Aturan Produksi yang sama, dapat
dituliskan hanya 1 kali saja.
Aturan Produksi setelah
Penyederhanaan :
S → BACa | BAa | Ba | ACa |
Aa | a
B → AC | dc | dC
A → dC | d
C → D
D → d
Langkah Ketiga :
Penghilangan Produksi Useless
S → BACa | BAa | Ba | ACa |
Aa | a
B → AC | dC | d
Kesimpulan :
a. S → BACa | ACa
(C tidak memiliki penurunan menuju ke terminal maka dinyatakan useless)
b. S → BAa | Aa (A
tidak memiliki penurunan menuju ke terminal maka dinyatakan useless)
b. B → AC | dC (A &
C tidak memiliki penurunan menuju ke terminal maka dinyatakan useless)
Hasil Penyederhanaan Useless :
S → Ba | a
B → d
Video Penjelasan Soal Latihan 5 :
Komentar
Posting Komentar