Berikut adalah contoh sebuah class DFA yang merupakan soal UTS no.4, Teknik Informatika,UWKS.
|
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 input_string){ 28 Uji=input_string; 29 //menghilangkan 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 case 'b': return C; 54 } 55 case D: switch(c){ 56 case 'a': return C; 57 case 'b': return E; 58 } 59 case E: switch(c){ 60 case 'a': return F; 61 case 'b': return B; 62 } 63 case F:switch(c){ 64 case 'a': return G; 65 case 'b': return H; 66 } 67 case G:switch(c){ 68 case 'a': return G; 69 case 'b': return B; 70 } 71 case H:switch(c){ 72 case 'a':return F; 73 case 'b':return H; 74 } 75 } 76 return 0; 77 } 78 79 private void Proses_Uji(){ 80 81 for (int i=0;i < Uji.length();i++){ 82 char c=Uji.charAt(i); 83 state=DFA(state,c); 84 } 85 86 } 87 public boolean hasil_akhir(){ 88 return final_state[state]; 89 } 90 } 91 92
Catatan : class diatas dapat dengan mudah diubah, sesuai dengan gambar dfa yang akan digunakan.
yaitu dengan merubah jumlah variabel statenya dan switch case pada method DFA.
Unduh contoh aplikasi DFA dengan tampilan GUI sederhana.
Unduh disini
mantebh mas erfan ..
BalasHapusheheh
ini yang bab 2 yah, mas..?
BalasHapuskalau mesin turing gmn ya mas?
BalasHapusmohon di bantu