TEORI BAHASA DAN OTOMATA [TBO]

dokumen-dokumen yang mirip
Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

TEORI BAHASA DAN AUTOMATA

TEKNIK KOMPILASI Bahasa Regular

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

TEORI BAHASA DAN AUTOMATA

Ekspresi Reguler Definisi. Notasi Ekspresi Regular. Contoh Ekspresi Reguler [2]

BAB I PENDAHULUAN 1-1

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO]

Teori Bahasa dan Otomata

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA)

Teori Bahasa dan Otomata 1

TEORI BAHASA DAN AUTOMATA

Non-deterministic Finite Automata Dengan -Move

BAHASA REGULER 1. Ekspresi Regular

TEORI BAHASA DAN AUTOMATA

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

TEORI BAHASA DAN AUTOMATA

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

Reduksi DFA [Deterministic Finite Automata]

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1

TEKNIK KOMPILASI Konsep & Notasi Bahasa

anggota alfabet dinamakan simbol terminal atau token.

NonDeterministic Finite Automata. B.Very Christioko, S.Kom

TEORI BAHASA DAN OTOMATA PENGANTAR

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

PENDAHULUAN Teori Bahasa

8 April 2015 Teori Bahasa dan Otomata

FINITE STATE MACHINE / AUTOMATA

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Von Neumann

TUGAS MAKALAH TEORI BAHASA & AUTOMATA

Teori Bahasa & Otomata

TEORI BAHASA DAN OTOMATA [TBO]

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

Mahasiswa memahami bahasa sebagai himpunan dan operasi 2 -nya, cara mendefinisikan bahasa, serta cara mengenali anggota 2 bahasa

UNIVERSITAS GUNADARMA

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

BAB 2. ANALISIS LEKSIKAL

Ekspresi Reguler. Pertemuan Ke-8. Sri Handayaningsih, S.T., M.T. Teknik Informatika

Komponen sebuah Kompilator

Amir Hamzah AKPRIND PRESS 2009

FTIK / PRODI TEKNIK INFORMATIKA

Contents.

MODUL 4: Nondeterministic Finite Automata

Grammar dan Tingkat Bahasa

BAB II ANALISA LEKSIKAL (SCANNER)

Overview. Pendahuluan. Pendahuluan. Pendahuluan. Pendahuluan. Pendahuluan

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal

Deterministic Finite Automata

DFA. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

PERTEMUAN 9 TEORI BAHASA DAN OTOMATA [TBO]

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

POHON PENURUNAN Context Free Grammar

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

Teori Bahasa & Otomata

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

KONSEP DAN IMPLEMENTASI PARSING DENGAN MENGGUNAKAN METODE BRUTE FORCE

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

Teori Bahasa dan Automata. Finite State Automata & Non Finite State Automata

1, 2, 3

TEORI BAHASA DAN OTOMATA

BAB I TEORI BAHASA DAN AUTOMATA

PENDEKATAN TEORI AUTOMATA UNTUK MENYELESAIKAN APLIKASI-APLIKASI DI BIDANG ILMU KECERDASAN BUATAN

DIKTAT TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA & AUTOMATA

KONSEP GRAMMAR DAN BAHASA

Teknik Kompilasi. Notasi Bahasa

IF-UTAMA 1. Definisi. Grammar. Definisi

FINITE STATE AUTOMATA

Penerapan Finite State Automata Pada Proses Peminjaman Buku di Perpustakaan Universitas Kristen Satya Wacana Artikel Ilmiah

Non-Deterministic Finite Automata

Lecture Notes Teori Bahasa dan Automata

BAB I PENGENALAN TEKNIK KOMPILASI

Ekspresi Regular. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah

Teori Bahasa Formal dan Automata

Teori Bahasa dan Operasi Matematis.

BAB 4 IMPLEMENTASI DAN EVALUASI PROGRAM. dengan perangkat yang digunakan. Beberapa kriteria standar ditentukan agar sistem

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI

1. Pendahuluan. 2. Tinjauan Pustaka

RENCANA PEMBELAJARAN SEMESTER (Kelas Teori)

Teori Bahasa Formal dan Automata

GRAMMAR AND LANGUAGE

TEORI BAHASA DAN OTOMATA [TBO]

MODUL 1: PENGANTAR TEORI BAHASA

TEORI BAHASA & OPERASI MATEMATIS (2)

TEKNIK KOMPILASI. Firrar Utdirartatmo

Operasi FA dan Regular Expression

RENCANA PEMBELAJARAN SEMESTER

INTELLIGENT DECISION SUPPORT SYSTEM DALAM MENDETEKSI BEHAVIOUR SIRKUIT LOGIKA

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

Transkripsi:

TEORI BAHASA DAN OTOMATA [TBO]

Ekspresi Regular (1) 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 disebut sebagai ER, memungkinkan menspesifikasikan atau mendefinisikan bahasa-bahasa.

Ekspresi Regular (2) 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 dengan melakukan pengubahan notasi ekspresi regular ke dalam implementasi komputer dari finite state automata yang bersangkutan.

Ekspresi Regular (3) Penerapan ekspresi regular yang tampak 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 untaiuntai 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)

FSA yang 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)*

Penerapan Ekspresi Regular (1) Dalam suatu kompilator, ekspresi regular bisa diaplikasikan untuk melakukan analisis leksikal, yaitu mengidentifikasikan unit-unit leksikal yang dikenal dalam program. Unit leksikal ini biasanya disebut dengan token. Token-token pada suatu bahasa 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)*

Penerapan Ekspresi Regular (2) 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.

FSA mengenali identifier Gambar 2

Notasi Ekspresi Regular * (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 (1) 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)

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: (a b) contoh string yang dibangkitkan: a, b

Contoh ekspresi regular (3) ER: (a b)* 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)

Hubungan ER dan FSA Untuk setiap ekspresi regular ada satu Nondeterministic 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 Nondeterministic Finite Automata -move dari suatu ekspresi regular. Bisa dilihat contohnya pada gambar 3-5. Yang perlu diperhatikan disitu, state akhir akan menandakan apakah suatu input diterima atau tidak.

NFA -move untuk ER: ab Gambar 3

NFA -move untuk ER: a*b Gambar 4

NFA -move untuk ER: a b Gambar 5 Kemudian dari Non-deterministic Finite Automata - move tersebut dapat kita ubah ke Non-deterministic Finite Automata dan selanjutnya ke Deterministic Finite Automata, atau prosesnya sebagai berikut: NFA -move NFA DFA

HUBUNGAN ANTARA DFA, NFA, DAN ER Hubungan antara Non-deterministic Finite Automata, Deterministic Finite Automata, dan ekspresi regular bisa digambarkan seperti gambar berikut ini. NFA DFA Ekspresi Regular NFA -move

CONTOH 1 Membuat mesin Deterministic Finite Automata yang menerima bahasa yang berupa semua string yang berakhiran dengan 00. Diketahui, = (0,1) Pertama buat ekspresi regularnya: (0+1)*00 atau (0 1)*00 Dari ekspresi regular tersebut lebih mudah membuat Non-deterministic Finite Automata, lebih dahulu, dari pada langsung Deterministic Finite Automata

CONTOH 2 Membuat mesin Deterministic Finite Automata yang menerima bahasa berupa semua string yang memuat minimal dua nol berturutan ( 00 ). Diketahui = (0,1) Perhatikan perbedaannya dengan soal sebelumnya. Disini tidak ditentukan letak 00. Buat ekspresi regularnya: (0+1)*00(0+1)*

CONTOH 3 Membuat mesin Deterministic Finite Automata yang menerima bahasa berupa semua string dimana symbol ketiga dari kanan adalah 1. Diketahui = (0,1) Buat ekspresi regularnya: (0+1)*1(0+1)(0+1)

CONTOH 4 Membuat mesin Deterministic Finite Automata yang 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 ekspresi regular dari permasalahan tersebut. Maka coba langsung mengkonstruksi Deterministic Finite Automata-nya dengan jalan melihat semua kemungkinan yang ada.

CONTOH 4 Lanjt.. Kemungkinan pertama adalah dua buah nol terletak di paling ujung Kemungkinan kedua adalah dua buah nol terletak di paling awal Kemungkinan untuk tiga symbol pertama sudah memuat dua buah nol Kemungkinan bila tiga symbol pertama baru memuat satu buah nol

LATIHAN Buatlah FSA (DFA, NFA, NFA -Move)dari ER berikut ini: 010* 0(1 0) 0(1 0)* 01*0 0*10* a(ba)* (ab)* 01* 10*11* a(ba* a(ba*b)*) a(ba)*ab*(abab*)*