6. EKSPRESI REGULER 6.1 Pendahul Pendahuluan uan
Sebuah bahasa dinyatakan regular jika terdapat FSA yang dapat menerimanya. Bahasa bahasa yang yan g dapat diterima oleh FSA bisa dinyatakan secara sederhana dengan ekspresi regular. Pada Pada bab bab ini ini akan akan diba dibaha hass tenta tentang ng teor teorii eksp ekspre resi si regu regula lar, r, nota notasi si ekspr ekspres esii regu regula larr dan penerapannya.
1.1 Tu Tujuan juan Khusus
Setelah mempelajari bab ini mahasiswa diharapkan mampu: . !enyebutkan !enyebutkan penerapan penerapan ekspresi ekspresi regular regular pada pada mesin mesin FSA FSA ". !enuliskan !enuliskan notasi notasi ekspres ekspresii regular regular dan penerapa penerapannya nnya pada mesin FSA. #. !enggambarkan !enggambarkan hubungan hubungan ekspres ekspresii regular regular dengan mesin FSA
1.2 Penerapan Penerapan Ekspresi Ekspresi Reguler Reguler
Bahasa disebut reguler jika terdapat FSA yang dapat menerimanya. Bahasa reguler dinyatakan secara sederhana dengan ekspresi reguler$regular e%pression &'(). *ontoh penerapan : searching string pada +ile '(
FA dengan ε !oe
FA
Definisi ekspresi reguler
/ika Σ merupakan himpunan simbol, maka . ∅ , λ , dan a ∈Σ adalah ekspresi reguler dasar ". jika r dan t masing masing masing masing merupakan merupakan ekspresi ekspresi reguler reguler maka komposis komposisii berikut berikut merupakan merupakan ekspresi reguler : (kspresi r0t
!akna himpunan string gabungan ' ∪2
rt
operasi penyambungan string terhadap himpunan
r 1
3leene closure dari '
&r)
'
!n"!h ekspresi reguler
♦
&40)1 : himpunan seluruh string yang dapat dibentuk dari simbol 546 dan 56
♦
&40)144&40)1 : himpunan string biner yang mengandung paling sedikit satu substring 5446
♦
&40)144 : himpunan string biner yang diakhiri dengan 5446
#ahasa Reguler
Apabila r adalah '(, maka 7&r) adalah bahasa reguler yang dibentuk menggunakan ekspressi reguler r.
!n"!h
2entukan bahasa reguler yang dibentuk oleh r8&aa)1 /awab 7&r)
8
7& &aa)1 )
8
9 λ, aa, aaaa, aaaaaa, ...
8
9 a"n ; n ≥ 4
menyatakan himpunan string a dengan jumlah genap
2entukan bahasa reguler yang dibentuk oleh r8&aa1)&bb)1b /awab 7&r)
8
7& &aa1) &bb)1b )
8
9 aan b"m b ; n,m ≥ 4
Ten"ukan ekspresi reguler pe$%en"uk %ahasa pada
& '()1*) +ai"u
7&r) 8 9 w ∈ Σ1 ; w memiliki substring 5446 /awab r 8 &40)144&40)1
Ten"ukan ekspresi reguler pe$%en"uk %ahasa pada
7&r) 8 9 abnw ; n≥ # , w ∈ 9a , b0
& 'a)%*) +ai"u
,a-a%
r 8 abbb&a0b)&a0b)1 Sifa" #ahasa Reguler ♦
2ertutup terhadap operasi himpunan sederhana /ika 7 dan 7" adalah bahasa reguler, maka 7∪7", 7 ∩7", 77", <&7) dan 71 adalah bahasa reguler juga
♦
2ertutup terhadap homomorphic image. /ika 7 adalah bahasa reguler, maka homomorphic image h&7) adalah bahasa reguler juga. imisalkan Σ dan Γ adalah al+abet, maka +ungsi homomorphic dinyatakan dengan h : Σ → Γ jika w 8 a a" ... an maka h&w) 8 h&a) h&a" ) ... h&an) /ika 7 adalah bahasa pada Σ maka homomorphic image bahasa 7 adalah h&7)8 9 h&w) ; w∈7
*ontoh imisalkan Σ 8 9a,b dan Γ 8 9a,b,c dan dide+inisikan h&a) 8 ab dan h&b) 8bbc homomorphic image bahasa 7 8 9aa,aba adalah h&7)8 9 abab, abbbcab imisalkan Σ 8 9a,b dan Γ 8 9b,c,d dan dide+inisikan h&a) 8 dbcc dan h&b) 8bdc homomorphic image bahasa 7&r) yang dibentuk dari ekspresi reguler r 8 &a0b1)&aa)1 adalah h&7&r)) yang dibentuk dengan ekspresi reguler r 8 &dbcc 0 &bdc)1) &dbccdbcc)1
u%ungan RE dan /0 ♦
Setiap '( ada satu FA dengan ε-moe yang ekuialen
K!nersi ekspresi reguler ke 0S Ekspresi
0S
ε
q 0 =q
∅
q
q
f
q
0
f
a
0
q
f
r3"
s q
R
R
f R
ε
ε
ε
ε
q
0
s
T
T
f T
r"
q0
q f
ε
ε
R
sR
f R
r4
T
sT
ε
ε
q
0
ε
sR
R
ε
f R
ε
q
f
f T
f
Ta"a%ahasa Linier kiri dan linier kanan
Suatu tatabahasa = &2,,S,P) disebut linier kanan jika seluruh aturan produksinya berbentuk A → %B
5
dengan A, B ∈ dan % ∈ 21 Suatu tatabahasa = &2,,S,P) disebut linier kiri jika seluruh aturan produksinya berbentuk A → B%
5
dengan A, B ∈ dan % ∈ 21 2atabahasa reguler bisa bersi+at linier kiri atau linier kanan.
*ontoh 2atabahasa = 8 99S , 9a,b, S , P dengan aturan produksi P adalah
S → abS ;a
adalah tatabahasa linier kanan$reguler
2atabahasa = 8 99S, S,S" , 9a,b, S , P dengan aturan produksi P adalah S → Sab
S→ Sab ; S"
S"→ a
adalah tatabahasa linier kiri $reguler
2atabahasa = 8 99S, A, B , 9a,b, S , P dengan aturan produksi P adalah S → A
A → aB ; λ
B → Ab
adalah bukan tatabahasa reguler
K!nersi D0 ke "a"a%ahasa linier
Setiap FA dapat diubah menjadi tatabahasa yang memiliki aturan produksi yang linier. Aturan pengubahan ini adalah sebagai berikut : ♦
setiap transisi status δ&A,a)8B diubah menjadi aturan produksi A → aB
♦
setiap status akhir P diubah menjadi aturan produksi P→ε
*ontoh FSA berikut
q
0
ε
q
a
1
q
2
q
3
b
2atabahasa linier untuk FSA tersebut yaitu = 8 &9a,b, 9S,S,S",S#,S, P ) dengan aturan produksi P adalah :
S → S
S → aS" S" → bS# S# → ε
K!nersi "a"a%ahasa linier ke D0 ♦
setiap aturan produksi A → aB diubah menjadi transisi status δ&A,a)8B
♦
setiap aturan produksi A → a diubah menjadi δ&A,a)8SF
♦
untuk a ∈ 21 dengan ;a;> dapat dibuat state tambahan
♦
setiap aturan produksi A → B diubah menjadi δ&A,ε)8B
*ontoh tatabahasa = 8 &9a,b,9?4,?, ?4, P ) dengan P : ?4 →a? ? →ab?4 ; b
!esin FSA nya menjadi
V
a
0
b
V
1
b
V
f
a
Pertanyaan mendasar tentang bahasa reguler . Apakah terdapat suatu algoritma untuk menentukan diterima atau tidaknya suatu string pada bahasa 7 @ /awab : A, dengan menggunakan FSA. ". Apakah terdapat suatu algoritma untuk menentukan suatu bahasa reguler kosong, +inite atau in+inite @ /awab : A ♦
dengan FA,
jika terdapat lintasan dari simpul start ke simpul Final, maka bahasa
tersebut tidak kosong. ♦
*ari simpul simpul yang membentuk siklus. /ika terdapat lintasan dari simpul start ke simpul Final yang melalui simpul yang membentuk siklus, maka bahasa tersebut in+inite. /ika tidak, maka bahasa tersebut +inite.
Penerapan ekspresi reguler ♦
igunakan untuk memerinci unit-unit leksikal sebuah bah asa pemrograman &token). contoh ekspresi reguler 5bilangan real positi+6 &400...0)&400...0)1.&400...0) &400...0)1 contoh ekspresi reguler 5bilangan bulat6 &506 0 6-5 0 λ) &400...0)&400...0)1
♦
(ditor te%t
Pu$ping le$$a
Apabila suatu bahasa merupakan bahasa reguler maka akan dapat diterima oleh mesin FA !8&C,Σ,δ,D4,F), dengan sejumlah state n. Apabila string w dengan ;w; ≥ n diinputkan dalam FA, maka pasti ada simpul k dalam FA yang dikunjungi lebih dari satu kali. Apabila string diantara simpul k yang sama tersebut 5dipompa6, maka sisanya pasti masih diterima oleh FA tersebut.
*ontoh Bahasa yang menerima ekspresi reguler 4&4)1
q
0
0
q
1
1
0
3
q
4
2
Ambil string w∈7 , dengan ;w;≥ n: w8 44 D4 4 D
D"
4
D
D#
DE
♦
simpul D dikunjungi " kali.
♦
string diantara simbol D tersebut 5dipompa6 keluar D4 4 D
♦
1
1 q
♦
q
D#
DE
string 4 tersebut masih dapat diterima oleh FSA.
Secara +ormal !isal 7 adalah sebuah bahasa reguler in+inite, maka terdapat sebuah konstanta n dengan si+at bahwa jika w adalah sebuah string dalam 7 yang panjangnya lebih besar atau sama dengan n maka kita bisa menulis w8u% sedemikian sehingga ui% ∈ 7 untuk semua i ≥ 4. dengan ;;≥ dan ;u;≤n . otasi matematisnya
z ∈ L ∧ z ≥ n ⇒ ( ∀ L ) ( ∃n ) ( ∀z ) ( ∃u, v , w) ( z = uvw ∧ uv ≤ n ∧ v ≥ ∧ ( ∀i ) ( uv
i
w ∈ L) )
Penjelasan ♦
!engidenti+ikasi si+at yang harus dimiliki oleh suatu bahasa reguler.
♦
*ara untuk menentukan apakah sebuah bahasa tidak reguler
♦
ntuk memperlihatkan bahwa suatu bahasa in+inite tidak reguler, maka kita tunjukkan bahwa untuk nilai n yang cukup besar, sekurang-kurangnya satu untai yang panjangnya n atau lebih besar gagal untuk dapat 5dipompa6.
*ontoh : 78
9aiG" ; i≥ 9a, aE,a, aH, ... 9a , aaaa , aaaaaaaaa , aaaaaaaaaaaaaaaa, ...
Suatu string dalam 7 harus mempunyai panjang yang berupa nilai kuadrat &,E,,H, ..., n", ...)
!isal bahwa 7 adalah bahasa reguler. Perhatikan bahwa terdapat sebuah nilai n sedemikian sehingga anG" ∈7, !enurut pumping lemma dapat kita tuliskan anG" 8u%, sedemikian hingga ♦
≤;;≤ n
♦
&∀i) &uiw ∈7)
karena ;;≥ maka jelas bahwa ;uw;I;u"w;I;u"w;I ... ambil i8" maka kita dapatkan n" 8 ;uw; I ;u"w; ≤ n" 0 n I &n0)" /elas n" I ;u"w; I &n0)" Panjang ;u"w; bukan merupakan kuadrat sempurna, karena berada diantara " nilai kuadrat sempurna yang berurutan.
berarti u"w ∉ 7 /adi disimpulkan bahwa
9aiG" ; i≥ bukan merupakan bahasa reguler.
78
1. Rangku$an
Jubungan antara FA, FA dan ekspresi regular dapat digambarkan sebagai suatu mata rantai yang saling berhubungan, dimana FA dapat diterapkan pada mesin FA, FA dapat diterapkan bagi ekspresi regular, ekspresi regular dapat diterapkan pada FA dengan K-moe, dan FA dengan K-moe dapat diterapkan pada mesin FA.
1.7 La"ihan8
. *arilah seluruh string pada 7&&a0b)1b&a0ab)1) dengan panjang string kurang dari E. ". 2uliskanlah notasi untuk ekspresi regular-ekspresi regular di bawah ini : a) Sederetan a dengan panjang minimal b) Sederatan a dengan panjang minimal nol dan diakhiri dengan b c) a atau b dengan panjang minimal nol d) Sederetan ab dengan panjang minimal nol ". Bagaimanakah mengungkapkan kalimat untuk ekspresi regular berikut a) 9a,b b) 9ab c) 9ab1 d) 9a1b e) 9a1,b +) 9a,b1 g) 9a1b1 h) 9a1,b1 #. 2entukan bahasa yang dihasilkan oleh tata bahasa regular berikut : =&Σ, , S, P) L dimana Σ 89 a,b
8 9 A, B dan jika aturan produksi
masing-masing bahasa adalah sebagai berikut : a) P 89 S
aS L S
b) P 89 S
aS L S
c) P 89 S
aS L S
d) P 89 S
aS L S
ε
a
B L B bBL B b
εLS
B L B bBL B
ε
e) P 89 S
aS L S
B L B bBL B
ε
E. 2entukan bahasa yang dihasilkan oleh tata bahasa regular berikut : =&Σ, , S, P) L dimana Σ 89 a,b,c
8 9 A, B, * dan jika aturan produksi
masing-masing bahasa adalah sebagai berikut : a) P 89 S
aA L A
aAL A bBL B bBL B
c*L *
c*L *
b) P 89 S
aA L A
aAL A bBL B bBL B
c*L *
c*L *
c) P 89 S
aA L A bBL B
c*L *
P 89 S
aA L A bBL B
c*L *
d)
c*L *
ε
ε
ε
εL B
ε