Anda di halaman 1dari 3

EKSPRESI REGULAR DAN KELAS BAHASA REGULAR

A. EKSPRESI REGULAR
Sebelum memasuki bahasan tentang ekspresi regular dan bahasa regular,
dapat dinyatakan suatu kenyataan berikut:

Jika ∑ adalah suatu himpunan abjad (yang tentu saja jumlahnya terhingga),
maka:
1. ∑* : himpunan seluruh string yang dapat disusun dari abjad dalam ∑
adalah berjumlah tak hingga (countably infinite).
2. Kumpulan dari semua bahasa yang dapat dibangkitkan dari abjad dalam
∑ berjumlah tak terhitung (uncountably).

Selanjutnya ekspresi regular dapat didefinisikan secara rekursif dari


definisi-definisi berikut:

Definisi Ekspresi Regular:


1.  = {} = (himpunan kosong) adalah ekspresi regular.
2. {ε} = string kosong adalah ekspresi regular.
3. Untuk setiap a∑, maka a adalah ekspresi regular.
4. Jika a dan b adalah ekspresi regular maka ab, ab, dan a* adalah
ekspresi regular.

Selanjutnya untuk menghindari kebingungan perlu dibedakan dengan jelas


antara  yang melambangkan himpunan kosong atau tidak memiliki anggota,
sedangkan {ε} adalah himpunan yang memiliki satu anggota yaitu string
kosong. Notasi ab, ab, dan a* adalah penyederhanaan notasi yang diperoleh
dari notasi asli sebagai berikut:

Jika dimiliki himpunan A dan B sebagai himpunan berikut:


 Ekspresi ab maksudnya:
A = {a} dan B = {b}
ab = gabungan antara himpunan A dengan himpunan B = {a, b}.
Ini dinotasikan dengan singkat sebagai ab.
 Ekspresi ab maksudnya:
A = {a} dan B = {b}
AB = concatenation antara himpunan A dengan himpunan B = {ab}.
Ini dinotasikan dengan singkat sebagai ab.
 Ekspresi a* maksudnya:
A = {a}
A* = Cleene-closure dari himpunan A, yaitu A 0A1A2 .. A∞, yang
menghasilkan suatu himpunan {ε, a, aa, aaa, aaaa, ...},
dinotasikan sebagai a*.

Dari definisi tentang ekspresi regular selanjutnya dapat dituliskan


beberapa akibat logis berdasarkan aturan-aturan dalam teori himpunan,
sebagai berikut:

Jika a, b, dan c adalah ekspresi regular dalam ∑:


1. ab = ba
2. a = a

14
3. aa = a
4. (ab)c = a(bc)
5. aε = εa = a
6. a = a = 
7. (ab)c = a(bc)
8. a(bc) = abac dan (ab)c = acbc
9. a* = a** = a*a* = (εa)* = a*(aε) = (aε)a* = εaa*
10.aa* = a*a

Contoh 1:
Ekspresikan dalam bentuk ekspresi regular kalimat-kalimat berikut:
1. Sederetan bit 0 minimal nol buah.
2. Sederetan bit 0 minimal satu buah.
3. Sederetan bit 0 minimal satu buah diikuti sederetan bit 1 sebanyak satu
buah atau lebih.
4. Sederetan bit 0 dan 1 sebarang yang diawali dengan bit 0 dan diakhiri
dengan 1.
5. Sederetan bit 1 dengan jumlah genap.
6. Sederetan bit 0 dengan jumlah genap diikuti sederetan bit 1 dengan
jumlah ganjil.

Jawab:
1. Ekspresi regular-nya: 0*
2. Ekspresi regular-nya: 00*
3. Ekspresi regular-nya: 00*11*
4. Ekspresi regular-nya: 0(0,1)*1 atau ditulis: 0(01)*1
5. Ekspresi regular-nya: 11(11)*
6. Ekspresi regular-nya: 00(00)*1(11)*

Contoh 2:
String apakah ekspresi-ekspresi regular berikut:
1. Ekspresi: (1,0)*
2. Ekspresi: (10)*
3. Ekspresi: (0,1)*1*
4. Ekspresi: (00)*(11)*
5. Ekspresi: (11)*(00)*

Jawab:
1. Sederetan bit 0 dan 1 dengan jumlah sembarang dan susunan sembarang.
2. Sederetan 10 berulang-ulang dengan jumlah ulangan nol atau lebih.
3. Sederetan bit 0 dan 1 dengan jumlah sembarang urutan sembarang diikuti
dengan deretan bit 1 dengan jumlah nol atau lebih.
4. Sederetan bit 0 kosong atau genap diikuti deretan bit 1 kosong atau
genap.
5. String kosong atau berisi bit 0 genap atau bit 1 genap dengan posisi
sembarang.

B. TATA BAHASA REGULAR


Seperti telah dijelaskan pada pertemuan sebelumnya, bahasa regular
merupakan kelas bahasa yang dibangkitkan oleh tata bahasa regular. Tata
bahasa ini memiliki aturan produksi α  β dengan batasan:

15
α : hanya terdiri dari satu simbol Non-terminal saja, atau αN.
β : dalam bentuk salah satu diantara a, aB, atau ε.
Contoh 3:
Tentukan bahasa yang dihasilkan oleh tata bahasa regular berikut:
G(∑,N,S,P) dimana ∑={a,b}, N={A,B}, dan P={SaS, SaB, SA, Bb, BbB,
Bε, Aa}.

Jawab:
Untuk menurunkan bahasa dari suatu grammar yang diketahui, maka seluruh
kemungkinan penurunan yang dapat dilakukan oleh grammar tersebut harus
dilakukan. String-string yang dihasilkan dihimpun membentuk suatu bahasa
dari grammar tersebut. Untuk mempermudah pelacakan, tetapkan cacah aturan
produksi yang ada, dalam grammar tersebut ada 7 aturan produksi:

1. SaS
2. SaB
3. SA
4. Bb
5. BbB
6. Bε
7. Aa

Kemungkinan 1: aturan produksi (1,1,1,...)(2)(4)  aa*ab


Kemungkinan 2: aturan produksi (1,1,1,...)(2)(6)  aa*a
Kemungkinan 3: aturan produksi (1,1,1,...)(2)(5,5,5,...)(4)  aa*abb*b
Kemungkinan 4: aturan produksi (1,1,1,...)(2)(5,5,5,...)(6)  aa*abb*
Kemungkinan 5: aturan produksi (1,1,1,...)(3)(7)  aa*a

Setelah kemungkinan penurunan seluruhnya dievaluasi selanjutnya hasil


evaluasi yang mungkin sama digabung:
 Kemungkinan 2 dengan kemungkinan 5 adalah sama
 Kemungkinan 1 adalah kemungkinan 2 digandeng dengan b
 Kemungkinan 3 adalah kemungkinan 4 digandeng dengan b

Dengan demikian bahasa yang dihasilkan oleh grammar di atas adalah :


L(G) = {aa*a  aa*ab  aa*abb*  aa*abb*b}
= {(aa*a  aa*abb*)(ε  b)}

C. PENGENAL BAHASA REGULAR


Pengenal pada bahasa regular adalah mesin abstrak yang disebut dengan
otomata berhingga (Finit State Automata – biasa disingkat FSA). Secara
mendetil akan dibahas pada pertemuan selanjutnya.

16

Anda mungkin juga menyukai