• Tidak ada hasil yang ditemukan

PENDAHULUAN Teori Bahasa

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENDAHULUAN Teori Bahasa"

Copied!
178
0
0

Teks penuh

(1)
(2)

PENDAHULUAN

Teori Bahasa

Teori bahasa membicarakan bahasa formal (formal language),

terutama untuk kepentingan perancangan kompilator (compiler) dan

pemroses naskah (text processor). Bahasa formal adalah kumpulan

kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh

sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal

bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.

Dikatakan bahasa formal karena grammar diciptakan mendahului

pembangkitan

setiap

kalimatnya.

Bahasa

manusia

bersifat

sebaliknya; grammar diciptakan untuk meresmikan kata-kata yang

hidup di masyarakat. Dalam pembicaraan selanjutnya ‘bahasa

formal’ akan disebut ‘bahasa’ saja.

(3)

Automata

Automata adalah mesin abstrak yang dapat mengenali (recognize),

menerima

(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa

tertentu.

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 mampu

membuat keputusan dalam mentransformasikan input ke output. Sebuah

bahasa formal adalah suatu abstraksi terdiri dari himpunan simbol-simbol

dan aturan-aturan yang mana simbol-simbol tersebut bisa dikombinasikan

ke dalam entitas yang disebut kalimat. Meskipun bahasa formal yang

dipelajari di sini lebih sederhana daripada bahasa pemrograman, mereka

mempunyai banyak hal yan g penting. Kita bisa mempelajari banyak

tentang bahasa pemrograman dari bahasa formal.

(4)

Otomata merupakan suatu sistem yang terdiri atas

sejumlah berhingga state, dimana state menyatakan

informasi mengenai input yang lalu dan dapat dianggap

sebagai

memori

mesin.

Input

pada

mesin

otomata

dianggap sebagai bahasa yang harus dikenali oleh mesin.

Selanjutnya, mesin otomata membuat keputusan yang

Selanjutnya, mesin otomata membuat keputusan yang

mengindikasikan apakah input itu diterima atau tidak.

(5)

Beberapa Pengertian Dasar

• Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalam geometri). 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 dibangun dari 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 | dan

didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut. Sebagai contoh, jika w = abcb maka | w | = 4.

• String hampa adalah sebuah string dengan nol buah simbol. String hampa dinyatakan dengan simbol ε (atau ^) sehingga |ε |= 0. String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.

(6)

Operasi Dasar String

Diberikan dua string : x = abc, dan y = 123

• Prefik string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling belakang dari string w tersebut.

Contoh : abc, ab, a, dan ε adalah semua Prefix(x)

• ProperPrefix string w adalah string yang dihasilkan dari string w dengan • ProperPrefix string w adalah string yang dihasilkan dari string w dengan

menghilangkan satu atau lebih simbol-simbol paling belakang dari string w tersebut.

Contoh : ab, a, dan ε adalah semua ProperPrefix(x)

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

(7)

• ProperPostfix (atau PoperSufix) string w adalah string yang dihasilkan dari

string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string 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 menghilangkan simbol 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 dengan

menghilangkan nol atau lebih 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 dengan menghilangkan satu atau lebih simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.

(8)

• Subsequence string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol dari string w tersebut.

Contoh : abc, ab, bc, ac, a, b, c, dan ε adalah semua Subsequence(x)

• ProperSubsequence string w adalah string yang dihasilkan dari string w dengan menghilangkan 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 concatenation adalah 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 alternation adalah alternate atau |.

Contoh : alternate(x|y) = x | y = abc atau 123

• Kleene Closure : x* = ε | x | xxxxx |… = ε | x | x 2 | x 3 |… • Positive Closure : x + = x | xx | xxx |… = x |x 2 | x 3 |…

(9)

Konsep Dasar

1. 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-simbol terminal, misalnya : x, y, z.

(10)

8. Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya : α, β, dan γ. 9. Sebuah produksi dilambangkan sebagai α → β, artinya : dalam sebuah derivasi

dapat dilakukan penggantian simbol α dengan simbol β.

10. Simbol α dalam produksi berbentuk α → β disebut ruas kiri produksi sedangkan simbol β disebut ruas kanan produksi.

11. Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi 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 bahwa kalimat adalah kasus khusus dari sentensial.

14. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasi berakhir 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 dihasilkan

(11)

Grammar dan Klasifikasi Chomsky

Grammar G didefinisikan sebagai pasangan 4 tuple : V T ,

V N , S, dan Q, dan

dituliskan sebagai G(V T , V N , S, Q), dimana :

V

T

: himpunan simbol-simbol terminal (atau

himpunan token -token, atau

himpunan token -token, atau

alfabet)

V

N

: himpunan simbol-simbol non terminal

S

V

N

: simbol awal (atau simbol start)

(12)

Berdasarkan komposisi bentuk ruas kiri dan ruas kanan

produksinya (

α

β

), Noam

Chomsky mengklasifikasikan 4 tipe grammar :

1. Grammar tipe ke-0 : Unrestricted Grammar (UG)

Ciri :

α

,

β

(V

T

| V

N

)*, |

α

| > 0

2. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)

Ciri :

α

,

β

(V

T

| V

N

)*, 0 < |

α

|

|

β

|

3. Grammar tipe ke-2 : Context Free Grammar (CFG)

3. Grammar tipe ke-2 : Context Free Grammar (CFG)

Ciri :

α

V

N

,

β

(V

T

| V

N

)*

4. Grammar tipe ke-3 : Regular Grammar (RG)

Ciri :

α

V

N

,

β

{V

T

, V

T

V

N

} atau

α

V

N

,

β

{V

T

, V

N

V

T

}

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}

(13)

Contoh Analisa Penentuan Type Grammar

1. 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 string V T VN maka G1 adalah RG.

2. Grammar G 2 dengan Q 2 = {S → Ba, B → Bb, B → b}. Ruas kiri semua

produksinya terdiri dari sebuah VN maka G 2 kemungkinan tipe CFG atau RG. Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau string

V 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 semua

produksinya 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 VNV 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 produksinya terdiri dari sebuah VN maka G 4 kemungkinan tipe CFG atau RG. Selanjutnya karena ruas kanannya mengandung string yang panjangnya lebih dari 2 (yaitu aAb) maka G 4 bukan RG, dengan kata lain G 4 adalah CFG.

(14)

5. Grammar G5 dengan Q 5 = {S → aA, S → aB, aAb → aBCb}. Ruas kirinya mengandung string yang panjangnya lebih dari 1 (yaitu aAb) maka G5

kemungkinan tipe CSG atau UG. Selanjutnya karena semua ruas kirinya lebih pendek atau sama dengan ruas kananya maka G 5 adalah CSG.

6. Grammar G 6 dengan Q 6 = {aS → ab, SAc → bc}. Ruas kirinya mengandung string yang panjangnya lebih dari 1 maka G 6 kemungkinan tipe CSG atau UG. Selanjutnya karena terdapat ruas kirinya yang lebih panjang daripada ruas

kananya (yaitu SAc) maka G 6 adalah UG. kananya (yaitu SAc) maka G 6 adalah UG.

(15)

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

(16)

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 )

(17)

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 0 Tipe 0 m. AB → cde VNVN → VTVTVT ( Tidak ) n. adC → DE VTVTVN → VNVN ( Ya ) o. ad → b VTVT → VN ( Ya )

(18)

PERTEMUAN 2

PERTEMUAN 2

(19)

FINITE STATE AUTOMATA ( FSA )

FSA merupakan mesin automata dari bahasa Regular. FSA memiliki state yang banyaknya berhingga dan dapat berpindah – pindah dari satu state ke state yang lain. Perpindahan state dinyatakan dengan 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 state ) • 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 menyatakan state awal

 Simbol input { 0.1}

(20)

 State awal Even

 State akhir Odd

 Bila mesin mendapat Input : l l 0 l, apakah diterima oleh mesin? Input akan diterima bila berakhir pada hait atau final state . Untuk state yang

dilakukan

Even l Odd l Even O Even l Odd Even l Odd l Even O Even l Odd

Berakhir pada state Odd, maka Input ll0l diterima oleh mesin

 Bila mendapat input l0l, apakah diterima oleh mesin ? Untuk state yang dilakukan

Even l Odd 0 Odd l Even

(21)

Secara formal Finite State Automata dinyatakan dengan 5 tuple atau m = { Q, ΣΣΣΣ, δδδδ, S, F }

Definisinya :

Q = Himpunan state atau kedudukan

ΣΣΣΣ = Himpunan simbol input / masukan / abjad / angka

δδδδ = Fungsi transisi

S = State awal / kedudukan awal, S € Q F = 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

(22)

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

(23)

 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 merupakan 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 q 1

(24)

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”, apakah diterima oleh mesin

δδδδ ( q0, abbaba ) = δδδδ ( q1, bbaba ) = δδδδ ( q0,baba ) = δδδδ ( q1, aba ) = δδδδ ( q1, ba ) = δδδδ ( q0, a ) = q1

Berakhir pada final state maka input diterima oleh mesin “ abbaba “ berada diakhir L ( m )

δ a b q0 q1 q1 q1 q1 q0

(25)

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

(26)

2. Mesin NFA b a a b a b



a qo q2 q1



a Q = { q0, q1, q2 } ΣΣΣΣ = { a, b } S = { q0 } F = { q1 }

(27)

Tabel Transisi

q0 mendapat input a dengan 2 transisi state { q1, q2 }

NFA ⇒⇒⇒⇒ Jika state satu mempunyai 2 transisi dengan input yang 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

(28)

REDUKSI JUMLAH STATE PADA

REDUKSI JUMLAH STATE PADA

(29)

REDUKSI JUMLAH STATE PADA FINITE STATE AUTOMATA

TAHAPAN REDUKSI :

1. Hapus semua state yang tidak dapat dicapai dari state awal.

2. Buatlah semua pasangan state ( p, q ) yang distinguishable, 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 tercatat sehingga

distinguishable maka pasangan ( p, q ) juga dimasukkan sebagai distinguishable.

4. Dari hasil No. (3), distinguishable dapat pasangan state – state

distringuishable. Pasangan – pasangan state lain yang tidak termasuk ke dalam state distinguishable tersebut, sisanya dapat ditentukan

sebagai state yg indistinguishable.

5. Beberapa state yang saling indistinguishable dapat digabungkan ke dalam satu state.

(30)

distringuishable ⇒⇒⇒⇒ dapat dibedakan

indistringuishable ⇒⇒⇒⇒ tidak dapat dibedakan

2 buah state p dan q dari DFA dikatakan indistrnguishable 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 string 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 tersebut

q3 q2 q1 qo

(31)

Tahap – tahap yang dilakukan untuk reduksi jumlah state 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 € F dicatat 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 distinguishable

→ → →

pasangan ( q0, q2 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q2, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q2 ) juga distinguishable

→ → →

pasangan ( q0, q3 ) : δδδδ ( q0, 1) = q3 dan δδδδ ( q3, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q3 ) juga distinguishable

(32)

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 dengan q3, maka q1, q2, q3 saling indistinguishable dan dapat dijelaskan dalam satu state

6. Gambar setelah reduksi jumlah state

0, 1









0 1









0,1

(33)

Latihan Soal

1. 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 state adalah sbb : 1. Ada state yang tak dicapai dari state awal yaitu q5…(dihapus)

2. Distinguishable :…..( q0, q3 ), ( q2, q4 ), ( q1, q4 ) ( q2, q3 ), ( q0, q4 ), ( q1, q3 ) q0, q1, q2, € F

(34)

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 ), ( q1, 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

(35)

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 state adalah sbb : 1. Tidak ada state yang tak dicapai dari state awal

2. Distinguishable:( q0, q1 ), ( q0, q3 ), ( q2, q4 ), ( q2, q6 ), ( q5, q4 ), ( q5, q6 ) q0, q4, q6 € F

q1, q2, q3, q5 € F

(36)

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

(37)

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, q5 ), ( 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.1 qo q4 6 q123 5

(38)

Tugas

1. Gambarkan diagram transisi dari Deterministic Finite Automata berikut Q = { q0, q1, q2 }

∑ = { a,b } S = q0 F = {q0 }

Fungsi transisi dari DFA tersebut Fungsi transisi dari DFA tersebut

δ a b

q0 q1 q2

q1 q2 q0

(39)

2. Bila L(M) adalah bahasa yang diterima oleh Deterministic Finite Automata pada gambar di bawah, tentukan string berikut termasuk dalam L(M )

qo q1q1 b a, b a a. aaa a. aaa b. bbbb c. abba

(40)

PERTEMUAN 3

PERTEMUAN 3

(41)

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 DFA

DFA

• 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 DFA berkorespondensi dengan set state di NFA

• DFA yang dibentuk mencatat semua state yang mungkin pada NFA setelah membaca input tertentu

(42)

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

}

(43)

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 }

(44)

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

(45)

Tugas

1. Buatlah DFA yang ekuivalen dengan NFA berikut Q = { p, q, r, s}

∑ = { 0, 1} S = p

F = {s}

Fungsi transisinya dinyatakan dalam tabel transisi berikut

δδδδ 0 1

p p, q p

q r r

r s

(46)

2. Buatlah DFA yang ekuivalen dengan NFA berikut Q = { p, q, r, s}

∑ = { 0, 1} S = p

F = {q, s}

Fungsi transisinya dinyatakan dalam tabel transisi berikut

δδδδ 0 1 p p, s p p p, s p q r q, r r s p s - p

(47)

PERTEMUAN 4

(48)

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 dicapai dari suatu state tanpa membaca input

(49)

εεεε - 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 adalah state itu sendiri.

(50)

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 state 2. 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 & diagram transisi NFA tanpa εεεε - Move yang ekivalensi dengan NFA εεεε - Move εεεε

(51)

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

(52)

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

(53)

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

(54)

δδδδ

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

φφφφ

)

=

φφφφ

(55)

NFA tanpa ε - Move 5. q0 q2 q1 a a b δ’ a b q0 q2 q3 q1 q2 q3 q2 φ φ 4. Tabel Transisi q3 b q3 φ φ

(56)

Tugas

1. Buatlah NFA tanpa

εεεε

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

εεεε εεεε

0 1

2

(57)

2. Buatlah NFA tanpa

εεεε

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

εεεε 0 q0 q1 εεεε 1

(58)

Ekspresi Reguler

(59)

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.

(60)

5.2. Notasi ER

Tabel 5.1. Notasi ER

Nama

Symbol

Keterangan

asterik

*

Bisa tak muncul, bisa juga muncul

berhingga 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 bisa

(61)

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, aaad

a

+

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

(62)

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

(63)

q

0

a

q

1

εεεε

q

2

b

q

3

Gambar 5.1. NFA

εεεε

-move untuk ER: ab

q

0

q

1

q

2

a

εεεε

b

(64)

q

0

εεεε

q

1

a

q

2

εεεε

q

3

b

εεεε

εεεε

q

4

b

q

5

(65)

Tentukan ER untuk setiap mesin FSA pada gambar 5.4 dan

gambar 5.5.

0

1

q

0

1

q

1

q

2

Gambar 5.4. Mesin FSA

0

(66)

q

0

a

q

1

b

q

3

a

a

Gambar 5.5. Mesin FSA

q

4

q

2

a

b

(67)

Hubungan antara NFA,

εεεε

-move, DFA, dan ER

NFA

DFA

NFA

εεεε

-move

(68)

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 DFA

Tentukan: 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).

(69)

EKSPRESI REGULAR

EKSPRESI REGULAR

(70)

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

(71)

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

(72)

Hubungan Ekspresi Regular & FSA 1. a ε b ER ; ab



a ε b 2. qo q1 q2 q3 qo q1 q2 ER ; a*b 3. a ER : a ∪ b b 4. 0 0 1 ER ; 010* qo q2 q1 qo q1 q2

(73)

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

(74)

10. a b ER ; a ( ba )* 11. a qo q1 b ER ; ( ab ) * 12. 1



0 1



1 0 ER ; 01*∪10*11* q1 q0 qo q1 q2

(75)

Aturan Produksi Untuk Finite

State Automata (FSA)

State Automata (FSA)

(76)

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)

(77)

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

(78)

q

0

q

1

q

3

a

q

2

a

b

εεεε

Gambar 6.1. Mesin FSA

εεεε

q

3

b

(79)

Dari gambar 6.1., kumpulan aturan produksi yang kita peroleh

dapat dituliskan sbb:

S

aE

E

A | B

A

aA | B

B

bB | b

B

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

(80)

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 q

0

,

dari q

0

mendapat input a menjadi q

1

.Aturan produksi yang

dapat ditulis adalah: S

aE

E dapat kita identikkan denga q

1

, lebih tepatnya adalah bagian

yang belum terbangkitkan mulai dari q

1

.

(81)

Kita dapat menambahkan simbol variabel baru setiap kali kita

perlukan.

Dari q

1

mendapat tramsisi-e (tanpa menerima input) ke q

2

dan

q

3

, kita tuliskan:

E

A

E

B

E

B

Jika kita identikkan q

2

sebagai A, dan q

3

sebagai B; dari q

2

mendapat input a tetap ke q

2

; dari q

3

mendapat input b tetap

ke q

3

; bisa kita tuliskan:

A

aA

(82)

Selanjutnya kita lihat: dari q

2

memberikan input b ke q

4

; dari

q

3

memberikan input b ke q

4

; sementara q

4

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

A

B

A

aA

B

B

bB

b

(83)

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

A

B; A

aA

B; B

bB

b}

P = {S

aE;

E

A

B; A

aA

B; B

bB

b}

S = S

(84)

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

(85)

q

4

q

1

q

0

q

2

a

q

3

b

b

b

a

a

Gambar 6.2. FSA dari suatu regular grammer

q

4

q

5

q

6

a

a

(86)

ATURAN PRODUKSI

ATURAN PRODUKSI

(87)

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 terminal VN : 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

(88)

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 q2

E → 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

(89)

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|B E → 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 }

(90)

Finite State Automata

(FSA)

Dengan Output

Dengan Output

(91)

7.1. Mesin Moore

Suatu keterbatasan dari FSA yang sudah dipelajari sebelumnya

adalah: keputusannya terbatas pada diterima atau ditolak.

Otomata tsb biasa disebut dengan accepter (dalam hal ini

FSA).

Kita dapat mengkonstruksi sebuah FSA yang memiliki

keputusan beberapa keluaran (output), dalam hal ini otomata

keputusan beberapa keluaran (output), dalam hal ini otomata

tersebut dikenal sebagai transducer.

(92)

Mesin Moore didefinisikan dalam 6 tupel, yaitu:

M=(Q,

ΣΣΣΣ

,

δδδδ

, S,

∆∆∆∆

,

λλλλ

)

Dimana:

Q

=

himpunan state

Q

=

himpunan state

ΣΣΣΣ

=

himpunan simbol input

δδδδ

=

fungsi transisi

S

=

state awal, dimana S

Q

∆∆∆∆

=

himpunan output

(93)

Contoh Mesin Moore

Misalnya kita ingin memperoleh sisa pembagian (modulus) suatu

bilangan dengan 3, dimana input dinyatakan dengan biner.

Konfigurasi mesinnya adalah sbb:

Q = {q

0

, q

1

, q

2

}

ΣΣΣΣ

= {0, 1}

ΣΣΣΣ

= {0, 1}

S = q

0

∆∆∆∆

= {0, 1, 2} untuk output pada kasus mod dengan

3, kemungkinan sisa pembagiannya adalah 1,

2 atau 3

(94)

q

0

q

1

q

2

0

1

0

0

0

1

1

1

2

Gambar 7.1. Mesin Moore untuk MOD 3

0

1

2

Coba buktikan untuk:

• 5 MOD 3.

• 10 MOD 3

(95)

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

(96)

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 = {q

0

, q

1

, q

2

}

ΣΣΣΣ

= {0, 1},0

S = q

0

∆∆∆∆

= {Y, T}

λλλλ

(q

0

,0)=T;

λλλλ

(q

0

,1)=T;

λλλλ

(q

1

,0)=Y;

λλλλ

(q

1

,1)=T

λλλλ

(q

2

,0)=T;

λλλλ

(q

2

,1)=Y

(97)

q

0

q

1

q

0/T

0/T

0/Y

1/T

Gambar 7.2. Contoh Mesin Mealy

q

2

1/T

1/Y

Coba buktikan untuk input yang diterima: 01011; 01100;

1010100; 10110100; 00; 11; 100; 011; 111; 0101; 0010

(98)

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

(99)

Konfigurasi mesIn Moore yang dibentuk adalah:

Q

=

{q

0

Y, q

0

T, q

1

Y, q

1

T, q

2

Y, q

2

T}

ΣΣΣΣ

=

{0, 1}

S

=

q

0

S

=

q

0

∆∆∆∆

=

{0, 1, 2}

(100)

q

0

T

T

q

0

T

q

0

T

T

T

0

0

0

0

0

1

1

1

1

Gambar 7.3. Mesin Moore yang ekuivalen dengan Mesin Mealy

pada gambar 7.2.

Y

q

0

T

q

0

T

q

0

T

Y

Y

0

0

1

1

1

1

(101)

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

=

{q

0,

q

1

, q

2

}

Q

=

{q

0,

q

1

, q

2

}

ΣΣΣΣ

=

{0, 1}

S

=

q

0

∆∆∆∆

=

{0, 1, 2}

λλλλ

(q

0

,0)=0;

λλλλ

(q

0

,1)=1

λλλλ

(q

1

,0)=2;

λλλλ

(q

1

,1)=0

λλλλ

(q

2

,0)=1;

λλλλ

(q

2

,1)=3

(102)

q

q

0/0

1/1

0/2

1/2

q

0

1/1

q

1

q

2

0/1

0/2

1/0

Gambar 7.4. Mesin Mealy yang ekuivalen dengan Mesin

Moore pada gambar 7.1.

(103)

FSA

(FINITE STATE AUTOMATA)

FSA

(FINITE STATE AUTOMATA)

(FINITE STATE AUTOMATA)

DENGAN OUTPUT

(FINITE STATE AUTOMATA)

DENGAN OUTPUT

(104)

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

(105)

q0

5 mod 3 = ?

mod →→→→ hasil dari sisa pembagian bilangan biner 5 = 101 q1 q2 0 1 0 1 1 0 0 2 1

Mesin Moore untuk modulus 3 bilangan biner 5 = 101 urutkan state : δδδδ (q0, 101) = δδδδ(q1, 01) = δδδδ (q2, 1) = q2 Berakhir pada q2 λλλλ (q2)= 2 maka 5 mod 3 = 2

(106)



10 mod

Bilangan biner 10 = 1010

Urutkan state :

δδδδ

(q

0

, 1010) =

δδδδ

(q

1

, 010) =

δδδδ

( q

2

, 10) =

δδδδ

( q

2

, 0) = q

1

Beakhir pada q

1

λλλλ

(q

1

) = 1

maka 10 mod 3 = 1

λλλλ

(q

1

) = 1

maka 10 mod 3 = 1



MESIN MEALY

Dengan 6 tuple

M = (Q,

ΣΣΣΣ

,

δδδδ

, S,

∆∆∆∆

,

λλλλ

)

(107)

Contoh Mesin Mealy :

Konfigurasi mesin

Q = {q

0

, q

1

, q

2

}

λλλλ

= (q

0

, 0) = T

ΣΣΣΣ

= { 0, 1}

λλλλ

= (q

0

, 1) = T

∆∆∆∆

= { Y, T}

λλλλ

= (q

1

, 0) = Y

∆∆∆∆

= { Y, T}

λλλλ

= (q

1

, 0) = Y

S = {q

0

}

λλλλ

= (q

1

, 1) = T

λλλλ

= (q

2

, 0) = T

λλλλ

= (q

2

, 1) = Y

(108)

q0 q1 0 / T 0/Y 0/T 1/T 1/T

Jika MEsin Mealy menerima input

“110101”,

apakah

diterima

oleh

mesin tersebut ?

δ

(q

0

, 110101) =

δ

(q

2

, 10101)

T

=

δ

(q , 0101)

=

δ

(q , 101)

q2 1/T 1/Y

=

δ

(q

2

, 0101)

=

δ

(q

1

, 101)

Y

T

=

δ

(q

2

, 01)

=

δ

(q

1

, 1) = q

2

Y

T

T

Tidak diterima input 110101, ditolak

oleh Mesin Mealy

(109)

Contoh soal :

Mesin Moore

q0 q3 q1 q2 q4 0 0 0 0 0 0 3 1 4 1 1 1 2 1

0 - Buat konfigurasi mesin

tersebut

- Jika mesin menerima input “1101011”, output ? q5 0 1 1 5 δ (q0, 1101011) = δ (q1, 101011) = δ (q3, 01011) 1 3 = δ (q3, 1011) = δ (q4, 011) = δ (q2, 11) = δ (q5, 1) = q5 3 4 2 5 5

(110)

Input = 1101011

λ

( q

0

) = 0

Output = 1334255

λ

( q

1

) = 1

Q = {q

0

, q

1

, q

2

, q

3

, q

4

, q

4

}

λ

( q

2

) = 2

Σ

= {0, 1}

λ

( q ) = 3

Σ

= {0, 1}

λ

( q

3

) = 3

= { 0, 1, 2, 3, 4, 5 }

λ

( q

4

) = 4

S = q

0

λ

( q

4

) = 4

A

(111)

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 ?

(112)

1.

δδδδ

(q

0

, 1010101101011) =

δδδδ

(q

1

, 010101101011) = (q

2

, 10101101011)

1

2

=

δδδδ

(q

5

, 0101101011) =

δδδδ

(q

1

, 101101011) =

δδδδ

(q

3

, 01101011)

5

1

3

=

δδδδ

(q

3

, 1101011) =

δδδδ

(q

4

, 101011) =

δδδδ

(q

4

, 01011) =

δδδδ

(q

2

, 101)

3

4

4

2

3

4

4

2

=

δδδδ

(q

5

, 011) =

δδδδ

(q

1

, 11) =

δδδδ

(q

3

, 1) = q

4

5

1

3

4

Input

= 1010101101011

Output = 1251334425134

Gambar

Tabel Transisi
Tabel Transisi Konfigurasi Mesin
Tabel 5.1. Notasi ER
Table 5.2. Contoh ER
+7

Referensi

Dokumen terkait

Penelitian bertujuan untuk mengkaji lebih lanjut tentang kecernaan serat kasar dan nilai energi metabolis pada ayam kedu umur 24 minggu yang diberi ransum dengan

Psikologi dalam pembelajaran pada dasarnya adalah membicarakan aspek-aspek psikologi yang mempengaruhi proses dan hasil belajar, sedangkan evaluasi dalam pembelajaran

&#34;egiatan perbaikan mutu dan kinerja Puskesmas dilakukan sesuai dengan rencana kegiatan yang tersusun dan di lakukan pertemuan tinjauan manajemen  yang memba#as kinerja

Tingkat hubungan satu pada banyak (1:M) adalah sama dengan banyak pada sati (M:1), tergantung dari arah mana hubungan tersebut dilihat, untuk satu kejadian pada entitas yang

Perawatan pencegahan (preventive Maintenance) merupakan perawatan yang dilakukan pada selang waktu yang ditentukan sebelumnya, atau terhadap kriteria lain yang diuraikan,

PAGnet mempertemukan petugas kesehatan masyarakat di pintu masuk dengan mitra untuk mengkoordinasikan kegiatan kesehatan masyarakat di pelabuhan, bandara dan lintas darat

Berdasarkan hasil dari keseluruhan subjek penelitian sebagian besar subjek yang orang tuanya bercerai tiga dari empat subjek mampu menerima kenyataan yang

Tingkat ketidakjenuhan CPO yang tinggi memiliki beberapa keuntungan seperti (a) meningkatkan kualitas CPO, (b) berguna sebagai alternatif bahan baku untuk medis