Anda di halaman 1dari 7

KELAS-KELAS DAN MESIN PENGENAL BAHASA

A. TATA BAHASA dan BAHASA


Dalam pertemuan sebelumnya telah disinggung secara singkat tentang
perbedaan bahasa natural dengan bahasa formal. Pada pembahasan selanjutnya
yang dimaksud dengan bahasa dalam pembahasan tulisan ini adalah bahasa
formal.

Telah dijelaskan bahwa bahasa tidak lebih dari himpunan, yang dapat
berhingga atau tak hingga dari string-string yang diproduksi dengan
aturan-aturan yang disebut tata bahasa. Berikut didefinisikan secara lebih
konkrit apa itu tata bahasa dan bahasa.

DEFINISI 1:
Tata bahasa (grammar) G didefinisikan sebagai tuple-4 G(∑,N,S,P).
Dimana:
∑ : Himpunan berhinggga dari simbol-simbol abjad/alphabet/vocabulary.
Simbol-simbol elemen ∑ dan rangkaian simbol-simbol yang terdiri dari
elemen ∑ dinamakan juga dengan simbol terminal. Simbol terminal
dilambangkan dengan huruf kecil: a, b, c atau abjad 0, 1, 2.

N : Himpunan berhinggga dari simbol-simbol yang disebut sebagai simbol


Non-terminal, yaitu simbol-simbol yang dapat digantikan oleh simbol
lain. Dalam bahasa natural simbol-simbol non-terminal misalnya: S, NP,
VP, ADJ dan lain-lain. Sedangkan dalam bahasa formal simbol non-
terminal dilambangkan dengan abjad huruf besar, dan cukup satu huruf
besar saja, misalnya: A, B, atau C.

S : Sebuah simbol yang dinamakan simbol awal (start symbol). Simbol S


merupakan awal penurunan seluruh string anggota bahasa yang
dibangkitkan oleh tata bahasa G tersebut.

P : Himpunan berhingga aturan-aturan produksi. Aturan produksi


merupakan ekspresi yang dapat dituliskan sebagai α  β, dengan α dan β
masing-masing adalah string (rangkaian simbol-simbol) yang dapat
terdiri dari simbol terminal dan atau simbol non-terminal, sebagai
contoh misalnya: A  Ba.

B. OPERASI-OPERASI STRING SUATU TATA BAHASA


Operasi Concatenation (Penggabungan)
Pada prinsipnya teori bahasa akan selalu menggunakan sebuah operasi
penggabungan (concatenation), karena pada hakekatnya string/kata/kalimat
adalah penggabungan dari simbol-simbol. Kata adalah penggabungan huruf.
Kalimat adalah penggabungan kata-kata. Tetapi sekali lagi perlu dicatat
bahwa dalam bahasa formal, string, kata (word), atau kalimat (sentence)
semuanya dianggap sama, yaitu rangkaian simbol-simbol yang disebut sebagai
STRING atau UNTAI.

Selanjutnya operasi penggabungan didefinisikan sebagai:

Αβ = α + β = string α dirangkaikan dengan string β.


Dimana:

7
α adalah rangkaian simbol-simbol dan β juga rangkaian simbol-simbol,
yang sekali lagi dapat berupa simbol non terminal atau terminal.

Contoh:
α = ABab
β = BBa

maka αβ = AbabBBa dan βα = BBaABab

Perlu diingat bahwa operasi penggabungan tidak bersifat komutatif, artinya


αβ ≠ βα, kecuali jika α = β.

Panjang String
Pajang string α dimaksudkan sebagai banyaknya simbol dalam string α.
Panjang string dilambangkan sebagai |α|.

Contoh 1:
α = ABc maka |α| = 3
α = abc maka |α| = 3

Panjang string tidak memperhatikan apakah simbol tersebut terminal atau


non terminal, setiap simbol dihitung memiliki panjang satu.

Empty String (ε) atau (λ)


Suatu string khusus yang panjangnya nol, atau string yang terdiri dari tak
satupun simbol disebut sebagai string kosong (empty string) yang
dilambangkan dengan ε (baca: epsilon) atau λ (baca: lambda).

String kosong memiliki sifat penggandengan sebagai: αε = εα = α

Cleen closure
Jika dimiliki himpunan A, maka Cleene-closure dari A dinotasikan dengan A*
didefinisikan sebagai:

A* = A0  A1  A2  ...  A∞

Dengan notasi An didefinisikan sebagai concatenation (gandengan): AAA...A


sebanyak n kali, atau A digandengkan dengan A sebanyak n kali.

Definisi lebih formal dapat ditulis secara rekursif sebagai:

An = AAn-1
An-1 = AAn-2
An-2 = AAn-3

...

A = AA0
A0 = ε

8
Contoh 2:

Jika A = {0} maka A* = {ε,0,00,000,0000,...}


Jika B = {0,1} maka B* = {ε,0,1,00,01,10,11,000,001,...}
B* diperoleh dari: B* = {B0  B1  B2  ...}
Dimana:
B0 = {ε}
B1 = B = {0,1}
B2 = BB = {0,1}{0,1} = {00,01,10,11}
B3 = BB2 = {0,1}{00,01,10,11} = {000,001,010,011,100,101,110,111}
dan seterusnya.

Dengan demikian perlu dicermati secara hati-hati bahwa:


{0,1}* tidak sama dengan {01}*, karena:
{0,1}* = {ε,0,1,00,01,10,11,000,001,...} sedangkan
{01}* = {ε,01,0101,010101,...}

Positive Closure
Selain Cleene-closure, atas himpunan A juga dapat didefinisikan suatu
closure yang disebut sebagai positive-closure (A+), yang didefinisikan
sebagai:

A+ = A1  A2  ...  A∞

Dengan demikian dapat ditulis pula bahwa:

A* = A+  ε atau A+ = A* - ε

C. BAHASA YANG DIBANGKITKAN OLEH GRAMMAR G


DEFINISI 2:
Bahasa yang dibangkitkan oleh tata bahasa G adalah himpunan seluruh string
yang dapat dibangkitkan oleh tata bahasa G, dapat ditulis sebagai L(G):

L(G) = {w  ∑* | S ⇒ w}

Dengan simbol S ⇒ w
dibaca: seluruh rangkaian string w yang dapat diturunkan dari S dengan
sembarang produksi dalam P dan sembarang penurunan. String w adalah hanya
terdiri dari simbol-simbol terminal saja atau empty string.

Contoh 3:

Dimiliki suatu tata bahasa G(∑,N,S,P) dengan :


∑ = {a,b}
N = {A,B}
P = {SAa; SAB; Aaa; Bb; Bε}
Tentukan bahasa yang dibangkitkan oleh tata bahasa G tersebut.

Jawab:
Bahasa yang dibangkitkan adalah L(G) = {aaa,aab,aa}
aaa, aab, dan aa masing-masing diperoleh dari pohon penurunan:

9
Gambar 1. Penurunan string aaa, aab, dan aa

Atau penulisan yang lebih singkat dari proses penurunan adalah:


String aaa diperoleh dari penurunan: S  Aa  aaa
String aab diperoleh dari penurunan: S  AB  aaB  aab
String aa diperoleh dari penurunan : S  AB  aaB  aaε  aa

D. HIRARKI TATA BAHASA


Menurut Noam Chomsky (1950), Tata bahasa formal dapat dikelompokkan
menjadi 4 tingkatan, biasa disebut hirarki tata bahasa menurut Chomsky.
Pengelompokkan tata bahasa menurut Chomsky ini ditentukan oleh aturan
produksi yang dimiliki oleh grammar, yaitu tata bahasa tipe-0, tipe-1,
tipe-2, dan tipe-3.

Andaikan aturan produksi dalam suatu grammar G dituliskan sebagai:

α  β

dengan masing-masing α dan β adalah string-string yang dapat terdiri dari


simbol Non terminal ataupun simbol terminal, atau: α, β  (∑  N)* maka
masing-masing kelas tata bahasa dibatasi sebagai berikut:

Tata Bahasa Tipe-0 (Non-restricted Grammar)


Tata bahasa tipe-0, atau biasa disebut non-restricted grammar adalah tata
bahasa yang paling luas, juga biasa disebut PHRASE STRUCTURED GRAMMAR.
Tata bahasa tipe-0 adalah tata bahasa yang memiliki aturan produksi α  β
Dengan batasan:
α : minimal terdiri dari 1 simbol Non terminal, α  {(∑  N)* N (∑  N)*}
β : tidak dibatasi, atau β  (∑  N)*

Contoh 4:
Dimiliki grammar G(∑,N,S,P) dengan:
∑={a,b}
N={A,B,S}
P={SABa; ABB; Bab; ABab; BBBaa}.
Perlihatkan bahwa string: abababa dan aaa adalah string-string yang
diproduk oleh grammar tersebut.

10
Jawab:
Jika dicermati produk yang ada, terlihat bahwa seluruh produksi yang
ada memenuhi syarat grammar tipe-0, yaitu string kiri dalam aturan
produksi minimal terdiri dari satu simbol non terminal.

Penurunan abababa, ditempuh dari proses penurunan:


S  ABa  BBBa  ababBa  abababa
Penurunan string aaa ditempuh dengan penurunan berikut:
S  ABa  BBBa  aaa

Tata Bahasa Tipe-1 (Context Sensitive Grammar)


Tata bahasa tipe-1 adalah tata bahasa tipe-0 yang memiliki aturan
produksi: α  β dengan tambahan batasan:

|α| ≤ |β| jika tidak dalam bentuk Sε

Yaitu panjang string α lebih kecil atau sama dengan panjang string β.

Contoh 5:
Dimiliki grammar G(∑,N,S,P) dengan:
∑={a,b}
N={A,B,S}
P={SABa; ABB; Bab; ABAAA; Aaa; Aε}.
Apakah tata bahasa ini termasuk dalam tipe-1. Bandingkan dengan tata
bahasa contoh 4 di atas, apakah termasuk tipe-1. Tunjukkan bahwa
string a termasuk anggota bahasa.

Jawab:
Tata bahasa contoh 5 memenuhi tata bahasa tipe-0 dan tipe-1.
Sedangkan tata bahasa pada contoh 4 hanya memenuhi tipe-0 dan tidak
memenuhi tipe-1, karena ada aturan produksi: BBBaa pada contoh 4.
Penurunan string a diperoleh dengan:
S  ABa  AAAa  εεεa  a

Tata Bahasa Tipe-2 (Context Free Grammar)


Tata bahasa tipe-2 adalah tata bahasa tipe-1 yang memiliki aturan
produksi: α  β dengan tambahan batasan:
α : hanya terdiri dari satu simbol Non Terminal saja, atau αN
β : tidak dibatasi, atau β{(∑N)*}

Contoh 6:
Tunjukkan bahwa contoh 5 adalah tidak termasuk pada tata bahasa
(grammar) tipe-2.

Jawab:
Jika diperhatikan aturan produksi pada contoh 5:
SABa, ABB, Bab, ABAAA, Aaa, Aε

Ada aturan ABAAA, yaitu aturan produksi dimana ruas kiri (AB)
memiliki panjang lebih dari satu. Ini melanggar aturan untuk grammar
tipe-2, dengan demikian tidak termasuk grammar tipe-2.

11
Tata Bahasa Tipe-3 (Regular Grammar)
Tata bahasa tipe-3 adalah tata bahasa tipe-2 yang memiliki aturan
produksi: α  β dengan tambahan batasan:
α : hanya terdiri dari satu simbol Non Terminal saja, atau αN
β : dalam bentuk salah satu diantara: a, aB, atau ε.
Dimana a adalah simbol terminal dan B adalah simbol Non Terminal.

Tata bahasa tipe-3 (regular) merupakan tata bahasa yang paling ketat
(paling banyak aturan) dari hirarki tata bahasa yang ada. Secara diagram
keempat tata bahasa tersebut dapat digambarkan sebagai berikut:

Gambar 2. Hirarki Tata Bahasa (Grammar) menurut Noam Chomsky

Contoh 7:
Dimiliki grammar G(∑,N,S,P) dengan:
∑={a,b}
N={A,B,S}
P={SaA; AaA; AB; BbB; Bε}
Tentukan bahasa yang dibangkitkan oleh tata bahasa regular tersebut.

Jawab:
Penurunan: SaAaBaεa menghasilkan string: a
Penurunan: SaAaaAaaaAaaaa..aaBaaaa..aaεaaaa..aa
menghasilkan string: aaaa..aa
Penurunan: SaAaaAaaaAaaaa..aaBaaaa..aabεaaaa..aab
menghasilkan string: aaaa..aab
Penurunan:
SaAaaAaaaAaaaa..aaBaaaa..aabBaaaa..aabbBaaaa..aabb..bB
aaaa..aabb..bεaaaa..aabb..b menghasilkan string: aaaa..aabb..b

Bahasa yang dibangkitkan adalah "sederetan a dengan jumlah minimal


satu buah diikuti sederetan b dengan jumlah minimal nol buah" atau
dapat dituliskan sebagai:
L(G) = {aa*b*}
Dimana a*={a0a1a2 ... a∞} dan b*={b0b1b2 ... b∞}

12
E. MESIN PENGENAL BAHASA
Beberapa tingkatan tata bahasa melahirkan beberapa tingkatan bahasa. Tata
bahasa regular (Regular Grammar) membangkitkan bahasa regular, tata bahasa
bebas konteks (Context Free Grammar) membangkitkan bahasa bebas konteks,
dan seterusnya. Mesin abstract yang merupakan pengenal dari berbagai
tingkatan bahasa tersebut dimulai dari yang paling sederhana adalah:

1. Bahasa regular, mesin pengenalnya: Finite State Automata


2. Bahasa bebas konteks, mesin pengenalnya: Push Down Automata
3. Bahasa konteks sensitive, mesin pengenalnya: Linear Bounded Automata
4. Bahasa non-restricted mesin pengenalnya: Mesin Turing

Pembahasan mengenai mesin-mesin abstract pengenal suatu bahasa akan


dibahas dalam pertemuan selanjutnya.

13