Transcript Regex

REGEX
Teknik Informatika STTA
2013
Yenni Astuti, S.T., M.Eng.
Regular expressions
• FSA (NFSA atau DFSA) merupakan cetak biru
(blueprint) untuk membuat suatu mesin yang
dapat mengenali regular language (RL).
• Regex merupakan cara pendeklarasian RL yang
ramah pengguna (user-friendly).
• Contoh: 01* + 10*
Regular expressions
• Regex digunakan, misalnya pada:
• Perintah grep UNIX
• Tools Lex (Lexical analyzer generator) dan
Flex (Fast Lex) UNIX
• Regular Language Finite Automata
• Regular Language  Regular Expressions
• Finite Automata  Regular Expressions
• Regular Language Finite Automata
• Regular Language  Regular Expressions
• Finite Automata  Regular Expressions
• Regular Language Finite Automata
• Regular Language  Regular Expressions
• Finite Automata  Regular Expressions
Review (Operasi Bahasa)
• Gabungan (Union)
L  M = {w | w  L atau w  M}
• Sambungan (Konkatenasi)
LM = {w | w = xy, x  L atau y  M}
• Pangkat
L0 = {}, L1 = L, Lk+1 = LLk
• Klosur
𝑖
L* = ∞
𝐿
𝑖=0
Regular Language & Regular Expressions
Contoh 1:
r = (a + b.c)*
L(r) = {a,bc}*
L(r) = {, a,bc, aa, abc, bca, …}
Regular Language & Regular Expressions
Contoh 2:
r = (a + b)*(a + bb)
L(r) = {a, bb, aa, abb, ba, bbb, …}
Regular Language & Regular Expressions
Contoh 3:
r = (aa)*(bb)*b
L(r) = {a2nb2mb | n,m ≥ 0}
Regular Language & Regular Expressions
Contoh 4:
r = (aa)*(bb)*b
L(r) = {a2nb2mb | n,m ≥ 0}
Regular Language & Regular Expressions
Contoh 5:
r = (0+1)*00(0+1)*
L(r) = {semua string yang memiliki
sekurangnya dua 0 berurutan}
Regular Language & Regular Expressions
Contoh 6:
r  (1  01) * (0   )
r = (1+01)*(0+)*
L(r) = {semua string tanpa dua 0
berurutan}
• Regular Language Finite Automata
• Regular Language  Regular Expressions
• Finite Automata  Regular Expressions
DFSA & RE
Contoh 1:
• Buatlah RE dari DFSA berikut
• Konversikan dalam bentuk RE
DFSA & RE
• Konversi dalam bentuk RE
• Eliminasi Keadaan 1, menjadi:
DFSA & RE
• Eliminasi Keadaan 1
• RE dari DFSA : (0+10)*11(0+1)*
DFSA & RE
Contoh 2:
• Buatlah RE dari DFSA yang dapat menerima 1
berjumlah genap
• Eliminasi Keadaan 2, menjadi
DFSA & RE
• Dua keadaan akhir, matikan Keadaan 3 dahulu!
• Hasilnya 0* karena yang menuju Keadaan 3 tidak
akan diterima FSA
DFSA & RE
• Selanjutnya, matikan Keadaan 1!
• Hasilnya 0*10*1(0+10*1)
DFSA & RE
• Dikombinasikan dengan hasil sebelumnya,
menjadi: 0*+0*10*1(0+10*1)