530 likes | 1.44k Views
Tata Bahasa Bebas Konteks ( Context-Free Grammar ). Pertemuan ke-8 dan ke-9 Yenni Astuti , S.T., M.Eng . yenni.stta@gmail.com. Tujuan Penggunaan Context-Free Grammar (CFG). Contoh 1: Aturan Kalimat pada Bahasa Manusia <sentence> <noun phrase> <verb phrase>
E N D
Tata BahasaBebasKonteks(Context-Free Grammar) Pertemuan ke-8 dan ke-9 YenniAstuti, S.T., M.Eng. yenni.stta@gmail.com
TujuanPenggunaanContext-Free Grammar (CFG) Contoh 1: Aturan Kalimat pada Bahasa Manusia <sentence> <noun phrase> <verb phrase> <noun phrase> <adjective> <noun phrase> <noun phrase> <noun> Menjelaskanbahasaalamimanusia **Tanda “” dibaca: “diturunkan menjadi”
Contoh 1 (lanjutan): Aturan Kalimat pada Bahasa Manusia <sentence> <noun phrase> <verb phrase> <noun phrase> <adjective> <noun phrase> <noun phrase> <noun> <verb phrase> <verb> <noun phrase> <verb phrase> <verb> <verb> love <noun> boy, girl <adjective> little, pretty **Tanda “” dibaca: “diturunkan menjadi”
Nonterminal dan Terminal pada Bahasa Alami Manusia <verb> love <noun> boy, girl <adjective> little, pretty • Simbol di dalam tanda < > adalahsimbol nonterminal. • “love”, “boy”, “pretty” adalahsimbol terminal.
Contoh 2: Penurunan kalimat “Little boy love pretty girl” dari Aturan slide 3 <sentence> <noun phrase> <verb phrase> <adjective> <noun phrase> <verb phrase> little <noun> <verb phrase> little boy <verb phrase> little boy <verb> <noun phrase> little boy love <noun phrase> little boy love <adjective> <noun phrase> little boy love pretty <noun phrase> little boy love pretty <noun> little boy love pretty girl
Manfaat CFG pada bidang Komputer Mendeskripsikan aturan tatabahasa suatubahasapemrograman (seperti: C, Pascal, Basic)
Definisi Formal CFG CFG dituliskan dalam bentuk 4 komponen (4-tupel) G = (N, , P, S) N = himpunan nonterminal. = himpunan terminal/ alfabet P = aturanproduksi, yakni A dengan A N, (N )* S = simbolawal Ingat materi Teori Bahasa mengenai ciri CFG
Penurunan String (Derivation) • Dalamsuatu grammar G, suatu string yang mengandung simbol nonterminal (1) dapat menurunkan bentuk terminal (m). • Dituliskandengan1* m. • Seluruh sentence (ingat materi Teori Bahasa) dapat membentuk suatu bahasa, yang dinotasikan dengan L(G) • L(G) = { w | w dalam *, dan S *w}
CFL (Context-Free Language) • Seluruh sentence (ingat materi Teori Bahasa) dapat membentuk suatu bahasa, yang dinotasikan dengan L(G) • L(G) = { w | w dalam *, dan S *w} Bahasa dari suatu grammar (G) adalah seluruh sentence yang terdiri dari alfabet dalam G, dan diturunkan dari simbol awal S
Contoh 3: Penurunan G = ({S}, {a,b}, P, S) Dengan P adalah: • S aSb • S ab Maka, Turunan yang dihasilkan: S aSb aabb S aSb aaSbb aaabbb S aSb aaSbb aaaSbbb aaaabbbb jumlah ‘a’ dan ‘b’ sama
Contoh 3 (lanjutan): Penurunan Turunan yang dihasilkan: S aSb aabb S aSb aaSbb aaabbb S aSb aaSbb aaaSbbb aaaabbbb Dituliskandalambentuk L(G) L(G) = {anbn | n ≥ 1} jumlah ‘a’ dan ‘b’ sama
PohonPenurunan (Derivation Tree) root • Penurunandapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalah simbol awal (S). node node
PohonPenurunan (Derivation Tree) S • Penurunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalahsimbolawal (S). • Node dapat berupa terminal atau nonterminal. node node
PohonPenurunan (Derivation Tree) S • Penurunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalahsimbolawal (S) • Node dapat berupa terminal atau nonterminal. • Setiap nonterminal harus diturunkan hingga membentuk terminal. A a
PohonPenurunan (Derivation Tree) S • Penurunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalahsimbolawal (S) • Node dapat berupa terminal atau nonterminal. • Setiap nonterminal harus diturunkan hingga membentuk terminal. A a a
Contoh 4: Latihan G = ({S, A}, {a,b}, P, S) P adalah: S aAS S a A SbA A SS A ba Salah satu turunannya adalah aabbaa, buktikan dengan pohon penurunan!
Contoh 4 (lanjutan): Latihan • Aturan Produksi: • S aAS • S a • A SbA • A SS • A ba String aabbaa diperoleh melalui: S a A S S b A a a b a
Contoh 4 (lanjutan): Latihan • Aturan Produksi: • S aAS • S a • A SbA • A SS • A ba String aabbaa diperoleh melalui: S a A S S b A a a b a
Keambiguan Proses Penurunanada 2 cara: • Dari sisikiri (left-most) : diturunkan satu-per-satu dari kiri. • Dari sisikanan (right-most) : diturunkan satu-per-satu dari kanan. diturunkan dari dua/lebih suatu string Jika proses penurunan yang sama (keduanya left-most atau keduanya right-most) Maka keambiguan akan terjadi !
Contoh 5: Keambiguan CFG denganaturanproduksi: • E E + E • E E * E • E (E) • E a String a + a * a merupakan string ambigu karena string tersebut memiliki dua proses penurunan left-most. Mari kita lihat buktinya!
Aturan Produksi: E E + E E E * E E (E) E a Contoh 5 (lanjutan): Keambiguan Penurunan Left-Most E E beda E * E E + E E a + E a E * E a a a a
Aturan Produksi: E E + E E E * E E (E) E a Contoh 5 (lanjutan): Keambiguan Penurunan Left-Most E E beda E * E E + E E a + E a E * E a a a a *Kedua pohon tersebut berbeda, namun menghasilkan string yang sama terbukti ambigu!
Palindrome Contoh Palindrome: • OTTO • DOOM MOOD • STAR RATS • STEP ON NO PETS • WASITARATISAW (dibaca: Was it a rat I saw) jika dari kiri ke kanan yang dibaca String akan sama dengan jika dibaca dari kanan ke kiri
Info Tugas: • Tugas kuliah ke-8 (khusus kelas B) : Tugas-1 • Tugas kuliah ke-9 (kelas A dan kelas B) : Tugas-2 • Jika ada permasalahan seputar tugas, silakan hubungi saya di ruangan (khususnya pada jam matakuliah Teori Bahasa & Otomata). Thanks!