Anda di halaman 1dari 15

MAKALAH

EKSPRESI REGULER PADA AUTOMATA

DISUSUN OLEH:
KELOMPOK 5
ARDIANSYAH

20142205026

MUH. DENI

20142205062

MUH. SAKTI ML

20142205010

BERNADED LIMUN

20142205017

STMIK AKBA
Makassar
2016

KATA PENGANTAR

Puji syukur kehadirat Tuhan YME. yang menjadi pelindung dalam segala aktifitas
penulis dan menguatkan daya semangat penulis sehingga dapat menyelesaikan makalah ini
sebagai salah satu tugas dan penilaian dalam mata kuliah otomata.
Meskipun dalam penyusunan makalah ini, banyak menghadapi berbagai macam
hambatan, rintangan dan tantangan yang harus dilalui, tetapi berkat pertolongan Tuhan YME.
dan berbagai pihak sehingga makalah ini dapat terselesaikan.
Dengan segala keterbatasan waktu dan kemampuan yang ada, penulis menyadari
bahwa penulisan ini masih sangat jauh dari kesempurnaan. Oleh karena itu, kritikan dan saran
sangat Penulis harapkan. Semoga hal ini dapat bermanfaat bagi seluruh rekan-rekan pembaca.
Amin.

Makassar, 30 November 2016

Kelompok 5

DAFTAR ISI

Halaman
KATA PENGANTAR .....................................................................................

DAFTAR ISI ...................................................................................................

ii

BAB I PENDAHULUAN ..............................................................................

1.1 Latar Belakang ..............................................................................


1.2 Rumusan Masalah .........................................................................
1.3 Batasan Masalah ...........................................................................
1.4 Tujuan dan Manfaat ......................................................................

1
1
1
1

BAB II PEMBAHASAN ...............................................................................

2.1 Penerapan Ekpresi Reguler ...........................................................


2.2 Notasi Ekpresi Reguler ..................................................................
2.3 Bahasa Reguler ..............................................................................
2.4 Hubungan Ekspresi Regular dan Finite State Automata ................

2
3
5
5

BAB III PENUTUP ......................................................................................

11

3.1 Kesimpulan ...................................................................................


3.2 Saran .............................................................................................

11
11

DAFTAR PUSTAKA

BAB I PENDAHULUAN
1.1 Latar Belakang
Mempelajari setiap aspek yang berkaitan dengan logika merupakan hal yang sangat
penting untuk bisa memahami ilmu komputer terutama dalam membangun sebuah
program. Bahasa-bahasa program yang ada merupakan salah satu hal yang harus
dipelajari dengan teliti mengingat bahasa komputer sangat kritis dalam penggunaannya
dalam membuat sebuah program.
Teori Bahasa dan Automata merupakan salah satu mata kuliah yang sangat penting
dipelajari dalam tahapan memahami dan menguasai komputerisasi dan pemrograman.
Dimana dalam salah satu sub pokok pembahasannya terdapat materi Ekspresi Reguler.
Hal inilah yang melatar belakangi penulis untuk membuat makalah dengan judul
Ekspresi Reguler pada Automata. Dengan makalah ini, diharapkan penulis dan pembaca
dapat lebih memahami tentang teori bahasa dan automata.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan diatas, maka penulis membuat
rumusan masalah yakni apa yang dimaksud dengan Ekspresi Reguler. Rumusan ini
yang akan menjadi pokok pembahasan dan pengembangan materi dalam makalah ini.
1.3 Batasan Masalah
Untuk menghindari pembahasan diluar pokok masalah atau rumusan masalah yang telah
ada, maka ditetapkan batasan masalah sebagai lingkup pembahasan dalam makalah ini
yakni
a.
b.
c.
d.

Penerapan ekspresi reguler


Notasi dasar pada ekspresi reguler
Bahasa Reguler
Hubungan antara FSA dan Ekspresi Reguler

Adapun istilah-istilah yang dipaparkan dalam makalah diluar dari materi pokok adalah
sebatas membantu penjelasan dalam materi.
1.4 Tujuan dan Manfaat
Tujuan dari penulisan makalah ini adalah untuk lebih memahami materi ekspresi reguler
sebagai sub pokok bahasan dan kaitannya dengan Teori bahasa dan Automata. Adapun
tujuan lain dari penulisan makalah ini adalah sebagai salah satu tugas untuk lulus dari
mata kuliah Teori Bahasa dan Automata.
Dengan penulisan makalah ini, diharapkan mahasiswa baik penulis maupun pembaca
dapat lebih memahami tentang Ekspresi Reguler dan penerapannya dalam ilmu bahasa
dan komputerisasi.

BAB II PEMBAHASAN
EKSPRESI REGULAR
2.1 Penerapan Ekspresi Regular
Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat
menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan
secara sederhana dengan ekspresi regular (regular expression).

Ekspresi regular selanjutnya kita sebut sebagai ER, memungkinkan menspesifikasikan


atau mendefinisikan bahasa-bahasa.

Ekspresi regular memberikan suatu pola (pattern) atau template untuk untai/string
dari suatu bahasa.

Untai yang menyusun suatu bahasa regular akan cocok (match) dengan pola bahasa
itu.

Banyak masalah pada perancangan perangkat lunak yang bisa disederhanakan dalam dengan
melakukan pengubahan notasi ekspresi regular ke dalam implementasi computer dari finite
state automata yang bersangkutan.
Penerapan ekspresi regular misalnya : pencarian (searching) untai karakter (string) pada
suatu file, biasanya fasilitas ini ada pada text editor.
Dalam kasus itu dilakukan penerapan finite state automata pada untai-untai yang terdapat
dalam file tersebut.
Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan, misalnya
suatu field masukan hanya menerima input bilangan (0..9). Bisa kita lihat otomatanya pada
gambar 1.

q0

0,1,2,9

selain
0,1,2,9

0,1,9

q1

selain
0,1,2,9

q2

Gambar 1. FSA menerima bilangan integer tak bertanda

Bila dalam bahasa Indonesia bisa dikatakan bahwa otomata pada gambar menerima masukan
symbol input antara 0 sampai 9 sedang ekspresi regularnya dinyatakan sebagai berikut:
(digit)digit)*
dengan digit adalah 0..9

Dalam suatu kompilator, ekspresi regular bisa diaplikasikan untk melakukan analisis leksikal,
yaitu mengidentifikasikan unit-unit leksikal yang dikenal dalam program. Unit leksikal ini
biasanya disebut dengan token. Token-token pada suatu bahsa pemrograman kebanyakan
tanpa kecuali dinyatakan sebagai ekspresi regular . Misalkan suatu identifier baik huruf besar
atau huruf kecil yang kemudian diikuti huruf atau digit, dengan tanpa pembatasan jumlah
panjang bisa dinyatakan sebagai:
(huruf)(huruf+digit)*
Contoh otomata pada gambar 2 berguna mengenali identifier, bila huruf A..Z, a..z, dan digit
berupa 0..9.

Bila dalam bahasa FORTRAN dibatasi panjang identifier maksimal 6 (enam), maka ekspresi
regular untuk identifier pada FORTRAN bisa dinyatakan sebagai:
(huruf)(huruf+digit)5

Dalam implementasinya suatu finite state automata akan diterjemahkan menjadi kode dalam
sebuah bahasa pemrograman.

huruf atau digit


huruf

q0

q1

Gambar 2. FSA mengenali identifier

2.2 Notasi Ekspresi Regular


Notasi dasar Ekspresi Reguler ( * + + .) yaitu :

* (karakter asterisk), berarti bisa tidak muncul, bisa juga muncul berhingga kali (0-n)
+

(pada posisi superscript/diatas) berarti minimal muncul satu kali (1-n)

+ atau berarti union


. (titik) berarti konkatensi, biasanya titik bisa dihilangkan,
misal ab bermakna seperti a.b

Contoh ekspresi regular


(selanjutnya kita singkat ER):

ER: ab*cc

contoh string yang dibangkitkan : abcc, abbcc, abbbcc, abbbbcc, acc, (b bisa tidak muncul
atau muncul sejumlah berhingga kali)

ER: 010*

contoh string yang dibangkitkan : 01, 010, 0100, 01000


(jumlah 0 diujung bisa tidak muncul, bisa muncul berhingga kali)

ER: a*d

contoh string yang dibangkitkan : d, ad, aad, aaad

ER: a+d

contoh string yang dibangkitkan: ad, aad, aaad


(a minimal muncul sekali)

ER: a*b*( berarti atau)

contoh string yang dibangkitkan: a, b, aa, bb, aaa, bbb, aaaa, bbbb

ER: (ab)

contoh string yang dibangkitkan: a, b

ER: (ab)*

contoh string yang dibangkitkan: a, b, ab, ba, abb, bba, aaaa, bbbb
(untai yang memuat a atau b)
* perhatikan : notasi kadang dituliskan juga sebagai +

ER: 01*+0

contoh string yang dibangkitkan: 0, 01, 011, 0111, 01111,


(string yang berawalan dengan 0, dan selanjutnya boleh diikuti deretan 1)

2.3 Bahasa Regular


Misalkan merupakan sebuah abjad. Kumpulan dari bahasa regular berdasar didefinisikan
secara rekursif sebagai berikut [1] :
a.
b.
c.
d.

adalah sebuah bahasa regular


{} adalah sebuah bahasa regular
untuk setiap a , {a} merupakan bahasa regular. Disebut juga bahasa singleton
Jika A dan B bahasa regular maka AB, A.B, dan A* atau B* merupakan bahasa

regular.
e. Tidak ada bahasa lain berdasarkan yang regular.
Contoh 1 : Misalkan = {a,b}, maka berikut ini merupakan bahasa-bahasa regular
berdasarkan yaitu , {},{a},{b},{a,b},{ab},{a,ab,b},{ai | i 0}, {(ab)i | i 0}

2.4 Hubungan Ekspresi Regular dan Finite State Automata.


Untuk setiap ekspresi regular ada satu Non-deterministic Finite Automata dengan transisi
(NFA -move) yang ekivalen. Sementara untuk Deterministic Finite Automata ada satu
ekspresi regular dari bahasa yang diterima oleh Deterministic Finite Automata. Sederhananya
kita bisa membuat suatu Non-deterministic Finite Automata -move dari suatu ekspresi
regular. Bisa dilihat contohnya pada gambar 3,4,5. Yang perlu diperhatikan disitu, state akhir
akan menandakan apakah suatu input diterima atau tidak.

q0

q1

q2

q3

Gambar 3. NFA -move untuk ER: ab


a

q1

q0

q2
b

Gambar 4. NFA -move untuk ER: a*b

q0

q1

q2

q3

q4

q5

Gambar 5. NFA -move untuk ER: a b

Kemudian dari Non-deterministic Finite Automata -move tersebut dapat kita ubah ke Nondeterministic Finite Automata dan selanjutnya ke Deterministic Finite Automata, atau
prosesnya sebagai berikut:
NFA -move NFA DFA
Bila ekspresi regularnya cukup sederhana kita bisa saja langsung mengkonstruksi NFA-nya,
tanpa melalui NFA -move. Misalkan saja NFA tanpa -move untuk ER: ab bisa dilihat pada
gambar 6.

q0

q1

q2

Gambar 6. NFA untuk ER: ab

q0

q1

q2

Gambar 7. NFA untuk ER: a b


Contoh-contoh lain bisa dilihat pada gambar 8 sampai 15

0
0

q0

q1

q2

Gambar 8. NFA untuk ER: 010*

q0

0,1

q1

q2

Gambar 9. NFA untuk ER: 0 (10)


0,1
0

q0

q1

Gambar 10. NFA untuk ER: 0 (10)*

1
0

q0

q1

q2

Gambar 11. NFA untuk ER: 01*0

q0

0
1

q1

Gambar 12. NFA untuk ER: 0*10

q0

Gambar 13. NFA untuk ER: a*

q0

q1

Gambar 14. NFA untuk ER: a (ba)*


a

q1

q0
b

Gambar 15. NFA untuk ER: (ab)*


Dari sebuah finite state automata (NFA atau DFA) kita bisa menentukan ekspresi regular
yang diterima oleh otomata bersangkutan. Terdapat langkah-langkah secara formal untuk
menentukan ekspresi regular dari suatu finite state automata, tetapi kita bisa juga secara
langsung menentukan ekspresi regular-nya dengan mengamati perilaku dari otomata tersebut.
Kita lihat dari gambar 16, input yang menuju pada final state (q2) adalah 0 atau 10*1, pada
state q2 menerima input 1 dalam jumlah berapapun (1*) akan tetap di q 2. bisa dikatakan
mesin itu menerima 01* atau 10*11*, yang dinyatakan dalam ekspresi regular

01*10*11*

0
1

q0

q1

1
1

q2

Gambar 16. Mesin FSA


Pada gambar 17 kita lihat final state adalah q 2 dan q3. Input menuju q3 adalah ab dengan di q3
bisa menerima a*, sehingga bila digabung menjadi aba*. Input yang menuju q 2 adalah aa,
selanjutnya dari q2 menerima ba* b kembali ke q2, sehingga bila digabung menjadi aa(ba*b)*.
Akhirnya kita peroleh ekspresi regular untuk gambar17: aba*aa(ba*b)*, bisa pula
dipersingkat menjadi:

a(ba*a(ba*b)*)

q0

q1

q3

a
a

q2

q4

Gambar 17. Mesin FSA

Pada gambar 18 input yang menuju final state (q2) adalah a(ba*)a, karena dari q1 bila
menerima (ba)* kembali ke q1 lagi. Di q2 bila menerima b* tetap di q2. Selanjutnya menerima
(aba) kembali ke q2, dan di q2 bila menerima b* tetap di q2, atau digabung (abab*). Maka
ekspresi regularnya:
a(ba)*ab*(abab*)*

10

b
a

q1

q0

q2

q3

b
a

Gambar 18. Mesin FSA

q4

11

BAB III PENUTUP


3.1 Kesimpulan
Adapun kesimpulan yang didapatkan dari penulisan makalah ini diantaranya:
a. Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat
menerimanya.
b. Bahasa-bahasa yang diterima oleh suatu FSA bisa dinyatakan secara sederhana
dengan ekspresi regular.
c. Ekspresi Regular (ER), memungkinkan menspesifikasikan atau mendefinisikan
bahasa-bahasa.
d. Notasi ekspresi reguler terdiri dari simbol + , , *, dan ..
e. Hubungan Ekspresi Regular dan Finite State Automata adalah:
Untuk setiap ER ada satu NFA -move yang ekivalen.
Untuk setiap DFA ada satu ER dari bahasa yang diterima oleh DFA

3.2 Saran
Sangat penting untuk memahami Ekspresi reguler karena materi ini sangat berkaitan
dengan automata dan merupakan notasi untuk mendefinisikan bahasa.

DAFTAR PUSTAKA
. (2011). Bahasa Reguler. URL: situz-go.blogspot.com/2011/04/bahasareguler.html. Diakses pada (April 2013)

IR. NIXON ERZED, MT. (2013). TEORI BAHASA DAN AUTOMATA. Pusat
Pengembangan Bahan Ajar - UMB

Gading Kencana , S.Kom (2013). Teori Bahasa dan Automata Fakultas.


Komputer- Universitas Cokroaminoto Palopo.

Teknik

Anda mungkin juga menyukai