Anda di halaman 1dari 25

EKSPRESI REGULAR

MATERI MINGGU KE
KE--4
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.
“Ø yang melambangkan himpunan kosong, atau tidak punya anggota, sedangkan
{ ɛ } adalah himpunan yang memiliki satu anggota , yaitu string kosong.”

2
8 April 2015 Teori Bahasa dan Otomata
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}
A* = CLEENE closure dari himpunan A, didefinisikan : A0 ∪ A1 ∪ A2 ∪....∪ A∞, yang
menghasilkan suatu himpunan : { ɛ , a, aa, aaa, aaaa, ….}, dinotasikan sebagai a*

3
8 April 2015 Teori Bahasa dan Otomata
Akibat Logis Ekspresi Reguler
Reguler,, berdasarkan Aturan
Aturan--Aturan dalam
Teori Himpunan
Himpunan,,
1. a∪b=b∪a
2. a∪Ø=Ø∪a
3. a∪a=a
4. (a ∪ b) ∪ c = a ∪(b ∪ c)
5. aɛ = ɛa = a
6. aØ = Øa = Ø
7. (ab)c=a(bc)
8. a(b ∪ c)=ab ∪ ac = dan (a ∪ b)c = ac ∪ bc
9. a* = a** = a*a* = (ɛ ∪ a)*=a*(a ∪ ɛ) = (a ∪ ɛ)a* = ɛ ∪ aa*
10. aa*= a*a

4
8 April 2015 Teori Bahasa dan Otomata
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)*
• Sederetan NOL dengan jumlah GENAP diikuti sederetan SATU dengan jumlah
GANJIL
Ekspresinya : 00(00)*1(11)*
5
8 April 2015 Teori Bahasa dan Otomata
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


genap atau bit SATU genap dengan posisi sembarang

6
8 April 2015 Teori Bahasa dan Otomata
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

7
8 April 2015 Teori Bahasa dan Otomata
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 :
r = abbb(a+b)(a+b)*

8
8 April 2015 Teori Bahasa dan Otomata
Sifat Bahasa 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)
Jika L adalah bahasa pada ∑ maka homomorphic image bahasa L adalah
h(L)= { h(w) | w ϵ L}

9
8 April 2015 Teori Bahasa dan Otomata
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)*

10
8 April 2015 Teori Bahasa dan Otomata
Hubungan RE dan NFA

11
8 April 2015 Teori Bahasa dan Otomata
Hubungan RE dan NFA

12
8 April 2015 Teori Bahasa dan Otomata
Ekuivalensi NFA, DFA, dan RG
• DFA bisa dibentuk dari NFA.
• RG bisa dibentuk dari DFA.
• NFA bisa dibentuk dari RG

NFA

DFA RG

13
8 April 2015 Teori Bahasa dan Otomata
Pembentukan DFA dari NFA
1. Diberikan sebuah NFA F = (K, VT, 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 VT’ = VT
3. 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.
6. Elemen Z’ adalah semua stata yang mengandung stata elemen Z.

14
8 April 2015 Teori Bahasa dan Otomata
CONTOH
Berikut ini diberikan sebuah NFA F = (K, V , M, S, Z) dengan :
K = {A, B, C}, VT = {a, b}, S = A, Z = {C}, dan M didefinisikan sebagai
berikut :

STATA K NFA F Input


a b
A [A,B] C
B A B
C B [A,B]

Tentukan DFA hasil transformasinya !

15
8 April 2015 Teori Bahasa dan Otomata
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 :

STATA K’ NFA F’ Input


a b
A [A,B] C
B A B
C B [A,B]

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]
[A,B] [A,B] [B,C]
16
8 April 2015 Teori Bahasa dan Otomata
4. Langkah (3) di atas menghasilkan stata baru yaitu [B,C]. Setelah pemetaan terhadap
[B,C] diperoleh tabel berikut :
STATA K’ NFA F’ Input
a b
A [A,B] C
B A B
C B [A,B]
[A,B] [A,B] [B,C]
[B,C] [A,B] [A,B]

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 :

17
8 April 2015 Teori Bahasa dan Otomata
Pembentukan RG dari DFA
Diketahui sebuah DFA F = (K, VT, M, S, Z). Akan dibentuk
RG G = (VT’,VN, S’, Q).
Algoritma pembentukan RG dari DFA adalah sebagai berikut :
• Tetapkan VT’ = VT, S’ = S, VN = S
• Jika Ap, Aq ϵ K dan a ϵ VT, maka :

M(Ap, a) = A ekuivalen dengan produksi A p  aA q , jika A q  Z



 A p  a, jika A q  Z

18
8 April 2015 Teori Bahasa dan Otomata
CONTOH
Diketahui sebuah DFA F dengan Z = {S} dan fungsi transisi M sebagai berikut :
Dengan algoritma di atas maka diperoleh Q(RG)sbb. :
M(S,0) = B  S  0B STATA K DFA INPUT
M(S,1) = A S  1A F
0 1
M(A,0) = C  A  0C
M(A,1) = S A  1 S B A
M(B,0) = S  B  0 A C S
M(B,1) = C B 1C B S C
M(C,0) = A  C  0A
C A B
M(C,1) = B C  1B

RG yang dihasilkan adalah G(VT’, VN, S’, Q), dengan VT’ = {0,1}, VN = {S, A, B, C},
S’ = S, dan Q = {S  0B, S  1A, A  0C, B 1C, C  0A, C  1B,
A  1, B  0}
19
8 April 2015 Teori Bahasa dan Otomata
Pembentukan NFA dari RG
Diketahui RG G = (VT, VN, S, Q). Akan dibentuk NFA F = (K, VT’, M, S’, Z).
Algoritma pembentukan NFA dari RG :
1. Tetapkan VT’ = VT, S’ = S, K = VN
2. Produksi Ap  a Aq ekuivalen dengan M(Ap, a) = Aq
Produksi Ap  a ekuivalen dengan M(Ap , a) = X, dimana X  V
3. K = K ∪ {X}
4. Z = {X}

20
8 April 2015 Teori Bahasa dan Otomata
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}
STATA K INPUT
Tabel M : NFA F a b
S S A
A [A,B] ⌽
B ⌽ X
X ⌽ ⌽
Terapkan algoritma di atas untuk memperoleh NFA F sebagai berikut :
1. VT’ = VT = {a, b}, S’ = S, K = VN = {S, A, B}
2. S  aS  M(S,a) = S, S  bA  M(S,b) = A,
A  aA  M(A,a) = A, A  aB  M(A,a) = B,
B  b  M(B,b) = X
NFA yang diperoleh : F(K, VT’, M, S’, Z), dengan K = {S, A, B, X}, VT’ = {a, b}, S’ = S, Z
= {X},
21
8 April 2015 Teori Bahasa dan Otomata
NFA-- Dengan ER (Ekspresi
Ekuivalensi NFA (Ekspresi Regular)

22
8 April 2015 Teori Bahasa dan Otomata
CONTOH
Tentukan NFA untuk ekspresi regular r = 0(1  23)*
Jawab :
r1 = 0 

r2 = 1 

r3= 23 

r4= r2 r3 = 1 23 

23
8 April 2015 Teori Bahasa dan Otomata
CONTOH

r5= r4* = (1 23)* 

r = r5= 0(1 23)* 

24
8 April 2015 Teori Bahasa dan Otomata
TERIMAKASIH
Lilis Setyowati

25
8 April 2015 Teori Bahasa dan Otomata

Anda mungkin juga menyukai