Teori Bahasa dan Automata

17
Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata

description

Teori Bahasa dan Automata. Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata. Ekspresi Regular – Introduction. Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya - PowerPoint PPT Presentation

Transcript of Teori Bahasa dan Automata

Page 1: Teori Bahasa dan  Automata

• Ekspresi Regular

• EkuivalensiNon Deterministic Finite Automata ke

Deterministic Finite Automata

Page 2: Teori Bahasa dan  Automata

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya

Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dengan ekspresi regular (regular expression) ER.

Memberikan suatu pola (pattern) atau template untuk string dari suatu bahasa

String yang menyusun suatu bahasa regular akan cocok (match) dengan pola bahasa itu

Penerapan ekspresi regular yang tampak misalnya string search pada suatu file, biasanya fasilitas ini ada pada text editor.

Page 3: Teori Bahasa dan  Automata

Contoh : Suatu field masukan hanya menerima input bilangan (0..9).

q1q0

q2

0,1,2,…9 0,1,…9

selain

0,1,2,…9

selain

0,1,2,…9

FSA menerima bilangan integer tak bertanda

Ekrspresi Regular yang dihasilkan adalah

(digit) (digit)*dengan digit 0..9

Page 4: Teori Bahasa dan  Automata

ER juga dapat diaplikasikan untuk melakukan analisis leksikal dalam sebuah kompilator. Yaitu mengidentifikasikan unit-unit leksikal (token) yang dikenal dalam program.

Token-token pada suatu bahasa pemrograman kebanyakan tanpa kecuali dinyatakan sebagai sebuah ER .

Contoh: Suatu identifier baik huruf besar atau huruf kecil yang kemudian diikuti huruf atau digit, dengan tanpa pembatasan jumlah panjang bisa dinyatakan sebagai:

(huruf)(huruf+digit)*

q1q0

huruf atau digithuruf

Page 5: Teori Bahasa dan  Automata

Terdapat 5 notasi dalam ER yaitu: ‘*’ , ‘+’ , ‘+’ , ‘’ , ‘.’

* (karakter asterisk), berarti bisa tidak muncul, bisa juga muncul berhingga kali (0-n)

+ (pada posisi superscript/ diatas) berarti minimal muncul satu kali

(1-n)

+ atau berarti union

. (titik) berarti konkatensi, biasanya titik bisa dihilangkan, misal ab bermakna seperti a.b

Page 6: Teori Bahasa dan  Automata

ER: ab*ccContoh string: abcc, abbcc, abbbcc, abbbbcc, acc, (b bisa tidakmuncul atau muncul sejumlah berhingga kali)

ER: 010*Contoh string : 01, 010, 0100, 01000(jumlah 0 diujung bisa tidak muncul, bisa muncul berhingga kali)

ER: a*dContoh string : d, ad, aad, aaad

ER: a+dContoh string: ad, aad, aaad --- (a minimal muncul sekali)

Page 7: Teori Bahasa dan  Automata

ER: a*b* (ingat ‘’ berarti atau)Contoh string : a, b, aa, bb, aaa, bbb, aaaa, bbbb

ER: (ab) --- Contoh string: a, b

ER: (ab)*Contoh string : a, b, ab, ba, abb, bba, aaaa, bbbb(string yang memuat a atau b)

---- * perhatikan : notasi ‘’ kadang dituliskan juga sebagai ‘+’ ---

ER: 01*+0Contoh string: 0, 01, 011, 0111, 01111,(string yang berawalan dengan 0, dan selanjutnya boleh diikuti deretan 1)

Page 8: Teori Bahasa dan  Automata

q2q0 q1ba

NFA untuk ER: ab

q1q0

q2

a

b

NFA untuk ER: a b

q0q1

0,1

0

untuk ER: 0 (10)*

Page 9: Teori Bahasa dan  Automata
Page 10: Teori Bahasa dan  Automata

Dari sebuah mesin Non-deterministic Finite Automata dapat dibuat mesin Deterministic Finite Automata-nya yang ekivalen (bersesuaian)

Ekivalen disini artinya mampu menerima bahasa yang sama L(M1) = L(M2)

q2

q1q0

0

1

0,1

0,1 q1q0

0

0,1

Page 11: Teori Bahasa dan  Automata

Membuat tabel transisi

Mulai dari state awal

Ikuti transisinya untuk membentuk state-state baru

Untuk setiap state yang terbentuk diikuti lagi transisinya sampai ter’cover’ semua

Page 12: Teori Bahasa dan  Automata

q1q0 0,1

10

1Mesin otomata NFA

0 1q0 q0, q1 q1

q1 q0, q1

Buat Tabel Transisi

Page 13: Teori Bahasa dan  Automata

Mulai dari state awal (q0)

q0

• state q0 bila memperoleh input 0 menjadi state q0, q1• state q0 bila memperoleh input 1 menjadi state q1

q0, q1

q0

q1

0

1

Hasil dari penelusuran q0

Telusuri state berikutnya

* Setiap state dituliskan sebagai himpunan state

Page 14: Teori Bahasa dan  Automata

Ikuti transisinya untuk membentuk state-state baru

• state q1 bila memperoleh input 0 menjadi state

• state q1 bila memperoleh input 1 menjadi state q0, q1

• state q0, q1 bila memperoleh input 0 menjadi state q0, q1, ini di peroleh dari (q0,0)= q0, q1 di gabung dengan (q1,0) =, maka hasilnya (q0, q1, 0) =q0, q1

• state q0, q1 bila memperoleh input 1 menjadi state q0, q1, ini di peroleh dari (q0,1)= q1 di gabung dengan (q1,1) = q0, q1, maka hasilnya (q0, q1, 1) = q0, q1

* Setiap state dituliskan sebagai himpunan state

Page 15: Teori Bahasa dan  Automata

Hasil setelah penusuran q1 dan q0, q1

* merupakan sebuah state

q0, q1

q0

q1

0

1

0

1

0,1

State menerima input 0 atau 1 menjadi state , atau (,1)=

Telusuri state

q0, q1

q0

q1

0

1

0

1

0,1

0,1

Page 16: Teori Bahasa dan  Automata

Dari NFA, kita tahu bahwa himpunan state akhjr adalah q1, maka pada DFA yg dihasilkan state-state akhir merupakan semua state yg mengandung q1.

F = {{q1 }, {q0, q1 }}

q0

0

1

0

1

0,1

0,1

q1

q0, q1

Mesin DFA yang ekivalen dengan NFA

Page 17: Teori Bahasa dan  Automata

Pembuktian : String ‘001’

Dari diagram NFA kita bisa lihat bahwa ∂(q0,001) dapat

diterima oleh NFA tsb.

Untuk DFA kita lihat:

∂(q0,001) = ∂(q0, q1,01)= ∂ (q0, q1,1)= q0, q1

Karena state q0, q1 termasuk state akhir, maka berarti string tersebut diterima.