You are on page 1of 6

BAB 2

TATA BAHASA
2.1.

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 stringstring suatu bahasa mengikuti aturan-aturan grammar(pembentukan) tertentu.
Grammar dari suatu bahasa :
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 :


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.
2.2. HIRARKI CHOMSKY
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.
Pengelompokan bahasa menurut Chomsky
1. Tata Bahasa Regular (Regular Grammar)/Tipe 3

dimana :
adalah simbol nonterminal tunggal
maksimal memiliki maksimal satu simbol non terminal tunggal dan ditempatkan
pada posisi paling kanan.
Mesin pengenal bahasa disebut : Finite State Automata (FSA)
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 |
2. Tata Bahasa Bebas Konteks (Conteks Free Grammar)/Tipe 2

dimana :
adalah simbol nonterminal tunggal
Mesin pengenal bahasa disebut : Push Down Automata (PDA)
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
3. Tata Bahasa Sensitive Konteks (Conteks Sensitive Grammar)/Tipe 1

dimana :
|| ||
Mesin pengenal bahasa disebut : Linear Bounded Automata (LBA)
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
4. Tata Bahasa Tanpa Batas (Unrestricted Grammar)/Tipe 0
Tidak ada batasan
Mesin pengenal bahasa disebut : Mesin Turing
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
Maka akan didapat :
S aBC abC abc
S aSBC aaBCBC aaBBCC aabBCC aabbCC aabbcC aabbcc
Dari proses di atas terdapat bahasanya yaitu :
L(G) = {w | w an bn cn, n 1}
Tata Bahasa Rekursif
Tata bahasa disebut Rekursif jika terdapat sebuah algoritma yang dapat menentukan untuk
setiap string w menghaislkan tata bahasa (G).
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 T0 = {S}. Dengan mudah kita dapat
12

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.
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
(a). Kemungkinan Pertama
T0 = {S}
T1 = {S, aSBC}
T2 = {S, aSBC, aaBC}
T3 = {S, aSBC, aaBC, aabC}
T4 = {S, aSBC, aaBC, aabC, aabc}
Hasil kemungkinan pertama bahwa w = abac L(G)
(b). Kemungkinan Kedua
T0 = {S}
T1 = {S, aBC}
T2 = {S, aBC, abC}
T3 = {S, aBC, abC, abc}
Hasil kemungkinan kedua bahwa w = abac L(G)
13

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.

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
2. Carilah L(G) dari tata bahasa di bawah ini :
G = (V, T, P, S)
Dimana
V = {S}
T = { 0, 1}
P : S | SS | 0S1 | 1S0
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

You might also like