Anda di halaman 1dari 12

Bab 3 FINITE STATE AUTOMATA

3.1 Penerapan Fini State Automata Salah satu alasan memulai studi teori komputasi melalui bahasa adalah pendekatan ini menuntun cara alami untuk permulaan. Dimulai dari bahasa sederhana, kemudian mempertimbangkan kebutuhan-kebutuhan minimum mesin yang dapat mengolahnya, kemudian meningkat dengan bahasa yang lebih rumit/sulit. Bahasa formal dapat dipandang sebagai entitas abstrak yaitu sekumpulan string-string simbol alpabet tertentu. Dapat juga dipandang bahasa sebagai entitas abstrak yang dapat dikenali atau dibangkitkan melalui suatu mesin komputasi. Istilah mengolah berarti mengenali atau membangkitkan. Bahasa paling sederhana adalah bahasa regular. Mesin yang dapat mengenali bahasa kelas regular adalah Finite State Automata / otomata berhingga state, yang biasa disebut FSA. FSA, bukan mesin fisik tetapi suatu model matematika dari suatu sistem yang menerima input dan output diskrit. Suatu Finite State Automata memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari suatu state ke state lain. Perubahan state ini dinyatakan oleh fungsi transisi.

Mekanisme kontrol pada suatu elevator/lift adalah contoh untuk suatu otomata. Mekanisme tersebut tidak mengingat semua permintaan sebelumnya tetapi hanya posisi lift saat itu pada suatu lantai, pergerakan ke atas atau ke bawahdan sekumpulan permintaan yang belum terpenuhi. Teori mengenai finite state automata adalah suatu tool yang berguna untuk merancang sistem tersebut. Mekanisme kerja suatu finite state automata dapat diaplikasikan pada analisis leksikal (mengindentifikasi unit), text editor, protocol komunikasi jaringan dan pencek pariti. Contoh penerapan suatu finite state automata adalah pada pencek pariti ganjil (odd parity) pengirim akan menambahkan bit paritas sehingga jumlah bit 1 adalah ganjil. Misalnya terdapat data: 0110 maka pengirim akan menambahkan bit 1, sehingga penerima akan memperoleh 01101 bila data: 0111, maka pengirim akan menambahkan bit 0, sehingga penerima akan memperoleh 01110.

Kita bisa membuat sebuah otomata yang akan memeriksa apakah suatu barisan input memiliki bit 1 dalam jumlah ganjil atau genap. Mesin ini mempunyai dua state, yang disebut state EVEN (genap) dan state ODD (ganjil). 0 0 1 1 Pada finite state automata, maksud dari bentuk-bentuk tersebut adalah: Lingkaran menyatakan state/kedudukan Label pada lingkaran adalah nama state. Busur menyatakan transisi yaitu perpindahan state/kedudukan Label pada busur adalah simbol input Lingkarang didahului sebuah busur tanpa label menyatakan state awal Lingkaran ganda menyatakan state akhir/final

EVEN

ODD

Gambar tersebut sering disebut sebagai grap transisi, diagram transisi atau diagram keadaan (state). Pada gambar tersebut terlihat bahwa state awal adalah EVEN, karena mesin ini merupakan pencek pariti ganjil, maka himpunan state akhir yang menyatakan input diterima adalah {ODD}. Simbol input yang ada adalah {0,1} Kita telusuri bila mesin mendapat input: 1101 urutan state yang terjadi adalah EVEN 1 ODD 1 EVEN 0 EVEN 1 ODD berakhir dengan state ODD sehingga 1101 diterima oleh mesin. Bila mesin mendapat input: 101 urutan state yang terjadi adalah EVEN 1 ODD 0 ODD 1 EVEN berakhir dengan state EVEN maka 101 diterima oleh mesin. Pada contoh tersebut state akhir hanya satu, pada umumnya bisa terdapat sejumlah state akhir. Istilah state akhir/final state tidak berarti komputasi berupa perpindahan/transisi berhenti (halt) begitu state akhir tercapai. State akhir hanya menyatakan kedudukan-kedudukan state tertentu sebagai kedudukan yang diterima (accepting state).

Secara formal finite state automata dinyatakan oleh 5 tupel atau M=(Q, , , S, F), di mana: Q = himpunan state/kedudukan = himpunan simbol input/masukan/abjad = fungsi transisi S = state awal/kedudukan awal (initial state), S Q F = himpunan state akhir, F Q

F adalah himpunan state akhir, jumlah state akhir pada suatu finite state automata bisa lebih dari satu. Pada gambar tersebut dapat dinyatakan:
Q S F

= = = =

{ODD, EVEN} {0, 1} EVEN {ODD}

3.2 Deterministik Finite Automata Pada otomata berhingga deterministik biasa disebut DFA (deterministic finite automata), ada tepat satu state berikutnya untuk setiap simbol masukan yang di terima. Contoh; a a b

q0

q1

b a

q2

Konfigurasi deterministic finite automata di atas secara formal dinyatakan sebagai berikut: Q = {q0, q1, q2} = {a, b} S = q0 F = {q2}

Fungsi transisi yang ada pada DFA tersebut adalah sebagai berikut:

(q0, a) = q0 (q0, b) = q1 (q1, a) = q1 (q1, b) = q2 (q2, a) = q1 (q2, b) = q2


Fungsi-fungsi transisi tersebut dapat disajikan dalam sebuah tabel transisi, yang menunjukkan state-state berikutnya untuk kombinasi state dan input. Tabel transisi dari fungsi transisi di atas adalah:

q0 q1 q2

a q0 q1 q1

b q1 q2 q2

Pada tabel transisi Deterministic Finite Automata di atas, nampak bahwa terdapat sebuah state berikutnya yang unik untuk setiap pasangan state-input.

Jadi untuk sebuah state dan input yang berlaku, kita bisa menentukan tepat satu state berikutnya. Pada Deterministic Finite Automata, merupakan sebuah fungsi yang harus terdefinisi untuk semua pasangan state-input yang ada dalam Q X . Suatu string x dinyatakan diterima bila (S, x) berada pasa state akhir. Secara formal dikatakan bila M adalah sebuah finite state automata, M=(Q, , , S, F), menerima bahasa yang disebut L(M), yang merupakan himpunan {x| (S,x) di dalam F}. Misal pada contoh gambar ke-2 kita input-kan string abb pada mesin, maka; (q0,abb) = (q0,bb) = (q1,b) = q2 karena q2 termasuk state akhir, maka abb berada dalam L(M). Contoh lain pada gambar 2 kita input-kan string baba pada mesin tersebut, maka; (q0,baba) = (q1,aba) =(q1,ba) = (q2,a) = q1 karena q1 tidak termasuk state akhir, maka baba tidak berada dalam L(M).

Contoh lain bisa dilihat pada gambar 3 dibawah ini; a a,b

q0

q1

Tabel transisi dari gambar 3 adalah:

q0 q1

a
q1 q1

b
q1 q0

Jadi dari suatu gambar/diagram transisi dapat kita buat tabel transisinya, sebaliknya dapat pula dibuat diagram transisi suatu Deterministic Finite Automata bila diketahui tabel transisinya.

Contoh selanjutnya jika terdapat tabel transisi:

q0 q1

a q0 q0

b q1 q0

Dengan S = q0 dan F = {q1}, maka diagram transisinya seperti berikut: a b

q0

q1

a, b

Contoh lain dengan tabel transisi seperti:

dengan S = q0 dan F = {q0,q2}, maka tabel transisinya dapat dibuat seperti berikut: 0
0

q0
1

1 0

q1 1

q2

Berlanjut

Anda mungkin juga menyukai