Teori Bahasa Automata1

Preview:

Citation preview

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.