TI U
NPA
R (A
de C
S)
REGULAR EXPRESSIONADE CHANDRA SAPUTRA S.KOM.,M.CS
TI U
NPA
R (A
de C
S)
Buku
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001. Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley
TI U
NPA
R (A
de C
S)
Pendahuluan
Tata Bahasa Reguler Chomsky: Aturan :
Simbol pada sebelah kiri harus berupa sebuah simbol variabel
Simbol pada sebelah kanan maksimal hanya memiliki sebuah simbol variabel dan bila ada hanya terletak di posisi paling kanan
TI U
NPA
R (A
de C
S)
Contoh Tata Bahasa Reguler
A b (diterima)
a B (ditolak, karena simbol pada sebelah kiri harus berupa simbol variabel)
A B (diterima)
A Bc (Ditolak, karena simbol variabel pd sebelah kanan hrs berada pd posisi paling kanan)
A bcD (diterima)
TI U
NPA
R (A
de C
S)
Tentukan apakah produksi2 berikut memenuhi aturan tata bahasa Reguler : A b
B bdB
B C
B bC
B Ad
B bcdef
B bcdefg
A aSa
A aSS
A
TI U
NPA
R (A
de C
S)
Ekspresi Regular
Bahasa dinyatakan regular finite state automata yg menerima
Bahasa2 yg diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dgn Ekspresi Regular
Contoh pemakaian ER adalah pd suatu text editor
TI U
NPA
R (A
de C
S)
(5 + 3) 4 Ekspresi Aritmatika
Ekspresi Reguler(0 1)0*
32
semua string yang berawal dengan string 0 atau 1, diikuti sembarang jumlah 0
TI U
NPA
R (A
de C
S)
Notasi Ekspresi Regular
_* yaitu karakter asterik, berarti bisa tidak muncul, bisa juga muncul dari satu kali
_+ berarti minimal muncul satu kali
+ atau U berarti union
. (titik / dot) berarti konkatenasi
TI U
NPA
R (A
de C
S)
Bahasa Regular VS Ekpresi Regular
Bahasa Reguler Reguler Expression
{a} a
{b} b
{a,b} a.b
{a,b} = {a} U {b} a U b
{a}* a*
{a}+ a+
Ø Ø
{} {}
TI U
NPA
R (A
de C
S)
Contoh ER
ER : ab * cc Cth string yg dibangkitkan : abcc, abbcc, abbbcc,
abbbbcc, acc
ER : 010* Cth string yg dibangkitkan : 01, 010, 0100, 01000
ER : a*d Cth string yg dibangkitkan : d, ad, aad, aaad
ER : a+d Cth string yg dibangkitkan : ad, aad, aaad
TI U
NPA
R (A
de C
S)
Contoh ER
ER : a* U b* (U berarti atau) Contoh string yg dibangkitkan : a, b , aa, bb, aaa,
bbb, dst
ER : a U b Contoh string yg dibangkitkan : a , b
ER : 01* + 0 Contoh string yg dibangkitkan : 0 , 01, 011, 0111,
01111
TI U
NPA
R (A
de C
S)
Ekspresi Reguler
Operasi reguler yang digunakan untuk membentuk suatu bahasa (language).
Operasi Reguler:1. (Union)
2. . (konkatenasi)
3. * (closure)
TI U
NPA
R (A
de C
S)
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, … }
TI U
NPA
R (A
de C
S)
Language dari (0 1)*
Ekspresi ini dapat dituliskan sebagai *, dengan = {0,1}
L = {0, 1, 00, 01, 10, 11, … }
Kalau diteruskan (3 digit) menjadi :
{….,000,001,010,011,100,101,110,111,……}
TI U
NPA
R (A
de C
S)
Prioritas Operasi
Aritmatika
1. (perkalian)
2. + (penambahan)
Reguler1. * (operasi bintang)2. . (sambungan)3. (union/ gabungan)
TI U
NPA
R (A
de C
S)
Definisi Matematis Ekspresi Reguler
R merupakan ekspresi reguler jika R adalah:
1. a, dengan a anggota alfabet .
2. .
3. .
4. (R1 R2) dengan R1 dan R2 merupakan ekspresi reguler.
5. R1 . R2 dengan R1 dan R2 merupakan ekspresi reguler.
6. (R1)*, dengan R1 merupakan ekspresi reguler.
TI U
NPA
R (A
de C
S)
Contoh Ekspresi Reguler
= {0,1}
1. 0*10* = {w|w memiliki tepat satu 1}
2. *1 * = {w|w memiliki sekurangnya satu 1}
3. *001 * = {w|w memiliki substring 001}
4. ( )* = {w|panjang w adalah kelipatan tiga}
5. 01 10 = {01, 10}
6. (0 )(1 ) = {, 0, 1, 01}
TI U
NPA
R (A
de C
S)
Operasi Identitas R
R = R
Penggabungan bahasa kosong ke sembarang bahasa tidak akan mengubah R.
R ○ = R
Penyambungan string kosong ke sembarang string tidak akan mengubah R.
TI U
NPA
R (A
de C
S)
Aplikasi Ekspresi Reguler
• Identifikasi pola suatu bahasa• Pengecekan alamat e-mail• [email protected]• [email protected]• [email protected]
TI U
NPA
R (A
de C
S)
Pengecekan Alamat Email
[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a-z|0-9]+([_][a-z|0-9]+)*)?
TI U
NPA
R (A
de C
S)
Ekivalensi RE dan FA
RE dan FA memiliki kemampuan yang sama dalam menggambarkan perilaku suatu sistem transisi.
RE dapat diubah dalam bentuk FA yang dapat mengenali bahasa yang
sama.
TI U
NPA
R (A
de C
S)
RE menjadi NFA1
Jika R = a untuk sembarang a pada .
Maka L(R) = {a}
q0 q1a
TI U
NPA
R (A
de C
S)
RE menjadi NFA2
Jika R = ,
Maka L(R) = {}
Jika R = ,
Maka L(R) =
q0
q0
TI U
NPA
R (A
de C
S)
RE menjadi NFA3
R = R1 R2
R = R1 . R2
R = R1*
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA1
R = (ab a)*
Cari NFA ekivalennya yang diberi nama NFA N.
aa
bb
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA2
R = (ab a)*
Cari NFA ekivalennya yang diberi nama NFA N.
ab a b
ab aa b
a
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA3
R = (ab a)*
Cari NFA ekivalennya yang diberi nama NFA N.
(ab a)*
a b
a
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA4
R = (a b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
aa
bb
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA5
R = (a b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
a b a
b
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA5
R = (a b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
(a b)*
a
b
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA6
R = (a b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
aba
a b a
TI U
NPA
R (A
de C
S)
Contoh: RE menjadi FA6
R = (a b)* aba
Cari NFA ekivalennya yang diberi nama NFA N1.
(a b)* aba
TI U
NPA
R (A
de C
S)
FA menjadi RE1
qiqj
qr
R4
R1 R3
R2
qjqi(R1)(R2)*(R3)
(R4)
BEFORE AFTER
TI U
NPA
R (A
de C
S)
DFA menjadi RE2
1
2
a
a, b
b
(a)
1
a
a
a b
b
s
2
(b)
TI U
NPA
R (A
de C
S)
DFA menjadi RE3
1
a
a
b (a b)*
s
(c)
a
a*b (a b)*
s
(d)
TI U
NPA
R (A
de C
S)
Latihan Deskripsikan Himpunan string dalam RE yang diterima oleh FNA
1
2
TI U
NPA
R (A
de C
S)
3
4
TI U
NPA
R (A
de C
S)
TERIMA KASIH
Top Related