23
PERTEMUAN 5 TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

  • Upload
    trandan

  • View
    520

  • Download
    11

Embed Size (px)

Citation preview

Page 1: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

PERTEMUAN 5

TEORI BAHASA DAN OTOMATA

[TBO]

Page 2: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Ekspresi Regular (1) Sebuah bahasa dinyatakan regular jika

terdapat finite state automata yang dapatmenerimanya.

Bahasa-bahasa yang diterima oleh suatu finitestate automata bisa dinyatakan secarasederhana dengan ekspresi regular (regularexpression).

Ekspresi regular selanjutnya disebut sebagaiER, memungkinkan menspesifikasikan ataumendefinisikan bahasa-bahasa.

Page 3: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Ekspresi Regular (2) Ekspresi regular memberikan suatu pola

(pattern) atau template untuk untai/stringdari suatu bahasa.

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

Banyak masalah pada perancangan perangkatlunak yang bisa disederhanakan denganmelakukan pengubahan notasi ekspresiregular ke dalam implementasi komputer darifinite state automata yang bersangkutan.

Page 4: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Ekspresi Regular (3) Penerapan ekspresi regular yang tampak

misalnya pencarian (searching) untai karakter(string) pada suatu file, biasanya fasilitas iniada pada text editor. Dalam kasus itudilakukan penerapan finite state automatapada untai-untai yang terdapat dalam filetersebut.

Contoh penerapan yang lain adalahpembatasan data masukan yangdiperkenankan, misalnya suatu field masukanhanya menerima input bilangan (0..9)

Page 5: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

FSA yang menerima bilangan integer tak bertanda

Bila dalam bahasa Indonesia bisa dikatakanbahwa otomata pada gambar menerima masukansymbol input antara 0 sampai 9 sedang ekspresiregularnya dinyatakan sebagai berikut:

(digit)digit)*

Page 6: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Penerapan Ekspresi Regular (1)

Dalam suatu kompilator, ekspresi regular bisadiaplikasikan untuk melakukan analisisleksikal, yaitu mengidentifikasikan unit-unitleksikal yang dikenal dalam program.

Unit leksikal ini biasanya disebut dengantoken.

Token-token pada suatu bahasa pemrogramankebanyakan tanpa kecuali dinyatakan sebagaiekspresi regular.

Misalkan suatu identifier baik huruf besar atauhuruf kecil yang kemudian diikuti huruf ataudigit, dengan tanpa pembatasan jumlahpanjang bisa dinyatakan sebagai:

(huruf)(huruf+digit)*

Page 7: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Penerapan Ekspresi Regular (2)

Contoh otomata pada gambar 2 bergunamengenali identifier, bila huruf A..Z, a..z, dandigit berupa 0..9.

Bila dalam bahasa FORTRAN dibatasi panjangidentifier maksimal 6 (enam), maka ekspresiregular untuk identifier pada FORTRAN bisadinyatakan sebagai:

(huruf)(huruf+digit)5

Dalam implementasinya suatu finite stateautomata akan diterjemahkan menjadi kodedalam sebuah bahasa pemrograman.

Page 8: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

FSA mengenali identifier

Gambar 2

Page 9: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Notasi Ekspresi Regular

* (karakter asterisk)

Berarti bisa tidak muncul, bisa juga munculberhingga 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

Page 10: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Contoh ekspresi regular (1)

ER: ab*cc

contoh string yang dibangkitkan : abcc,abbcc, abbbcc, abbbbcc, acc (b bisatidak muncul atau muncul sejumlahberhingga kali)

ER: 010*

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

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

Page 11: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Contoh ekspresi regular (2) 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*(ingat ‘’ berarti atau)

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

ER: (ab)

contoh string yang dibangkitkan: a, b

Page 12: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Contoh ekspresi regular (3) ER: (ab)*

contoh string yang dibangkitkan: a, b, ab,ba, abb, bba, aaaa, bbbb (untai yangmemuat a atau b)

* perhatikan : notasi ‘’ kadang dituliskanjuga sebagai ‘+’

ER: 01*+0

contoh string yang dibangkitkan: 0, 01, 011,0111, 01111, (string yang berawalan dengan0, dan selanjutnya boleh diikuti deretan 1)

Page 13: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

Hubungan ER dan FSA Untuk setiap ekspresi regular ada satu Non-

deterministic Finite Automata dengan transisi (NFA -move) yang ekivalen.

Sementara untuk Deterministic FiniteAutomata ada satu ekspresi regular daribahasa yang diterima oleh DeterministicFinite Automata.

Sederhananya kita bisa membuat suatu Non-deterministic Finite Automata -move darisuatu ekspresi regular.

Bisa dilihat contohnya pada gambar 3-5.Yang perlu diperhatikan disitu, state akhirakan menandakan apakah suatu inputditerima atau tidak.

Page 14: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

NFA -move untuk ER: ab

Gambar 3

Page 15: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

NFA -move untuk ER: a*b

Gambar 4

Page 16: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

NFA -move untuk ER: a b

Kemudian dari Non-deterministic Finite Automata -move tersebut dapat kita ubah ke Non-deterministicFinite Automata dan selanjutnya ke DeterministicFinite Automata, atau prosesnya sebagai berikut:

NFA -move NFA DFA

Gambar 5

Page 17: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

HUBUNGAN ANTARADFA, NFA, DAN ER

Hubungan antara Non-deterministicFinite Automata, Deterministic FiniteAutomata, dan ekspresi regular bisadigambarkan seperti gambar berikut ini.

NFA

DFA

EkspresiRegular

NFA -move

Page 18: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

CONTOH 1

Membuat mesin Deterministic Finite Automatayang menerima bahasa yang berupa semuastring yang berakhiran dengan ‘00’. Diketahui, = (0,1)

Pertama buat ekspresi regularnya:

(0+1)*00 atau (0 1)*00

Dari ekspresi regular tersebut lebih mudahmembuat Non-deterministic Finite Automata,lebih dahulu, dari pada langsung DeterministicFinite Automata

Page 19: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

CONTOH 2

Membuat mesin Deterministic Finite Automatayang menerima bahasa berupa semua stringyang memuat minimal dua nol berturutan(‘00’). Diketahui = (0,1)

Perhatikan perbedaannya dengan soalsebelumnya. Disini tidak ditentukan letak ‘00’.Buat ekspresi regularnya:

(0+1)*00(0+1)*

Page 20: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

CONTOH 3

Membuat mesin Deterministic Finite Automatayang menerima bahasa berupa semua stringdimana symbol ketiga dari kanan adalah ‘1’.Diketahui = (0,1)

Buat ekspresi regularnya:

(0+1)*1(0+1)(0+1)

Page 21: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

CONTOH 4

Membuat mesin Deterministic Finite Automatayang menerima bahasa yang berupa 4(empat) symbol yang minimal memuat 2(dua) buah ‘0’ (yang tidak perlu berturutan).Diketahui = (0,1)

Disini agak kesulitan membuat ekspresiregular dari permasalahan tersebut.

Maka coba langsung mengkonstruksiDeterministic Finite Automata-nya denganjalan melihat semua kemungkinan yang ada.

Page 22: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

CONTOH 4 Lanjt..

Kemungkinan pertama adalah dua buah nolterletak di paling ujung

Kemungkinan kedua adalah dua buah nolterletak di paling awal

Kemungkinan ketiga untuk tiga symbolpertama sudah memuat dua buah nol

Kemungkinan keempat bila tiga symbol

pertama baru memuat satu buah nol

Page 23: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · terdapat finite state automata yang dapat ... Contoh penerapan yang lain adalah pembatasan data masukan yang diperkenankan,

LATIHAN (Waktu pengumpulan 1 minggu)

Buatlah FSA (DFA, NFA, NFA -Move) dari ER berikut ini:

1. 010*

2. 0(10)

3. 0(10)*

4. 01*0

5. 0*10*

6. a(ba)*

7. (ab)*

8. 01*10*11*

9. a(ba*a(ba*b)*)

10. a(ba)*ab*(abab*)*