Anda di halaman 1dari 32

TEORI BAHASA & AUTOMATA

PENYEDERHANAAN
CFG
Penyederhanaan CFG
Tujuannya : Untuk melakukan pembatasan
sehingga tidak menghasilkan pohon
penurunan yg memiliki kerumitan yg tdk
perlu / aturan produksi yg tdk berarti.
Contoh :
 S→ AB | a
A→a
Aturan S→ AB tdk berarti krn B tdk
memiliki penurunan
Contoh
 S→A
A→B
B→C
C→D
D→a|A
Memiliki kelemahan yaitu terlalu panjang
jlnnya padahal berujung pd S → a, D → A
juga menyebabkan kerumitan.
Suatu tata bahasa bebas konteks (CFG) dpt
disederhanakan dgn melakukan :
1. Penghilangan produksi useless
2. Penghilangan produksi unit
3. Penghilangan produksi ε
Penghilangan Produksi Useless
Produksi Useless :
 Produksi yg memuat simbol variabel yg tdk

memiliki penurunan yg akan menghasilkan


terminal2 seluruhnya, produksi ini tdk berguna krn
bl diturunkan tdk akan pernah selesai (msh ada
simbol variabel yg tersisa)
 Produksi yg tdk akan pernah dicapai dgn

penurunan apapun dr simbol awal, shg produksi


itu redundan (berlebih)
Contoh 1 :
S → aSa | Abd | Bde
A → Ada
B → BBB | a
 Simbol A tdk memiliki penurunan yg

menuju terminal, shg bisa dihilangkan


 Konsekuensi no 1, aturan produksi S →

Abd tdk memiliki penurunan


Bentuk sederhana :
S → aSa | Bde
B → BBB | a
Prinsipnya setiap kali melakukan
penyederhanan kita periksa lagi aturan
produksi yg tersisa, apakah semua produksi
yg useless sdh dihilangkan.
Contoh 2 :
S → aB
A → bcD | dAC
B → e | Ab
C → bCb | adF | ab
F → cFB
Langkah penyederhaan :
1. A → bCD, D tdk memiliki penurunan
2. Konsekuensi no1, A tdk memiliki penurunan yg menuju
terminal
3. B → Ab tdk memiliki penurunan
4. F tdk memiliki penurunan yg menuju terminal
5. C → adF tdk memiliki penurunan
Shg menjadi :
S → aB
B→e
C → bCb | ab
Penghilangan Produksi Unit
Produksi unit adalah produksi dmn ruas kiri dan
kanan aturan produksi hanya berupa satu simbol
variabel, misalnya : A → B,
C → D.
Keberadaan produksi unit membuat tata bahasa
memiliki kerumitan yg tdk perlu atau menambah
panjang penurunan.
Penyederhanaan ini dilakukan dgn melakukan
penggantian aturan produksi.
Contoh 1 :
S → Sb
S→C
C→D
C → ef
D → dd
Kita lakukan penggantian berturutan mulai dari
aturan produksi yg paling dekat menuju ke
penurunan terminal2 ( ‘=>’ dibaca ‘menjadi’)
C → D => C → dd
S → C => S → dd | ef
Shg disederhanakan mjd :
S → Sb
S → dd | ef
C → dd
C → ef
D → dd
Contoh 2 :
S → Cba | D
A → bbC
B → Sc | ddd
C → eA | f | C
D → E | SABC
E → gh
Penggantian yg dilakukan :
D → E => D → gh
C → C dihapus
S → D => S → gh | SABC
Shg aturan produksi setelah disederhanakan :
S → Cba | gh | SABC
A → bbC
B → Sc | ddd
C → eA | f
D → gh | SABC
E → gh
Penghilangan Produksi ε
Penghilangan produksi ε dilakukan dgn melakukan
penggantian produksi yg memuat variabel yg bisa
menuju produksi ε. Prinsip penggantiannya bisa
dilihat kasus berikut :
S → bcAd
A→ε
Pada kasus diatas A nullable, serta A → ε satu2nya
produksi dari A, mk variabel A bisa ditiadakan,
hasil penyederhanaan tata bahasa bebas konteks
mjd :
S → bcd
Tetapi bila kasusnya :
S → bcAd
A → bd | ε
Pada kasus diatas A nullable, tapi A → ε
bukan satu2nya produksi dari A, mk hasil
penyederhanaan :
S → bcAd | bcd
A → bd
Contoh 1 :
S → AB
A → abB | aCa | ε
B → bA | BB | ε
C→ε
Variabel yg nullable A, B, C. Dari S → AB, maka S juga
nullable. Kita lakukan penggantian :
A → aCa => A → aa
B → bA => B → bA | b
B → BB => B → BB | B
A → abB => A → abB | ab
S → AB => S → AB | A | B | ε
C → ε, B → ε, A → ε dihapus
Perhatikan : untuk penggantian S → AB
kita tetap mempertahankan produksi S → ε,
krn S merupakan simbol awal. Ini
merupakan satu2nya perkecualian produksi
ε yg tdk dihapus, yaitu produksi ε yg
dihasilkan oleh simbol awal.
Hasil Penyederhanaan
S → AB | A | B | ε
A → abB | ab | aa
B → bA | b | BB | B
Contoh 2 :
S → ABaC
A → BC
B→b|ε
C→D|ε
D→d
Variabel yg nullable B, C. Kita lakukan
penggantian :
A → BC => A → BC | B | C
S → ABaC => S → ABaC | AaC | BaC | ABa|
aC | Aa | Ba | a
Hasil penyederhanaan :
S → ABaC | AaC | BaC | ABa | aC | Aa | Ba | a
A → BC | B | C
B→b
C→D
D→d
Penyederhaan CFG

Penghilangan Penghilangan Penghilangan CFG yg sdh


CFG
Produksi ε Produksi Unit Produksi Useless disederhanakan
Latihan 1 :
Lakukan penghilangan aturan produksi unit,
useless, dan ε dari tata bahasa bebas
konteks berikut :
S → a | aA | B | C
A → aB | ε
B → Aa
C → cCD
D → ddd
Latihan 2 :
Lakukan penghilangan aturan produksi unit,
useless, dan ε dari tata bahasa bebas
konteks berikut :
S → aB | aaB
A→ε
B → bA
B→ε
Jawaban Latihan 1 :
Penghilangan Produksi ε :
A → ε dihilangkan, shg :
A → aB
B → Aa | a
S → a | aA | B | C
Mjd :
S → a | aA | B | C
A → aB
B → Aa | a
C → cCD
D → ddd
Penghilangan Produksi Unit :
S → B => S → Aa | a
S → C => S → cCD
Shg menjadi :
S → a | aA | Aa | cCD
A → aB
B → Aa | a
C → cCD
D → ddd
Penghilangan Produksi Useless :
1. C tidak memiliki penurunan, shg C → cCD
dihilangkan
2. S → cCD dihilangkan
3. Konsekuensi no 2, D → ddd dihilangkan
Shg mjd :
S → a | aA | Aa
A → aB
B → Aa | a
Jawaban Latihan 2 :
Penghilangan Produksi ε :
A → ε dihilangkan, shg :
B → bA => B → b
B → ε dihilangkan, shg :
S → aB => S → aB | a
S → aaB => S → aaB | aa
Mjd :
S → aB | a | aaB | aa
B→b
Penghilangan Produksi Unit :
Tidak ada krn semua aturan produksi tidak
ada yang ruas kiri dan kanannya
mempunyai sebuah simbol variabel.
Penghilangan Produksi Useless :
Karena tidak ada yg redundan dan semua
aturan produksinya sdh sederhana, mk
hasil dari penghilangan produksi useless =
hasil dari penghilangan produksi ε

Anda mungkin juga menyukai