#5
Ekspresi Regular
Penerapan Ekspresi Regular
0,1,2,...9
q0 q1
Selain Selain
0,1,2,...9 0,1,2,...9
q2
huruf
q0 q1
Berikut notasi yang akan kita gunakan : (*) , (+) , (+), () , ‘ . ‘ :
* Yaitu karakter asterik, 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 konkatenasi, biasanya titik dihilangkan, misal : ab bermakna sama seperti a.b
Contoh ekspresi regular (ER)
ER : ab*cc
contoh string yang dibangkitkan: abcc, abbcc,abbbcc,abbbbcc,acc
(b bisa tidak muncul atau muncul sejumlah berhingga kali)
ER : 010*
contoh string yang dibangkitkan: 01, 010, 0100, 01000
(jumlah 0 diujung bisa tidak muncul, bisa muncul berhingga kali)
ER : a*d
contoh string yang dibangkitkan: d, ad, aad, aaad
ER : a + d
contoh string yang dibangkitkan: ad,aad,aaad
(a minimal muncul sekali)
ER : a*b* (ingat ‘ ’ berarti atau
contoh string yang dibangkitkan: a, b, aa, bb, aaa, bbb, aaaa, bbbb
ER : ab
contoh string yang dibangkitkan: a, b
ER : (ab)*
contoh string yang dibangkitkan: a, b,ab,ba,abb,bba,aaaa,bbbb
ER : 01* + 0
contoh string yang dibangkitkan:0,01,011,0111,01111
Hubungan ER dan FSA
Untuk setiap ER ada satu NDFA dengan transisi (NFA -move) yang ekivalen.
Sementara untuk setiap DFA ada satu ER dari bahasa yang diterima oleh DFA .
Yang perlu diperhatikan state akhir akan menandakan apakah input diterima atau tidak.
Contoh NFA - Move untuk ER : ab
a b
q0 q1 q2 q3
Contoh NFA Move untuk ER : a*b
b
q0 q1 q2
Contoh NFA Move untuk ER : ab
a
q0 q1 q2 q3
b
q4 q5
Kemudian dari NDFA move tersebut dapat kita ubah ke NDFA dan selanjutnya ke
DFA atau prosesnya sbb:
NFA move NFA DFA
Bila ER cukup sederhana kita bisa langsung mengkonstruksikan NFA nya
tanpa melalui NFA move.
Contoh NFA untuk ER : ab
a b
q0 q1 q2
Contoh NFA untuk ER : ab
a
q0 q1
q2
Contoh NFA untuk ER : 010*
0
0 1
q0 q1 q2
Contoh NFA untuk ER : 0(1 0)
0 0,1
q0 q1 q2
Contoh NFA untuk ER : 0(1 0)*
0,1
0
q0 q1
Contoh NFA untuk ER : 01* 0
1
0 0
q0 q1 q2
Contoh NFA untuk ER : 0*10*
0 0
1
q0 q1
Contoh NFA untuk ER : a* Contoh NFA untuk ER : a(ba)*
a
a
q0
q0 q1
b
Sumber bacaan
• Utdirartatmo,Firrar.2005. Teori bahasa dan Otomata. Graha Ilmu. Yogayakarta
• JHON E HOPCROFT,2000. Teori Bahasa Otomata, penerbit Andi. Yogyakarta
• Irwan Sofia, John E Hopcroft, Rajeev Motwani, Jeffrey D.Ullman,2001. Teori
Bahasa Otomata. Penerbit Andi.Yogyakarta
Kerjakan soal berikut:
1. Deskripsikan dalam bahasa indonesia himpunan string yang diterima oleh FSA
seperti gambar berikut
0 1 0,1
1 0
qq00 q1 q2
2. Deskripsikan dalam bahasa indonesia himpunan string yang diterima oleh FSA
seperti gambar berikut
1 1
0
1 0 1
q0 q1 q2 q3
0
0