EKSPRESI REGULAR
EKSPRESI REGULAR
MATERI MINGGU
EKSPRESI REGULAR
EKSPRESI REGULAR
• Bahasa disebut reguler jika terdapat FSA yang dapat menerimanya.
• Bahasa reguler dinyatakan secara sederhana dengan ekspresi reguler/regular expression (RE).
• Contoh penerapan : searching string pada file
• RE -> NFA dengan e Move -> DFA
Definisi ekspresi reguler
1. Ø = {} = (himpunan kosong) adalah sebuah ekspresi regular 2. { ɛ } =string kosong adalah ekspresi regular
3. Untuk setiap a ϵ ∑, maka a adalah ekspresi regular
4. Jika a dan b adalah ekspresi regular maka a ∪ b , ab dan a* adalah ekspresi regular.
Notasi a ∪ b , ab dan a* adalah penyederhanaan notasi yang diperoleh dari notasi asli sebagai berikut : Jika dimiliki himpunan A,B sebagai himpunan berikut :
• Ekspresi a ∪ b maksudnya :
A={a} dan B={b}
A ∪ B = gabungan/union antara himpunan A dengan himpunan B = {a,b} Dinotasikan secara singkat sebagai : a ∪ b
• Ekspresi ab maksudnya :
A={a} dan B={b}
AB = CONCATENATION antara himpunan A dengan himpunan B = {ab} Dinotasikan secara singkat sebagai : ab
• Ekspresi a* maksudnya :
A={a}
Akibat
CONTOH
CONTOH
Ekspresikan dalam bentuk ekspresi reguler kalimat-kalimat berikut :
• Sederatan NOL minimal nol buah
Ekspresinya : 0*
• Sederatan NOL minimal satu buah
Ekspresinya : 00*
• Sederetan NOL minimal satu buah diikuti sederetan SATU sebanyak satu buah atau lebih
Ekspresinya : 00*11*
• Sederetan bit NOL dan SATU sembarang yang diawali dengan NOL dan diakhiri dengan SATU
Ekspresinya : 0(0,1)*1 atau ditulis : 0(0 ∪ 1)*1
• Sederetan SATU dengan jumlah GENAP
Ekspresinya : 11(11)*
CONTOH
CONTOH
String apakah ekspresi-ekspresi regular berikut :
a. Ekspresi : (1,0)*
→ Sederetan bit NOL dan SATU dengan
jumlah sembarang dan susunan sembarang.
b. Ekspresi : (0,1)*1*
→ Sederetan bit NOL dan SATU dengan
jumlah sembarang urutan sembarang diikuti dengan deretan
bit SATU dengan jumlah nol atau lebih.
c. Ekspresi : (00)*(11)*
→ Deretan NOL kosong atau Genap
diikuti deretan SATU kosong atau genap.
a. Ekspresi : (11)*
∪
(00)*
→ String kosong atau berisi bit NOL
Bahasa
Bahasa Reguler
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, ... }
= {a
2n | n ≥ 0 }
CONTOH
CONTOH
• Tentukan bahasa reguler yang dibentuk oleh r =(aa*)(bb)*b
Jawab :
L ( r )= L((aa)*(bb)*b)
= { an b2m+1 | n, m ≥ 0}
• Tentukan ekspresi reguler pembentuk bahasa pada S = {0,1}, yaitu L(r) = { w ϵ ∑* | w memiliki substring ‘00’ }
Jawab :
r = (0+1)*00(0+1)*
• Tentukan ekspresi reguler pembentuk bahasa pada ∑ = {a,b}, yaitu
L(r) = { abnw | n ≥ 3 , w ϵ {a , b}+ }
Jawab :
Sifat
Sifat Bahasa
Bahasa Reguler
Reguler
• Tertutup terhadap operasi himpunan sederhana
Jika L1 dan L2 adalah bahasa reguler, maka L1 U L2
L1 ∩ L2, L1L2, ~ (L1) dan L1* adalah bahasa reguler juga
• Tertutup terhadap homomorphic image
Jika L1 adalah bahasa reguler, maka homomorphic image h(L1) adalah bahasa reguler juga.
Dimisalkan ∑ dan ᴦ adalah alfabet, maka fungsi homomorphic dinyatakan denganh : ∑ → ᴦ
jika w = a1 a2 ... an
maka h(w) = h(a1) h(a2 ) ... h(an)
CONTOH
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
Hubungan
Hubungan
Ekuivalensi
Ekuivalensi NFA, DFA,
NFA, DFA, dan
dan RG
RG
•
DFA bisa dibentuk dari NFA.
•
RG bisa dibentuk dari DFA.
•
NFA bisa dibentuk dari RG
DFA RG
Pembentukan
Pembentukan DFA
DFA dari
dari NFA
NFA
1. Diberikan sebuah NFA F = (K, V
T, M, S, Z). Akan dibentuk sebuah
DFA F’ = (K’, V ’, M’, S’, Z’) dari NFA F tersebut. Algoritma
pembentukannya adalah sbb. :
2. Tetapkan : S’ = S dan V
T’ = V
T3. Copykan tabel NFA F sebagai tabel DFA F’. Mula-mula K’ = K dan
M’ = M
4. Setiap stata q yang merupakan
nilai
(atau
peta
) dari fungsi M
dan q
K, ditetapkan sebagai elemen baru dari K’. Tempatkan q
tersebut pada kolom Stata M’, lakukan pemetaan berdasarkan
fungsi M.
5. Ulangi langkah (3) sampai tidak diperoleh stata baru.
CONTOH
CONTOH
Berikut ini diberikan sebuah NFA F = (K, V , M, S, Z) dengan :
K = {A, B, C}, V
T= {a, b}, S = A, Z = {C}, dan M didefinisikan sebagai
berikut :
Tentukan DFA hasil transformasinya !
STATA K NFA F Input
a b
A [A,B] C
B A B
Jawab:
Berdasarkan algoritma di atas, maka : 1. S’ = S = A, VT’ = VT = {a, b}.
2. Hasil copy tabel NFA F menghasilkan tabel DFA F’ berikut :
3. Pada tabel DFA F’ di atas terdapat stata baru yaitu [A,B]. Pemetaan [A,B] adalah : M([A,B],a) = M(A,a)∪M(B,a) = [A,B] ∪ A = [A,B], dan M([A,B],b) = M(A,b)∪M(B,b) = C∪B = [B,C], sehingga diperoleh tabel berikut :
STATA K’ NFA F’ Input
a b
A [A,B] C
B A B
C B [A,B]
STATA K’ NFA F’ Input
a b
A [A,B] C
4. Langkah (3) di atas menghasilkan stata baru yaitu [B,C]. Setelah pemetaan terhadap [B,C] diperoleh tabel berikut :
5. Setelah langkah (4) di atas tidak terdapat lagi stata baru.
Dengan demikian DFA F’ yang dihasilkan adalah : DFA F’ = (K’, VT’, M’, S’, Z’), dimana : K’ =
{A, B, C, [A,B], [B,C]}, VT’ = {a, b}, S’ = A, Z’ = {C, [B,C]}. Fungsi transisi M’ serta Graf dari
DFA F’ adalah sebagai berikut :
STATA K’ NFA F’ Input
Pembentukan
Pembentukan RG
RG dari
dari DFA
DFA
Diketahui sebuah DFA F = (K, V
T, M, S, Z). Akan dibentuk
RG G = (V
T’,V
N, S’, Q).
Algoritma pembentukan RG dari DFA adalah sebagai berikut :
•
Tetapkan V
T’ = V
T, S’ = S, V
N= S
•
Jika A
p, A
qϵ K dan a ϵ V
T, maka :
M(A
p, a) = A ekuivalen dengan produksi
CONTOH
CONTOH
Diketahui sebuah DFA F dengan Z = {S} dan fungsi transisi M sebagai berikut : Dengan algoritma di atas maka diperoleh Q(RG)sbb. :
Pembentukan
Pembentukan NFA
NFA dari
dari RG
RG
Diketahui RG G = (V
T, V
N, S, Q). Akan dibentuk NFA F = (K, V
T’, M, S’, Z).
Algoritma pembentukan NFA dari RG :
1. Tetapkan V
T’ = V
T, S’ = S, K = V
N2. Produksi A
p
a A
qekuivalen dengan M(A
p, a) = A
qProduksi A
p
a ekuivalen dengan M(A
p, a) = X, dimana X
V
CONTOH
CONTOH
Diketahui RG G = (VT, VN , S, Q) dengan : VT = {a, b}, VN = {S, A, B}, S = S, dan Q = {S
aS, S bA, A aA, A aB, B b}
Tabel M :