Kelas bahasa ditentukan oleh kelas tata bahasanya. Jadi, bahasa kelas i adalah bahasa
yang dapat dispesifikasikan oleh tata bahasa kelas i. Di dalam pembahasan berikut,
kita menggunakan A dan B untuk menyatakan non-terminal, a dan b untuk
menyatakan terminal, dan dan untuk menyatakan string terminal dan non-
terminal.
Bahasa yang dispesifikasikan oleh tata bahasa ini disebut bahasa regular
(regular language)
Mesin yang mengenali bahasa regular adalah Finite State Automata (FSA).
Contoh 3.1 : Tinjauan tata bahasa G=(T, N, P, S), dengan T={0, 1}, N={S, A,
B}, dan aturan produksi didalam P adalah :
S 0A B 1B
S 1B B1
A 0A B0
A 0S S0
A 1B
Jelas bahwa G adalah tata bahasa regular, dan L(G) adalah bahasa regular
(jenis-3).
2. Kelas tata bahasa bebas-konteks (context-free) atau tata bahasa jenis-2 (type-
2 grammar).
Kelas tata bahasa jenis-2 dicirikan jika semua aturan produksinya selalu
berbentuk :
A
dimana, ruas kiri dari aturan produksinya selalu berupa sebuah simbol non-
terminal, sedangkan adalah string selain . Jelaslah bahasa tata bahasa
jenis-3 juga merupakan tata bahasa jenis 2.
Nama bebas-konteks timbul karena aturan produksi yang berbentuk A
memungkinkan simbol non-terminal A diganti dengan string tidak
bergantung dari konteks dari mana A muncul.
Bahasa yang dispesifikasikan oleh tata bahasa ini disebut bahasa bebas-
konteks (context-free language) atau CFL.
Mesin FSM yang mengenali bahasa jenis-2 ini adalah Push Down Automata
(PDA).
Contoh 3.2 : Tinjauan tata bahasa G = (T, N, P, S), dengan T= {a,b}, N={S,
A, B}, dan produksi didalam P adalah :
S aB A bAA
S bA Bb
Aa B bS
A aS B aBB
Jelaslah bahwa G adalah tata bahasa bebas-konteks, dan L(G) adalah tata
bahasa bebas-konteks. Dapat ditunjukan bahwa L(G) = {aibi | i | = 1}.
Mesin FSM yang mengenali bahasa jenis-1 ini adalah Linear Bounded
Automata (LBA).
Contoh 3.3 : Tinjauan tata bahasa G = (T, N, P, S), dengan T={a, b, c},
N={S, B, C}, dan aturan produksi didalam P adalah :
S aSBC bB bb
S aBC bC bc
CB BC cC cc
Bahasa yang dispesifikasikan oleh tata bahasa ini disebut bahasa tanpa-
pembatasan (unrestricted language).
Mesin FSM yang mengenali bahasa jenis-0 adalah mesin Turing (Turing
machine).
jenis 1 atau
peka-konteks
jenis 2 atau
bebas-konteks
jenis 3
atau
regular
Keempat kelas tata bahasa di atas beserta mesin pengenal bahasanya diringkas
didalam tabel dibawah ini :
Keempat jenis otomata untuk setiap kelas bahasa mempunyai ciri diatas merupakan
klasifikasi dari tipe tata bahasa Noam Chomsky.
C. Regular Grammar.
Suatu tata bahasa termasuk kelas tata bahasa reguler jika seluruh aturan
produksinya berbentuk :
A BP atau A P
A dan B adalah sebuah simbol non terminal. P adalah kata kosong atau kata
yang seluruhnya terdiri dari simbol terminal tapi sebuah simbol. Dalam bentuk
simbolik : A Vn, B Vn, P Vt*. Dengan kata lain, suatu tata bahasa termasuk
tata bahasa reguler jika seluruh aturan produksinya memenuhi dua syarat berikut :
1. Ruas kiri mengandung satu simbol dan simbol tersebut adalah simbol non
terminal.
2. Jika ruas kanan mengandung simbol non terminal, dengan jumlah hanya satu dan
bisa berada di paling kiri. Dan bisa juga sebuah non terminal atau terminal.
Berikut adalah contoh tata bahasa yang termasuk kelas tata bahasa reguler :
G1 = (Vn, Vt, P, S)
Vn = {X, Y}
Vt = {0, 1}
S=X
P sebagai berikut :
1. X Y0
2. Y Y1
3. Y 0
4. Y 1
5. Y
Jangan lupa bahwa P di atas dapat ditulis kembali sebagai berikut :
X Y0
Y Y1 | 0 | 1 |
Berikut adalah contoh tata bahasa yang tidak termasuk kelas tata bahasa reguler :
G2 = (Vn, Vt, P, S)
Vn = {X, Y}
Vt = {0, 1}
S=X
P sebagai berikut :
1. X Y0
2. Y 0Y1
3. Y XY0
4. 0Y Y1
5. Y 1
Perhatikanlah aturan produksi tersebut bahwa aturan nomor 2 melanggar syarat
nomor 2 karena walaupun ruas kanan mengandung 1 simbol non terminal, tapi
mengandung 2 simbol terminal. Aturan produksi nomor 3 melanggar syarat nomor 2
karena ruas kanannya mengandung lebih dari satu simbol non terminal. Aturan
produksi nomor 4 melanggar syarat nomor 1 karena ruas kirinya mengandung dua
buah simbol baik non terminal maupun terminal.
Contoh Soal :
1. Termasuk kelas apakah tata bahasa berikut?
G4 = (Vn, Vt, P, S)
Vn = {X, Y}
Vt = { 0, 1}
S=X
P sebagai berikut :
X Y0 | 1Y | 0 | 1
Jawab :
Bukan kelas tata bahasa bebas konteks. Tetapi G4 termasuk kelas tata bahasa
reguler karena aturan X 1Y atau X Y0 tidak melanggar syarat nomor 2
dari kelas tata bahasa reguler.
Catatan :
Klasifikasi Chomsky menyatakan bahwa setiap tata bahasa yang termasuk kelas
tata bahasa bebas konteks juga termasuk kelas tata bahasa peka konteks. Untuk
keperluan tulisan ini, jawaban pertanyaan nomor 1 harus kelas tata bahasa bebas
konteks walaupun G4 juga termasuk kelas tata bahasa peka konteks.
2. Termasuk kelas apakah tata bahasa berikut?
G4 = (Vn, Vt, P, S)
Vn = {X}
Vt = { 0, 1}
S=X
P sebagai berikut :
X 0X1 | 01
Jawab :
Kelas tata bahasa bebas konteks.
3.7. Ringkasan
Terdapat empat kelas tata bahasa yaitu kelas tata bahasa reguler, bebas konteks,
peka konteks, dan tak beraturan. Persamaan antara kelas tata bahasa reguler dengan
bebas konteks terletak pada ruas kiri aturan produksinya. Persamaan antara kelas tata
bahasa bebas konteks dengan peka konteks terletak pada ruas kanan aturan
produksinya. Perbedaan antara kelas tata bahasa reguler dengan bebas konteks
terletak pada ruas kanan aturan produksinya. Perbedaan antara kelas tata bahasa
bebas konteks dengan peka konteks tereltak pada ruas kiri aturan produksinya.
Ichsan Rizallusani