Anda di halaman 1dari 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 string-
string 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 :

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.

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

(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)

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

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

Anda mungkin juga menyukai