2. 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.
3. 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.
4. Penerapan Ekspresi Reguler
Beberapa penerapan Ekspresi Reguler yang nampak
biasa digunakan untuk :
• Parsing
• Validasi Input
• Find and Replace
5. Penerapan Ekspresi Reguler
Contoh penerapan yang lain adalah :
• Pembatasan data masukan yang diperkenankan,
misalnya suatu field masukan hanya menerima input
bilangan (0..9)
6. Notasi Ekspresi Reguler
• Clean Closure (*) → termasuk hampa
• Positive Closure (+) → tanpa hampa
• Union ( ∪ atau + ) → berarti atau
• Concatenation ( . ) → gabungan, notasi bisa tidak
ditulis
( )
Ž ) ,
Ajc_l Ajmqspc NmqgrgtcAjmqspc Sl gml Sl gml Aml a_rcl _rgml
7. 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
8. 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
9. 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
10. Notasi Ekspresi Reguler
Concatenation ( . ) (Konkatenasi, titik tidak ditulis)
"karakter dipisahkan oleh tanda titik, namun
biasanya tanda titik tersebut tidak ditulis."
Contoh :
ER : a.b. => ab
ER : a.b.c. => abc
ER : 0.1.0. => 010
11. 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".
19. 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
20. 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
21. Membuat DFA dari Ekspresi Reguler
• Kedua, Membuat Mesin NFA
NFA untuk ER : ( 0 ∪ 1 )* 00
22. Membuat DFA dari Ekspresi Reguler
• Ketiga, Membuat Tabel Transisi untuk NFA
NFA untuk ER : ( 0 ∪ 1 )* 00
. /
q0 { q0 , q1 } { q0 }
q1 { q2 } θ
q2 θ θ
23. Membuat DFA dari Ekspresi Reguler
• Keempat, Membuat mesin DFA
. /
q0 { q0 , q1 } { q0 }
q1 { q2 } θ
q2 θ θ
DFA untuk ER : ( 0 Ž 1 )* 00
24. 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
25. 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 )
26. 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.
27. 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".
28. 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
30. 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)*