tugas tba kelompok 1 kelas b

Post on 01-Nov-2014

194 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Reguler

Teori Bahasa dan Automata (TBA)Ekspresi

Pengertian Ekspresi Reguler

Ekspresi Reguler adalah :• notasi yang digunakan dalam manipulasi teks dan

data, atau ;• notasi fleksibel dan ringkas untuk menemukan dan

menggantikan pola teks

Sebuah bahasa dinyatakan reguler jika terdapat finite state automata (FSA) yang dapat menerimanya.

Penerapan Ekspresi Reguler

Bahasa yang diterima oleh suatu FSA bisa dinyatakan secara sederhana dengan Ekspresi Reguler (ER).

ER memberikan suatu pola (pattern) atau template untuk untai/string dari suatu bahasa.

Untai yang menyusun bahasa reguler akan cocok (match) dengan pola bahasa itu.

Penerapan Ekspresi Reguler

Beberapa penerapan Ekspresi Reguler yang nampak biasa digunakan untuk :

• Parsing• Validasi Input• Find and Replace

Penerapan Ekspresi Reguler

Contoh penerapan yang lain adalah : • Pembatasan data masukan yang diperkenankan,

misalnya suatu field masukan hanya menerima input bilangan (0..9)

Notasi Ekspresi Reguler

• Clean Closure (*) → termasuk hampa• Positive Closure (+) → tanpa hampa• Union ( ∪ atau + ) → berarti atau• Concatenation ( . ) → gabungan, notasi bisa tidak

ditulis

( ) Ž ) ,Ajc_l Ajmqspc Nmqgrgtc Ajmqspc Sl gml Sl gml Aml a_rcl _rgml

Notasi Ekspresi Reguler

Clean Closure ( * ) => ( baca : asterisk )"karakter bisa tidak muncul, bisa juga muncul berhingga kali ( 0 - n )".

Contoh :• ER : ab*c => ac, abc, abbc, abbbc, abbbbc• ER : 010* => 01, 010, 0100, 01000, 010000• ER : a*dc => dc, adc, aadc, aaadc, aaaadc

Notasi Ekspresi Reguler

Positive Closure (+) => ( + pada posisi superscript )"karakter muncul minimal satu kali, hingga n kali.(1-n)".

Contoh :• ER : a+d => ad, aad, aaad, aaaad, aaaaad• ER : adc+ => adc, adcc, adccc, adcccc, adccccc• ER : 01+0 => 010, 0110, 01110, 011110, 0111110

Notasi Ekspresi Reguler

Union ( ∪ atau + ) "union berarti atau, akan memilih salah satu dari karakter yang di hubungkan dengan tanda union".

Contoh :• ER : a ∪ b => a, b• ER : a* ∪ b => b, a, aa, aaa, aaaa, aaaaa• ER : 01* + 0 => 0, 01, 011, 0111, 01111

Notasi Ekspresi Reguler

Concatenation ( . ) (Konkatenasi, titik tidak ditulis)"karakter dipisahkan oleh tanda titik, namun biasanya tanda titik tersebut tidak ditulis."

Contoh :ER : a.b. => abER : a.b.c. => abcER : 0.1.0. => 010

Hubungan Ekspresi Reguler dan FSA

• Untuk setiap ekspresi reguler ada satu Non-deterministic Finite Automata dengan transisi є (NFA є-move) yang ekuilvalen

• Sementara untuk setiap Deterministic Finite Automata ada satu Ekspresi Reguler dari bahasa yang diterima oleh Deterministic Finite Automata.

Sederhananya, "kita bisa membuat suatu Non-deterministic Finite Automata dari suatu ekspresi reguler".

Hubungan Ekspresi Reguler dan FSA

NFA є-move untuk ER : ab

NFA є-move untuk ER : a ∪ b

Hubungan Ekspresi Reguler dan FSA

FA untuk ER : ab

FA untuk ER : a ∪ b

Hubungan Ekspresi Reguler dan FSA

Contoh-Contoh NFA untuk ER

NFA untuk ER : 010*

NFA untuk ER : 01*0

Hubungan Ekspresi Reguler dan FSA

Contoh-Contoh NFA untuk ER

NFA untuk ER : 0 ( 1 ∪ 0 )*

NFA untuk ER : 0 ( 1 ∪ 0 )

Hubungan Ekspresi Reguler dan FSA

Contoh-Contoh NFA untuk ER

NFA untuk ER : 0*10*

NFA untuk ER : a*

Hubungan Ekspresi Reguler dan FSA

Contoh-Contoh NFA untuk ER

NFA untuk ER : a (ba)*

NFA untuk ER : (ab)*

Hubungan Ekspresi Reguler dan FSA

EkspresiReguler

NFA

NFAє-moveDFA

Membuat DFA dari Ekspresi Reguler

Langkah yang digunakan Untuk membuat Deterministic Finite Automata dari Ekspresi Reguler adalah :

• Membuat Ekspresi Reguler• Membuat Mesin NFA• Membuat Tabel Transisi untuk NFA• Membuat Mesin DFA• Melakukan Pengecekan DFA

ER NFA Tabel Transisi DFA Cek-DFA

Membuat DFA dari Ekspresi Reguler

Contoh Permasalahan :"kita ingin membuat DFA yang menerima bahasa yang berupa semua string yang berakhiran dengan '00'. Diketahui ∑ = ( 0, 1 )".

Cara Penyelesaian :• Pertama, kita buat Ekspresi Reguler-nya :

( 0 Ž 1 )* 00

Membuat DFA dari Ekspresi Reguler

• Kedua, Membuat Mesin NFA

NFA untuk ER : ( 0 ∪ 1 )* 00

Membuat DFA dari Ekspresi Reguler

• Ketiga, Membuat Tabel Transisi untuk NFA

NFA untuk ER : ( 0 ∪ 1 )* 00

. /q0 { q0 , q1 } { q0 }

q1 { q2 } θq2 θ θ

Membuat DFA dari Ekspresi Reguler

• Keempat, Membuat mesin DFA . /

q0 { q0 , q1 } { q0 }

q1 { q2 } θq2 θ θ

DFA untuk ER : ( 0 Ž 1 )* 00

Membuat DFA dari Ekspresi Reguler

• Kelima, Melakukan Pengecekan DFA

DFA untuk ER : ( 0 Ž 1 )* 00

"Cek DFA yang sudah dibuat dengan melihat apakah untai/string dari hasil ER berikut bisa diterima atau tidak"

00, 100,000, 0100, 0000, 1100

Review

1. Apa yang dimaksud dengan Ekspresi Reguler, FSA, NFA dan DFA ?

2. Bagaimana hubungan antara Ekspresi Reguler dengan FSA ?3. Sebutkan Himpunan String yang memenuhi :

ER : 10*(1+0)*11 !4. Tuliskan Himpunan String yang memenuhi NFA Berikut !

5. Buatlah DFA yang menerima bahasa berupa semua string, yang memuat minimal dua nol berurutan. Dik : ∑ = ( 0, 1 )

Review (1)

1. Apa yang dimaksud dengan Ekspresi Reguler, FSA, NFA dan DFA ?

• Ekspresi Reguler adalah notasi yang digunakan dalam manipulasi teks dan data untuk menemukan dan menggantikan pola teks.

• FSA (Finite State Automata) adalah Model matematika yang dapat menerima input dan mengeluarkan output. FSA merupakan bagian Mesin automata dari bahasa reguler yang terdiri atas NFA dan DFA

• NFA (Non-Deterministic Finite Automata) adalah bagian FSA yang memungkingkan satu simbol menimbulkan transisi ke lebih dari satu kondisi dan memberikan beberapa kemungkinan gerakan sehingga keluarannya tidak dapat dipastikan.

• DFA (Deterministic Finite Automata) adalah bagian FSA yang memungkinkan dari suatu state ada tepat satu state berikutnya untuk setiap simbol input (masukan) yang di terima.

Review (2) 2. Bagaimana hubungan antara Ekspresi Reguler dengan

FSA ?

• Untuk setiap ekspresi reguler ada satu Non-deterministic Finite Automata dengan transisi (NFA є-move) yang ekuilvalen

• Sementara untuk setiap Deterministic Finite Automata ada satu Ekspresi Reguler dari bahasa yang diterima oleh Deterministic Finite Automata.

• Sederhananya, "kita bisa membuat suatu Non-deterministic Finite Automata dari suatu ekspresi reguler".

Review (3)

3. Sebutkan Himpunan String yang memenuhi :ER : 10(1+0)0*1 !

Himpunan String yang memenuhi adalah ER : 10(1+0)0*1 :

Jika antara (1+0) dipilih 0, maka sting yg terbentuk :1001, 10001, 100001, 1000001, 10000001, 1000000...1

Jika antara (1+0) dipilih 1, maka sting yg terbentuk :1011, 10101, 101001, 1010001, 10100001, 1010000...1

Review (4) 4. Tuliskan Himpunan String yang memenuhi NFA Berikut !

Himpunan String yang memenuhi adalah :• 0100, 0101, 0110, 0111, 1100, 1101, 1110, 1111,• 00100, 00101, 00110, 00111, 11100, 11101, 11110, 11111,• 000100, 000101, 000110, 000111, 111100, 111101, 111110,

111111,• 0000100, 0000101, 0000110, 0000111, 1111100, 1111101,

1111110, 1111111,

Review (5)5. Buatlah DFA yang menerima bahasa berupa semua string,

dimana simbol ketiga dari kanan adalah 1. Dik : ∑ = ( 0, 1 )

Ekspresi Reguler :

NFA untuk ER : (0+1)*00(0+1)*

ER : (0+1)*00(0+1)*

Review (5) . /

q0 { q0 , q1 } { q0 }

q1 { q2 } θ

q2 { q2 } { q2 }

DFA untuk ER : (0+1)*00(0+1)*

00, 100, 001, 000, 0100, 0100, 1001, 0000, 1100, 0011, 1010011, 110011

Tabel Transisi

top related