Anda di halaman 1dari 25

Teori Bahasa dan

Automata

Bahasa Formal
BENTUK TULISAN: simbol/karakter yang jika dikombinasikan akan
mempunyai arti yang berbeda beda.
Simbol: entitas abstrak.
Alfabet (abjad) : himpunan simbol yang dipergunakan dalam suatu
bahasa.
String : Deretan terbatas simbol simbol.
Contoh: jika a,b,c adalah simbol, maka abca adalah string yang
dibentuk dari tiga simbol tersebut.
Bahasa : himpunan semua string yang dapat dibentuk dari suatu
alfabet.
Tata Bahasa (grammar) : kaidah pembentuan kata/kalimat

Jika w adalah sebuah string maka panjang string


dinyatakan dengan |w| dan merupakan banyaknya
simbol yang menyusun string tsb.
Misal, jika w = abca, maka |w| = 4.
String hampa : string dengan nol buah simbol dan
dinyatakan dengan atau ^ atau ,
sehingga | | = 0
Automata: mesin abstrak yg dapat mengenali
(recognize),menerima (accept), atau
membangkitkan (generate) suatu kalimat
dalam bahasa tertentu.

OPERASI DASAR STRING


Misal diberikan dua string : x = abc, dan y = 123
Prefik string w
: string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih
simbol-simbol paling belakang dari
string w tersebut.
Contoh : abc, ab, a, dan adalah semua Prefix(x)
ProperPrefix string w : string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih
simbol-simbol paling belakang dari
string w tersebut.
Contoh : ab, a, dan adalah semua ProperPrefix(x)

Lanjutan operasi dasar string.


Postfix (atau Sufix) string w: string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih
simbol-simbol paling depan dari string
tersebut.
Contoh : abc, bc, c, dan adalah semua Postfix(x)
ProperPostfix (PoperSufix) string w :string yang dihasilkan dari
string w
dengan menghilangkan satu
atau
lebih simbol-simbol paling
depan
dari string tersebut.
Contoh : bc, c, dan adalah semua ProperPostfix(x)
Head

string

simbol

paling

depan

dari

string

w.

Lanjutan operasi dasar string.


Tail string w: string yang dihasilkan dari string w dengan
menghilangkan simbol paling depan dari string w
tersebut.
Contoh : bc adalah Tail(x)
Substring string w : string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol paling
depan dan/atau simbol-simbol paling belakang dari
string w tersebut.
Contoh : abc, ab, bc, a, b, c, dan adalah semua Substring(x)
ProperSubstring string w :string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih simbol-simbol
paling depan dan/atau simbolsimbol paling belakang
dari string w tersebut.
Contoh : ab, bc, a, b, c, dan adalah semua Substring(x)

Lanjutan operasi dasar string.


Subsequence string w : string yang dihasilkan dari string w
dengan menghilangkan nol atau lebih
simbol-simbol dari string w tersebut.
Contoh : abc, ab, bc, ac, a, b, c, dan adalah semua
Subsequence(x)

ProperSubsequence string w : string yang dihasilkan dari


string w dengan menghilangkan satu atau
lebih simbol-simbol dari string w tsb.
Contoh : ab, bc, ac, a, b, c, dan adalah semua Subsequence(x)

Lanjutan operasi dasar string.


Concatenation : penyambungan dua string.
Operator concatenation : concate atau tanpa lambang apapun.
Contoh : concate(xy) = xy = abc123
Alternation : pilihan satu di antara dua string.
Operator alternation : alternate atau |
Contoh : alternate(xy) = x | y = abc atau 123
Kleene Closure : x* = |x|xx|xxx| = |x|x2|x3|
Positive Closure : x + = |x|xx|xxx| = |x|x2|x3|

Sifat Operasi pada string


Selalu berlaku :
1. x = Head(x)Tail(x)
2. ProperPrefix(x) ProperPostfix(x)
3. Head(x) Tail(x)
Tidak selalu berlaku :
1. x = Prefix(x)Postfix(x)
2. Prefix(x) = Postfix(x) atau Prefix(x) Postfix(x)
Setiap
Prefix(x),
ProperPrefix(x),
Postfix(x),
ProperPostfix(x), Head(x), dan Tail(x) adalah Substring(x),
tetapi tidak sebaliknya

Lanjutan Sifat Operasi pada string.


Dua sifat aljabar concatenation :
1. Asosiatif : x(yz) = (xy)z
2. Elemen identitas adalah : x = x = x
Tiga sifat aljabar alternation :
1. Komutatif : x|y = y|x
2. Asosiatif: x| (y|z) = (x|y) |z
3.Elemen identitas operasi alternation adalah
dirinya sendiri : x|x = x

Lanjutan Sifat Operasi pada string.


Sifat distributif concatenation terhadap alternation :
x (y|z) = xy|xz
Beberapa kesamaan :
Kesamaan ke-1 : (x*)* = (x*)
Kesamaan ke-2 : |x + = x + = x*
Kesamaan ke-3 : (x|y)* = |x|y|xx|yy|xy|yx|
= semua string yang merupakan
concatenation dari nol atau
lebih x, y, atau keduanya.

KONSEP DASAR GRAMMAR


1. Anggota alfabet dinamakan simbol terminal atau token.
2. Kalimat adalah deretan hingga simbol-simbol terminal.
3. Bahasa adalah himpunan kalimat-kalimat.
Anggota bahasa bisa tak hingga kalimat.
4. Simbol-simbol berikut adalah simbol terminal :
- huruf kecil awal alfabet, misalnya : a, b, c
- simbol operator, misalnya : +, , dan
- simbol tanda baca, misalnya : (, ), dan ;
- string yang tercetak tebal, misalnya : if, then, dan
else.

Lanjutan konsep dasar grammar .


5. Simbol-simbol berikut adalah simbol non terminal :
- huruf besar awal alfabet, misalnya : A, B, C
- huruf S sebagai simbol awal
- string yang tercetak miring, misalnya : expr
dan stmt.
6. Huruf besar akhir alfabet melambangkan simbol
terminal atau non terminal, misalnya : X, Y, Z.
7. Huruf kecil akhir alfabet melambangkan string yang
tersusun atas simbol-simbol terminal, misalnya : x,
y, z.

Lanjutan konsep dasar grammar .


8. Huruf yunani melambangkan string yang tersusun atas simbolsimbol terminal atau simbol-simbol non terminal atau campuran
keduanya, misalnya : , , dan .
9. Suatu produksi dilambangkan sebagai , artinya : dalam
sebuah derivasi dapat dilakukan penggantian simbol dengan simbol
.
10. Simbol dalam produksi berbentuk disebut ruas kiri
produksi sedangkan simbol disebut ruas kanan produksi.
11. Derivasi adalah proses pembentukan suatu kalimat atau
sentensial. Suatu derivasi dilambangkan sebagai : .
12. Sentensial adalah string yang tersusun atas simbol-simbol
terminal atau simbol simbol non terminal atau campuran keduanya.

Lanjutan konsep dasar grammar .


13. Kalimat adalah string yang tersusun atas simbol-simbol

terminal.

14. Pengertian terminal berasal dari kata terminate


(berakhir), maksudnya derivasi berakhir jika sentensial
yang dihasilkan adalah suatu kalimat (yang tersusun atas
simbol-simbol terminal itu).
15. Pengertian non terminal berasal dari kata not
terminate (belum/tidak berakhir), maksudnya derivasi
belum/tidak berakhir jika sentensial yang dihasilkan
mengandung simbol non terminal.

DEFINISI GRAMMAR
Grammar G : pasangan 4 tuple : V

, V N , S, dan Q,

Notasi : G(V T, V N , S, Q),


dengan:
VT

: himpunan simbol-simbol terminal (atau himpunan


token - token, atau alfabet)
VN
: himpunan simbol-simbol non terminal
S V N : simbol awal (atau simbol start)
Q
: himpunan produksi
Sebagian ada yang menggunakan
menyatakan himpunan produksi

simbol

untuk

Lanjutan.
Contoh :

1.G1:VT={I, Love, Miss, You},VN={S,A,B,C},


P={SABC,AI,BLove | Miss,CYou}

SABC
IloveYou
L(G1) ={IloveYou, IMissYou}

2..G2:VT={a},VN={S},P={SaS a}

SaS
aaS
aaa L(G2)={an n1}

L(G2)={a, aa, aaa, aaaa,}

JENIS GRAMMAR Menurut Noah Chomsky


(berdasarkan komposisi ruas kiri dan ruas kanan produksinya)

1.Grammartipeke-0:UnrestrictedGrammar(UG)
Ciri:,(VT|VN)*,||>0
2.Grammartipeke-1:ContextSensitiveGrammar(CSG)
Ciri:,(VT|VN)*,0<||||
3.Grammartipeke-2:ContextFreeGrammar(CFG)
Ciri:VN,(VT|VN)*
4.Grammartipeke-3:RegularGrammar(RG)
Ciri:VN,{VT,VTVN}atauVN,{VT,VNVT}
Ciri-ciriRGseringjugadituliskansebagai:

CONTOHPENENTUANTYPEGRAMMAR
1. GrammarG1denganQ1={SaB,BbB,Bb}.

RuaskirisemuaproduksinyaterdiridarisebuahVNmakaG1kemungkinantipeCFG
atauRG.SelanjutnyakarenasemuaruaskanannyaterdiridarisebuahV Tataustring
VTVNmakaG1adalahRG.
2.GrammarG2denganQ2={SBa,BBb,Bb}.
RuaskirisemuaproduksinyaterdiridarisebuahV NmakaG2kemungkinantipe
CFGatauRG.SelanjutnyakarenasemuaruaskanannyaterdiridarisebuahV Tatau
stringVTVNmakaG1adalahRG.

Lanjutan.
3.GrammarG3denganP={SaAb,BaB}.
RuaskirisemuaproduksinyaterdiridarisebuahVNmakaGkemungkinantipeCFG
atau RG. Selanjutnya karena ruas kanannya mengandung string yang panjangnya
lebihdari2(yaituaAb)makaG3bukanRG,dengankatalainG3adalahCFG.
4. Grammar G4 dengan P = {S aA, S aB, aAb aBCb}. Ruas kirinya
mengandung string yang panjangnya lebih dari 1 (yaitu aAb) maka G4 kemungkinan
tipe CSG atau UG. Selanjutnya karena semua ruas kirinya lebih pendek atau sama
denganruaskananyamakaG4adalahCSG.
5.GrammarG5denganP={aSab,SAcbc}.Ruaskirinyamengandungstring
yang panjangnya lebih dari 1 makaG5kemungkinantipeCSGatauUG.Selanjutnya
karena terdapat ruas kirinya yang lebih panjang daripada ruas kanannya (yaitu SAc)
makaG5adalahUG.

Derivasi Kalimat dan Penentuan


Bahasa
Penentuan suatu bahasa ditentukan dari kalimat kalimat yang dihasilkan dari suatu
grammar dengan aturan produksi tertentu .
Contoh :
G1 dengan Q1 = {1. S aAa, 2. A aAa, 3. A b}. Tentukanlah Bahasa
(Language) tersebut !
Jawab :
Derivasi kalimat terpendek : Derivasi kalimat umum :
S aAa (1) S aAa (1)
aba (3) aaAaa (2)

a n Aa n (2)
a n ba n (3)
Dari pola kedua kalimat disimpulkan : L1(G1 ) = { a n ba

n 1}

Lanjutan.
Contoh 2 :
G2denganQ2={1.SaS,2.SaB,3.BbC,4.CaC,5.Ca}.
Jawab:
Derivasikalimatterpendek:
Derivasikalimatumum:
SaB(2)
SaS(1)
abC(3)

aba(5)
an-1S(1)
anB(2)
anbC(3)
anbaC(4)

anbam-1C(4)
anbam(5)
Daripolakeduakalimatdisimpulkan:L2(G2)={a nbam|n1,m1}

Lanjutan.
Contoh 3 :

G3denganQ3={1.SaSBC,2.SabC,3.bBbb,4.bCbc,5.CBBC,
6.cCcc}.
Jawab:
Derivasikalimatterpendek1:
Derivasikalimatterpendek3:
SabC(2)
SaSBC (1)
abc(4)
aaSBCBC (1)
Derivasikalimatterpendek2:
aaabCBCBC(2)
SaSBC(1)
aaabBCCBC(5)
aabCBC(2)
aaabBCBCC(5)
aabBCC(5)
aaabBBCCC(5)
aabbCC(3)
aaabbBCCC(3)
aabbcC(4)
aaabbbCCC(3)
aabbcc(6)
aaabbbcCC(4)
aaabbbccC(6)
aaabbbccc(6)
Daripolaketigakalimatdisimpulkan:L3(G3)={anbncn n1}

A gumball machine ( Prototype


FSA)
Mesin menerima koin $5 dan $10
Satu permen karet harganya $15
Actions: +5, +10, Release (Keluarkan)

+10
+5
$0
R

+10
+5

$5
R

R
R

+5
$10

+10

+5

+10

MesinpenjualJus:Menerimakoin5,10,atau25. Harga jus 30 .


Mengeluarkan A( jus apel) atau O ( jus jeruk), dan sisa uang yang
dimasukkan jika melebihi 30