TEORI BAHASA AUTOMATA PENYEDERHANAAN CFG Penyederhanaan CFG Tujuannya
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 : n S→ AB | a A→a Aturan S→ AB tdk berarti krn B tdk memiliki penurunan
Contoh n 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 : q Produksi yg memuat simbol variabel yg tdk memiliki penurunan yg akan menghasilkan terminal 2 seluruhnya, produksi ini tdk berguna krn bl diturunkan tdk akan pernah selesai (msh ada simbol variabel yg tersisa) q Produksi yg tdk akan pernah dicapai dgn penurunan apapun dr simbol awal, shg produksi itu redundan (berlebih)
Contoh 1 : S → a. Sa | 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 → a. Sa | 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 → a. B A → bc. D | d. AC B → e | Ab C → b. Cb | ad. F | ab F → c. FB Langkah penyederhaan : 1. A → b. CD, D tdk memiliki penurunan 2. Konsekuensi no 1, A tdk memiliki penurunan yg menuju terminal 3. B → Ab tdk memiliki penurunan 4. F tdk memiliki penurunan yg menuju terminal 5. C → ad. F tdk memiliki penurunan
Shg menjadi : S → a. B B→e C → b. Cb | 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 terminal 2 ( ‘=>’ 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 → bb. C B → Sc | ddd C → e. A | 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 → bb. C B → Sc | ddd C → e. A | 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 → bc. Ad A→ε Pada kasus diatas A nullable, serta A → ε satu 2 nya produksi dari A, mk variabel A bisa ditiadakan, hasil penyederhanaan tata bahasa bebas konteks mjd : S → bcd
Tetapi bila kasusnya : S → bc. Ad A → bd | ε Pada kasus diatas A nullable, tapi A → ε bukan satu 2 nya produksi dari A, mk hasil penyederhanaan : S → bc. Ad | bcd A → bd
Contoh 1 : S → AB A → ab. B | a. Ca | ε B → b. A | BB | ε C→ε Variabel yg nullable A, B, C. Dari S → AB, maka S juga nullable. Kita lakukan penggantian : A → a. Ca => A → aa B → b. A => B → b. A | b B → BB => B → BB | B A → ab. B => A → ab. B | 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 satu 2 nya perkecualian produksi ε yg tdk dihapus, yaitu produksi ε yg dihasilkan oleh simbol awal.
Hasil Penyederhanaan S → AB | A | B | ε A → ab. B | ab | aa B → b. A | b | BB | B
Contoh 2 : S → ABa. C A → BC B→b|ε C→D|ε D→d
Variabel yg nullable B, C. Kita lakukan penggantian : A → BC => A → BC | B | C S → ABa. C => S → ABa. C | Aa. C | Ba. C | ABa| a. C | Aa | Ba | a Hasil penyederhanaan : S → ABa. C | Aa. C | Ba. C | ABa | a. C | Aa | Ba | a A → BC | B | C B→b C→D D→d
Penyederhaan CFG Penghilangan Produksi ε Penghilangan Produksi Unit Penghilangan Produksi Useless CFG yg sdh disederhanakan
Latihan 1 : Lakukan penghilangan aturan produksi unit, useless, dan ε dari tata bahasa bebas konteks berikut : S → a | a. A | B | C A → a. B | ε B → Aa C → c. CD D → ddd
Latihan 2 : Lakukan penghilangan aturan produksi unit, useless, dan ε dari tata bahasa bebas konteks berikut : S → a. B | aa. B A→ε B → b. A B→ε
Jawaban Latihan 1 : Penghilangan Produksi ε : A → ε dihilangkan, shg : A → a. B B → Aa | a S → a | a. A | B | C Mjd : S → a | a. A | B | C A → a. B B → Aa | a C → c. CD D → ddd
Penghilangan Produksi Unit : S → B => S → Aa | a S → C => S → c. CD Shg menjadi : S → a | a. A | Aa | c. CD A → a. B B → Aa | a C → c. CD D → ddd
Penghilangan Produksi Useless : 1. C tidak memiliki penurunan, shg C → c. CD dihilangkan 2. S → c. CD dihilangkan 3. Konsekuensi no 2, D → ddd dihilangkan Shg mjd : S → a | a. A | Aa A → a. B B → Aa | a
Jawaban Latihan 2 : Penghilangan Produksi ε : A → ε dihilangkan, shg : B → b. A => B → b B → ε dihilangkan, shg : S → a. B => S → a. B | a S → aa. B => S → aa. B | aa Mjd : S → a. B | 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 semua aturan produksinya sdh sederhana, mk hasil dari penghilangan produksi useless = hasil dari penghilangan produksi ε
- Slides: 32