36578016 ekspresi regular

23
TEORI BAHASA DAN OTOMATA EKSPRESI REGULAR

Upload: fadhlan-frost

Post on 28-Dec-2015

267 views

Category:

Documents


72 download

TRANSCRIPT

TEORI BAHASA DAN OTOMATA

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

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

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)

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.

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

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

Hubungan Ekspresi Regular dan Finite State Automata (1)

NFA

EkspresiRegular

DFA NFA e-move

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

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

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

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

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

Hubungan Ekspresi Regular dan Finite State Automata (7)

NFA untuk ER: a (ba)*

NFA untuk ER: (ab)*

q0 q1

a

b

q0q1

a

b

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

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*

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

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

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

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

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

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

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