Anda di halaman 1dari 17

PERTEMUAN II

Kelas-kelas Bahasa dan Mesin Pengenalnya

Tujuan Instruksional:
- Diharapkan dapat memahami tentang definisi secara
formal tentang tata bahasa, bahasa dan kelas-kelas
bahasa dengan pendekatan teori himpunan.
- Memahami operasi-operasi dasar yang dapat
dilakukan pada bahasa dan juga mengenali dan
memahami kelas-kelas bahasa berdasarkan
karakteristik tata bahasanya.

1
Tata Bahasa dan Bahasa
Pada kajian selanjutnya yang dimaksut
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 dengan
tata bahasa.

2
Tata Bahasa dan Bahasa
Definisi :
A. Tata Bahasa (grammar) G didefinisikan sebagai tuple-4 G(Σ, N,S,P)
Diamana:
Σ : Himpunan berhingga 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 berhingga dari simbol-simbol yang disebut sebagai simbol Non
Terminal, yaitu simbol-simbol yang dapat digantikan oleh simbol
lain. Dalam bahasa natural simbol non terminal misalnya: S, NP,
VP, ADJ dll. 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.

3
Tata Bahasa dan Bahasa
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, misalnya
: A Ba
Penulisan grammar dibeberapa buku ditulis sebagai G (V,
T, S, P) dengan V adalah himpunan Vocabulary, atau
himpunan seluruh simbol yang ada (baik simbol
terminal maupun non terminal). Sehingga dalam hal ini
V terdiri dari S (start simbol), N (Non terminal simbol)
dan T (Terminal simbol), atau dapat ditulis : V=TN

4
Tata Bahasa dan Bahasa
Operasi-operasi string suatu tata bahasa:
1.Operasi Concatenation
2.Panjang String
3.Empty String () atau ()
4.Penutup (Closure)
5.Positive Closure

5
Tata Bahasa dan Bahasa
1. Operasi Concatenation
Tata Bahasa akan selalu menggunakan sebuah
operasi penggabungan (concatenation), karena
pada hakekatnya string/kata/kalimat adalah
penggabungan simbol-simbol.
Kata adalah penggabungan huruf, kalimat adalah
penggabungan kata-kata.
Tapi dalam bahasa formal, string, kata (word) atau
kalimat (sentence) semua dianggap sama yaitu
“rangkaian simbol-simbol” disebut sebagai string
atau untai.
6
Tata Bahasa dan Bahasa
Operasi penggabungan didefinisikan sbb:
α β= α+β = string α dirangkaikan dengan string β
α adalah rangkaian simbol-simbol begitu juga β, dapat
berupa simbol non terminal atau terminal.
Contoh:
α = Abab
β = BBa
Maka αβ = AbabBBa
Dan βα = BBaAbab
Jadi operasi penggabungan tidak bersifat komutatif,
artinya α β  β α, kecuali jika α = β
7
Tata Bahasa dan Bahasa
2. Panjang String
Panajang string α dimaksudkan sebagai
banyaknya simbol dalam string α. Panjang
string dilambangkan sebagai |α|.
Contoh: α = ABc maka |α| = 3
α = abc maka |α| = 3
Panjang string tidak memperhatikan apakah
simbol tersebut terminal atau non terminal,
setiap simbol dihitung memiliki panjang satu.
8
Tata Bahasa dan Bahasa

3. 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:
α= α= α
9
Tata Bahasa dan Bahasa
4. Penutup (Closure)
Jika dimiliki himpunan A, maka Cleane-closure dari A,
dinotasikan dengan A* didefinisikan sebagai:
A* = AoA1A2…A
Dengan notasi A* (baca A pangkat n) didefinisikan
sebagai concatenation (gandengan) : AAA …A sebanyak
n kali, atau A di gandengkan dengan A sebanyak n kali.
Definisi lebih formal dapat ditulis secara rekursif sbb:
An=AAn-1 A=AAo
An-1=AAn-2 Ao=
An-2=AAn-3

10
Tata Bahasa dan Bahasa
Contoh:
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}
dst.

11
Tata Bahasa dan Bahasa
Perlu dicermati:
{0,1}* tidak sama dengan {01}*, karena:
{0,1}*={,0,1,00,01,10,11,000,001, …}
sedangkan
{01}*={,01,0101,010101, …}

12
Tata Bahasa dan Bahasa
5. Positive Closure
Selain ada cleane-Closure, atas himpunan A
juga dapat didefiniskan 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*-

13
Tata Bahasa dan Bahasa
Bahasa yang dibangkitkan oleh grammar G
Definisi B : Bahasa yang dibangkitkan oleh tata bahasa G adalah
himpunan seluruh string yang dapat dibangkitkan oleh grammar 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:
Dimiliki suatu tata-bahasa G(, N, S, P) dengan:
={a,b} N={A,B} dan P={SAa; SAB; Aaa; Bb; B}
Tentukan bahasa yang dibangkitkan oleh grammar G di atas.

14
Tata Bahasa dan Bahasa
Jawab:
Bahasa yang dibangkitkan adalah L(G) ={aaa, aab,aa}
aaa, aab, dan aa masing-masing diperoleh dari pohon
penurunan: S S S
A a A B A B
aa aa b aa 
Penulisan yang lebih singkat untuk aaa: SAaaaa
aab diperoleh dari penurunan: SABaaBaab
aa diperoleh dari penurunan: SABaaBaaaa

15
Tata Bahasa dan Bahasa
Jika dimiliki suatu tata bahasa G(,N,S,P) dengan
={a,b}, N={A,B} dan P={SAa; SAB; Aaa; BbB;
B}, tentukan bahasa yang dibangkitkan oleh grammar G
di atas.

16
Tata Bahasa dan Bahasa
Jawab:
Pencarian bahasa dilakukan dengan mencoba
seluruh kemungkinan penurunan string, yaitu:
Penurunan 1: SAaaaa
2. SABaaBaaaa
3. SABaaBaabaab
Penurunan 4:
SABaaBaabBaabbbBaab…
Hasil bahasa L= penurunan 1penurunan 2 = {aaa,
aa, aab, aabb*}
17

Anda mungkin juga menyukai