Hubungan FSA dengan ERSebuah bahasa dinyatakan regular jika terdapat finite state
automata yang dapat menerimanya.Bahasa-bahasa yang diterima oleh FSA bisa dinyatakan
secara sederhana dengan ekspresi regular (regular expression).Ekspresi regular
memberikan suatu pola (pattern) atau template untuk untai/string dari suatu bahasa.
ContohFinite State Automata untuk mengenal bilangan bulat /integer tidak bertandaMisal :
0..9 disimbolkan sebagai digit,maka ERnya adalah : (digit)(digit)*
Notasi ER* :berarti bisa tidak muncul, bisa juga muncul berhingga kali (0-n) + : berarti
minimal muncul satu kali (1-n) + : berarti union/ atau bisa diganti dengan notasi . : berarti
konkatenasi, biasanya tanpa ditulis titiknya, misal ab sama dengan a.b
Contoh bahasa:
L1 = {a,aab,aaabb,aaaabbb, … }
L2= {w:w dan terdiri dari tepat satu huruf a dan satu huruf b }
L7 = {w:w = anbcn | n > 1}
Sebuah grammar G:
VN = {S}
VT= {a}
S=S
Contoh ER
-ER : ab*cc
ER : 010*
String yang dibangkitkan :01,010,0100,01000
ER : a*d
String yang dibangkitkan : d,ad,aad,aaad
ER : a+d
string yang dibangkitkan ad,aad,aaad
Pengenalan Regular
Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat
menerimanya.
Bahasa-bahasa yang diterima oleh FSA bisa dinyatakan secara sederhana dengan ekspresi
regular (regular expression).
Ekspresi regular memberikan suatu pola (pattern) string dari suatu bahasa.
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.
Hubungannya dapat digambarkan sebagai berikut
* (asterisk) : bisa tidak muncul, bisa juga muncul berhingga kali (0-n)
+ (SuperScript) : minimal muncul satu kali (1-n)
+ atau U (union ): atau
. (konkatenasi) : titik bisa saja tidak di tuliskan
misalnya: ab sama dengan a.b
Ekspresi Aritmatika
(5 + 3) ´ 4
32
Ekspresi Reguler
(0 È 1)0*
semua string yang berawal dengan string 0 atau 1, diikuti sembarang jumlah 0
Contoh ekspresi regular (ER) :
1. ER : ab*cc
Contoh string yang dibangkitkan : abcc, acc, abbcc, abbbcc (b bisa tidak
muncul atau muncul sejumlah berhingga kali)
2. ER : 010*
Contoh string yang dibangkitkan : 01, 010, 0100,01000 (0 bisa tidak
muncul atau muncul sejumlah berhingga kali)
3. ER : a*d
Contoh string yang dibangkitkan : d, ad, aad, aaad
4. ER : a+d
Contoh string yang dibangkitkan : ad,aad, aaad,aaaad
5. ER : a*∪ b* (ingat ∪ berarti atau)
Contoh string yang dibangkitkan : a, b, aa, bb, aaa, bbb, aaaa, bbbb
6. ER : a ∪ b
Contoh string yang dibangkitkan : a, b
7. ER : 01* + 0
Contoh string yang dibangkitkan : 0, 01, 011, 0111, 01111
Language dari (0 È 1)0*
(0 È 1) = ({0} È {1})
0* = {0}* à semua string yang anggotanya simbol 0.
(0 È 1)0* = (0 È 1) ○ 0*
L = {00, 10, 000, 100, 0000, 1000, … }
Carilah seluruh string pada L((a|b)*b(a|ab)*) dengan panjang string kurang dari 4
Jawab :
{L((a|b)*b(a|ab)*) ,|x|= 4}
L((a|b)*b(a|ab)*) : himpunan string yang mengandung paling sedikit satu substring ‘b’
1 digit = b
Jawab :
Jawab :
r = a (b|c) (b|c)*
Jawab :
Jawab :
r = abc
Jawab :
4. Tentukan ekspresi reguler pembentuk bahasa pada ∑ = {a,b}, yaitu L(r) = { w є ∑* | |w|
mod 3 = 0 }
Jawab :
Membuat contoh ekspresi regular yang terdiri dari {a,b} dengan panjang string kelipatan 3, karna
|w| mod 3 = 0.