• Tidak ada hasil yang ditemukan

Teori Bahasa dan Automata

N/A
N/A
Protected

Academic year: 2018

Membagikan "Teori Bahasa dan Automata"

Copied!
21
0
0

Teks penuh

(1)

Teori Bahasa dan Automata

BAHASA REGULAR & Ekspresi Regular

By

(2)

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

(3)

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 persamaan

(

equivalency

)

Bentuk tulisan cepat tertentu juga biasanya digunakan

dengan alternasi (khususnya ellips)

– E.g. <letter> ::= a | b | … | z | A | B | … | Z

(4)

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>+

» this implies a word consists of one or more

(5)

Ekspresi Regular

Ekuivalensi

Non Deterministic Finite Automata ke

(6)

 Sebuah bahasa dinyatakan regular jika terdapat fnite state

automata yang dapat menerimanya

 Bahasa-bahasa yang diterima oleh suatu fnite state automata

bisa dinyatakan secara sederhana dengan ekspresi regular

(regular expression)  ER.

 Memberikan suatu pola (pattern) atau template untuk string dari

suatu bahasa

 String yang menyusun suatu bahasa regular akan cocok (match)

dengan pola bahasa itu

 Penerapan ekspresi regular yang tampak misalnya string search

pada suatu file, biasanya fasilitas ini ada pada text editor.

(7)

 Contoh : Suatu feld masukan hanya menerima input bilangan

(0..9).

Ekspresi Regular – Introduction

q1 q0 q2 0,1,2,… 9 0,1,…9 selain 0,1,2, …9 selain 0,1,2, …9

FSA menerima bilangan integer tak bertanda

Ekrspresi Regular yang dihasilkan adalah

(digit) (digit)*

(8)

 ER juga dapat diaplikasikan untuk melakukan analisis leksikal

dalam sebuah kompilator. Yaitu mengidentifikasikan unit-unit leksikal (token) yang dikenal dalam program.

Token-token pada suatu bahasa pemrograman kebanyakan tanpa

kecuali dinyatakan sebagai sebuah ER .

 Contoh: Suatu identifer baik huruf besar atau huruf kecil yang

kemudian diikuti huruf atau digit, dengan tanpa pembatasan jumlah panjang bisa dinyatakan sebagai:

(huruf)(huruf+digit)*

Ekspresi Regular – Introduction

q1

(9)

Terdapat 5 notasi dalam ER 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

(10)

 ER: ab*cc

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

 ER: 010*

Contoh string : 01, 010, 0100, 01000

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

 ER: a*d

Contoh string : d, ad, aad, aaad

 ER: a+d

Contoh string: ad, aad, aaad --- (a minimal muncul sekali)

(11)

 ER: a*b* (ingat ‘’ berarti atau)

Contoh string : a, b, aa, bb, aaa, bbb, aaaa, bbbb

 ER: (ab) --- Contoh string: a, b  ER: (ab)*

Contoh string : a, b, ab, ba, abb, bba, aaaa, bbbb (string yang memuat a atau b)

---- * perhatikan : notasi ‘’ kadang dituliskan juga sebagai ‘+’

--- ER: 01*+0

Contoh string: 0, 01, 011, 0111, 01111,

(string yang berawalan dengan 0, dan selanjutnya boleh diikuti

(12)

q2 q0 a q1 b

Konstruksi NFA Dari ER Yang

Ditentukan

NFA untuk ER: ab

q1 q0

q2 a

b

NFA untuk ER: a b

q0 q1

0, 1

0

untuk ER: 0

(13)

Dari sebuah mesin

Non-deterministic Finite Automata

dapat

dibuat mesin

Deterministic Finite Automata

-nya yang

ekivalen (bersesuaian)

Ekivalen disini artinya mampu menerima bahasa yang sama

L(M1) = L(M2)

Ekuivalensi NFA ke DFA

q2 q1 q0

0

1

0,1

0,1 q0 q1

0

(14)

Membuat tabel transisi

Mulai dari

state

awal

Ikuti transisinya untuk membentuk

state-state

baru

Untuk setiap

state

yang terbentuk diikuti lagi transisinya

sampai ter’cover’ semua

(15)

Ekuivalensi NFA ke DFA – Contoh

q1 q0

0,1

1 0

1

Mesin otomata NFA

0 1

q0  q0, q1

 q1,

q1  q0,

q1

(16)

Mulai dari

state

awal (

q

0

)

Ekuivalensi NFA ke DFA – Contoh

q0

state

q

0

bila memperoleh

input

0 menjadi

state

q

0

, q

1

state

q

0

bila memperoleh

input

1 menjadi

state

q

1,

q0, q1 q0

q1

0 1

Hasil dari penelusuran q0

(17)

Ikuti transisinya untuk membentuk

state-state

baru

Ekuivalensi NFA ke DFA – Contoh

• state q1 bila memperoleh input 0 menjadi state

• state q1 bila memperoleh input 1 menjadi state q0, q1

• state q0, q1 bila memperoleh input 0 menjadi state q0,

q1, ini di peroleh dari  (q0,0)= q0, q1 di gabung dengan

 (q1,0) =, maka hasilnya  (q0, q1, 0) =q0, q1

• state q0, q1 bila memperoleh input 1 menjadi state q0, q1,

ini di peroleh dari  (q0,1)= q1 di gabung dengan  (q1,1) = q0, q1,

(18)

Hasil setelah penelusuran

q1 dan q0, q1

Ekuivalensi NFA ke DFA – Contoh

*  merupakan sebuah state

q0, q1 q0

q1

0 1  0 1 0,1

State  menerima input 0 atau 1 menjadi state ,

atau  (,1)= 

Telusuri

state

q0, q1 q0

q1

(19)

Dari NFA, kita tahu bahwa himpunan state akhir adalah

q

1

,

maka pada DFA yg dihasilkan

state-state

akhir merupakan

semua

state

yg mengandung

q

1

.

F = {{q

1

}, {q

0,

q

1

}}

Ekuivalensi NFA ke DFA – Contoh

q0

0 1

0

1

0,1

0,1

q1

(20)

Pembuktian : String ‘001’

Dari diagram NFA kita bisa lihat bahwa ∂(q

0

,001) dapat

diterima oleh NFA tsb.

Untuk DFA kita lihat:

∂(q

0

,001) = ∂(

q

0

, q

1

,01)= ∂ (

q

0

, q

1

,1)=

q

0

, q

1

Karena

state

q

0

, q

1

termasuk

stat

e akhir, maka berarti

strin

g tersebut diterima.

(21)

End of Session

Referensi

Dokumen terkait

tingkat kedua, yaitu mengenali pola-pola pada Finite State Automata tingkat kedua. Fungsi ini pada dasarnya sama dengan fungsi prosesFA1, hanya saja input yang

Finite automata adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana

Pada prakteknya ketiga penyederhanaan tersebut ( penghilangan useless, unit,  ) dilakukan bersama pada suatu tata bahasa bebas konteks, yang nantinya menyiapkan

Deterministic Finite Automata (DFA) Input Tape String Output “Terima” atau “Tolak” Finite Automaton.. Untuk menerima

Jika terhadap sebuah language tidak bisa dibuatkan regular expression yang menghasilkan string-string language tersebut dan juga tidak bisa dibuatkan finite automaton yang menerima

Untuk mendefinisikan suatu bahasa formal, kita dapat menggunakan graf transisi sebagai elternatif dari Finite Automata, ekspresi regular, dan mesin permodelan yang

Berdasarkan data yang diperoleh, dari 30 mahasiswa yang pernah mengambil mata kuliah Teori Bahasa Otomata khususnya materi Push Down pada Finate Automata, dapat

• NFA memiliki kemampuan untuk berada pada beberapa state pada waktu yang sama.. • Transisi dari suatu state