Anda di halaman 1dari 24

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>
<noun phrase> <adjective> <noun phrase>
<noun phrase> <noun>
Menjel askan bahasa al ami manusia
**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 < > adalah simbol nonterminal.
love, boy, pretty adalah simbol 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 tata bahasa
suatu bahasa pemrograman (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 = aturan produksi, yakni A
dengan A N, (N )*
S = simbol awal

Ingat materi Teori Bahasa mengenai ciri CFG
Penurunan String (Derivation)
Dalam suatu grammar G, suatu string yang mengandung simbol
nonterminal (
1
) dapat menurunkan bentuk terminal (
m
).
Dituliskan dengan
1
*
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

Dituliskan dalam bentuk L(G)
L(G) = {a
n
b
n
| n 1}
jumlah a dan b sama
Pohon Penurunan (Derivation Tree)
Penurunan dapat juga dinyatakan dalam bentuk
tree/pohon.
Sebagai root adalah simbol awal (S).
root
no
de
no
de
Pohon Penurunan (Derivation Tree)
S
no
de
no
de
Penurunan dapat juga dinyatakan dalam bentuk
tree/pohon.
Sebagai root adalah simbol awal (S).
Node dapat berupa terminal atau nonterminal.
Pohon Penurunan (Derivation Tree)
Penurunan dapat juga dinyatakan dalam bentuk
tree/pohon.
Sebagai root adalah simbol awal (S)
Node dapat berupa terminal atau nonterminal.
Setiap nonterminal harus diturunkan
hingga membentuk terminal.

S
a A
Pohon Penurunan (Derivation Tree)
Penurunan dapat juga dinyatakan dalam
bentuk tree/pohon.
Sebagai root adalah simbol awal (S)
Node dapat berupa terminal atau nonterminal.
Setiap nonterminal harus diturunkan
hingga membentuk terminal.
S
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
String aabbaa diperoleh melalui:
S
a A S
S b
A
a
a b a
Aturan
Produksi:
S aAS
S a
A SbA
A SS
A ba
Contoh 4 (lanjutan): Latihan
String aabbaa diperoleh melalui:
S
a A S
S b
A
a
a b a
Aturan
Produksi:
S aAS
S a
A SbA
A SS
A ba
Keambiguan
Proses Penurunan ada 2 cara:
1. Dari sisi kiri (l ef t - most ) : diturunkan satu-per-satu dari kiri.
2. Dari sisi kanan (ri ght - most ) : diturunkan satu-per-satu dari
kanan.

Jika
suatu string diturunkan dari dua/lebih
proses penurunan yang sama (keduanya left-most atau keduanya right-most)
Maka keambiguan akan terjadi !
Contoh 5: Keambiguan
CFG dengan aturan produksi:
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!
Contoh 5 (lanjutan): Keambiguan
E
E E +
a
E * E
a
a
E
E E *
E + E
a
a
a
Penurunan Lef t -
Most
Aturan Produksi:
E E + E
E E * E
E (E)
E a
beda
Contoh 5 (lanjutan): Keambiguan
E
E E +
a
E * E
a
a
E
E E *
E + E
a
a
a
Penurunan Lef t -
Most
Aturan Produksi:
E E + E
E E * E
E (E)
E a
*Kedua pohon tersebut berbeda, namun menghasilkan string yang sama terbukti ambigu!
beda
Palindrome
Contoh Palindrome:
OTTO
DOOM MOOD
STAR RATS
STEP ON NO PETS
WASITARATISAW (dibaca: Was it a rat I saw)
String
yang jika dari kiri ke kanan
jika
dibaca
akan sama dengan
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!

Anda mungkin juga menyukai