Anda di halaman 1dari 10

Bab 4

EKSPRESI REGULAR dan


TATA BAHASA TIPE 3

4.1. Bahasa Regular


Definisi : Bahasa Regular L dari alfabet adalah bahasa yang dapat
dihasilkan dari bahasa-bahasa paling sederhana dari dengan
melakukan operasi-operasi
- Gabungan
- Konkatensi, dan/atau
- Kleene

Contoh :
L = {x {0, 1} | x konkatensi berulang 110 dan diakhiri oleh satu symbol apa
saja (0 atau 1)
L = {110}* {0, 1} atau
L= {{1}{1}{0}}* {{0} {1}}

- Konkatensi {1}{1}{0} menjadi {110}


- Kleene {110} menjadi {110}*
- Penggabungan hasil kleene {110}* dengan {0, 1}.

4.2. Ekspresi Regular


Ekspresi dapat dibuat lebih sederhana lagi dengan ekspresi yang mirip
dengan ekspresi aritmatis. Ekspresi regular memperlihatkan pola string yang
paling tipikal dari bahasa yang bersangkutan.

Ekspresi regular memberikan suatu pola atau template untuk string/unati dari
suatu bahasa.

Contoh
1*10 artinya merupakan string-string berisi akhiran 10 dan diawali
sejumlah 1

4.3. Definisi Formal


Kelas R dari bahasa regular pada , dan ekspresi regularnya terdefinisi
sebagai berikut :
1. Bila merupakan anggota R, ekspresi regularnya adalah
2. Bila {} adalah anggota dari R, ekspresi regularnya adalah
3. Untuk setiap a , {a} adalah anggota dari R, ekspresi regularnya adalah a
4. Bila L1 dan L2 adalah anggota R, sementara r1 dan r2 adalah ekspresi
regularnya maka :
a. L1 L2 anggota R, dan ekspresi regularnya adalah (r1 + r2)
b. L1L2 anggota R, maka ekspresi regularnya adalah (r1r2)
c. L1* anggota R, maka ekspresi regularnya adalah (r1)*
5. Hanya dengan keempat pernyataan di atas bahasa regular dapat diperoleh

Notasi Ekspresi regular


SIMBOL DESKRIPSI SIMBOL
* (karakter asterik) Bisa tidak muncul, bisa juga muncul berhingga kali (0-n)
+ (pada superscript) Minimal muncul satu kali (1-n)
atau + Union
. Konkatensi

Contoh :

EKSPRESI STRING YANG MUNCUL


REGULAR
ab*cc acc, abcc, abbcc, abbbcc, abbbbcc, ..
010* 01, 010, 0100, 01000, 010000,
a*d d, ad, aad, aaad, aaaad,.
a* b* a, b, aa, bb, aaa, bbb, aaaa, bbbb,.
1+ 0 10, 110, 1110, 11110,
(a b) a atau b
(a b)* a, b, ab, ba, abb, bba, aaaa, bbbb,.
01* + 0 0, 01, 011, 0111, 01111,

4.4. Konversi Ekspresi Regular ke Finite Automata


1. Himpunan Regular berupa Himpunan Kosong.
Finite automata yang tidak menerima string apapun, yaitu menghasilkan
bahasa kosong.

M = (Q, , , q0, F)
Dimana : Q = {q0}, = ,
q0
= , q0 = q0, F =
2. Memiliki Satu Elemen Karakter
Misal {a}

a
q0 q1
a

M = ({q0, q1}, {a}, q0, {q1})


a
q0 q1
q1 q1

3. Himpunan Nol a atau lebih (a*)

M = ({q0}, {a}, q0, {q0})


q0 Fungsi Transisi :
a (q0, a) = q0

4. Ekspresi regular 0*10*

0
q0
q1
1 0

4.5. Konversi Finite Automata ke Ekspresi Regular


Dari sebuah finite automata dapat ditentukan ekspresi regularnya
yang diterima oleh otomata yang bersangkutan.

Contoh :

1 0 1 1
q0 q1 q2 1

0
Maka input yang menuju state akhir (q2) adalah 0 atau 10*1*.
Pada state q2 akan menerima input 1 dalam jumlah berulang (0-n) dan
tetap di q2.
Pada state q1 akan menerima inpu 0 dalam jumlah berulang (0-n)
Bisa dikatakan mesin otomata di atas menerima 01* atau 10*11*, jadi dapat
dituliskan ekspresi regularnya :
01* 10*11*

4.6. Hubungan DFA, NFA, dan Ekspresi Regular

Dalam penggambaran Deterministik Finite Automa dari Ekspresi Regular


dapat dilakukan dengan cara :
1. Ekspresi Regular Diketahui
2. Dari Ekspresi Regular tersebut digambarkan Non-determinstik Finite
Automatanya
3. Dari Non-determinstik Finite Automata tersebut baru dibangun
Deterministik Finite Automa
4. Lakukan pengujian dengan string dari ekspresi regularnya.

SOAL
1. Bentuklah Finite State Automata dari ekspresi regular berikut :

10+(0+11)0*1

2. Tentukan ekspresi regular untuk bahasa yang diterima oleh NFA berikut :
Q = {qo, q1, q2, q3, q4}
= {0,1}
q0 = q0
F = {q2, q3, q4}

Tabel transisinya
0 1
q0 {q1, q4} {q3}
q1 {q1} {q2}
q2 - -
q3 - {q4}
q4 - -
4.7.Finite State Automata dengAN Tipe Bahasa 3

Teorema 1
Suatu tata bahasa tipe 3 regular grammar, yaitu G = (V, T, P, S), dimana tata
bahasa tersebut terdapat mesin finite automata M = (Q, , , q0, F) dengan
T(M) = L(G).

Diketahui tatabahasa regular grammar G = (V, T, P, S)


Dimana
V = {S, A}
T = {0, 1}
P : S 0A
A 0A | 1S | 0

Dari tatabahasa di atas terdapat nondeterministik finite automata dengan


formulasi M = (Q, , , q0, F), maka
Semua symbol nonterminal merupakan himpunan state (Q) dalam finite
automata.
Semua simbol terminal merupakan himpunan symbol masukan () dalam
finite state automata.
Simbol awal S menjadi state awal dalam finite state automata.

ATURAN PRODUKSI FUNGSI TRANSISI


S 0A (S, 0) = {A}
A 0A (A, 0) = {A}
A 1S (A, 1) = {S}
A0 Berarti A adalah menuju state akhir

0
S
1 A 0

0
Jadi dari tatabahasa didapat finite state automatanya :
B
M = (Q, , , q0, F) dengan
Q = {S, A, B}
= {0, 1}
q0 = S
F = {B}

Dengan Fungsi Transisi


(S, 0) = {A} (A, 1) = {S}
(A, 0) = {A, B}

Atau table transisi


0 1
S {A} -
A {A, B} S

Contoh Kasus
Suatu tatabahasa G = ({S, A, B}, {a, b}, P, S)
P : S aB | bA |
A abaS
B babS

Dari tatabahasa di atas kita akan dapat mencari finite state automatanya.
V = {S, A, B} menjadi Q = {S, A, B}
T = {a, b} menjadi = {a, b}
S aB menajdi (S, a) = B
S bA menjadi (S, b) = A
S : berarti S juga merupakan state akhir dalam finite state automata
A abaS menjadi (A, a) = C
(C, b) = D
(D, a) = S

B babS menajdi (B, b) = E


(E, a) = F
(F, b) = S
Dari hasil di atas kita mendapatkan symbol nonterminal baru yang nantinya
menjadi himpunan state, symbol tersebut adalah (C, D, E, F).
Maka :
M = (Q, , , q0, F) dengan
Q = {S, A, B, C, D, E, F)
= {a, b}
q0 = S
F = {S}
Tabel transisi
a b
S B A
A C -
B - E
C - D
D S -
E F -
F - S

b F
a S a

b B
D b a
E
A

b
a

Teorema 2
Diketahui FAM maka terdapat tatabahasa G yang termasuk tatabahasa
regular grammar (tipe-3) sehingga L(G) = L(M).

Diketahui M = (Q, , , q0, F), dimana


Q = (q0, q1)
= (0, 1)
q0 = q0
F = {q1}
Dengan Tabel transisi
0 1
q0 {q0, q1} -
q1 {q0} {q0, q1}

Dari table transisi di atas maka kita dapat mengetahui tatabahasa dari tipe-3
yang sesuai dengan mesin finite state automata.

(q0, 0) = {q0, q1} artinya q0 0q0 | 0q1


(q1, 0) = {q0} artinya q1 0q0
(q1, 1) = {q0, q1} artinya q1 1q0 | 1q1

Simbol state awal pada finite state automata menjadi symbol awal pada
tatabahasanya. Sementara itu symbol himpunan state akhir F pada finite
state automata mengakibatkan symbol yang membaca symbol masukan
tidak akan dituliskan statenya.
Himpunan state akhir adalah {q1}, maka :

q0 0q1 akan dituliskan q0 0


q1 1q1 akan dituliskan q1 (karena state sendiri)

Maka dari finite state automata di atas kita mendapatkan tatabahasanya


adalah :

G = (V, T, P, S), dimana


V = {q0, q1}
T = {0, 1}
P : q0 0q0 | 0
q1 0q0 | 1q0 |

Dimisalkan q0 diganti dengan S dan q1 diganti dengan A, maka

G = (V, T, P, S), dimana


V = {S, A}
T = {0, 1}
P : S 0S | 0A | 0
A 0S | 1S |

Contoh Kasus
Dari diagram transisi di bawah ini, tentukan tatabahasa tipe-3nya.
a
q0 q2

b b
q1 c

q3 a

Maka tatabahasa tipe-3nya adalah :

(q0, b) = {q1, q3} artinya q0 bq1 | bq3


(q1, a) = {q1} artinya q1 aq1
(q1, c) = {q2} artinya q1 cq2
(q2, a) = {q0} artinya q2 aq0
q3 tidak ada transisi

Tatabahasa yang didapat :


G = (V, T, P, S)
V = {q0, q1, q2}
T = (a, b, c}
P : q0 bq1 | b
q1 aq1 | cq2
q2 aq0
TUGAS :

1. Buat finite state automata dari sekumpulan tatabahasa berikut :


S 0A
A 10A |
Dan dari hasil NFA ubah ke DFA

2. Buat finite state automata dari sekumpulan tatabahasa berikut :


G = (V, T, P, S), dimana
V = {A, B, C, D}
T = {0, 1}
P : A 0B | 1D | 0
B 0D | 1C | 0
C 0B | 1D | 0
D 0D | 0

Anda mungkin juga menyukai