Anda di halaman 1dari 23

TEORI BAHASA DAN OTOMATA

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.

 . (titik) berarti konkatenasi. Biasanya


dihilangkan (ab sama artinya dengan a.b)
Notasi Ekspresi Regular (2)
 Contoh Ekspresi Regular (ER)
Ekspresi Deskripsi
Regular
ab*cc b bisa tidak muncul atau muncul sejumlah
berhingga kali. Cth : acc, abcc, abbcc, abbbcc.
a+d a muncul minimal sekali. Cth : ad, aad, aaad.

a* υ b* a bisa tidak muncul/muncul sejumlah kali


atau b bisa tidak muncul/muncul sejumlah
kali. Cth : a, b, aa, bb, aaa, bbb.
(a υ b) / a muncul 1 kali atau b muncul 1 kali. Cth : a,b.
(a + b)
Notasi Ekspresi Regular (3)
 Contoh Ekspresi Regular (ER)
Ekspresi Deskripsi
Regular
(a υ b)* / semua a dan b. Cth : a, b, ab, ba, abb, aab,
(a + b)* bba, aaaa, bbbb.
aa a muncul sepasang sebanyak 1 kali

(aa)* a muncul sepasang sebanyak 0-n kali (genap)

ab* + a string yang berawalan dengan a, dan


selanjutnya boleh diikuti dengan b
Notasi Ekspresi Regular (4)
 Contoh Ekspresi Regular (ER)
Ekspresi Deskripsi
Regular
(a + ab)* semua a dan b yang dimulai dengan a dan
tidak mempunyai dua b berurutan
(a+b)*aa*( semua a dan b dengan sedikitnya terhadap
a+b)* dua a berturutan
(a+b)*abb semua a dan b yang diakhiri dengan abb

aa*bb*cc* a,b, dan c minimal muncul 1 kali. Sering


disingkat a+b+c+.
Hubungan Ekspresi Regular dan
Finite State Automata (1)

NFA

DFA NFA e-move

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

 NFA ε-move untuk ER: a*b


a
ε b
q0 q1 q2
Hubungan Ekspresi Regular dan
Finite State Automata (4)
 NFA untuk ER: ab
a b
q0 q1 q2

 NFA untuk ER: a υ b


a
q0 q1

q2
Hubungan Ekspresi Regular dan
Finite State Automata (5)
 NFA untuk ER: aba*
a
a b
q0 q1 q2

 NFA untuk ER: a (b υ a)


a a,b
q0 q1 q2
Hubungan Ekspresi Regular dan
Finite State Automata (6)
 NFA untuk ER: a (b υ a)*
a,b
a
q0 q1

 NFA untuk ER: ab*a


b
a a
q0 q1 q2
Hubungan Ekspresi Regular dan
Finite State Automata (7)
 NFA untuk ER: a (ba)*
a
q0 q1
b

 NFA untuk ER: (ab)*


a

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

4. Cek dengan untai/string yang harus bisa


diterima oleh mesin itu, seperti 00, 100,
000, 0100, 0000, 1100

Anda mungkin juga menyukai