0
EKSPRESI REGULER
Posted by jujur
on
5:34 AM
o
Sebuah
bahasa dinyatakan regular jika terdapat finite
state automata yang dapat menerimanya.
o
Bahasa-bahasa
yang diterima oleh FSA bisa dinyatakan secara sederhana dengan ekspresi regular
(regular expression).
o
Ekspresi regular memberikan suatu pola (pattern) atau template untuk untai/string dari
suatu bahasa.
o
Banyak masalah pada perangkat lunak yang bisa
disederhanakan dengan melakukan pengubahan notasi ekspresi regular ke dalam
implementasi komputer dari FSA yang bersangkutan.
o
Contoh : Finite State Automata untuk mengenal bilangan
bulat /integer tidak bertanda
o
Ekspresi
Regularnya adalah : misal 0..9 disimbolkan sebagai digit, maka ERnya adalah :
(digit)(digit)*
V.1. Notasi Ekspresi Regular
Notasi yang digunakan untuk ER adalah :
1.
* : berarti bisa tidak muncul, bisa juga muncul berhingga
kali (0-n)
2.
+ : berarti minimal muncul satu kali (1-n)
3.
+ : berarti union atau bisa diganti dengan notasi U
4.
. : berarti
konkatenasi, biasanya tanpa ditulis titiknya, misal ab sama dengan a.b
Contoh ekspresi regular (ER) :
1.
ER : ab*cc
Contoh string
yang bisa dibangkitkan abcc, acc, abbcc, abbbcc, dst. (b bisa tidak muncul atau
muncul sejumlah berhingga kali)
2.
ER : 010*
Contoh string
yang bisa dibangkitkan 01,010, 0100,01000, dst. (0 bisa tidak muncul atau
muncul sejumlah berhingga kali)
3.
ER : a+d
Contoh string
yang bisa dibangkitkan ad,aad, aaad,aaaad dst. (a minimal muncul satu kali)
V.2. Hubungan ER dengan FSA
o
Untuk setiap ER ada satu NFA dengan transisi ε (NFA ε-move) yang
ekivalen.Sementara untuk setiap DFA ada satu ER dari bahasa yang diterima oleh
DFA.
o Hubungannya
dapat digambarkan sebagai berikut