Penyederhaan Tata Bahasa Bebas Konteks


"Penyederhaan Tata Bahasa Bebas Konteks"

Sebuah Tata Bahasa Bebas Konteks dapat disederhanakan dengan melakukan :
  1. Penghilangan Produksi Useless
  2. Penghilangan Produksi Unit
  3. 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 :
→ 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  = → 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 :
→ Bc | Ab
A → bc 
B → ε

Maka :
(a) Menghilangakan B → ε
Dengan cara menghilangkan B pada aturan Produksi S → Bc
→ 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

Postingan populer dari blog ini

Desimal Positif & Negatif dan Konversi Biner

Memori Internal

Pohon Penurunan Tata Bahasa Bebas Konteks