Finite State Automata 1 Penerapan Finite State Automata

8 1101 urutan state yang terjadi EVEN 1 ODD 1 EVEN 0 EVEN 1 ODD Berakhir dengan state ODD sehingga “1101” diterima oleh mesin Bila mesin mendapatkan input: 101 urutan state yang terjadi EVEN 1 ODD 0 ODD 1 EVEN Berakhir dengan state EVEN maka “101” ditolak oleh mesin. Meskipun pada contoh diatas state akhirnya hanya satu, pada umumnya bisa terdapat sejumlah state akhir. Istilah state akhir tidak berarti komputasi disini berupa perpindahantransisi berhenti halt begitu state akhir tercapai. State akhir hanya menyatakan kedudukan-kedudukan tertentu sebagai kedudukan-kedudukan yang diterima. Secara formal finite state automata dinyatakan oleh 5 tupel atau M=Q, Σ,δ,S,F, dimana: Q = himpunan statekedudukan Σ = himpunan simbol inputmasukanabjad δ = fungsi transisi S = state awalkesusukan awal, S ∈Q F = himpunan state akhir F adalah jumlah state akhir, jadi jumlah state akhir pada suatu finite state automata bisa lebih dari satu. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9 Maka contoh diatas bisa dinyatakan sebagai berikut: Q = {ODD,EVEN} Σ = {0,1} S = EVEN F = {ODD} Finite state automata berdasarkan pada pendefinisian kemampuan berubah state-statenya bisa dikelompokkan ke dalam deterministik maupun non deterministik,. A.2 Deterministic Finite State Automata Pada otomata berhingga deterministik Deterministic Finite Automata, selanjutnya disebut dengan DFA, dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukan yang diterima. Sebagai contoh, misal ada otomata seperti pada gambar berikut ini: a a b b b a q 1 q 2 q gambar 2.1 mesin DFA Konfigurasi Deterministic Finite State Automata di atas secara formal dinyatakan sebagai berikut: Q = {q ,q 1 ,q 2 } Σ = {a,b} S = q F = {q 2 } PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10 Fungsi transisi yang ada sebagai berikut: δq ,a = q δq ,b = q 1 δq 1 ,a = q 1 δq 1 ,b = q 2 δq 2 ,a = q 1 δq 2 ,b = q 2 Biasanya fungsi-fungsi transisi ini disajikan dalam sebuah tabel transisi. Tabel transisi tersebut menunjukkan state-state berikutnya untuk kombinasi state- state dan input. Tabel transisi dari fungsi transisi diatas sebagai berikut: δ a b q q q 1 q 1 q 1 q 2 q 2 q 1 q 2 Tabel 1.1 Pada tabel transisi Deterministic Finite Automata diatas, nampak bahwa sebuah state berikutnya yang unik untuk setiap pasangan state-input. Jadi untuk sebuah state dan input yang berlaku, bisa ditentukan tepat satu state berikutnya. Pada Deterministic Finite Automata, δ merupakan sebuah fungsi yang harus terdefinisi untuk semua pasangan state-input yang ada dalam Q X Σ. Sehingga apapun state saat itu atau inputnya, selalu terdapat satu dan hanya satu state 11 berikutnya. State berikutnya itu ditentukan oleh informasi yang ada di dalam pasangan state-input. Suatu string x dinyatakan diterima bila δS,x berada pada state akhir. Biasanya secara formal dikatakan bila M adalah sebuah finite state automata, M=Q, Σ, δ, S, F, menerima bahasa yang disebut LM, yang merupakan himpunan {x ⏐δS,x didalam F}. Misal pada contoh gambar 2.1 diberi input string ‘abb’ pada mesin tersebut. Maka : δq ,abb= δq ,bb= δq 1 ,b= q 2 karena q 2 termasuk state akhir, maka ‘abb’ berada dalam LM misal pada ontoh gambar 2.1 di beri input string ‘baba’ pada mesin tersebut, maka: δq ,baba= δq 1 ,aba = δq 1 ,ba= δq 1 ,a = q 1 karena q 1 tidak termasuk state akhir, maka ‘baba’ tidak berada dalam LM. Contoh lain, misal terdapat gambar mesin DFA sebagai berikut: a,b a b q q 1 tabel transisi dari gambar 2.2 adalah : δ a b q q 1 q 1 q 1 q 1 q Tabel 1.2 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12 Jadi dari suatu gambar diagram transisi dapat dibuat tabel transisinya. Sebaliknya dapat pula digambar diagram transisi suatu Deterministic Finite Automata bila diketahuai tabel transisinya. Contoh terdapat tabel transisi: δ a b q q q 1 q 1 q q Tabel 1.3 Dengan S = q F = {q 1 } Maka diagram transisinya dapat dilihat pada gambar 2.3 berikut ini: a b a,b q q 1 gambar 2.3 A.3 Non Deterministic Finite State Automata Pada Non-deterministic Finite Automata NFA dari suatu state bisa terdapat 0,1, atau lebih busur keluar transisi berlabel simbol input yang sama. Non-deterministic Finite Automata didefinisikan pula dengan lima tupel M = Q, Σ, δ, S, F, dengan arti yang serupa pada Deterministic Finite Automata. Perbedaannya terletak pada fungsi transisinya, dimana untuk setiap pasangan state-input, bisa memiliki nol atau lebih pilihan untuk state berikutnya. 13 Contoh: a,b a,b a gambar 2.4 mesin otomata NFA q q 1 Dari gambar 2.4, dari state q terdapat dua busur keluar yang berlabel input ‘a’. Dari state q bila mendapat input ‘a’ bisa berpindah ke state q atau q 1 , yang secara formal dinyatakan: δq ,a= {q ,q 1 } maka otomata ini disebut non-deterministik tidak pasti arahnya. Tabel transisinya sebagai berikut: δ a b q {q ,q 1 } {q 1 } q 1 {q 1 } {q 1 } Tabel 2.1 Perlu diperhatikan bahwa cara penulisan state hasil transisi pada tabel transisi untuk Non-deterministic Finite State Automata digunakan kurung kurawal ‘{‘ dan ‘}’, karena hasil transisinya merupakan suatu himpunan state. Suatu string diterima oleh Non-Deterministic Finite Automata bila terdapat suatu urutan sehubungan dengan input string tersebut dari state awal menuju state akhir. Misalkan saja LM adalah bahasa yang diterima oleh Non- PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14 Deterministic Finite Automata pada gambar 2.4. Tentukan apakah string ‘ab’ termasuk dalam LM? Untuk Non-Deterministic Finite Automata harus mencoba semua kemungkinan yang ada sampai terdapat satu yang mencapai state akhir. Dalam contoh diatas, urutan transisi yang mencapai state akhir: δq ,ab = δq 1 ,b = q 1 Jadi untuk membuktikan suatu string diterima oleh Non-Deterministic Finite Automata tersebut dibuktikan dulu suatu urutan transisi yang menuju state akhir . Contoh lain, misal terdapat gambar 3.2 mesin NFA: b a a q q1 gambar 3.2 Terlihat tidak ada busur keluar dari state q 1 untuk simbol input ‘b’ atau secara formal dinyatakan: δq 1 ,b = φ 15 tabel transisinya sebagai berikut: Tabel 2.2

B. Tata Bahasa Reguler

δ a b q {q 1 } {q } q 1 {q } φ B.1. Bahasa-Bahasa Reguler dan Ekspresi-Ekspresi Reguler Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerima bahasa-bahasa. Finite state automata sendiri merupakan model matematika dari suatu sistem yang menerima input dan output diskrit dan juga merupakan mesin otomata dari bahasa reguler. Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dengan ekspresi regular Regular Ekspression. Ekspresi regular selanjutnya disebut sebagai ER, yang memberikan cara untuk mendefinisikan bahasa-bahasa. Ekspresi regular memberikan suatu pola untuk untai dari suatu bahasa. Semua untai yang cocok dengan sebuah pola tertentu, dan hanya untai-untai itu, yang menyusun bahasa regular tertentu. Demikian pula sebuah otomata berhingga mendefinisikan sebuah bahasa sebagai himpunan semua untai yang menggerakkan untai dari kedudukan awal ke salah satu dari kedudukan-kedudukan yang diterima Untuk sebuah abjad ∑ tertentu, bahasa-bahasa regular atas ∑ menarik dari segi teoritis karena membentuk koleksi terkecil dari bahasa-bahasa atas ∑ yang tertutup di bawah operasi-operasi perangkaian, penutup bintang dan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16 gabungan bahasa dan memuat bahasa kosong Ø dan bahasa-bahasa singleton { a } untuk a Є ∑. Definisi 2.2.1 Kelly, Dean. h 36 Misalkan ∑ merupakan sebuah abjad. Koleksi dari bahasa-bahasa regular atas ∑ didefinisikan sebagai berikut: a. Ø adalah sebuah bahasa regular. b. { ε } adalah sebuah bahasa regular. c. Untuk setiap a ∉ ∑, { a } adalah sebuah bahasa regular. d. Jika A dan B adalah bahasa-bahasa regular maka A ∪ B, A . B, dan A adalah bahasa-bahasa regular. e. Tidak ada bahasa-bahasa lain atas ∑ yang regular. Artinya koleksi dari bahasa-bahasa regular atas ∑ terdiri dari bahasa kosong, semua bahasa singleton, termasuk { ε }, dan semua bahasa yang dibentuk oleh operasi-operasi bahasa perangkaian, gabungan, dan penutup bintang. Contoh: Misalkan ∑ = {a, b} maka yang berikut ini benar: Ø dan { ε } adalah bahasa-bahasa regular. { a } dan { b } adalah bahasa-bahasa regular. { a, b} adalah regular, yang merupakan gabungan dari { a } dan { b }. { ab } adalah reguler. { a, ab, b } adalah regular. { a i | i ≥ 0 } adalah regular. { a i b j | i ≥ 0 dan j ≥ 0} adalah regular. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17 { ab i | i ≥ 0 }adalah regular. Notasi dari ekspresi regular yaitu sebagai berikut: ‘’, ‘ + ’, ‘+’, ‘ ∪’, ‘.’ • yaitu karakter asterisk, berarti bisa tidak muncul, bisa juga muncul berhingga kali 0-n • + pada posisi superscript di atas berarti minimal muncul satu kali 1-n • + atau ∪ berarti union • . titik berarti konkatenasi, biasanya titik bisa dihilangkan, misal: ab bermakna sama seperti a.b Telah disepakati bahwa urutan untuk operator-operator , ∪ dan . adalah pertama, . berikutnya dan ∪ yang terakhir. Contoh ekspresi regular selanjutnya disingkat sebagai ER: ER: abcc 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 di ujung bisa tidak muncul, bisa muncul berhingga kali ER: a + d Contoh string yang dibangkitkan: ad, aad, aaad a minimal muncul sekali ER: a ∪ b Contoh string yang dibangkitkan: a, b, aa, bb, aaa, bbb, aaaaa, bbbb