EKSPRESI REGULER
6.1 Pendahuluan
Sebuah bahasa dinyatakan regular jika terdapat FSA yang dapat menerimanya. Bahasa-
bahasa yang dapat diterima oleh FSA bisa dinyatakan secara sederhana dengan ekspresi regular.
Pada bab ini akan dibahas tentang teori ekspresi regular, notasi ekspresi regular dan
penerapannya.
Bahasa Reguler
Apabila r adalah RE, maka L(r) adalah bahasa reguler yang dibentuk menggunakan ekspressi
reguler r.
Contoh
Tentukan bahasa reguler yang dibentuk oleh r=(aa)*
Jawab
L(r) = L( (aa)* )
= { , aa, aaaa, aaaaaa, ... }
= { a2n | n 0 }
menyatakan himpunan string a dengan jumlah genap
Contoh
Dimisalkan = {a,b} dan = {a,b,c} dan didefinisikan h(a) = ab dan h(b) =bbc
homomorphic image bahasa L = {aa,aba } adalah
h(L)= { abab, abbbcab}
Dimisalkan = {a,b} dan = {b,c,d} dan didefinisikan h(a) = dbcc dan h(b) =bdc
homomorphic image bahasa L(r) yang dibentuk dari ekspresi reguler
r = (a+b*)(aa)*
adalah h(L(r)) yang dibentuk dengan ekspresi reguler
r = (dbcc + (bdc)*) (dbccdbcc)*
q 0 =q f
q 0 q f
A q 0 a q f
r+t
sR R fR
q 0 q f
sT T fT
rt
q0 qf
sR R fR sT T fT
r*
q sR R fR q
0 f
Tatabahasa Linier kiri dan linier kanan
Suatu tatabahasa G (T,N,S,P) disebut linier kanan jika seluruh aturan produksinya berbentuk
A xB
A x
dengan A, B N dan x T*
Suatu tatabahasa G (T,N,S,P) disebut linier kiri jika seluruh aturan produksinya berbentuk
A Bx
A x
dengan A, B N dan x T*
Tatabahasa reguler bisa bersifat linier kiri atau linier kanan.
Contoh 1
Tatabahasa G = {{S} , {a,b}, S , P } dengan aturan produksi P adalah S abS |a
adalah tatabahasa linier kanan/reguler
b
q 3
Tatabahasa linier untuk FSA tersebut yaitu G = ({a,b}, {S,S1,S2,S3},S, P ) dengan aturan produksi
P adalah : S S1
S1 aS2
S2 bS3
S3
b a
Contoh
Bahasa yang menerima ekspresi reguler 0(10)*11
q 0 0 q 1 1 q 3 1 q 4
0 1
q 2
Penjelasan
Mengidentifikasi sifat yang harus dimiliki oleh suatu bahasa reguler.
Cara untuk menentukan apakah sebuah bahasa tidak reguler
Untuk memperlihatkan bahwa suatu bahasa infinite tidak reguler, maka kita
tunjukkan bahwa untuk nilai n yang cukup besar, sekurang-kurangnya satu untai
yang panjangnya n atau lebih besar gagal untuk dapat dipompa.
Contoh :
L= {ai^2 | i1}
{a1, a4,a9, a16, ...}
{a , aaaa , aaaaaaaaa , aaaaaaaaaaaaaaaa, ... }
Suatu string dalam L harus mempunyai panjang yang berupa nilai kuadrat (1,4,9,16, ..., n2, ...)
1.3 Rangkuman
Hubungan antara DFA, NFA dan ekspresi regular dapat digambarkan sebagai suatu mata rantai
yang saling berhubungan, dimana NFA dapat diterapkan pada mesin DFA, DFA dapat diterapkan
bagi ekspresi regular, ekspresi regular dapat diterapkan pada NFA dengan -move, dan NFA
dengan -move dapat diterapkan pada mesin NFA.
1.4 Latihan:
1. Carilah seluruh string pada L((a+b)*b(a+ab)*) dengan panjang string kurang dari 4.
2. Tuliskanlah notasi untuk ekspresi regular-ekspresi regular di bawah ini :
a) Sederetan a dengan panjang minimal 1
b) Sederatan a dengan panjang minimal nol dan diakhiri dengan b
c) a atau b dengan panjang minimal nol
d) Sederetan ab dengan panjang minimal nol
2. Bagaimanakah mengungkapkan kalimat untuk ekspresi regular berikut
a) {a,b}
b) {ab} c) {ab*} d) {a*b} e) {a*,b} f) {a,b*} g) {a*b*}
h) {a*,b*}
3. Tentukan bahasa yang dihasilkan oleh tata bahasa regular berikut :
G(, N, S, P) ; dimana ={ a,b } N = { A, B} dan jika aturan produksi
masing-masing bahasa adalah sebagai berikut :
a) P ={ SaS ; S }
b) P ={ SaS ; S a}
c) P ={ SaS ; SB ; BbB; Bb }
d) P ={ SaS ; S ; SB ; BbB; B }
e) P ={ SaS ; SB ; BbB; B }
4. Tentukan bahasa yang dihasilkan oleh tata bahasa regular berikut :
G(, N, S, P) ; dimana ={ a,b,c } N = { A, B, C} dan jika aturan produksi
masing-masing bahasa adalah sebagai berikut :