teori bahasa automata1
TRANSCRIPT
PERTEMUAN I
PENDAHULUAN
Teori Bahasa
Teori bahasa membicarakan bahasa formal (formal language),terutama untuk kepentingan perancangan kompilator (compiler) danpemroses naskah (text processor). Bahasa formal adalah kumpulankalimat. Semua kalimat dalam sebuah bahasa dibangkitkan olehsebuah tata bahasa (grammar) yang sama. Sebuah bahasa formalbisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.Dikatakan bahasa formal karena grammar diciptakan mendahuluipembangkitan setiap kalimatnya. Bahasa manusia bersifatsebaliknya; grammar diciptakan untuk meresmikan kata-kata yanghidup di masyarakat. Dalam pembicaraan selanjutnya ‘bahasaformal’ akan disebut ‘bahasa’ saja.
Automata
Automata adalah mesin abstrak yang dapat mengenali (recognize),menerima(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasatertentu.Untuk memodelkan hardware dari komputer diperkenalkan otomata.Otomata adalah fungsi-fungsi dari komputer digital. Menerima input,Otomata adalah fungsi-fungsi dari komputer digital. Menerima input,menghasilkan output, bisa memiliki penyimpanan sementara dan mampumembuat keputusan dalam mentransformasikan input ke output. Sebuahbahasa formal adalah suatu abstraksi terdiri dari himpunan simbol-simboldan aturan-aturan yang mana simbol-simbol tersebut bisa dikombinasikanke dalam entitas yang disebut kalimat. Meskipun bahasa formal yangdipelajari di sini lebih sederhana daripada bahasa pemrograman, merekamempunyai banyak hal yan g penting. Kita bisa mempelajari banyaktentang bahasa pemrograman dari bahasa formal.
Otomata merupakan suatu sistem yang terdiri atassejumlah berhingga state, dimana state menyatakaninformasi mengenai input yang lalu dan dapat dianggapsebagai memori mesin. Input pada mesin otomatadianggap sebagai bahasa yang harus dikenali oleh mesin.Selanjutnya, mesin otomata membuat keputusan yangSelanjutnya, mesin otomata membuat keputusan yangmengindikasikan apakah input itu diterima atau tidak.
Beberapa Pengertian Dasar
• Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalamgeometri). Sebuah huruf atau sebuah angka adalah contoh simbol.
• String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, jika a, b,dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangundari ketiga simbol tersebut.
• Jika w adalah sebuah string maka panjang string dinyatakan sebagai | w | dan• Jika w adalah sebuah string maka panjang string dinyatakan sebagai | w | dandidefinisikan sebagai cacahan (banyaknya) simbol yang menyusun stringtersebut. Sebagai contoh, jika w = abcb maka | w | = 4.
• String hampa adalah sebuah string dengan nol buah simbol. String hampadinyatakan dengan simbol ε (atau ^) sehingga |ε |= 0. String hampa dapatdipandang sebagai simbol hampa karena keduanya tersusun dari nol buahsimbol.
• Alfabet adalah hinpunan hingga (finite set) simbol-simbol
Operasi Dasar String
Diberikan dua string : x = abc, dan y = 123
• Prefik string w adalah string yang dihasilkan dari string w dengan menghilangkannol atau lebih simbol-simbol paling belakang dari string w tersebut.Contoh : abc, ab, a, dan ε adalah semua Prefix(x)
• ProperPrefix string w adalah string yang dihasilkan dari string w dengan• ProperPrefix string w adalah string yang dihasilkan dari string w denganmenghilangkan satu atau lebih simbol-simbol paling belakang dari string wtersebut.Contoh : ab, a, dan ε adalah semua ProperPrefix(x)
• Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w denganmenghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut.Contoh : abc, bc, c, dan ε adalah semua Postfix(x)
• ProperPostfix (atau PoperSufix) string w adalah string yang dihasilkan daristring w dengan menghilangkan satu atau lebih simbol-simbol paling depan daristring w tersebut.Contoh : bc, c, dan ε adalah semua ProperPostfix(x)
• Head string w adalah simbol paling depan dari string w.Contoh : a adalah Head(x)
• Tail string w adalah string yang dihasilkan dari string w dengan menghilangkansimbol paling depan dari string w tersebut. Contoh : bc adalah Tail(x)simbol paling depan dari string w tersebut. Contoh : bc adalah Tail(x)
• Substring string w adalah string yang dihasilkan dari string w denganmenghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.Contoh : abc, ab, bc, a, b, c, dan ε adalah semua Substring(x)
• ProperSubstring string w adalah string yang dihasilkan dari string w denganmenghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.Contoh : ab, bc, a, b, c, dan ε adalah semua Substring(x)
• Subsequence string w adalah string yang dihasilkan dari string w denganmenghilangkan nol atau lebih simbol-simbol dari string w tersebut.Contoh : abc, ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)
• ProperSubsequence string w adalah string yang dihasilkan dari string w denganmenghilangkan satu atau lebih simbol-simbol dari string w tersebut.Contoh : ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)
• Concatenation adalah penyambungan dua buah string. Operator concatenationadalah concate atau tanpa lambang apapun.adalah concate atau tanpa lambang apapun.Contoh : concate(xy) = xy = abc123
• Alternation adalah pilihan satu di antara dua buah string. Operator alternationadalah alternate atau |.Contoh : alternate(x|y) = x | y = abc atau 123
• Kleene Closure : x* = ε | x | xx xxx |… = ε | x | x 2 | x 3 |…
• Positive Closure : x + = x | xx | xxx |… = x |x 2 | x 3 |…
Konsep Dasar1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal
atau token.2. Kalimat adalah deretan hingga simbol-simbol terminal.3. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga
kalimat.4. Simbol-simbol berikut adalah simbol terminal (VT) :
• huruf kecil alfabet, misalnya : a, b, c• simbol operator, misalnya : +, −, dan ו simbol operator, misalnya : +, −, dan ו simbol tanda baca, misalnya : (, ), dan ;• string yang tercetak tebal, misalnya : if, then, dan else.
5. Simbol-simbol berikut adalah simbol non terminal (VN) :• huruf besar alfabet, misalnya : A, B, C• huruf S sebagai simbol awal• string yang tercetak miring, misalnya : expr dan stmt.
6. Huruf besar akhir alfabet melambangkan simbol terminal atau non terminal, misalnya : X, Y, Z.
7. Huruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbolterminal, misalnya : x, y, z.
8. Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminalatau simbol-simbol non terminal atau campuran keduanya, misalnya : α, β, dan γ.
9. Sebuah produksi dilambangkan sebagai α → β, artinya : dalam sebuah derivasidapat dilakukan penggantian simbol α dengan simbol β.
10. Simbol α dalam produksi berbentuk α → β disebut ruas kiri produksi sedangkansimbol β disebut ruas kanan produksi.
11. Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuahderivasi dilambangkan sebagai : α ⇒ β.
12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau ⇒
12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya.
13. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Jelaslah bahwakalimat adalah kasus khusus dari sentensial.
14. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasiberakhir jika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas simbol-simbol terminal itu).
15. Pengertian non terminal berasal dari kata not terminate (belum/tidak berakhir),maksudnya derivasi belum/tidak berakhir jika sentensial yang dihasilkanmengandung simbol non terminal.
Grammar dan Klasifikasi Chomsky
Grammar G didefinisikan sebagai pasangan 4 tuple : V T , V N , S, dan Q, dandituliskan sebagai G(V T , V N , S, Q), dimana :VT : himpunan simbol-simbol terminal (atau himpunan token -token, atauhimpunan token -token, atau
alfabet)VN : himpunan simbol-simbol non terminalS ∈ V N : simbol awal (atau simbol start)Q : himpunan produksi
Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya (α → β), NoamChomsky mengklasifikasikan 4 tipe grammar :1. Grammar tipe ke-0 : Unrestricted Grammar (UG)
Ciri : α, β ∈ (V T | VN )*, | α | > 02. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)
Ciri : α, β ∈ (V T | VN )*, 0 < | α | ≤ | β | 3. Grammar tipe ke-2 : Context Free Grammar (CFG)
∈ ∈
∈
3. Grammar tipe ke-2 : Context Free Grammar (CFG)Ciri : α ∈ V N , β ∈ (V T | VN )*
4. Grammar tipe ke-3 : Regular Grammar (RG)Ciri : α ∈ V N , β ∈ {V T , V T VN } atau α ∈ V N , β ∈ {V T , V N
VT }Mengingat ketentuan simbol-simbol (hal. 3 no. 4 dan 5),
ciri-ciri RG sering dituliskan sebagai : α ∈ V N , β ∈ {a, bC} atau α ∈ V N , β ∈ {a, Bc}
Contoh Analisa Penentuan Type Grammar1. Grammar G1 dengan Q1 = {S → aB, B → bB, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah V N maka G1 kemungkinan tipe CFG atau RG.Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau stringV T VN maka G1 adalah RG.
2. Grammar G 2 dengan Q 2 = {S → Ba, B → Bb, B → b}. Ruas kiri semuaproduksinya terdiri dari sebuah VN maka G 2 kemungkinan tipe CFG atau RG.Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau stringV V maka G 2 adalah RG.VN V T maka G 2 adalah RG.
3. Grammar G3 dengan Q 3 = {S → Ba, B → bB, B → b}. Ruas kiri semuaproduksinya terdiri dari sebuah VN maka G 3 kemungkinan tipe CFG atau RG.Selanjutnya karena ruas kanannya mengandung string V T VN (yaitu bB) dan juga string VN V T (Ba) maka G 3 bukan RG, dengan kata lain G 3 adalah CFG.
4. Grammar G 4 dengan Q 4 = {S → aAb, B → aB}. Ruas kiri semua produksinyaterdiri dari sebuah VN maka G 4 kemungkinan tipe CFG atau RG. Selanjutnyakarena ruas kanannya mengandung string yang panjangnya lebih dari 2 (yaituaAb) maka G 4 bukan RG, dengan kata lain G 4 adalah CFG.
5. Grammar G5 dengan Q 5 = {S → aA, S → aB, aAb → aBCb}. Ruas kirinyamengandung string yang panjangnya lebih dari 1 (yaitu aAb) maka G5kemungkinan tipe CSG atau UG. Selanjutnya karena semua ruas kirinya lebihpendek atau sama dengan ruas kananya maka G 5 adalah CSG.
6. Grammar G 6 dengan Q 6 = {aS → ab, SAc → bc}. Ruas kirinya mengandungstring yang panjangnya lebih dari 1 maka G 6 kemungkinan tipe CSG atau UG.Selanjutnya karena terdapat ruas kirinya yang lebih panjang daripada ruaskananya (yaitu SAc) maka G 6 adalah UG. kananya (yaitu SAc) maka G 6 adalah UG.
Tipe 0 ⇒ Mesin Automata ⇒ Mesin Turing
Tipe 1 ⇒ Mesin Automata ⇒ Linier bounded
Tipe 2 ⇒ Mesin Automata ⇒ Push Down ( NFA [Non Deterministic Finite Automata] }
Tipe 3 ⇒ DFA, NFA ( DFA [Deterministic Finite Automata] )
� Alternate → |
x | y = y | x
| → pilihan x atau y | → pilihan x atau y
� Cleen closure ( * )
x* = ε x | xx | xxx |…..
� Positive closure ( + ) → tanpa hampa
x + = x | xx | xxx |……..
� ( x * )* = x *
( x | y )* = ε | x|y | xx | yy | xy | yx | xxy | yyx |…
� ( xy )* = xy | xyxy | xyxyxy |…..
Tipe 3 ? BENAR ATAU SALAH jawaban dibawah ini
a. B → bdB VN → VTVTVN ( Ya )
b. B → bcdef VN → VTVTVTVTVT ( Tidak )
c. A → ass VN → VTVNVN ( Tidak )
d. Ad → dB VNVT → VTVN ( Tidak )
Tipe 2 ?
e. B → bcdefG VN → VTVTVTVTVTVN ( Ya )
f. A → Ace VN → VNVTVT ( Ya )
g. A → ab VN → VTVT ( Ya )
h. A → aSa VN → VTVNVT ( Ya )
Tipe 1
i. Ad → b VTVT → VT ( Tidak )
j. AB → cde VNVN→ VTVTVT ( Ya )
k. Ad → dB VNVT→VTVN ( Ya )
l. adC → DE VTVTVN → VNVN ( Tidak )
Tipe 0Tipe 0
m. AB → cde VNVN → VTVTVT ( Tidak )
n. adC → DE VTVTVN → VNVN ( Ya )
o. ad → b VTVT → VN ( Ya )
PERTEMUAN 2PERTEMUAN 2
FINITE STATE AUTOMATA ( FSA )
FINITE STATE AUTOMATA ( FSA )
FSA merupakan mesin automata dari bahasa Regular. FSA memiliki state yang banyaknya berhingga dan dapat berpindah – pinda h dari satu state ke state yang lain. Perpindahan state dinyatakan denga n transisi. FSA dapat menerima input & menghasilkan output.
Contoh : mesin automata untuk pencek pariti ganjil
����O 1 ����O
1 ����o
• Lingkaran menyatakan state/ kedudukan• Lingkaran ganda menyatakan state akhir ( final stat e )• Label pada lingkaran adalah nama state tersebut� Busur menyatakan transisi / perpindahan state� Label pada busur adalah simbol input� Lingkaran didahului oleh sebuah busur tanpa label m enyatakan state awal � Simbol input { 0.1}
Even OddOddOdd
� State awal Even� State akhir Odd
� Bila mesin mendapat Input : l l 0 l, apakah diterim a oleh mesin? Input akan
diterima bila berakhir pada hait atau final state . Untuk state yang
dilakukan
Even l Odd l Even O Even l OddEven l Odd l Even O Even l Odd
Berakhir pada state Odd, maka Input ll0l diterima o leh mesin
� Bila mendapat input l0l, apakah diterima oleh mesin ?
Untuk state yang dilakukan
Even l Odd 0 Odd l Even
Berakhir pada Even, maka Input l0l ditolak oleh mes in
Secara formal Finite State Automata dinyatakan deng an 5 tuple atau m = { Q, ΣΣΣΣ, δδδδ, S, F }Definisinya :Q = Himpunan state atau kedudukanΣΣΣΣ = Himpunan simbol input / masukan / abjad / angka δδδδ = Fungsi transisiS = State awal / kedudukan awal, S € QF = Himpunan state akhir, F € Q
DFA ( Deterministic Finite Automata )DFA ( Deterministic Finite Automata )
FSA
NFA ( Non Deterministic Finite Automata )
• DFA ( Deterministic Finite Automata)1. Mesin DFA
�b �a �a
b b
a
qo q1 q2
Q = {q0, q1, q2}
ΣΣΣΣ = {a, b }
S = {q0}
F = {q2}
Fungsi Transisi Tabel Transisi
δδδδ ( q0, a ) = qo δ a b
δδδδ ( qo, b ) = q1
δδδδ ( q1, a ) = q1
δδδδ ( q1, b ) = q2
δδδδ ( q2, a ) = q1
δδδδ ( q2, b ) = q2
δ a b
q0 q0 q1
q1 q1 q2
q2 q1 q2
� Jika mesin DFA tersebut mendapat input “abb”, apakah
diterima oleh mesin?
δδδδ (q0, abb ) = δδδδ (q0, bb) = δδδδ (q1,b) = q2
Berakhir pada final state maka input diterima oleh mesin “abb” berada di
akhir L( m )
� Jika mesin mendapat Input string “baba” apakah merupa kan L ( m )?
δδδδ (q0, baba ) = δδδδ (q1, aba) = δδδδ (q1, ba) = δδδδ (q2,a) = q1
q1 bukan final state, berakhir pada state q1, maka input untuk string
“baba” ditolak / direject oleh mesin & bukan L( m )
2. Mesin DFA
a,b
�a
b
qo q1
Q = {q0, q1}
Σ = {a,b}
S = {q0}
F = {q1}
Fungsi Transisi Tabel Transisi
δ ( q0, a ) = q1 δ a b
δ ( q0, b ) = q1
δ ( q1, a ) = q1
δ ( q1, b ) = q0
� JIka mesin DFA tersebut mendapat Input “abbaba”, apak ah diterima oleh mesin
δδδδ ( q0, abbaba ) = δδδδ ( q1, bbaba ) = δδδδ ( q0,baba )
= δδδδ ( q1, aba ) = δδδδ ( q1, ba ) = δδδδ ( q0, a ) = q1Berakhir pada final state maka input diterima oleh mesin “ abbaba “ berada diakhir L ( m )
δ a b
q0 q1 q1
q1 q1 q0
* NFA (Non Deterministic Finite Automata)
1. Mesin NFA
a �a
b Fungsi Transisi
Q = { q0, q1 } δ { q0, a } = q1
Σ = { a, b } δ { q0, b } = φ
qo q1
δ a b
q0 q1 φΣ = { a, b } δ { q0, b } = φ
S = { q0 } δ { q1, a } = q1
F = { q1 } δ { q1, b } = q0
� Himpunan φφφφ merupakan NFA
� Jika mendapat input “ aaabbbaaa “
δδδδ ( q0, aaabbbaaa ) = δδδδ ( q1, aabbbaaa ) = δδδδ ( q1, abbbaaa )
= δδδδ ( q1, bbbaaa ) = δδδδ ( q0, bbaaa ) = δδδδ ( φφφφ ) “ ditolak / direject oleh
mesin & bukan L ( m ) “
q1 q1 q0
2. Mesin NFA
�b �aa b
a b
�a
qo
q2
q1
�a
Q = { q0, q1, q2 }
ΣΣΣΣ = { a, b }
S = { q0 }
F = { q1 }
� Himpunan { q1, q2 } merupakan NFA
Tabel Transisi
q0 mendapat input a dengan 2 transisi state { q1, q 2 }
NFA ⇒⇒⇒⇒ Jika state satu mempunyai 2 transisi dengan input y ang sama
δ a b
q0 {q1, q2 } q0
q1 q1 q0
q2 q2 q1
� Jika mendapat input “bababaaa”, apakah diterima oleh mesin ?
δδδδ ( q0, bababaaa ) = δδδδ ( q0, ababaaa ) = δδδδ ( {q1, q2}, babaaa )
* Jika diambil q1……….
δδδδ ( q0, abaaa ) = δδδδ ( {q1, q2}, baaa ) = δδδδ ( q1, aaa )
= δδδδ ( q1, aa ) = δδδδ (q1, a ) = q1
“ dterima oleh mesin & L ( m ) “
REDUKSI JUMLAH STATE PADA REDUKSI JUMLAH STATE PADA
FINITE STATE AUTOMATA
REDUKSI JUMLAH STATE PADA FINITE STATE AUTOMATA
TAHAPAN REDUKSI :
1. Hapus semua state yang tidak dapat dicapai dari s tate awal.2. Buatlah semua pasangan state ( p, q ) yang distin guishable, dimana P €
F dan q € f. Catatlah pasangan state – state tersebut . 3. Untuk semua state lakukan pencarian state yang distinguishable
dengan aturan untuk semua ( p, q )dan a € ΣΣΣΣ, hitunglah δδδδ ( p, a ) = pa dan dengan aturan untuk semua ( p, q )dan a € ΣΣΣΣ, hitunglah δδδδ ( p, a ) = pa dan δδδδ ( q, a) = qa. Jika pasangan ( pa, qa ) telah tercat at sehingga distinguishable maka pasangan ( p, q ) juga dimasuk kan sebagai distinguishable.
4. Dari hasil No. (3), distinguishable dapat pasanga n state – state distringuishable. Pasangan – pasangan state lain yan g tidak termasuk ke dalam state distinguishable tersebut, sisanya da pat ditentukan sebagai state yg indistinguishable.
5. Beberapa state yang saling indistinguishable dapa t digabungkan ke dalam satu state.
6. Sesuaikan transisi dari dan ke state – state gabun gan tersebut.
distringuishable ⇒⇒⇒⇒ dapat dibedakan
indistringuishable ⇒⇒⇒⇒ tidak dapat dibedakan
�2 buah state p dan q dari DFA dikatakan indistrngui shable
Jika →→→→ δδδδ ( q, w ) € F sedang δδδδ ( p, w ) € F
→→→→ δδδδ ( q, w ) € F sedang δδδδ ( p, w ) € F
untuk semua w € ΣΣΣΣ
�State p dan q dikatakan distinguishable jika ada st ring w € ΣΣΣΣ
δδδδ ( q, w ) € F sedang δδδδ ( p, w ) € Fδδδδ ( q, w ) € F sedang δδδδ ( p, w ) € F
contoh :
o 1
o o 0.1
1 o 1
o 1
Lakukan reduksi jumlah state terhadap mesin tersebu t
q3
q2
q1
qo
q4
Tahap – tahap yang dilakukan untuk reduksi jumlah st ate
adalah
1. Tidak ada state yang tak dicapai dari state awal
2. Catat state – state yang distinguishable
sbb : pasangan ( q0, q4 ), ( q1, q4 )
( q2, q4 ) dan ( q3, q4 )
dicatat dari →→→→ q0, q1, q2, q3 bukan elemen final state , sedangkan q4 € Fdicatat dari →→→→ q0, q1, q2, q3 bukan elemen final state , sedangkan q4 € F
3. Tentukan pasangan state lain :
→→→→ pasangan ( q0, q1 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q1, 1) = q4 sedangkan
( q3, q4 ) distinguishable, maka ( q0, q1 ) juga di stinguishable
→→→→ pasangan ( q0, q2 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q2, 1) = q4 sedangkan
( q3, q4 ) distinguishable, maka ( q0, q2 ) juga di stinguishable
→→→→ pasangan ( q0, q3 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q3, 1) = q4 sedangkan
( q3, q4 ) distinguishable, maka ( q0, q3 ) juga di stinguishable
4. Periksa semua pasangan state :
State – state distinguishable : ( q0, q4 ), ( q1, q4 ), ( q2, q4 ), ( q3, q4 ),
( q0, q1 ), ( q0, q2 ), ( q0, q3 )
State – state indistinguishable : ( q1, q2 ), ( q1, q3 ), ( q2, q3 )
5. q1 indistinguishable q2, q2 indistinguishable den gan q3, maka q1, q2, q3 saling indistinguishable dan dapat dijelaska n dalam satu state
6. Gambar setelah reduksi jumlah state
0, 1 ����0 1 ����0,1
qo q123 q4
Latihan Soal1. Lakukan Reduksi jumlah state terhadap mesin berikut :
�0,1
o 1
1 0 0
1 1
q2 q4 q5
qo q1 q3
�0 �0,1
Tahap – tahap yang dilakukan untuk reduksi jumlah st ate adalah sbb :
1. Ada state yang tak dicapai dari state awal yait u q5…(dihapus)
2. Distinguishable :…..( q0, q3 ), ( q2, q4 ), ( q1 , q4 )
( q2, q3 ), ( q0, q4 ), ( q1, q3 )
q0, q1, q2, € F
q3, q4 € F
3. State – state distinguishable yang lain :
( q0, q1 ) →→→→ δδδδ ( q0, 1 ) = q3
δδδδ ( q1, 1 ) = q4 ( q3, q4 )
( q0, q2 ) →→→→ δδδδ ( q0, 1 ) = q3
δδδδ ( q2, 1 ) = q4 ( q3, q4 )
4. Distinguishable : ( q0, q3 ), ( q2, q4 ), ( q 1, q4 ), ( q2, q3 )
( q0, q4 ), ( q1, q3 ), ( q0, q1 ), ( q0, q2 )
Indistinguishable : ( q1, q2 ), ( q3, q4 )
5. q1 dan q2 saling indistinguishable
q2 dan q3 saling indistinguishable
6. �0 �0.1
0 1 1 1 qo q123 q4
2. �0
0 0
1 1
1
0,1
0,1
�1 0
qo
q1
q2
q5
q3
q6
q4
�0,1
Tahap – tahap yang dilakukan untuk reduksi jumlah st ate adalah sbb :
1. Tidak ada state yang tak dicapai dari state awa l
2. Distinguishable:( q0, q1 ), ( q0, q3 ), ( q2, q 4 ), ( q2, q6 ), ( q5, q4 ), ( q5, q6 )
q0, q4, q6 € F
q1, q2, q3, q5 € F
q6
3. State – state distinguishable yang lain :( q0, q2 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q4 )
δδδδ ( q2, 1 ) = q4( q0, q4 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q4 )
δδδδ ( q4, 1 ) = q4( q0, q5 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q4 )
δδδδ ( q5, 1 ) = q4( q0, q6 ) →→→→ δδδδ ( q0, 1 ) = q2 ( q2, q6 )
δδδδ ( q6, 1 ) = q6δδδδ ( q6, 1 ) = q6( q1, q4 ) →→→→ δδδδ ( q1, 1 ) = q5 ( q5, q4 )
δδδδ ( q4, 1 ) = q4( q1, q6 ) →→→→ δδδδ ( q1, 1 ) = q5 ( q5, q6 )
δδδδ ( q6, 1 ) = q6( q3, q4 ) →→→→ δδδδ ( q3, 1 ) = q5 ( q5, q4 )
δδδδ ( q4, 1 ) = q4( q3, q6 ) →→→→ δδδδ ( q3, 1 ) = q5 ( q5, q6 )
δδδδ ( q6, 1 ) = q6
4. Distinguishable : ( q0, q1 ), ( q0, q2 ), ( q0 , q3 ), ( q0, q4 ),
( q0, q5 ), ( q0, q6 ), ( q1, q4 ), ( q1, q6 ),
( q2, q4 ), ( q2, q6 ), ( q3, q4 ), ( q3, q6 ),
( q5, q4 ), ( q5, q6 )
Indistinguishable : ( q1, q2 ), ( q1, q3 ), ( q1, q 5 ), ( q2, q3 ),
( q2, q5 ), ( q3, q5 ), ( q4, q6 )
5. q1, q2, q3, q5 saling indistinguishable
q4, q6 saling indistinguishable
6. �0.1
0.1 0.1 �0.1qo q46
q1235
Tugas
1. Gambarkan diagram transisi dari Deterministic Fi nite Automata berikut
Q = { q0, q1, q2 }∑ = { a,b }
S = q0F = {q0 }Fungsi transisi dari DFA tersebutFungsi transisi dari DFA tersebut
δ a b
q0 q1 q2
q1 q2 q0
q2 q2 q2
2. Bila L(M) adalah bahasa yang diterima oleh Dete rministic Finite Automata pada gambar di bawah, tentukan string berikut termasuk d alam L(M )
qo q1q1
b
a, ba
a. aaaa. aaab. bbbbc. abba
PERTEMUAN 3PERTEMUAN 3
EKIVALENSI NFA KE DFA
Tahapan Pengubahan Non-Deterministic Finite Automata ke Deterministic Finite Automata
Dari sebuah mesin Non-Deterministic Finite Automata dapat dibuat mesin DFA yang ekivalen. Ekivalen artinya mampu menerima bahasa yang sama .
* Suatu DFA dapat dipandang sebagai kasus khusus (subset) dari NFA.• Jelas bahwa kelas bahasa yang diterima oleh DFA juga akan diterima oleh
DFADFA• Namun ternyata DFA juga dapat mensimulasikan NFA; yaitu untuk setiap NFA
kita dapat membuat DFA yang ekivalen• Dapat dibuktikan bahwa DFA dan NFA adalah ekivalen, sehingga dapat disebut
FA saja
Simulasi NFA oleh DFA
• Cara simulasi NFA oleh DFA adalah dengan membuat state DFAberkorespondensi dengan set state di NFA
• DFA yang dibentuk mencatat semua state yang mungkin pada NFA setelah membaca input tertentu
EKIVALENSI NFA ke DFA Contoh :
Mesin NFA
�0 �1
0.1
1
Konfigurasi mesin
q0 q1
Telusuri setiap state yang ada dimulai dari { q0 } :
� State { q0 } bila memperoleh input o menjadi state { q0, q1 }Konfigurasi mesin
Tabel Transisi Q = ( { q0 }, { q1} )
Σ = { 0, 1 }
S = q0
F = q1
δ 0 1
q0 { q0, q1 } q1
q1 φ { q0, q1 }
q1 }
� State { q0 } bila memperoleh input 1 menjadi state { q1 }
1
0
� State { q1 }
- State { q1 } bila memperoleh input o menjadi state φ
- State { q1 } bila memperoleh input 1 menjadi state { q0, q1 }
� State { q0, q1 } bila memperoleh input o menjadi state { q0, q1 }
{qo, q1}
{ q1 }
qo
� State { q0, q1 } bila memperoleh input o menjadi state { q0, q1 }
diperoleh dari δ ( q0, 0 ) = { q0, q1 } δ ({ q0, q1}, 0) = { q0, q1 }
δ ( q1, 0 ) = φ
� State { q0, q1 } bila memperoleh input 1 menjadi { q0, q1 }
diporoleh dari δ ( q0, 1 ) = { q1 } digabung
δ ( q1, 1 ) = { q0, q1 }
δ ({ q0, q1 }, q1) = { q0, q1}
Hasil setelah penelusuran { q1 }, { q0 }, { q0, q1 }
1 0
1 �0,1 δ ( φ, 0 ) = φ
0 δ ( φ, 1 ) = φ
F = ({ q1 }, { q0, q1 })
�
qo
q1
{ q0, q1}
φ
�0.1
Hasilnya adalah mesin DFA
Tabel Transisi Konfigurasi Mesin
Q = ( qo, { q0, q1 }, q1, φ )
ε = { 1,0 }
S = q0
F = ( q1, { q0, q1 } )
δ 0 1
q0 { q0, q1 } q1
q1 φ { q0, q1 }
{ q0, q1 } { q0, q1 } { q0, q1 }
φ φ φ
Tugas
1. Buatlah DFA yang ekuivalen dengan NFA berikutQ = { p, q, r, s}∑ = { 0, 1}S = pF = {s}Fungsi transisinya dinyatakan dalam tabel transisi berikut
δδδδ 0 1
p p, q p
q r r
r s -
s s s
2. Buatlah DFA yang ekuivalen dengan NFA berikutQ = { p, q, r, s}∑ = { 0, 1}S = pF = {q, s}Fungsi transisinya dinyatakan dalam tabel transisi berikut
δδδδ 0 1
p p, s pp p, s p
q r q, r
r s p
s - p
PERTEMUAN 4Ekivalensi NFA εεεε - MOVE ke NFA TANPA εεεε - MOVE
NFA εεεε – MOVE
NFA εεεε – MOVE adalah mesin NFA yang diperbolehkan mengubah state tanpa membaca input. Disebut dengan transisi εεεε karena tidak bergantung pada suatu input ketika melakukan transisi.
Contoh NFA εεεε - MOVE
- q0 tanpa membaca input dapat berpindah ke q1
- q1 tanpa membaca input dapat berpindah ke q2
- q4 tanpa membaca input dapat berpindah ke q1
εεεε - closure adalah himpunan state – state yang dapat di capai dari suatu state tanpa membaca input
εεεε - closure ( q0 ) = { q0, q1, q2 }
εεεε - closure ( q1 ) = { q1, q2 }
εεεε - closure ( q2 ) = { q2 }
εεεε - closure ( q3 ) = { q3 }
εεεε - closure { q4 ) = { q1, q2, q4 }
Pada suatu state yang tidak memiliki transisi εεεε maka εεεε - closureny adalahstate itu sendiri.
EKIVALENSI NFA εεεε - MOVE KE NFA tanpa εεεε - MOVE
Tahapan – tahapan / langkah ekivalensi NFA dengan εεεε - move ke NFA
tanpa εεεε - Move :
1. Buat tabel Transisi NFA εεεε - Move
2. Tentukan εεεε - Closure untuk setiap state2. Tentukan εεεε - Closure untuk setiap state
3. Carilah setiap fungsi hasil perubahan dari NFA εεεε - Move ke NFA tanpa εεεε - Move dengan rumus : δδδδ’ ( state, input ) = εεεε - closure ( δδδδ (εεεε - closure (state), input ))
4. Berdasarkan hasil no. 3 buat tabel transisi & dia gram transisi NFA tanpa εεεε - Move yang ekivalensi dengan NFA εεεε - Move εεεε
5. Tentukan state akhir untuk NFA tanpa εεεε - Move tersebut, yaitu state –state akhir semua & tambah dengan state – state yang ΣΣΣΣ - closurenya menuju ke salah satu dari state akhir semula.
Contoh mesin NFA εεεε - Move
⇒⇒⇒⇒ Buat Ekivalensi NFA
εεεε - Move ke NFA tanpa εεεε - Moveεεεε - Move ke NFA tanpa εεεε - Move
δ a b
q0 φ φq1 q2 q3
q2 φ φ
1. Tabel Transisi NFA εεεε - Move
q2 φ φq3 φ φ
2. εεεε - closure ( q0 ) = { q0, q1 }
εεεε - closure ( q1 ) = { q1 }
εεεε - closure ( q2 ) = { q2 }
εεεε - closure ( q3 ) = { q3 }
δδδδ’ ( state, input ) = εεεε - closure ( δδδδ (εεεε - closure (state), input ))δδδδ’ ( 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 )
3.
= εεεε - 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 ( φφφφ )= φφφφ= φφφφ
δδδδ’ ( q3, a ) = εεεε - closure ( δδδδ (εεεε - closure (q3), a ))= εεεε - closure ( δδδδ ( { q3, a } )= εεεε - closure ( φφφφ )= φφφφ
δδδδ’ ( q3, b ) = εεεε - closure ( δδδδ (εεεε - closure (q3), b ))= εεεε - closure ( δδδδ ( { q3 }, b ))= εεεε - closure ( φφφφ )= φφφφ
NFA tanpa ε - Move
5.
q0 q2
q1
a
ab
δ’ a b
q0 q2 q3
q1 q2 q3
q2 φ φ
4. Tabel Transisi
q3
bq3 φ φ
Tugas
1. Buatlah NFA tanpa εεεε-move yang ekuivalen dengan NFA εεεε-move padagambar di bawah ini , ( ∑ = {0,1,2})
εεεε εεεε
0 12
q0 q1 q2εεεε εεεε
2. Buatlah NFA tanpa εεεε-move yang ekuivalen dengan NFA εεεε-move pada gambar di bawah ini , ( ∑ = {0,1,2})
εεεε
0
q0q1
εεεε
1
Ekspresi Reguler
Pertemuan 5
5.1. Penerapan Ekspresi Reguler (ER)
• Sebuah bahasa dinyatakan reguler jika terdapat Finite State
Automata (FSA) yang dapat menerimanya.
• Bahasa yang diterima oleh suatau FSA dapat dinyatakan
secara sederhana dengan Ekspresi Reguler ER.
• ER memberikan suatau pola (pattern) atau template untuk
untai (string) dari suatu bahasa.untai (string) dari suatu bahasa.
• Banyak masalah pada perancangan perangkat lunak yang
dapat disederhanakan dengan melakukan pengubahan
notasi ER ke dalam implementasi komputer dari FSA yang
bersangkutan.
5.2. Notasi ER
Tabel 5.1. Notasi ER
Nama Symbol Keterangan
asterik * Bisa tak muncul, bisa juga munculberhingga kali (0 sampai n)
‘plus’ + Gabungan ‘plus’ atau ‘union’
+Atau ∪∪∪∪
Gabungan
‘plus’ +
Tanda ‘plus’ pada posisi superscript, berarti minimal muncul satu kali (1-n)
titik . Berarti konkatenasi. Biasanya titik bisadihilangkan. Misalnya a.b = ab
Table 5.2. Contoh ER
Ekspresi ER String yang dibangkitkan
ab*cc abcc, abbcc, abbbcc, acc
010* 01, 010, 0100, 01000
a*d d, ad, aad, aaad
a+d ad, aad, aaada+d ad, aad, aaad
a*∪b* a, b, aa, bb, aaa, bbb,
a∪b a, b
(a∪b)* a, b, aa, ab, bba, aaa, bbb,
01*+0 00, 010, 0110, 01110, 011110
5.3. Hubungan ER dan FSA
• Untuk setiap ER, ada satu Non-Deterministik Finite
Automata dengan transisi εεεε (NFA εεεε-move)
• Sementara untuk Deterministik Finite Automata DFA ada
satu ER dari bahasa yang diterima
• Sederhananya kita dapat membuat satu NFA εεεε-move dari • Sederhananya kita dapat membuat satu NFA εεεε-move dari
suatu ER
q0 q1 q2 q3
a εεεε b
Gambar 5.1. NFA εεεε-move untuk ER: ab
q0 q1 q2
a
εεεε b
Gambar 5.2. NFA εεεε-move untuk ER: a*b
q0 q1 q2 q3
aεεεε εεεε
b
εεεε εεεε
q4 q5
b
Gambar 5.3. NFA εεεε-move untuk ER: a∪b
Tentukan ER untuk setiap mesin FSA pada gambar 5.4 dan
gambar 5.5.
0 1
q0 q1 q2
1
Gambar 5.4. Mesin FSA
0
1
q0 q1 q3
ba
a
a
Gambar 5.5. Mesin FSA
q4q2
ab
b
Hubungan antara NFA, εεεε-move, DFA, dan ER
NFA
DFA NFAεεεε-move
ER
Latihan
Studi Kasus:
1. kita ingin membuat mesin DFA yang menerima bahasa
berupa semua string yang berakhiran dengan ’00’,
diketahui Σ=(0,1).
Tentukan: ER, Mesin NFA, dan Mesin DFATentukan: ER, Mesin NFA, dan Mesin DFA
2. kita ingin membuat mesin DFA yang menerima bahasa
berupa semua string yang memuat minimal dua nol
berurutan ’00’, diketahui Σ=(0,1).
Tentukan: ER, Mesin NFA, dan Mesin DFA
EKSPRESI REGULAREKSPRESI REGULAR
EKSPRESI REGULAR
Notasi Ekspresi Regular :
* Yaitu karakter asterik ; berarti bisa tidak muncul, bisa juga muncul berhingga kali.
+ ( pada posisi superscript/ diatas ) berarti minimal muncul satu kali
+ atau ∪ berarti union berarti gabungan
Contoh Ekspresi Regular
1. ER : ab*cc
Contoh string yang dibangkitkan/ dibentuk : abcc, abbcc, abbbcc, abbbbcc, acc
2. ER : 010*
Contoh string yang dibentuk : 01, 010, 0100, 01000, 010000
3. ER : a*d
String yang dibentuk : d, ad, aad, aaad
4. ER : a+d
Contoh string yang dibentuk : ad, aad, aaad
5. ER : a*∪b* ( ‘∪’ berarti atau )
string yang dibentuk : a, b, aa, bb, aaa, bbb, aaaa, bbbb
6. ER : ( a ∪ b ) berarti atau ‘ ∪ ‘
string yang dibentuk : a, b string yang dibentuk : a, b
7. ER : ( a ∪ b )*
string yang dibentuk : a, b, ab, ba, abb, bba, aaaa, bbbb
notasi ∪ kadang ditulis +
8. ER : 01* + 0
string yang dibentuk : 0, 01, 011, 0111, 01111
Hubungan Ekspresi Regular & FSA
1. a ε b
ER ; ab
�a ε b
2.
qo q3q1 q2
qo q1 q2
ER ; a*b
3. a
ER : a ∪ b
b
4. �0
0 1
ER ; 010*
qo
q2
q1
qo q1 q2
5. 0 0,1
ER ; 0 ( 1 ∪ 0 )
�0,1
6. 0
ER ; 0 ( 1 ∪ 0 ) *
7. 0 �1 0
qo q1 q2
qo q1
7. 0 �1 0
ER ; 01*0
8. � 0 �0
1
ER ; 0*10*
9. �a
ER ; a*
qo q1 q2
qo q1
q0
10. a
b
ER ; a ( ba )*
11. a
qo q1
b
ER ; ( ab ) *
12. 1 �01 �1
0
ER ; 01*∪10*11*
q1q0
qo q1 q2
Aturan Produksi Untuk Finite
State Automata (FSA)State Automata (FSA)
Pertemuan 6
6. 1. Aturan Produksi Bahasa Reguler
• Sebuah otomata berhingga menspesifikasikan sebuah bahasa sebagai himpunan semua untai yang menggerakkannya dari state awal ke salah satu state yang diterimanya (himpunan state akhir)
• Misalkan untuk sebuah ER: a(a*∪b*)b. Selain dengan ER, kita dapat mengkonstruksi aturan-aturan produksi untuk suatu tata bahasa reguler.tata bahasa reguler.
• Kita ingat juga batasan aturan produksi untuk bahasa reguler: α→β (dibaca: α menghasilkan β)
dimana α adalah sebuah simbol variabel, dan β maksimal memiliki sebuah simbol variabel yang terletak di paling kanan (bila ada)
• α dan β dapat berupa simbol terminal atau simbol non-terminal (variabel)
• Simbol variabel (non-terminal adalah simbol yang masih bisa diturunkan, sedangkan simbol terminal sudah tidak bisa diturunkan lagi.
• Simbol terminal biasanya dinyatakan dengan huruf kecil, misal: a, b, c.
• Simbol non-terminal (variabel) biasanya dinyatakan dengan huruf besar, misal: A, B, C.huruf besar, misal: A, B, C.
• Suatu tata bahasa (grammer) didefinisikan dengan empat tupel (G={V, T, P, S}), dimana:
v = himpunan simbol variabel
T = himpunan simbol terminal
P = kumpulan aturan produksi
S = simbol awal
q0 q1 q3
a
q2
ab
εεεε
Gambar 6.1. Mesin FSA
εεεεq3
b
b
Dari gambar 6.1., kumpulan aturan produksi yang kita peroleh
dapat dituliskan sbb:
S → aE
E → A | B
A → aA | B
B → bB | bB → bB | b
Secara formal, tata bahasa (grammer) yang diperoleh dari
otomata pada gambar 6.1. adalah:
V = {S, E, A, B}
T = {a, b}
P = {S → Ae, E → A | B, A → aA | B, B → bB | b}
S = S
6.2. Mengkonstruksi Aturan Produksi
dari Suatu FSA
• Dalam mengkonstruksi aturan produksi tata bahasa reguler
dari suatu FSA, yang menjadi perhatian kita adalah state-state
yang dapat menuju ke state akhir.
• Mesin FSA pada gambar 6.1, memiliki simbol input a dan b.
simbol tersebut akan menjadi terminal pada aturan produksi
yang akan kita bentuk.yang akan kita bentuk.
• Misalkan kita tentukan simbol awal adalah S, state awal q0,
dari q0 mendapat input a menjadi q1.Aturan produksi yang
dapat ditulis adalah: S→aE
• E dapat kita identikkan denga q1, lebih tepatnya adalah bagian
yang belum terbangkitkan mulai dari q1.
• Kita dapat menambahkan simbol variabel baru setiap kali kita
perlukan.
• Dari q1mendapat tramsisi-e (tanpa menerima input) ke q2 dan
q3, kita tuliskan:
E → A
E → BE → B
• Jika kita identikkan q2 sebagai A, dan q3 sebagai B; dari q2
mendapat input a tetap ke q2; dari q3 mendapat input b tetap
ke q3; bisa kita tuliskan:
A→ aA
B → bB
• Selanjutnya kita lihat: dari q2 memberikan input b ke q4; dari
q3 memberikan input b ke q4; sementara q4 merupakan state
akhir, maka bisa dituliskan:
A→ b
B → b
• Kumpulan aturan prosuksi yang kita peroleh adalah sbb:• Kumpulan aturan prosuksi yang kita peroleh adalah sbb:
S→ aE
E → AB
A → aAB
B → bBb
• Secara formal, tata bahasa yang diperoleh dari otomata pada
gambar 6.1 adalah sbb:
V = {S, E, A, B}
T = {a, b}
P = {S→aE; E → AB; A → aAB; B → bBb}P = {S→aE; E → AB; A → aAB; B → bBb}
S = S
6.3. FSA Untuk Suatu Tata Bahasa Reguler
• Bila sebelumnya dari suatu diagram transisi FSA kita dapat
membuat aturan-aturan produksinya, sebaliknya kita juga
dapat mengkonstruksi diagram transisi FSA untuk suatu tata
bahasa teguler yang diketahui aturan-aturan produksinya.
• Misalnya terdapat tata bahasa reguler dengan aturan produksi• Misalnya terdapat tata bahasa reguler dengan aturan produksi
sbb:
S→ aB bAεA → abaS
B → babS
FSA dari aturan produksi diatas, seperti yang ditunjukkan
pada gambar 6.2. berikut
q4
q1q0 q2
aq3
b
b
b
a
a
Gambar 6.2. FSA dari suatu regular grammer
q4
q5 q6
a
a
b
ATURAN PRODUKSI ATURAN PRODUKSI
ATURAN PRODUKSI
α �β
α menurun β
α menghasilkan β
α atau β bisa berupa simbol variabel terminal atau non terminal.
Gramer didefinisikan dengan 4 tipe ( G = { VN, VT, P, S } )
VN : himpunan simbol variabel non terminalVN : himpunan simbol variabel non terminal
VT : himpunan simbol variabel terminal
P : himpunan aturan produksi
S : simbol awal
Contoh mesin FSA �a
ε b
a
ε �b b
qo q1
q3
q2
q4
Aturan produksi dari mesin FSA
� S � aE
S adalah q0 q1 didefinisikan dengan E
E adalah q1 q1 identik dengan E
q0 identik dengan S
� dari q1 tanpa mendapat input menuju q2 dan q3
E → A A identik q2E → A A identik q2
E → B B identik q3
� dari q2 mendapat input a tetap ke q2
dari q3 mendapat input b tetap ke q3
A → aA
B → bB
� dari q2 mendapat input b ke q4
dari q3 mendapat input b ke q4
A → b
B → b
Karena q4 adalah final state yang tidak memiliki busur keluar atau keluaran maka q4 tidak didefinisikan atau diabaikan
Kumpulan Aturan Produksi
S → aE
E → A|BE → A|B
A → aA | b
B → bB | b
‘ | ‘ berarti atau
VN = { S, E, A, B }
S = S
VT = { a, b }
P = { S → aE, E →A | B, A →aA | b, B →bB | b }
Finite State Automata (FSA)
Dengan OutputDengan Output
Pertemuan 9
7.1. Mesin Moore
• Suatu keterbatasan dari FSA yang sudah dipelajari sebelumnyaadalah: keputusannya terbatas pada diterima atau ditolak.Otomata tsb biasa disebut dengan accepter (dalam hal iniFSA).
• Kita dapat mengkonstruksi sebuah FSA yang memilikikeputusan beberapa keluaran (output), dalam hal ini otomatakeputusan beberapa keluaran (output), dalam hal ini otomatatersebut dikenal sebagai transducer.
• Pada mesin Moore, output akan berasosiasi dengan state.
Mesin Moore didefinisikan dalam 6 tupel, yaitu:
M=(Q, ΣΣΣΣ, δδδδ, S, ∆∆∆∆, λλλλ)
Dimana:
Q = himpunan stateQ = himpunan state
ΣΣΣΣ = himpunan simbol input
δδδδ = fungsi transisi
S = state awal, dimana S∈∈∈∈ Q
∆∆∆∆ = himpunan output
λλλλ = fungsi output untuk setiap output
Contoh Mesin Moore
Misalnya kita ingin memperoleh sisa pembagian (modulus) suatu
bilangan dengan 3, dimana input dinyatakan dengan biner.
Konfigurasi mesinnya adalah sbb:
Q = {q0, q1, q2}
ΣΣΣΣ = {0, 1}ΣΣΣΣ = {0, 1}
S = q0
∆∆∆∆ = {0, 1, 2} untuk output pada kasus mod dengan
3, kemungkinan sisa pembagiannya adalah 1,
2 atau 3
λλλλ = q0=0, q1=1, q2=2
q0 q1 q2
0
1
00
0
1
11 2
Gambar 7.1. Mesin Moore untuk MOD 3
0 1 2
Coba buktikan untuk:• 5 MOD 3. • 10 MOD 3(Input nya harus dirubah dulu kedalam biner)
7.2. Mesin Mealy
• Bila output pada mesin Moore berasosiasi dengan state, maka
output pada mesin Mealy akan berasosiasi dengan transisi.
• Mesin Mealy sendiri didefinisikandalam 6 tupel, yaitu:
M=(Q, ΣΣΣΣ, δδδδ, S, ∆∆∆∆, λλλλ)
Dimana:Dimana:
Q = himpunan state
ΣΣΣΣ = himpunan simbol input
δδδδ = fungsi transisi
S = state awal, dimana S∈∈∈∈ Q
∆∆∆∆ = himpunan output
λλλλ = fungsi output untuk setiap output
Contoh Mesin Mealy
Mesin ini akan mengeluarkan output menerima ‘Y’ atau menolak
’T’ suatu masukan biner.
Dengan ketentuan: mesin akan mengeluarkan output ‘Y’ bila
menerima untai yang memiliki dua simbol berurutan yang sama,
atau secara formal dalam ER: (0+1)*(00+11)
Konfigurasi mesinnya adalah sbb:Konfigurasi mesinnya adalah sbb:
Q = {q0, q1, q2}
ΣΣΣΣ = {0, 1},0
S = q0
∆∆∆∆ = {Y, T}
λλλλ(q0,0)=T; λλλλ(q0,1)=T; λλλλ(q1,0)=Y; λλλλ(q1,1)=T
λλλλ(q2,0)=T; λλλλ(q2,1)=Y
q0
q1
q
0/T
0/T
0/Y
1/T
Gambar 7.2. Contoh Mesin Mealy
q21/T
1/Y
Coba buktikan untuk input yang diterima: 01011; 01100; 1010100; 10110100; 00; 11; 100; 011; 111; 0101; 0010
7.3. Ekuivalensi Mesin Moore dan
Mesin Mealy
• Dari suatu mesi Moore, dapat dibuat mesin Mealy yang
ekuivalen, begitu juga sebaliknya.
• State pada mesin Moore dibentuk dari kombinasi state pada• State pada mesin Moore dibentuk dari kombinasi state pada
Mealy dan banyaknya output.
• Untuk mesin Mealy pada gambar 7.2, jumlah state=3; dan jumlah
output=2; maka jumlah state pada mesin Moore yang ekuivalen
adalah = 6.
• Konfigurasi mesIn Moore yang dibentuk adalah:
Q = {q0Y, q0T, q1Y, q1T, q 2 Y, q 2 T}
ΣΣΣΣ = {0, 1}
S = q0S = q0
∆∆∆∆ = {0, 1, 2}
λλλλ(q0Y)=Y; λλλλ(q0T)=T; λλλλ(q1Y)=Y; λλλλ(q1T)=T; λλλλ(q2Y)=Y; λλλλ(q2T)=T
q0T
T
q0T q0T
TT0 0
0
0
0
1
1
11
Gambar 7.3. Mesin Moore yang ekuivalen dengan Mesin Mealy
pada gambar 7.2.
Y
q0T q0T q0T
Y Y
001
1
1
1
• Untuk memperoleh ekuivalensi mesin Mealy dari suatu mesin
Moore, caranya lebih mudah, cukup dengan menambahkan
label output ke setiap transisi, dan menghapus label output
pada setiap state
• Konfigurasi mesIn Moore yang dibentuk adalah:
Q = {q0, q1, q 2}Q = {q0, q1, q 2}
ΣΣΣΣ = {0, 1}
S = q0
∆∆∆∆ = {0, 1, 2}
λλλλ(q0,0)=0; λλλλ(q0,1)=1
λλλλ(q1,0)=2; λλλλ(q1,1)=0
λλλλ(q2,0)=1; λλλλ(q2,1)=3
q q
0/0
1/1 0/2
1/2
q0 q1 q2
1/1
0/1
0/2
1/0
Gambar 7.4. Mesin Mealy yang ekuivalen dengan Mesin Moore pada gambar 7.1.
FSA(FINITE STATE AUTOMATA)
FSA(FINITE STATE AUTOMATA)(FINITE STATE AUTOMATA)
DENGAN OUTPUT
(FINITE STATE AUTOMATA)
DENGAN OUTPUT
Mesin Moore dengan 6 Tuple
M = (Q, ΣΣΣΣ, δδδδ, S, ∆∆∆∆, λλλλ)
Q = Himpunan State
Σ = Himpunan simbol input
δ = Fungsi transisi
S = State awal, S ∈∈∈∈ Q
∆ = Himpunan output
λ = Fungsi output untuk setiap state
Contoh : konfigurasi mesin
Q = {q0, q1, q2}
ΣΣΣΣ = {0, 1)
∆ = {0, 1, 2}
S = (q0)
λ(q0) = 0
λ(q1) = 1
λ(q2) = 2
q0
5 mod 3 = ?
mod →→→→ hasil dari sisa pembagian
bilangan biner 5 = 101
q1 q2
0 1
0
1
1
0
0
21
Mesin Moore untuk modulus 3
bilangan biner 5 = 101
urutkan state :
δδδδ (q0, 101) = δδδδ(q1, 01) = δδδδ (q2, 1) = q2
Berakhir pada q 2
λλλλ (q2)= 2 maka 5 mod 3 = 2
� 10 mod
Bilangan biner 10 = 1010
Urutkan state :
δδδδ (q0, 1010) = δδδδ (q1, 010) = δδδδ ( q2, 10) = δδδδ ( q2, 0) = q1
Beakhir pada q 1
λλλλ (q1) = 1 maka 10 mod 3 = 1λλλλ (q1) = 1 maka 10 mod 3 = 1
� MESIN MEALY
Dengan 6 tuple
M = (Q, ΣΣΣΣ, δδδδ, S, ∆∆∆∆, λλλλ )
Contoh Mesin Mealy :
Konfigurasi mesin
Q = {q0, q1, q2} λλλλ = (q0, 0) = T
ΣΣΣΣ = { 0, 1} λλλλ = (q0, 1) = T
∆∆∆∆ = { Y, T} λλλλ = (q1, 0) = Y∆∆∆∆ = { Y, T} λλλλ = (q1, 0) = Y
S = {q0} λλλλ = (q1, 1) = T
λλλλ = (q2, 0) = T
λλλλ = (q2, 1) = Y
q0
q1
0 / T
0/Y
0/T1/T
1/T
Jika MEsin Mealy menerima input“110101”, apakah diterima olehmesin tersebut ?
δ (q0, 110101) = δ (q2, 10101)T
= δ (q , 0101) = δ (q , 101)
q2
1/T
1/Y
= δ (q2, 0101) = δ (q1, 101)Y T
= δ (q2, 01) = δ (q1, 1) = q2Y T T
Tidak diterima input 110101, ditolakoleh Mesin Mealy
Contoh soal : Mesin Moore
q0 q3
q1 q2
q4
00
0
0
0
03
1
4
1
1
1
2
1
0- Buat konfigurasi mesin
tersebut
- Jika mesin menerima input “1101011”, output ?
q5
01
1
5
δ (q0, 1101011) = δ (q1, 101011) = δ (q3, 01011)
1 3
= δ (q3, 1011) = δ (q4, 011) = δ (q2, 11) = δ (q5, 1) = q5
3 4 2 5 5
Input = 1101011 λ ( q0 ) = 0
Output = 1334255 λ ( q1 ) = 1
Q = {q0, q1, q2, q3, q4, q4} λ ( q2 ) = 2
Σ = {0, 1} λ ( q ) = 3Σ = {0, 1} λ ( q3 ) = 3
∆ = { 0, 1, 2, 3, 4, 5 } λ ( q4 ) = 4
S = q0 λ ( q4 ) = 4
A
LATIHAN :
1. JIka Mesin Moore pada contoh soal didapat “ 1010101101011 “, Output?
2. Pada Mesin Moore Modulus 3
→ 40 mod 3 ?→ 40 mod 3 ?
→ 55 mod 3 ?
→ 73 mod 3 ?
3. Pada mesin Mealy jika input “ 0110011011 “ apakah diterima ?
1. δδδδ (q0, 1010101101011) = δδδδ (q1, 010101101011) = (q2, 10101101011)
1 2
= δδδδ (q5, 0101101011) = δδδδ (q1, 101101011) = δδδδ (q3, 01101011)
5 1 3
= δδδδ (q3, 1101011) = δδδδ (q4, 101011) = δδδδ (q4, 01011) = δδδδ (q2, 101)
3 4 4 23 4 4 2
= δδδδ (q5, 011) = δδδδ (q1, 11) = δδδδ (q3, 1) = q4
5 1 3 4
Input = 1010101101011
Output = 1251334425134
2. ∗∗∗∗ 40 mod 3
bilangan biner 40 = 101000
urutkan state :
δδδδ (q0, 101000) = δδδδ (q1, 01000) = δδδδ (q2, 1000)
δδδδ δδδδ δδδδ= δδδδ (q2, 000) = δδδδ (q1, 00) = δδδδ (q1, 0) = q1
Berakhir pada
λλλλ (q1)= 1 40 mod 3 = 1
∗ 55 mod 3bilangan biner 55 = 110111urutkan state :
δ (q0, 110111) = δ (q1, 10111) = δ (q0, 0111)= δ (q0, 111) = δ (q1, 11) = δ (q1, 1) = q1
Berakhir pada Q1λ (q1) = 155 mod 3 = 155 mod 3 = 1
∗ 73 mod 3bilangan biner 73 = 1001001
δ (q0, 1001001) = δ (q1, 001001) = δ (q2, 01001)= δ (q1, 1001) = δ (q0, 001) = δ (q0, 01)= δ (q0, 1) = q1
berakhir pada q1λ (q1) = 1 73 mod 3 = 1
3. Jika input “ 011001101011 ”, apakah diterima ?
δδδδ (q0, 011001101011) = δδδδ (q1, 11001101011) = δδδδ (q2, 1001101011)
T T
= δδδδ (q2, 001101011) = δδδδ (q1, 01101011) = δδδδ (q1, 1011)
Y T TY T T
= δδδδ (q2, 101011) = δδδδ (q2, 01011) = δδδδ (q1, 1011)
T Y T
= δδδδ (q2, 011) = δδδδ (q1, 11) = δδδδ (q2, 1) = q2
T T T T
Pohon penurunan
Pertemuan 10
8.1. Tata Bahasa Bebas Konteks
• Bila pada tata bahasa reguler terdapat pembatasan pada ruas
kanan atau hasil produksinya, maka pada tata bahasa konteks
(context free grammer), selanjutnya kita sebut CFG, tidak
terdapat pembatasan hasil produksinya.
• Seperti halnya pada tata bahasa reguler, sebuah CFG adalah• Seperti halnya pada tata bahasa reguler, sebuah CFG adalah
suaatu cara yang menunjukkan bagaimana menghasilkan
untai-untai dalam sebuah bahasa.
Pada saat menurunkan suatu string, simbol-simbol variabel akan
mewakili bagian-bagian yang belm terturunkan dari string
tersbut.
• Pada tata bahasa reguler :
bagian yang belum terturunkan tsb selalu terjadi
pada suatu ujung.
• Pada tata bahasa bebas konteks:
bisa terdapat lebih banyak bagian yang belum
terturunkan dan bisa terjadi dimana saja.
Ketika penurunan itu telah lengkap, semua bagian yang
belum terturunkan telah diganti oleh string- string (yang
mungkin sja kosong) dari himpunan simbol terminal.
8.2. Parsing
• Sebuah pohon (tree) adalah suatu graph terhubung tidak
sirkuler, yang memiliki satu simpul (node) / vertex yang
disebut akar (root) dan dari Node memiliki lintasan ke setiap
simpul.
• Pohon penurunan (derivation tree/parse tree) berguna untuk• Pohon penurunan (derivation tree/parse tree) berguna untuk
menggambarkan bagaimana memperoleh suatu string (untai)
dengan cara menurunkan simbol-simbol variabel (VN)
menjadi simbol-simbol terminal (VT). Setiap simbol variabel
akan diturunkan menjadi terminal, sampai tidak ada yag
belum tergantikan
• Misalnya, terdapat tata bahasa bebas konteks dengan aturan
produksi sbb:
S →AB
A→aAa
B→bBb
akan kita gambarkan pohon penurunan untuk memperoleh akan kita gambarkan pohon penurunan untuk memperoleh
untai: ‘aabbb’S
A B
a A b B
ab
b
B
Proses penurunan atau parsing bisa dilakukan dengan cara sbb:
• Penurunan terkiri (leftmost derivation):
Proses Penurunan dimulai dari simbol S, dgn simbol variabel
terkiri yang diperluas terlebih dahulu.
• Penurunan terkanan (rightmost derivation):• Penurunan terkanan (rightmost derivation):
Proses penurunan dimulai simbol S, dgn simbol variabel
terkanan yang diperluas terlebih dahulu.
Misal, terdapat tata bahasa bebas konteks:
S→ aAS | a
A→SbAba
Untuk memperoleh untai ‘aabbaa’ dari tata bahasa bebas
konteks diatas adalah:konteks diatas adalah:
• Dengan penurunan terkiri:
S⇒aAS⇒aSbAS⇒aabAS⇒aabbaS⇒aabbaa
• Dengan penurunan terkanan:
S⇒aAS⇒aAa⇒aSbAa⇒aabAa⇒aabbaa
S
AS
S b A a
a
Gambar 8.2. Pohon Penurunan untuk untai ‘aabbaa’
S b A a
ba a
8.3. Ambiguitas
Ambiguitas/kedwiartian terjadi bila terdapat lebih dari satu
pohon penurunan yang berbeda untuk memperoleh suatu untai.
Misalkan terdapat tata bahasa bebas konteks sb:
S→AB
A→aA→a
B→a
Untuk memperoleh untai ‘a’ bisa terdapat dua cara penurunan,
yaitu:
S⇒A⇒a
S⇒B⇒a
Contoh lain, terdapat tata bahasa konteks:
S→SbSScSa
Coba anda tentukan cara untuk menurunkan untai ‘abaca’.
Dan buatkanlah pohon penurunannya.
Pertemuan 11
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
TujuanMelakukan pembatasan sehingga tidak menghasilkan
pohon penurunan yang memiliki kerumitan yang tidakperlu atau aturan produksi yang tidak berarti.
Contoh 1: S � AB | a A �a
♦ Aturan produksi S � AB tidak berarti karena B tidak♦ Aturan produksi S � AB tidak berarti karena B tidakmemiliki penurunan
Contoh 2 : S�A A �B B �C C�D D � a | A
Memiliki kelemahan terlalu panjang jalannya padahal berujungpada S � a, produksi D � A juga menyebabkankerumitan. Cara Penyederhanaan: 1. Penghilangan produksi useless ( tidak berguna ) 2. Penghilangan produksi unit 3. Penghilangan produksi ε
Penghilangan Produksi Useless Penghilangan Produksi Useless Di sini produksi useless didefinisikan sebagai :
* Produksi yang memuat symbol variabel yang tidak memilikipenurunan yang akanmenghasilkan terminal-terminal seluruhnya.
* Produksi yang tidak akan pernah dicapai dengan penurunanapapun dari simbolawal, sehingga produksi itu redundan ( berlebih )
Contoh :S � aSa | Abd | BdeA � AdaB � BBB | aMaka
1) Aturan Produksi A�Ada, Simbol variabel A tidak1) Aturan Produksi A�Ada, Simbol variabel A tidakmemiliki penurunan yang menuju terminal, sehingga bisa
dihilangkan2) Konsekuensi no (1), aturan produksi S � Abd tidakmemiliki penurunan
Penyederhanaan menjadi: S�aSa | BdeB � BBB | a
• Contoh : S � Aa | B A �ab | D B � b | E C � bb E � aEaMaka :
1) Aturan produksi A � D, simbol variabel D tidak memiliki penurunan. 2) Aturan produksi C �bb, Penurunan dari simbol S, dengan jalan
manapun tidakakan pernah mencapai C
3) Aturan Produksi E�aEa, Simbol variabel E tidak memiliki aturanproduksi yang menuju terminal
4) Konsekuensi no (3) Aturan produksi B � E, simbol variabel E tidakmemiliki penurunan.
maka produksi yang useless: A � D C � bb E � aEaB � E B � E
Penyederhanaannya menjadi: S � Aa | B
A � abB � b
• Contoh : S � aAb | cEBA � dBE | eeCB � ff C � aeD � h Analisa :
1) Aturan produksi S � cEB, A � dBE dapat dihilangkan ( E tidak memilikipenurunan)
2) Aturan produksi D � h, redundanSisa aturan produksiS � aAbA � eeCB � ff C � ae
Analisis lagiB � ff juga redundan,
Hasil penyederhanaan menjadi: S � aAbA � eeCC � aeC � ae
Contoh lain lagi : S � aBA � bcD | dACB � e | AbC �bCb | adF | abF � cFB
Analisis1) Aturan produksi A � bcD, variabel D tidak memilikipenurunan2) Konsekuensi no (1), simbol variabel A tidak memilikipenurunan yang menuju
terminal (tinggal A � dAC) 3) Konsekuensi no (2), B � Ab tidak memilikipenurunanpenurunan4) Simbol variabel F tidak memiliki penurunan yang menuju terminal 5) Konsekuensi no (4), C � adF tidak memilikipenurunanSetelah disederhanakan menjadi:
S � aBB � e C �bCb | ab
Contoh lain lagi : S � aBDB � cD | AbD � efA � EdF � dcAnalisa
1) Aturan produksi A � Ed, E tidak memiliki penurunan1) Aturan produksi A � Ed, E tidak memiliki penurunan2) Aturan produksi F � dc, redundan
Sisa aturan produksi: S � aBDB � cD | AbD � ef
Analisa lagiB � Ab, A tidak memiliki penurunan. Hasilpenyederhanaan: S � aBDB � cDD � efD � ef
Contoh lagi: S � Abc | abA � AAA | ε
Aturan produksi setelah disederhanakan: S � Abc | abA � AAA | ε A � AAA | ε Ingat A � ε juga harus diperhitungkanPRINSIP
Setiap kali melakukan penyederhanaan diperiksa lagiaturan produksi yang tersisa, apakah semua produksiyang useless sudah hilang.
Penghilangan Produksi Unit Produksi dimana ruas kiri dan kanan aturan produksihanya berupa satu simbol
variabel, misalkan: A � B, C � D. Keberadaannya membuat tata bahasa memilikikerumitan yang tak perlu. Penyederhanaan dilakukan dengan melakukan
penggantian aturan produksi unit. Contoh:
S � SbS � C C � D C � efD � dd
Dilakukan penggantian berturutan mulai dari aturanproduksi yang paling dekat menuju ke penurunanterminal-terminal (‘=>’ dibaca ‘menjadi’): C � D => C � ddS � C => S � dd | ef
Sehingga aturan produksi setelah penyederhanaan: Sehingga aturan produksi setelah penyederhanaan: S � SbS � dd | efC � ddC � efC � dd
Contoh lain: S � A S � AaA � B B � C B � b C � D C � abD � b D � b
• Penggantian yang dilakukan : C � D => C � bB � C => B � b | ab, karena B � b sudah ada, maka cukup dituliskanB � abA � B => A � ab | bS � A => ab | b
Sehingga aturan produksi setelah penyederhanaan: S � ab | b S � AaA � ab | b B � abB � b B � b C � b C � abD � b
Contoh lagi: S � Cba | D A � bbC
B � Sc | dddC � eAn | f | C D � E | SABC D � E | SABC E � gh
Penggantian yang dilakukan: D � E menjadi D � ghC � C , kita hapusS � D menjadi S � gh | SABCSehingga aturan produksi setelah
penyederhanaan: S � Cba | gh | SABC S � Cba | gh | SABC A � bbCB � Sc | dddC � eA | f D � gh | SABC E � gh
Penghilangan Produksi ε
Produksi ε adalah produksi dalam bentukα � ε
atau bisa dianggap sebagai produksi kosong ( empty ). Penghilangan produksi ε dilakukan dengan melakukanpenggantian produksi yang memuat variabel yang bisamenuju produksi ε, atau biasa disebut nullable. menuju produksi ε, atau biasa disebut nullable.
Prinsip penggantiannya bisa dilihat kasus berikut: S � bcAdA � ε
A nullable serta A � ε satu-satunya produksi dari A, makavariabel A bisa ditiadakan, hasil penyederhanaan tatabahasa bebas konteks menjadi: S � bcd
Tetapi bila kasusnya:S � bcAdA � bd | ε
A nullable, tapi A � ε bukan satu-satunya produksidari A, maka hasilpenyederhanaan:penyederhanaan:S � bcAd | bcdA � bd
Contoh lagi, terdapat tata bahasa bebas konteks: S � Ab | CdA � d C � ε Variabel yang nullable adalah variabel C. Karenapenurunan C � ε merupakan penurunan satu-penurunan C � ε merupakan penurunan satu-satunya dari C, maka kita ganti S � Cd menjadi S � d. Kemudian produksi C � ε kita hapus.
Setelah penyederhanaan menjadi: S � Ab | d A � d
Contoh lain lagi: S � dA | BdA � bcA �ε B �c
Variabel yang nullable adalah variabel A. A �ε bukanpenurunan satu-satunyadari A ( terdapat A �bc ), maka kita ganti S � dAdari A ( terdapat A �bc ), maka kita ganti S � dAmenjadi S � dA | d . A � ε kitahapus.
Setelah penyederhanaan : S � dA | d | BdA � bcB � c
Contoh tata bahasa bebas konteks: S � AaCDA � CD | AB B � b | ε C � d | ε D � ε
Variabel yang nullable adalah variabel B, C, D. Kemudiandari A � CD, maka variabel A juga nullable ( A � ε ). dari A � CD, maka variabel A juga nullable ( A � ε ). Karena D hanya memilki penurunan D � ε, maka kitasederhanakan dulu: S � AaCD => S � AaCA � CD => A � CD � ε kita hapus
Selanjutnya kita lihat variabel B dan C memilikipenurunan ε, meskipun bukan
satu-satunya penurunan, maka dilakukanpenggantian:A � AB => A � AB | A | BS � AaC => S � AaC | aC | Aa | aS � AaC => S � AaC | aC | Aa | aB � ε dan C � ε kita hapus
Setelah penyederhanaan: S � AaC | aC | Aa | a A �C | AB | A | B B � b C � ε
Variabel yang nullable adalah A, B, C. Dari S � AB, makaS juga nullable. Kita lakukan penggantian: A � aCa => A � aaB � bA => B � bA | bB � BB => B � BB | BA � abB => A � abB | abA � abB => A � abB | abS � AB => S � AB | A | B | εC � ε, B � ε, A � ε dihapus
*Perhatikan untuk penggantian S � AB kita tetapmempertahankan S � ε, karena S merupakan simbolawal. Ini merupakan satu-satunya perkecualian produksiε yang tidak dihapus, yaitu produksi ε yang dihasilkanoleh simbol awal.
Hasil akhir dari penyederhanaan: S � AB | A | B | ε A � abB | ab | aaB �bA | b | BB | B
Contoh tata bahasa bebas konteks: S � aAbS � aAb
A � aAb | ε Hasil penyederhanaan:
S � aAb | abA � aAb | ab
Contoh tata bahasa bebas konteks: S � ABaCA � BC B � b | ε C � D | ε D � d D � d
Hasil penyederhanaan: S � ABaC | BaC | AaC | ABa | aC | Aa | Ba | a A � B
| C | BC B � b C � D D � d
Prakteknya ketiga penyederhanaan tersebut dilakukanbersama pada suatu tata bahasa bebas konteks, yang nantinya menyiapkan tata bahasa bebas kontekstersebut untuk diubah kedalam suatu bentuk normal Chomsky.
Urutan penghapusan aturan produksi : Urutan penghapusan aturan produksi : 1) Hilangkan produksi ε 2) Hilangkan produksi unit 3) Hilangkan produksi useless
Contoh : S � AA | C | bdA � Bb | ε B � AB | d C � de
Hilangkan produksi ε, sehingga menjadi: S �A | AA | C | bd
A � Bb A � Bb B � B | AB | d C � de
Selanjutnya penghilangan produksi unit menjadi:
S � Bb | AA | de | bdA � Bb B � AB | d C � de
Penghilangan produksi unit bisa menghasilkan produksiuseless. Terakhir dilakukan penghilangan produksiuseless:
S � Bb | AA | de | bdS � Bb | AA | de | bdA � Bb B � AB | d
Hasil akhir aturan produksi tidak lagi memiliki produksi ε, produksi unit, maupun produksi useless.
PERTEMUAN 12
BENTUK NORMAL CHOMSKY
Pengertian Bentuk Normal Chomsky • Bentuk normal Chomsky / Chomsky Normal Form (CNF)
merupakan salah satu bentuk normal yang sangat berguna untuktata bahasa bebas konteks ( CFG ). Bentuk normal Chomsky dapatdibuat dari sebuah tata bahasa bebas konteks yang telahmengalami penyederhanaan yaitu penghilangan produksi useless, unit, dan ε. Dengan kata lain, suatu tata bahasa bebas konteksdapat dibuat menjadi bentuk normal Chomsky dengan syarat tatabahasa bebas kontesk tersebut:
1. Tidak memiliki produksi useless1. Tidak memiliki produksi useless2. Tidak memiliki produksi unit3. Tidak memiliki produksi εAturan produksi dalam bentuk normal Chomsky ruas kanannya tepat
berupa sebuah terminal atau dua variabel non terminal. Misalkan: A � BC A � b B � a C � BA | d
Pembentukan Bentuk Normal Chomsky • Langkah-langkah pembentukan bentuk normal Chomsky
secara umum sebagai berikut: 1. Biarkan aturan produksi yang sudah dalam bentuk normal
Chomsky2. Lakukan penggantian aturan produksi yang ruas kanannya
memuat simbol terminal dan panjang ruas kanan > 13 Lakukan penggantian aturan produksi yang ruas kanannya3 Lakukan penggantian aturan produksi yang ruas kanannya
memuat > 2 simbol variabel Non Terminal4 Penggantian-penggantian tersebut bisa dilakukan berkali-kali
sampai akhirnyasemua aturan produksi dalam bentuk normal Chomsky
5 Selama dilakukan penggantian, kemungkinan kita akanmemperoleh aturan-aturanproduksi baru, dan juga memunculkan simbol-simbol variabelbaru
Contoh, tata bahasa bebas konteks ( kita anggap tata bahasa bebaskonteks pada bab ini sudah mengalami penyederhanaan ): S � bA | aBA � bAA | aS | a B � aBB | bS | b Aturan produksi yang sudah dalam bentuk normal Chomsky: A � a B � b Dilakukan penggantian aturan produksi yang belum bentuk normal Dilakukan penggantian aturan produksi yang belum bentuk normal Chomsky (‘=>’ bisa dibaca berubah menjadi): S � bA => S �P1A S � aB => S � P2B A � bAA => A � P1AA => A� P1P3 A � aS => A � P2S B � aBB => B � P2BB => B � P2P4 B � bS => B � P1S
Terbentuk aturan produksi dan simbol variabel baru: P1 � b P2 � a P3 � AA P4 � BB Hasil akhir aturan produksi dalam brntuk normal Chomsky :
A �a B � b S � P A S � P1A S � P2B A � P1P3 A � P2S B � P2P4 B � P1S P1 � b P2 � a P3 � AA P4 � BB
Contoh, tata bahasa bebas konteks: S � aB | CA A � a | bcB � BC | AbC � aB | b Aturan produksi yang sudah dalam bentuk normal Chomsky : S � CA A �a B � BC B � BC C � b Penggantian aturan produksi yang belum dalam bentuk normal Chomsky: S � aB => S � P1B A � bc => A � P2P3 B �Ab => B � A P2 C � aB => C � P1B
• Terbentuk aturan produksi dan simbol variabel baru: P1 � a P2 � bP3 � c Hasil akhir aturan produksi dalam bentuk normal Chomsky :
S � CA A � a B � BC B � BC C � b S � P1B S �P2P3 B � A P2 C � P1B P1 � a P2 � b P3 � c
Contoh, tata bahasa bebas konteks : S � aAB | ch | CD A � dbE | eECB � ff | DD C � ADB | aSD � iE � jD
Aturan produksi yang sudah dalam bentuk normal Chomsky : S � CD B � DD B � DD D � iPenggantian aturan produksi:
S �aAB => S � P1P2 S � ch => S � P3P4 A � dbE => A � P5P6 A � eEC => A � P8P9 B � ff => B � P10P10 C � ADB => C � AP11 C � aS => C � P1S E � jD => E � P12D
Terbentuk aturan produksi baru: P1 �a P2 � AB P3 � c P4 � h P5 � d P6 � P7E P6 � P7E P7 � b P8 � e P9 � EC P10 � f P11 � DB P12 �j
Hasil akhir dalam bentuk normal Chomsky: S � CD B � DD D � iS � P1P2 S �P3P4 A � P5P6 A � P8P9 B � P10P10 C � AP11 C � P1S E � P D
1E � P12D P1 � a P2 � AB P3 � c P4 � h P5 � d P6 � P7E P7 � b P8 � e P9 � EC P10 � f P11 � DB P12 � j
PERTEMUAN 13
PENGHILANGAN REKURSIF KIRI
Aturan Produksi Rekursif KananAturan Produksi yang rekursif memilki ruas kanan (hasil produksi) yang memuat simbol variabel pada ruas kiri. Sebuah aturan produksi dalambentuk:
Aturan Produksi Rekursif Kanan bentuk umum :A � βAmerupakan aturan produksi yang rekursif kananβ=(V∪T)* atau kumpulan simbol variabel dan terminal
Contoh aturan produksi yang rekursif kanan:
∪
Contoh aturan produksi yang rekursif kanan: S � dSB � adB
Aturan Produksi Rekursif Kiri bentuk Umum:A �AβMerupakan aturan produksi yang rekursif kiri, contohnya: S � SdB � Bad
Tahapan Penghilangan Rekursif KiriLangkah-langkah penghilangan rekursif kiri: �1. Pisahkan aturan produksi yang rekursif kiri dan yang tidak, misal:
Aturan produksi yang rekursif kiri:A �Aα1 | Aα2 | Aα3 | ... . Aαn
Aturan produksi yang tidak rekursif kiri (termasuk produksi ε):A � β1 | β2 | β3 | ... .. Βm
�2. Dari situ kita bisa tentukan α1, α2, .... αn, dan β1, β2, .... βm dari setiap aturanproduksi yang memiliki simbol ruas kiri yang sama
3.� Lakukan penggantian aturan produksi yang rekursif kiri, menjadi sebagai berikut:1) A � β1Z | β2Z | .... βmZ2) Z � α1 | α2 | α3 | .... αn
3) Z � α1Z | α2Z | α3Z | .... αnZ4. Penggantian diatas dilakukan untuk setiap aturan produksi dengan simbol ruas kiri
yang sama. Bisa muncul simbol variabel baru Z1, Z2 dan seterusnya, sesuaibanyaknya variabel yang menghasilkan produksi yang rekursif kiri. Hasil akhirberupa aturan produksi pengganti ditambah dengan aturan produksisemula yang tidak rekursif kiri.
Contoh, tata bahasa bebas konteks: S � Sab | aSc |dd | ff | SbdPertama-tama kita lakukan pemisahan aturan produksi Aturan produksi yang rekursif kiri: S � Sab | SbdDari situ kita tentukan: Untruk simbol ruas kiri S: α1=ab, α2=bdAturan produksi yang tidak rekursif kiri: S � aSc | dd | ff Dari situ kita dapatkan: Untuk simbol ruas kiri S: β =aSc, β =dd, β =ff Untuk simbol ruas kiri S: β1=aSc, β2=dd, β3=ff Kita lakukan penggantian aturan produksi yang rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S �Sab | Sbd, digantikan oleh: i. S � aScZ1 | dd Z1 | ffZ1
ii. Z1 � ab | bdiii. Z1 � abZ1 | bd Z1
Hasil akhir setelah penghilangan rekursif kiri adalah: S � aSc | dd | ff S � aScZ1 | dd Z1 | ffZ1 Z1 � ab | bdZ1 � abZ1 | bd Z1
Contoh lain, terdapat tata bahasa bebas konteks: S � Sab | Sb | cAA � Aa | a | bd
Pertama-tama kita lakukan pemisahan aturan produksi Aturanproduksi yang rekursif kiri:
S � Sab | SbA � Aa
Dari situ kita tentukan: Dari situ kita tentukan: Untuk simbol ruas kiri S: α1= ab, α2 =b Untuk simbol ruas kiri A: α1 = a
Aturan produksi yang tidak rekursif kiri: S � cAA � a | bd
Dari situ kita dapatkanUntuk simbol ruas kiri S: β1 = cAUntuk simbol ruas kiri 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:
i. S � cAZ1
ii. Z1 � ab | biii. Z1 � abZ1 | bZ1
Untuk yang memiliki simbol ruas kiri A :A � Aa, digantikan oleh:
i. A � a Z2 | bdZ2
ii. Z2 � aiii. Z2 � a Z2
Hasil akhir setelah penghilangan rekursif kiri adalah: S � cAA �a | bdS � cAZ1 Z1 � ab | b Z1 � abZ1 | bZ1 A � a Z2 | bdZ2 Z2 � a Z2 � a Z2
*Perhatikan bahwa penghilangan rekursif kiri memunculkan simbol variabel baru, dan aturanproduksi baru yang rekursif kanan.
Contoh lain, terdapat tata bahasa bebas konteks: S � Sa |aAc | c | ε A � Ab | baPertama-tama kita lakukan pemisahan aturan produksi Aturanproduksi yang rekursif kiri: S � Sa A � Ab
Dari situ kita tentukan: Untuk simbol ruas kiri S: α = a Untuk simbol ruas kiri S: α1 = a Untuk simbol ruas kiri A: α1 = b
Aturan produksi yang tidak rekursif kiri: S � aAc | c | ε A � ba
Dari situ kita dapatkanuntuk simbol ruas kiri S:β1 = aAc, β2= c, β3 = ε untuk simbol ruas kiri A: β1 = ba
*Perhatikan produksi ε termasuk produksi yang tidak rekursif kiriKita lakukan penggantian aturan produksi yang rekursif kiri: Untuk yang memilki simbol ruas kiri S:
S � Sa, digantikan oleh: i. S � aAcZ1 | cZ1 | Z1ii. Z1 � aiii. Z1 � a Z1
Untuk yang memiliki simbol ruas kiri A:A � Ab, digantikan oleh:A � Ab, digantikan oleh:i. A � ba Z2ii. Z2 � biii. Z2 � bZ2
Hasil akhir setelah penghilangan rekursif kiri adalah: S � aAc | c | ε S � aAcZ1 | cZ1 | Z1 A � baA � ba Z2 Z1� a Z1� a Z1 Z2� b Z2 � b Z2
PERTEMUAN 1PERTEMUAN 144
MESIN TURINGMESIN TURING
PERTEMUAN 1PERTEMUAN 144
MESIN TURINGMESIN TURINGMESIN TURINGMESIN TURINGMESIN TURINGMESIN TURING
Mesin turing mempunyai 7 Tuple
M = (Q, ∑, Γ, δ, S, F, θ)
Q = himpunan state
∑ = Himpunan simbol input
Γ = simbol pada pita
δ = fungsi transisi
S = state awal, S ∈ Q
F = himpunan state akhir
b = simbol kosong (blank)
Contoh :
Terdapat mesin turing dengan konfigurasi
Q = { q1, q2 }
∑ = { a, b }
Γ = { a, b, b }
F = { q2 } R = Right
S = { q1 } L = Left
Fungsi transisi
δ ( q1, a) = (q1, a, R)
δ ( q1, b) = (q1, a, R)
δ (q1, b ) = (q2, b ,L)
- δ (q1, a) = (q1, a, R)
State q , head menunjuk karakter ‘a’ pada pita menjadi state q , head bergerak keState q1, head menunjuk karakter ‘a’ pada pita menjadi state q1, head bergerak kekanan.
- δ (q1, b) = (q1, a, R)
State q1, head menunjuk karakter ‘b’ pada pita menjadi state q1, head menuliskarakter ‘a’ lalu bergerak ke kanan
- δ ( q1, b ) = (q2, b , L)
Pada State q1, head menunjuk karakter ‘ b ’ pada pita menjadi state q2, headbergerak ke kiri.
Jika mesin turing tersebut menerima input ‘abbaa’, apakah diterima oleh mesin turing atau ditolak
1. Pita yang dibaca ‘abbaa’ a b b a a
State q1 Fungsi transisi δ(q1 ) = (q1, a, R)
2. a b b a a
State q1
Fungsi transisi δ (q1, b) = (q1, a, R) Head menulis ‘a’ lalu bergerak ke kanan 3.
a a b a a State q1
Fungsi transisi δ (q1, b) = (q1, a, R) Head menulis ‘a’ lalu bergerak ke kanan
4. a a a a a
State q1
Fungsi transisi δ (q1, a) = (q1, a, R) Head bergerak ke kanan 5.
a a a a a
State q1
Fungsi transisi δ (q1, a) = (q1, a, R) Head bergerak ke kanan 6.
a a a a a b a a a a a b
State q1
Fungsi transisi δ (q1, b ) = (q2, b, L) Head menunjuk ‘ b ’ lalu head bergerak ke kiri
7.
a a a a a b
State q2
State berhenti pada q2, q2 adalah final state, maka state input ‘ abbaa’ diterima.