tugas tba kelompok 1 kelas b
Post on 01-Nov-2014
194 Views
Preview:
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