Transcript bhsregular.

Pertemuan 3
BAHASA REGULAR
Bahasa Reguler
1
PENDAHULUAN




Sebuah bahasa dinyatakan regular jika terdapat finite
state automata (FSA) yang dapat menerimanya.
Bahasa-bahasa yang diterima oleh FSA bisa dinyatakan
secara sederhana dengan ekspresi regular (regular
expression).
Ekspresi regular memberikan suatu pola (pattern) atau
template untuk untai/string dari suatu bahasa.
Banyak masalah pada perangkat lunak yang bisa
disederhanakan dengan melakukan pengubahan notasi
ekspresi regular ke dalam implementasi komputer dari
FSA yang bersangkutan.
Bahasa Reguler
2
PENDAHULUAN


Contoh : Finite State Automata untuk mengenal bilangan
bulat /integer tidak bertanda
Ekspresi Regularnya adalah : misal 0..9 disimbolkan
sebagai digit, maka ERnya adalah : (digit)(digit)*
Bahasa Reguler
3
PENDAHULUAN


Bahasa regular adalah penyusun ekspresi reguler
(ER)
Ekspresi reguler terdiri dari kombinasi simbol-simbol
atomik menggunakan 3 operasi yaitu :
– katenasi,
– alternasi, dan
– repetisi /closure


Pada kasus scanner, simbol-simbol atomik adalah
karakter-karakter di dalam program sumber.
Dua buah ekspresi regular adalah ekuivalen jika
keduanya menyatakan bahasa yang sama
Bahasa Reguler
4
NOTASI EKSPRESI REGULAR




Supescript * : berarti bisa tidak muncul, bisa juga
muncul berhingga kali (0-n)
Superscript + : berarti minimal muncul satu kali (1-n)
+ : berarti union atau bisa diganti dengan notasi U
. : berarti konkatenasi, biasanya tanpa ditulis titiknya,
misal ab sama dengan a.b
Bahasa Reguler
5
Operasi Regular - katenasi

Katenasi /konkatenasi atau sequencing
disajikan dengan physical adjacency
- e.g. ekspresi regular ‘<letter> <digit>’ bentuk
penyajian sederhana (diasumsikan sebagai definisi
yang jelas dari letter dan digit) komposisi terurut
dari letter diikuti dengan digit
- “<” dan “>” digunakan untuk mengidentifikasi
simbol-simbol yang merepresentasikan simbolsimbol spesifik (menggunakan ekspresi regular)
- Kita bisa menggunakan “::=” (ekivalensi) untuk
menggabungkan ekspresi regular yang
didefinisikan dengan <letter> dan <digit>
Bahasa Reguler
6
Operasi Regular - katenasi

Concatenation adalah penyambungan dua buah
string.
Diberikan dua string : x = abc, dan y = 123
Contoh : concate(xy) = x.y = xy = abc123 ,
x. ε = x = abc
A = {cat,dog} dan B {house}, maka A . B =
{cathouse, doghouse}
A.(ε) = (ε) . A = A
bersifat asosiatif : x(yz) = (xy)z
Bahasa Reguler
7
Operasi Regular - alternasi

Alternasi membolehkan pilihan dari beberapa
pilihan dan biasanya disajikan dengan
operator ‘|’
– E.g. <digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
» contoh yang menggunakan juga operator
ekivalensi

Bentuk tulisan cepat tertentu juga biasanya
digunakan dengan alternasi (khususnya ellips)
– E.g. <letter> ::= a | b | … | z | A | B | … | Z
» Can use the ellipses (“…”) when a sequence is well defined
Bahasa Reguler
8
Operasi Regular - alternasi

Alternation adalah pilihan satu di antara dua buah string.
Contoh : alternate(xy) = x | y = abc atau 123
Tiga sifat aljabar alternation :
♦ Operasi alternation bersifat komutatif : x | y = y | x
♦ Operasi alternation bersifat asosiatif :
x | (y | z) = (x | y) | z
♦ Elemen identitas operasi alternation adalah dirinya
sendiri : x | x = x
♦ Sifat distributif concatenation terhadap alternation :
x (y | z) = xy | xz
Bahasa Reguler
9
Operasi Regular - repetisi


Terakhir, repetisi membolehkan ekspresi dari
kontruksi yang diulang beberapa kali
Terdapat 2 operator yang digunakan yaitu
superscript ‘+’ dan superscript ‘*’
– E.g. <word> ::= <letter>+
» ini menyatakan sebuah kata terdiri atas
satu atau lebih huruf (* akan menyatakan
nol atau lebih huruf-huruf dan sebuah kata
harus paling sedikit memiliki satu huruf
sehingga kita menggunakan +)
Bahasa Reguler
10
Ekivalensi/Kesamaan ER [1]
Contoh :
L1  a ba
n
L 2  a ba
n

m
| n  1, m  1  er  a ba
m
| n  0 , m  0  er  a ba

*

*
Perhatikan bahwa kita tidak bisa membuat
ekspresi regular dari bahasa L3  a n ba m | n  1
atau L4  a n ba m | n  0, karena keduanya tidak
dihasilkan dari grammar regular.
Bahasa Reguler
11
Ekivalensi/kesamaan ER[2]

(a b)* a = a (b a)*
Bukti :
(a b)* a = ((ab)(abab)…) a
= ( a(aba)(ababa)…)
= (a|(aba)|(ababa)|…)
= a ((ba)(baba)…)
= a (b a)*
Bahasa Reguler
12
AUTOMATA HINGGA (AH)

AH didefinisikan sebagai pasangan 5 tupel :
(K, V T , M, S, Z).
K : himpunan hingga stata,
V T : himpunan hingga simbol input (alfabet)
M : fungsi transisi, menggambarkan transisi stata AH
akibat pembacaan simbol input.
Fungsi transisi ini biasanya diberikan dalam
bentuk tabel.
S ∈ K : stata awal
Z ⊂ K : himpunan stata penerima
Bahasa Reguler
13
AUTOMATA HINGGA (AH)

Ada dua jenis automata hingga : deterministik (AHD,
DFA = deterministic finite automata) dan non
deterministik (AHN, NFA = non deterministik finite
automata).
- AHD : transisi stata AH akibat pembacaan sebuah
simbol bersifat tertentu.
M ( AHD ) : K x V T  K
- AHN : transisi stata AH akibat pembacaan sebuah
simbol bersifat tak tentu.
M ( AHN ) : K x VT  2
Bahasa Reguler
K
14
AUTOMATA HINGGA DETERMINISTIK(AHD)

Berikut ini sebuah contoh AHD F(K, V T , M, S,
Z), dimana : K  q 0 , q1 , q 2 
V T  a, b 
S  q0
Z  q 0 , q1 

M diberikan dalam tabel berikut:
Bahasa Reguler
15
AUTOMATA HINGGA DETERMINISTIK(AHD)



Ilustrasi graf untuk AHD F adalah sbb :
Lambang stata awal adalah node dengan anak panah.
Lambang stata akhir/penerima adalah node ganda.
Contoh kalimat yang diterima AHD : a, b, aa, ab, ba, aba, bab,
abab, baba
Contoh kalimat yang tidak diterima AHD : bb, abb, abba
Bahasa Reguler
16
AUTOMATA HINGGA NONDETERMINISTIK(AHN)

Berikut ini sebuah contoh AHN F(K, V T , M, S, Z),
dimana :
K  q 0 , q1 , q 2 , q 3 , q 4 
V T  a, b, c 
S  q0
Z  q 4 

M diberikan dalam tabel berikut:
Bahasa Reguler
17
AUTOMATA HINGGA NONDETERMINISTIK(AHN)



Ilustrasi graf untuk AHN F adalah sebagai berikut :
Contoh kalimat yang diterima AHN di atas : aa, bb, cc, aaa, abb,
bcc, cbb
Contoh kalimat yang tidak diterima AHN di atas : a, b, c, ab, ba,
ac, bc
Bahasa Reguler
18
AUTOMATA HINGGA NONDETERMINISTIK(AHN)



Sebuah kalimat di terima AHN jika :
• salah satu tracing-nya berakhir di stata penerima,
atau
• himpunan stata setelah membaca string tersebut
mengandung stata penerima
Contoh :
Telusurilah, apakah kalimat-kalimat berikut diterima
AHN : ab
M ( q 0 , ab )  M ( q 0 , b )  M ( q 1 , b )  q 0 , q 2   q1   q 0 , q1 , q 2 
Himpunan stata tidak mengandung stata penerima ⇒
kalimat ab tidak diterima
Bahasa Reguler
19
AHN DENGAN TRANSISI HAMPA


Perhatikan AHN berikut
AHN di atas mengandung ruas dengan bobot ε.
AHN demikian dinamakan AHN dengan transisi
ε, atau singkatnya AHN-ε. AHN-ε di atas
menerima bahasa
i j
L  1 0 | i, j  0 
Bahasa Reguler
20
Ekivalensi AHN, AHD, dan GR

AHD bisa dibentuk dari AHN.
GR bisa dibentuk dari AHD.

AHN bisa dibentuk dari GR.

Bahasa Reguler
21
Pembentukan AHD dari AHN
Diberikan sebuah AHN F = (K, V T , M, S, Z). Akan dibentuk
sebuah AHD F’ = (K’, V T ’, M’, S’, Z’) dari AHN F tersebut.
Algoritma pembentukannya adalah sbb. :
1. Tetapkan : S’ = S dan V T ’ = V T
2. Copykan tabel AHN F sebagai tabel AHD F’. Mula-mula K’ = K
dan M’ = M
3. Setiap stata q yang merupakan nilai (atau peta) dari fungsi M
dan q  K, ditetapkan sebagai elemen baru dari K’. Tempatkan
q tersebut pada kolom Stata M’, lakukan pemetaan
berdasarkan fungsi M
4. Ulangi langkah 3 di atas sampai tidak diperoleh stata baru
5. Elemen Z’ adalah semua stata yang mengandung stata elemen
Z.
Bahasa Reguler
22
Pembentukan GR dari AHD
Diketahui sebuah AHD F = (K, V, M, S,Z). Akan dibentuk GR G =
(V’,V, S’, Q).
Algoritma pembentukan GR dari AHD adalah sebagai berikut :

Tetapkan V’ = V, S’ = S, V = S

Jika A, A K dan a  V, maka :
M(A, a) = A ekuivalen dengan produksi :
Bahasa Reguler
23
Pembentukan AHN dari GR
Diketahui GR G = (V,V, S, Q). Akan dibentuk AHN F =
(K,V’, M, S’, Z).
Algoritma pembentukan AHN dari GR :
 Tetapkan
V’ = V, S’ = S, K = V
 Produksi
A  a A ekuivalen dengan M(A, a) = A
Produksi A  a ekuivalen dengan M(A, a) = X,
dimana X  V
 K = = K  {X}
 Z = {X}
Bahasa Reguler
24
Ekivalensi AHN- Dengan ER (Ekspresi Regular)
Bahasa Reguler
25