Tata bahasa bebas kompleks (Context Free Grammar) merupakan sebuah tata bahasa dimana tidak terdapat pembatasan pada hasil produksinya. Contoh pada aturan produksi :α → β Batasannya hanyalah ruas kiri (α) adalah sebuah variabel non terminal. Penyederhanaan tata bahasa bebas konteks bertujuan untuk melakukan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti.
Penghilangan Produksi UselessDefinisi produksi Useless adalah produksi yang memuat simbol variable yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya (menuju terminal), produksi ini tidak berguna karena bila diturunkan tidak akan pernah selesai (masih ada simbol variabel tersisa). Dan juga produksi Useless memiliki definisi lain yaitu produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan (berlebih). Contoh :Diketahui tata bahasa bebas konteks sebagai berikut :S → Aa | BA → ab | DB → b | EC → bbE → aEaAnalisis :1. Aturan produksi A → D, variabel D tidak memiliki penurunan, sehingga bisa dihilangkan.2. Aturan produksi C → bb, jika dilakukan dengan penurunan dari simbol awal S, dengan jalan mana pun tidak akan pernah tercapai. Sehingga bisa dihilangkan.3. Simbol variabel E tidak memiliki aturan produksi yang menuju terminal, sehingga bisa dihilangkan.4. Konsekuensi no. 3, aturan produksi B → E, simbol variabel E tidak memiliki penurunan, sehingga bisa dihilangkan.Maka tata bahasa hasil penyederhanaannya menjadi :S → Aa | BA → ab B → b Penghilangan Produksi UnitProduksi unit adalah produksi yang ruas kanan dan ruas kirinya memiliki aturan produksi hanya berupa satu simbol variabel. Penyederhanaan ini dilakukan dengan melakukan penggantian aturan produksi unit.Contoh :Diketahui tata bahasa bebas konteks sebagai berikut :S → SbS → CC → DC → efD → ddAnalisis :Lakukan penggantian berurutan mulai dari aturan produksi yang paling dekat menuju terminal-terminal.C → D menjadi C → ddS → C menjadi S → dd | efHasil penyederhanaan :S → Sb | dd | efC → dd | ef D → dd Penghilangan Produksi Empty (ε)Penghilangan produksi empty adalah : B → c Gabungan Useless, Unit dan EmptyUrutan penyederhanaan dari gabungan useless, unit, dan empty, yaitu : Gambar 1 Tahapan penyederhanaanContoh : Tahap 1 : Penghilangan produksi empty A → ε dihapus karena A menghasilkan produksi kosong.Hasil penyederhanaan/penghilangan produksi empty : S → a | aA | B | CA → aBB → Aa | aC → cCDD → dddTahap 2 : Penghilangan produksi UnitS → B diubah menjadi S → AaS → C diubah menjadi S → cCDHasil penyederhanaan/penghilangan produksi unit dan empty : Tahap 3 : Penghilangan produksi useless C → cCD dihapus karena redundanS → cCD dihapusD → ddd dihapus karena tidak ada penurunan di simbol awalHasil penyederhanaan/penghilangan produksi empty, unit dan useless : S → a | aA | AaA → aB | a Itulah penjelasan tentang penyederhanaan tata bahasa bebas kompleks. Berikut adalah video penjelasan latihan penyederhanaan tata bahasa bebas kompleks.
Referensi :
Tujuan
Suatu tatabahasa bebas kontek dapat melakukan penyederhanaan dengan melakukan : a. Penghilangan Produksi Useless b. Penghilangan Produksi Unit c. Penghilangan Produksi ε S → AB | a A → a * Aturan produksi S → AB tidak berarti karena B tidak memiliki penurunan
A. Penghilangan Produksi Useless
Di sini produksi useless didefinisikan sebagai : • Produksi yang memuat symbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya. • Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan ( berlebih ) Contoh soal 1 :S → aB | C B → e | AbC → bCb | adF | abF → cFBCara penyelesaian :
1 PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS 2 PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS 3 PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS 4 LANGKAH – LANGKAH PENYEDERHANAAN 5 Penghilangan Produksi Useless 6 Penghilangan Produksi Useless 7 Penghilangan Produksi Useless 8 Penghilangan Produksi Useless 9 Penghilangan Produksi Useless 10 Penghilangan Produksi Useless 11 Penghilangan Produksi Useless 12 Penghilangan Produksi Useless 13 Penghilangan Produksi Useless 14 Penghilangan Produksi Useless 15 Penghilangan Produksi Useless 16 Penghilangan Produksi Useless 17 Penghilangan Produksi Useless 18 Penghilangan Produksi Useless 19 Penghilangan Produksi Useless 20 LATIHAN SOAL Soal : 1. Hilangkanlah semua aturan produksi yang useless dari tata bahasa bebas konteks berikut S → AB | CA B → BC | AB A → a C → aB | b 2. Hilangkan semua aturan produksi yang useless dari tata bahasa bebas konteks berikut. S → aS | A | C B → aa C → aCb 21 LATIHAN SOAL 3. Hilangkan semua aturan produksi yang useless dari tata bahasa bebas konteks berikut. S → A A → aA | є B → bA 22 Penghilangan Produksi Unit 23 Penghilangan Produksi Unit 24 LANGKAH - LANGKAH Langkah-langkahnya adalah sebagai berikut : 25 Sehingga tata bahasa bebas konteks setelah penyederhanaan adalah sebagai berikut. 26 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → A S → Aa 27 CONTOH Penggantian yang dilakukan : 1. S → A 28 CONTOH Sehingga tata bahasa bebas konteks setelah disederhanakan menjadi : S → ab | b S → Aa A → ab | b B → ab B → b C → b C → ab D → b 29 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → Cba | D 30 CONTOH Penggantian yang dilakukan : 1. D → E menjadi D → gh 31 LATIHAN SOAL Soal : 1. Hilangkanlah semua aturan produksi unit dari tata bahasa bebas konteks berikut. S → Aa | B B → A | bb A → a | bc | B 32 LATIHAN SOAL 2. Hilangkan semua aturan produksi unit dari tata bahasa bebas konteks berikut. S → AbaC | BaC | AaC | Aba | aC | Aa | Ba | a A → B | C | BC B → b C → D D → d 33 Penghilangan Produksi є 34 Penghilangan Produksi є 35 Penghilangan Produksi є 36 CONTOH Contoh, terdapat tata bahasa bebas konteks : S → Ab | Cd A → d 37 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → dA | Bd 38 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → AaCD 39 Selanjutnya kita lihat variabel B dan C memiliki penurunan є, meskipun bukan satu satunya penurunan, maka kita lakukan penggantian : A → AB menjadi A → AB | A | B S → AaC menjadi S → AaC | aC | Aa | a B → є dan C → є kita hapus Setelah penyederhanaan : S → AaC | aC | Aa | a A → C | AB | A | B B → b C → d 40 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → AB 41 CONTOH Hasil akhir penyederhanaan menjadi : S → AB | A | B 42 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → aAb 43 CONTOH Contoh lain, terdapat tata bahasa bebas konteks : S → ABaC 44 SOAL 1. Hilangkanlah semua produksi є dari tata bahasa bebas konteks berikut. S → ABaC A → Bd B → b | є C → D | є D → BCa 2. Hilangkanlah semua produksi є dari tata bahasa bebas konteks berikut. S → AaB | aaB A → є B → bbA | є 45 SOAL 3. Hilangkanlah semua produksi є dari tata bahasa bebas konteks berikut. S → aSb | SS | є 4. Hilangkanlah semua produksi dari tata bahasa bebas konteks berikut. S → AB A → aA | abB | aCa B → bA | BB | є C → є D → dB | BCB 46 SOAL 5. Lakukan penghilangan produksi unit, useless, dan є dari tata bahasa bebas konteks berikut. S → a | aA | B | C A → aB | є B → Aa C → cCD D → ddd 6. Lakukan penghilangan produksi unit, useless, dan є dari tata bahasa bebas konteks S → aB | aaB A → є B → bA B → є 47 SOAL 7. Hilangkan semua aturan produksi useless dan unit dari tata bahasa bebas konteks berikut. S → AaC | aC | Aa | a A → C | AB | A | B B → b C → d |