Top Banner
CS3113 TeoriKomputasi Regular Expression
37

lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Dec 01, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

CS3113 Teori Komputasi

Regular Expression

Page 2: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Ekspresi RegularEkspresi RegularEkspresi RegularEkspresi Regular

• Ekspresi regular terdiri dari konstanta, variabel-

variabel yang menyatakan bahasa dan operator

union, dot dan star.

• Ekspresi regular dapat dinyatakan secara rekursif. • Ekspresi regular dapat dinyatakan secara rekursif.

• Definisi ekspresi regular, E, dan bahasa yang

direpresentasikan oleh E yaitu L(E) terdiri dari

basis dan langkah induktif

2CS3113/EAR

Page 3: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Ekspresi RegularEkspresi RegularEkspresi RegularEkspresi Regular

BasisBasisBasisBasis:

1. Konstanta ε dan φ adalah ekspresi regular, berturut-turut menyatakan bahasa {ε} dan φ. Bahwa L(ε) ={ε}, dan L(φ) = φ.

2. Jika a adalah simbol, maka aaaa adalah ekspresi 2. Jika a adalah simbol, maka aaaa adalah ekspresi regular. Ekspresi ini menyatakan bahasa {a}, bahwa L(aaaa) = {a}

3. Sebuah variabel, biasanya dicetak tebal dan miring seperti LLLL, merepresentasikan suatu bahasa.

3CS3113/EAR

Page 4: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Ekspresi RegularEkspresi RegularEkspresi RegularEkspresi Regular

InduksiInduksiInduksiInduksi:

1. Jika EEEE dan FFFF adalah ekspresi regular, maka EEEE + FFFF adalah ekspresi regular yang menyatakan union dari L(EEEE) dan L(FFFF).

Bahwa L(EEEE + FFFF) = L(EEEE) ∪ L(FFFF).

2. Jika EEEE dan FFFF adalah ekspresi regular, maka EFEFEFEF adalah ekspresi regular yang menyatakan perangkaian dari L(EEEE) ekspresi regular yang menyatakan perangkaian dari L(EEEE) dan L(FFFF).

Bahwa LLLL(EFEFEFEF) = L(EEEE).L(FFFF).

Simbol ‘dot’ bisa digunakan atau tidak untuk menotasikan operator perangkaian baik dalam bahasa atau dalam ekspresi regular.

Contoh: 0000.1 1 1 1 adalah ekspresi regular yang artinya sama dengan 01010101 dan merepresentasikan bahasa {01}.

4CS3113/EAR

Page 5: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Ekspresi RegularEkspresi RegularEkspresi RegularEkspresi Regular

3. Jika EEEE adalah sebuah ekspresi regular, maka EEEE*

adalah ekspresi regular menyatakan closure dari

L(EEEE).

Bahwa L(EEEE*) = (L(EEEE))*.Bahwa L(EEEE*) = (L(EEEE))*.

4. Jika EEEE adalah ekspresi regular, maka (EEEE), EEEE

dengan tanda kurung juga ekspresi regular yang

menyatakan bahasa yang sama dengan E.

Bahwa L((EEEE)) = L(EEEE).

5CS3113/EAR

Page 6: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

• Contoh konversi bahasa (notasi himpunan) ke

ekspresi reguler yang sesuai

• (di kelas)• (di kelas)

CS3113/EAR 6

Page 7: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• Akan dibuat ekspresi regular untuk himpunan string yang terdiri dari 0 dan 1 secara bergantian.

• Langkah-langkah untuk membuat ekspresi regular tersebut adalah

– Pertama dibuat ekspresi regular untuk bahasa – Pertama dibuat ekspresi regular untuk bahasa yang terdiri dari string tunggal 01.

– Gunakan operator star untuk mendapat sebuah ekspresi untuk semua string dengan bentuk 0101...01

7CS3113/EAR

Page 8: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

BasisBasisBasisBasis: 0000 dan 1 1 1 1 adalah ekspresi regular yang berturut-

turut menyatakan bahasa {0} dan {1}.

InduksiInduksiInduksiInduksi:

• Perangkaian dari 0 dan 1 yaitu 01 adalah ekpresi regular • Perangkaian dari 0 dan 1 yaitu 01 adalah ekpresi regular

yang menyatakan bahasa {01}

• Untuk mendapat semua string yang terdiri dari nol atau

lebih kemunculan 01 digunakan ekspresi regular (01010101)*

• Perhatikan bahwa (01010101)* ≠ 01010101*.

– 01010101* menyatakan bahasa yang terdiri dari sebuah 0 dan sejumlah

1.

8CS3113/EAR

Page 9: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• Tetapi, L((01010101)*) bukan bahasa yang tepat yang diinginkan.

• Bahasa ini hanya mencakup string-string dari 0 dan 1 secara bergantian dimulai dengan 0 dan diakhiri dengan 1

� diperlukan kemungkinan terdapat 1 diawal dan 0 diakhir string. Ekspresi regular yang mungkin adalah– (10101010)* yang terdiri dari para 0 dan para 1 secara bergantian, diawali – (10101010)* yang terdiri dari para 0 dan para 1 secara bergantian, diawali 1 dan diakhiri 0.

– 0000(10101010)* yang diawali dan diakhiri 0.

– 1111(01010101)* yang diawali dan diakhiri 1.

• Sehingga keseluruhan ekspresi adalah

(01010101)* + (10101010)* + 0000(10101010)* + 1111(01010101)*

dengan + adalah operator union.

9CS3113/EAR

Page 10: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh Cara Lain

• Mulai dengan (01010101)*, tambahkan 1 (optional) diawal jika kita merangkai pada bagian kiri dengan ekspresi εεεε+1111.

• Bisa juga ditambah 0 (optional) diakhir jika kita merangkai pada bagian kanan dengan ekspresi εεεε+0000.merangkai pada bagian kanan dengan ekspresi εεεε+0000.

• Dengan menggunakan operator +, diperoleh

L(εεεε + 1111) = L(εεεε ) ∪ L(1111) = {ε} ∪ {1} = {ε,1}

• Ekspresi yang dimaksud adalah (εεεε+1111)(01010101)*(εεεε+0000). – Jika 1 yang dipilih dalam (εεεε+1111) didapat string 1w.

– Jika 0 yang dipilih dalam (εεεε+0000) didapat string w0.

10CS3113/EAR

Page 11: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Urutan prioritas operator dalam ekspresi

regular:

1. Operator star

2. Operator dot (concatenation)

Concatenation bersifat asosiatif sehingga 012012012012

dapat dikelompokkan (01010101)2222.dapat dikelompokkan (01010101)2222.

3. Operator + (union) yang bersifat asosiatif.

Contoh, ekspresi 01010101*+1111 dikelompokkan menjadi

(0000(1111*))+1111.

11CS3113/EAR

Page 12: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Algebraic Laws of Regular ExpressionAlgebraic Laws of Regular ExpressionAlgebraic Laws of Regular ExpressionAlgebraic Laws of Regular Expression (1)

1. Associativity and Commutative Law.a. L + M = M + L, commutative law of union.

b. (L+M)+N=L+(M+N), associativity of union.

c. (LM)N = L(MN), associativity of concatenation .

2. Identity and Annihilator

An annihilator for an operator is a value such that An annihilator for an operator is a value such that when an operator is applied to the annihilator with another value, the result is the annihilatora. φ + L = L + φ = L, φ is the identity for union.

b. εL = Lε = L, ε is the identity for concatenation.

c. φL = Lφ =φ, φ is the annihilator for the concatenation.

12CS3113/EAR

Page 13: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Algebraic Laws for Regular ExpressionsAlgebraic Laws for Regular ExpressionsAlgebraic Laws for Regular ExpressionsAlgebraic Laws for Regular Expressions

(2)

3. Distributive Law

– L(M+N) = LM + LN, hukum distributif kiri dari

perangkaian pada union.

– (M+N)L = ML + NL, hukum distributif kanan – (M+N)L = ML + NL, hukum distributif kanan

dari perangkaian pada union.

4. Hukum Idempotent untuk union: L + L = L.

13CS3113/EAR

Page 14: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

HukumHukumHukumHukum----Hukum Aljabar untuk Ekspresi Hukum Aljabar untuk Ekspresi Hukum Aljabar untuk Ekspresi Hukum Aljabar untuk Ekspresi

RegularRegularRegularRegular (3)

5. Hukum-hukum yang melibatkan closure:a. (L*)* = L*

b. φ* = ε

c. ε* = ε

d. L+ = LL* = L*L d. L+ = LL* = L*L

L+ = L + LL + LLL + ...

L* = ε + L + LL + LLL + ...

Dengan demikian LL* = Lε + LL + LLL + LLLL + ...

e. L* = L+ + ε

f. L? = ε + L merupakan definisi dari operator ?

14CS3113/EAR

Page 15: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• Diberikan ekspresi regular 0000 + 01010101*.

• Ekspresi tersebut dapat disederhanakan menggunakan hukum-hukum aljabar dalam ekspresi regular:

0000 + 01010101*0000 + 01010101*

= 0000ε + 01010101* dari (2b)

= 0(0(0(0(ε + 1111*) dari (3a), distributif kiri

= 01010101* karena ε + R = R

15CS3113/EAR

Page 16: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

HukumHukumHukumHukum----Hukum Aljabar untuk Ekspresi Hukum Aljabar untuk Ekspresi Hukum Aljabar untuk Ekspresi Hukum Aljabar untuk Ekspresi

RegularRegularRegularRegular (4)

• Jika diberikan 2 ekspresi regular E dan F,

dapat diuji apakah E = F benar.

• Cara mengujinya adalah sebagai berikut:

– Konversi E dan F ke ekspresi regular kongkrit – Konversi E dan F ke ekspresi regular kongkrit

berturut C dan D dengan mengganti setiap

variabel oleh sebuah simbol kongkrit.

– Uji apakah L(C) = L(D), jika benar, maka E=F

benar. Jika salah maka E=F salah.

16CS3113/EAR

Page 17: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

1. (L + M )* = (L*M*)*

– Untuk menunjukkan kesamaan tersebut, ganti variabel L dan M berturut-turut dengan simbol a dan b, sehingga diperoleh ekspresi regular (aaaa+bbbb)* dan (aaaa*bbbb*)*. (aaaa+bbbb)* dan (aaaa*bbbb*)*.

– Kedua ekspresi regular tersebut menyatakan bahasa dengan semua string dari a dan b.

– Dengan demikian, kesamaan (L + M )* = (L*M*)* benar.

17CS3113/EAR

Page 18: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh (lanjutan)

2. L* =L*L*

– Untuk menunjukkan kesamaan tersebut, ganti

variabel L dengan simbol a, sehingga diperoleh

ekspresi regular aaaa* dan aaaa*aaaa*. ekspresi regular aaaa* dan aaaa*aaaa*.

– Kedua ekspresi regular tersebut menyatakan

bahasa dengan semua string dari a.

– Dengan demikian, kesamaan L* =L*L* benar.

18CS3113/EAR

Page 19: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh (Lanjutan)

3. L + ML = (L + M)L

– Untuk menunjukkan kesamaan tersebut, ganti

variabel L dan M berturut-turut dengan simbol a dan b,

sehingga diperoleh ekspresi regular aaaa+babababa dan (a+ba+ba+ba+b)aaaa.

– Kedua ekspresi regular tersebut menyatakan bahasa – Kedua ekspresi regular tersebut menyatakan bahasa

yang berbeda.

– Untuk menunjukkan hal tersebut, pilih aa dalam

bahasa dari ekspresi regular (a+ba+ba+ba+b)a,a,a,a, tapi tidak dalam

bahasa dari ekspresi regular aaaa+babababa.

– Dengan demikian, kesamaan L + ML = (L + M)L salah

19CS3113/EAR

Page 20: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Finite AutomataFinite AutomataFinite AutomataFinite Automata dan Ekspresi Regulardan Ekspresi Regulardan Ekspresi Regulardan Ekspresi Regular (1)

• Sebuah ekspresi regular dapat merepresentasikan sebuah bahasa yang diterima oleh finite automata.

• Untuk membuktikan pernyataan tersebut, perlu dibuktikan bahwa:– Setiap bahasa yang didefinisikan oleh salah satu dari automata juga didefinisikan oleh sebuah ekspresi

– Setiap bahasa yang didefinisikan oleh salah satu dari automata juga didefinisikan oleh sebuah ekspresi regular.

Dalam hal ini, asumsikan bahwa bahasa tersebut diterima oleh DFA.

– Setiap bahasa yang didefinisikan oleh suatu ekspresi regular didefinisikan oleh salah satu dari automata.

Dalam hal ini, asumsikan terdapat NFA dengan transisi εyang menerima bahasa yang sama.

20CS3113/EAR

Page 21: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Skema pembuktian ekuivalensi notasiSkema pembuktian ekuivalensi notasiSkema pembuktian ekuivalensi notasiSkema pembuktian ekuivalensi notasi----

notasi untuk bahasa regularnotasi untuk bahasa regularnotasi untuk bahasa regularnotasi untuk bahasa regular: : : :

• Misalkan x dan y adalah

node dalam gambar di

samping.

• Edge dari node x ke y

NFA-ε

• Edge dari node x ke y

berarti bahwa dapat

dibuktikan setiap bahasa

yang didefinisikan oleh

kelas x juga didefinisikan

oleh kelas y.

21CS3113/EAR

Page 22: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Dari DFA ke Ekspresi RegularDari DFA ke Ekspresi RegularDari DFA ke Ekspresi RegularDari DFA ke Ekspresi Regular

Teorema 1:

Jika L = L(A) untuk suatu DFA A, maka

terdapat ekspresi regular R sedemikian

sehingga L = L(R).sehingga L = L(R).

Bukti: Lihat buku rujukan

22CS3113/EAR

Page 23: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• Ekspresi regular yang ekuivalen

dengan DFA di samping adalah

1111*0000(0000+1111)*.

• Ekspresi regular tersebut menyatakan bahasa yang terdiri dari • Ekspresi regular tersebut menyatakan bahasa yang terdiri dari semua string yang dimulai dengan 0 atau lebih simbol 1, kemudian memiliki sebuah 0 dan diikuti string dari simbol 0 dan simbol 1.

• Secara ringkas bahasa tersebut terdiri simbol 0 dan simbol 1 dengan sedikitnya satu 0.

23CS3113/EAR

Page 24: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Konversi DFA ke Ekspresi Regular dengan Konversi DFA ke Ekspresi Regular dengan Konversi DFA ke Ekspresi Regular dengan Konversi DFA ke Ekspresi Regular dengan

Mengeliminasi Mengeliminasi Mengeliminasi Mengeliminasi StateStateStateState

• Diberikan NFA yang menerima semua string dari para 0 dan 1, posisi ke-2 atau ke-3 dari ujung string memiliki sebuah 1.

• Bahasa yang diterima oleh NFA terdiri dari semua string dari

para 0 dan 1 bahwa posisi ke-2 atau ke-3 dari ujung string

memiliki sebuah 1.

• Ekspresi regular yang menyatakan bahasa yang sama (dengan

mengeliminasi state):

(0+1)*1(0+1) + (0+1)*1(0+1)(0+1)

24CS3113/EAR

Page 25: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Mengubah Ekspresi Reguler Menjadi

Automata [1]

• Basis pembentukan automata dari ekspresi reguler :

– Bagian yang menangani ekspresi ε dengan

himpunan bahasa {ε}.

– Bagian yang menangani ekspresi {} dengan – Bagian yang menangani ekspresi {} dengan

himpunan bahasa {}

– Bagian yang menangani ekspresi a dengan

himpunan bahasa L(a)

25CS3113/EAR

Page 26: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Mengubah Ekspresi Reguler Menjadi

Automata [2]

• Operasi sub ekspresi dalam membentuk ekspresi di

ekspresi reguler :

� R + S akan menghasilkan bahasa

L(R) ∪ L(S)L(R) ∪ L(S)

� RS akan menghasilkan bahasa

L(R) ° L(S)

� R* akan menghasilkan bahasa

L(R*)

26CS3113/EAR

Page 27: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Mengubah Ekspresi Reguler Menjadi

Automata [3]

• Ubah ekspresi reguler (0 + 1)*1(0 + 1) menjadi

bentuk otomata.

• Langkah : Pandang sebagai sub-sub otomata, dan

lakukan operasi terhadap otomata itu.lakukan operasi terhadap otomata itu.

– Contoh kita bisa menganggap 0 + 1 sebagai sub,

– Kemudian (0 + 1) * sebagai sub,

– Dan kemudian kita gabungkan kesemuanya.

27CS3113/EAR

Page 28: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Mengubah Ekspresi Reguler Menjadi

Automata [4]

• Hasil Akhir

28CS3113/EAR

Page 29: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Mengubah Ekspresi Reguler Menjadi

Automata [5]

• Perhatikan bahwa jika ε dihilangkan akan mendapatkan

hasil yang sederhana.

29CS3113/EAR

Page 30: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Konversi FA ke grammar

• Untuk setiap DFA M=(Q,Σ, δ,q0,F), kita dapat

membentuk tata bahasa reguler G = (T,N,P,S)

yang memiliki aturan produksi sbb:

– A � a– A � a

– A � aB

• A dan B adalah simbol non terminal,

• a dan b adalah simbol terminal

� sedemikian sehingga L(M) = L(G)

30CS3113/EAR

Page 31: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Langkah konversi FA ke Grammar

• Himpunan status Q pada M � himpunan non

terminal N pada G

• Himpunan simbol masukan pada M �

himpunan terminal T pada Ghimpunan terminal T pada G

• Status awal q0 � simbol awal S pada G

• Setiap transisi status δ(A,a) =B menjadi A�aB

• Setiap status akhir P diubah menjadi aturan

produksi P � ε

31CS3113/EAR

Page 32: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• (di kelas)

32CS3113/EAR

Page 33: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Konversi Grammar ke FA

• Dari suatu grammar G = (T,N,P,S) kita dapat

membentuk NFA M=(Q,Σ, δ,q0,F) sedemikian

sehingga L(M) = L(G)

33CS3113/EAR

Page 34: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Langkah konversi grammar ke FA

• Himpunan non terminal N pada G ditambah dengan status tambahan A menjadi himpunan status Q pada M � Q = N U {A}

• Himpunan terminal T menjadi himpunan simbol masukan Σ pada M.

• Simbol awal S pada G menjadi status awal q0 pada M• Simbol awal S pada G menjadi status awal q0 pada M

• Jika P mengandung aturan produksi S � ε, maka F={S,A}. Tetapi kalau tidak, maka F = {A}

• Status A di dalam δ(B,a) jika B � a di dalam P

• δ(B,a) mengandung semua C sedemikian sehingga B�aC didalam P

• δ(A,a)= {} untuk setiap a di dalam T

34CS3113/EAR

Page 35: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• Di kelas

35CS3113/EAR

Page 36: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

FA � regular expression

• Diberikan sebuah DFA M, maka kita dapat

menurunkan ekspresi reguler r yang

menyatakan bahasa yang diterima DFA

tersebut, L(M).tersebut, L(M).

• L = {w | δ(q0, w) di dalam F }

• X0 = L(M) karena

X0 = {w di dalam Σ* | δ(q0, w) di dalam F }

• Xi = U {aXj | qj di dalam (qi,a)}

36CS3113/EAR

Page 37: lecture08 CS3113 EAR regular expression...• Ekspresi regularyang ekuivalen dengan DFA di samping adalah 1111*0 000(0000+1 111)*. • Ekspresi regular tersebut menyatakan bahasa yang

Contoh

• Di kelas

CS3113/EAR 37