• Tidak ada hasil yang ditemukan

05. FINITE STATE AUTOMATA - Teknik Kompilasi.zip

N/A
N/A
Protected

Academic year: 2018

Membagikan "05. FINITE STATE AUTOMATA - Teknik Kompilasi.zip"

Copied!
11
0
0

Teks penuh

(1)

05. FINITE STATE AUTOMATA

Konsep Automata Hingga atau Finite State Automata

¾ Finite State Automata (FSA) atau Finite Automata atau Automata

Hingga dapat dibayangkan sebagai sebuah Mesin yang terdiri dari

Kepala Baca (Read Head), dan Kotak Kontrol Stata Hingga.

¾ Mesin ini membaca sebuah pita (tape), satu persatu karakter, dari kiri ke kanan, seperti gambar berikut:

¾ Cara Kerja Konsep Finite State Automata

Ž

Ž FSA bekerja dengan cara membaca tape satu demi satu karakter (dari

kiri ke kanan) menggunakan head baca yang dikendalikan oleh kotak

(mesin) kendali stata berhingga.

Ž

Ž FSA selalu dalam kondisi yang disebut stata awal (initial state) pada saat FSA mulai membaca tape.

Ž

Ž Perubahan atau transisi stata terjadi pada mesin ketika sebuah

karakter berikutnya pada pita selesai dibaca.

Ž

Ž Beberapa stata dapat ditunjuk sebagai Stata Akhir/Stata Penerima.

Ž

Ž Ketika head sampai pada akhir tape dan stata yang ditemui adalah

stata akhir, maka string pada tape dikatakan diterima FSA.

Ž

Ž Dengan kata lain; bila pembacaan dimulai dari Stata Awal, berjalan

sesuai jalur hingga ke Stata Akhir, maka untai (deretan karakter) yang ada pada pita tersebut dikatakan diterima oleh FSA.

¾ Implementasi Finite Automata

Sistem dengan stata berhingga diterapkan pada:

Ž

Ž Sistem elevator

Ž

Ž Mesin pengeluar minuman kaleng (vending machine)

Ž

Ž Pengatur lampu lalu lintas (traffic light regulator)

Ž

Ž Sirkuit penyaklaran (switching) di komputer dan telekomunikasi R E A D N O T R E A D

READ HEAD

(2)

Ž

Ž Protokol komunikasi (communication protocol)

Ž

Ž Analisis Leksikal (Lexical analyzer)

Ž

Ž jaringan saraf (Neuron nets)

Ž

Ž sistem Komputer

¾ Kelengkapan Finite Automata atau Automata Hingga

FSA atau Automata Hingga memiliki kelengkapan sbb:

Ž

Ž himpunan stata berhingga sebagai kendali

Ž

Ž Simbol-simbol masukan yang dibolehkan/diijinkan

Ž

Ž Stata mula/awal (initial state)

Ž

Ž Himpunan stata akhir (set of final states)

Stata-stata yang menandai diterimanya masukan.

Ž

Ž Fungsi transisi stata (state transition function)

Fungsi transisi ini memberikan/menyatakan semua stata berikutnya yang mungkin dituju akibat adanya transisi.

¾ Finite State Diagram (FSD)

Ž

Ž Perilaku FSA dimodelkan dengan Finite State Diagram (FSD) atau

State Transition Diagram atau Diagram Automata Hingga atau

Diagram Transisi yang berbentuk Graf Berarah (dengan tanda anak panah) atau Digraph, dengan tambahan beberapa notasi khusus.

Ž

Ž Jika terdapat busur mengarah dari Simpul P ke Simpul Q, dengan

label a, berarti bahwa akan terjadi transisi Stata P ke Stata Q bila terbaca karakter a pada pita (bila memperoleh input karakter a).

Ž

Ž Anak panah berlabel "start" mengarah ke suatu Stata, menandakan bahwa Stata tersebut merupakan Stata Awal. Stata akhir atau stata penerima disajikan berupa lingkaran ganda.

Ž

Ž Busur dari satu simpul ke simpul lain menandakan transisi stata.

Karakter samping atau diatas busur menandakan karakter yang menyebabkan terjadinya transisi stata.

Ž

Ž Finite State Diagram terdiri dari:

1. Lingkaran menyatakan stata

Lingkaran diberi label sesuai dengan nama stata tersebut. Adapun pembagian lingkaran adalah:

(3)

2. Anak Panah menyatakan transisi yang terjadi

Label pada anak panah menyatakan simbol yang membuat transisi dari satu stata ke stata lain. Satu anak panah diberi label start untuk menyatakan awal mula transisi dilakukan.

Contoh :

Gambar diagram dibawah menggambarkan perilaku FA untuk penerimaan bilangan nyata (riil) yang paling tidak mempunyai satu digit setelah titik desimal adalah sebagai berikut:

Simpul-simpul (berbentuk lingkaran) pada FSD tersebut mengambarkan stata-stata dari FA, yaitu :

- Simpul S

- Simpul A

- Simpul B

¾ Diagram Automata Hingga tersebut menerima bilangan Real, yang

mempunyai paling sedikit satu digit sesudah titik desimal. Simpul dari

Digraph tersebut menyatakan stata dari Automata Hingga.

¾ Simpul dengan garis ganda menunjukkan state akhir.

¾ Digit adalah nilai 0,1,2,3,4,5,6,7,8,9

Uji Digraf 1

- Misalkan pita berisikan untaian karakter 112.75 (seratus dua belas

koma tujuh lima).

- Automata Hingga mulai bekerja dari Stata S, yakni Stata Awal, dan

masih tetap berada di Stata S ini saat bilangan di depan titik desimal dibaca.

- Ketika tanda titik desimal dibaca, berpindah ke Stata A, kemudian

pindah lagi ke Stata B ketika digit pertama sesudah titik desimal (dalam contoh ini adalah digit 7) dibaca.

- Automata Hingga kemudian membaca digit berikutnya, yakni 5, dan

masih tetap berada di Stata B. Sekarang akhir dari pembacaan Pita sudah tercapai.

S A B

Start

digit

(4)

- Penelusuran token berakhir di Simpul B, yang adalah Stata Penerima

atau Stata Akhir.

- Ini berarti Automata Hingga menerima bilangan desimal yang

diberikan, yakni 112.75, sebagai sebuah token. Catatan:

∗ Jika penelusuran Automata Hingga tidak sampai pada Stata B, saat

sesudah untai selesai dibaca seluruhnya, maka untai tersebut ditolak.

∗ Misalnya untai 112, untai ini termasuk kasus yang ditolak karena tidak

mencapai ke Stata Penerima (Stata Akhir).

∗ Penolakan dapat pula terjadi apabila Transisi Stata tidak dapat

dilakukan untuk suatu karakter yang dibaca. ∗ Misalnya di antara digit tersebut terdapat huruf.

∗ Sebagai contoh untai yang ditolak adalah sbb.: X15.25 ataupun

112.H75.

Uji Digraf 2

Contoh string : 9.8765

- Busur berlabel Start menunjukkan transisi ke state S atau awal transisi.

- Head membaca angka "9"

Digraf menunjukkan bahwa pada stata S ada busur yang kembali ke stata S bila membaca digit (berarti memiliki kesesuaian bahasa).

- pembacaan ke karakter berikutnya adalah "."

Digraf menunjukkan bahwa pada stata S ada busur yang menuju ke stata A bila membaca titik desimal (” . ”) (kondisi berada di state A)

- pembacaan karakter berikutnya = "8"

Digraf menunjukkan bahwa pada stata A ada busur yang menuju ke stata B bila membaca digit (kondisi berada di state B)

- pembacaan karakter berikutnya = "7"

Digraf menunjukkan bahwa pada stata B ada busur yang kembali ke stata B bila membaca digit (kondisi tetap berada di posisi B)

- pembacaan karakter berikutnya = "6"

Digraf menunjukkan bahwa pada stata B ada busur yang kembali ke stata B bila membaca digit (kondisi tetap berada di posisi B)

- pembacaan karakter berikutnya = "5"

(5)

- penyesuaian aturan kendali

Pada akhir pembacaan dilakukan penyesuaian apakah karakter terakhir berada pada stata akhir.

Bila kondisi "YA" maka string termasuk di dalam bahasa, dalam hal ini karakter "5" berada pada stata B yaitu stata dengan lingkaran bergaris ganda yang menandakan stata akhir, maka sesuai.

String 9.8765 termasuk di dalam bahasa Finite Automata pada FSD.

Contoh string : a

- Busur berlabel Start

- Menunjukkan transisi ke state S

- Head membaca nilai "a"

- Terdapat kondisi yang menunjukkan ketidaksesuaian dengan aturan

kendali pada state S yaitu tidak adanya busur yang menunjukkan persamaan simbol dengan simbol yang dibaca ("a")

- Ketidaksesuaian simbol

- Aturan kendali pada kondisi "TIDAK" menandakan string a tidak

termasuk di dalam bahasa FSD di atas.

Klasifikasi Finite Automata atau Automata Hingga

Finite automata dapat berupa:

- Deterministic Finite Automata (DFA)

Terdiri dari satu transisi dari suatu state pada 1 simbol masukan. - Non deterministic Finite Automata (NDFA)

Lebih dari satu transisi dari suatu state dimungkinkan pada simbol masukan yang sama.

Kedua FA tersebut mampu mengenali himpunan reguler secara presisi. Dengan demikian kedua FA itu dapat mengenali string-string yang ditunjukkan dengan ekspresi reguler secara tepat.

DFA dapat menuntun recognizer (pengenal) lebih cepat dibanding NDFA.

Lebih mudah membangun NDFA dibanding DFA untuk suatu bahasa, namun lebih mudah mengimplementasikan DFA dibanding NDFA.

¾ Automata Hingga yang digunakan dalam contoh di atas disebut

Deterministic Finite State Acceptor, atau Deterministic Finite State

(6)

Definisi Automata Hingga Deterministik

Sebuah Automata Hingga Deterministik (AHD) yang terdiri atas 5 tupel (K, VT, f, q0, Z) adalah:

(1) Himpunan Hingga K, berisi Stata Internal, atau disingkat Stata. (2) Himpunan Hingga VT, berisi simbol input.

(3) Sebuah fungsi f : K x VT Î K, merupakan fungsi next-State atau

fungsi Stata berikut. (4) Stata Awal q0 anggota K

(5) Himpunan Z, subset dari K, yang elemennya disebut Stata Akhir atau

Stata Penerima.

Berikut ini adalah contoh sebuah Automata Hingga Deterministik dengan 2 (dua) simbol input dan 3 (tiga) Stata.

VT = (a,b), himpunan simbol input

K = (q0, q1, q2), himpunan Stata

Z = (q0, q1), himpunan Stata penerima atau Stata akhir

Stata Awal adalah q0

Fungsi next-state f : K x VT Î K, didefinisikan sebagai tabel berikut :

f a b q0

q1

q2

q0

q0

q2

q1

q2

q2

Stata Awal q0. Stata Akhir disajikan dengan lingkaran ganda.

Bila f(qi, aj) = qk, maka terdapat busur/anak panah dari qi ke qk dengan

label a.

Perlu dicatat bahwa Stata Awal dapat merangkap sebagai simpul penerima.

Digraph pada contoh tersebut adalah sebagai berikut :

Misalkan w = a1, a2, ..., an adalah untai simbol input dari Automata M.

Kita dapatkan barisan Stata S0, S1, ..., Sn dengan S0 adalah Stata Awal,

dan Si = f(Si-1, ai) untuk i > 0.

Automata M dikatakan dapat menerima atau mengenal untai w tersebut,

jika Stata terakhir Sn merupakan Stata Penerima. Himpunan semua untai

(7)

Sebagai contoh, Automata di atas dapat menerima untai aabababa, aaa, baab

dan lain-lain untai lagi.

Sedangkan untai yang ditolak adalah untai yang mengandung 2 buah b berturutan sbb.:

Bbaaaaaa, aabaabb, babbaa, dan lain-lain.

Sebagai contoh lain dari Automata Hingga adalah sbb.

Automata berisikan dua Stata, yakni Stata S dan A. Stata S adalah Stata Awal dan Stata A merupakan Stata Akhir.

Di sini terlihat bahwa kita akan tetap berada di Stata A saat Automata membaca sesuatu karakter atau digit ataupun karakter khusus pada himpunan {#, @, $, _}.

Contoh lain yang lebih kompleks adalah pada gambar berikut.

Contoh ini juga berbentuk Diagram Stata Hingga yang menggambarkan Diagram Transisi untuk sebuah Bahasa yang terdiri dari Token <, <=, =, >=, >, ( ), (, ), +, -, *, /, :=, identifier, ; , keyword, konstanta, literal (yang diapit oleh apostrof).

Semua kemungkinan transisi dipandang dijalankan secara paralel.

Bila terdapat transisi yang menuju/sampai state akhir, berarti string masukan diterima otomata.

AUTOMATA HINGGA NON DETERMINISTIK (AHN)

AHN pada hakekatnya adalah sama dengan AHD, hanya saja pada AHN

dimungkinkan adanya transisi ke lebih dari satu Stata, dari sebuah Stata untuk pembacaan karakter input yang sama.

(8)

Pengertian

AHN terdiri dari 5 tupel (K, VT, M, S, Z) dengan;

1. K adalah himpunan Stata internal yang tidak hampa 2. VT adalah himpunan simbol input

3. M adalah fungsi stata berikut

M : K x VT → subhimpunan dari K

4. S adalah himpunan Stata Awal yang merupakan subhimpunan dari K 5. Z adalah himpunan Stata Akhir atau Stata penerima yang merupakan

subhimpunan dari K

Fungsi Stata berikut M dapat ditulis sbb.: M(q, t) = {p1, p2, ..., pn}

berarti bahwa dimungkinkan terjadi transisi dari Stata q menjadi Stata p1,

atau Stata p2, atau.... Stata pn, apabila sebuah karakter t anggota VT dibaca.

Fungsi Stata-berikut dari AHN dapat diperluas sbb.:

1. M(q,∧) = {q}, untuk setiap q anggota K, ∧ adalah untai hampa.

2. M(q,tT) = ∪ M(pi,T), bila t karakter anggota VT, dan T untai anggota VT*, serta {pi} adalah sama dengan M(q,t)

3. M({q1,q2,...qn},X) = ∪ M(q1,X), untuk X untai anggota VT*

Keterangan;

1. Definisi pertama menerangkan bahwa jika input merupakan untai hampa, maka AHN harus tetap pada Stata yang sama.

2. Definisi kedua dapat ditulis

M(q,tT) = M(p1,T) ∪ M(p2,T) ∪ ... ∪ M(pn,T) dengan

M(q,t) adalah {p1,p2,...,pn}

Di sini M(q,tT) merupakan suatu himpunan Stata.

3. Definisi ketiga menjelaskan suatu pemetaan 2k x VT* → subhimpunan dari K

Suatu untai X dikatakan diterima oleh sebuah AHN, jika sedikitnya ada

satu Stata penerima terkandung dalam M(q0,X). q0 adalah Stata Awal

AHN.

(9)

AHN tersebut adalah:

F = ({q0,q1,q2,q3,q4},{a,b,c},M,q0,{q4})

Digraf untuk AHN ini adalah sbb.:

Fungsi M dapat didefinisikan dengan tabel sbb.:

simbol input

Sebagai contoh dengan input untai aca, nilai dari M(q0,aca) dapat

(10)

LATIHAN

1. Misalkan a dan b adalah simbol input. Buatlah sebuah AHD (Automata Hingga Deterministik) M yang hanya menerima untaian karakter yang mengandung sejumlah genap a.

(Contohnya untai aababab atau aa dapat diterima, sedangkan untai ababa atau abbb tidak diterima).

2. Buatlah sebuah Automata Hingga Deterministik dengan simbol input a,b, yang hanya dapat menerima untai karakter yang mengandung sejumlah b yang habis dibagi 3.

(Petunjuk: dibutuhkan 3 Stata)

3. Buatlah sebuah Automata Hingga Deterministik M dengan simbol input a dan b, yang hanya dapat menerima untai karakter yang mengandung sejumlah genap a dan sejumlah b yang habis dibagi 3.

4. Misalkan M1(K1, VT, Z1, q0, f1) dan M2(K2, VT, Z2, s0, f2) adalah dua

buah Automata Hingga Deterministik dengan himpunan simbol input

VT yang sama. Misalkan L(M1) dan L(M2) berturut-turut adalah

himpunan untai yang dapat diterima oleh M1 dan M2. Buatlah sebuah

Automata Hingga Deterministik N dengan himpunan simbol input VT

yang dapat menerima L(M1) IRISAN L(M2), yakni untai yang dapat diterima baik oleh M1 dan M2.

5. Sebuah Automata Hingga Non-deterministik (F) dapat dinyatakan

sebagai berikut:

Fungsi M dapat didefinisikan dengan tabel sbb.:

(11)

a) Gambarkan Digraf dari Automata Hingga tersebut.

b) Selidiki apakah untai karakter aabbab diterima atau tidak.

6. Cobalah anda implementasikan scanner untuk suatu bahasa yang anda

rancang Sendiri.

7. Sebuah Automata Hingga Non-deterministik (F) dapat dinyatakan

sebagai berikut

F = ({q0,q1,q2,q3,q4}, {a,b,c}, M, q0, {q4})

Fungsi M dapat didefinisikan dengan tabel sbb.:

simbol input Stata

a b c

q0

q1

q2

q3

q4

{q0,q1}

{q3}

{q2}

{q3}

φ

{q0,q2}

{q1}

{q2,q4}

{q1,q4}

φ

{q0,q3}

{q1}

{q2}

{q3,q4}

φ

Referensi

Dokumen terkait

faktor lain yang memdukung perilaku seksual pada remaja adalah perubahan.. hormonal, penundaan usia perkawinan, penyebaran informasi melalui

Event handler OnDrawItem dari menu Segiempat, Elips akan menentukan warna dan menggambar bentuk yang sesuai pada item menu.. Jika item menu dari Bentuk diklik, akan

Berorientasi objek (O-O) analisis dan desain adalah pendekatan yang dimaksudkan untuk memfasilitasi pengembangan dari sistem yang harus berubah dengan cepat dalam

” PENGARUH RELIGIUSITAS, PENGETAHUAN, TINGKAT KEUNTUNGAN BAGI HASIL, DAN FATWA MUI TENTANG KEHARAMAN BUNGA BANK TERHADAP KEPUTUSAN NASABAH MENGGUNAKAN PERBANKAN

Data dari penelitian ini adalah register variabel; antara lain field, tenor, dan mode dari dialog-dialog yang digunakan oleh Liz, Stephen, David, dan Felipe di

Keunikan tersebut karena Rumah Sakit merupakan organisasi dengan produknya adalah jasa pelayanan yang berhubungan dengan kesehatan manusia, sehingga harus ada

Hasil pengamatan di atas relevan dengan hasil penelitian yang telah dilakukan oleh Tsinker (1995) yang menunjukkan besaran perbandingan lebar floating breakwater dengan

Pembukuan Perusahaan diselenggarakan dalam mata uang Rupiah. Transaksi-transaksi dalam mata uang asing dibukukan dengan nilai tukar yang berlaku pada tanggal