EKSPRESI REGULAR
Penerapan Ekspresi Regular (1)
Sebuah bahasa dikatakan regular jika
terdapat finite state otomata yang dapat
menerimanya.
Bahasa – bahasa yang diterima oleh
suatu finite state otomata bisa
dinyatakan secara sederhana dengan
ekspresi regular (regular expression)
yang disingkat ER
Penerapan Ekspresi Regular (2)
Ekspresi regular memberikan suatu pola
(pattern) untuk string dari suatu bahasa.
Penerapan ekspresi regular yang
tampak, misalnya pencarian (searching)
untai karakter (string) pada suatu file,
biasanya fasilitas ini ada pada text editor
Notasi Ekspresi Regular (1)
* yaitu karakter asterisk, berarti bisa tidak
muncul, bisa juga muncul berhingga kali (0-
n).
+ (posisi superscript) berarti minimal
muncul satu kali (1-n).
+ atau υ berarti union.
NFA
Ekspresi
Regular
Hubungan Ekspresi Regular dan
Finite State Automata (2)
Untuk setiap ekspresi regular ada satu
NFA ε-move yang ekuivalen.
Untuk setiap DFA ada satu ekspresi
regular yang ekuivalen, begitu pula
dengan NFA tanpa ε-move.
Apabila ekspresi regular cukup sederhana,
bisa langsung mengkonstruksi NFA tanpa
melalui NFA ε-move
Hubungan Ekspresi Regular dan
Finite State Automata (3)
NFA ε-move untuk ER: ab
a ε b
q0 q1 q2 q3
q2
Hubungan Ekspresi Regular dan
Finite State Automata (5)
NFA untuk ER: aba*
a
a b
q0 q1 q2
q1 q0
b
Hubungan Ekspresi Regular dan
Finite State Automata (8)
Menentukan ekspresi regular (ER) dari
NFA atau DFA (Contoh 1)
0 1
1 1
q0 q1 q2
0
Hubungan Ekspresi Regular dan
Finite State Automata (8)
• Langkah – langkahnya
1. Cari input yang menuju state final (q2),
yaitu 0 atau 10*1
2. Perhatikan input yang diterima state
final (q2) lainnya. Selain 0 terdapat
input 1 dalam jumlah berapapun (1*)
akan tetap di q2.
Dengan demikian mesin ini menerima
01* atau 10*11*, yang dinyatakan
dalam ekspresi regular :
01* υ 10*11*
Hubungan Ekspresi Regular dan
Finite State Automata (9)
Menentukan ekspresi regular (ER) dari
NFA atau DFA (Contoh 2)
a
a b
q0 q1 q3
a
b
q2 q4
b
Hubungan Ekspresi Regular dan
Finite State Automata (10)
• Langkah – langkahnya
1. Cari input yang menuju state final (q3
dan q2)
a. q3
ab
b. q2
aa
2. Perhatikan input yang diterima state
final (q3 dan q2) lainnya.
a. q3
a*
b. q2
(ba*b)*
Hubungan Ekspresi Regular dan
Finite State Automata (11)
3. Gabungkan q3 pada langkah 1 dan
langkah 2 serta q2 pada langkah 1 dan
langkah 2
a. q3
aba*
b. q2
aa(ba*b)*
Dengan demikian, mesin dapat
menerima aba* atau aa(ba*b)*,
yang dinyatakan dengan ekspresi
regular :
aba* υ aa(ba*b)*
Hubungan Ekspresi Regular dan
Finite State Automata (12)
Membuat mesin DFA dari pembentuk
bahasa
Rancanglah mesin DFA yang menerima
bahasa yang berupa semua string yang
berakhiran ’00’ dengan diketahui Σ =
(0,1).
Hubungan Ekspresi Regular dan
Finite State Automata (13)
Langkah – langkahnya :
1. Tentukan ekspresi regulernya
(0 + 1)*00
2. Gambarkan mesin NFA-nya terlebih
dahulu untuk memudahkan
menggambar DFA-nya
0,1
0 0
q0 q1 q2
Hubungan Ekspresi Regular dan
Finite State Automata (14)
3. Lakukan ekivalensi NFA dan DFA dengan
terlebih dahulu mendaftarkan transisi dari
NFA
δ 0 1
q0 {q0,q1} {q0}
q1 {q2} Ø
q2 Ø Ø
Hubungan Ekspresi Regular dan
Finite State Automata (15)
1
1
1
0
{q0} {q0,q1} {q0,q1,q2}
0
0