Top Banner
TEORI BAHASA DAN OTOMATA EKSPRESI REGULAR
23

36578016 Ekspresi Regular

Dec 28, 2015

Download

Documents

Fadhlan FrOst
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 36578016 Ekspresi Regular

TEORI BAHASA DAN OTOMATA

EKSPRESI REGULAR

Page 2: 36578016 Ekspresi Regular

Penerapan Ekspresi Regular (1)

Sebuah bahasa dikatakan regular jika terdapat finite state otomata yang dapat menerimanya.

Bahasa – bahasa yang diterima oleh suatu finite state otomata bisa dinyatakan secara sederhana dengan ekspresi regular (regular expression) yang disingkat ER

Page 3: 36578016 Ekspresi Regular

Penerapan Ekspresi Regular (2)

Ekspresi regular memberikan suatu pola (pattern) untuk string dari suatu bahasa.

Penerapan ekspresi regular yang tampak, misalnya pencarian (searching) untai karakter (string) pada suatu file, biasanya fasilitas ini ada pada text editor

Page 4: 36578016 Ekspresi Regular

Notasi Ekspresi Regular (1)

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

+ (posisi superscript) berarti minimal muncul satu kali (1-n).

+ atau υ berarti union. . (titik) berarti konkatenasi. Biasanya

dihilangkan (ab sama artinya dengan a.b)

Page 5: 36578016 Ekspresi Regular

Notasi Ekspresi Regular (2) Contoh Ekspresi Regular (ER)

Ekspresi Regular

Deskripsi

ab*cc b bisa tidak muncul atau muncul sejumlah berhingga kali. Cth : acc, abcc, abbcc, abbbcc.

a+d a muncul minimal sekali. Cth : ad, aad, aaad.

a* υ b* a bisa tidak muncul/muncul sejumlah kali atau b bisa tidak muncul/muncul sejumlah kali. Cth : a, b, aa, bb, aaa, bbb.

(a υ b) / (a + b)

a muncul 1 kali atau b muncul 1 kali. Cth : a,b.

Page 6: 36578016 Ekspresi Regular

Notasi Ekspresi Regular (3) Contoh Ekspresi Regular (ER)

Ekspresi Regular

Deskripsi

(a υ b)* /(a + b)*

semua a dan b. Cth : a, b, ab, ba, abb, aab, bba, aaaa, bbbb.

aa a muncul sepasang sebanyak 1 kali

(aa)* a muncul sepasang sebanyak 0-n kali (genap)

ab* + a string yang berawalan dengan a, dan selanjutnya boleh diikuti dengan b

Page 7: 36578016 Ekspresi Regular

Notasi Ekspresi Regular (4) Contoh Ekspresi Regular (ER)

Ekspresi Regular

Deskripsi

(a + ab)* semua a dan b yang dimulai dengan a dan tidak mempunyai dua b berurutan

(a+b)*aa*(a+b)*

semua a dan b dengan sedikitnya terhadap dua a berturutan

(a+b)*abb semua a dan b yang diakhiri dengan abb

aa*bb*cc* a,b, dan c minimal muncul 1 kali. Sering disingkat a+b+c+.

Page 8: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (1)

NFA

EkspresiRegular

DFA NFA e-move

Page 9: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (2)

Untuk setiap ekspresi regular ada satu NFA ε-move yang ekuivalen.

Untuk setiap DFA ada satu ekspresi regular yang ekuivalen, begitu pula dengan NFA tanpa ε-move.

Apabila ekspresi regular cukup sederhana, bisa langsung mengkonstruksi NFA tanpa melalui NFA ε-move

Page 10: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (3)

NFA ε-move untuk ER: ab

q0 q1 q2 q3a ε b

NFA ε-move untuk ER: a*b

q0 q1 q2ε b

a

Page 11: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (4) NFA untuk ER: ab

q0 q1 q2a b

NFA untuk ER: a υ b

q0

q2

a

b

q1

Page 12: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (5)

NFA untuk ER: aba*

NFA untuk ER: a (b υ a)

q0 q1 q2a a,b

q0 q1 q2a b

a

Page 13: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (6)

NFA untuk ER: a (b υ a)*

NFA untuk ER: ab*a

q0 q1a

a,b

q0 q1 q2a a

b

Page 14: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (7)

NFA untuk ER: a (ba)*

NFA untuk ER: (ab)*

q0 q1

a

b

q0q1

a

b

Page 15: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (8)

Menentukan ekspresi regular (ER) dari NFA atau DFA (Contoh 1)

q0 q1 q2

1 1

0 1

0

Page 16: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (8)

• Langkah – langkahnya1. Cari input yang menuju state final (q2),

yaitu 0 atau 10*12. Perhatikan input yang diterima state

final (q2) lainnya. Selain 0 terdapat input 1 dalam jumlah berapapun (1*) akan tetap di q2.

Dengan demikian mesin ini menerima 01* atau 10*11*, yang dinyatakan dalam ekspresi regular :

01* υ 10*11*

Page 17: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (9)

Menentukan ekspresi regular (ER) dari NFA atau DFA (Contoh 2)

q0 q1 q3a b

a

q2 q4

a

b

a

b

Page 18: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (10)

• Langkah – langkahnya1. Cari input yang menuju state final (q3

dan q2)a. q3

abb. q2

aa

2. Perhatikan input yang diterima state final (q3 dan q2) lainnya.a. q3

a*b. q2

(ba*b)*

Page 19: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (11)

3. Gabungkan q3 pada langkah 1 dan langkah 2 serta q2 pada langkah 1 dan langkah 2a. q3

aba*b. q2

aa(ba*b)*

Dengan demikian, mesin dapat menerima aba* atau aa(ba*b)*, yang dinyatakan dengan ekspresi regular :

aba* υ aa(ba*b)*

Page 20: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (12)

Membuat mesin DFA dari pembentuk bahasa Rancanglah mesin DFA yang menerima

bahasa yang berupa semua string yang berakhiran ’00’ dengan diketahui Σ = (0,1).

Page 21: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (13)

Langkah – langkahnya :1. Tentukan ekspresi regulernya

(0 + 1)*002. Gambarkan mesin NFA-nya terlebih

dahulu untuk memudahkan menggambar DFA-nya

q0 q1 q20 0

0,1

Page 22: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (14)

3. Lakukan ekivalensi NFA dan DFA dengan terlebih dahulu mendaftarkan transisi dari NFA

δ 0 1

q0 {q0,q1} {q0}

q1 {q2} Ø

q2 Ø Ø

Page 23: 36578016 Ekspresi Regular

Hubungan Ekspresi Regular dan Finite State Automata (15)

4. Cek dengan untai/string yang harus bisa diterima oleh mesin itu, seperti 00, 100, 000, 0100, 0000, 1100

{q0} {q0,q1} {q0,q1,q2}0

0

11

1

0