Anda di halaman 1dari 15

MAKALAH

TEORI BAHASA DAN AUTOMATA


POHON TURUNAN

Dosen Pengampu:
Dr.M.Taufik,M.Pd.

Disusun Oleh:
Ivhan Syaputra 2204411592
Yusril 2204411583
Fadillah Sumanda 2204411598
Saila 2204411558

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK KOMPUTER
UNIVERSITAS COKROAMINOTO PALOPO

TAHUN AJARAN 2023/2024prakata

1
PRAKATA

2
BAB I

PENDAHULUAN

A. Latar Belakang
Bahasa alami atau bahasa non formal adalah bahasa komunikasi yang digunakan oleh
manusia, yaitu bahasa ucap seperti bahasa Indonesia, bahasa Inggris, bahasa Arab. Sintaks
bahasa alami sangat rumit, karena bahasa alami memiliki tata bahasa dan aturan yang lebih
luas dan luwes, sehingga tidak mungkin untuk menspesifikasikan semua aturan sintaksnya.
Bahasa formal adalah bahasa yang kaidah sintaksnya dapat dispesifikasikan secara matematis
dengan baik. Kaidah bahasa dalam teori bahasa formal tidak hanya bermanfaat untuk studi
linguistik bahasa alami seperti penterjemahan secara otomatis dari suatu bahasa ke bahasa
lain, tetapi juga berguna untuk studi bahasa pemograman.

Tata bahasa bebas konteks (Context Free Grammar atau CFG) merupakan salah satu
bahasa formal yang dapat digunakan untuk mendefinisikan sintaks bahasa pemograman.
Suatu tata bahasa bebas konteks dapat berbentuk sangat melebar, sangat menyempit, atau
terjadi rekursif kiri, yang semuanya sering dinamakan bentuk tidak normal. Suatu tata
bahasa bebas konteks dapat dimodifikasi ruas kanan aturan produksinya sedemikian
sehingga panjangnya hanya satu atau dua karakter, tentu dapat dengan mudah dibayangkan
bahwa pohon penurunan string yang terbentuk akan menjadi lebih sederhana, yaitu pohon
biner dimana setiap simpul hanya memiliki cabang satu atau dua. Tata bahasa dengan batasan
seperti ini disebut tata bahasa bebas konteks dalam bentuk normal Chomsky (Chomsky
Normal Form atau CNF)[1].
B. Rumusan Masalah
a. Apa yang dimaksud dengan Tata Bahasa Bebas Konteks?
b. Apa yang dimaksud dengan Parsing?
c. Apa yang dimaksud dengan Ambiguitas?
C. Tujuan
a. Mengetahui apa yang dimaksud dengan Tata Bahasa Bebas Konteks
b. Mengetahui apa itu Parsing
c. Mengetahui apa yang dimaksud dengan Ambiguitas

3
BAB II
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.
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 parsing adalah proses
pembacaan string dalam bahasa sesuai CFG tertentu, proses ini harus mematuhi aturan
produksi dalam CFG tersebut.

4
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.
Contoh:

 S → AB (kita baca S menghasilkan AB).


 A → aA | a (kita baca A menghasilkan aA atau a).
 B → bB | b (kita bacaB menghasilkan bB atau b).

Langkah Pertama
S merupakan simbol awal.

Kita turunkan simbol S sebagai simbol awal sesuai dengan turunannya, yaitu


menjadi AB .

Langkah Kedua
Kita harus mencari dua simbol a terminal (aa). Untuk mencarinya variabel A harus kita
turunkan karena variabel A memiliki dua turunan, yaitu aA dan a maka kita harus
memilih turunan aA supaya kita dapat mencari simbol terminal a kedua.

5
Langkah Ketiga
Setelah kita berhasil menurunkan satu simbol terminal a, selanjutnya variabel A yang
tersisa kita turunkan menjadi terminal a supaya pencarian tidak mengalami perulangan.

Langkah Keempat
Setelah dua simbol terminal a (aa) sudah kita temukan, langkah selanjutnya adalah
mencari tiga simbol terminal b (bbb). Maka seperti mencari variabel A tadi,
variabel B harus kita turunkan menjadi bB.

6
Langkah Kelima
Karena masih tersisa dua simbol terminal b yang harus kita cari, maka variabel B harus
kita turunkan kembali menjadi bB.

Langkah Keenam
Terakhir, setelah dua simbol terminal b kita temukan, maka langkah terakhir adalah
menurunkan variabel B menjadi terminal b.

7
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.

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:SA
 Rentang Waktu eksekusi
 Penanganan Kesalahan
 Penanganan Kode
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

8
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 menjadi 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’

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

9
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.

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]

10
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
o S => ScS => SbScS => abScS => abacS => abaca.

Pohon penurunannya bisa dilihat pada gambar :

11
Ambiguitas terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda untuk
memperoleh suatu string. Misalkan terdapat tata bahasa sebagai berikut :
SA|BAaBa
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.

12
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]

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

13
disebut string ambigu (ambiguous). Grammar yang menghasilkan paling sedikit sebuah string
ambigu disebutgrammar ambigu.

14
DAFTAR PUSTAKA

[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.

15

Anda mungkin juga menyukai