DEVIRATION TREE
DISUSUN OLEH :
SUWARNO
JANUARY AUDREY
RESTY ANGGA ANOM
Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha Panyayang,
Kami panjatkan puja dan puji syukur atas kehadirat-Nya, yang telah melimpahkan rahmat,
hidayah, dan inayah-Nya kepada kami, sehingga kami dapat menyelesaikan makalah ini tepat
pada waktunya.
Makalah ini dibuat untuk memenuhi salah satu tugas mata kuliah Teori
Bahasa dan Automata. Dalam makalah ini mengulas tentang Pohon Penurunan. Kami
berharap semoga makalah ini dapat bermanfaat bagi pembaca.
Dengan segala kerendahan hati, kritik dan saran yang sangat kami harapkan
dari para pembaca guna untuk meningkatkan dan memperbaiki pembuatan makalah
pada tugas yang lain dan pada waktu mendatang.
Penulis
i
BAB I
PEMBAHASAN
1
parsing adalah proses pembacaan string dalam bahasa sesuai CFG tertentu, proses ini
harus mematuhi aturan produksi dalam CFG tersebut.[2]
B. Pohon Penurunan
Sebuah pohon (tree) adalah suatu graph terhubung tidak sirkuler, yang memiliki
satu simpul (node) / vertex disebut akar (root) dan dari situ memiliki lintasan ke setiap
simpul. Pohon sintaks / pohon penurunan (syntax tree/derivaton tree/parse tree) berguna
untuk menggambarkan bagaimana memperoleh suatu string (untai) dengan cara
menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Setiap simbol
variabel diturunkan menjadi terminal, sampai tidak ada yang belum tergantikan[2]
C. Parsing
Sebuah pohon (tree) adalah suatu graph terhubung tidak sirkuler, yang memiliki
satu simpul (node)/vertex yang disebut akar (root) dan dari situ memiliki lintasan ke
setiap simpul. Gambar dibawah ini memberikan contoh sebuah tree yang menguraikan
kalimat dalam bahasa inggris.
Context Free Grammar ( CFG ) menjadi dasar dalam pembentukan suatu parser/proses
analisis sintaksis. Bagian sintaks dalam suatu kompilator kebanyakan di definisikan
dalam tata bahasa bebas konteks[2]
2
The quick brown fox jumped over the lazy dog
3
Metode Parsing digolongkan menjadi:
1. Top – Down
Metode ini melakukan penelusuran dari root/puncal ke leaf / bawah (dari symbol
awal ke symbol terminal/symbol awal S sampai kalimat x). metode ini meliputi:
- Backtrack/backup : Brute Force
- No Backtrack : Recursive Descent Parser
2. Bottom – Up
Metode ini melakukan penelusuran dari leaf ke root (dari kalimat x sampai
symbol awal S)
Misalnya terdapat tata bahasa bebas konteks dengan aturan produksi (simbol awal
S, selanjutnya di dalam bab ini digunakan sebagai simbol awal untuk tata bahasa konteks
adalah S):
S AB
A aA | a
B bB | b
Akan kita gambarkan pohon penurunan untuk memeperoleh untai : ‘aabbb’. Pada
pohon tersebut simbol awal akan menjad akar (root). Setiap kali penurunan dipilih aturan
produksi yang menuju ke solusi. Simbol – simbol variabel akan menjadi simpul - simpul
yang mempunyai anak. Simpul-simpul yang tidak mempunyai anak akan menjadi simbol
terminal. Kalau kita baca simbol terminal yang ada (pada gambar) dari kiri ke kanan akan
diperoleh untai ‘aabbb’.
4
Proses penurunan atau parsing bila dilakukan dengan cara sebagai berikut :
1. Penurunan terkiri (leftmost derivation) : simbol variabel terkiri yang diperluas terlebih
dulu.
2. Penurunan terkanan (rightmost derivation): simbol variabel terkanan yang diperluas
terlebih dahulu.
S aAS | a
A SbA | ba
Untuk memperoleh untai ‘aabbaa’ dari tata bahasa bebas kontkeks diatas (‘=>’
bisa dibaca ‘menurunkan’):
- Dengan penuruna terkiri : S => aAS => aSbAS =>aabAS => aabbaS =>
aabbaa,
- Dengan penurunan terkanan : S => aAS => aAa => aSbAa => aSbaa =>
aabbaa.
Kita dapat melihat pohon penurunannya (pada gambar) meskipun proses
penurunannya berbeda, namun akan tetap memiliki pohon penurunan yang sama.
5
Biasanya persolaan yang diberikan berkaitan dengan pohon penurunan adalah
untuk mencari penurunan yang hasilnya menuju kepada suatu untai yang ditentukan.
Daalm hal ini, perlu untuk melakukan percobaan pemilihan aturan produksi yang bisa
menuju ke solusi. Misalkan 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.[2]
6
D. Ambiguitas
Ambiguitas / kedwiartian terjadi bila terdapat lebih dari satu pohon penurunan
yang berbeda untuk memperoleh suatu untai.
Misalkan terdapat tata bahasa bebas konteks :
S A|B
Aa
Ba
Untuk memperoleh untai ‘a’ bisa terdapat dua cara penurunan berikut ini.
S => A => a
S => B => a
S SbS | ScS | a
Kita bisa menurunkan untai ‘abaca’ dalam dua cara beirkut ini :
o S => SbS => SbScS => SbSca => Sbaca => abaca
7
o S => ScS => SbScS => abScS => abacS => abaca.
Pohon penurunannya bisa dilihat pada gambar :
Ambiguitas terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda
untuk memperoleh suatu string. Misalkan terdapat tata bahasa sebagai berikut :
S A | B A a B a
8
Untuk memperoleh untai ‘a’ bisa terdapat dua cara penurunan sebagai berikut :
S => A => a S => B => a
Contoh ambiguitas lain:
Diketahui grammar G = {S SOS|A , O *|+, A 0|1|2|…|9} String :2*3+7
mempunyai dua pohon sintaks berikut :
Gambar 3.
String ambigu Sebuah string yang mempunyai lebih dari satu pohon sintaks
disebut string ambigu (ambiguous). Grammar yang menghasilkan paling sedikit sebuah
string ambigu disebutgrammar ambigu.
Kita bisa mlihat bahwa untuk untai yang sama (‘abaca’) dapat dibuat pohon
penurunan yang berbeda, maka dapat dikatakan tata bahasa bebas konteks tersebut
ambigu. Jadi, untuk menunjukkan bahwa suatu tata bahasa bebas konteks ambigu, bisa
dilakukan dengan menemukan untai yang memungkinan pembentukan lebih dari satu
pohon penurunan. Ambiguitas dapat menimbulkan masalah pada bahasa – bahasa
tertentu, baik bahasa alami maupun pada bahasa pemograman. Bila suatu struktur bahasa
memiliki lebih dari suatu dekomposisi (penurunan), dan susunannya akan menentukan
art, maka artinya menajid ambigu. [2]
9
BAB III
PENUTUP
A. Kesimpulan
Tata bahasa bebas konteks adalah suatu cara yang menunjukkan bagaimana
menghasilkan untai – untai dalam sebuah bahasa, dan tidak terdapat pembatasan pada
hasil produksinya.
Pohon sintaks / pohon penurunan (syntax tree/derivaton tree/parse tree) berguna
untuk menggambarkan bagaimana memperoleh suatu string (untai) dengan cara
menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Setiap simbol
variabel diturunkan menjadi terminal, sampai tidak ada yang belum tergantikan.
Pohon penurunan ( derivation tree/parse tree) berguna untuk menggambarkan simbol-
simbol variabel menjadi simbol-simbol terminal setiap simbol variabel akan di turunkan
menjadi terminal sampai tidak ada yang belum tergantikan. Proses penurunan atau parsing
bisa dilakukan dengan cara :
1. penurunan terkiri (leftmost derivation) yaitu simbol variabel terkiri yang diperluas
terlebih dahulu.
2. Penurunan terkanan (rightmost derivation) yaitu simbol variabel terkanan yang
diperluas terlebih dahulu.
Ambiguitas terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda untuk
memperoleh suatu string. Sebuah string yang mempunyai lebih dari satu pohon sintaks
disebut string ambigu (ambiguous). Grammar yang menghasilkan paling sedikit sebuah
string ambigu disebutgrammar ambigu.
10
REFERENSI
[1] F. Elsaid, “Teori Bahasa dan Otomata (Pohon Penurunan),” in Teori Bahasa dan Otomata
(PohonPenurunan), 2012.
[2] F. Utdirartatmo, Teori Bahasa Dan Otomata, 2nd ed. Yogyakarta: Graha Ilmu, 2005.