Ekspresi Regular
Transcript of Ekspresi Regular
![Page 1: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/1.jpg)
TEORI BAHASA DAN OTOMATA
EKSPRESI REGULAR
![Page 2: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/2.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/3.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/4.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/5.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/6.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/7.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/8.jpg)
Hubungan Ekspresi Regular dan Finite State Automata (1)
NFA
EkspresiRegular
DFA NFA e-move
![Page 9: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/9.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/10.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/11.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/12.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/13.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/14.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/15.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/16.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/17.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/18.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/19.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/20.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/21.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/22.jpg)
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: Ekspresi Regular](https://reader033.fdocument.pub/reader033/viewer/2022061308/5571f7cd49795991698c06f4/html5/thumbnails/23.jpg)
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