Download pdf - Teori Bahasa Automata1

Transcript
Page 1: Teori Bahasa Automata1

PERTEMUAN I

Page 2: Teori Bahasa Automata1

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.

Page 3: Teori Bahasa Automata1

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.

Page 4: Teori Bahasa Automata1

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.

Page 5: Teori Bahasa Automata1

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

Page 6: Teori Bahasa Automata1

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)

Page 7: Teori Bahasa Automata1

• 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)

Page 8: Teori Bahasa Automata1

• 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 |…

Page 9: Teori Bahasa Automata1

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.

Page 10: Teori Bahasa Automata1

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.

Page 11: Teori Bahasa Automata1

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

Page 12: Teori Bahasa Automata1

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}

Page 13: Teori Bahasa Automata1

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.

Page 14: Teori Bahasa Automata1

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.

Page 15: Teori Bahasa Automata1

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 |…..

Page 16: Teori Bahasa Automata1

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 )

Page 17: Teori Bahasa Automata1

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 )

Page 18: Teori Bahasa Automata1

PERTEMUAN 2PERTEMUAN 2

FINITE STATE AUTOMATA ( FSA )

Page 19: Teori Bahasa Automata1

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

Page 20: Teori Bahasa Automata1

� 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

Page 21: Teori Bahasa Automata1

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

Page 22: Teori Bahasa Automata1

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

Page 23: Teori Bahasa Automata1

� 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

Page 24: Teori Bahasa Automata1

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

Page 25: Teori Bahasa Automata1

* 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

Page 26: Teori Bahasa Automata1

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

Page 27: Teori Bahasa Automata1

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 ) “

Page 28: Teori Bahasa Automata1

REDUKSI JUMLAH STATE PADA REDUKSI JUMLAH STATE PADA

FINITE STATE AUTOMATA

Page 29: Teori Bahasa Automata1

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.

Page 30: Teori Bahasa Automata1

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

Page 31: Teori Bahasa Automata1

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

Page 32: Teori Bahasa Automata1

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

Page 33: Teori Bahasa Automata1

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

Page 34: Teori Bahasa Automata1

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

Page 35: Teori Bahasa Automata1

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

Page 36: Teori Bahasa Automata1

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

Page 37: Teori Bahasa Automata1

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

Page 38: Teori Bahasa Automata1

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

Page 39: Teori Bahasa Automata1

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

Page 40: Teori Bahasa Automata1

PERTEMUAN 3PERTEMUAN 3

EKIVALENSI NFA KE DFA

Page 41: Teori Bahasa Automata1

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

Page 42: Teori Bahasa Automata1

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 }

Page 43: Teori Bahasa Automata1

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}

Page 44: Teori Bahasa Automata1

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 }

φ φ φ

Page 45: Teori Bahasa Automata1

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

Page 46: Teori Bahasa Automata1

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

Page 47: Teori Bahasa Automata1

PERTEMUAN 4Ekivalensi NFA εεεε - MOVE ke NFA TANPA εεεε - MOVE

Page 48: Teori Bahasa Automata1

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

Page 49: Teori Bahasa Automata1

εεεε - 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.

Page 50: Teori Bahasa Automata1

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 εεεε

Page 51: Teori Bahasa Automata1

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

Page 52: Teori Bahasa Automata1

δ 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 }

Page 53: Teori Bahasa Automata1

δδδδ’ ( 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 }

Page 54: Teori Bahasa Automata1

δδδδ’ ( 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 ( φφφφ )= φφφφ

Page 55: Teori Bahasa Automata1

NFA tanpa ε - Move

5.

q0 q2

q1

a

ab

δ’ a b

q0 q2 q3

q1 q2 q3

q2 φ φ

4. Tabel Transisi

q3

bq3 φ φ

Page 56: Teori Bahasa Automata1

Tugas

1. Buatlah NFA tanpa εεεε-move yang ekuivalen dengan NFA εεεε-move padagambar di bawah ini , ( ∑ = {0,1,2})

εεεε εεεε

0 12

q0 q1 q2εεεε εεεε

Page 57: Teori Bahasa Automata1

2. Buatlah NFA tanpa εεεε-move yang ekuivalen dengan NFA εεεε-move pada gambar di bawah ini , ( ∑ = {0,1,2})

εεεε

0

q0q1

εεεε

1

Page 58: Teori Bahasa Automata1

Ekspresi Reguler

Pertemuan 5

Page 59: Teori Bahasa Automata1

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.

Page 60: Teori Bahasa Automata1

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

Page 61: Teori Bahasa Automata1

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

Page 62: Teori Bahasa Automata1

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

Page 63: Teori Bahasa Automata1

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

Page 64: Teori Bahasa Automata1

q0 q1 q2 q3

aεεεε εεεε

b

εεεε εεεε

q4 q5

b

Gambar 5.3. NFA εεεε-move untuk ER: a∪b

Page 65: Teori Bahasa Automata1

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

Page 66: Teori Bahasa Automata1

q0 q1 q3

ba

a

a

Gambar 5.5. Mesin FSA

q4q2

ab

b

Page 67: Teori Bahasa Automata1

Hubungan antara NFA, εεεε-move, DFA, dan ER

NFA

DFA NFAεεεε-move

ER

Page 68: Teori Bahasa Automata1

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

Page 69: Teori Bahasa Automata1

EKSPRESI REGULAREKSPRESI REGULAR

Page 70: Teori Bahasa Automata1

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

Page 71: Teori Bahasa Automata1

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

Page 72: Teori Bahasa Automata1

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

Page 73: Teori Bahasa Automata1

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

Page 74: Teori Bahasa Automata1

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

Page 75: Teori Bahasa Automata1

Aturan Produksi Untuk Finite

State Automata (FSA)State Automata (FSA)

Pertemuan 6

Page 76: Teori Bahasa Automata1

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)

Page 77: Teori Bahasa Automata1

• 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

Page 78: Teori Bahasa Automata1

q0 q1 q3

a

q2

ab

εεεε

Gambar 6.1. Mesin FSA

εεεεq3

b

b

Page 79: Teori Bahasa Automata1

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

Page 80: Teori Bahasa Automata1

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.

Page 81: Teori Bahasa Automata1

• 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

Page 82: Teori Bahasa Automata1

• 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

Page 83: Teori Bahasa Automata1

• 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

Page 84: Teori Bahasa Automata1

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

Page 85: Teori Bahasa Automata1

q4

q1q0 q2

aq3

b

b

b

a

a

Gambar 6.2. FSA dari suatu regular grammer

q4

q5 q6

a

a

b

Page 86: Teori Bahasa Automata1

ATURAN PRODUKSI ATURAN PRODUKSI

Page 87: Teori Bahasa Automata1

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

Page 88: Teori Bahasa Automata1

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

Page 89: Teori Bahasa Automata1

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 }

Page 90: Teori Bahasa Automata1

Finite State Automata (FSA)

Dengan OutputDengan Output

Pertemuan 9

Page 91: Teori Bahasa Automata1

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.

Page 92: Teori Bahasa Automata1

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

Page 93: Teori Bahasa Automata1

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

Page 94: Teori Bahasa Automata1

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)

Page 95: Teori Bahasa Automata1

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

Page 96: Teori Bahasa Automata1

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

Page 97: Teori Bahasa Automata1

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

Page 98: Teori Bahasa Automata1

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.

Page 99: Teori Bahasa Automata1

• 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

Page 100: Teori Bahasa Automata1

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

Page 101: Teori Bahasa Automata1

• 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

Page 102: Teori Bahasa Automata1

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.

Page 103: Teori Bahasa Automata1

FSA(FINITE STATE AUTOMATA)

FSA(FINITE STATE AUTOMATA)(FINITE STATE AUTOMATA)

DENGAN OUTPUT

(FINITE STATE AUTOMATA)

DENGAN OUTPUT

Page 104: Teori Bahasa Automata1

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

Page 105: Teori Bahasa Automata1

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

Page 106: Teori Bahasa Automata1

� 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, ∆∆∆∆, λλλλ )

Page 107: Teori Bahasa Automata1

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

Page 108: Teori Bahasa Automata1

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

Page 109: Teori Bahasa Automata1

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

Page 110: Teori Bahasa Automata1

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

Page 111: Teori Bahasa Automata1

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 ?

Page 112: Teori Bahasa Automata1

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

Page 113: Teori Bahasa Automata1

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

Page 114: Teori Bahasa Automata1

∗ 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

Page 115: Teori Bahasa Automata1

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

Page 116: Teori Bahasa Automata1

Pohon penurunan

Pertemuan 10

Page 117: Teori Bahasa Automata1

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.

Page 118: Teori Bahasa Automata1

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.

Page 119: Teori Bahasa Automata1

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

Page 120: Teori Bahasa Automata1

• 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

Page 121: Teori Bahasa Automata1

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.

Page 122: Teori Bahasa Automata1

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

Page 123: Teori Bahasa Automata1

S

AS

S b A a

a

Gambar 8.2. Pohon Penurunan untuk untai ‘aabbaa’

S b A a

ba a

Page 124: Teori Bahasa Automata1

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

Page 125: Teori Bahasa Automata1

Contoh lain, terdapat tata bahasa konteks:

S→SbSScSa

Coba anda tentukan cara untuk menurunkan untai ‘abaca’.

Dan buatkanlah pohon penurunannya.

Page 126: Teori Bahasa Automata1

Pertemuan 11

PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS

Page 127: Teori Bahasa Automata1

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

Page 128: Teori Bahasa Automata1

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 )

Page 129: Teori Bahasa Automata1

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

Page 130: Teori Bahasa Automata1

• 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.

Page 131: Teori Bahasa Automata1

maka produksi yang useless: A � D C � bb E � aEaB � E B � E

Penyederhanaannya menjadi: S � Aa | B

A � abB � b

Page 132: Teori Bahasa Automata1

• 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

Page 133: Teori Bahasa Automata1

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

Page 134: Teori Bahasa Automata1

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

Page 135: Teori Bahasa Automata1

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

Page 136: Teori Bahasa Automata1

Analisa lagiB � Ab, A tidak memiliki penurunan. Hasilpenyederhanaan: S � aBDB � cDD � efD � ef

Page 137: Teori Bahasa Automata1

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.

Page 138: Teori Bahasa Automata1

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

Page 139: Teori Bahasa Automata1

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

Page 140: Teori Bahasa Automata1

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

Page 141: Teori Bahasa Automata1

Sehingga aturan produksi setelah penyederhanaan: S � ab | b S � AaA � ab | b B � abB � b B � b C � b C � abD � b

Page 142: Teori Bahasa Automata1

Contoh lagi: S � Cba | D A � bbC

B � Sc | dddC � eAn | f | C D � E | SABC D � E | SABC E � gh

Page 143: Teori Bahasa Automata1

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

Page 144: Teori Bahasa Automata1

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

Page 145: Teori Bahasa Automata1

Tetapi bila kasusnya:S � bcAdA � bd | ε

A nullable, tapi A � ε bukan satu-satunya produksidari A, maka hasilpenyederhanaan:penyederhanaan:S � bcAd | bcdA � bd

Page 146: Teori Bahasa Automata1

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

Page 147: Teori Bahasa Automata1

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

Page 148: Teori Bahasa Automata1

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

Page 149: Teori Bahasa Automata1

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 � ε

Page 150: Teori Bahasa Automata1

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.

Page 151: Teori Bahasa Automata1

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

Page 152: Teori Bahasa Automata1

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

Page 153: Teori Bahasa Automata1

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

Page 154: Teori Bahasa Automata1

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

Page 155: Teori Bahasa Automata1

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.

Page 156: Teori Bahasa Automata1

PERTEMUAN 12

BENTUK NORMAL CHOMSKY

Page 157: Teori Bahasa Automata1

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

Page 158: Teori Bahasa Automata1

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

Page 159: Teori Bahasa Automata1

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

Page 160: Teori Bahasa Automata1

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

Page 161: Teori Bahasa Automata1

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

Page 162: Teori Bahasa Automata1

• 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

Page 163: Teori Bahasa Automata1

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

Page 164: Teori Bahasa Automata1

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

Page 165: Teori Bahasa Automata1

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

Page 166: Teori Bahasa Automata1

PERTEMUAN 13

PENGHILANGAN REKURSIF KIRI

Page 167: Teori Bahasa Automata1

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

Page 168: Teori Bahasa Automata1

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.

Page 169: Teori Bahasa Automata1

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

Page 170: Teori Bahasa Automata1

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

Page 171: Teori Bahasa Automata1

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.

Page 172: Teori Bahasa Automata1

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

Page 173: Teori Bahasa Automata1

*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

Page 174: Teori Bahasa Automata1

PERTEMUAN 1PERTEMUAN 144

MESIN TURINGMESIN TURING

PERTEMUAN 1PERTEMUAN 144

MESIN TURINGMESIN TURINGMESIN TURINGMESIN TURINGMESIN TURINGMESIN TURING

Page 175: Teori Bahasa Automata1

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

Page 176: Teori Bahasa Automata1

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.

Page 177: Teori Bahasa Automata1

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

Page 178: Teori Bahasa Automata1

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.