• Tidak ada hasil yang ditemukan

REGULAR EXPRESSION ADE CHANDRA SAPUTRA S.KOM.,M.CS

N/A
N/A
Protected

Academic year: 2021

Membagikan "REGULAR EXPRESSION ADE CHANDRA SAPUTRA S.KOM.,M.CS"

Copied!
38
0
0

Teks penuh

(1)

REGULAR

EXPRESSION

ADE CHANDRA SAPUTRA S.KOM.,M.CS

T I U N PA R (A d e C S )

(2)

Buku

 John E. Hopcroft, Rajeev Motwani

, Jeffrey D. Ullman. 2001.

Introduction to Automata Theory, Languange , and Computation. Edisi ke-2. Addison-Wesley

T I U N PA R (A d e C S )

(3)

Pendahuluan

 Tata Bahasa Reguler Chomsky:

 Aturan :

 Simbol pada sebelah kiri harus berupa sebuah

simbol variabel

 Simbol pada sebelah kanan maksimal hanya

memiliki sebuah simbol variabel dan bila ada hanya terletak di posisi paling kanan

T I U N PA R (A d e C S )

(4)

Contoh Tata Bahasa

Reguler

 A  b (diterima)

 a  B (ditolak, karena simbol pada sebelah kiri

harus berupa simbol variabel)

 A  B (diterima)

 A  Bc (Ditolak, karena simbol variabel pd

sebelah kanan hrs berada pd posisi paling kanan)  A  bcD (diterima) T I U N PA R (A d e C S )

(5)

 Tentukan apakah produksi2 berikut memenuhi aturan

tata bahasa Reguler :

 A  b  B  bdB  B  C  B  bC  B  Ad  B  bcdef  B  bcdefg  A  aSa  A  aSS  A   T I U N PA R (A d e C S )

(6)

Ekspresi Regular

 Bahasa dinyatakan regular  finite state

automata yg menerima

Bahasa2 yg diterima oleh suatu finite state

automata bisa dinyatakan secara sederhana

dgn Ekspresi Regular

Contoh pemakaian ER adalah pd suatu text

editor T I U N PA R (A d e C S )

(7)

(5 + 3)

4

Ekspresi Aritmatika

Ekspresi Reguler

(0

1)0*

32

semua string

yang berawal

dengan string 0

atau 1, diikuti

sembarang

jumlah 0

T I U N PA R (A d e C S )

(8)

Notasi Ekspresi Regular

 _* yaitu karakter asterik, berarti bisa tidak

muncul, bisa juga muncul dari satu kali

 _+ berarti minimal muncul satu kali

 + atau U berarti union

 . (titik / dot) berarti konkatenasi

T I U N PA R (A d e C S )

(9)

Bahasa Regular VS

Ekpresi Regular

Bahasa Reguler Reguler Expression

{a} a {b} b {a,b} a.b {a,b} = {a} U {b} a U b {a}* a* {a}+ a+ Ø Ø {} {} T I U N PA R (A d e C S )

(10)

Contoh ER

 ER : ab * cc

Cth string yg dibangkitkan : abcc, abbcc, abbbcc,

abbbbcc, acc

 ER : 010*

Cth string yg dibangkitkan : 01, 010, 0100, 01000

 ER : a*d

Cth string yg dibangkitkan : d, ad, aad, aaad

 ER : a+d

Cth string yg dibangkitkan : ad, aad, aaad

T I U N PA R (A d e C S )

(11)

Contoh ER

 ER : a* U b* (U berarti atau)

Contoh string yg dibangkitkan : a, b , aa, bb, aaa,

bbb, dst

 ER : a U b

Contoh string yg dibangkitkan : a , b

 ER : 01* + 0

Contoh string yg dibangkitkan : 0 , 01, 011, 0111,

01111 T I U N PA R (A d e C S )

(12)

Ekspresi Reguler

Operasi reguler yang digunakan untuk membentuk suatu bahasa (language).

Operasi Reguler:

 

(Union)

2. . (konkatenasi)

3. * (closure)

T I U N PA R (A d e C S )

(13)

Language dari (0

1)0*

 (0  1) = ({0}  {1})

 0* = {0}*  semua string yang anggotanya simbol 0.

 (0  1)0* = (0  1) . 0*  L = {00, 10, 000, 100, 0000, 1000, … } T I U N PA R (A d e C S )

(14)

Language dari (0

1)*

 Ekspresi ini dapat dituliskan sebagai *, dengan

 = {0,1}

 L = {0, 1, 00, 01, 10, 11, … }

 Kalau diteruskan (3 digit) menjadi :

 {….,000,001,010,011,100,101,110,111,……} T I U N PA R (A d e C S )

(15)

Prioritas Operasi

Aritmatika   (perkalian) 2. + (penambahan)

Reguler

1. * (operasi bintang)

2. . (sambungan)

 

(union/ gabungan)

T I U N PA R (A d e C S )

(16)

Definisi Matematis

Ekspresi Reguler

R merupakan ekspresi reguler jika R adalah:

1. a, dengan a anggota alfabet .

 .  .

4. (R1  R2) dengan R1 dan R2 merupakan

ekspresi reguler.

5. R1 . R2 dengan R1 dan R2 merupakan ekspresi

reguler.

6. (R1)*, dengan R1 merupakan ekspresi reguler.

T I U N PA R (A d e C S )

(17)

Contoh Ekspresi Reguler

 = {0,1}

1. 0*10* = {w|w memiliki tepat satu 1}

 *1 * = {w|w memiliki sekurangnya satu 1}

 *001 * = {w|w memiliki substring 001}

4. (  )* = {w|panjang w adalah kelipatan tiga}

5. 01  10 = {01, 10} 6. (0  )(1  ) = {, 0, 1, 01} T I U N PA R (A d e C S )

(18)

Operasi Identitas R

 R   = R

Penggabungan bahasa kosong ke sembarang bahasa tidak akan mengubah R.

 R ○  = R

Penyambungan string kosong ke sembarang string tidak akan mengubah R. T I U N PA R (A d e C S )

(19)

Aplikasi Ekspresi Reguler

• Identifikasi pola suatu bahasa

• Pengecekan alamat e-mail

fsa@yahoo.com

Unpar@gmail.com

• pertamina@pertamina.co.id

T I U N PA R (A d e C S )

(20)

Pengeceka

n Alamat

Email

[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a-z|0-9]+([_][a-z|

0-9]+)*)?

T I U N PA R (A d e C S )

(21)

Ekivalensi RE dan FA

RE dan FA memiliki kemampuan yang sama dalam

menggambarkan perilaku suatu sistem transisi.

RE dapat diubah dalam bentuk FA

yang dapat mengenali bahasa yang

sama.

T I U N PA R (A d e C S )

(22)

RE menjadi NFA

1

 Jika R = a untuk sembarang a pada .

Maka L(R) = {a}

q

0 a

q

1 T I U N PA R (A d e C S )

(23)

RE menjadi NFA

2  Jika R = , Maka L(R) = {}  Jika R = , Maka L(R) = 

q

0

q

0 T I U N PA R (A d e C S )

(24)

RE menjadi NFA

3  R = R1  R2  R = R1 . R2  R = R1* T I U N PA R (A d e C S )

(25)

Contoh: RE menjadi FA

1

R = (ab  a)*

Cari NFA ekivalennya yang diberi nama NFA N.

a

a

b

b

T I U N PA R (A d e C S )

(26)

Contoh: RE menjadi FA

2

R = (ab  a)*

Cari NFA ekivalennya yang diberi nama NFA N.

ab

a  b

ab

a

a  b a   T I U N PA R (A d e C S )

(27)

Contoh: RE menjadi FA

3

R = (ab  a)*

Cari NFA ekivalennya yang diberi nama NFA N.

(ab

a)*

a  b a     T I U N PA R (A d e C S )

(28)

Contoh: RE menjadi FA

4

R = (a  b)* aba

Cari NFA ekivalennya yang diberi nama NFA N1.

a

a

b

b

T I U N PA R (A d e C S )

(29)

Contoh: RE menjadi FA

5

R = (a  b)* aba

Cari NFA ekivalennya yang diberi nama NFA N1.

a

b

a b   T I U N PA R (A d e C S )

(30)

Contoh: RE menjadi FA

5

R = (a  b)* aba

Cari NFA ekivalennya yang diberi nama NFA N1.

(a

b)*

 a b     T I U N PA R (A d e C S )

(31)

Contoh: RE menjadi FA

6

R = (a  b)* aba

Cari NFA ekivalennya yang diberi nama NFA N1.

aba

a  b  a T I U N PA R (A d e C S )

(32)

Contoh: RE menjadi FA

6

R = (a  b)* aba

Cari NFA ekivalennya yang diberi nama NFA N1.

(a

b)* aba

T I U N PA R (A d e C S )

(33)

FA menjadi RE

1

q

i

q

j

q

r

R

4

R

1

R

3

R

2

q

j

q

i

(R

1

)(R

2

)*(R

3

)

(R

4

)

BEFORE

AFTER

T I U N PA R (A d e C S )

(34)

DFA menjadi RE

2

1

2

a

a, b

b

(a)

1

a

a

a

b

b

s

2

(b)

T I U N PA R (A d e C S )

(35)

DFA menjadi RE

3 T I U N PA R (A d e C S )

1

a

a

b (a

b)*

s

(c)

a

a*b (a

b)*

s

(d)

(36)

Latihan

Deskripsikan Himpunan string dalam RE yang diterima oleh FNA 1 2 T I U N PA R (A d e C S )

(37)

3 4 T I U N PA R (A d e C S )

(38)

TERIMA KASIH

T I U N PA R (A d e C S )

Referensi

Dokumen terkait

maka digunakan fungsi aktivasi sigmoid biner.. b) Selanjutnya menyusun data set (kumpulan data) yang akan digunakan untuk. pelatihan dan pengujian. Dalam menyusun data

Alat dan bahan penelitian yang dipersiapkan yaitu perangkat yang digunakan untuk membuat sistem peramalan berbasis desktop , serta data- data yang telah diperoleh

Selanjutnya untuk instrumen penilaian, IMI, merupakan kuesioner yang terdiri dari 18 pertanyaan dan terbagi ke dalam empat subskala yang bisa digunakan untuk mengukur

instrumen yang digunakan dalam rangka verifikasi dan validasi ahli terhadap perancangan multimedia interaktif berbasis cloud untuk pembelajaran yang dikembangkan

Instrumen yang digunakan dalam rangka verifikasi dan validasi ahli terhadap perancangan media pembantu pembelajaran berbasis cloud computing untuk pembelajaran

Bahasa Pemrograman C adalah sebuah bahasa pemrograman komputer yang bisa digunakan untuk membuat berbagai aplikasi (general-purpose programming language), mulai dari sistem

• Operator adalah suatu simbol yang berfungsi untuk menyusun sebuah ekspresi maupun operasi. Operator digunakan untuk memanipulasi nilai suatu variabel. Variabel yang

Bahasa Pemrograman C adalah sebuah bahasa pemrograman komputer yang bisa digunakan untuk membuat berbagai aplikasi (general-purpose programming language), mulai dari sistem