Otomata Dan Pengantar Kompilasi - Laporan Tugas UTS

May 27, 2018 | Author: Erfan Rachmad Santosa | Category: N/A
Share Embed Donate


Short Description

Laporan Tugas UTS OPK TIF UWKS 09/10...

Description

OTOMATA dan PENGANTAR KOMPILASI

Nama Kelompok : 1.

Rico Andry

(B/09120006)

2.

Tara braja (B/091200 (B/09120020) 20)

3.

Erfa Erfann R S (B/0 (B/091 9120 2007 073) 3)

BAB I Pertanyaan : Carilah artikel melalui koran / internet mengenai mesin automaton? Jawaban: Ini merupakan deskripsi informasi dari automata : Sebuah robot seharusnya dijalankan pada beberapa urutan yang diberikan atau stri string ng masu masuka kan n dala dalam m lang langka kah h wakt waktu u disk diskrit rit.. Pada Pada seti setiap ap lang langka kah h wakt waktu, u, robo robott mendapat satu masukan yang diambil dari satu set simbol/huruf yang disebut alphabet. Pada waktu, simbol sejauh diumpankan ke otomat sebagai bentuk masukan suatu finite simbol, yang disebut kata. Sebuah robot berisi satu set hingga negara. Pada setiap langka langkah h saat saat otomat otomat membac membacaa simbol simbol,, melomp melompat at atau transi transitt ke negara negara beriku berikutny tnyaa tergantung pada keadaan saat ini dan simbol dibaca. Fungsi lebih dari keadaan saat ini. Simbol input disebut dengan fungsi transisi. Kata robot membaca masukan satu simbol demi satu urutan dan transit dari negara ke negara sesuai dengan fungsi transisi, sampai kata dibaca sepenuhnya. Setelah kata masukan dibaca, otomat dikatakan telah  berhenti dan keadaan dimana robot telah berhenti disebut keadaan akhir. Tergantung   pad padaa kead keadaa aan n akhi akhir, r, dika dikata taka kan n bahw bahwaa otom otomat at baik baik mene menerim rimaa atau atau meno menolak lak kata kata masukan. Ada bagian dari negara bagian otomat, yang didefinisikan sebagai satu set negara penerima. penerima. Jika keadaan akhir adalah menerima menerima negara, negara, maka otomat menerima kata. Jika tidak, kata ditolak. Himpunan semua kata diterima oleh robot ini disebut  bahasa diakui oleh otomat tersebut. Dalam definisi formal, automaton robot diwakili secara resmi oleh 5-tuple Q [], ∑, δ , dimana:

-

Q adala adalah h himp himpun unan an terhi terhing ngga ga nega negara ra

-

∑ adalah adalah himpun himpunan an terbat terbatas as dari dari simbol, simbol, yang yang dise disebut but alfab alfabet et dari dari otomat otomat tersebut.

-

δ adalah fungsi transisi, yaitu , δ: Q x ∑ = Q

-

F adalah seperangkat negara Q yang disebut menerima negara

Masukan kata Sebuah robot membaca hingga string simbol a1, a 2, a 3,... ,a n dimana i



∑,

yang disebut kata masukan. Set semua kata dilambangkan dengan ∑*.

Menjalankan Sebuah run robot pada kata w input = a1, a2, ..., n negara-negara negara-negara q0, q1, q3,....,qn, q3,....,qn, Dimana q1



* ∑, merupakan urutan



Q seperti yang q0 adalah negara mulai

dan qi = δ (qi-1,i) untuk 0 ≤ i ≤n. Dengan kata, pada awalnya robot berada pada negara awal q 0 dan kemudian automaton membaca simbol dari kata input secara berurutan. Ketika robot membaca simbol ai maka itu melompat ke negara i q= δ (a i-1,i). q n dikatakan sebagai keadaan akhir yang dijalankan.

Menerima kata Sebuah kata w



∑* diterima oleh otomat jika n q



F.

Diakui bahasa Sebuah robot dapat mengenali bahasa formal. Bahasa diakui L∑ oleh robot adalah himpunan semua kata yang diterima oleh otomat tersebut.

Dikenali bahasa Ini bahasa dikenali adalah set dari bahasa yang diakui oleh beberapa otomat. Untuk definisi di atas, otomata bahasa dikenali adalah bahasa reguler. Untuk definisi yang berbeda dari automata, bahasa yang dikenali berbeda.

Variansi dalam definisi automata

Auto Automa mata ta dide didefin finis isik ikan an untu untuk k bela belajar jar mesi mesin n berg bergun unaa dala dalam m form formal alis isme me matematis. Jadi, definisi robot terbuka untuk variasi sesuai dengan “ mesin dunia nyata” yang kita ingin model menggunakan robot tersebut. Orang-orang telah mempelajari  banyak variasi automata. Di atas, standar varian paling dijelaskan, yang disebut otomat hingga hingga determ determini inisti stik. k. Beriku Berikutt ini adalah adalah beberap beberapaa varias variasii popule populerr dalam dalam defini definisi si komponen yang berbeda dari automata. Input -

Hing Hingga ga inp input ut : Seb Sebuah uah rob robot yan yang g hany hanyaa men menerim erimaa hing hingga ga uru uruta tan n kata kata-k -kat ata. a.

Definisi pendahuluan di atas menggambarkan automata dengan nomor hingga negara. -

Infinite menyatakan : sebuah robot yang mungkin tidak memiliki jumlah yang

terbatas dari negara, atau bahkan dapat dihitung sejumlah negara. Sebuah contoh, hingga otomat kuantum atau otomat topologi memiliki tak terhingga ta terhitung negara,

-

Memori Stack: sebuah otomat juga dapat mengandung beberapa memori

tambahan dalam bentuk stack dimana simbol dapat didorong dan muncul. Semacam ini disebut otomat push down. Fungsi transisi

-

Dete Determ rmin inis isti tik k: Untu Untuk k kond kondis isii saat saat ini ini diber diberik ikan an dan dan simb simbol ol inpu input, t, jika jika rob robot

hany hanyaa dapa dapatt melo melomp mpat at ke satu satu dan dan hany hanyaa satu satu nega negara ra maka maka itu itu adal adalah ah otom otomat at deterministik. -

Sebu Sebuah ah ro robot bot yan yang sete setela lah h mem membaca baca seb sebu uah sim simb bol inp input ut,, dap dapat mel melom ompa patt ke

sala salah h satu satu dari dari seju sejuml mlah ah nega negara, ra, sepe sepert rtii yang yang dili dilise sens nsii oleh oleh hubu hubung ngan an tran transi sisi si.. Perhatikan bahwa fungsi transisi istilah digantikan oleh hubungan transisi: otomat non-

dete determ rmin inis isti tik k memu memutu tusk skan an unt untuk uk mel melom ompa patt ke sal salah ah sat satu u pili piliha han n yang yang dii diizi zink nkan an

robot seperti ini disebut otomat nondeterministic, -

Alte Altern rnat atif if : gagas gagasan an ini ini sang sangat at mir mirip ip den deng gan robo robott poh pohon , teta tetapi pi orth orthog ogon onal al..

Robot mungkin menjalankan beberapa salinan terhadap membaca simbol berikutnya yang yang sama. sama. Automa Automata ta sepert sepertii ini disebu disebutt bolak bolak otomat otomat.. Kondi Kondisi si Peneri Penerimaa maan n harus harus memenuhi semua berjalan salinan tersebut untuk menerima input. Penerimaan kondisi -

Penerimaan kata-ka -kata hingga: Sama ama seperti yang dijelaskan dalam defin finisi

informal diatas. -

Penerimaan kata-ka -kata yang tak terbatas: omega ega rob robot tidak dapat mem memiliki

negara akhir, seperti kata-kata yang tidak terbatas tidak pernah berakhir. Sebaliknya,  penerimaan dari kata tersebut telah ditetapkan dengan melihat urutan yang tidak terbatas negara-negara yang dikunjungi dikunjungi selama menjalankan. menjalankan. -

Pene Peneri rima maan an Pro Proba babi bili list stik ik:: sebu sebuah ah rob robot ot tid tidak ak per perlu lu ben benar ar-b -ben enar ar men mener erim imaa atau atau

menolak masukan. Ini mungkin menerima input dengan beberapa probabilitas antara nol dan satu. Misalnya robot kuantum terbatas, robot geometrik, automaton metrik memiliki  penerimaan probabilistik. Kombinasi yang berbeda dari berbagai variansi di atas menghasilkan banyak otomata. Aplikasi

Kebanyakan implementasi robot yang digunakan untuk membuat perangkat lunak  mengakui tertentu bahasa, contoh umum adalah compiler dan mesin ekspresi reguler. Kelas automata

Automata

Bahasa yang dikenali

Deterministik finite automata (DFA)

Reguler bahasa

Non deterministic hingga otomata(NFA)

Reguler bahasa

  Non Non determ determini inisti sticc hingga hingga automa automata ta dengan dengan e Reguler bahasa transisi (FND –e atau e- NFA) Pushdown automata (PDA) Bebas konteks bahasa Linear bounded automata (LBA)

Konteks bahasa

Mesin turing

Rekursif enumerable bahasa

Jangka waktu automata

-

Mesin Pengenal Bahasa

Untuk setiap kelas bahasa Chomsky, terdapat sebuah mesin pengenal bahasa. Masing-masing mesin tersebut adalah : Kelas Bahasa Unrestricted Grammar  (UG)

Mesin Pengenal Bahasa Mesin Turing (Turing Machine ), TM

Context Sensitive Grammar  (CSG) Context Free Gammar  (CFG)  Regular Grammar , RG

 Linear Bounded Automata, LBA Pushdown Automata, PDA Finite State Automata, FSA

BAB II Pertanyaan : Diketahui REA = ab (a+b)* 1) Rancang mesin FA-nya ?

2) Buat Buat pro progr gram am FA FA ters terseb ebut ut 3) Uji Uji cob cobaa pro progr gram am (min 5 string rejected dan accepted)

Jawaban: ∑ = {a,b} S = {A,B,C,D,E) Sₒ= {A}

NFA:

L= {ab,aba,abaa..,abab,...}

a a D

A

a

b

B

C

b

a b

b

E

δ ( { A} , a )

= {B}

δ ( {C}, b)

= {E}

δ ( { A} , b )

={}

δ ( {D}, a)

= {D}

δ ( {B} , a)

={}

δ ( {D}, b)

= {E}

δ ( {B} , b)

= {C}

δ ( {E } , a )

= {D}

δ ( { }, a) = { }

δ ( {E }, b )

= {E}

δ ( { }, b b)) = { } δ ( {C}, a)

= {D}

DFA : a a

A

b

B

a a,b b

{}

a

C

D

b b

a

E b

Accepted String 1 : ab

String 3 = abab

1) S₀ : {A}

3) S₀= {A} =



( ᵹ(C,a), ”b”)

= ᵹ (A,”ab”)

=



( A, ”abab”)

= ᵹ ( ᵹ(A,a),”b”)

=



( ᵹ(A,a), ”bab”)

= ᵹ ( δ(A,a),”b”)

= ᵹ ( δ(A,a), ”bab”)

= ᵹ( B,”b”)

= ᵹ ( B, ”bab”)

= ᵹ( ᵹ(B,b))

=

= ᵹ( δ(B,b))

= ᵹ ( δ(B,b), ”ab”)

C ϵ Final state

= ᵹ ( C, ”ab”)

String 2 : aba



( ᵹ(B,b), ”ab”)

=



( A, ”abb”)

= ᵹ ( ᵹ(A,a),”ba”)

=



( ᵹ(A,a), ”bb”)

= ᵹ ( δ(A,a),”ba”)

= ᵹ ( δ(A,a), ”bb”)

= ᵹ( B,”ba”)

= ᵹ ( B, ”bb”)

= ᵹ( ᵹ(B,b,”a”))

=



( ᵹ(B,b), ”b”)

= ᵹ( δ(B,b,”a”))

=



(δ (B,b), ”b”)

= ᵹ( δ(C,a))

D ϵ Final state String 5 : abaa 5. S₀ : {A}

( δ(C,a), ”b”)

= ᵹ ( D, ”b”) =



( ᵹ(D,b))

= ᵹ ( δ(D,b)) E ϵ Final state

4) S₀= {A}

= ᵹ (A,”aba”)

= ᵹ( ᵹ(C,a))



String 4 : abb

2) S₀ : {A}

= ᵹ ( C,”a”)

=

=



=



(C, ”b”)

=



(ᵹ (C,b))

(δ (C,b))

E ϵ Final state

= ᵹ (A,”abaa”) = ᵹ ( ᵹ(A,a),”baa”) = ᵹ ( δ(A,a),”baa”) = ᵹ( B,”baa”) = ᵹ( ᵹ(B,b),”aa”)) = ᵹ( δ(B,b),”aa”)) = ᵹ( C,”aa”)) = ᵹ( ᵹ(C,a),”aa”)) = ᵹ( δ(C,a),”aa”)) = ᵹ( D,”a”)) = ᵹ( ᵹ(D,a)) = ᵹ( δ(D,a)) D ϵ Final state

 Non accepted String 1 : aa

String 3 = b

1) S₀ S ₀ : {A}

3) S₀= {A}

= ᵹ (A,”aa”)

=



( A, ”b”)

= ᵹ ( ᵹ(A,a),”a”)

=



( ᵹ(A,b))

= ᵹ ( δ(A,a),”a”)

= ᵹ ( δ(A,b))

= ᵹ( B,”a”)

{} ɇ Final state

= ᵹ( ᵹ( B,a)) = ᵹ( δ( B,a)) {} ɇ Final state String 2 : aaa

String 4 : aab

2) S₀ : {A}

4) S₀= {A}

= ᵹ (A,”aaa”)

=



( A, ”aab”)

= ᵹ ( ᵹ(A,a),”aa”)

=



( ᵹ(A,a), ”ab”)

= ᵹ ( δ(A,a),”aa”)

= ᵹ ( δ(A,a), ”ab”)

= ᵹ( B,”aa”)

= ᵹ ( B, ”ab”)

= ᵹ( ᵹ(B,a,”a”))

=



( ᵹ(B,a), ”b”)

=



=



( { }, ”b”)

=



(ᵹ ( { },b))

(δ ( { },b))

{ } ɇ Final state

= ᵹ( δ(B,a),”a”)) = ᵹ ( { },”a”) = ᵹ( ᵹ( {},a)) = ᵹ( δ( {},a))

{ } ɇ Final state

String 5 : bab 5. S₀ : {A}

= ᵹ (A,”bab”) = ᵹ ( ᵹ(A,b),”ab”) = ᵹ ( δ(A,b),”ab”)

=



(δ (B,a), ”b”)

= ᵹ( { },”ab”) = ᵹ( ᵹ( { },a),”b”)) = ᵹ( δ( { },a),”b”)) = ᵹ( { },”b”)) = ᵹ( ᵹ({ },b)) = ᵹ( δ( { },b)) { } ɇ Final state

Flowchart Program DFA Bab 2

D:\Project Java~!\OPK\src\DFA2.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

/** * * @author Erfan */ public class DFA2 { //REGULAR EXPRESSION = ab(a+b)* //deklarasi STATE dalam bentuk variabel private final int A=0; private final int B=1; private final int C=2; private final int D=3; private final int E=4; private final int F=5;

//definisi is_final untuk setiap state yang ada private boolean final_state[]={false,false,true,true,true,false}; //Variable penyimpan uji string private String Uji; //Variabel kursor State private int state; public DFA2(String input_string){ Uji=input_string; //menghilangkan //menghilang kan spasi pada string input Uji=Uji.trim(); //membuat char input menjadi alphabet kecil Uji=Uji.toLowerCase(); this.State_Awal(); this.Proses_Uji(); } //function untuk menguji state pada diagram DFA private int DFA(int x, char c){ switch(x){ case A: switch(c){ case 'a': return B; case 'b':return F; } case B: switch(c){ case 'a': return F; case 'b': return C; } case C: switch(c){ case 'a': return D; case 'b': return E; } case D: switch(c){ case 'a': return D; case 'b': return E; } case E: switch(c){ case 'a': return D; case 'b': return E; }

58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

case F: switch(c){ case 'a': return F; case 'b': return F; } } return 0; } private void Proses_Uji(){ for (int i=0;i < Uji.length();i++){ Uji.length() ;i++){ char c=Uji.charAt(i); c=Uji.charAt (i); state=DFA(state,c); } } private void State_Awal(){ state=0; } public boolean hasil_akhir(){ return final_state[state]; final_state[state]; }

}

Uji coba dengan program 1. ab

Hasil :

2. aba

3.

abab

4. abb

5.

abaa

6.

aa

7.

aaa

8.

b

9.

aab

10.

bab

BAB III

Pertanyaan : Pembuktian String 1 Extend transisi (∑) ∑(So, Word) Stringnya DFA state a, b :

A a

S0,S2

b D

S0, S1

a S2

a

C

B a

S0,S1,S2

b

S6

E

F a

{}

 Jelaskan dan buktikan mengenai soal di bawah ini apakah diterima/ditolak? 1) String 2= bba 2) String 3= abaa  Jawab:

1) S₀ : {A}

2) S₀= {A} =



= ᵹ (A,”bba”)

=



( A, ”abaa”)

= ᵹ ( ᵹ(A,b),”ba”)

=



( ᵹ(A,a), ”baa”)

( ᵹ(B,a))

state(accepted) = ᵹ ( δ(A,b),”ba”)

= ᵹ ( δ(A,a), ”baa”)

= ᵹ( D,”ba”)

= ᵹ ( B, ”baa”)

= ᵹ( ᵹ(D,b),”a”)

=

= ᵹ( δ(D,b),”a”)

= ᵹ ( δ(B,b), ”aa”)

= ᵹ( F,”a”)

= ᵹ ( E, ”aa”)

= ᵹ( ᵹ(F,a))

=

= ᵹ( δ(F,a))

= ᵹ ( δ(E,a), ”a”)





( ᵹ(B,b), ”aa”)

( ᵹ(E,a), ”a”)

F ɇ Final state (not accepted) accepted)

BAB IV

Diketahui: REA = ab (a+b)* A

=

 NFA:

= ᵹ ( B, ”a”)

=



( δ(B,a))

C ϵ Final

a A

a

b

B

C

b a

a

b b D

Pertanyaan : 1) Konver Konversika sikan n NFA ini ini menjad menjadii DFA?  Jawaban : ∑ : {a,b}

A B C D

S : {A, B,C,D}

A B,D C B

S₀ : {A}

F : {B,D}

B C,D B,D -

δ ( {A} , a) = { B , D} a) = {C , B}

δ ( {B}, b)

= {C , D } δ( {B,C,D},

δ ( { A} , b ) ={} b} = {C , D ,B}

δ ( {C,D}, a)

= {C,B}

δ ( {B,D} , a)

= {B}

δ ( {C,D}, b)

= {B,D}

δ ( {B,D} , b)

= {C,D} δ ( {C,B}, a)

δ ( { }, a) = { }

δ ( {C,B}, b)

δ ( { }, b ) = { }

δ ( {C}, a) = {C}

δ ( {B}, a)

={}

DFA :

= {C}

= {B,C,D}

δ ( {C}, b)

= {B,D}

δ( {B,C,D},

a b a

A

B,D

A

{}

a,b

B

C

B

D

a

b

b

b

a C,D

a

a

C,B

E

F a

b

C G

b

C,B,D

b

H

2) Lakukan Lakukan test mengguna menggunakan kan string string dengan program program dan ekstend ekstend transisi a) abbbaa b) babba c) babab

d) abbabb e) aababab f) abbab

 Jawaban: a) S₀ S₀ : {A}

b) So : {A}

= ᵹ (A,”abbbaa”}

= ᵹ (A,”babba”}

= ᵹ (ᵹ (A,a (A,a), ),”b ”bbb bbaa aa”) ”)

= ᵹ (ᵹ (A,b (A,b), ),”ab ”abba ba”) ”)

= ᵹ (δ (A,a),”bbbaa”)

= ᵹ (δ (A,b),”abba”)

= ᵹ (B,”bbbaa”}

= ᵹ (C,”abba”)

= ᵹ (ᵹ (B,b (B,b), ),”b ”bba baa”) a”)

= ᵹ (ᵹ (C,a (C,a), ),”b ”bba ba”) ”)

= ᵹ (δ (B,b),”bbaa”)

= ᵹ (δ (C,a),”bba”)

= ᵹ (E,”bbaa”}

=

= ᵹ (ᵹ (E,b (E,b), ),”b ”baa aa”) ”)

= ᵹ (ᵹ (C,b), (C,b),”b ”ba” a”))

= ᵹ (δ (E,b),”baa”)

= ᵹ (δ (C,b),”ba”)



(C,”bba”)

= ᵹ (B,”baa”}

= ᵹ (C,”ba”)

= ᵹ (ᵹ (B,b) (B,b),” ,”aa aa”) ”)

= ᵹ (ᵹ (C,b (C,b), ),”a ”a”) ”)

= ᵹ (δ (B,b),”aa”)

= ᵹ (δ (C,b),”a”)

= ᵹ (E,”aa”}

= ᵹ (C,”a”)

= ᵹ (ᵹ (E,a (E,a), ),”a ”a”) ”)

= ᵹ (ᵹ (C, (C,a)) a))

= ᵹ (δ (E,a),”a”)

= ᵹ (δ (C,a))

= ᵹ (F,”a”}

C

= ᵹ (ᵹ (F, (F,a)) = ᵹ (δ (F,a)) G ɇ  Final state (not accepted)

ɇ  Final

state (not accepted)

c)S₀ : {A}

d) S₀ : {A}

= ᵹ (A,”babab”}

= ᵹ (A,”abbabb”}

= ᵹ (ᵹ (A,b (A,b), ),”ab ”abab ab”) ”)

= ᵹ (ᵹ (A,a (A,a), ),”b ”bba babb bb”) ”)

= ᵹ (δ (A,b),”abab”)

= ᵹ (δ (A,a),”bbabb”)

= ᵹ (C,”abab”}

= ᵹ (B,”bbabb”)

= ᵹ (ᵹ (C,a (C,a),” ),”ba bab” b”))

= ᵹ (ᵹ (B,b (B,b), ),”b ”bab abb” b”))

= ᵹ (δ (C,a),”bab”)

= ᵹ (δ (B,b),”babb”)

= ᵹ (C,”bab”}

=

= ᵹ (ᵹ (C,b), (C,b),”a ”ab” b”))

= ᵹ (ᵹ (E,b (E,b), ),”ab ”abb” b”))

= ᵹ (δ (C,b),”ab”)

= ᵹ (δ (E,b),”abb”)

= ᵹ (C,”ab”}

= ᵹ (B,”abb”)

= ᵹ (ᵹ (C,a (C,a), ),”b ”b”) ”)

= ᵹ (ᵹ (B,a), (B,a),”b ”bb” b”))

= ᵹ (δ (C,a),”b”)

= ᵹ (δ (B,a),”bb”)

= ᵹ (C,”b”}

= ᵹ (D,”bb”)

= ᵹ (ᵹ (C, (C,b))

= ᵹ (ᵹ (D,b (D,b)) ”b”) ”b”)

= ᵹ (δ (C,b))

= ᵹ (δ (D,b) “b”)

C

=

ɇ  Final

state (not accepted)





(E,”babb”)

(E,”b”)

= ᵹ (ᵹ (E, (E,b))

= ᵹ (ᵹ (E, (E,b)) B ϵ Final state(accepted)

e). S₀ : {A}

f) S₀ : {A}

= ᵹ (A,”aababab”}

= ᵹ (A,”abbab”}

= ᵹ (ᵹ (A,a (A,a), ),”a ”aba baba bab” b”))

= ᵹ (ᵹ (A,a (A,a), ),”b ”bba bab” b”))

= ᵹ (δ (A,a),”ababab”)

= ᵹ (δ (A,a),”bbab”)

= ᵹ (B,”ababab”}

= ᵹ (B,”bbab”)

= ᵹ (ᵹ (B,a (B,a),” ),”ba baba bab” b”))

= ᵹ (ᵹ (B,b (B,b), ),”b ”bab ab”) ”)

= ᵹ (δ (B,a),”babab”)

= ᵹ (δ (B,b),”bab”)

= ᵹ (D,”babab”}

=



(E,”bab”)

= ᵹ (ᵹ (D,b (D,b), ),”ab ”abab ab”) ”)

= ᵹ (ᵹ (E,b), (E,b),”ab ”ab”) ”)

= ᵹ (δ (D,b),”abab”)

= ᵹ (δ (E,b),”ab”)

= ᵹ (E,”abab”}

= ᵹ (B,”ab”)

= ᵹ (ᵹ (E,a (E,a), ),”b ”bab ab”) ”)

= ᵹ (ᵹ (B,a (B,a), ),”b ”b”) ”)

= ᵹ (δ (E,a),”bab”)

= ᵹ (δ (B,a),”b”)

= ᵹ (F,”bab”}

= ᵹ (D,”b”)

= ᵹ (ᵹ (F,b), (F,b),”ab ”ab”) ”)

= ᵹ (ᵹ (D, (D,b))

= ᵹ (δ (F,b),”ab”)

= ᵹ (δ (D,b))

= ᵹ (H,”ab”}

E

= ᵹ (ᵹ (H,a (H,a), ),”b ”b”) ”) = ᵹ (δ (H,a),”b”) = ᵹ (F,”bab”}

= ᵹ (ᵹ (F,b), (F,b),”ab ”ab”) ”) = ᵹ (δ (F,b),”ab”) = ᵹ (H,”ab”}

= ᵹ (ᵹ (H,a (H,a), ),”b ”b”) ”) = ᵹ (δ (H,a),”b”) = ᵹ (F,”b”)

= ᵹ (ᵹ (F, (F,b))

ϵ

Final state(accepted)

= ᵹ (δ (F,b)) H ϵ Final state(accepted)

Flowchart program DFA DFA bab IV

1

Evaluasic

C =‘a’ ?

ya

state= stat e=G

ya

state=H

tidak

5

tidak

C =‘b’ ?

2

Evaluasi c

C =‘a’ ?

ya

state=G 4

tidak

5

tidak

C =‘b’ ?

ya

state= stat e=B

C =‘a’ ?

ya

state stat e=F

ya

state stat e=H

3

Evaluasi c

tidak

5

tidak

C =‘b’ ?

Kode Program

D:\Project Java~!\OPK\src\DFA1.java 1 /** 2 * 3 * @author Erfan 4 */ 5 public class DFA1 { 6 7 //REGULAR EXPRESSION = ab(a+b)* 8 //deklarasi STATE dalam bentuk variabel 9 private final int A=0; 10 private final int B=1; 11 private final int C=2; 12 private final int D=3; 13 private final int E=4; 14 private final int F=5; 15 private final int G=6; 16 private final int H=7; 17 18 //definisi is_final untuk setiap state yang ada 19 private boolean final_state[]={false,true,false,true,true,true,false,true}; 20 21 //Variable penyimpan uji string 22 private String Uji; 23 24 //Variabel kursor State 25 private int state; 26 27 public DFA1(String DFA1(String input_string){ input_string){ 28 Uji=input_string; 29 //menghilangkan //menghilang kan spasi pada string input 30 Uji=Uji.trim(); 31 //membuat char input menjadi alphabet kecil 32 Uji=Uji.toLowerCase(); 33 this.State_Awal(); 34 this.Proses_Uji(); 35 } 36 private void State_Awal(){ 37 state=0; 38 } 39 40 //function untuk menguji state pada diagram DFA 41 private int DFA(int x, char c){ 42 switch(x){ 43 case A: switch(c){ 44 case 'a': return B; 45 case 'b': return C; 46 } 47 case B: switch(c){ 48 case 'a': return D; 49 case 'b': return E; 50 } 51 case C: switch(c){ 52 case 'a': return C;

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

case 'b': return C; } case D: switch(c){ case 'a': return C; case 'b': return E; } case E: switch(c){ case 'a': return F; case 'b': return B; } case F:switch(c){ case 'a': return G; case 'b': return H; } case G:switch(c){ case 'a': return G; case 'b': return B; } case H:switch(c){ case 'a':return F; case 'b':return H; } } return 0; } private void Proses_Uji(){ for (int i=0;i < Uji.length();i++){ Uji.length() ;i++){ char c=Uji.charAt(i); c=Uji.charAt (i); state=DFA(state,c); } } public boolean hasil_akhir(){ return final_state[state]; final_state[state]; } }

Tampilan Uji Coba Program 1.

abbbaa

Hasil :

Not Accepted 2.

babba

Hasil :

Not Accepted 3.

babab

Hasil :

Not Accepted

4.

abbabb

Hasil :

Accepted

5.

aababab

Hasil :

Accepted 6.

abbab

Hasil :

Accepted

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF