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
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.
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}
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
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}
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 :
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 :
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]
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 :
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
24
8 April 2015 Teori Bahasa dan Otomata
TERIMAKASIH
Lilis Setyowati
25
8 April 2015 Teori Bahasa dan Otomata