Anda di halaman 1dari 28

Materi ke-10

Tata Bahasa Bebas Konteks


POHON PENURUNAN
Hirarki Chomsky
Tata Bahasa Bebas Konteks (Context
Free Grammar/CFG)

Bahasa bebas konteks menjadi dasar


dalam pembentukan suatu parser/proses
analisis sintaksis.
Bagian sintaks dalam suatu kompilator
kebanyakan didefinisikan dalam tata
bahasa bebas konteks.
• Bila pada tata bahasa regular terdapat
pembatasan pada ruas kanan atau hasil
produksinya, maka pada tata bahasa bebas
konteks/context free grammar, selanjutnya kita
sebut CFG, tidak terdapat pembatasan hasil
produksinya. Pada aturan produksi:
a–>b
• batasannya hanyalah ruas kiri (a) adalah sebuah
simbol variabel.
• Contoh aturan produksi yang termasuk CFG :
B–>CDeFg
D–>BcDe
PARSING
• Sebuah pohon (tree) adalah : suatu graph terhubung
tidak sirkuler, yang memiliki satu simpul (node) /vertex
yang disebut akar (root) dan dari root memiliki lintasan
ke setiap simpul.

• Pohon penurunan (derivation tree/parse tree)


berguna untuk menggambarkan bagaimana
memperoleh suatu string (untai) dengan cara
menurunkan simbol-simbol non terminal. Setiap
simbol variabel akan diturunkan menjadi terminal,
sampai tidak ada yang belum tergantikan.
Contoh 1
• Misalnya terdapat tata bahasa bebas konteks
dengan aturan produksi (simbol awal S,
selanjutnya digunakan sebagai simbol awal
untuk tata bahasa bebas konteks adalah S).
S –> AB
A –> aA | a
B –> bB | b
• Akan kita gambarkan pohon penurunan untuk
memperoleh untai : ‘aabbb’.
• Pada pohon tersebut simbol awal akan menjadi
akar (root).
• Setiap kali penurunan dipilih aturan produksi
yang menuju ke solusi.
• Simbol-simbol variabel (huruf besar) akan
menjadi simpul-simpul yang mempunyai anak.
• Simpul-simpul yang tidak mempunyai anak akan
menjadi simbol terminal (huruf kecil).
• Kalau kita baca simbol terminal yang ada pada
gambar dari kiri kekanan akan diperoleh untai
‘aabbb’ :
Pohon Penurunan untuk untai ‘aabbb’
S

A B

a A b B

a b B

b
Proses penurunan atau parsing bisa
dilakukan dengan cara sebagai berikut

• Penurunan terkiri (leftmost derivation) :


simbol variabel terkiri yang diperluas terlebih
dahulu
• Penurunan terkanan ( rightmost derivation) :
simbol variabel terkanan yang diperluas
terlebih dahulu
Contoh 2
• Misal, terdapat tata bahasa bebas konteks :
S –> aAS | a
A –> SbA | ba
Untuk memperoleh untai ‘aabbaa’ dari tata bahasa bebas konteks
diatas (‘=>’ bisa dibaca ‘menurunkan’):

• Dengan penurunan terkiri:


S => aAS => aSbAS => aabAS => aabbaS => aabbaa,
• Dengan penurunan terkanan :
S => aAS=> aAa=>aSbAa=>aSbbaa=>aabbaa.

• Kita dapat melihat pohon penurunannya pada gambar meskipun


proses penurunannya berbeda, namun akan tetap memiliki pohon
penurunan yang sama.
Pohon Penurunan untuk untai ‘aabbaa’
S

a A S

S b A a

a b a
Contoh 3
• Biasanya persoalan yang diberikan berkaitan dengan
pohon penurunan adalah untuk mencari penurunan
yang hasilnya menuju kepada suatu untai yang
ditentukan.
• Dalam hal ini, perlu untuk melakukan percobaan
pemilihan aturan produksi yang bisa menuju ke solusi.
• Misalnya sebuah tata bahasa bebas konteks memiliki
aturan produksi sebagai berikut.
S –> aB | bA
A –> a | aS | bAA
B –> b | bS | Abb
Pohon penurunan untuk memperoleh ‘aaabbabbba’
bisa dilihat pada gambar.
S

a B

a B B

a B B b S

b b S b A

a B a

b
Contoh Image Parsing untuk
menentukan teks, wajah dan latar
Contoh Image Parsing
• Fungsinya : proses parsing image untuk
memahami suatu gambar menjadi 4 aspek
perhitungan ruang.
1. Menghitung 3D scene layout
2. Deteksi obyek 3D . c/: Furniture
3. Deteksi obyek 2D. c/: Jendela, Pintu
4. Segmentasi backround
AMBIGUITAS
• Ambiguitas/ke-dwi artian terjadi bila terdapat lebih dari satu
pohon penurunan yang berbeda untuk memperoleh suatu
untai.

• Misalkan terdapat tata bahasa bebas konteks :


S–>A|B
A–>a
B–>a

Untuk memperoleh untai ‘a’ bisa terdapat dua cara


penurunan berikut ini.
S=>A=>a
S=>B=>a
• Contoh yang lain, terdapat tata bahasa bebas
konteks :
S–>SbS | ScS | a
• Kita bisa menurunkan untai ‘abaca’ dalam dua
cara berikut ini

1. S=>SbS => SbScS => SbSca => Sbaca => abaca


2. S=>ScS => SbScS => abScS => abacS => abaca
Pohon penurunan untai ‘abaca’ (1)
S

S b S

a S c S

a a
Pohon penurunan untai ‘abaca’ (2)
S

S c S

S b S a

a a
• Kita bisa melihat bahwa untuk untai yang sama
(‘abaca’) dapat dibuat pohon penurunan yang
berbeda, maka bahwa dapat dikatakan tata
bahasa bebas konteks tersebut ambigu.
• Jadi, untuk menunjukan bahwa suatu tata bahasa
bebas konteks ambigu, bisa dilakukan dengan
menemukan untai yang memungkinkan
pembentukan lebih dari satu pohon penurunan.
• Ambiguitas dapat menimbulkan masalah pada
bahasa-bahasa tertentu, baik bahasa alami
maupun pada bahasa pemrograman.
• Bila suatu struktur bahasa memiliki lebih dari
suatu dekomposisi (penurunan), dan
susunannya akan menentukan arti, maka
artinya menjadi ambigu
TUGAS 1
• Tuliskan String/ Untai dari ekspresi-ekspresi
regular berikut :
a. 010*
b. a* b*
c. 01* + 0
d. (a b)*
TUGAS 1
• Gambarkan mesin NFA dari ekspresi-ekspresi
regular berikut :
a. 01*0
b. a b
TUGAS 2
• Buatlah mesin FSA dari Aturan Produksi
sebagai berikut:

S  aA | aS
A  bB
B  bA | e
TUGAS 3
• Misalnya sebuah tata bahasa bebas konteks
memiliki aturan produksi sebagai berikut.
S –> aB | bA
A –> a | aS | bAA
B –> b | bS | Abb
• Buatlah pohon penurunan untuk memperoleh
untai ‘aaabbabbba’
ATTENTION!
•Dikerjakan dengan tulis tangan
•Diberi Nama, NIM, Kelas, Tanda Tangan masing-
masing
•Dikumpulkan dengan foto (jpeg) atau
•Foto diubah menjadi pdf
•Nama file foto/pdf Nama, NIM, Kelas
•Dikumpulkan di BOC
Paling lambat Sabtu, 5 Desember 2020 jam 23.59
WIB
TAMAT

Anda mungkin juga menyukai