SlideShare a Scribd company logo
1 of 172
DAFTAR ISI
HAL
MODUL-00 : Prolog 1
MODUL-01 : Teori Himpunan 5
MODUL-02 : Operasi-Operasi Pada Untai 9
MODUL-03 : Finite State Automata ( FSA ) 20
MODUL-04 : Non Deterministic Finite Automata (NFA) 28
MODUL-05 : Kesetaraan NFA dan DFA 37
MODUL-06 : NFA Dengan ε – Move 44
MODUL-07 : Ekpresi Reguler 56
MODUL-08 : Aturan Produksi 73
MODUL-09 : FSA Dengan Output 80
MODUL-10 : Pohon Penurunan 88
1
MODUL-11 : Penyederhanaan CFG 94
MODUL-12 : Bentuk Normal Chomsky ( BNC ) 104
MODUL-13 : Penghilangan Rekursif Kiri 111
MODUL-14 : Bentuk Normal Greibach ( BNG ) 120
MODUL-15 : Push Down Automata ( PDA ) 132
DAFTAR PUSTAKA 173
2
0.1.Latar Belakang, Tujuan FSA Dan ER
• Pemikiran Neural Network dan Switching Circuit
FSA.
• Tool dalam perancangan Leksikal Analyzer.
• Pengelompokan karakter dalam “ Token “.
• Penggunaan FSA dalam : Text editor, Pattern
Matching, sejumlah pemrosesan text dan
program file searching dan sebagai konsep
matematis untuk aplikasi di disiplin lain seperti
Logika.
3
DEFINISI-DEFINISI
1. Definisi 1: Teori adalah serangkaian bagian/ variabel,
definisi dan dalil yang saling berhubungan yang
menghadirkan sebuah pandangan sistematis mengenai
fenomena dengan menentukan hubungan antar
variabel, dengan maksud menjelaskan fenomena
alamnya.
2. Definisi 2 : Teori adalah seperangkat preposisi yang
terintegrasi secara siktaksis yang memiliki aturan-
aturan tertentu yang dapat dihubungkan secara logis
atau dengan lainnya dengan data-data yang diamati
dan berfungsi sebagai wahana untuk meramalkan dan
menjelaskan fenomena yang diamati ( L. Moeleong ).
4
0.2. Pengertian Bahasa Dan Automata
• Bahasa : Adalah pengantar komunikasi baik lisan
maupun tulisan, antar satu atau banyak orang (
mahluk )/ alat dengan satu atau banyak orang
(mahluk) / alat
• Pengertian simbol yang didefinisikan secara formal.
• Pengertian string, string kosong dan panjang string.
• Pengertian Alphabet, huruf ( Letter ) dan angka
( Digit ).
• Pengertian Automata.
• Contoh : Misalkan sebuah mesin sederhana yang
dapat menerima input kata dalam bahasa Indonesia
yang dapat dilihat pada gambar berikut :
5
Pada gambar berikut, bila mesin mendapat input string
berikut :
1. ada : diterima
2. adu : diterima
3. add : ditolak
a
Start a d u
d
q0 q1 q2 q4
q3
q5
6
A pioneer of automata theory
Alan Turing (1912-1954)
1. Father of computer science
2. English logician
3. Propose Turing machine as a
mathematical model of computation
4. Codebreaker for German Enigma
machine in World War II.
5. Many other pioneering work, e.g.
Turing test
7
Historical perspective of Automata theory
1930 Turing machines (A. Turing)
1940 - 1950 Finite state automata (W. McCulloch, W. Pitts, S.
Kleene, etc.) Chomsky hierarchy (N. Chomsky)
1960 - 1970 Pushdown automata (A.G. Oettinger, M.P.
Schutzenberger) B¨uchi automata over ω-words
(J. R. B¨uchi) Rabin tree automata over ω-trees
(M. O. Rabin) Tree automata (J. E. Doner, J. W.
Thatcher, J. B. Wright, etc.)
1980 - 1990 ω-automata applied to formal verification (M.
Vardi, P. Wolper, O. Kupferman, etc.)
2000 - 2010 Automata over unranked trees applied to XML (A.
Bruggemann-Klein, M. Murata, D. Wood, F.
Neven, etc.) Visibly pushdown automata (R. Alur,
P. Madhusudan)
8
0.3. Hirarki Chomsky
Definisi 3 : Tata Bahasa adalah sebagai kumpulan dari
himpunan-himpunan Variabel, Simbol-Simbol, Terminal,
Simbol Awal yang dibatasi oleh aturan produksi.
Tabel 1 : 4 Penggolongan bahasa (Hirarki Noam Chomsky)
Bahasa Mesin Otomata Batasan-Batasan Produksi
Reguler / tipe 3 FSA : DFA dan NFA α adalah sebuah simbol variabel
β mak memiliki sebuah simbol
var yg bila ada terletak di kanan
Bebas Konteks/
Context Free / tipe - 1
Push Down Otomata
(PDA)
α berupa simbol variabel
Context Sensitive /
tipe - 2
Linier Bounded
Automata
│α │ ≤ │β │
Unrestricted / Phase
Structure / Natural
Language / tipe - 0
Mesin Turing Tidak ada batasan
9
MODUL – 01
TEORI HIMPUNAN
• Definisi 4 : Alphabet (abjad) adalah himpunan berhingga
tak kosong dari simbol-simbol. Contoh :
Misalkan Σ = { a,b,c,d } ; a Є Σ , b Є Σ , s Є Σ .
• Definisi 5 : Kata (untai/ string) adalah barisan berhingga
simbol-simbol dari sebuah alphabet. Contoh :
Misalkan Σ adalah abjad, Σ = { e,f,g,h } maka efg adalah
kata dari Σ .
• Definisi 6 : Bahasa adalah kumpulan dari kata-kata.
Contoh : Σ adalah sebuah alphabet ; Σ = { a,b } , maka
{a,aa,b,bb,ab,ba,ε} adalah sebuah bhs berdasarkan Σ.
• Definisi 7 : Bahasa kosong adalah bhs yang tdk terdiri
dari untai-untai ; Notasi = Ø .
10
Definisi 8 : Bahasa Universal adalah bahasa yang terdiri
dari semua untai berdasarkan abjad Σ, Notasi Σ* . Contoh
Σ adalah sebuah abjad ; Σ = { 2 } , maka
Σ* = { ε,2,22,222, … } , dimana ε adalah untai kosong
{ ε } adalah bahasa yang terdiri dari untai kosong
“ Epsilon “ ε “ adalah lintasan yang sangat-sangat cepat
dan sangat-sangat kecil “.
Dalam sistem biner berlaku :
1. ε a = a ε = a untuk sistem perkalian dianggap bernilai
satu ( 1 ).
2. ε + b = b + ε = b untuk sistem perjumlahan dianggap
bernilai 0 ( nol ).
11
1.1. Operasi-Operasi Pada Untai
1. Panjang ( length ) = banyaknya simbol pada untai.
Notasi : │w │ , dimana w merupakan untai dari Σ .
Contoh : Σ = { a,b,c } ; w = aba ,maka │w │ = 3 ;
│ε │= Ø
2. Concatenation ( perangkaian )
Misal u dan w adalah untai-untai, maka
concatenation u dgn w adalah untai yg diperoleh
dgn merekatkan untai u dan untai w. Contoh : u = “
Bani “ , w = “ Saleh “ , maka concatenation u dgn
w or u.w adalah
uw = “ Bani saleh “ , │uw │= │u │+ │w │
12
3. Eksponensiasi ( Exponentiation )
Misal w sebuah kata berdasarkan Σ , maka
ε , jika n = 0
W n =
W n-1 , jika n > 0 ; n Є N
Contoh : Misalkan w = 21 berdasarkan Σ = { 1,2 } , maka
W 0 = ε , w1 = 21 , w2 = 21 , w3 = 2121 … dan seterusnya.
4. Sama Dengan ( Equal ).
Misal u dan w untai-untai, u dan w dikatakan sama jika
keduanya mempunyai panjang yang sama dan simbol-
simbol sama pada posisi yang sama. Notasi ; u = w.
5. Awalan ( prefix ) dan Akhiran ( suffix ).
Jika u dan w adalah kata-kata, maka u dikatakan
awalan dari w, jika untuk ssuatu kata/ untai y, maka ;
13
w = uy ; Contoh : w = abcd . u = ab adalah awalan dari w .
ε selalu merupakan awalan dari kata apa saja.
6. Sub untai atau sub string
Jika sebuah untai w adalah sub untai atau sub kata dari
z, jika untai x dan y Є Z = xwy.
7. Pembalikan ( Reversal ) atau Transpose.
Reversal dari suatu kata z merupakan bayangan cermin
dari Z. Notasi pembalikan dari W = WR
W jika W = ε
Definisi 9 : WR =
yRa jika W = ay untuk a Є Σ
dan y Є Σ * . Contoh : x adalah sebuah untai , X = 2314
XR = (2314)R = (314)R 2 = (14)R 32 = (4)R 132 = (ε) R
4132 = ε 4132 = 4132
14
Catatan : jika w dan y adalah untai-untai dan x = wy, maka
XR = (wy)R = yRwR
Contoh : w = abc dan x = wy ; y = de
XR = (abcde)R = edcba
(wy)R = yRwR = (de)R(abc)R = edcba
XR = (wy)R = y RwR
1.2 Operasi Pada Bahasa
1. Concatenation ( perangkaian )
Definisi 10 : A.B = AB = { xy │xЄA dan yЄB } . ab
merupakan bahasa.
2. Eksponensiasi
Misalkan A merupakan sebuah bahasa berdasarkan
suatu abjad Σ, maka dapat didefinisikan sebagai berikut
15
{ ε } , jika n = 0
A n =
A.A n-1 , jika n ≥ 1
3. Gabuangan ( Union ).
A U B = { x │ xЄA atau xЄB }
4. Irisan ( Intersection ).
A ∩ B = { x │ xЄA dan xЄB }.
5. Sub bahasa
Jika A dan B adalah bahasa-bahasa berdasarkan abjad
Σ dan jika semua untai di A ada dalam B, maka A
adalah sub bahasa dari B. Notasi : A sub bahasa B
B = { bn │n = 0,1,2, …… } ; A sub bahasa B
Catatan : L adalah suatu bahasa berdasarkan abjad Σ,
maka L adalah sub bahasa dari Σ* atau L sub bahasa Σ*
16
6. Equal ( sama dengan )
A = B jika hanya jika
a. A sub bahasa atau sama dengan B dan sebaliknya.
A. ( BUC ) = A.B U A.C
b. ( B∩C ).A = B.A U C.A
7. Selisih : A – B = { x │ xЄA atau xЄB }
8. Reversal Pembalikan dari sebuah bahasa A adalah :
AR = { xR │ xЄA }. Contoh :
Misalkan A = { saya, laki } , maka
AR = { ayas,ikal }
Teorema : ( A.B ) R = BR . AR
17
1.3. Bahasa Reguler
Teorema : Untuk suatu abjad Σ , Σ* terhitung secara tak
hingga.
Definisi 111 : Misal Σ merupakan suatu abjad. Koleksi dari
bahasa reguler atas Σ, didefinisikan secara rekursif sbb :
a. Ø adalah bahasa reguler.
b. { ε } adalah bahasa reguler.
c. V a Є Σ , {a} adalah bahasa reguler.
jika A dan B adalah bahasa-bahasa reguler maka A U B,
A.B dan A* adalah bahasa-bahasa reguler.
Definisi 12 : Ekspresi-ekspresi reguler atas abjad
didefinisikan secara rekursif sebagai berikut :
a. Ø dan ε adalah ekspresi reguler.
b. V a Є Σ , a adalah ekspresi reguler.
18
c. Jika r dan s adalah ekspresi-ekspresi reguler , maka
r U s atau r + s , r . S dan r* adalah ekspresi reguler.
Contoh : Σ = {a,b } , Ø dan {ε} adalah bahasa reguler , Ø
dan {ε} adalah ekspresi reguler. {a} adalah bahasa
reguler dan a adalah ekspresi reguler. {a,b} adalah
bahasa reguler demikian pula {ab} adalah bahasa
reguler.
Catatan : Bahasa reguler terhadap Σ adalah bahaasa yang
mengandung semua himpunan bagian berhingga dari Σ*
dan tertutup terhadap gabungan, produk dan penutup .
Contoh : H1 = { w ; w mengandung dua huruf a atau b
berturut-turut } dan H2 = { w ; w = an b an ; n > 0 }
Apakah H1 dan H2 merupakan bahasa reguler ?
V ekspresi reguler r terhadap Σ membentuk suatu
himpunan bagian R dari Σ* dengan aturan rekursif sbb :
19
Jika r adalah ε, maka r hanya terdiri dari kata kosong saja.
R = {ε} ; jika r = Ø , maka R = Ø
Jika r = a , a Є Σ , maka R = { a }
Jika r1 dan r2 terhadap Σ membentuk R1 dan R2 , maka ;
1. Jika r = ( r1 + r2 ) , maka R = R1 U R2
2. Jika r = r1 r2 , maka R = R1 R2
3. Jika r = ( r1 ) * , maka R = ( R1 )*
Catatan : a + ba* menyatakan ( a + ( b (a)* ))
( a + ba )* a menyatakan (( a + (ba))* a )
aba menyatakan (( ab ) a )
a + b + a menyatakan (( a + b ) +a )
20
Definisi 13 : Dua ekspresi reguler r1 dan r2 terhadap abjad
Σ dikatakan setara (ekivalen) dinyatakan
r1 = r2 jika R1 = R2
Misalkan r, s dan t merupakan ekspresi reguler terhadap Σ,
maka berlaku sifat-sifat sebagai berikut : ( ada 16 sifat )
Contoh : Buktikan : r (sr )* = ( rs )* r
Bukti : misalkan w Є r (sr )* , maka w = r (( sr ) (sr) ….. (sr)
Berdasarkan sifat assosiatif w = (( rs ) (rs) …….. (rs) r
W Є ( rs )* r . Jadi r ( sr )* subset ( rs )* r
Misal : w Є ( rs )* r , maka w = (( rs ) ( rs ) ……….( rs )) r
Berdasarkan sifat assosiatif : w = r (( sr ) ( sr ) ….. ( sr ))
w Є r ( sr )* . Jadi ( rs )* r subset r ( sr ) *
R ( sr )* = ( rs )* r.
Pembuktian diatas disebut dengan Proof by reparsing
21
Soal – Soal Latihan
1. Diketahui Σ = { k,l,m,n,o,p,q }, sebutkan yang
didefinisikan alphabet, untai dan bahasa, berapa
panjang Σ dan masing-masing kata dari Σ.
2. w adalah sebuah untai ; w = 679583
Bagaimanakah eksponensiasi dan reversalnya.
3. Misalkan Σ = { a,b }
a. r = a * ba * ba *
b. r = ( a + b ) *
c. r = ( a + b )* ( aa + bb ) ( a + b ) *
d. r = ( aa + bb + ( ab + ba ) ( aa + bb ) * ( ab + ba )) *
e. r = ( b + abb ) *
Tentukan R untuk masing-masing Soal !!!.
22
MODUL – 03
FINITE STATE AUTOMATA ( FSA )
3.1. Pengertian Finite State Automata
a. Model matematika dari suatu sistem yang menerima
input dan output diskrit.
b. Adanya perpindahan input dari satu state ke state
lainnya ( Fungsi Transisi ).
c. Mekanisme kerja suatu FSA dapat diaplikasikan pada
leksikal analysis, Text Editor, Protocol Komunikasi
jaringan dan lainnya.
d. FSA dinyatakan dengan Five – Tupel ( 5 – Tupel )
sebagai berikut : M = ( Q, Σ, δ, S , F ) , dimana
Q = Himpunan State
Σ = Himpunan simbol input / masukan/ abjad
23
δ = Fungsi transisi / tabel transisi
S = State awal ; S Є Q
F = Final State ; F subset Q
Contoh kasus : Seorang petani, seekor kambing, seekor srigala dan seikat
rumput berada pada satu sisi sungai dan ingin melakukan penyebrangan
dengan sebuah perahu. Petani tersebut harus menyebrangkan semuanya
dalam keadaan selamat. Bagaimanakah prosesnya ?. P = Petani ; K =
Kambing ; S = srigala dan R = Rumput
Start K P
K P S S R R
K
K K K
R S
K R S
K P S
P
O-
PKSR
SR-
PK
PSR
R-
PKS
PKR-
S
S-
PKR
PK-
SR
K-
PSR
PKS-
R
0-
PKSR
24
Contoh lain : mencek parity ganjil
Bila mesin mendapat input : 1101
Urutan state yang terjadi : even 1 odd 1 even 0 even 1 odd
Berakhir dengan state odd sehingga “1101” diterima oleh
mesin. Bila mesin mendapat input : 101.
Urutan state yang terjadi : even 1 odd 0 odd 1 even.
Berakhir dengan state even. Maka “101” ditolak oleh mesin
0 0
Start 1
1
Even odd
25
3.2. Deterministic Finite Automata ( DFA )
Deterministic Finite Automata ( DFA ), dari suatu
state adalah tepat satu state berikutnya untuk setiap
simbol masukan yang diterima. DFA didefinisikan
sebagai 5 –tuple M = ( Q, Σ, δ, S , F ).
Definisi 13 : Dalam diagraph suatu automaton
M = ( Q, Σ, δ, S , F ) untuk suatu kata w di Σ * ,
lintasan vertex qi ke vertex qj , sehingga
rangkaianrangkaian dari label-label dari edge yang
dilaluinya membentuk kata w yang disebut lintasan
w dari qi ke qj .
Suatu kata w termasuk di Σ * dikatakan diterima
(accepted) oleh automaton M, jika lintasan w dari
state awal q0 dapat mencapai state akhir di F.
26
Himpunan kata yang diterima oleh automaton M
disebut bahasa yang diterima oleh M dan
dinyatakan dengan ; L ( M ).
Catatan : Kata-kata kosong ᵋ diterima oleh M jika
q0 juga merupakan F.
Contoh : Misal Σ = { a,b } , M = ( Q, Σ, δ, q0, F ),
dimana Q = { q0 } ; F = Ø , Fungsi transisi δ
dinyatakan dengan tabel sebagai berikut :
δ a b
q0 q0 q0
27
Diagram Graph atau diagram transisinya :
 L ( M ) = Ø, mengapa ??
Misal ; Σ = { a,b } , M = ( Q, Σ, δ, q0, F ),
Q = { q0 } ; F = Ø
 L ( M ) = Σ *
q0
q0
28
Diketahui Automaton berhingga Σ = { a,b } , M = ( Q, Σ,
δ, q0, F ), dimana Q = { q0 , q1 , q2 } ; F = q2 ,
Persamaan transisi diberikan sebagai berikut :
δ(q0, a ) = δ(q1, a ) = δ(q2, a ) =
δ(q0, b ) = δ(q1, b ) = δ(q2, b ) =
Suatu string x dinyatakan diterima bila δ( S, x ) berada
pada state akhir. Secara formal dikatakan, bila M adalah
sebuah FSA menerima bahasa yang disebut L ( M ).
L ( M ) = { x │ δ( S, x ) di dalam F }. Misal kita input string
“abb” pada contoh diatas, maka :
δ(q0, abb ) = δ(q0, bb ) = δ(q1, b ) = q2
karena q2 termasuk state akhir, maka ‘ abb ‘ berada
dalam L ( M ) = U { Si : qi Є F }.
Contoh lain inputkan string ‘ baba ‘ !!!!.
29
Pada DFA dari setiap state selalu tepat ada satu state
berikutnya √ simbol input yang ada.
Fungsi transisi dengan F = { q3 }
Fungsi transisi dengan F = { q3 }
0
0
Start 1 0
1
0
δ a b
q0 q1 q2
q1 q3 q2
q2 q1 q3
q3 q3 q3
q0 q1 q2
30
MODUL – 04
NON DETERMINISTIC FINITE AUTOMATA (NFA)
Suatu automaton berhingga tak tentu ( NFA )
adalah suatu 5 – tuple M = ( Q, Σ, δ, q0, F ),
dimana δ : Q X Σ  2 Q . 2 Q menyatakan
power set dari Q atau himpunan semua subset
dari Q. Biasanya fungsi transisi δ tidak hanya
bekerja pada sebuah huruf , tetapi juga bekerja
pada sebuah kata.
δ *: Q X Σ*  2 Q
δ* ( q,w ) adalah suatu state di Q yang dicapai
oleh state q setelah mendapat input kata w,
fungsi δ* dedefinisikan sebagai :
a. δ* ( q,w ) = { q }
31
b. δ* ( q,wa ) = { p : p di δ ( r,a ) untuk suatu state r di
δ* ( q,w ) .
c. δ* ( p,w ) = U { δ* ( q,w ) : q di p } √ p subset Q
Definisi 14 : M = ( Q, Σ, δ, q0, F ), adalah NFA, maka
bahasa yang diterima oleh M yaitu L ( M ) menyatakan
himpunan { w : δ ( q0,w ) mengandung suatu state akhir
di F }. Contoh misalkan M = ( Q, Σ, δ, q0, F ) ; Σ = { a,b }
dimana F = { q2,q4 } dan Q = { q0, q1, q2, q3, q4 } dengan
fungsi transisi sbb:
δ a b
q0 {q0, q3 } {q0, q1 }
q1 Ø q2
q2 q2 q2
q3 q4 Ø
q4 q4 q4
32
Bila w = abaab, maka
δ ( q0,w ) = δ ( q0,a ) = { q0, q3 }
δ ( q0,ab ) = δ (δ ( q0,a ), b = δ ( { q0, q3 }, b )
= δ ( { q0 }, b ) U δ ( { q3 }, b )
= { q0, q1 } U Ø = { q0, q1 }
δ (q0,aba) = δ (δ ( q0,ab ), a = δ ( { q0, q1 }, a )
= δ ( { q0 }, a ) U δ ( { q1 }, a )
= { q0, q3 } U Ø = { q0, q3 }
δ (q0,abaa)= δ (δ ( q0,aba ), a = δ ( { q0, q3 }, a )
= δ ( { q0 }, a ) U δ ( { q3 }, a )
= { q0, q3 } U { q4 } = { q0, q3 , q4 }
δ (q0,abaab)= δ (δ ( q0,abaa ), b = δ ( { q0, q3 , q4 }, b )
= δ ( { q0 }, b ) U δ ( { q3 }, b ) U δ({ q4 }, b )
= { q0, q3 , q4 }
33
Reduksi Jumlah State Pada FSA
Distinguishable adalah state yang dapat dibedakan.
Indistinguishable adalah state yang tidak dapat
dibedakan. State p dan q dari DFA dikatakan
indistinguishable, jika :
a. δ ( q,w ) Є F , sedangkan δ ( p,w ) Є F dan .
b. δ ( q,w ) Є F , sedangkan δ ( p,w ) Є F √ w Є ∑* .
State p dan q dikatakan distinguishable jika ada string w
Є ∑* Ǝ δ ( q,w ) Є F , sedangkan δ ( p,w ) Є F.
Jelasnya pasangan 2 buah state memiliki salah satu
kemungkinan distinguishable atau indistinguishable,
tetapi tidak keduanya.
Terdapat relasi p dan q indisti dan jika q dan r indisti,
maka p dan r juga indisti dan ketiga statet tersebut
indistinguishable.
34
Reduksi state DFA dapat dilakukan dengan mencari
kombinasi state yang indistinguishable, tahapan-
tahapannya sebagai berikut :
a. Hapuslah semua state yang tidak dapat dicapai dari q0
dengan jalan apapun.
b. Buatlah semua pasangan state (p,q) yang
distinguishable dimana p Є F dan q Є F .
c. Catatlah pasangan-pasangan state tersebut.
d. √ melakukan pencarian state yang disting dengan
aturan-aturan : “ √ (p,q) dan √ α Є ∑ .
e. Hitunglah δ (p,α) = pα dan δ (q,α) = qα. Jika pasangan
( pα,qα ) telah tercatat sebagai disting, maka pasangan
(p,q) juga dimasukan sebagai disting.
35
f. Dari hasil no. c didapat pasangan state
yang disting. Pasangan-pasangan state
yang lainnya yang tidak termasuk ke
dalam state yang disting tersebut
(‘sisanya’) dapat ditentukan sebagai state
yang indisting.
g. Beberapa state yang saling indisting
dapat digabungkan ke dalam satu state.
sesuaikan transisi dari dan ke state-state
gabungan tersebut.
36
0 1
0 0
Start 1 0,1
1 0 1
q0
q3
q1
q2 q4
37
Dilakukan tahapan-tahapan sebagai berikut :
1. Tidak ada state yang tidak tercapai dari q0.
2. Catat state-state disting sebagai berikut : pasangan
(q0,q4), (q1,q4), (q2,q4) dan (q3,q4). Hal ini didapatkan
dengan melihat q0, q1, q2, q3 Є F , sedangkan q4 Є F.
3. Tentukan pasangan-pasangan state lainnya, misal :
a. Untuk pasangan (q0,q1), kita lihat δ ( q0,1) = q3 dan δ
( q1,1) = q4 , sedangkan (q3,q4) disting, maka (q0,q1)
adalah disting.
b. Untuk pasangan (q0,q2), kita lihat δ ( q0,1) = q3 dan δ
( q2,1) = q4 , sedangkan (q3,q4) disting, maka (q0,q1)
adalah disting.
c. Untuk pasangan (q0,q3), kita lihat δ ( q0,1) = q3 dan δ
( q3,1) = q4 , sedangkan (q3,q4) disting, maka (q0,q3)
adalah disting.
38
4. Setelah diperiksa semua pasangan state, didapati state-
state yang disting yaitu : (q0,q4), (q1,q4), (q2,q4) , (q3,q4),
(q0,q1), (q1,q2), (q0,q3) , sisanya yang indisting adalah
(q1,q2), (q1,q3), (q2,q3) .
5. Karena q1 indisting dengan q2 , q2 indisting dengan q3
maka dapat disimpulkan q1 , q2 , q3 saling indisting dan
dapat dijadikan satu state.
Gambar berikut hasil DFA yang direduksi statenya !!.
0 0,1
Start 0,1 1
q0 q1,2,3
q4
39
MODUL – 05
KESETARAAN DFA DAN NFA
Tahapan Pengubahan NFA ke DFA
Dari sebuah mesin NFA dapat dibuat mesin DFA yang
ekivalen ( setara ). Ekivalen disini artinya mampu
menerima bahasa yang sama. Contohnya lihat gambar
berikut ini :
0,1
0 0,1
Start Start 0
1
0,1
Gambar 5.1 : Mesin DFA Gambar 5.2 : Mesin NFA
q0 q0
q1
q2
q1
40
Cara membangun ekivalensi NFA ke DFA
Contoh. Misal diketahui NFA dengan diagram transisi
berikut ini :
0 1
Start 0,1
1
Gambar 5.3 : Mesin Otomata NFA
Dimulai dari state awal, kemudian mengikuti transisinya
untuk membentuk state-state baru, √ state yang
terbentuk diikuti lagi transisinya sampai tercover semua.
q0 q1
δ 0 1
q0 q0 , q1 q1
q1 Ø q0 , q1
41
- State q0 dengan input 0 mencapai q0 dan q1
- State q0 dengan input 1 mencapai state q1
hasil penelusurannya sebagai berikut :
1
Start
0
Selanjutnya kita telusuri state-state baru yang terbentuk
{q0}
{q1}
{q0,q1}
42
State q1 bila memperoleh input 0 menjadi state Ø.
State q1 bila memperoleh input 1 menjadi state { q0,q1 }.
State {q0,q1} bila memperoleh input 0 menjadi state
{q0,q1}, ini diperoleh dari δ ( q0,0) = { q0 , q1 } digabung
dengan δ ( q1,0) = Ø , maka hasilnya :
δ ( { q0,q1 }) = { q0 , q1 } .
State { q0 , q1 } bila memperoleh input 1 menjadi state {q0
, q1} , ini diperoleh dari δ ( q0,1) = { q1 } digabung dengan
δ ( q1,1) = { q0 , q1 } , maka hasilnya :
δ ( { q0,q1 }, 1) = { q0 , q1 } .
43
Perhatikan state yang sama cukup ditulis sekali saja.
1 0 1 0 0,1
Start 1 Start 1
0 0,1 0 0,1
1 0 0,1
Start 1
0,1
0
Gambar 5.4 : Mesin DFA yang ekivalen dengan NFA
gambar 5.3
q0
Ø
q0,q1
q1 q1
Øq0
q0
Ø
q1
q0,q1
q0,q1
44
Untuk memeriksa ekivalensi DFA dengan NFA, misalkan
string ‘001’ dapat diterima oleh NFA, maka seharusnya
dapat pula diterima oleh DFA.
δ ( q0,001) = δ ( { q0,q1 },01) = δ ( { q0,q1 },1) = { q0,q1 } ,
karena state { q0,q1 } termasuk state akhir, maka berarti
string tersebut diterima.
Contoh-contoh ekivalensi NFA ke DFA
a b a,b a,b
Start a,b Start b
a a
q0 q0 Ø
q1
q1
q0,q1
45
Start Start a,b a,b
p,r
Start p r
r
p p
p p r p,r
Start
r p,r
q0 {q0} Ø
q0 q2
Ø
q0
q2
{q1}
{q0,q2}
{q1}
46
MODUL – 06
NFA DENGAN ᵋ MOVE
ᵋ ᵋ
Start
b ᵋ
a b
ᵋ = empty ( transisi ᵋ ), diperbolehkan merubah state
tanpa membaca input/ tidak tergantung pada suatu input
Contoh : Dari q0 tanpa membaca input pindah ke q1
Dari q1 tanpa membaca input pindah ke q2
Dari q4 tanpa membaca input pindah ke q1
Memudahkan untuk mengkombinasikan FSA
q0
q1
q3 q4
q2
47
6.1. ᵋ - closure untuk NFA dengan ᵋ - move
ᵋ - closure adalah himpunan state-state yang dapat
dicapai dari suatu state tanpa membaca input.
Misal : ᵋ - closure ( q0 ) = himpunan state yang dapat
dicapai dari state q0 tanpa baca input.
Dari gambar diatas :
ᵋ - Closure ( q0 ) = { q0, q1, q2 }
ᵋ - Closure ( q1 ) = { q1, q2 }
ᵋ - Closure ( q2 ) = { q2 }
ᵋ - Closure ( q3 ) = { q3 }
ᵋ - Closure ( q4 ) = { q1, q2, q4 }
48
Start
Contoh lainnya :
ᵋ - Closure ( q0 ) = { q0, q1, q3 }
ᵋ - Closure ( q1 ) = { q1, q3 }
ᵋ - Closure ( q2 ) = { q2, q4 }
ᵋ - Closure ( q3 ) = { q3 }
ᵋ - Closure ( q4 ) = { q4 }
“ Pada state yang memiliki transisi - ᵋ , maka ᵋ - Closure
adalah state itu sendiri “
q0
q2q1
q3 q4
49
6.2. Ekivalensi NFA dengan Ɛ – move ke NFA tanpa Ɛ – move
a a
a a
Ɛ
b
b b
Gambar a : NFA Ɛ – move Gambar b : NFA tanpa Ɛ – move
Gambar a ekivalen dengan gambar b.
Gambar a menerima bahasa yang memuat string ‘ b ‘ ,
demikian juga gambar b
q2
q0 q1
q1
q0
q1
q2
q1q3
q3
Start Start
50
Untuk gambar yang kompleks diperlukan tahapan-
tahapan sebagai berikut :
1. Buat tabel transisi NFA Ɛ – move .
2. Tentukan Ɛ – closure √ state.
3. Carilah setiap fungsi transisi hasil perubahan dari NFA
Ɛ – move ke NFA tanpa Ɛ – move δ ( sebut δ’ ), dimana
δ’ didapat dengan rumus : δ’ (state,input) = Ɛ – closure
( δ(Ɛ – closure (state,input)).
4. Dari hasil 3, buat tabel transisi dan diagram transisi dari
NFA tanpa Ɛ – move yang ekivalen dengan NFA Ɛ –
move tersebut.
5. Jangan lupa menentukan state-state akhir untuk NFA
tanpa Ɛ – move tersebut, yaitu state-state akhir semula
ditambah dengan state-state yang Ɛ – closurenya
menuju kesalah satu dari state akhir semula, atau
F’ = F U { q │(Ɛ – closure (q) ∩ F ≠ Ο }
51
Misal : bila semula F = { q0,q3 }, Ɛ – closure (q1) =
{ q0,q2 } maka F’ = { q0,q1,q3 }
tabel transisi dari NFA Ɛ – move
ada gambar …
Ɛ – closure √ state
Ɛ – closure ( q0 ) = { q0,q1 }
Ɛ – closure ( q1 ) = { q1 }
Ɛ – closure ( q2 ) = { q2 }
Ɛ – closure ( q3 ) = { q3 }
δ a b
q0 Ø Ø
q1 q2 q3
q2 Ø Ø
q3 Ø Ø
52
Kemudian dicari δ’ dengan memanfaatkan tabel transisi
dan Ɛ – closure yang diperoleh berikut ini :
- δ’ (q0,a) = Ɛ – closure ( δ(Ɛ – closure (q0,a)) = Ɛ –
closure ( δ{q0,q1 },a)) = Ɛ – closure ( q2 } = { q2 }
- δ’ (q0,b) = Ɛ – closure ( δ(Ɛ – closure (q0,b)) = Ɛ –
closure ( δ{q0,q1 },b)) = Ɛ – closure ( q3 } = { q3 }
- δ’ (q1,a) = Ɛ – closure ( δ(Ɛ – closure (q1,a)) = Ɛ –
closure ( δ{q1 },a)) = Ɛ – closure ( q2 } = { q2 }
- δ’ (q1,b) = Ɛ – closure ( δ(Ɛ – closure (q1,b)) = Ɛ –
closure ( δ{q1 },b)) = Ɛ – closure ( q3 } = { q3 }
- δ’ (q2,a) = Ɛ – closure ( δ(Ɛ – closure (q2,a)) = Ɛ –
closure ( δ{q2 },a)) = Ɛ – closure (Ø } = {Ø }
- δ’ (q2,b) = Ɛ – closure ( δ(Ɛ – closure (q2,b)) = Ɛ –
closure ( δ{q2 },b)) = Ɛ – closure (Ø } = {Ø }
53
- δ’ (q3,a) = Ɛ – closure ( δ(Ɛ – closure (q3,a)) = Ɛ –
closure ( δ{ q3 },a)) = Ɛ – closure (Ø } = {Ø }
- δ’ (q3,b) = Ɛ – closure ( δ(Ɛ – closure (q3,b)) = Ɛ –
closure ( δ{ q3},b)) = Ɛ – closure (Ø } = {Ø }
Tabel transisi NFA tanpa Ɛ – move dengan F = { q3}
δ’ a b
q0 q2 q3
q1 q2 q3
q2 Ø Ø
q3 Ø Ø
54
4.3. Penggabungan dan konkatenasi FSA
Misal ada NFA M1 dan NFA M2
0
Start 1 NFA M1
Start 1 1
0 NFA M2
qa0 qa1
qb0 qb1
55
L (M1 ) adalah bahasa yang diterima M1 dan L (
M2 ) bahasa yang diterima oleh M2. Dilakukan
operasi union : L ( M3 ) = L ( M1 ) U L ( M2 ),
dapat dibuat mesin M3 yang menerima bahasa L
( M3 ) dengan cara :
a. Tambahkan state awal untuk M3, hubungkan
dengan state awal M1 dan state awal M2
dengan menggunakan transisi- Ɛ.
b. Tambahkan state akhir M3, hubungkan dengan
state-state akhir M1 dan state-stae akhir M2
dengan menggunakan transisi- Ɛ. qs dan qf
adalah state awal dan state akhir pada M3
56
qs
qA1qA0
qB1qB0
Start
0
1
Ɛ Ɛ
Ɛ
Ɛ
1
1
0
qf
57
Ditentukan L ( M4 ) = L ( M1 ) . L ( M2 ), dapat dibuat
mesin M4 yang menerima bahasa L ( M4 ) dengan cara :
a. State awal M1 menjadi state awal M4.
b. State akhir M2 menjadi state akhir M4.
c. Hubungkan state-state akhir M1 dengan state awal M2
dengan menggunakan transisi- Ɛ.
Hasil operasi konkatenasi
Mesin M4
q0 qA1 qB0
q1
Start
0
0
1
1
1 ƐƐ
58
Modul – 07
EKSPRESI REGULER
7.1. Penerapan Ekspresi Reguler
Sebuah bahasa dinyatakan reguler jika terdapat Finite
State Automata yang dapat menerimanya. Bahasa yang
diterima oleh suatu FSA dapat dinyatakan secara
sederhana dengan ekspresi reguler (ekspresi beraturan/
( EB ). EB memungkinkan menspesifikasikan atau
mendefinisikan bahasa-bahasa, memberikan suatu pola
( pattern ) atau template untuk untai/ string dari suatu
bahasa. Untai yang menyusun suatu bahasa reguler
akan cocok ( match ) dengan pola bahasa itu.
Penerapan EB yang nampak, misalnya pencarian untai
karakter pada suatu file. Biasanya fasilitas ini ada pada
59
text editor. Dalam kasusu-kasus ini dapat dilakukan
penerapan FSA pada untai-untai yang terdapat dalam
file tersebut.
Conth – contoh EB
1. Fsa menerima bilangan integer tak bertanda
0,1,2,…..,9
0,1,2,…..,9
Selain 0,1,2,.9 Selain 0,1,2,…,9
Dalam EB. Dinyatakan dengan : ( digit )( digit ) *
q0
q0
q1
Start
60
2. FSA menerima Indentifier ( Id )
Huruf / Angka
Huruf
Dalam EB dinyatakan dengan : ( Huruf )( Huruf│angka ) *
Start q0
q1
61
Notasi_Notasi Ekspresi Beraturan ( EB )
1. ( * ) yaitu karakter asterisk. Dapat tidak muncul, dapat
pula muncul berhingga kali ( 0 – n kali ).
2. ( + ) tanda tambah pada posisi supercript ( diatas ).
Diartikan minimal harus muncul satu kali ( 1 – n kali ).
3. + ( mendatar ) atau U berarti union  berarti “ atau “.
4. . ( titik ) berati konkatenasi, biasanya dapat dihilangkan
misal a . b = ab
Contoh-contoh EB dan contoh string yg dibangkitkan :
1. EB : ab*cc , string : ……
2. EB : 010* string : ……
3. EB : a*d : a+ d, string : …..
4. EB : a* U b * , string : ….
5. EB : ( 0 U 1 ) ; ( a │ b )+ , 01* + 0 , string :…..
62
Hubungan Ekspresi Beraturan dan FSA
V EB ada satu FSA Ɛ-move yang ekivalen, V DFA ada
satu EB dari bahasa yang diterima oleh DFA.
Sederhananya kita dapat membuat suatu NFA Ɛ-move
dari EB.
a
Ɛ b
Gambar : NFA Ɛ-move untuk EB : a* b
a b
Gambar : NFA untu EB : ab
q0 q1
q1q0
q2
q2
Start
Start
63
a Ɛ b
NFA Ɛ – move untuk EB : ab
a
Ɛ Ɛ
Ɛ b Ɛ
NFA Untuk EB : a U b
q0
q3 q4
q1 q2
q0 q2q1 q3
q5
Start
Start
64
NFA Ɛ-move  NFA  DFA
Bila EB cukup sederhana kita dapat saja langsung
mengkonstruksi NFA-nya tanpa melalui NFA Ɛ-move
Contoh-contoh NFA tanpa Ɛ-move
0 0,1 EB: 0(1│0 )
0 1 EB: 010*
1 0,1
0 0 0
EB : 01*0 EB : 0 ( 1 U 0 )
q0
q1
q0
q1
q0 q1 q0
q0
q0
q0
q0
q2
q2
q1
Start
Start
Start
q2
Start
65
Dari sebuah FSA ( DFA atau NFA ) dapat ditentukan EB
yang diterima oleh automata yang bersangkutan, dapat
juga ditentukan langsung EB dengan mengamati
perilaku otomata tersebut.
Input yang menuju final state { q2 } adalah 0 atau 10*1,
pada q2 menerima input 1 berapapun juga ( 1* ), akan
tetap di q2. Dapat dikatakan mesin itu menerima 01*
atau 10*11* yang dinyatakan dalam EB : 01* U 10*11*
0 1
1 1
0
q0 q1
q0q2
Start
66
Input ke q3 adalah ab, dengan di q3 menerima a*,
sehingga bila digabung menjadi aba*. Input ke q2 adalah
aa, selanjutnya dari q2 menerima input ba*b kembali ke
q2, bila digabung menjadi aa ( ba*b ). Akhirnya diperoleh
EB : aba* │ aa( ba*b ) = a ( ba* │a ( ba*b )* ).
Gambarkan diagram transisi dan lain-lainnya !!!.
Diagram hubungan antara DFA, NFA dan EB
NFA
DFA
EB
NFA Ɛ-move
67
Dari EB : ( 0 + 1 )* 00 ingin dibuat mesin DFA yang
menerima bahasa yang berupa semua string yang
berakhiran dengan ‘ 00 ‘ ; Σ = { 0,1 }
0,1
0 0
Akhirnya kita buat DFA yang ekivalen dengan NFA.
Dapat dicek dengan untai : 00, 100, 000, 0100, 0000,
1100
q0 q1
q0q2
Start
68
1 1 0
0 0
1
Mesin DFA
δ 0 1
q0 { q0,q1 } q0
q1 q2 -
q2 - -
{q0} {q0,q1} {q0,q1,q2}
Start
69
Dari EB : ( 0 + 1 )* 00 ( 0 + 1 )* ingin dibuat mesin DFA
yang menerima bahasa yang berupa semua string yang
memuat minimal 2 nol ( 00 ). DFA yang ekivalen dengan
NFA dapat dicek dengan untai : 00, 100, 001, 0000,
0100, 00000, 1100, 0011, 1010011
δ 0 1
q0 { q0,q1 } q0
q1 q2 -
q2 q2 q2
70
1 0
1 0
0 0 1 1
Start
{q0} {q0,q1}
{q0,q2}
{q0,q1,q2}
71
Dari EB : ( a + b )* b ( a + b ) ( a + b ) ingin dibuat mesin
DFA yang menerima bahasa yang berupa semua string,
dimana simbol ketiga dari kanan adalah “ 1 “.
Diketahui Σ = { a,b } . Coba sendiri !!!
a,b
b a,b a,b
q0 q1 q2 q0q3
Start
72
Ingin dibuat mesin DFA yang ekivalen dengan NFA yang
menerima bahasa yang berupa 4 simbol yang minimal
memuat 2 buah nol ( yang tidak perlu berurutan ).
Diketahui Σ = { 0,1 }. Gambar DFA untuk 1100
1 1 0 0
Kemungkinan ke-2 , 2 buah nol terletak dipaling awal
q0 q1 q2 q3 q0
q5 q6
q7
q4
Start
73
Selanjutnya kita tambahkan kemungkinan untuk tiga
simbol pertama sudah memuat 2 buah nol.
1 1 0 0
0 0 0,1
1 0
0 0,1
q1q0
q2
q3
q1
q8
q5
q7
q6
q4
Start
74
Bila 3 simbol pertama baru memuat satu buah nol,
dibuat transisi dari state q8 ke q3
1 1 0 0
1
0 0 0,1
1 0
0 0,1
Hasil akhir mesin DFA yang sebenarnya tidak menuju
solusi : δ ( q2 , 1 ) = Ø δ ( q4 , 0 ) = Ø
δ ( q3 , 1 ) = Ø δ ( q4 , 1 ) = Ø
q1q0
q2
q3
q1
q8
q5
q7
q6
q4
Start
75
Modul – 08
ATURAN PRODUKSI
8.1. Aturan Produksi Bahasa Reguler
Aturan produksi untuk EB : α  β , dimana α adalah
sebuah simbol variabel dan β maksimal memiliki sebuah
simbol variabel/ non terminal yang terletak di paling
kanan bila ada. Mengkontruksikan aturan-aturan
produksi untuk suatu tata bahasa reguler.
Tata bahasa reguler ( grammar ) didefinisikan 4-tupel :
G = { V,T,P,S } dimana : V = himpunan variabel
T = himpunan simbol terminal
P = kumpulan aturan produksi
S = simbol awal
76
a
ε b
a
b
ε b
S = state awal = q0 ; q0 mendapat input a ke q1
S  aE ( E = q1 / bagian yang belum terbangkitkan ). Dari q1
menerima input ε ke q2 dan q3 , ditulis :
E  A ( A = q2 ), dari q2 mendapat input a ke q2
E  B ( B = q3 ) dari q3 mendapat input b ke q3
A  aA selanjutnya dari q2 mendapat input b ke q4 ;
F = { q4 }
B  bB selanjutnya dari q3 mendapat input b ke q4 ;
F = { q4 }
q0 q1
q2
q3
q1q4
Start
77
Tidak ada lagi unsur yang keluar, dapat ditulis :
A  a
B  b
Maka kumpulan aturan produksi yang dapat ditulis
sebagai berikut :
S  aE V = { S,E,A,B }
E  A │B T = { a,b }
A  aA │B P = { S  aE, E  A │B ,
B  bB │b a  aA │B, B  bB │b }
S = S , state awal
78
Contoh Lain a
b b
a
b b a
b
T = { a,b } A  bC ( C = q2 )
S = q0 C  aS
S  aA │Bb dari q2 mendapat input a ke q0
A = q1 ; B = q4
q0
q1 q2 q3
q4 q5
q6
q0
Start
79
Dari q3 tidak ada transisi yang keluar dan bukan state
akhir, maka transisi ke state q3 diabaikan.
B  bD ; ( D = q5 )
D bS ; ( dari q5 mendapat input b ke q0 ) ; q6 abaikan
( q0 sebagaii state akhir )  S  ε
Maka kumpulan aturan produksi yang dapat ditulis
sebagai berikut :
V = { S,A,B,C,D }
T = { a,b }
P = { S  aA │Bb │ε , A bC ; B  bD ; C  aS ,
D  bS }
S = aA │Bb │ε
80
Disederhanakan menjadi :
S = aA │Bb │ε
A  bC S  aA │Bb │ε
C  aS A  baS
D  bS B  bbS
81
8.2. FSA untuk suatu tata bahasa reguler
Misal terdapat tata bahasa reguler dengan aturan produksi sebagai
berikut :
b
b a
a
b
a b
S = q0 S  aB │bA │ε
A = q4 B  babS
B = q1 A  abaS
S  ε
q0
q1 q2 q3
q4 q5 q6
q0
Start
82
Modul – 09
FSA Dengan Output
9.1. Mesin Moore ( FSA Transducer )
Pada mesin Moore, output akan berasosiasi dengan
state. Mesin Moore didefinisikan dengan 6-tupel.
M = ( Q, Σ, δ, S, ∆, λ ), dimana :
Q = himpunan state ; Σ = himpunan simbol input
δ = fungsi transisi ; S = simbol awal
∆ = himpunan output ; λ = fungsi output V state
Contoh : Pembagian dengan sisa ( modulus ) bilangan
Q = { q0, q1, q2 }
Σ = { 0,1 }
∆ = { 0,1,2 } ( untuk outputnya pada kasus modulus
dengan sisa 3, maka sisanya adalah 0,1,2 ).
83
S = q0
λ ( q0 ) = 0
λ ( q1 ) = 1
λ ( q2 ) = 2
Misal : 5 mod 3 = 2
Input 5 dalam biner adalah 101, 101  q0 , q0 , q1 , q2  F = { q2 } ,
λ { q2 } = 2.
Misal : 10 mod 3 = 1
Input 10 dalam biner adalah 1010, 1010  q0 , q1 , q2 , q2 , q1 
F = { q1 } , λ { q1 } = 1
0 1 2
0 1
1 0
1 0
Gambar 7.1. : Mesin Moore untuk modulus 3
q0
q1 q2
Start
84
9.2. Mesin Mealy
Mesin Mealy berasosiasi dengan state, didefinisikan
dalam 6-tupel.
M = ( Q, Σ, δ, S, ∆, λ ), dimana :
Q = himpunan state ; Σ = himpunan simbol input
δ = fungsi transisi ; S = simbol awal
∆ = himpunan output ; λ = fungsi output V transisi
Mesin Mealy akan mengeluarkan output, apakah
menerima ( Y ) atau tidak ( T ). Mesin akan
mengeluarkan output Y bila menerima untai yang
memiliki simbol 2 akhiran berurutan yang sama, atau
dalam EB : ( 0 + 1 )* ( 00 + 11 )
Contoh input yang diterima : 01011, 01100 , 1010100,
10110100, 00, 11, 100, 011, 000, 111
85
Konsfigurasi Mesin Mealy ( dari diagram )
Q = ( q0 , q1 , q2 ); Σ = { 0,1 }
δ = fungsi transisi S = simbol awal = q0
∆ = { Y,T }
λ = (q0 ,0) = T λ = (q0 ,1) = T
λ = (q1 ,0) = Y 0/Y λ = (q1 ,1) = T
λ = (q2 ,0) = T λ = (q2 ,1) = Y
0/T 1/T
0/T 1/Y
1/T
q0
q1
q2
Start
86
9.3. Ekivalensi Mesin Moore dan Mesin Mealy
Karena jumlah state pada Mealy = 3 dan jumlah
outputnya = 2 , maka jumlah state pada Moore yang
ekivalen = 6
Q = ( q0 Y, q0 T , q1 Y , q1 T , q2 Y , q2 T )
Σ = { 0,1 }
∆ = { Y,T }
S = q0 T
λ = (q0 Y) = Y λ = (q1 T) = T
λ = (q0 T) = T λ = (q2 Y) = Y
λ = (q1 Y) = Y λ = (q2 T) = T
87
Gambar 9.3. : Mesin Moore yang ekivalen dengan
gambar 9.2.
1
1
0 0
T T T
0
0 0
0 1
1
1
Y Y Y
q0T q1T q2T
q0Y q1Y q2Y
Start
88
“ State q0Y dapat dihapus, karena tidak ada transisi (
busur ) yang mengarah ke state tersebut “ .
Untuk memperoleh ekivalensi mesin Mealy ke mesin
Moore.
Konsfigurasi mesin Mealy tersebut adalah :
Q = ( q0 , q1 , q2 ) ; Σ = { 0,1 }
∆ = { 0,1,2 } ; S = state awal = q0
Mesin Moore :
λ = (q0 ,0) = 0 ; λ = (q1 ,1) = 0 ; λ = (q0 ) = 0
λ = (q0 ,1) = 1 ; λ = (q2 ,0) = 1 ; λ = (q1 ) = 1
λ = (q1 ,0) = 2 ; λ = (q2 ,1) = 2 ; λ = (q2 ) = 2
89
0/0 1/2
1/1 0/2
1/0 0/1
Gambar 9.4. : Mesin Mealy yang ekivalen dengan
Mesin Moore
q1q0
q2
Start
90
Modul – 10
POHON PENURUNAN
10.1. Tata Bahasa Bebas Konteks
Pada tata bahasa reguler terdapat pembatasan
pada ruas kanan atau hasil produksinya, maka pada tata
bahasa bebas konteks ( Contex Free Grammar/ CFG )
tidak terdapat pembatasan hasil produksinya.
Pada CFG, saat menurunkan string, simbol-simbol
variabel akan mewakili bagian-bagian yang belum
terturunkan dari string tersebut. CFG menjadi dasar
dalam pembentukan suatu parser ( proses analisis
sintaksis ). Bagian sintaks dalam suatu kompilator
kebanyakan didefinisikan dalam tata bahasa bebas
konteks.
91
Misal terdapat tata bahasa bebas konteks dengan aturan
produksi sebagai berikut :
S  AB
A  aA │a
B  bB │b
akan digambarkan pohon penurunannya untuk
memperoleh untai ‘ aabbb ‘
S
A B
a A b B
b B
a
b
Gambar 10.1 : Pohon penurunan untuk untai ‘aabbb’
92
Proses penurunan dapat dilakukan dengan cara :
a. Penurunan terkiri ( leftmost derivation ) : simbol variabel
terkiri yang diperluas terlebih dahulu.
b. Penurunan terkanan ( rightmost derivation ) : simbol
variabel terkanan yang diperluas terlebih dahulu.
Contoh :
S  aB │bA
A  a │aS │bAA
B  b│bS │aBB
Pohon penurunan untuk memperoleh untai
‘ aaabbabbba ‘ , dapat dilihat pada gambar berikut !!
93
10.2. Ambiguitas
Ambiguitas terjadi bila terdapat lebih dari satu pohon
penurunan yang berbeda untuk mendapatkan suatu
untai. Misalkan terdapat tata bahasa bebas konteks :
S  SbS │ScS│a
Penurunannya dapat dilihat pada gambar berikut :
S S
S b S S c S
a S c S S b S a
a a a a
Gambar 10.3 : Pohon penurunan untuk untai ‘ abaca’
94
Untuk untai yang sama ( abaca ) dapat dibuat pohon
penurunan yang berbeda, maka dapat dikatakan tata
bahasa bebas konteks tersebut ambigu.
Ambiguitas dapat menimbulkan masalah pada bahasa-
bahasa tertentu, dan susunannya akan menentukan arti,
maka artinya akan menjadi ambigu.
95
Soal-Soal
1. Untuk tata bahasa bebas konteks berikut , gambarkan
pohon penurunan untuk memperoleh untai ‘bbabaaba’
dan berikan contoh pula untuk untai-untai lainnya.
S  AA
A  AAA │a│bA │Ab
2. Gambarkan pohon-pohon penurunan ( min 3 pohon )
dari 2 grammar berikut :
S  aAd │aB
A  b │c
B  ccd│ddc
3. S  Ba │Ab
A  Sa │AAb│a
B  Sb│BBa│b
96
Modul – 11
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
11.1. Tujuan Penyederhanaan
Untuk melakukan pembatasan sehingga tidak menghasilkan
pohon yang memiliki kerumitan yang tak perlu atau aturan
produksi yang tidak berarti.
Misal CFG :S  AB │a
A  a , kelemahannya B tidak memiliki
penurunan.
Untuk CFG berikut : S  A
A  B
B  C
C  D
D a │A
97
memiliki kerumitan, padahal berujung S  a.
Produksi D  A juga menyebabkan kerumitan.
Suatu CFG dapat disederhanakan dengan melakukan :
1. Penghilangan produksi useless ( tidak berguna ).
2. Penghilangan produksi unit.
3. Penghilangan produksi Ɛ.
11.2. Penghilangan produksi useless
Produksi useless didefinisikan sebagai :
• Produksi yang memiliki variabel yang tidak memiliki
pohon penurunan yang akan menghasilkan terminal-
terminal. Produksi ini tidak berguna, karena kalau
diturunkan tidak akan pernah selesai.
• Produksi yang tidak akan pernah dicapai dengan
prnurunan apapun, sehingga produksi ini redundan.
98
Contoh CFG :
S  aSa │Abd │Bde
A  Ada
B  BBB│a
perhatikan variabel A tidak memiliki penurunan yang
menuju terminal, sehingga bisa ihilangkan.
Konsekuensinya aturan produksi S  Abd tidak memiliki
penurunan. Disederhanakan CFG tersebut menjadi :
S  aSa │Bde
B  BBB│a
99
Contoh lain, diketahui CFG :
S  aAb│cEB
A  dBE │eeC
B  ff
C  ae
D  h
E tidak memiliki penurunan, Aturan D  h, reddundan
Sisa aturan produksi :
S  aAb B  ff juga redundan
A  eeC
B  ff
C  ae
100
11.3. Penghilangan Produksi Unit
Produksi unit adalah dimana ruas kiri dan kanan aturan
produksi hanya berupa satu simbol variabel.
Contoh CFG :
S  Sb
S  C
C  D
C  ef
D  dd
kita lakukan penggantian dari aturan produksi yang
paling dekat menuju ke terminal (‘ => dibaca menjadi )
C  D => C  dd
S  C => S  dd │ef
101
Sehingga aturan produksi setelah penyederhanaan :
S  Sb
S  dd │ef
C  dd
C  ef
D  dd
Contoh lain CFG :
S  A
S  Aa
A  B
B  C
B  d
C  D
C  ab
D  b
102
11.4. Penghilangan Produksi Ɛ
Produksi Ɛ adalah produksi dalam bentuk α Ɛ
Penghilangan dilakukan dengan melakukan penggantian
produksi yang memuat variabel yang bisa menuju
produksi Ɛ atau biasa disebut nullable.
Misal : S  bcAd
A  Ɛ , maka variavel A dapat dihapus S  bcd
Contoh lainnya : Diketahui CFG :
S  AaCD
A  CD│AB
B  b │ Ɛ
C  d │ Ɛ
D  Ɛ
103
Setelah penyederhanaan :
S  AaC │ aC │ Aa │ a
A  C│AB │ A │ B
B  b
C  d
Contoh lainnya : diketahui CFG :
S  dA │ Bd
A  bc
A  Ɛ
B  c
Setelah penyederhanaan : S  dA │ d │ Bd
A  bc
B  c
105
Soal-Soal Modul – 11
Sederhanakan grammar –grammar berikut ini :
1. S  AB
A  abB│aCa │ Ɛ
B  bA │ BB │ Ɛ
C  Ɛ
2. S  ABaC │BaC │ AaC │ABa │ aC │Aa │ Ba │a
A  B│C │ BC
B  b
C  D
D  d
106
Modul – 12
BENTUK NORMAL CHOMSKY ( BNC )
12.1. Pengertian BNC
BNC atau Chomsky Normal Form ( CNF ) berguna untuk
CFG. BNC dapat dibuat dari sebuah CFG yang telah
mengalami penyederhanaan yaitu penghilangan
produksi useless, unit dan Ɛ. Dengan kata lain suatu
bentuk CFG dapat dibuat menjadi BNC, dengan syarat :
• Tidak memiliki produksi useless.
• Tidak memil;iki produksi unit.
• Tidak memiliki produksi Ɛ.
Aturan produksi BNC ruas kanannya tepat berupa
sebuah terminal atau dua variabel, misalkan :
107
A  BC
A  b
B  a
C  BA │d
12.2. Pembentukan BNC
Langkah-langkah pembentukan BNC sebagai berikut :
Aturan produksi yang ada dalam BNC :
S  CA
A  a
B  BC
C  b
Penggantian aturan produksi yang belum dalam BNC
108
S  aB => S  P1B
A  bc => A  P2P3
B  Ab => B  AP2
C  aB => C P1B
Terbentuk aturan produksi dan simbol variabel baru
P1  a
P2  b
P3  c
Hasil akhir aturan produksi dalam BNC :
S  CA ; S  P1B ; P1  a
A  a ; S  P2P3 ; P2  b
B  BC ; B  AP2 ; P3  c
C  b ; C  P1B
109
Contoh lain CFG :
S  aAB │ ch │ CD
A  dbE│eEC
B  ff│DD
C  ADB│aS
D  i
E  jD
Aturan produksi yang sudah ada dalam BNC
S  CD
B  DD
D  i
110
Penggantian aturan produksi
S  aAB => S  P1P2
S  ch => S  P3P4
A  dbE => A  P5P6
A  eEC => A P8P9
B  ff => B  P10 P10
C  ADB => C AP11
C  aS => C P1 S
E  jD => EP12 D
111
Terbentuk A.P baru : Hasil akhir dalam BNC
P1  a S  CD
P2  AB B  DD
P3  c D  i
P4  h S  P1 P2
P5  d S  P3 P4
P6  P7 E A  P5 P6
P7  b A  P8 P9
P8  e B  P10 P10
P9  EC C  A P11
P10  f C  P1 S
P11  DB
P12  j
112
12.3. Algoritma CYK Untuk CFG
“ Tugas Mandiri Umum “.
Soal-Soal Modul – 12
Transformasikan CFG berikut ke dalam BNC :
1. S  aSaA│ A
A  abA│b
2. S  abAB
A  bAB│Ɛ
B  BAa│A │Ɛ
113
Modul – 13
PENGHILANGAN REKURSIF KIRI
13.1. Aturan Produksi Rekursif
Aturan produksi yang rekursif memiliki ruas kanan ( hasil
produksi ) yang memuat simbol variabel pada ruas kiri.
Sebuah aturan produksi dalam bentuk :
A  β A
Merupakan aturan produksi yang rekursif kanan
β = ( V U T )* atau kumpulan simbol variabel dan
terminal
Contoh aturan produksi yang rekursif kanan
S  dS
B  adB
114
Contoh penurunan sebuah CFG yang rekursif kiri
S  aAc
A  Ab │Ɛ Gambarkan !!!.
13.2. Tahapan penghilangan Rekursif Kiri
1. Pisahkan aturan produksi yang rekursif kiri dan yg tidak.
Aturan produksi yang rekursif kiri :
A  Aα1│ Aα2│Aα3│ Aα4│…… Aαn
Aturan produksi yang tidak rekursif kiri termasuk Ɛ
A  β1│ β2│ β3│…… βn
2. Dari situ kita tentukan α1 ,α2 ,α3 …αn dan β1 ,β2,β3 … βn
dari setiap aturan produksi yang memiliki simbol ruas
kiri yang sama.
3. Lakukan penggantian aturan produksi yang rekursif kiri
menjadi sebagai berikut :
115
1. A  β1 Z│ β2 Z│ β3 Z│…… βn Z.
2. Z  α1│ α2│α3│ α4│…… αn
3. Z  α1 Z│ α2 Z│α3 Z│ α4 Z│…… αn Z
Penggantian diatas dilakukan untuk setiap aturan
produksi dengan simbol ruas kiri yang sama. Bisa
muncul simbol variabel baru Z1, Z2, Z3 , …… Zn
dan seterusnya , sesuai banyaknya variabel yang
menghasilkan produksi yang rekursif kiri.
4. Hasil akhir merupakan aturan produksi pengganti
ditambah dengan aturan produksi semula yang tidak
rekursif kiri
Dapat dilihat pada diagram tahapan-tahapan
penghilngan rekursif kiri.
116
Gambar 13.2. : Tahapan Penghilangan Rekursif Kiri
Aturan Produksi
yg tidak rekursif
kiri
CFG
mengandung
aturan
produksi yang
rekursif kiri
Aturan
produksi yang
rekursif kiri
Lakukan
penggantian,
munculkan
aturan
produksi baru
dan simbol
variabel baru
CFG bebas
dari aturan
produksi yang
rekursif kiri
117
Contoh Tata bahasa bebas konteks :
S  Sab │ aSc│ dd│ ff │Sbd
Pertama-tama kita lakukan pemisahan aturan produksi
S  Sab │Sbd ; rekursif kiri
Dari situ kita tentukan : untuk simbol ruas kiri
S : α1 = ab , α2 = bd
Yang tidak rekursif kiri S : β1 = aSc , β2 = dd , β3 == ff
Dilakukan penggantian aturan produksi rekursif kiri :
Untuk yang memiliki simbol ruas kiri S :
S  Sab │Sbd , digantikan oleh :
1. S  aScZ1 │ddZ1 │ffZ1
2. Z1  ab │bd
3. Z1  ab Z1 │bd Z1
118
Hasil akhir setelah penghilangan rekursif kiri :
S  aSc │dd │ff
S  aScZ1 │ddZ1 │ffZ1
Z1  ab │bd
Z1  ab Z1 │bd Z1
Pada kasus diatas S adalah satu-satunya simbol
variabel yang menghasilkan produksi rekursif kiri.
Contoh lain : terdapat CFG :
S  Sab │Sb │cA
A  Aa │a│bd
Yang pertama-tama kita lakukan pemisahan aturan
produksi yang rekursif kiri.
S  Sab │Sb
A  Aa
119
Dari situ kita tentukan untuk simbol ruas kiri :
S : α1 = ab , α2 = b ; A : α3 = a
Aturan produksi yang tidak rekursif kiri :
S  cA
A  a│bd
Dari situ kita dapatkan :
Untuk simbol ruas kiri S : β1 = cA ; A : β1 = a , β2 = bd
Kita lakukan penggantian aturan produksi yang rekursif
kiri : Untuk yang memiliki simbol ruas kiri S :
S  Sab │Sb , digantikan oleh
1. S  cAZ1
2. Z1  ab│b
3. Z1  abZ1│bZ1
120
Untuk yang memiliki simbol ruas kiri A :
A  Aa , diganti oleh :
1. A  aZ2 │bdZ2
2. Z2  a
3. Z2  aZ2
Hasil akhir penghilangan rekursif kiri adalah :
S  cA
A  a│bd
S  cAZ1
Z1  ab│b
Z1  abZ1│bZ1
A  aZ2 │bdZ2
Z2  a
Z2  aZ2
121
Soal-soal Modul – 13
Lakukan penghilangan rekursi kiri :
1. A  AbAB │Ɛ
B  BAa │A│Ɛ
2. S  SBa │Ab
A  Sa │AAb │Ɛ
B  Sb │BBa│Ɛ
3. S  SSC │SSb │abg
B abc│BSb │BCd
C  ab
122
Modul – 14
BENTUK NORMAL GREIBACH ( BNG )
14.1. Pengertian BNG
Bentuk normal Greibach merupakan bentuk normal yang
memiliki banyak konsekuensi teoritis dan praktis. Dalam BNG
dibatasi posisi munculnya terminal-terminal dan variabel-
variabel. Suatu tata bahasa bebas konteks dikatakan dalam
BNG / Greibach Normal Form (GNF), jika setiap aturan
produksinya ada dalam bentuk :
A  aα
A = simbol terminal ( tunggal ), a ϵ T
α = rangkaian simbol-simbol variabel ( V* )
atau kata lain, suatu cfg dalam BNG bila hasil produksinya (
ruas kanan ) diawali dengan simbol terminal, selanjutnya
dapat diikuti dengan rangkaian simbol variabel.
123
Contoh CFG dalam BNG :
S  a│aAB
A  aB
B  cS
Untuk dapat diubah ke dalam BNG, tata bahasa semula
harus memenuhi syarat :
• Sudah dalam bentuk normal Chomsky ( BNC ).
• Tidak bersifat rekursif kiri.
• Tidak menghasilkan ε.
Terdapat dua cara pembentukan BNG, yaitu melalui
subtitusi dan perkalian matrik. Pada bagian berikutnya
dibahas kedua cara tersebut.
124
14.2. Pembentukan BNG Dengan Substitusi.
Secara umum langkah-langkah untuk mendapatkan
Bentuk Normal Greibach :
1. Tentukan urutan simbol-simbol variabel yang ada dalam
tata bahasa. Misalkan terdapat m variabel dengan
urutan A1, A2, ….., Am.
2. Berdasarkan urutan simbol yang ditetapkan pada
langkah (1) seluruh aturan produksi yang ruas
kanannya diawali dengan simbol variabel dapat
dituliskan dalam bentuk : Ah  Aiγ
Dimana h < > I ( rekursif kiri sudah dihilangkan ), γ
dapat berupa simbol-simbol variabel
a. Jika h < I, aturan produksi ini sudah benar ( tidak
perlu diubah ).
b. Jika h > I, aturan produksi belum benar. Lakukan
substitusi berulang-ulang terhadap Ai
125
( Ganti Ai pada produksi ini dengan ruas kanan produksi
dari variabel Ai ) sehingga suatu saat diperoleh produksi
dalam bentuk : Ah  Apγ ( dimana h ≤ p )
• Jika h = p , lakukan penghilangan rekursif kiri
• Jika h < p aturan produksi sudah benar.
3. Jika terjadi penghilangan rekursif kiri pada tahap 2b,
sejumlah simbol variabel baru yang muncul dari operasi
ini dapat disisipkan pada urutan variabel semula dimana
saja asalkan ditempatkan tidak sebelum Ah ( dikiri ).
4. Setelah langkah 2 dan 3 dikerjakan maka aturan-aturan
produksi yang ruas kanannya dimulai simbol variabel
sudah berada dalam urutan yang benar.
Ax  Ayγ ( dimana x < y )
Produksi yang lain ada dalam bentuk :
126
Ax  Ay ( a = simbol terminal )
Bx  γ
Bx = simbol variabel baru yang muncul sebagai akibat
dari operasi penghilangan rekursif kiri.
5. BNC diperoleh dengan cara melakukan subtitusi mundur
mulai dari variabel Am, lalu Am-1, Am-2, .. Dengan cara
ini aturan produksi dalam bentuk : Ax  Ay dapat diubah
sehingga ruas kanannya dimulai dengan simbol terminal
6. Produksi yang dalam bentuk ; Bx  γ juga dapat diubah
dengan cara substitusi seperti pada langkah 5.
Contoh CFG dalam bentuk normal Chomsky dan
memenuhi syarat untuk diubah ke BNC. Simbol awal
adalah S :
127
S  CA
A  a│d
B  b
C  DD
D  AB
Kita tentukan urutan simbol variabel, misalnya S , A, B,
C , D ( S <A<B<C<D ). Perhatikan : urutan tersebut
boleh anda tentukan sendiri, buatlah urutan sedemikian
rupa sehingga memudahkan untuk proses selanjutnya.
Kita periksa aturan produksi yang simbol pertama pada
ruas kanan adalah simbol variabel, apakah sudah
memenuhi ketentuan urutan variabel :
• S  CA ( sudah memenuhi karena S < C )
• C  DD ( sudah memenuhi karena C < D )
128
• D  AB ( sudah memenuhi karena D > A ).
yang belum memenuhi urutan yang telah kita tentukan
adalah : D  AB, karena ruas kiri > simbol pertama ruas
kanan. Maka kita lakukan substitusi pada simbol variabel
A, Aturan produksi menjadi D  aB │dB
Setelah semua aturan produksi memenuhi ketentuan
urutan variabel, lakukan substitusi mundur pada aturan
produksi yang belum dalam BNG ( ‘ => dibaca menjadi’ )
• C  DD => C  aBD │dBD
• S  CA => S  aBDA │dBDA
Perhatikan substitusi mundur dimulai dari aturan
produksi yang memiliki ruas kiri dengan urutan variabel
paling akhir ( khusus diatas : S < A < B < C < D , maka C
lebih dulu disubstitusikan daripada S )
129
Hasil akhir aturan produksi yang sudah dalam BNG :
S  aBDA │dBDA
A  a│d
B  b
C  aBD │dBD
D  aB │dB
Perhatikan : Setiap substitusi kita lakukan pada simbol
variabel pertama pada ruas kanan ( pada aturan
produksi yang belum dalam BNG tentunya ).
Prinsipnya :
• Biarkan aturan produksi yang sudah dalam BNG.
• Tentukan pengurutan simbol variabel, berdasarkan
kondisi aturan produksi yang ada, buatlah urutan s.r.s.
untuk memudahkan proses selanjutnya. Mulailah terlebih
dahulu dari simbol awal.
130
• Lakukan perubahan pada aturan produksi yang belum
memenuhi ketentuan aturan tersebut dan bila perlu
selama proses itu dapat dilakukan substitusi dan
penghilangan rekursif kiri.
• Lakukan substitusi mundur s.r.s. semua aturan produksi
diawali dengan tepat sebuah simbol terminal. Proses
substitusi mundur dimulai dari aturan produksi dengan
urutan paling akhir.
• Lakukan substitusi mundur juga pada aturan produksi
baru yang muncul sebagai hasil penghilangan rekursif
kiri.
131
Contoh lain ( dengan simbol awal A ) :
A BC
B CA│b
C  AB │a
Kita tentukan urutan simbol : A,B,C ( A < B < C )
A BC ( sudah memenuhi kriteria karena A < B )
B CA ( sudah memenuhi kriteria karena B < C )
C  AB ( Padahal C > A sehingga harus diubah )
Pengubahan C  AB :
C  AB => C  BCB => C  CACB │abCB
C  CACB, Lakukan penghilangan rekursif kiri menjadi :
• C  bCBZ1 │aZ1
• Z1  ACB
• Z1  ACBZ
132
Kita lihat seluruh hasil produksi dari variabel C, sudah
dalam Bentuk Normal Greibach :
C  bCBZ1 │aZ1 │bCB│a
setelah semua aturan produksi sudah memenuhi
ketentuan urutan variabel, lakukan substitusi mundur :
B CA => B  bCBZ1 a│aZ1 A│bCBA│aA
A BC => A  bCBZ1 AC│aZ1 AC│bCBAC│aAC │bC
Selanjutnya lakukan pula substitusi pada aturan produksi
dengan variabel baru yang terbentuk, pd contoh ini Z1 :
Z1  ACB => Z1  bCBZ1 ACCB│aZ1 ACCB │
bCBACCB│aACCB │bCCB
Z1  ACB Z1 => Z1  bCBZ1 ACCB Z1 │aZ1 ACCB Z1
│ bCBACCB Z1 │aACCB Z1 │bCCB Z1
133
Hasil akhir aturan produksi dalam BNG :
Z1  ACBZ1  Z1  bCBZ1 ACCB Z1 │aZ1
ACCB Z1 │ bCBACCB Z1 │aACCB Z1 │bCCB Z1
Z1  ACB Z1  Z1  bCBZ1 ACCB Z1 │aZ1
ACCB Z1 │ bCBACCB Z1 │aACCB Z1 │bCCB Z1
134
Modul – 15
PUSH DOWN AUTOMATA ( PDA )
15.1. Mekanisme kerja PDA.
PDA merupakan mesin automata dari bahasa bebas
konteks ( CFG ). Bila sebuah FSA mempunyai
kemampuan “ memori “ yang terbatas, pada automata
Push Down atau PDA didefinisikan sebuah tempat
penyimpanan yang tidak terbatas berupa stack/
tumpukan.
Stack adalah kumpulan dari elemen-elemen sejenis
dengan sifat penambahan elemen dan pengambilan
elemen melalui suatu tempat yang disebut Top of Stack (
puncak stack ) dengan aturan pengisian LIFO ( Last In
First Out ). Pengambilan elemen dari stack dinyatakan
dengan operasi Pop, sedangkan memasukan elemen ke
dalam stack dengan operasi Push.
135
Setiap elemen stack bisa memuat satu simbol, yang
pada PDA disebut sebagai simbol Stack.
Contoh sebuah Stack :
Bila dilakukan operasi Pop, maka
kondisi stack menjadi :
Top Stack 
Bila dilakukan operasi Push B, maka kondisi stack
menjadi :
Top Stack 
A
D
E
E
D
E
D
B
136
Sebuah Push Down Automata di nyatakan dalam 7-tupel
M = ( Q,Σ,Γ,∆,S,F,Z ) , dimana :
Q = himpunan state
Σ = himpunan simbol input
Γ = simbol-simbol tumpukan/ stack
∆ = fungsi transisi
S = state awal , S ϵ Q
F = himpunan final state, F subset Q
Z = simbol awal tumpukan/ top srack, Z ϵ Γ
Dari kompunen diatas bisa kita lihat :
• Definisi untuk : Q, Σ,S,F sama dengan yang ada pada
finite state automata.
• Tupel baru disitu adalah : Γ dan Z yang berhubungan
dengan stack.
137
∆ memiliki kemiripan dengan δ pada finite state
automata, dengan beberapa perbedaan ( akan
dijelaskan nanti ).
PDA dapat dianggap sebagai FSA yang dilengkapi
stack. Sebuah PDA yang menerima suatu input, selain
dapat berpindah state juga bisa melakukan operasi pada
stack. Kondisi/ konsfigurasi PDA pada suatu saat
dinyatakan dengan state dan stack.
Pada PDA terdapat juga 2 jenis transisi ( ∆ ). Yang
pertama memakai simbol input. Bergantung pada simbol
input, simbol pada top stack dan state, terdapat
sejumlah pilihan yang mungkin. Setiap pilihan terdiri dari
state berikutnya dan simbol-simbol ( bisa satu, beberapa
atau kosong ) untuk mengganti simbol pada top stack.
138
Penggantian simbol pada top stack bisa berupa
Push, untuk satu atau beberapa simbol, bisa berupa
pop, untuk simbol kosong. Setelah membuat pilihan,
kemudian PDA membaca simbol input berikutnya :
Jenis transisi kedua biasa disebut transisi – Ɛ, mirip
yang pertama, kecuali dilakukan tanpa membaca simbol
input. Transisi ini memungkinkan PDA memanipulasi isi
stack atau berpindah state tanpa membaca simbol input.
Bahasa yang diterima oleh suatu PDA bisa berupa
semua himpunan input, yang mana urutan
pergerakannya bisa menyebabkan PDA mengosongkan
stack. PDA ini dapat disebut PDA yang melakukan
penerimaan dengan stack kosong atau PDA null stack.
Cara lain adalah dengan melakukan mekanisme
seperti bagaimana automata berhingga menerima input,
yaitu dengan menentukan satu atau beberapa state, dan
bahasa yang diterima adalah himpunan semua input
139
pilihan transisinya menyebabkan PDA mencapai state
akhir, biasa disebut PDA final state.
Contoh sebuah PDA : Memiliki fungsi transisi berikut :
Q = { q1,q2 } ∆ (q1, Ɛ, Z ) = { (q2, Z) }
Σ = { a,b } ∆ (q1, a, Z ) = { (q1, AZ) }
Γ = { A,B,Z } ∆ (q1, b, Z ) = { (q1, BZ) }
S = q1 ∆ (q1, a, A) = { (q1, AA) }
Z = Z ∆ (q1, b, A ) = { (q1, Ɛ) }
F = { q2 } ∆ (q1, a, B ) = { (q1, Ɛ) }
∆ (q1, b, B ) = { (q1, BB) }
Kita bisa membaca fungsi transisi tersebut sebagai
berikut : ∆ (q1, a, Z ) = { (q1, AZ) }
mesin dengan konsfigurasi :
140
state q1 dan top stack Z membaca input ‘ a ‘
Konsfigurasi menjadi :
state q1 push A ke stack, A menjadi top stack
∆ (q1, b, Z ) = { (q1, Ɛ) }
mesin dengan kosfigurasi :
state q1 dan top stack A membaca input ‘ b ‘
Konsfigurasi menjadi :
state q1 A di pop, elemen di bawah A
menjadi top stack
∆ (q1, Ɛ, Z ) = { (q2, Z) }
Z
A
A
Z
141
Mesin dengan kosfigurasi :
state q1 dan top stack Z
serta tanpa membaca input ( Ɛ )
Konsfigurasi menjadi :
State q2, stack tidak berubah
Misal ingin diketahui apakah string ‘abba’ diterima oleh
PDA ini :
Perhatikan : kapan Pop/ Push dilakukan pada stack
berdasarkan fungsi transisinya. Pop dan push untuk
setiap kali transisi pada mesin PDA, dapat dilakukan
pada lebih dari satu simbol.
Konsfigurasi awal mesin : state q1 dan top stack Z,
membaca input ‘a’.
Fungsi transisinya : ∆ (q1, a, Z ) = { (q1, AZ) }
Z
142
Konsfigurasi mesin menjadi : state q1 A di push.
1. Membaca input ‘b’
Fungsi transisinya : ∆ (q1, b, A ) = { (q1, Ɛ) }
konsfigurasi mesin menjadi : state q1 , top stack di pop
Z
A
Z
Z
143
2. Membaca input ‘b’
Fungsi transisinya : ∆ (q1, b, Z) = { (q1, Ɛ) }
konsfigurasi mesin menjadi : state q1 , B di push
3. Membaca input ‘a’
∆ (q1, a, B ) = { (q1, Ɛ) }
Konsfigurasi mesin menjadi : state q1 top stack di pop
Z
B
Z
144
Semua input sudah selesai dibaca
Fungsi transisinya : ∆ (q1, Ɛ, Z ) = { (q2, Z) }
Konsfigurasi mesin menjadi : di state q2 , state q2 berada
dalam F ( final state 0, maka abba, diterima oleh PDA
itu.
Dapat kita lihat PDA diatas termasuk jenis PDA yang
melakukan penerimaan dengan mencapai state akhir.
Z
145
Contoh PDA yang melakukan penerimaan dengan jalan
stack kosong. Konsfigurasi PDA sebagai berikut :
Q = { q1,q2 }
Σ = { 0,1,2 }
Γ = { Z,B,G }
S = q1
Z = Z
F = { Ø }
Perhatikan : Untuk PDA menerima dengan stack kosong,
maka himpunan state akhir dinyatakan sebagai Ø
146
Memiliki fungsi transisi sebagai berikut :
∆ (q1, 0, Z ) = { (q1, BZ) }
∆ (q1, 0, B) = { (q1, BB) }
∆ (q1, 0, G) = { (q1, BG) }
∆ (q1, 2, G ) = { (q2, Z) }
∆ (q1, 2, Z ) = { (q2, B) }
∆ (q1, 2, B) = { (q2, G) }
∆ (q2, 0, B ) = { (q2, Ɛ) }
∆ (q2, Ɛ, Z ) = { (q2, Ɛ) }
∆ (q1, 1, Z ) = { (q1, GZ }
∆ (q1, 1, B) = { (q1, GB) }
∆ (q1, 1, G ) = { (q1, GG) }
∆ (q2, 1, Z ) = { (q2, Ɛ) }
147
Misal ingin diketahui apakah string ‘010’ diterima PDA :
1. Konsfigurasi awal mesin : state q1 stack z, menerima
input ‘ 0 ‘. Fungsi transisinya : ∆ (q1,0, Z ) = { (q1, BZ) }.
Konsfigurasi mesin menjadi : state q1 , B di push.
2. Membaca input ‘ 2 ‘
Fungsi transisinya : ∆ (q1, 2, B ) = { (q2, B) }
Konsfigurasi mesin menjadi state q2, stack ; tetap
Z
B
Z
148
3. Membaca input ‘ 0 ‘.
Fungsi transisinya : ∆ (q2, 0, B ) = { (q2, Ɛ) }
Konsfigurasi mein menjadi : state q2 , B di pop
4. Tanpa membaca input ( Ɛ ).
Fungsi transisinya : ∆ (q2, Ɛ, Z ) = { (q2, Ɛ) }
Konsfigurasi mein menjadi : state q2 , Z di pop
Stack kosong.
Semua input sudah selesai dibaca. Stack kosong, berarti
string tersebut diterima oleh Push Down Automata.
149
15.2. Push Down Automata Untuk Suatu Tata Bahasa
Konteks.
Karena PDA merupakan penerima bahasa-bahasa
bebas konteks, maka untuk suatu bahasa bebas konteks
kita dapat memperoleh sebuh PDA yang menerimanya,
sebaliknya dari bahasa yang diterima oleh sebuah PDA
kita dapat mengetahui suatu tata bahasa bebas konteks.
Sebuh PDA bisa dibuat untuk kumpulan aturan produksi
dari suatu tata bahasa bebas konteks.
Langkah-langkahnya :
a. Definisikan :
Q = { q1,q2 , q3 }
Σ = simbol terminal
S = q1
F = { q2 }
150
Untuk yang berhubungan dengan stack tentukan :
Γ = semua simbol variabel, simbol terminal dan Z simbol
awal stack.
b. Mesin ini dimulai dengan mem-push Z pada top stack.
Pada setiap langkah berikutnya dilakukan salah satu
dari hal berikut :
 Jika top stack dari simbol tumpukan adalah suatu
variabel ( misal A ), kita menggantinya dengahn ruas
kanan dari A, misal A  w , maka kita ganti dengan w.
 Jika top stack dari simbol tumpukan adalah suatu
terminal dan jika ia menyamai simbol masukan
berikutnya, kita pop dari tumpukan .
c. Berdasarkan aturan diatas kita dapat mengkonstruksi
empat tipe transisi :
151
1. ∆ (q1, Ɛ, Z ) = { (q2, SZ) }, untuk mem-push simbol awal
(S) ke stack.
2. ∆ (q2, Ɛ, A) = { (q2, w) } , A  w adalah sebuah produksi
dalam CFG untuk semua variabel A.
3. ∆ (q2, a, a ) = { (q2, Ɛ) } untuk setiap simbol terminal (
untuk mempop perbandingan terminal yang sama ).
4. ∆ (q2, Ɛ, Z ) = { (q3, Z) } , bila selesai membaca semua
input dan top stack adalah Z, berarti string inout sukses
diterima oleh PDA (q3, state akhir ).
152
Contoh penerapan, misalkan sebuah tata bahasa bebas
konteks dengan simbol awal D :
D __> aDa │bDb │c
Dapat dikonstruksi PDA nya :
Fungsi transisinya :
Q = { q1,q2 ,q3 } ∆ (q1, Ɛ, Z ) = { (q2, DZ) }
Σ = { a,b,c } ∆ (q2, Ɛ, D ) = { (q2, aDa),
q2, bDb, q2, c }
Γ = { D,a,b,c,Z} ∆ (q2,a, a ) = ∆(q2,c,c) = {(q2, Ɛ)}
S = q1 ∆ (q2, Ɛ, Z ) = { (q3, Z) }
F = { q3 }
153
Dari aturan produksi yang ada kita lihat CFG tersebut
bisa menurunkan untai ‘aca’ sebagai berikut :
D => aDa => aca
Maka PDA diatas juga harus mampu menerima untai
tersebut. Kita coba periksa :
Konsfigurasi awal mesin : state q1, top stack Z , dapat
menerima input ( Ɛ ).
Fungsi transisinya : ∆ (q1, Ɛ, Z ) = { (q2, DZ) }
Konsfigurasi mein menjadi : state q2 , D di push
D
Z
154
1. Tanpa menerima input ( Ɛ ).
Fungsi transisinya : ∆ (q2, Ɛ, D ) = { (q2, aDa) }
Konsfigurasi mein menjadi : state q2, pop top stack, push
‘aDa’
Menerima input ‘ a ‘
Fungsi transisinya : ∆ (q2, a, a ) = { (q2, Ɛ) }
Konsfigurasi mein menjadi : state q2 , pop top stack
D A
Z
Z
D
a
a
155
2. Tanpa menerima input ( Ɛ ).
Fungsi transisinya : ∆ (q2, Ɛ, D ) = { (q2, c) }
Konsfigurasi mein menjadi : state q2, pop top stack, push
‘ c ’
3. Menerima input ‘ a ‘
Fungsi transisinya : ∆ (q2, a, a ) = { (q2, Ɛ) }
Konsfigurasi mein menjadi : state q2 , pop top stack
Z
A
C
Z
A
156
4. Tanpa Menerima input ‘ a ‘
Fungsi transisinya : ∆ (q2, Ɛ, Z ) = { (q3, Z) }
Konsfigurasi mein menjadi : state q3
Tidak ada transisi lagi dari q3 , karena q3 state akhir dan
semua input sudah selesai dibaca, maka menandakan
untai ‘ aca ‘ diterima oleh Push Down Automata.
Perhatikan :
Bila perlu lakukan pengubahan CFG ke BNG lebih
dahulu untuk memudahkan mengkonstruksi PDA – nya.
Z
157
15.3. Deskripsi Seketika Pada Mesin PDA
Tahapan transisi no (1) sampai no (7) pada contoh
diatas dapat pula dinyatakan dalam suatu notasi yang
disebut deskripsi seketika ( instantaneous description ).
Deskripsi seketika tersebut digunakan untuk
menyatakan secara formal kosfigurasi mesin PDA pada
suatu saat. Perubahan dari suatu kondisi ke berikutnya
dipisahkan dengan tanda ‘ │ ─ ‘. Kosfigurasi pada suatu
saat dapat dinyatakan dengan triplet : ( q, w, u ).
Dimana q menyatakan state, w adalah string dan u
adalah isi stack dengan simbol terkiri adalah top stack.
Jadi tahapan no (1) – (7) dapat dinyatakan sebagai
berikut :
( qu,aca,Z ) │ ─ ( q2 , aca, DZ ) │ ─ ( q2 , aca, aDaZ ) │
─ ( q2 , ca, DaZ ) │ ─ ( q2 , ca, caZ ) │ ─ ( q2 , a, aZ ) │ ─
( q2 , Ɛ, Z ) │ ─ ( q3 , Ɛ, Z )
158
Pada awalnya memang sulit bagi kita untuk ‘membaca’
suatu PDA dibandingkan FSA yang lebih sederhana.
Jangan kuatir, itulah sebabnya kita memerlukan otomata
untuk melakukan hal-hal yang ‘ sulit ‘ bagi kita.
Gambar 13.1. Beberapa Jenis Push Down Automata.
PDA
DPDA NPDA
NULL STACK FINAL STATE NULL STACK FINAL STACK
159
Bila pada FSA terdapat DFA dan NFA, maka pada
PDA bisa pula digolongkan menjadi yang Deterministic
Push Down Automata ( DPDA ) Dan ( NPDA ). Contoh
PDA yang deterministic adalah PDA diatas ( sub bab
13.2 ), sedang NPDA ada pada contoh di sub bab 13.1.
Itu bisa kita lihat pada Gambar 13.1.
Dari suatu DPDA dapat dilakukan pengubahan ke
NPDA, tetapi dari NPDA tidak dapat diubah menjadi
DPDA. Inilah perbedaan antara PDA dengan FSA.
Bahasa-bahasa yang diterima oleh DPDA bisa disebut
bahasa bebas konteks deterministic.
Keterkaitan antara keduanya dapat dilihat pada gambar
13.2.
160
Gambar 15.2. : Kedudukan Bahasa Bebas Konteks
Determistic
Context Free
Language
Deterministi
c Context
Free
Language
161
15.4. Ekivalensi Final State PDA Dan Null Stack PDA
Dapat dilakukan pengubahan Final state PDA ke
Null stack PDA dan sebaliknya. Misalkan kita memiliki
M1 adalah Final state dengan konsfigurasi :
M1 = ( Q, Σ, Γ, ∆, S, F, Z )
Dapat diperoleh pada Null stack M2 , dengan
menambahkan : simbol stack baru yang tidak dikenal M1
sebut saja X. Simbol baru ini merupakan simbol stack
awal dari mesin M2 . Jika stack hanya berisi simbol X
berarti menurut M1 stack tersebut ‘ kosong ‘. Hal ini
diperlukan untuk mencegah terjadinya kondisi bahwa
stack dalam keadaan benar-benar ‘kosong’, padahal
mesin belum mencapai state akhir. State baru qs yang
akan merupakan state awal dari M2 dan state baru q1
yang dipakai M2 untuk menghapus isi stack yang tersisa
jika M1 selesai beroperasi.
162
Konsfigurasi M2 :
M2 = ( Q U { qs, qf }, Σ, Γ, U { X }, ∆’, qs, Ø, X )
Selanjutnya kita tentukan ‘ kelakuan ‘ dari M2 , yaitu
fungsi transisinya (∆’ ) :
M2 bekerja dengan state awal qs dan simbol awal stack
X, maka kita buat transisi untuk berpindah ke state awal
semula ( misal S ) dan mem-push Z sebagai top stack :
∆’( qs, Ɛ, X ) = { ( S, ZX ) }
Selanjutnya M2 akan menirukan kelakuan M1 :
∆’( q, α, P ) = ∆ (q, α, P ) , untuk setiap q ϵ Q, untuk
setiap α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ
Bila mencapai ‘ final state di M1 maka mesin M2 akan
berpindah ke qf
163
∆( q, Ɛ, P ) = { ( qf, P ) } untuk setiap q ϵ F, untuk setiap
P ϵ ( Γ U{ X } ). Selanjutnya lakukan pop semua elemen :
∆’( qf, Ɛ, P ) = { (qf, P ) } untuk setiap P ϵ ( Γ U{ X } ).
Sebagai contoh, misalkan Final State Push Down
Automata dengan konsfigurasi :
Q = { q1,q2 ,q3 }
Σ = { a,b,c }
Γ = { D,a,b,c,Z, X }
S = q1
F = { q3 }
Z = Z
Diubah ke null stack PDA dengan melakukan
pengubahan :
164
Q’ = { q1,q2 ,q3, qs, qf }
Σ = { a,b,c }
Γ’ = { D,a,b,c,Z, X }
S’ = qs
F’ = Ø
Z’ = X
Selain fungsi transisi yang sudah ada
∆ (q, α, P ) = ∆ (q, α, P ) untuk setiap q ϵ Q, untuk setiap
α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ , kita tambahkan fungsi
transisi baru sebagai berikut :
Transisi untuk berpindah ke state awal semula :
∆’ (qs, Ɛ, X ) = { (q1, ZX) }
Transisi dari final state’ dimesin semula untuk berpindah
ke qf :
165
∆’ (q3, Ɛ, D ) = { (qf, D) }, ∆’ (q3, Ɛ, a ) = { (qf, a) },
∆’ (q3, Ɛ, b ) = { (qf, b) },
∆’ (q3, Ɛ, c ) = { (qf, c) } , ∆’ (q3, Ɛ, Z ) = { (qf, Z) } ,
∆’ (q3, Ɛ, X ) = { (qf, X) }
Transisi untuk melakukan pop semua elemen saat
mencapai state qf :
∆’ (qf, Ɛ, D) = { (qf, Ɛ) } , ∆’ (qf, Ɛ, a ) = { (qf, Ɛ) } ,
∆’ (qf, Ɛ, b ) = { (qf, b) } , ∆’ (qf, Ɛ, c ) = { (qf, Ɛ) } ,
∆’ (qf, Ɛ, Z ) = { (qf, Ɛ) } , ∆’ (qf, Ɛ, X ) = { (qf, Ɛ) }
Langkah-langkah untuk melakukan perubahan null stack
PDA ke Final state PDA.
Misalkan saja kita memiliki M1 adalah PDA null stack
dengan kosfigurasi : M1 = ( Q, Σ, Γ, ∆, S, Ø, Z )
166
Dapat diperoleh PDA final state M2 dengan
menambahkan : simbol stack baru yang tidak dikenal
oleh M1, sebut saja X. Simbol baru ini merupakan simbol
awal stack awal dari mesin M2. Simbol ini berguna
sebagai sentinel, bila melihat X maka M2 dapat
mengetahui jika stack kosong. State baru qs yang akan
merupakan state awal dari M2 dan state baru qf yang
merupakan state final dari M2.
Konsfigurasi M2 :
M2 = ( Q U { qs, qf }, Σ, Γ U { X }, ∆’, qs, { qf } , X )
Selanjutnya kita tentukan kelakukan dari M2, yaitu fungsi
transisinya ( ∆’ ) : M2 bekerja dengan state awal qs dan
simbol awal stack X, maka dibuat transisi berpindah ke
state awal semula ( misal S ) dan mem-push Z sebagai
top stack : ∆’ (q2, Ɛ, X ) = { (qf, X) }
167
Selanjutnya M2 akan menirukan kelakuan M1 :
∆’ (q1, α, P ) = ∆ (q1, α, P ) untuk setiap q ϵ Q, untuk
setiap α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ .
Jika M2 menemukan simbol X, M2 menganggap stack
kosong, maka berpindah ke state final qf :
∆’ (q2, Ɛ, X ) = { (qf, X) } untuk setiap q ϵ Q
Sebagai contoh, misalkan kita memiliki null stack PDA
dengan kosfigurasi :
Q = { q1,q2 }
Σ = { 0, 1, 2 }
Γ = { Z, B, G}
S = q1
F = Ø
Z = Z
168
Diubah ke final state PDA dengan melakukan
pengubahan :
Q’ = { q1,q2 ,qs, qf }
Σ = { 0, 1, 2 }
Γ’ = { Z, B, G, X}
S’ = qs
F’ = { qf }
Z’ = X
Selain fungsi transisi yang sudah ada (∆’ (q, α, P ) = ∆
(q, α, P ) untuk setiap q ϵ Q, untuk setiap α ϵ ( Σ U Ɛ ),
untuk setiap P ϵ Γ . Kita tambahkan fungsi transisi baru
sebagai berikut :
Transisi untuk berpindah dari state ke state final qf bila
menemui top stack adalah X.
169
∆’ (q1, Ɛ, X ) = { (qf, X) } , ∆’ (q2, Ɛ, X ) = { (qf, X) }
perhatikan : Pada Final state PDA, kita tidak
berkepentingan dengan kondisi stack setelah mencapai
state akhir, sehingga kita tidak perlu membuat transisi
untuk mengosongkan stack.
170
Soal-Soal Modul – 15
1. Konstruksikan PDA yang menerima bahasa dengan tata
bahasa bebas konteks berikut :
S  aAA
A  aS │bS│a
2. Tentukan aturan produksi untuk tata bahasa bebas
konteks yang diterima oleh PDA dengan konsfigurasi :
Q = { q0,q1 }
Σ = { 0, 1 }
Γ = { X, Z}
S = q0
F = Ø
Z = Z
171
memiliki fungsi transisi sebagai berikut :
∆ (q0, 1, Z ) = { (q0, XZ) }
∆ (q0, 1, X ) = { (q0, XX) }
∆ (q0, 0, X ) = { (q1, X) }
∆ (q0, Ɛ, Z ) = { (q0, Ɛ) }
∆ (q1, 1, X ) = { (q1, Ɛ) }
∆ (q1, 0, Z0 ) = { (q0, Z) }
3. Buktikan apakah PDA diatas menerima string input
‘ 001100 ‘ ?.
4. Mengapa pada PDA yang melakukan penerimaan
dengan stack kosong, himpunan state akhir = Ø
172
DAFTAR PUSTAKA
• Alfred J. Aho & Jeffrey D. Ullman, The Theory of Parsing,
Translation and Compiling Vol I : oarsing, Prentice Hall,
1972.
• Dean Kelly, Otomata dan Bahasa-Bahasa Formal,
Sebuah Pengantar, Prenhalindo, 1999.
• Firrar Utdirartatmo, Teori Bahasa dan Otomata, J & J
Learning, Yogyakarta, 2001.
• John E. Hopcroft and Jeffrey D. Ullman, Introduction To
Automata Theory, Languages and Computation, addison
Wessley Inc, 1979.
• Peter Linz, An Introduction to Formal languages and
Automata, DC Heath and Company, 1990.
173

More Related Content

What's hot

Bahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfBahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfPawit Ngafani
 
Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03KuliahKita
 
4 rekursi
4 rekursi4 rekursi
4 rekursiYu Nita
 
Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02KuliahKita
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskritsaid zulhelmi
 
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptAljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptrahmawarni
 
Organisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasiOrganisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasidaru2501
 
Metodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi Informasi
Metodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi InformasiMetodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi Informasi
Metodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi InformasiAlbaar Rubhasy
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi GraphZaldy Eka Putra
 
implementasi sistem file
implementasi sistem fileimplementasi sistem file
implementasi sistem fileHabibi Habibi
 
Pertemuan 6 sifat sifat bahasa Reguler
Pertemuan 6 sifat sifat bahasa RegulerPertemuan 6 sifat sifat bahasa Reguler
Pertemuan 6 sifat sifat bahasa RegulerDhan junkie
 
Sejarah perkembangan komputer
Sejarah perkembangan komputerSejarah perkembangan komputer
Sejarah perkembangan komputerDemi Yurfina
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan PembuktianFahrul Usman
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Sukma Puspitorini
 

What's hot (20)

Bahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdfBahan ajar alin 2 rev 2014 pdf
Bahan ajar alin 2 rev 2014 pdf
 
Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03
 
4 rekursi
4 rekursi4 rekursi
4 rekursi
 
Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskrit
 
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptAljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
 
Organisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasiOrganisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasi
 
Metodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi Informasi
Metodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi InformasiMetodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi Informasi
Metodologi Penelitian pada Bidang Ilmu Komputer dan Teknologi Informasi
 
Ai 3
Ai 3Ai 3
Ai 3
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
implementasi sistem file
implementasi sistem fileimplementasi sistem file
implementasi sistem file
 
System Request
System RequestSystem Request
System Request
 
Pertemuan 6 sifat sifat bahasa Reguler
Pertemuan 6 sifat sifat bahasa RegulerPertemuan 6 sifat sifat bahasa Reguler
Pertemuan 6 sifat sifat bahasa Reguler
 
Paralel prosesor
Paralel prosesorParalel prosesor
Paralel prosesor
 
2 alfabet dan string
2 alfabet dan string2 alfabet dan string
2 alfabet dan string
 
Sejarah perkembangan komputer
Sejarah perkembangan komputerSejarah perkembangan komputer
Sejarah perkembangan komputer
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 
SLIDE KE:5 NFA
SLIDE KE:5 NFASLIDE KE:5 NFA
SLIDE KE:5 NFA
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019
 

Similar to Ho automata

Ekspresi Reguler(5).pptx
Ekspresi Reguler(5).pptxEkspresi Reguler(5).pptx
Ekspresi Reguler(5).pptxssuser4ee77f
 
Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6nhiyabelle
 
Teori bahasaautomata
Teori bahasaautomataTeori bahasaautomata
Teori bahasaautomataas na
 
REGULAR LANGUAGE
REGULAR LANGUAGEREGULAR LANGUAGE
REGULAR LANGUAGEDhan junkie
 
3. bhsregularfix
3. bhsregularfix3. bhsregularfix
3. bhsregularfixyuster92
 
P 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik KompilasiP 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik Kompilasiahmad haidaroh
 
logika matematika
logika matematika logika matematika
logika matematika Erna S
 
Konsepsentral - Materi 2 - TBO
Konsepsentral - Materi 2 - TBOKonsepsentral - Materi 2 - TBO
Konsepsentral - Materi 2 - TBOahmad haidaroh
 
fdokumen.com_ppt-baris-deret-aritmatika.pptx
fdokumen.com_ppt-baris-deret-aritmatika.pptxfdokumen.com_ppt-baris-deret-aritmatika.pptx
fdokumen.com_ppt-baris-deret-aritmatika.pptxTamtowiYahya1
 
Regular expressions 2
Regular expressions 2Regular expressions 2
Regular expressions 2Dhan junkie
 
Bab ix ruas garis berarah
Bab ix ruas garis berarahBab ix ruas garis berarah
Bab ix ruas garis berarahNia Matus
 

Similar to Ho automata (20)

Ekspresi Reguler(5).pptx
Ekspresi Reguler(5).pptxEkspresi Reguler(5).pptx
Ekspresi Reguler(5).pptx
 
Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6Teori bahasa otomata pertemuan 6
Teori bahasa otomata pertemuan 6
 
Teori bahasaautomata
Teori bahasaautomataTeori bahasaautomata
Teori bahasaautomata
 
REGULAR LANGUAGE
REGULAR LANGUAGEREGULAR LANGUAGE
REGULAR LANGUAGE
 
3. bhsregularfix
3. bhsregularfix3. bhsregularfix
3. bhsregularfix
 
P 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik KompilasiP 2 Konsep & Notasi Bahasa - Teknik Kompilasi
P 2 Konsep & Notasi Bahasa - Teknik Kompilasi
 
15023 pr05
15023 pr0515023 pr05
15023 pr05
 
Teori bahasa dan otomata 3
Teori bahasa dan otomata 3Teori bahasa dan otomata 3
Teori bahasa dan otomata 3
 
logika matematika
logika matematika logika matematika
logika matematika
 
Bahasa Regular - P3
Bahasa Regular - P3Bahasa Regular - P3
Bahasa Regular - P3
 
Ekspresi regular
Ekspresi regularEkspresi regular
Ekspresi regular
 
Konsepsentral - Materi 2 - TBO
Konsepsentral - Materi 2 - TBOKonsepsentral - Materi 2 - TBO
Konsepsentral - Materi 2 - TBO
 
ALJABAR LINIER
ALJABAR LINIERALJABAR LINIER
ALJABAR LINIER
 
fdokumen.com_ppt-baris-deret-aritmatika.pptx
fdokumen.com_ppt-baris-deret-aritmatika.pptxfdokumen.com_ppt-baris-deret-aritmatika.pptx
fdokumen.com_ppt-baris-deret-aritmatika.pptx
 
Regular expressions
Regular expressions Regular expressions
Regular expressions
 
Logika matematika1
Logika matematika1Logika matematika1
Logika matematika1
 
Regular expressions 2
Regular expressions 2Regular expressions 2
Regular expressions 2
 
Kalkulus
KalkulusKalkulus
Kalkulus
 
Materi 1-geo
Materi 1-geoMateri 1-geo
Materi 1-geo
 
Bab ix ruas garis berarah
Bab ix ruas garis berarahBab ix ruas garis berarah
Bab ix ruas garis berarah
 

Recently uploaded

Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxherisriwahyuni
 
Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsAdePutraTunggali
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdfShintaNovianti1
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxsudianaade137
 
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...Kanaidi ken
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfmaulanayazid
 
PPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptx
PPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptxPPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptx
PPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptxHeruFebrianto3
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASreskosatrio1
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxarnisariningsih98
 
Edukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajiiEdukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajiiIntanHanifah4
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPSKisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPSyudi_alfian
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024budimoko2
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques  Rousseau.pdfPEMIKIRAN POLITIK Jean Jacques  Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdfMMeizaFachri
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxBambang440423
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxalalfardilah
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxDwiYuniarti14
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxmtsmampunbarub4
 

Recently uploaded (20)

Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
 
Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public Relations
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
 
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
 
PPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptx
PPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptxPPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptx
PPT Materi Jenis - Jenis Alat Pembayaran Tunai dan Non-tunai.pptx
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
 
Edukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajiiEdukasi Haji 2023 pembinaan jemaah hajii
Edukasi Haji 2023 pembinaan jemaah hajii
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPSKisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
Kisi-kisi UTS Kelas 9 Tahun Ajaran 2023/2024 Semester 2 IPS
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques  Rousseau.pdfPEMIKIRAN POLITIK Jean Jacques  Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
 

Ho automata

  • 1. DAFTAR ISI HAL MODUL-00 : Prolog 1 MODUL-01 : Teori Himpunan 5 MODUL-02 : Operasi-Operasi Pada Untai 9 MODUL-03 : Finite State Automata ( FSA ) 20 MODUL-04 : Non Deterministic Finite Automata (NFA) 28 MODUL-05 : Kesetaraan NFA dan DFA 37 MODUL-06 : NFA Dengan ε – Move 44 MODUL-07 : Ekpresi Reguler 56 MODUL-08 : Aturan Produksi 73 MODUL-09 : FSA Dengan Output 80 MODUL-10 : Pohon Penurunan 88 1
  • 2. MODUL-11 : Penyederhanaan CFG 94 MODUL-12 : Bentuk Normal Chomsky ( BNC ) 104 MODUL-13 : Penghilangan Rekursif Kiri 111 MODUL-14 : Bentuk Normal Greibach ( BNG ) 120 MODUL-15 : Push Down Automata ( PDA ) 132 DAFTAR PUSTAKA 173 2
  • 3. 0.1.Latar Belakang, Tujuan FSA Dan ER • Pemikiran Neural Network dan Switching Circuit FSA. • Tool dalam perancangan Leksikal Analyzer. • Pengelompokan karakter dalam “ Token “. • Penggunaan FSA dalam : Text editor, Pattern Matching, sejumlah pemrosesan text dan program file searching dan sebagai konsep matematis untuk aplikasi di disiplin lain seperti Logika. 3
  • 4. DEFINISI-DEFINISI 1. Definisi 1: Teori adalah serangkaian bagian/ variabel, definisi dan dalil yang saling berhubungan yang menghadirkan sebuah pandangan sistematis mengenai fenomena dengan menentukan hubungan antar variabel, dengan maksud menjelaskan fenomena alamnya. 2. Definisi 2 : Teori adalah seperangkat preposisi yang terintegrasi secara siktaksis yang memiliki aturan- aturan tertentu yang dapat dihubungkan secara logis atau dengan lainnya dengan data-data yang diamati dan berfungsi sebagai wahana untuk meramalkan dan menjelaskan fenomena yang diamati ( L. Moeleong ). 4
  • 5. 0.2. Pengertian Bahasa Dan Automata • Bahasa : Adalah pengantar komunikasi baik lisan maupun tulisan, antar satu atau banyak orang ( mahluk )/ alat dengan satu atau banyak orang (mahluk) / alat • Pengertian simbol yang didefinisikan secara formal. • Pengertian string, string kosong dan panjang string. • Pengertian Alphabet, huruf ( Letter ) dan angka ( Digit ). • Pengertian Automata. • Contoh : Misalkan sebuah mesin sederhana yang dapat menerima input kata dalam bahasa Indonesia yang dapat dilihat pada gambar berikut : 5
  • 6. Pada gambar berikut, bila mesin mendapat input string berikut : 1. ada : diterima 2. adu : diterima 3. add : ditolak a Start a d u d q0 q1 q2 q4 q3 q5 6
  • 7. A pioneer of automata theory Alan Turing (1912-1954) 1. Father of computer science 2. English logician 3. Propose Turing machine as a mathematical model of computation 4. Codebreaker for German Enigma machine in World War II. 5. Many other pioneering work, e.g. Turing test 7
  • 8. Historical perspective of Automata theory 1930 Turing machines (A. Turing) 1940 - 1950 Finite state automata (W. McCulloch, W. Pitts, S. Kleene, etc.) Chomsky hierarchy (N. Chomsky) 1960 - 1970 Pushdown automata (A.G. Oettinger, M.P. Schutzenberger) B¨uchi automata over ω-words (J. R. B¨uchi) Rabin tree automata over ω-trees (M. O. Rabin) Tree automata (J. E. Doner, J. W. Thatcher, J. B. Wright, etc.) 1980 - 1990 ω-automata applied to formal verification (M. Vardi, P. Wolper, O. Kupferman, etc.) 2000 - 2010 Automata over unranked trees applied to XML (A. Bruggemann-Klein, M. Murata, D. Wood, F. Neven, etc.) Visibly pushdown automata (R. Alur, P. Madhusudan) 8
  • 9. 0.3. Hirarki Chomsky Definisi 3 : Tata Bahasa adalah sebagai kumpulan dari himpunan-himpunan Variabel, Simbol-Simbol, Terminal, Simbol Awal yang dibatasi oleh aturan produksi. Tabel 1 : 4 Penggolongan bahasa (Hirarki Noam Chomsky) Bahasa Mesin Otomata Batasan-Batasan Produksi Reguler / tipe 3 FSA : DFA dan NFA α adalah sebuah simbol variabel β mak memiliki sebuah simbol var yg bila ada terletak di kanan Bebas Konteks/ Context Free / tipe - 1 Push Down Otomata (PDA) α berupa simbol variabel Context Sensitive / tipe - 2 Linier Bounded Automata │α │ ≤ │β │ Unrestricted / Phase Structure / Natural Language / tipe - 0 Mesin Turing Tidak ada batasan 9
  • 10. MODUL – 01 TEORI HIMPUNAN • Definisi 4 : Alphabet (abjad) adalah himpunan berhingga tak kosong dari simbol-simbol. Contoh : Misalkan Σ = { a,b,c,d } ; a Є Σ , b Є Σ , s Є Σ . • Definisi 5 : Kata (untai/ string) adalah barisan berhingga simbol-simbol dari sebuah alphabet. Contoh : Misalkan Σ adalah abjad, Σ = { e,f,g,h } maka efg adalah kata dari Σ . • Definisi 6 : Bahasa adalah kumpulan dari kata-kata. Contoh : Σ adalah sebuah alphabet ; Σ = { a,b } , maka {a,aa,b,bb,ab,ba,ε} adalah sebuah bhs berdasarkan Σ. • Definisi 7 : Bahasa kosong adalah bhs yang tdk terdiri dari untai-untai ; Notasi = Ø . 10
  • 11. Definisi 8 : Bahasa Universal adalah bahasa yang terdiri dari semua untai berdasarkan abjad Σ, Notasi Σ* . Contoh Σ adalah sebuah abjad ; Σ = { 2 } , maka Σ* = { ε,2,22,222, … } , dimana ε adalah untai kosong { ε } adalah bahasa yang terdiri dari untai kosong “ Epsilon “ ε “ adalah lintasan yang sangat-sangat cepat dan sangat-sangat kecil “. Dalam sistem biner berlaku : 1. ε a = a ε = a untuk sistem perkalian dianggap bernilai satu ( 1 ). 2. ε + b = b + ε = b untuk sistem perjumlahan dianggap bernilai 0 ( nol ). 11
  • 12. 1.1. Operasi-Operasi Pada Untai 1. Panjang ( length ) = banyaknya simbol pada untai. Notasi : │w │ , dimana w merupakan untai dari Σ . Contoh : Σ = { a,b,c } ; w = aba ,maka │w │ = 3 ; │ε │= Ø 2. Concatenation ( perangkaian ) Misal u dan w adalah untai-untai, maka concatenation u dgn w adalah untai yg diperoleh dgn merekatkan untai u dan untai w. Contoh : u = “ Bani “ , w = “ Saleh “ , maka concatenation u dgn w or u.w adalah uw = “ Bani saleh “ , │uw │= │u │+ │w │ 12
  • 13. 3. Eksponensiasi ( Exponentiation ) Misal w sebuah kata berdasarkan Σ , maka ε , jika n = 0 W n = W n-1 , jika n > 0 ; n Є N Contoh : Misalkan w = 21 berdasarkan Σ = { 1,2 } , maka W 0 = ε , w1 = 21 , w2 = 21 , w3 = 2121 … dan seterusnya. 4. Sama Dengan ( Equal ). Misal u dan w untai-untai, u dan w dikatakan sama jika keduanya mempunyai panjang yang sama dan simbol- simbol sama pada posisi yang sama. Notasi ; u = w. 5. Awalan ( prefix ) dan Akhiran ( suffix ). Jika u dan w adalah kata-kata, maka u dikatakan awalan dari w, jika untuk ssuatu kata/ untai y, maka ; 13
  • 14. w = uy ; Contoh : w = abcd . u = ab adalah awalan dari w . ε selalu merupakan awalan dari kata apa saja. 6. Sub untai atau sub string Jika sebuah untai w adalah sub untai atau sub kata dari z, jika untai x dan y Є Z = xwy. 7. Pembalikan ( Reversal ) atau Transpose. Reversal dari suatu kata z merupakan bayangan cermin dari Z. Notasi pembalikan dari W = WR W jika W = ε Definisi 9 : WR = yRa jika W = ay untuk a Є Σ dan y Є Σ * . Contoh : x adalah sebuah untai , X = 2314 XR = (2314)R = (314)R 2 = (14)R 32 = (4)R 132 = (ε) R 4132 = ε 4132 = 4132 14
  • 15. Catatan : jika w dan y adalah untai-untai dan x = wy, maka XR = (wy)R = yRwR Contoh : w = abc dan x = wy ; y = de XR = (abcde)R = edcba (wy)R = yRwR = (de)R(abc)R = edcba XR = (wy)R = y RwR 1.2 Operasi Pada Bahasa 1. Concatenation ( perangkaian ) Definisi 10 : A.B = AB = { xy │xЄA dan yЄB } . ab merupakan bahasa. 2. Eksponensiasi Misalkan A merupakan sebuah bahasa berdasarkan suatu abjad Σ, maka dapat didefinisikan sebagai berikut 15
  • 16. { ε } , jika n = 0 A n = A.A n-1 , jika n ≥ 1 3. Gabuangan ( Union ). A U B = { x │ xЄA atau xЄB } 4. Irisan ( Intersection ). A ∩ B = { x │ xЄA dan xЄB }. 5. Sub bahasa Jika A dan B adalah bahasa-bahasa berdasarkan abjad Σ dan jika semua untai di A ada dalam B, maka A adalah sub bahasa dari B. Notasi : A sub bahasa B B = { bn │n = 0,1,2, …… } ; A sub bahasa B Catatan : L adalah suatu bahasa berdasarkan abjad Σ, maka L adalah sub bahasa dari Σ* atau L sub bahasa Σ* 16
  • 17. 6. Equal ( sama dengan ) A = B jika hanya jika a. A sub bahasa atau sama dengan B dan sebaliknya. A. ( BUC ) = A.B U A.C b. ( B∩C ).A = B.A U C.A 7. Selisih : A – B = { x │ xЄA atau xЄB } 8. Reversal Pembalikan dari sebuah bahasa A adalah : AR = { xR │ xЄA }. Contoh : Misalkan A = { saya, laki } , maka AR = { ayas,ikal } Teorema : ( A.B ) R = BR . AR 17
  • 18. 1.3. Bahasa Reguler Teorema : Untuk suatu abjad Σ , Σ* terhitung secara tak hingga. Definisi 111 : Misal Σ merupakan suatu abjad. Koleksi dari bahasa reguler atas Σ, didefinisikan secara rekursif sbb : a. Ø adalah bahasa reguler. b. { ε } adalah bahasa reguler. c. V a Є Σ , {a} adalah bahasa reguler. jika A dan B adalah bahasa-bahasa reguler maka A U B, A.B dan A* adalah bahasa-bahasa reguler. Definisi 12 : Ekspresi-ekspresi reguler atas abjad didefinisikan secara rekursif sebagai berikut : a. Ø dan ε adalah ekspresi reguler. b. V a Є Σ , a adalah ekspresi reguler. 18
  • 19. c. Jika r dan s adalah ekspresi-ekspresi reguler , maka r U s atau r + s , r . S dan r* adalah ekspresi reguler. Contoh : Σ = {a,b } , Ø dan {ε} adalah bahasa reguler , Ø dan {ε} adalah ekspresi reguler. {a} adalah bahasa reguler dan a adalah ekspresi reguler. {a,b} adalah bahasa reguler demikian pula {ab} adalah bahasa reguler. Catatan : Bahasa reguler terhadap Σ adalah bahaasa yang mengandung semua himpunan bagian berhingga dari Σ* dan tertutup terhadap gabungan, produk dan penutup . Contoh : H1 = { w ; w mengandung dua huruf a atau b berturut-turut } dan H2 = { w ; w = an b an ; n > 0 } Apakah H1 dan H2 merupakan bahasa reguler ? V ekspresi reguler r terhadap Σ membentuk suatu himpunan bagian R dari Σ* dengan aturan rekursif sbb : 19
  • 20. Jika r adalah ε, maka r hanya terdiri dari kata kosong saja. R = {ε} ; jika r = Ø , maka R = Ø Jika r = a , a Є Σ , maka R = { a } Jika r1 dan r2 terhadap Σ membentuk R1 dan R2 , maka ; 1. Jika r = ( r1 + r2 ) , maka R = R1 U R2 2. Jika r = r1 r2 , maka R = R1 R2 3. Jika r = ( r1 ) * , maka R = ( R1 )* Catatan : a + ba* menyatakan ( a + ( b (a)* )) ( a + ba )* a menyatakan (( a + (ba))* a ) aba menyatakan (( ab ) a ) a + b + a menyatakan (( a + b ) +a ) 20
  • 21. Definisi 13 : Dua ekspresi reguler r1 dan r2 terhadap abjad Σ dikatakan setara (ekivalen) dinyatakan r1 = r2 jika R1 = R2 Misalkan r, s dan t merupakan ekspresi reguler terhadap Σ, maka berlaku sifat-sifat sebagai berikut : ( ada 16 sifat ) Contoh : Buktikan : r (sr )* = ( rs )* r Bukti : misalkan w Є r (sr )* , maka w = r (( sr ) (sr) ….. (sr) Berdasarkan sifat assosiatif w = (( rs ) (rs) …….. (rs) r W Є ( rs )* r . Jadi r ( sr )* subset ( rs )* r Misal : w Є ( rs )* r , maka w = (( rs ) ( rs ) ……….( rs )) r Berdasarkan sifat assosiatif : w = r (( sr ) ( sr ) ….. ( sr )) w Є r ( sr )* . Jadi ( rs )* r subset r ( sr ) * R ( sr )* = ( rs )* r. Pembuktian diatas disebut dengan Proof by reparsing 21
  • 22. Soal – Soal Latihan 1. Diketahui Σ = { k,l,m,n,o,p,q }, sebutkan yang didefinisikan alphabet, untai dan bahasa, berapa panjang Σ dan masing-masing kata dari Σ. 2. w adalah sebuah untai ; w = 679583 Bagaimanakah eksponensiasi dan reversalnya. 3. Misalkan Σ = { a,b } a. r = a * ba * ba * b. r = ( a + b ) * c. r = ( a + b )* ( aa + bb ) ( a + b ) * d. r = ( aa + bb + ( ab + ba ) ( aa + bb ) * ( ab + ba )) * e. r = ( b + abb ) * Tentukan R untuk masing-masing Soal !!!. 22
  • 23. MODUL – 03 FINITE STATE AUTOMATA ( FSA ) 3.1. Pengertian Finite State Automata a. Model matematika dari suatu sistem yang menerima input dan output diskrit. b. Adanya perpindahan input dari satu state ke state lainnya ( Fungsi Transisi ). c. Mekanisme kerja suatu FSA dapat diaplikasikan pada leksikal analysis, Text Editor, Protocol Komunikasi jaringan dan lainnya. d. FSA dinyatakan dengan Five – Tupel ( 5 – Tupel ) sebagai berikut : M = ( Q, Σ, δ, S , F ) , dimana Q = Himpunan State Σ = Himpunan simbol input / masukan/ abjad 23
  • 24. δ = Fungsi transisi / tabel transisi S = State awal ; S Є Q F = Final State ; F subset Q Contoh kasus : Seorang petani, seekor kambing, seekor srigala dan seikat rumput berada pada satu sisi sungai dan ingin melakukan penyebrangan dengan sebuah perahu. Petani tersebut harus menyebrangkan semuanya dalam keadaan selamat. Bagaimanakah prosesnya ?. P = Petani ; K = Kambing ; S = srigala dan R = Rumput Start K P K P S S R R K K K K R S K R S K P S P O- PKSR SR- PK PSR R- PKS PKR- S S- PKR PK- SR K- PSR PKS- R 0- PKSR 24
  • 25. Contoh lain : mencek parity ganjil Bila mesin mendapat input : 1101 Urutan state yang terjadi : even 1 odd 1 even 0 even 1 odd Berakhir dengan state odd sehingga “1101” diterima oleh mesin. Bila mesin mendapat input : 101. Urutan state yang terjadi : even 1 odd 0 odd 1 even. Berakhir dengan state even. Maka “101” ditolak oleh mesin 0 0 Start 1 1 Even odd 25
  • 26. 3.2. Deterministic Finite Automata ( DFA ) Deterministic Finite Automata ( DFA ), dari suatu state adalah tepat satu state berikutnya untuk setiap simbol masukan yang diterima. DFA didefinisikan sebagai 5 –tuple M = ( Q, Σ, δ, S , F ). Definisi 13 : Dalam diagraph suatu automaton M = ( Q, Σ, δ, S , F ) untuk suatu kata w di Σ * , lintasan vertex qi ke vertex qj , sehingga rangkaianrangkaian dari label-label dari edge yang dilaluinya membentuk kata w yang disebut lintasan w dari qi ke qj . Suatu kata w termasuk di Σ * dikatakan diterima (accepted) oleh automaton M, jika lintasan w dari state awal q0 dapat mencapai state akhir di F. 26
  • 27. Himpunan kata yang diterima oleh automaton M disebut bahasa yang diterima oleh M dan dinyatakan dengan ; L ( M ). Catatan : Kata-kata kosong ᵋ diterima oleh M jika q0 juga merupakan F. Contoh : Misal Σ = { a,b } , M = ( Q, Σ, δ, q0, F ), dimana Q = { q0 } ; F = Ø , Fungsi transisi δ dinyatakan dengan tabel sebagai berikut : δ a b q0 q0 q0 27
  • 28. Diagram Graph atau diagram transisinya :  L ( M ) = Ø, mengapa ?? Misal ; Σ = { a,b } , M = ( Q, Σ, δ, q0, F ), Q = { q0 } ; F = Ø  L ( M ) = Σ * q0 q0 28
  • 29. Diketahui Automaton berhingga Σ = { a,b } , M = ( Q, Σ, δ, q0, F ), dimana Q = { q0 , q1 , q2 } ; F = q2 , Persamaan transisi diberikan sebagai berikut : δ(q0, a ) = δ(q1, a ) = δ(q2, a ) = δ(q0, b ) = δ(q1, b ) = δ(q2, b ) = Suatu string x dinyatakan diterima bila δ( S, x ) berada pada state akhir. Secara formal dikatakan, bila M adalah sebuah FSA menerima bahasa yang disebut L ( M ). L ( M ) = { x │ δ( S, x ) di dalam F }. Misal kita input string “abb” pada contoh diatas, maka : δ(q0, abb ) = δ(q0, bb ) = δ(q1, b ) = q2 karena q2 termasuk state akhir, maka ‘ abb ‘ berada dalam L ( M ) = U { Si : qi Є F }. Contoh lain inputkan string ‘ baba ‘ !!!!. 29
  • 30. Pada DFA dari setiap state selalu tepat ada satu state berikutnya √ simbol input yang ada. Fungsi transisi dengan F = { q3 } Fungsi transisi dengan F = { q3 } 0 0 Start 1 0 1 0 δ a b q0 q1 q2 q1 q3 q2 q2 q1 q3 q3 q3 q3 q0 q1 q2 30
  • 31. MODUL – 04 NON DETERMINISTIC FINITE AUTOMATA (NFA) Suatu automaton berhingga tak tentu ( NFA ) adalah suatu 5 – tuple M = ( Q, Σ, δ, q0, F ), dimana δ : Q X Σ  2 Q . 2 Q menyatakan power set dari Q atau himpunan semua subset dari Q. Biasanya fungsi transisi δ tidak hanya bekerja pada sebuah huruf , tetapi juga bekerja pada sebuah kata. δ *: Q X Σ*  2 Q δ* ( q,w ) adalah suatu state di Q yang dicapai oleh state q setelah mendapat input kata w, fungsi δ* dedefinisikan sebagai : a. δ* ( q,w ) = { q } 31
  • 32. b. δ* ( q,wa ) = { p : p di δ ( r,a ) untuk suatu state r di δ* ( q,w ) . c. δ* ( p,w ) = U { δ* ( q,w ) : q di p } √ p subset Q Definisi 14 : M = ( Q, Σ, δ, q0, F ), adalah NFA, maka bahasa yang diterima oleh M yaitu L ( M ) menyatakan himpunan { w : δ ( q0,w ) mengandung suatu state akhir di F }. Contoh misalkan M = ( Q, Σ, δ, q0, F ) ; Σ = { a,b } dimana F = { q2,q4 } dan Q = { q0, q1, q2, q3, q4 } dengan fungsi transisi sbb: δ a b q0 {q0, q3 } {q0, q1 } q1 Ø q2 q2 q2 q2 q3 q4 Ø q4 q4 q4 32
  • 33. Bila w = abaab, maka δ ( q0,w ) = δ ( q0,a ) = { q0, q3 } δ ( q0,ab ) = δ (δ ( q0,a ), b = δ ( { q0, q3 }, b ) = δ ( { q0 }, b ) U δ ( { q3 }, b ) = { q0, q1 } U Ø = { q0, q1 } δ (q0,aba) = δ (δ ( q0,ab ), a = δ ( { q0, q1 }, a ) = δ ( { q0 }, a ) U δ ( { q1 }, a ) = { q0, q3 } U Ø = { q0, q3 } δ (q0,abaa)= δ (δ ( q0,aba ), a = δ ( { q0, q3 }, a ) = δ ( { q0 }, a ) U δ ( { q3 }, a ) = { q0, q3 } U { q4 } = { q0, q3 , q4 } δ (q0,abaab)= δ (δ ( q0,abaa ), b = δ ( { q0, q3 , q4 }, b ) = δ ( { q0 }, b ) U δ ( { q3 }, b ) U δ({ q4 }, b ) = { q0, q3 , q4 } 33
  • 34. Reduksi Jumlah State Pada FSA Distinguishable adalah state yang dapat dibedakan. Indistinguishable adalah state yang tidak dapat dibedakan. State p dan q dari DFA dikatakan indistinguishable, jika : a. δ ( q,w ) Є F , sedangkan δ ( p,w ) Є F dan . b. δ ( q,w ) Є F , sedangkan δ ( p,w ) Є F √ w Є ∑* . State p dan q dikatakan distinguishable jika ada string w Є ∑* Ǝ δ ( q,w ) Є F , sedangkan δ ( p,w ) Є F. Jelasnya pasangan 2 buah state memiliki salah satu kemungkinan distinguishable atau indistinguishable, tetapi tidak keduanya. Terdapat relasi p dan q indisti dan jika q dan r indisti, maka p dan r juga indisti dan ketiga statet tersebut indistinguishable. 34
  • 35. Reduksi state DFA dapat dilakukan dengan mencari kombinasi state yang indistinguishable, tahapan- tahapannya sebagai berikut : a. Hapuslah semua state yang tidak dapat dicapai dari q0 dengan jalan apapun. b. Buatlah semua pasangan state (p,q) yang distinguishable dimana p Є F dan q Є F . c. Catatlah pasangan-pasangan state tersebut. d. √ melakukan pencarian state yang disting dengan aturan-aturan : “ √ (p,q) dan √ α Є ∑ . e. Hitunglah δ (p,α) = pα dan δ (q,α) = qα. Jika pasangan ( pα,qα ) telah tercatat sebagai disting, maka pasangan (p,q) juga dimasukan sebagai disting. 35
  • 36. f. Dari hasil no. c didapat pasangan state yang disting. Pasangan-pasangan state yang lainnya yang tidak termasuk ke dalam state yang disting tersebut (‘sisanya’) dapat ditentukan sebagai state yang indisting. g. Beberapa state yang saling indisting dapat digabungkan ke dalam satu state. sesuaikan transisi dari dan ke state-state gabungan tersebut. 36
  • 37. 0 1 0 0 Start 1 0,1 1 0 1 q0 q3 q1 q2 q4 37
  • 38. Dilakukan tahapan-tahapan sebagai berikut : 1. Tidak ada state yang tidak tercapai dari q0. 2. Catat state-state disting sebagai berikut : pasangan (q0,q4), (q1,q4), (q2,q4) dan (q3,q4). Hal ini didapatkan dengan melihat q0, q1, q2, q3 Є F , sedangkan q4 Є F. 3. Tentukan pasangan-pasangan state lainnya, misal : a. Untuk pasangan (q0,q1), kita lihat δ ( q0,1) = q3 dan δ ( q1,1) = q4 , sedangkan (q3,q4) disting, maka (q0,q1) adalah disting. b. Untuk pasangan (q0,q2), kita lihat δ ( q0,1) = q3 dan δ ( q2,1) = q4 , sedangkan (q3,q4) disting, maka (q0,q1) adalah disting. c. Untuk pasangan (q0,q3), kita lihat δ ( q0,1) = q3 dan δ ( q3,1) = q4 , sedangkan (q3,q4) disting, maka (q0,q3) adalah disting. 38
  • 39. 4. Setelah diperiksa semua pasangan state, didapati state- state yang disting yaitu : (q0,q4), (q1,q4), (q2,q4) , (q3,q4), (q0,q1), (q1,q2), (q0,q3) , sisanya yang indisting adalah (q1,q2), (q1,q3), (q2,q3) . 5. Karena q1 indisting dengan q2 , q2 indisting dengan q3 maka dapat disimpulkan q1 , q2 , q3 saling indisting dan dapat dijadikan satu state. Gambar berikut hasil DFA yang direduksi statenya !!. 0 0,1 Start 0,1 1 q0 q1,2,3 q4 39
  • 40. MODUL – 05 KESETARAAN DFA DAN NFA Tahapan Pengubahan NFA ke DFA Dari sebuah mesin NFA dapat dibuat mesin DFA yang ekivalen ( setara ). Ekivalen disini artinya mampu menerima bahasa yang sama. Contohnya lihat gambar berikut ini : 0,1 0 0,1 Start Start 0 1 0,1 Gambar 5.1 : Mesin DFA Gambar 5.2 : Mesin NFA q0 q0 q1 q2 q1 40
  • 41. Cara membangun ekivalensi NFA ke DFA Contoh. Misal diketahui NFA dengan diagram transisi berikut ini : 0 1 Start 0,1 1 Gambar 5.3 : Mesin Otomata NFA Dimulai dari state awal, kemudian mengikuti transisinya untuk membentuk state-state baru, √ state yang terbentuk diikuti lagi transisinya sampai tercover semua. q0 q1 δ 0 1 q0 q0 , q1 q1 q1 Ø q0 , q1 41
  • 42. - State q0 dengan input 0 mencapai q0 dan q1 - State q0 dengan input 1 mencapai state q1 hasil penelusurannya sebagai berikut : 1 Start 0 Selanjutnya kita telusuri state-state baru yang terbentuk {q0} {q1} {q0,q1} 42
  • 43. State q1 bila memperoleh input 0 menjadi state Ø. State q1 bila memperoleh input 1 menjadi state { q0,q1 }. State {q0,q1} bila memperoleh input 0 menjadi state {q0,q1}, ini diperoleh dari δ ( q0,0) = { q0 , q1 } digabung dengan δ ( q1,0) = Ø , maka hasilnya : δ ( { q0,q1 }) = { q0 , q1 } . State { q0 , q1 } bila memperoleh input 1 menjadi state {q0 , q1} , ini diperoleh dari δ ( q0,1) = { q1 } digabung dengan δ ( q1,1) = { q0 , q1 } , maka hasilnya : δ ( { q0,q1 }, 1) = { q0 , q1 } . 43
  • 44. Perhatikan state yang sama cukup ditulis sekali saja. 1 0 1 0 0,1 Start 1 Start 1 0 0,1 0 0,1 1 0 0,1 Start 1 0,1 0 Gambar 5.4 : Mesin DFA yang ekivalen dengan NFA gambar 5.3 q0 Ø q0,q1 q1 q1 Øq0 q0 Ø q1 q0,q1 q0,q1 44
  • 45. Untuk memeriksa ekivalensi DFA dengan NFA, misalkan string ‘001’ dapat diterima oleh NFA, maka seharusnya dapat pula diterima oleh DFA. δ ( q0,001) = δ ( { q0,q1 },01) = δ ( { q0,q1 },1) = { q0,q1 } , karena state { q0,q1 } termasuk state akhir, maka berarti string tersebut diterima. Contoh-contoh ekivalensi NFA ke DFA a b a,b a,b Start a,b Start b a a q0 q0 Ø q1 q1 q0,q1 45
  • 46. Start Start a,b a,b p,r Start p r r p p p p r p,r Start r p,r q0 {q0} Ø q0 q2 Ø q0 q2 {q1} {q0,q2} {q1} 46
  • 47. MODUL – 06 NFA DENGAN ᵋ MOVE ᵋ ᵋ Start b ᵋ a b ᵋ = empty ( transisi ᵋ ), diperbolehkan merubah state tanpa membaca input/ tidak tergantung pada suatu input Contoh : Dari q0 tanpa membaca input pindah ke q1 Dari q1 tanpa membaca input pindah ke q2 Dari q4 tanpa membaca input pindah ke q1 Memudahkan untuk mengkombinasikan FSA q0 q1 q3 q4 q2 47
  • 48. 6.1. ᵋ - closure untuk NFA dengan ᵋ - move ᵋ - closure adalah himpunan state-state yang dapat dicapai dari suatu state tanpa membaca input. Misal : ᵋ - closure ( q0 ) = himpunan state yang dapat dicapai dari state q0 tanpa baca input. Dari gambar diatas : ᵋ - Closure ( q0 ) = { q0, q1, q2 } ᵋ - Closure ( q1 ) = { q1, q2 } ᵋ - Closure ( q2 ) = { q2 } ᵋ - Closure ( q3 ) = { q3 } ᵋ - Closure ( q4 ) = { q1, q2, q4 } 48
  • 49. Start Contoh lainnya : ᵋ - Closure ( q0 ) = { q0, q1, q3 } ᵋ - Closure ( q1 ) = { q1, q3 } ᵋ - Closure ( q2 ) = { q2, q4 } ᵋ - Closure ( q3 ) = { q3 } ᵋ - Closure ( q4 ) = { q4 } “ Pada state yang memiliki transisi - ᵋ , maka ᵋ - Closure adalah state itu sendiri “ q0 q2q1 q3 q4 49
  • 50. 6.2. Ekivalensi NFA dengan Ɛ – move ke NFA tanpa Ɛ – move a a a a Ɛ b b b Gambar a : NFA Ɛ – move Gambar b : NFA tanpa Ɛ – move Gambar a ekivalen dengan gambar b. Gambar a menerima bahasa yang memuat string ‘ b ‘ , demikian juga gambar b q2 q0 q1 q1 q0 q1 q2 q1q3 q3 Start Start 50
  • 51. Untuk gambar yang kompleks diperlukan tahapan- tahapan sebagai berikut : 1. Buat tabel transisi NFA Ɛ – move . 2. Tentukan Ɛ – closure √ state. 3. Carilah setiap fungsi transisi hasil perubahan dari NFA Ɛ – move ke NFA tanpa Ɛ – move δ ( sebut δ’ ), dimana δ’ didapat dengan rumus : δ’ (state,input) = Ɛ – closure ( δ(Ɛ – closure (state,input)). 4. Dari hasil 3, buat tabel transisi dan diagram transisi dari NFA tanpa Ɛ – move yang ekivalen dengan NFA Ɛ – move tersebut. 5. Jangan lupa menentukan state-state akhir untuk NFA tanpa Ɛ – move tersebut, yaitu state-state akhir semula ditambah dengan state-state yang Ɛ – closurenya menuju kesalah satu dari state akhir semula, atau F’ = F U { q │(Ɛ – closure (q) ∩ F ≠ Ο } 51
  • 52. Misal : bila semula F = { q0,q3 }, Ɛ – closure (q1) = { q0,q2 } maka F’ = { q0,q1,q3 } tabel transisi dari NFA Ɛ – move ada gambar … Ɛ – closure √ state Ɛ – closure ( q0 ) = { q0,q1 } Ɛ – closure ( q1 ) = { q1 } Ɛ – closure ( q2 ) = { q2 } Ɛ – closure ( q3 ) = { q3 } δ a b q0 Ø Ø q1 q2 q3 q2 Ø Ø q3 Ø Ø 52
  • 53. Kemudian dicari δ’ dengan memanfaatkan tabel transisi dan Ɛ – closure yang diperoleh berikut ini : - δ’ (q0,a) = Ɛ – closure ( δ(Ɛ – closure (q0,a)) = Ɛ – closure ( δ{q0,q1 },a)) = Ɛ – closure ( q2 } = { q2 } - δ’ (q0,b) = Ɛ – closure ( δ(Ɛ – closure (q0,b)) = Ɛ – closure ( δ{q0,q1 },b)) = Ɛ – closure ( q3 } = { q3 } - δ’ (q1,a) = Ɛ – closure ( δ(Ɛ – closure (q1,a)) = Ɛ – closure ( δ{q1 },a)) = Ɛ – closure ( q2 } = { q2 } - δ’ (q1,b) = Ɛ – closure ( δ(Ɛ – closure (q1,b)) = Ɛ – closure ( δ{q1 },b)) = Ɛ – closure ( q3 } = { q3 } - δ’ (q2,a) = Ɛ – closure ( δ(Ɛ – closure (q2,a)) = Ɛ – closure ( δ{q2 },a)) = Ɛ – closure (Ø } = {Ø } - δ’ (q2,b) = Ɛ – closure ( δ(Ɛ – closure (q2,b)) = Ɛ – closure ( δ{q2 },b)) = Ɛ – closure (Ø } = {Ø } 53
  • 54. - δ’ (q3,a) = Ɛ – closure ( δ(Ɛ – closure (q3,a)) = Ɛ – closure ( δ{ q3 },a)) = Ɛ – closure (Ø } = {Ø } - δ’ (q3,b) = Ɛ – closure ( δ(Ɛ – closure (q3,b)) = Ɛ – closure ( δ{ q3},b)) = Ɛ – closure (Ø } = {Ø } Tabel transisi NFA tanpa Ɛ – move dengan F = { q3} δ’ a b q0 q2 q3 q1 q2 q3 q2 Ø Ø q3 Ø Ø 54
  • 55. 4.3. Penggabungan dan konkatenasi FSA Misal ada NFA M1 dan NFA M2 0 Start 1 NFA M1 Start 1 1 0 NFA M2 qa0 qa1 qb0 qb1 55
  • 56. L (M1 ) adalah bahasa yang diterima M1 dan L ( M2 ) bahasa yang diterima oleh M2. Dilakukan operasi union : L ( M3 ) = L ( M1 ) U L ( M2 ), dapat dibuat mesin M3 yang menerima bahasa L ( M3 ) dengan cara : a. Tambahkan state awal untuk M3, hubungkan dengan state awal M1 dan state awal M2 dengan menggunakan transisi- Ɛ. b. Tambahkan state akhir M3, hubungkan dengan state-state akhir M1 dan state-stae akhir M2 dengan menggunakan transisi- Ɛ. qs dan qf adalah state awal dan state akhir pada M3 56
  • 58. Ditentukan L ( M4 ) = L ( M1 ) . L ( M2 ), dapat dibuat mesin M4 yang menerima bahasa L ( M4 ) dengan cara : a. State awal M1 menjadi state awal M4. b. State akhir M2 menjadi state akhir M4. c. Hubungkan state-state akhir M1 dengan state awal M2 dengan menggunakan transisi- Ɛ. Hasil operasi konkatenasi Mesin M4 q0 qA1 qB0 q1 Start 0 0 1 1 1 ƐƐ 58
  • 59. Modul – 07 EKSPRESI REGULER 7.1. Penerapan Ekspresi Reguler Sebuah bahasa dinyatakan reguler jika terdapat Finite State Automata yang dapat menerimanya. Bahasa yang diterima oleh suatu FSA dapat dinyatakan secara sederhana dengan ekspresi reguler (ekspresi beraturan/ ( EB ). EB memungkinkan menspesifikasikan atau mendefinisikan bahasa-bahasa, memberikan suatu pola ( pattern ) atau template untuk untai/ string dari suatu bahasa. Untai yang menyusun suatu bahasa reguler akan cocok ( match ) dengan pola bahasa itu. Penerapan EB yang nampak, misalnya pencarian untai karakter pada suatu file. Biasanya fasilitas ini ada pada 59
  • 60. text editor. Dalam kasusu-kasus ini dapat dilakukan penerapan FSA pada untai-untai yang terdapat dalam file tersebut. Conth – contoh EB 1. Fsa menerima bilangan integer tak bertanda 0,1,2,…..,9 0,1,2,…..,9 Selain 0,1,2,.9 Selain 0,1,2,…,9 Dalam EB. Dinyatakan dengan : ( digit )( digit ) * q0 q0 q1 Start 60
  • 61. 2. FSA menerima Indentifier ( Id ) Huruf / Angka Huruf Dalam EB dinyatakan dengan : ( Huruf )( Huruf│angka ) * Start q0 q1 61
  • 62. Notasi_Notasi Ekspresi Beraturan ( EB ) 1. ( * ) yaitu karakter asterisk. Dapat tidak muncul, dapat pula muncul berhingga kali ( 0 – n kali ). 2. ( + ) tanda tambah pada posisi supercript ( diatas ). Diartikan minimal harus muncul satu kali ( 1 – n kali ). 3. + ( mendatar ) atau U berarti union  berarti “ atau “. 4. . ( titik ) berati konkatenasi, biasanya dapat dihilangkan misal a . b = ab Contoh-contoh EB dan contoh string yg dibangkitkan : 1. EB : ab*cc , string : …… 2. EB : 010* string : …… 3. EB : a*d : a+ d, string : ….. 4. EB : a* U b * , string : …. 5. EB : ( 0 U 1 ) ; ( a │ b )+ , 01* + 0 , string :….. 62
  • 63. Hubungan Ekspresi Beraturan dan FSA V EB ada satu FSA Ɛ-move yang ekivalen, V DFA ada satu EB dari bahasa yang diterima oleh DFA. Sederhananya kita dapat membuat suatu NFA Ɛ-move dari EB. a Ɛ b Gambar : NFA Ɛ-move untuk EB : a* b a b Gambar : NFA untu EB : ab q0 q1 q1q0 q2 q2 Start Start 63
  • 64. a Ɛ b NFA Ɛ – move untuk EB : ab a Ɛ Ɛ Ɛ b Ɛ NFA Untuk EB : a U b q0 q3 q4 q1 q2 q0 q2q1 q3 q5 Start Start 64
  • 65. NFA Ɛ-move  NFA  DFA Bila EB cukup sederhana kita dapat saja langsung mengkonstruksi NFA-nya tanpa melalui NFA Ɛ-move Contoh-contoh NFA tanpa Ɛ-move 0 0,1 EB: 0(1│0 ) 0 1 EB: 010* 1 0,1 0 0 0 EB : 01*0 EB : 0 ( 1 U 0 ) q0 q1 q0 q1 q0 q1 q0 q0 q0 q0 q0 q2 q2 q1 Start Start Start q2 Start 65
  • 66. Dari sebuah FSA ( DFA atau NFA ) dapat ditentukan EB yang diterima oleh automata yang bersangkutan, dapat juga ditentukan langsung EB dengan mengamati perilaku otomata tersebut. Input yang menuju final state { q2 } adalah 0 atau 10*1, pada q2 menerima input 1 berapapun juga ( 1* ), akan tetap di q2. Dapat dikatakan mesin itu menerima 01* atau 10*11* yang dinyatakan dalam EB : 01* U 10*11* 0 1 1 1 0 q0 q1 q0q2 Start 66
  • 67. Input ke q3 adalah ab, dengan di q3 menerima a*, sehingga bila digabung menjadi aba*. Input ke q2 adalah aa, selanjutnya dari q2 menerima input ba*b kembali ke q2, bila digabung menjadi aa ( ba*b ). Akhirnya diperoleh EB : aba* │ aa( ba*b ) = a ( ba* │a ( ba*b )* ). Gambarkan diagram transisi dan lain-lainnya !!!. Diagram hubungan antara DFA, NFA dan EB NFA DFA EB NFA Ɛ-move 67
  • 68. Dari EB : ( 0 + 1 )* 00 ingin dibuat mesin DFA yang menerima bahasa yang berupa semua string yang berakhiran dengan ‘ 00 ‘ ; Σ = { 0,1 } 0,1 0 0 Akhirnya kita buat DFA yang ekivalen dengan NFA. Dapat dicek dengan untai : 00, 100, 000, 0100, 0000, 1100 q0 q1 q0q2 Start 68
  • 69. 1 1 0 0 0 1 Mesin DFA δ 0 1 q0 { q0,q1 } q0 q1 q2 - q2 - - {q0} {q0,q1} {q0,q1,q2} Start 69
  • 70. Dari EB : ( 0 + 1 )* 00 ( 0 + 1 )* ingin dibuat mesin DFA yang menerima bahasa yang berupa semua string yang memuat minimal 2 nol ( 00 ). DFA yang ekivalen dengan NFA dapat dicek dengan untai : 00, 100, 001, 0000, 0100, 00000, 1100, 0011, 1010011 δ 0 1 q0 { q0,q1 } q0 q1 q2 - q2 q2 q2 70
  • 71. 1 0 1 0 0 0 1 1 Start {q0} {q0,q1} {q0,q2} {q0,q1,q2} 71
  • 72. Dari EB : ( a + b )* b ( a + b ) ( a + b ) ingin dibuat mesin DFA yang menerima bahasa yang berupa semua string, dimana simbol ketiga dari kanan adalah “ 1 “. Diketahui Σ = { a,b } . Coba sendiri !!! a,b b a,b a,b q0 q1 q2 q0q3 Start 72
  • 73. Ingin dibuat mesin DFA yang ekivalen dengan NFA yang menerima bahasa yang berupa 4 simbol yang minimal memuat 2 buah nol ( yang tidak perlu berurutan ). Diketahui Σ = { 0,1 }. Gambar DFA untuk 1100 1 1 0 0 Kemungkinan ke-2 , 2 buah nol terletak dipaling awal q0 q1 q2 q3 q0 q5 q6 q7 q4 Start 73
  • 74. Selanjutnya kita tambahkan kemungkinan untuk tiga simbol pertama sudah memuat 2 buah nol. 1 1 0 0 0 0 0,1 1 0 0 0,1 q1q0 q2 q3 q1 q8 q5 q7 q6 q4 Start 74
  • 75. Bila 3 simbol pertama baru memuat satu buah nol, dibuat transisi dari state q8 ke q3 1 1 0 0 1 0 0 0,1 1 0 0 0,1 Hasil akhir mesin DFA yang sebenarnya tidak menuju solusi : δ ( q2 , 1 ) = Ø δ ( q4 , 0 ) = Ø δ ( q3 , 1 ) = Ø δ ( q4 , 1 ) = Ø q1q0 q2 q3 q1 q8 q5 q7 q6 q4 Start 75
  • 76. Modul – 08 ATURAN PRODUKSI 8.1. Aturan Produksi Bahasa Reguler Aturan produksi untuk EB : α  β , dimana α adalah sebuah simbol variabel dan β maksimal memiliki sebuah simbol variabel/ non terminal yang terletak di paling kanan bila ada. Mengkontruksikan aturan-aturan produksi untuk suatu tata bahasa reguler. Tata bahasa reguler ( grammar ) didefinisikan 4-tupel : G = { V,T,P,S } dimana : V = himpunan variabel T = himpunan simbol terminal P = kumpulan aturan produksi S = simbol awal 76
  • 77. a ε b a b ε b S = state awal = q0 ; q0 mendapat input a ke q1 S  aE ( E = q1 / bagian yang belum terbangkitkan ). Dari q1 menerima input ε ke q2 dan q3 , ditulis : E  A ( A = q2 ), dari q2 mendapat input a ke q2 E  B ( B = q3 ) dari q3 mendapat input b ke q3 A  aA selanjutnya dari q2 mendapat input b ke q4 ; F = { q4 } B  bB selanjutnya dari q3 mendapat input b ke q4 ; F = { q4 } q0 q1 q2 q3 q1q4 Start 77
  • 78. Tidak ada lagi unsur yang keluar, dapat ditulis : A  a B  b Maka kumpulan aturan produksi yang dapat ditulis sebagai berikut : S  aE V = { S,E,A,B } E  A │B T = { a,b } A  aA │B P = { S  aE, E  A │B , B  bB │b a  aA │B, B  bB │b } S = S , state awal 78
  • 79. Contoh Lain a b b a b b a b T = { a,b } A  bC ( C = q2 ) S = q0 C  aS S  aA │Bb dari q2 mendapat input a ke q0 A = q1 ; B = q4 q0 q1 q2 q3 q4 q5 q6 q0 Start 79
  • 80. Dari q3 tidak ada transisi yang keluar dan bukan state akhir, maka transisi ke state q3 diabaikan. B  bD ; ( D = q5 ) D bS ; ( dari q5 mendapat input b ke q0 ) ; q6 abaikan ( q0 sebagaii state akhir )  S  ε Maka kumpulan aturan produksi yang dapat ditulis sebagai berikut : V = { S,A,B,C,D } T = { a,b } P = { S  aA │Bb │ε , A bC ; B  bD ; C  aS , D  bS } S = aA │Bb │ε 80
  • 81. Disederhanakan menjadi : S = aA │Bb │ε A  bC S  aA │Bb │ε C  aS A  baS D  bS B  bbS 81
  • 82. 8.2. FSA untuk suatu tata bahasa reguler Misal terdapat tata bahasa reguler dengan aturan produksi sebagai berikut : b b a a b a b S = q0 S  aB │bA │ε A = q4 B  babS B = q1 A  abaS S  ε q0 q1 q2 q3 q4 q5 q6 q0 Start 82
  • 83. Modul – 09 FSA Dengan Output 9.1. Mesin Moore ( FSA Transducer ) Pada mesin Moore, output akan berasosiasi dengan state. Mesin Moore didefinisikan dengan 6-tupel. M = ( Q, Σ, δ, S, ∆, λ ), dimana : Q = himpunan state ; Σ = himpunan simbol input δ = fungsi transisi ; S = simbol awal ∆ = himpunan output ; λ = fungsi output V state Contoh : Pembagian dengan sisa ( modulus ) bilangan Q = { q0, q1, q2 } Σ = { 0,1 } ∆ = { 0,1,2 } ( untuk outputnya pada kasus modulus dengan sisa 3, maka sisanya adalah 0,1,2 ). 83
  • 84. S = q0 λ ( q0 ) = 0 λ ( q1 ) = 1 λ ( q2 ) = 2 Misal : 5 mod 3 = 2 Input 5 dalam biner adalah 101, 101  q0 , q0 , q1 , q2  F = { q2 } , λ { q2 } = 2. Misal : 10 mod 3 = 1 Input 10 dalam biner adalah 1010, 1010  q0 , q1 , q2 , q2 , q1  F = { q1 } , λ { q1 } = 1 0 1 2 0 1 1 0 1 0 Gambar 7.1. : Mesin Moore untuk modulus 3 q0 q1 q2 Start 84
  • 85. 9.2. Mesin Mealy Mesin Mealy berasosiasi dengan state, didefinisikan dalam 6-tupel. M = ( Q, Σ, δ, S, ∆, λ ), dimana : Q = himpunan state ; Σ = himpunan simbol input δ = fungsi transisi ; S = simbol awal ∆ = himpunan output ; λ = fungsi output V transisi Mesin Mealy akan mengeluarkan output, apakah menerima ( Y ) atau tidak ( T ). Mesin akan mengeluarkan output Y bila menerima untai yang memiliki simbol 2 akhiran berurutan yang sama, atau dalam EB : ( 0 + 1 )* ( 00 + 11 ) Contoh input yang diterima : 01011, 01100 , 1010100, 10110100, 00, 11, 100, 011, 000, 111 85
  • 86. Konsfigurasi Mesin Mealy ( dari diagram ) Q = ( q0 , q1 , q2 ); Σ = { 0,1 } δ = fungsi transisi S = simbol awal = q0 ∆ = { Y,T } λ = (q0 ,0) = T λ = (q0 ,1) = T λ = (q1 ,0) = Y 0/Y λ = (q1 ,1) = T λ = (q2 ,0) = T λ = (q2 ,1) = Y 0/T 1/T 0/T 1/Y 1/T q0 q1 q2 Start 86
  • 87. 9.3. Ekivalensi Mesin Moore dan Mesin Mealy Karena jumlah state pada Mealy = 3 dan jumlah outputnya = 2 , maka jumlah state pada Moore yang ekivalen = 6 Q = ( q0 Y, q0 T , q1 Y , q1 T , q2 Y , q2 T ) Σ = { 0,1 } ∆ = { Y,T } S = q0 T λ = (q0 Y) = Y λ = (q1 T) = T λ = (q0 T) = T λ = (q2 Y) = Y λ = (q1 Y) = Y λ = (q2 T) = T 87
  • 88. Gambar 9.3. : Mesin Moore yang ekivalen dengan gambar 9.2. 1 1 0 0 T T T 0 0 0 0 1 1 1 Y Y Y q0T q1T q2T q0Y q1Y q2Y Start 88
  • 89. “ State q0Y dapat dihapus, karena tidak ada transisi ( busur ) yang mengarah ke state tersebut “ . Untuk memperoleh ekivalensi mesin Mealy ke mesin Moore. Konsfigurasi mesin Mealy tersebut adalah : Q = ( q0 , q1 , q2 ) ; Σ = { 0,1 } ∆ = { 0,1,2 } ; S = state awal = q0 Mesin Moore : λ = (q0 ,0) = 0 ; λ = (q1 ,1) = 0 ; λ = (q0 ) = 0 λ = (q0 ,1) = 1 ; λ = (q2 ,0) = 1 ; λ = (q1 ) = 1 λ = (q1 ,0) = 2 ; λ = (q2 ,1) = 2 ; λ = (q2 ) = 2 89
  • 90. 0/0 1/2 1/1 0/2 1/0 0/1 Gambar 9.4. : Mesin Mealy yang ekivalen dengan Mesin Moore q1q0 q2 Start 90
  • 91. Modul – 10 POHON PENURUNAN 10.1. Tata Bahasa Bebas Konteks Pada tata bahasa reguler terdapat pembatasan pada ruas kanan atau hasil produksinya, maka pada tata bahasa bebas konteks ( Contex Free Grammar/ CFG ) tidak terdapat pembatasan hasil produksinya. Pada CFG, saat menurunkan string, simbol-simbol variabel akan mewakili bagian-bagian yang belum terturunkan dari string tersebut. CFG menjadi dasar dalam pembentukan suatu parser ( proses analisis sintaksis ). Bagian sintaks dalam suatu kompilator kebanyakan didefinisikan dalam tata bahasa bebas konteks. 91
  • 92. Misal terdapat tata bahasa bebas konteks dengan aturan produksi sebagai berikut : S  AB A  aA │a B  bB │b akan digambarkan pohon penurunannya untuk memperoleh untai ‘ aabbb ‘ S A B a A b B b B a b Gambar 10.1 : Pohon penurunan untuk untai ‘aabbb’ 92
  • 93. Proses penurunan dapat dilakukan dengan cara : a. Penurunan terkiri ( leftmost derivation ) : simbol variabel terkiri yang diperluas terlebih dahulu. b. Penurunan terkanan ( rightmost derivation ) : simbol variabel terkanan yang diperluas terlebih dahulu. Contoh : S  aB │bA A  a │aS │bAA B  b│bS │aBB Pohon penurunan untuk memperoleh untai ‘ aaabbabbba ‘ , dapat dilihat pada gambar berikut !! 93
  • 94. 10.2. Ambiguitas Ambiguitas terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda untuk mendapatkan suatu untai. Misalkan terdapat tata bahasa bebas konteks : S  SbS │ScS│a Penurunannya dapat dilihat pada gambar berikut : S S S b S S c S a S c S S b S a a a a a Gambar 10.3 : Pohon penurunan untuk untai ‘ abaca’ 94
  • 95. Untuk untai yang sama ( abaca ) dapat dibuat pohon penurunan yang berbeda, maka dapat dikatakan tata bahasa bebas konteks tersebut ambigu. Ambiguitas dapat menimbulkan masalah pada bahasa- bahasa tertentu, dan susunannya akan menentukan arti, maka artinya akan menjadi ambigu. 95
  • 96. Soal-Soal 1. Untuk tata bahasa bebas konteks berikut , gambarkan pohon penurunan untuk memperoleh untai ‘bbabaaba’ dan berikan contoh pula untuk untai-untai lainnya. S  AA A  AAA │a│bA │Ab 2. Gambarkan pohon-pohon penurunan ( min 3 pohon ) dari 2 grammar berikut : S  aAd │aB A  b │c B  ccd│ddc 3. S  Ba │Ab A  Sa │AAb│a B  Sb│BBa│b 96
  • 97. Modul – 11 PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS 11.1. Tujuan Penyederhanaan Untuk melakukan pembatasan sehingga tidak menghasilkan pohon yang memiliki kerumitan yang tak perlu atau aturan produksi yang tidak berarti. Misal CFG :S  AB │a A  a , kelemahannya B tidak memiliki penurunan. Untuk CFG berikut : S  A A  B B  C C  D D a │A 97
  • 98. memiliki kerumitan, padahal berujung S  a. Produksi D  A juga menyebabkan kerumitan. Suatu CFG dapat disederhanakan dengan melakukan : 1. Penghilangan produksi useless ( tidak berguna ). 2. Penghilangan produksi unit. 3. Penghilangan produksi Ɛ. 11.2. Penghilangan produksi useless Produksi useless didefinisikan sebagai : • Produksi yang memiliki variabel yang tidak memiliki pohon penurunan yang akan menghasilkan terminal- terminal. Produksi ini tidak berguna, karena kalau diturunkan tidak akan pernah selesai. • Produksi yang tidak akan pernah dicapai dengan prnurunan apapun, sehingga produksi ini redundan. 98
  • 99. Contoh CFG : S  aSa │Abd │Bde A  Ada B  BBB│a perhatikan variabel A tidak memiliki penurunan yang menuju terminal, sehingga bisa ihilangkan. Konsekuensinya aturan produksi S  Abd tidak memiliki penurunan. Disederhanakan CFG tersebut menjadi : S  aSa │Bde B  BBB│a 99
  • 100. Contoh lain, diketahui CFG : S  aAb│cEB A  dBE │eeC B  ff C  ae D  h E tidak memiliki penurunan, Aturan D  h, reddundan Sisa aturan produksi : S  aAb B  ff juga redundan A  eeC B  ff C  ae 100
  • 101. 11.3. Penghilangan Produksi Unit Produksi unit adalah dimana ruas kiri dan kanan aturan produksi hanya berupa satu simbol variabel. Contoh CFG : S  Sb S  C C  D C  ef D  dd kita lakukan penggantian dari aturan produksi yang paling dekat menuju ke terminal (‘ => dibaca menjadi ) C  D => C  dd S  C => S  dd │ef 101
  • 102. Sehingga aturan produksi setelah penyederhanaan : S  Sb S  dd │ef C  dd C  ef D  dd Contoh lain CFG : S  A S  Aa A  B B  C B  d C  D C  ab D  b 102
  • 103. 11.4. Penghilangan Produksi Ɛ Produksi Ɛ adalah produksi dalam bentuk α Ɛ Penghilangan dilakukan dengan melakukan penggantian produksi yang memuat variabel yang bisa menuju produksi Ɛ atau biasa disebut nullable. Misal : S  bcAd A  Ɛ , maka variavel A dapat dihapus S  bcd Contoh lainnya : Diketahui CFG : S  AaCD A  CD│AB B  b │ Ɛ C  d │ Ɛ D  Ɛ 103
  • 104. Setelah penyederhanaan : S  AaC │ aC │ Aa │ a A  C│AB │ A │ B B  b C  d Contoh lainnya : diketahui CFG : S  dA │ Bd A  bc A  Ɛ B  c Setelah penyederhanaan : S  dA │ d │ Bd A  bc B  c 105
  • 105. Soal-Soal Modul – 11 Sederhanakan grammar –grammar berikut ini : 1. S  AB A  abB│aCa │ Ɛ B  bA │ BB │ Ɛ C  Ɛ 2. S  ABaC │BaC │ AaC │ABa │ aC │Aa │ Ba │a A  B│C │ BC B  b C  D D  d 106
  • 106. Modul – 12 BENTUK NORMAL CHOMSKY ( BNC ) 12.1. Pengertian BNC BNC atau Chomsky Normal Form ( CNF ) berguna untuk CFG. BNC dapat dibuat dari sebuah CFG yang telah mengalami penyederhanaan yaitu penghilangan produksi useless, unit dan Ɛ. Dengan kata lain suatu bentuk CFG dapat dibuat menjadi BNC, dengan syarat : • Tidak memiliki produksi useless. • Tidak memil;iki produksi unit. • Tidak memiliki produksi Ɛ. Aturan produksi BNC ruas kanannya tepat berupa sebuah terminal atau dua variabel, misalkan : 107
  • 107. A  BC A  b B  a C  BA │d 12.2. Pembentukan BNC Langkah-langkah pembentukan BNC sebagai berikut : Aturan produksi yang ada dalam BNC : S  CA A  a B  BC C  b Penggantian aturan produksi yang belum dalam BNC 108
  • 108. S  aB => S  P1B A  bc => A  P2P3 B  Ab => B  AP2 C  aB => C P1B Terbentuk aturan produksi dan simbol variabel baru P1  a P2  b P3  c Hasil akhir aturan produksi dalam BNC : S  CA ; S  P1B ; P1  a A  a ; S  P2P3 ; P2  b B  BC ; B  AP2 ; P3  c C  b ; C  P1B 109
  • 109. Contoh lain CFG : S  aAB │ ch │ CD A  dbE│eEC B  ff│DD C  ADB│aS D  i E  jD Aturan produksi yang sudah ada dalam BNC S  CD B  DD D  i 110
  • 110. Penggantian aturan produksi S  aAB => S  P1P2 S  ch => S  P3P4 A  dbE => A  P5P6 A  eEC => A P8P9 B  ff => B  P10 P10 C  ADB => C AP11 C  aS => C P1 S E  jD => EP12 D 111
  • 111. Terbentuk A.P baru : Hasil akhir dalam BNC P1  a S  CD P2  AB B  DD P3  c D  i P4  h S  P1 P2 P5  d S  P3 P4 P6  P7 E A  P5 P6 P7  b A  P8 P9 P8  e B  P10 P10 P9  EC C  A P11 P10  f C  P1 S P11  DB P12  j 112
  • 112. 12.3. Algoritma CYK Untuk CFG “ Tugas Mandiri Umum “. Soal-Soal Modul – 12 Transformasikan CFG berikut ke dalam BNC : 1. S  aSaA│ A A  abA│b 2. S  abAB A  bAB│Ɛ B  BAa│A │Ɛ 113
  • 113. Modul – 13 PENGHILANGAN REKURSIF KIRI 13.1. Aturan Produksi Rekursif Aturan produksi yang rekursif memiliki ruas kanan ( hasil produksi ) yang memuat simbol variabel pada ruas kiri. Sebuah aturan produksi dalam bentuk : A  β A Merupakan aturan produksi yang rekursif kanan β = ( V U T )* atau kumpulan simbol variabel dan terminal Contoh aturan produksi yang rekursif kanan S  dS B  adB 114
  • 114. Contoh penurunan sebuah CFG yang rekursif kiri S  aAc A  Ab │Ɛ Gambarkan !!!. 13.2. Tahapan penghilangan Rekursif Kiri 1. Pisahkan aturan produksi yang rekursif kiri dan yg tidak. Aturan produksi yang rekursif kiri : A  Aα1│ Aα2│Aα3│ Aα4│…… Aαn Aturan produksi yang tidak rekursif kiri termasuk Ɛ A  β1│ β2│ β3│…… βn 2. Dari situ kita tentukan α1 ,α2 ,α3 …αn dan β1 ,β2,β3 … βn dari setiap aturan produksi yang memiliki simbol ruas kiri yang sama. 3. Lakukan penggantian aturan produksi yang rekursif kiri menjadi sebagai berikut : 115
  • 115. 1. A  β1 Z│ β2 Z│ β3 Z│…… βn Z. 2. Z  α1│ α2│α3│ α4│…… αn 3. Z  α1 Z│ α2 Z│α3 Z│ α4 Z│…… αn Z Penggantian diatas dilakukan untuk setiap aturan produksi dengan simbol ruas kiri yang sama. Bisa muncul simbol variabel baru Z1, Z2, Z3 , …… Zn dan seterusnya , sesuai banyaknya variabel yang menghasilkan produksi yang rekursif kiri. 4. Hasil akhir merupakan aturan produksi pengganti ditambah dengan aturan produksi semula yang tidak rekursif kiri Dapat dilihat pada diagram tahapan-tahapan penghilngan rekursif kiri. 116
  • 116. Gambar 13.2. : Tahapan Penghilangan Rekursif Kiri Aturan Produksi yg tidak rekursif kiri CFG mengandung aturan produksi yang rekursif kiri Aturan produksi yang rekursif kiri Lakukan penggantian, munculkan aturan produksi baru dan simbol variabel baru CFG bebas dari aturan produksi yang rekursif kiri 117
  • 117. Contoh Tata bahasa bebas konteks : S  Sab │ aSc│ dd│ ff │Sbd Pertama-tama kita lakukan pemisahan aturan produksi S  Sab │Sbd ; rekursif kiri Dari situ kita tentukan : untuk simbol ruas kiri S : α1 = ab , α2 = bd Yang tidak rekursif kiri S : β1 = aSc , β2 = dd , β3 == ff Dilakukan penggantian aturan produksi rekursif kiri : Untuk yang memiliki simbol ruas kiri S : S  Sab │Sbd , digantikan oleh : 1. S  aScZ1 │ddZ1 │ffZ1 2. Z1  ab │bd 3. Z1  ab Z1 │bd Z1 118
  • 118. Hasil akhir setelah penghilangan rekursif kiri : S  aSc │dd │ff S  aScZ1 │ddZ1 │ffZ1 Z1  ab │bd Z1  ab Z1 │bd Z1 Pada kasus diatas S adalah satu-satunya simbol variabel yang menghasilkan produksi rekursif kiri. Contoh lain : terdapat CFG : S  Sab │Sb │cA A  Aa │a│bd Yang pertama-tama kita lakukan pemisahan aturan produksi yang rekursif kiri. S  Sab │Sb A  Aa 119
  • 119. Dari situ kita tentukan untuk simbol ruas kiri : S : α1 = ab , α2 = b ; A : α3 = a Aturan produksi yang tidak rekursif kiri : S  cA A  a│bd Dari situ kita dapatkan : Untuk simbol ruas kiri S : β1 = cA ; A : β1 = a , β2 = bd Kita lakukan penggantian aturan produksi yang rekursif kiri : Untuk yang memiliki simbol ruas kiri S : S  Sab │Sb , digantikan oleh 1. S  cAZ1 2. Z1  ab│b 3. Z1  abZ1│bZ1 120
  • 120. Untuk yang memiliki simbol ruas kiri A : A  Aa , diganti oleh : 1. A  aZ2 │bdZ2 2. Z2  a 3. Z2  aZ2 Hasil akhir penghilangan rekursif kiri adalah : S  cA A  a│bd S  cAZ1 Z1  ab│b Z1  abZ1│bZ1 A  aZ2 │bdZ2 Z2  a Z2  aZ2 121
  • 121. Soal-soal Modul – 13 Lakukan penghilangan rekursi kiri : 1. A  AbAB │Ɛ B  BAa │A│Ɛ 2. S  SBa │Ab A  Sa │AAb │Ɛ B  Sb │BBa│Ɛ 3. S  SSC │SSb │abg B abc│BSb │BCd C  ab 122
  • 122. Modul – 14 BENTUK NORMAL GREIBACH ( BNG ) 14.1. Pengertian BNG Bentuk normal Greibach merupakan bentuk normal yang memiliki banyak konsekuensi teoritis dan praktis. Dalam BNG dibatasi posisi munculnya terminal-terminal dan variabel- variabel. Suatu tata bahasa bebas konteks dikatakan dalam BNG / Greibach Normal Form (GNF), jika setiap aturan produksinya ada dalam bentuk : A  aα A = simbol terminal ( tunggal ), a ϵ T α = rangkaian simbol-simbol variabel ( V* ) atau kata lain, suatu cfg dalam BNG bila hasil produksinya ( ruas kanan ) diawali dengan simbol terminal, selanjutnya dapat diikuti dengan rangkaian simbol variabel. 123
  • 123. Contoh CFG dalam BNG : S  a│aAB A  aB B  cS Untuk dapat diubah ke dalam BNG, tata bahasa semula harus memenuhi syarat : • Sudah dalam bentuk normal Chomsky ( BNC ). • Tidak bersifat rekursif kiri. • Tidak menghasilkan ε. Terdapat dua cara pembentukan BNG, yaitu melalui subtitusi dan perkalian matrik. Pada bagian berikutnya dibahas kedua cara tersebut. 124
  • 124. 14.2. Pembentukan BNG Dengan Substitusi. Secara umum langkah-langkah untuk mendapatkan Bentuk Normal Greibach : 1. Tentukan urutan simbol-simbol variabel yang ada dalam tata bahasa. Misalkan terdapat m variabel dengan urutan A1, A2, ….., Am. 2. Berdasarkan urutan simbol yang ditetapkan pada langkah (1) seluruh aturan produksi yang ruas kanannya diawali dengan simbol variabel dapat dituliskan dalam bentuk : Ah  Aiγ Dimana h < > I ( rekursif kiri sudah dihilangkan ), γ dapat berupa simbol-simbol variabel a. Jika h < I, aturan produksi ini sudah benar ( tidak perlu diubah ). b. Jika h > I, aturan produksi belum benar. Lakukan substitusi berulang-ulang terhadap Ai 125
  • 125. ( Ganti Ai pada produksi ini dengan ruas kanan produksi dari variabel Ai ) sehingga suatu saat diperoleh produksi dalam bentuk : Ah  Apγ ( dimana h ≤ p ) • Jika h = p , lakukan penghilangan rekursif kiri • Jika h < p aturan produksi sudah benar. 3. Jika terjadi penghilangan rekursif kiri pada tahap 2b, sejumlah simbol variabel baru yang muncul dari operasi ini dapat disisipkan pada urutan variabel semula dimana saja asalkan ditempatkan tidak sebelum Ah ( dikiri ). 4. Setelah langkah 2 dan 3 dikerjakan maka aturan-aturan produksi yang ruas kanannya dimulai simbol variabel sudah berada dalam urutan yang benar. Ax  Ayγ ( dimana x < y ) Produksi yang lain ada dalam bentuk : 126
  • 126. Ax  Ay ( a = simbol terminal ) Bx  γ Bx = simbol variabel baru yang muncul sebagai akibat dari operasi penghilangan rekursif kiri. 5. BNC diperoleh dengan cara melakukan subtitusi mundur mulai dari variabel Am, lalu Am-1, Am-2, .. Dengan cara ini aturan produksi dalam bentuk : Ax  Ay dapat diubah sehingga ruas kanannya dimulai dengan simbol terminal 6. Produksi yang dalam bentuk ; Bx  γ juga dapat diubah dengan cara substitusi seperti pada langkah 5. Contoh CFG dalam bentuk normal Chomsky dan memenuhi syarat untuk diubah ke BNC. Simbol awal adalah S : 127
  • 127. S  CA A  a│d B  b C  DD D  AB Kita tentukan urutan simbol variabel, misalnya S , A, B, C , D ( S <A<B<C<D ). Perhatikan : urutan tersebut boleh anda tentukan sendiri, buatlah urutan sedemikian rupa sehingga memudahkan untuk proses selanjutnya. Kita periksa aturan produksi yang simbol pertama pada ruas kanan adalah simbol variabel, apakah sudah memenuhi ketentuan urutan variabel : • S  CA ( sudah memenuhi karena S < C ) • C  DD ( sudah memenuhi karena C < D ) 128
  • 128. • D  AB ( sudah memenuhi karena D > A ). yang belum memenuhi urutan yang telah kita tentukan adalah : D  AB, karena ruas kiri > simbol pertama ruas kanan. Maka kita lakukan substitusi pada simbol variabel A, Aturan produksi menjadi D  aB │dB Setelah semua aturan produksi memenuhi ketentuan urutan variabel, lakukan substitusi mundur pada aturan produksi yang belum dalam BNG ( ‘ => dibaca menjadi’ ) • C  DD => C  aBD │dBD • S  CA => S  aBDA │dBDA Perhatikan substitusi mundur dimulai dari aturan produksi yang memiliki ruas kiri dengan urutan variabel paling akhir ( khusus diatas : S < A < B < C < D , maka C lebih dulu disubstitusikan daripada S ) 129
  • 129. Hasil akhir aturan produksi yang sudah dalam BNG : S  aBDA │dBDA A  a│d B  b C  aBD │dBD D  aB │dB Perhatikan : Setiap substitusi kita lakukan pada simbol variabel pertama pada ruas kanan ( pada aturan produksi yang belum dalam BNG tentunya ). Prinsipnya : • Biarkan aturan produksi yang sudah dalam BNG. • Tentukan pengurutan simbol variabel, berdasarkan kondisi aturan produksi yang ada, buatlah urutan s.r.s. untuk memudahkan proses selanjutnya. Mulailah terlebih dahulu dari simbol awal. 130
  • 130. • Lakukan perubahan pada aturan produksi yang belum memenuhi ketentuan aturan tersebut dan bila perlu selama proses itu dapat dilakukan substitusi dan penghilangan rekursif kiri. • Lakukan substitusi mundur s.r.s. semua aturan produksi diawali dengan tepat sebuah simbol terminal. Proses substitusi mundur dimulai dari aturan produksi dengan urutan paling akhir. • Lakukan substitusi mundur juga pada aturan produksi baru yang muncul sebagai hasil penghilangan rekursif kiri. 131
  • 131. Contoh lain ( dengan simbol awal A ) : A BC B CA│b C  AB │a Kita tentukan urutan simbol : A,B,C ( A < B < C ) A BC ( sudah memenuhi kriteria karena A < B ) B CA ( sudah memenuhi kriteria karena B < C ) C  AB ( Padahal C > A sehingga harus diubah ) Pengubahan C  AB : C  AB => C  BCB => C  CACB │abCB C  CACB, Lakukan penghilangan rekursif kiri menjadi : • C  bCBZ1 │aZ1 • Z1  ACB • Z1  ACBZ 132
  • 132. Kita lihat seluruh hasil produksi dari variabel C, sudah dalam Bentuk Normal Greibach : C  bCBZ1 │aZ1 │bCB│a setelah semua aturan produksi sudah memenuhi ketentuan urutan variabel, lakukan substitusi mundur : B CA => B  bCBZ1 a│aZ1 A│bCBA│aA A BC => A  bCBZ1 AC│aZ1 AC│bCBAC│aAC │bC Selanjutnya lakukan pula substitusi pada aturan produksi dengan variabel baru yang terbentuk, pd contoh ini Z1 : Z1  ACB => Z1  bCBZ1 ACCB│aZ1 ACCB │ bCBACCB│aACCB │bCCB Z1  ACB Z1 => Z1  bCBZ1 ACCB Z1 │aZ1 ACCB Z1 │ bCBACCB Z1 │aACCB Z1 │bCCB Z1 133
  • 133. Hasil akhir aturan produksi dalam BNG : Z1  ACBZ1  Z1  bCBZ1 ACCB Z1 │aZ1 ACCB Z1 │ bCBACCB Z1 │aACCB Z1 │bCCB Z1 Z1  ACB Z1  Z1  bCBZ1 ACCB Z1 │aZ1 ACCB Z1 │ bCBACCB Z1 │aACCB Z1 │bCCB Z1 134
  • 134. Modul – 15 PUSH DOWN AUTOMATA ( PDA ) 15.1. Mekanisme kerja PDA. PDA merupakan mesin automata dari bahasa bebas konteks ( CFG ). Bila sebuah FSA mempunyai kemampuan “ memori “ yang terbatas, pada automata Push Down atau PDA didefinisikan sebuah tempat penyimpanan yang tidak terbatas berupa stack/ tumpukan. Stack adalah kumpulan dari elemen-elemen sejenis dengan sifat penambahan elemen dan pengambilan elemen melalui suatu tempat yang disebut Top of Stack ( puncak stack ) dengan aturan pengisian LIFO ( Last In First Out ). Pengambilan elemen dari stack dinyatakan dengan operasi Pop, sedangkan memasukan elemen ke dalam stack dengan operasi Push. 135
  • 135. Setiap elemen stack bisa memuat satu simbol, yang pada PDA disebut sebagai simbol Stack. Contoh sebuah Stack : Bila dilakukan operasi Pop, maka kondisi stack menjadi : Top Stack  Bila dilakukan operasi Push B, maka kondisi stack menjadi : Top Stack  A D E E D E D B 136
  • 136. Sebuah Push Down Automata di nyatakan dalam 7-tupel M = ( Q,Σ,Γ,∆,S,F,Z ) , dimana : Q = himpunan state Σ = himpunan simbol input Γ = simbol-simbol tumpukan/ stack ∆ = fungsi transisi S = state awal , S ϵ Q F = himpunan final state, F subset Q Z = simbol awal tumpukan/ top srack, Z ϵ Γ Dari kompunen diatas bisa kita lihat : • Definisi untuk : Q, Σ,S,F sama dengan yang ada pada finite state automata. • Tupel baru disitu adalah : Γ dan Z yang berhubungan dengan stack. 137
  • 137. ∆ memiliki kemiripan dengan δ pada finite state automata, dengan beberapa perbedaan ( akan dijelaskan nanti ). PDA dapat dianggap sebagai FSA yang dilengkapi stack. Sebuah PDA yang menerima suatu input, selain dapat berpindah state juga bisa melakukan operasi pada stack. Kondisi/ konsfigurasi PDA pada suatu saat dinyatakan dengan state dan stack. Pada PDA terdapat juga 2 jenis transisi ( ∆ ). Yang pertama memakai simbol input. Bergantung pada simbol input, simbol pada top stack dan state, terdapat sejumlah pilihan yang mungkin. Setiap pilihan terdiri dari state berikutnya dan simbol-simbol ( bisa satu, beberapa atau kosong ) untuk mengganti simbol pada top stack. 138
  • 138. Penggantian simbol pada top stack bisa berupa Push, untuk satu atau beberapa simbol, bisa berupa pop, untuk simbol kosong. Setelah membuat pilihan, kemudian PDA membaca simbol input berikutnya : Jenis transisi kedua biasa disebut transisi – Ɛ, mirip yang pertama, kecuali dilakukan tanpa membaca simbol input. Transisi ini memungkinkan PDA memanipulasi isi stack atau berpindah state tanpa membaca simbol input. Bahasa yang diterima oleh suatu PDA bisa berupa semua himpunan input, yang mana urutan pergerakannya bisa menyebabkan PDA mengosongkan stack. PDA ini dapat disebut PDA yang melakukan penerimaan dengan stack kosong atau PDA null stack. Cara lain adalah dengan melakukan mekanisme seperti bagaimana automata berhingga menerima input, yaitu dengan menentukan satu atau beberapa state, dan bahasa yang diterima adalah himpunan semua input 139
  • 139. pilihan transisinya menyebabkan PDA mencapai state akhir, biasa disebut PDA final state. Contoh sebuah PDA : Memiliki fungsi transisi berikut : Q = { q1,q2 } ∆ (q1, Ɛ, Z ) = { (q2, Z) } Σ = { a,b } ∆ (q1, a, Z ) = { (q1, AZ) } Γ = { A,B,Z } ∆ (q1, b, Z ) = { (q1, BZ) } S = q1 ∆ (q1, a, A) = { (q1, AA) } Z = Z ∆ (q1, b, A ) = { (q1, Ɛ) } F = { q2 } ∆ (q1, a, B ) = { (q1, Ɛ) } ∆ (q1, b, B ) = { (q1, BB) } Kita bisa membaca fungsi transisi tersebut sebagai berikut : ∆ (q1, a, Z ) = { (q1, AZ) } mesin dengan konsfigurasi : 140
  • 140. state q1 dan top stack Z membaca input ‘ a ‘ Konsfigurasi menjadi : state q1 push A ke stack, A menjadi top stack ∆ (q1, b, Z ) = { (q1, Ɛ) } mesin dengan kosfigurasi : state q1 dan top stack A membaca input ‘ b ‘ Konsfigurasi menjadi : state q1 A di pop, elemen di bawah A menjadi top stack ∆ (q1, Ɛ, Z ) = { (q2, Z) } Z A A Z 141
  • 141. Mesin dengan kosfigurasi : state q1 dan top stack Z serta tanpa membaca input ( Ɛ ) Konsfigurasi menjadi : State q2, stack tidak berubah Misal ingin diketahui apakah string ‘abba’ diterima oleh PDA ini : Perhatikan : kapan Pop/ Push dilakukan pada stack berdasarkan fungsi transisinya. Pop dan push untuk setiap kali transisi pada mesin PDA, dapat dilakukan pada lebih dari satu simbol. Konsfigurasi awal mesin : state q1 dan top stack Z, membaca input ‘a’. Fungsi transisinya : ∆ (q1, a, Z ) = { (q1, AZ) } Z 142
  • 142. Konsfigurasi mesin menjadi : state q1 A di push. 1. Membaca input ‘b’ Fungsi transisinya : ∆ (q1, b, A ) = { (q1, Ɛ) } konsfigurasi mesin menjadi : state q1 , top stack di pop Z A Z Z 143
  • 143. 2. Membaca input ‘b’ Fungsi transisinya : ∆ (q1, b, Z) = { (q1, Ɛ) } konsfigurasi mesin menjadi : state q1 , B di push 3. Membaca input ‘a’ ∆ (q1, a, B ) = { (q1, Ɛ) } Konsfigurasi mesin menjadi : state q1 top stack di pop Z B Z 144
  • 144. Semua input sudah selesai dibaca Fungsi transisinya : ∆ (q1, Ɛ, Z ) = { (q2, Z) } Konsfigurasi mesin menjadi : di state q2 , state q2 berada dalam F ( final state 0, maka abba, diterima oleh PDA itu. Dapat kita lihat PDA diatas termasuk jenis PDA yang melakukan penerimaan dengan mencapai state akhir. Z 145
  • 145. Contoh PDA yang melakukan penerimaan dengan jalan stack kosong. Konsfigurasi PDA sebagai berikut : Q = { q1,q2 } Σ = { 0,1,2 } Γ = { Z,B,G } S = q1 Z = Z F = { Ø } Perhatikan : Untuk PDA menerima dengan stack kosong, maka himpunan state akhir dinyatakan sebagai Ø 146
  • 146. Memiliki fungsi transisi sebagai berikut : ∆ (q1, 0, Z ) = { (q1, BZ) } ∆ (q1, 0, B) = { (q1, BB) } ∆ (q1, 0, G) = { (q1, BG) } ∆ (q1, 2, G ) = { (q2, Z) } ∆ (q1, 2, Z ) = { (q2, B) } ∆ (q1, 2, B) = { (q2, G) } ∆ (q2, 0, B ) = { (q2, Ɛ) } ∆ (q2, Ɛ, Z ) = { (q2, Ɛ) } ∆ (q1, 1, Z ) = { (q1, GZ } ∆ (q1, 1, B) = { (q1, GB) } ∆ (q1, 1, G ) = { (q1, GG) } ∆ (q2, 1, Z ) = { (q2, Ɛ) } 147
  • 147. Misal ingin diketahui apakah string ‘010’ diterima PDA : 1. Konsfigurasi awal mesin : state q1 stack z, menerima input ‘ 0 ‘. Fungsi transisinya : ∆ (q1,0, Z ) = { (q1, BZ) }. Konsfigurasi mesin menjadi : state q1 , B di push. 2. Membaca input ‘ 2 ‘ Fungsi transisinya : ∆ (q1, 2, B ) = { (q2, B) } Konsfigurasi mesin menjadi state q2, stack ; tetap Z B Z 148
  • 148. 3. Membaca input ‘ 0 ‘. Fungsi transisinya : ∆ (q2, 0, B ) = { (q2, Ɛ) } Konsfigurasi mein menjadi : state q2 , B di pop 4. Tanpa membaca input ( Ɛ ). Fungsi transisinya : ∆ (q2, Ɛ, Z ) = { (q2, Ɛ) } Konsfigurasi mein menjadi : state q2 , Z di pop Stack kosong. Semua input sudah selesai dibaca. Stack kosong, berarti string tersebut diterima oleh Push Down Automata. 149
  • 149. 15.2. Push Down Automata Untuk Suatu Tata Bahasa Konteks. Karena PDA merupakan penerima bahasa-bahasa bebas konteks, maka untuk suatu bahasa bebas konteks kita dapat memperoleh sebuh PDA yang menerimanya, sebaliknya dari bahasa yang diterima oleh sebuah PDA kita dapat mengetahui suatu tata bahasa bebas konteks. Sebuh PDA bisa dibuat untuk kumpulan aturan produksi dari suatu tata bahasa bebas konteks. Langkah-langkahnya : a. Definisikan : Q = { q1,q2 , q3 } Σ = simbol terminal S = q1 F = { q2 } 150
  • 150. Untuk yang berhubungan dengan stack tentukan : Γ = semua simbol variabel, simbol terminal dan Z simbol awal stack. b. Mesin ini dimulai dengan mem-push Z pada top stack. Pada setiap langkah berikutnya dilakukan salah satu dari hal berikut :  Jika top stack dari simbol tumpukan adalah suatu variabel ( misal A ), kita menggantinya dengahn ruas kanan dari A, misal A  w , maka kita ganti dengan w.  Jika top stack dari simbol tumpukan adalah suatu terminal dan jika ia menyamai simbol masukan berikutnya, kita pop dari tumpukan . c. Berdasarkan aturan diatas kita dapat mengkonstruksi empat tipe transisi : 151
  • 151. 1. ∆ (q1, Ɛ, Z ) = { (q2, SZ) }, untuk mem-push simbol awal (S) ke stack. 2. ∆ (q2, Ɛ, A) = { (q2, w) } , A  w adalah sebuah produksi dalam CFG untuk semua variabel A. 3. ∆ (q2, a, a ) = { (q2, Ɛ) } untuk setiap simbol terminal ( untuk mempop perbandingan terminal yang sama ). 4. ∆ (q2, Ɛ, Z ) = { (q3, Z) } , bila selesai membaca semua input dan top stack adalah Z, berarti string inout sukses diterima oleh PDA (q3, state akhir ). 152
  • 152. Contoh penerapan, misalkan sebuah tata bahasa bebas konteks dengan simbol awal D : D __> aDa │bDb │c Dapat dikonstruksi PDA nya : Fungsi transisinya : Q = { q1,q2 ,q3 } ∆ (q1, Ɛ, Z ) = { (q2, DZ) } Σ = { a,b,c } ∆ (q2, Ɛ, D ) = { (q2, aDa), q2, bDb, q2, c } Γ = { D,a,b,c,Z} ∆ (q2,a, a ) = ∆(q2,c,c) = {(q2, Ɛ)} S = q1 ∆ (q2, Ɛ, Z ) = { (q3, Z) } F = { q3 } 153
  • 153. Dari aturan produksi yang ada kita lihat CFG tersebut bisa menurunkan untai ‘aca’ sebagai berikut : D => aDa => aca Maka PDA diatas juga harus mampu menerima untai tersebut. Kita coba periksa : Konsfigurasi awal mesin : state q1, top stack Z , dapat menerima input ( Ɛ ). Fungsi transisinya : ∆ (q1, Ɛ, Z ) = { (q2, DZ) } Konsfigurasi mein menjadi : state q2 , D di push D Z 154
  • 154. 1. Tanpa menerima input ( Ɛ ). Fungsi transisinya : ∆ (q2, Ɛ, D ) = { (q2, aDa) } Konsfigurasi mein menjadi : state q2, pop top stack, push ‘aDa’ Menerima input ‘ a ‘ Fungsi transisinya : ∆ (q2, a, a ) = { (q2, Ɛ) } Konsfigurasi mein menjadi : state q2 , pop top stack D A Z Z D a a 155
  • 155. 2. Tanpa menerima input ( Ɛ ). Fungsi transisinya : ∆ (q2, Ɛ, D ) = { (q2, c) } Konsfigurasi mein menjadi : state q2, pop top stack, push ‘ c ’ 3. Menerima input ‘ a ‘ Fungsi transisinya : ∆ (q2, a, a ) = { (q2, Ɛ) } Konsfigurasi mein menjadi : state q2 , pop top stack Z A C Z A 156
  • 156. 4. Tanpa Menerima input ‘ a ‘ Fungsi transisinya : ∆ (q2, Ɛ, Z ) = { (q3, Z) } Konsfigurasi mein menjadi : state q3 Tidak ada transisi lagi dari q3 , karena q3 state akhir dan semua input sudah selesai dibaca, maka menandakan untai ‘ aca ‘ diterima oleh Push Down Automata. Perhatikan : Bila perlu lakukan pengubahan CFG ke BNG lebih dahulu untuk memudahkan mengkonstruksi PDA – nya. Z 157
  • 157. 15.3. Deskripsi Seketika Pada Mesin PDA Tahapan transisi no (1) sampai no (7) pada contoh diatas dapat pula dinyatakan dalam suatu notasi yang disebut deskripsi seketika ( instantaneous description ). Deskripsi seketika tersebut digunakan untuk menyatakan secara formal kosfigurasi mesin PDA pada suatu saat. Perubahan dari suatu kondisi ke berikutnya dipisahkan dengan tanda ‘ │ ─ ‘. Kosfigurasi pada suatu saat dapat dinyatakan dengan triplet : ( q, w, u ). Dimana q menyatakan state, w adalah string dan u adalah isi stack dengan simbol terkiri adalah top stack. Jadi tahapan no (1) – (7) dapat dinyatakan sebagai berikut : ( qu,aca,Z ) │ ─ ( q2 , aca, DZ ) │ ─ ( q2 , aca, aDaZ ) │ ─ ( q2 , ca, DaZ ) │ ─ ( q2 , ca, caZ ) │ ─ ( q2 , a, aZ ) │ ─ ( q2 , Ɛ, Z ) │ ─ ( q3 , Ɛ, Z ) 158
  • 158. Pada awalnya memang sulit bagi kita untuk ‘membaca’ suatu PDA dibandingkan FSA yang lebih sederhana. Jangan kuatir, itulah sebabnya kita memerlukan otomata untuk melakukan hal-hal yang ‘ sulit ‘ bagi kita. Gambar 13.1. Beberapa Jenis Push Down Automata. PDA DPDA NPDA NULL STACK FINAL STATE NULL STACK FINAL STACK 159
  • 159. Bila pada FSA terdapat DFA dan NFA, maka pada PDA bisa pula digolongkan menjadi yang Deterministic Push Down Automata ( DPDA ) Dan ( NPDA ). Contoh PDA yang deterministic adalah PDA diatas ( sub bab 13.2 ), sedang NPDA ada pada contoh di sub bab 13.1. Itu bisa kita lihat pada Gambar 13.1. Dari suatu DPDA dapat dilakukan pengubahan ke NPDA, tetapi dari NPDA tidak dapat diubah menjadi DPDA. Inilah perbedaan antara PDA dengan FSA. Bahasa-bahasa yang diterima oleh DPDA bisa disebut bahasa bebas konteks deterministic. Keterkaitan antara keduanya dapat dilihat pada gambar 13.2. 160
  • 160. Gambar 15.2. : Kedudukan Bahasa Bebas Konteks Determistic Context Free Language Deterministi c Context Free Language 161
  • 161. 15.4. Ekivalensi Final State PDA Dan Null Stack PDA Dapat dilakukan pengubahan Final state PDA ke Null stack PDA dan sebaliknya. Misalkan kita memiliki M1 adalah Final state dengan konsfigurasi : M1 = ( Q, Σ, Γ, ∆, S, F, Z ) Dapat diperoleh pada Null stack M2 , dengan menambahkan : simbol stack baru yang tidak dikenal M1 sebut saja X. Simbol baru ini merupakan simbol stack awal dari mesin M2 . Jika stack hanya berisi simbol X berarti menurut M1 stack tersebut ‘ kosong ‘. Hal ini diperlukan untuk mencegah terjadinya kondisi bahwa stack dalam keadaan benar-benar ‘kosong’, padahal mesin belum mencapai state akhir. State baru qs yang akan merupakan state awal dari M2 dan state baru q1 yang dipakai M2 untuk menghapus isi stack yang tersisa jika M1 selesai beroperasi. 162
  • 162. Konsfigurasi M2 : M2 = ( Q U { qs, qf }, Σ, Γ, U { X }, ∆’, qs, Ø, X ) Selanjutnya kita tentukan ‘ kelakuan ‘ dari M2 , yaitu fungsi transisinya (∆’ ) : M2 bekerja dengan state awal qs dan simbol awal stack X, maka kita buat transisi untuk berpindah ke state awal semula ( misal S ) dan mem-push Z sebagai top stack : ∆’( qs, Ɛ, X ) = { ( S, ZX ) } Selanjutnya M2 akan menirukan kelakuan M1 : ∆’( q, α, P ) = ∆ (q, α, P ) , untuk setiap q ϵ Q, untuk setiap α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ Bila mencapai ‘ final state di M1 maka mesin M2 akan berpindah ke qf 163
  • 163. ∆( q, Ɛ, P ) = { ( qf, P ) } untuk setiap q ϵ F, untuk setiap P ϵ ( Γ U{ X } ). Selanjutnya lakukan pop semua elemen : ∆’( qf, Ɛ, P ) = { (qf, P ) } untuk setiap P ϵ ( Γ U{ X } ). Sebagai contoh, misalkan Final State Push Down Automata dengan konsfigurasi : Q = { q1,q2 ,q3 } Σ = { a,b,c } Γ = { D,a,b,c,Z, X } S = q1 F = { q3 } Z = Z Diubah ke null stack PDA dengan melakukan pengubahan : 164
  • 164. Q’ = { q1,q2 ,q3, qs, qf } Σ = { a,b,c } Γ’ = { D,a,b,c,Z, X } S’ = qs F’ = Ø Z’ = X Selain fungsi transisi yang sudah ada ∆ (q, α, P ) = ∆ (q, α, P ) untuk setiap q ϵ Q, untuk setiap α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ , kita tambahkan fungsi transisi baru sebagai berikut : Transisi untuk berpindah ke state awal semula : ∆’ (qs, Ɛ, X ) = { (q1, ZX) } Transisi dari final state’ dimesin semula untuk berpindah ke qf : 165
  • 165. ∆’ (q3, Ɛ, D ) = { (qf, D) }, ∆’ (q3, Ɛ, a ) = { (qf, a) }, ∆’ (q3, Ɛ, b ) = { (qf, b) }, ∆’ (q3, Ɛ, c ) = { (qf, c) } , ∆’ (q3, Ɛ, Z ) = { (qf, Z) } , ∆’ (q3, Ɛ, X ) = { (qf, X) } Transisi untuk melakukan pop semua elemen saat mencapai state qf : ∆’ (qf, Ɛ, D) = { (qf, Ɛ) } , ∆’ (qf, Ɛ, a ) = { (qf, Ɛ) } , ∆’ (qf, Ɛ, b ) = { (qf, b) } , ∆’ (qf, Ɛ, c ) = { (qf, Ɛ) } , ∆’ (qf, Ɛ, Z ) = { (qf, Ɛ) } , ∆’ (qf, Ɛ, X ) = { (qf, Ɛ) } Langkah-langkah untuk melakukan perubahan null stack PDA ke Final state PDA. Misalkan saja kita memiliki M1 adalah PDA null stack dengan kosfigurasi : M1 = ( Q, Σ, Γ, ∆, S, Ø, Z ) 166
  • 166. Dapat diperoleh PDA final state M2 dengan menambahkan : simbol stack baru yang tidak dikenal oleh M1, sebut saja X. Simbol baru ini merupakan simbol awal stack awal dari mesin M2. Simbol ini berguna sebagai sentinel, bila melihat X maka M2 dapat mengetahui jika stack kosong. State baru qs yang akan merupakan state awal dari M2 dan state baru qf yang merupakan state final dari M2. Konsfigurasi M2 : M2 = ( Q U { qs, qf }, Σ, Γ U { X }, ∆’, qs, { qf } , X ) Selanjutnya kita tentukan kelakukan dari M2, yaitu fungsi transisinya ( ∆’ ) : M2 bekerja dengan state awal qs dan simbol awal stack X, maka dibuat transisi berpindah ke state awal semula ( misal S ) dan mem-push Z sebagai top stack : ∆’ (q2, Ɛ, X ) = { (qf, X) } 167
  • 167. Selanjutnya M2 akan menirukan kelakuan M1 : ∆’ (q1, α, P ) = ∆ (q1, α, P ) untuk setiap q ϵ Q, untuk setiap α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ . Jika M2 menemukan simbol X, M2 menganggap stack kosong, maka berpindah ke state final qf : ∆’ (q2, Ɛ, X ) = { (qf, X) } untuk setiap q ϵ Q Sebagai contoh, misalkan kita memiliki null stack PDA dengan kosfigurasi : Q = { q1,q2 } Σ = { 0, 1, 2 } Γ = { Z, B, G} S = q1 F = Ø Z = Z 168
  • 168. Diubah ke final state PDA dengan melakukan pengubahan : Q’ = { q1,q2 ,qs, qf } Σ = { 0, 1, 2 } Γ’ = { Z, B, G, X} S’ = qs F’ = { qf } Z’ = X Selain fungsi transisi yang sudah ada (∆’ (q, α, P ) = ∆ (q, α, P ) untuk setiap q ϵ Q, untuk setiap α ϵ ( Σ U Ɛ ), untuk setiap P ϵ Γ . Kita tambahkan fungsi transisi baru sebagai berikut : Transisi untuk berpindah dari state ke state final qf bila menemui top stack adalah X. 169
  • 169. ∆’ (q1, Ɛ, X ) = { (qf, X) } , ∆’ (q2, Ɛ, X ) = { (qf, X) } perhatikan : Pada Final state PDA, kita tidak berkepentingan dengan kondisi stack setelah mencapai state akhir, sehingga kita tidak perlu membuat transisi untuk mengosongkan stack. 170
  • 170. Soal-Soal Modul – 15 1. Konstruksikan PDA yang menerima bahasa dengan tata bahasa bebas konteks berikut : S  aAA A  aS │bS│a 2. Tentukan aturan produksi untuk tata bahasa bebas konteks yang diterima oleh PDA dengan konsfigurasi : Q = { q0,q1 } Σ = { 0, 1 } Γ = { X, Z} S = q0 F = Ø Z = Z 171
  • 171. memiliki fungsi transisi sebagai berikut : ∆ (q0, 1, Z ) = { (q0, XZ) } ∆ (q0, 1, X ) = { (q0, XX) } ∆ (q0, 0, X ) = { (q1, X) } ∆ (q0, Ɛ, Z ) = { (q0, Ɛ) } ∆ (q1, 1, X ) = { (q1, Ɛ) } ∆ (q1, 0, Z0 ) = { (q0, Z) } 3. Buktikan apakah PDA diatas menerima string input ‘ 001100 ‘ ?. 4. Mengapa pada PDA yang melakukan penerimaan dengan stack kosong, himpunan state akhir = Ø 172
  • 172. DAFTAR PUSTAKA • Alfred J. Aho & Jeffrey D. Ullman, The Theory of Parsing, Translation and Compiling Vol I : oarsing, Prentice Hall, 1972. • Dean Kelly, Otomata dan Bahasa-Bahasa Formal, Sebuah Pengantar, Prenhalindo, 1999. • Firrar Utdirartatmo, Teori Bahasa dan Otomata, J & J Learning, Yogyakarta, 2001. • John E. Hopcroft and Jeffrey D. Ullman, Introduction To Automata Theory, Languages and Computation, addison Wessley Inc, 1979. • Peter Linz, An Introduction to Formal languages and Automata, DC Heath and Company, 1990. 173