• Tidak ada hasil yang ditemukan

8 April 2015 Teori Bahasa dan Otomata

N/A
N/A
Protected

Academic year: 2021

Membagikan "8 April 2015 Teori Bahasa dan Otomata"

Copied!
25
0
0

Teks penuh

(1)

EKSPRESI REGULAR

EKSPRESI REGULAR

MATERI MINGGU

(2)

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.

“Ø yang melambangkan himpunan kosong, atau tidak punya anggota, sedangkan { ɛ } adalah himpunan yang memiliki satu anggota , yaitu string kosong.”

(3)

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

(4)

Akibat

Akibat Logis

Logis Ekspresi

Ekspresi Reguler

Reguler, , berdasarkan

berdasarkan Aturan

Aturan--Aturan

Aturan dalam

dalam

Teori

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

(5)

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)*

• Sederetan NOL dengan jumlah GENAP diikuti sederetan SATU dengan jumlah

(6)

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

(7)

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

2

n | n ≥ 0 }

(8)

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 :

(9)

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)

Jika L adalah bahasa pada ∑ maka homomorphic image bahasa L adalah h(L)= { h(w) | w ϵ L}

(10)

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

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)*

(11)

Hubungan

(12)

Hubungan

(13)

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

(14)

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

T

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.

(15)

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

(16)

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

(17)

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

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]

(18)

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

Z

A

jika

,

a

A

Z

A

jika

,

aA

A

q p q q p

(19)

CONTOH

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 M(S,1) = A S  1A M(A,0) = C  A  0C M(A,1) = S A  1 M(B,0) = S  B  0 M(B,1) = C B 1C M(C,0) = A  C  0A 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,

STATA K DFA F INPUT 0 1 S B A A C S B S C C A B

(20)

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

N

2.

Produksi A

p

a A

q

ekuivalen dengan M(A

p

, a) = A

q

Produksi A

p

a ekuivalen dengan M(A

p

, a) = X, dimana X  V

3.

K = K ∪ {X}

(21)

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 :

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 STATA K NFA F INPUT a b S S A A [A,B] ⌽ B ⌽ X X ⌽ ⌽

(22)

Ekuivalensi

(23)

CONTOH

CONTOH

Tentukan NFA untuk ekspresi regular r = 0(1  23)*

Jawab :

r

1

= 0 

r

2

= 1 

r

3

= 23 

(24)

CONTOH

CONTOH

r

5

= r

4

* = (1 23)* 

(25)

TERIMAKASIH

Referensi

Dokumen terkait