Anda di halaman 1dari 23

Teori Bahasa dan Otomata

#5
Ekspresi Regular
Penerapan Ekspresi Regular

Penerapan ekspresi regular yang tampak, misalnya pencarian


(searching),untai karakter (string)
Contoh penerapan yang lain adalah pembatasan data masukan yang
diperkenankan, misalnya suatu field masukan hanya menerima input
(0....9).
0,1,2,...9

0,1,2,...9
q0 q1

Selain Selain
0,1,2,...9 0,1,2,...9
q2

Gambar 1. FSA menerima bilangan integer tak bertanda


Bila dalam Bahasa Indonesia bisa dikatakan bahwa otomata pada gambar 1
menerima masukan simbol input antara 0 sampai 9 sedangkan ekspresi
regularnya dinyatakan sebagai berikut: (digit) (digit)*
Dengan digit adalah 0...9
Dalam implementasinya suatu FSA akan diterjemahkan menjadi kode dalam
sebuah bahasa pemrograman.
Huruf atau digit

huruf
q0 q1

Gambar 2. FSA mengenali identifier


Notasi Ekspresi Regular

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 : ab
contoh string yang dibangkitkan: a, b
 ER : (ab)*
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 : ab

 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 : ab

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

Anda mungkin juga menyukai