Anda di halaman 1dari 13

MAKALAH TEKNIK BAHASA DAN AUTOMATA

DEVIRATION TREE

DISUSUN OLEH :

SUWARNO
JANUARY AUDREY
RESTY ANGGA ANOM

JENJANG STUDI STRATA SATU (S1)


PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN
KOMPUTER (STMIK) DUMAI
T.A 2019/2020
KATA PENGANTAR

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.

Dumai, 19 Desember 2019.

Penulis

i
BAB I
PEMBAHASAN

A. 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 sebagai CFG, tidak terdapat pembatasan hasil produksinya. Pada aturan produksi :
A b
batasannya hanyalah ruas kiri (A) dalah sebuah simbol variabel. Contoh aturan produksi
yang termasuk CFG :
B  CdeFg
D  BcDe
Seperti halnya pada tata bahsa reguler, sebuah tata bahasa bebas konteks adalah
suatu cara yang menunjukkan bagaimana menghasilkan untai – untai dalam sebuah
bahasa. Seperti kita ketahui, pada saat menurunkan suatu string, simbol – simbol variabel
akan mewakili bagian-bagian yang belum terturunkan dari string tersebut. Bila pada tata
bahasa reguler, bagian yang belum terturunkan tersebut selalu terjadi pada suatu ujung,
pada tata bahasa bebas konteks bisa terdapat lebih banyak bagian yang belum terturunkan
itu, dan bisa terjadi dimana saja. Ketika penurunan itu telah lengkap, semua bagian yang
belum terturunkan telah diganti oleh string-string (yang mungkin saja kosong) dari
himpunan simbol terminal. Bahasa bebas konteks menjadi dasar dalam pembentukan
suatu parser/proses analisis sintaksis. Bagian sintaks dalam suatu kompilator kebanyakan
didefinisikan dalam tata bahasa bebas konteks.[1]
Terinspirasi dari bahasa natural manusia, ilmuwan-ilmuwan ilmu komputer yang
mengembangkan bahasa pemrograman turut serta memberikan grammar (pemrograman)
secara formal. Grammar ini diciptakan secara bebas-konteks dan disebut Context Free
Grammar (CFG). Hasilnya, dengan pendekatan formal ini, kompiler suatu bahasa
pemrograman dapat dibuat lebih mudah dan menghindari ambiguitas ketika parsing
bahasa tersebut. Contoh desain CFG untuk parser, misal : B -> BB | (B) | e untuk
mengenali bahasa dengan hanya tanda kurung {‘(’,’)’} sebagai terminal-nya. Proses

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

Pohon penurunan (derivation tree / parse tree) berguna untuk menggambarkan


bagaimana memperoleh suatu string (untai) dengan cara menurunkan simbol-simbol
variabel menjadi simbol – simbol terminal. Setiap simbol variabel akan diturunkan
menjadi terminal, sampai tidak ada yang belum tergantikan.

Proses Parsing merupakan tahapan analisis sintaksis yang berguna untuk


memeriksa urutan kemunculan token. Di dalam mengimplementasikan sebuah metode
parsing ke dalam program perlu diperhatikan tiga hal sebagai berikut:

- Rentang Waktu eksekusi


- Penanganan Kesalahan
- Penanganan Kode

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.

Misal terdapat tata bahasa bebas konteks :

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
Aa
Ba

Untuk memperoleh untai ‘a’ bisa terdapat dua cara penurunan berikut ini.

 S => A => a
 S => B => a

Contoh lain, terdapat tata bahasa bebas konteks :

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.

Anda mungkin juga menyukai