Bab 2
Bab 2
TATA BAHASA
Jika diberikan spesifikasi suatu bahasa, ada dua masalah utama yang berkaitan dengan bahasa
tersebut :
1. Bagaimana membangkitkan satu atau lebih kalimat di dalam bahasa tersebut?
Masalah pembangkitan (generation)
2. Bagaimana menentukan apakah suatu kalimat termasuk di dalam bahasa tersebut atau
tidak?
Masalah pengenalan (recognition)
Aturan yang digunakan untuk membangkitkan atau mengenali kalimat di dalam bahasa
dinamakan tata bahasa (Grammar). Grammar adalah susunan simbol-simbol dalam string-
string suatu bahasa mengikuti aturan-aturan grammar(pembentukan) tertentu.
G = ( V, T, P, S )
Dimana
V adalah himpunan simbol nonterminal atau variabel
T adalah himpunan simbol teminal
P adalah himpunan aturan produksi
S adalah simbol awal
Simbol Nonterminal/Variabel
Simbol-simbol yang digunakan untuk mendeskripsikan struktur kalimat. Simbol ini dapat
diturunkan menjadi symbol-simbol terminal.
Biasanya dilambangkan dengan huruf besar, seperti A, B, C, D,…..
Contoh :
V = {S, A, B}
Simbol Terminal
Simbol yang dapat digunakan untuk membuat kalimat/string di dalam bahasa. Simbol
terminal merupakan symbol yang tidak dapat lagi diuraikan atau diturunkan.
Biasanya dilambangkan dengan huruf kecil, seperti a, b, c, d, dst., ataupun angka.
Contoh :
T = {a, b} atau {0, 1}
Produksi
Kaidah/aturan tata bahasa yang mengatur cara pembentukan kalimat di dalam bahasa.
Setiap aturan ditulis dalam bentuk :
9
Dimana yang menyatakan simbol-simbol yang terdapat di sebelah kiri () dapat
mengahsilkan yang merupakan simbol-simbol yang terdapat di sebelah kanan (). Simbol
di sebelah kanan merupakan simbol yang dihasilkan atau merupakan hasil produksi dari
simbol yang terdapat di sebelah kiri. Simbol-simbol tersebut merupakan simbol
variabel/simbol nonterminal dan simbol teminal.
Contoh :
S AB | ab
Simbol Awal
Simbol nonterminal khusus yang mengawali pembangkitan kalimat di dalam bahasa.
Biasanya simbol awal dinotasikan dengan S.
Ada 4(empat) kelas pengelompokan suatu bahasa, yang kita kenal dengan “Chomsky
Hierarchy”. Hirarki atau tingkatan bahasa ini dikembangkan oleh Noam Chomsky pada
tahun 1959.
Contoh :
G = (V, T, P, S)
V = {S, A, B}
T = {0, 1}
P : S 0A | 1B | 0
A 0A | 0S | 1B
B 1B | 1 | 0 |
10
Contoh :
G = {V, T, P, S}
V = {S, A, B}
T = {a, b}
P : S aB | bA
A a | aS | bAA
B b | bS | aBB
Contoh :
G = {V, T, P, S}
V = {S, B, C}
T = {a, b, c}
P : S aSBC | aBC |
CB BC
aB ab
bB bb
bC bc
cC cc
keterangan
S , karena S adalah simbol awal, maka ini juga memenuhi
Walau panjang S = 1 dan panjang = 0
Contoh :
G = (V, T, P, S)
V = {S, A, B, G}
T = {a, b,d}
P : S aSa
A bdG
AB a
Suatu bahasa dikatakan tipe i (Li), jika dihasilkan untuk tata bahasa tersebut tipe i :
L3 L2 L1 L0
11
Kata Kosong
Definisi sebelumnya pada Regular Grammar, Context Free Grammar dan Context Sensitive
Grammar, tidak terdapat suatu kata kosong (), maka definisi untuk tata bahasa di atas perlu
diperluas sehingga terdapat definisi S .
Teorema
Jika Bahasa (L) merupakan Regular Grammar, Context Free Grammar dan Context Sensitive
Grammar maka terdapat L {} yang merupakan Regular Grammar, Context Free
Grammar dan Context Sensitive Grammar.
Contoh
Grammar (G) = (V, T, P, S), yang merupakan tipe 1 hirarki Chomsky
Dimana
V = {S, B, C}
T = {a, b, c}
P : S aSBC | aBC
CB BC
aB ab
bB bb
bC bc
cC cc
Teorema
Jika G = (V, T, P, S) merupakan context sensitive grammar yang memiliki G rekursif, maka G
rekursif itu berlaku juga untuk regular grammar dan context free grammar.
Bukti
Misal diasumsikan bahwa aturan produksi P tidak berisi S dan string w VT* dengan
panjang string sebesar n. Kita mendefinisikan bahwa Tm sebagai sekumpulan kata dalam V+
dengan panjang maksimal string n. Sehingga didapatkan suatu hasil turunan dengan langkah
maksimal dilakukan adalah m langkah.
Jika T0 merupakan langkah awal, maka langkah awal berisikan simbol awal dari aturan
produksi. Apabila S merupakan simbol awal maka T 0 = {S}. Dengan mudah kita dapat
menetukan Tm dapat diperoleh dari Tm-1. Apabila kita mengetahui bahwa panjang kata n,
maka dapat diturunkan dari kata-kata Tm-1 yang merupakan sebuah aplikasi prosuksi.
12
Pendefinisan Formal
Tm = Tm-1 { | untuk dalam Tm-1, dimana dan || n} dan juga, jika S * , dan
|| n, maka terdapat dalam Tm untuk m tertentu. Jika S tidak menurunkan atau || > n,
maka tidak terdapat dalam Tm untuk semua nilai m.
Kita akan membuat algoritma untuk menentukan T1, T2, T3, … sehingga diperoleh m dimana
Tm = Tm-1. Jika string w terdapat dalam Tm, maka string w terdapat dalam L(G), karena untuk
j > m, dimana Tj = Tm di sini jelas bahwa jika string w dalam Tm, didapat S G*w.
Contoh
1. Misal S aBC abC abc
Maka :
T0 = {S}
T1 = {S, aBC}
T2 = {S, aBC, abC}
T3 = {S, aBC, abC, abc}
2. Diketahui G = (V, T, P, S)
Dimana :
V = {S, B, C}
T = {a, b, c}
P : S aSBC | aBC
aB ab
CB BC
bB bb
bC bc
cC cc
Tentukan apakah string w = abac diterima oleh tata bahasa di atas?
Jawab
Jadi dapat kita buat suatu kesimpulan bahwa string w = abac L(G), dimana hasil
kemungkinan pertama adalah “aabc” dan hasil kemungkinan kedua adalah “abc”,
sementara string w yang diinginkan adalah “abac”.
13
KASUS
1. Tipe berapakah dalam hirarki Chomsky, Tata Bahasa di bawah ini :
G = ( V, T, P, S)
Dimana
V = {S, A, B}
T = {a, b, c, d}
P : S AB
A Ab | a
B cB | d
3. G = ({A, B, S}, {a, b}, P, S), dengan aturan produksi S aAB, bB a, Ab SBb
Aa Sab, B SA dan B ab.
Cari bahasa dari tata bahasa di atas (L(G)).
4. Diketahui G = (V, T, P, S)
Dimana
V = {S, B}
T = {0, 1}
P : S 0BS | 0
B S1B | SS | 10
Pertanyaan
Dengan menggunakan rekursif, tentukan apakah string x = 0011000 diterima oleh tata
bahasa di atas (x L(G)) ?
14