otomata dan pengantar kompilasi - laporan tugas uts
DESCRIPTION
Laporan Tugas UTS OPK TIF UWKS 09/10TRANSCRIPT
OTOMATA dan PENGANTAR KOMPILASI
Nama Kelompok :
1. Rico Andry (B/09120006)
2. Tara braja (B/09120020)
3. Erfan R S (B/09120073)
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
string masukan dalam langkah waktu diskrit. Pada setiap langkah waktu, robot
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
langkah saat otomat membaca simbol, melompat atau transit ke negara berikutnya
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
pada keadaan akhir, dikatakan bahwa otomat baik menerima atau menolak kata
masukan. Ada bagian dari negara bagian otomat, yang didefinisikan sebagai satu set
negara penerima. Jika keadaan akhir adalah menerima 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 adalah himpunan terhingga negara
- ∑ adalah himpunan terbatas dari simbol, yang disebut alfabet dari 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 * ∑, merupakan urutan
negara-negara q0, q1, q3,....,qn, Dimana q1 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
Automata didefinisikan untuk belajar mesin berguna dalam formalisme
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 deterministik. Berikut ini adalah beberapa variasi populer dalam definisi
komponen yang berbeda dari automata.
Input
- Hingga input : Sebuah robot yang hanya menerima hingga urutan kata-kata.
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
- Deterministik: Untuk kondisi saat ini diberikan dan simbol input, jika robot
hanya dapat melompat ke satu dan hanya satu negara maka itu adalah otomat
deterministik.
- Sebuah robot yang setelah membaca sebuah simbol input, dapat melompat ke
salah satu dari sejumlah negara, seperti yang dilisensi oleh hubungan transisi.
Perhatikan bahwa fungsi transisi istilah digantikan oleh hubungan transisi: otomat non-
- deterministik memutuskan untuk melompat ke salah satu pilihan yang diizinkan
robot seperti ini disebut otomat nondeterministic,
- Alternatif : gagasan ini sangat mirip dengan robot pohon , tetapi orthogonal.
Robot mungkin menjalankan beberapa salinan terhadap membaca simbol berikutnya
yang sama. Automata seperti ini disebut bolak otomat. Kondisi Penerimaan harus
memenuhi semua berjalan salinan tersebut untuk menerima input.
Penerimaan kondisi
- Penerimaan kata-kata hingga: Sama seperti yang dijelaskan dalam definisi
informal diatas.
- Penerimaan kata-kata yang tak terbatas: omega robot tidak dapat 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 selama menjalankan.
- Penerimaan Probabilistik: sebuah robot tidak perlu benar-benar menerima 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 deterministic hingga automata dengan e transisi (FND –e atau e- NFA)
Reguler bahasa
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 Mesin Pengenal Bahasa
Unrestricted Grammar (UG) Mesin Turing (Turing Machine), TM
Context Sensitive Grammar (CSG) Linear Bounded Automata, LBA
Context Free Gammar (CFG) Pushdown Automata, PDA
Regular Grammar, RG Finite State Automata, FSA
BAB II
Pertanyaan :
Diketahui REA = ab (a+b)*
1) Rancang mesin FA-nya ?
2) Buat program FA tersebut
3) Uji coba program
(min 5 string rejected dan accepted)
Jawaban:
∑ = {a,b} L= {ab,aba,abaa..,abab,...}
S = {A,B,C,D,E)
Sₒ= {A}
NFA:
δ ( {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) = { }
δ ( {C}, a) = {D}
DFA :
Accepted
String 1 : ab String 3 = abab
1) S₀ : {A} 3) S₀= {A} = ᵹ ( ᵹ(C,a), ”b”)
= ᵹ (A,”ab”) = ᵹ ( A, ”abab”) = ᵹ ( δ(C,a), ”b”)
= ᵹ ( ᵹ(A,a),”b”) = ᵹ ( ᵹ(A,a), ”bab”) = ᵹ ( D, ”b”)
= ᵹ ( δ(A,a),”b”) = ᵹ ( δ(A,a), ”bab”) = ᵹ ( ᵹ(D,b))
= ᵹ( B,”b”) = ᵹ ( B, ”bab”) = ᵹ ( δ(D,b))
= ᵹ( ᵹ(B,b)) = ᵹ ( ᵹ(B,b), ”ab”) E ϵ Final state
= ᵹ( δ(B,b)) = ᵹ ( δ(B,b), ”ab”)
C ϵ Final state = ᵹ ( C, ”ab”)
String 2 : aba String 4 : abb
2) S₀ : {A} 4) S₀= {A} = ᵹ (C, ”b”)
= ᵹ (A,”aba”) = ᵹ ( A, ”abb”) = ᵹ (ᵹ (C,b))
= ᵹ ( ᵹ(A,a),”ba”) = ᵹ ( ᵹ(A,a), ”bb”) = ᵹ (δ (C,b))
= ᵹ ( δ(A,a),”ba”) = ᵹ ( δ(A,a), ”bb”) E ϵ Final state
= ᵹ( B,”ba”) = ᵹ ( B, ”bb”)
= ᵹ( ᵹ(B,b,”a”)) = ᵹ ( ᵹ(B,b), ”b”)
= ᵹ( δ(B,b,”a”)) = ᵹ (δ (B,b), ”b”)
= ᵹ ( C,”a”)
= ᵹ( ᵹ(C,a))
= ᵹ( δ(C,a))
D ϵ Final state
String 5 : abaa
5. S₀ : {A}
= ᵹ (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₀ : {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} = ᵹ ( { }, ”b”)
= ᵹ (A,”aaa”) = ᵹ ( A, ”aab”) = ᵹ (ᵹ ( { },b))
= ᵹ ( ᵹ(A,a),”aa”) = ᵹ ( ᵹ(A,a), ”ab”) = ᵹ (δ ( { },b))
= ᵹ ( δ(A,a),”aa”) = ᵹ ( δ(A,a), ”ab”) { } ɇ Final state
= ᵹ( B,”aa”) = ᵹ ( B, ”ab”)
= ᵹ( ᵹ(B,a,”a”)) = ᵹ ( ᵹ(B,a), ”b”)
= ᵹ( δ(B,a),”a”)) = ᵹ (δ (B,a), ”b”)
= ᵹ ( { },”a”)
= ᵹ( ᵹ( {},a))
= ᵹ( δ( {},a))
{ } ɇ Final state
String 5 : bab
5. S₀ : {A}
= ᵹ (A,”bab”)
= ᵹ ( ᵹ(A,b),”ab”)
= ᵹ ( δ(A,b),”ab”)
= ᵹ( { },”ab”)
= ᵹ( ᵹ( { },a),”b”))
= ᵹ( δ( { },a),”b”))
= ᵹ( { },”b”))
= ᵹ( ᵹ({ },b))
= ᵹ( δ( { },b))
{ } ɇ Final state
Flowchart Program DFA Bab 2
Kode Program
D:\Project Java~!\OPK\src\DFA2.java 1 /** 2 * 3 * @author Erfan 4 */ 5 public class DFA2 { 6 //REGULAR EXPRESSION = ab(a+b)* 7 //deklarasi STATE dalam bentuk variabel 8 private final int A=0; 9 private final int B=1;10 private final int C=2;11 private final int D=3;12 private final int E=4;13 private final int F=5;14 15 16 //definisi is_final untuk setiap state yang ada17 private boolean final_state[]={false,false,true,true,true,false};18 19 //Variable penyimpan uji string20 private String Uji;21 22 //Variabel kursor State23 private int state;24 25 public DFA2(String input_string){26 Uji=input_string;27 //menghilangkan spasi pada string input28 Uji=Uji.trim();29 //membuat char input menjadi alphabet kecil30 Uji=Uji.toLowerCase();31 this.State_Awal();32 this.Proses_Uji();33 }34 35 //function untuk menguji state pada diagram DFA36 private int DFA(int x, char c){37 switch(x){38 case A: switch(c){39 case 'a': return B;40 case 'b':return F;41 }42 case B: switch(c){43 case 'a': return F;44 case 'b': return C;45 }46 case C: switch(c){47 case 'a': return D;48 case 'b': return E;49 }50 case D: switch(c){51 case 'a': return D;52 case 'b': return E;53 }54 case E: switch(c){55 case 'a': return D;56 case 'b': return E;57 }
58 case F: switch(c){59 case 'a': return F;60 case 'b': return F;61 }62 63 64 }65 return 0;66 }67 68 private void Proses_Uji(){69 70 for (int i=0;i < Uji.length();i++){71 char c=Uji.charAt(i);72 state=DFA(state,c);73 }74 75 }76 77 private void State_Awal(){78 state=0;79 }80 81 public boolean hasil_akhir(){82 return final_state[state];83 }84 85 86 87 }88 89 90 91 92
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 :
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} = ᵹ ( ᵹ(B,a))
= ᵹ (A,”bba”) = ᵹ ( A, ”abaa”) = ᵹ ( δ(B,a))
= ᵹ ( ᵹ(A,b),”ba”) = ᵹ ( ᵹ(A,a), ”baa”) C ϵ Final state(accepted)
= ᵹ ( δ(A,b),”ba”) = ᵹ ( δ(A,a), ”baa”)
= ᵹ( D,”ba”) = ᵹ ( B, ”baa”)
= ᵹ( ᵹ(D,b),”a”) = ᵹ ( ᵹ(B,b), ”aa”)
= ᵹ( δ(D,b),”a”) = ᵹ ( δ(B,b), ”aa”)
= ᵹ( F,”a”) = ᵹ ( E, ”aa”)
= ᵹ( ᵹ(F,a)) = ᵹ ( ᵹ(E,a), ”a”)
= ᵹ( δ(F,a)) = ᵹ ( δ(E,a), ”a”)
F ɇ Final state (not accepted) = ᵹ ( B, ”a”)
BAB IV
Diketahui:
REA = ab (a+b)*
A =
NFA:
Pertanyaan :
1) Konversikan NFA ini menjadi DFA?
Jawaban :
∑ : {a,b} S : {A, B,C,D} S₀ : {A} F : {B,D}
A BA B , D -B - C , DC C B , DD B -
δ ( {A} , a) = { B , D} δ ( {B}, b) = {C , D } δ( {B,C,D}, a) = {C , B}
δ ( {A} , b) = { } δ ( {C,D}, a) = {C,B} δ( {B,C,D}, b} = {C , D ,B}
δ ( {B,D} , a) = {B} δ ( {C,D}, b) = {B,D}
δ ( {B,D} , b) = {C,D} δ ( {C,B}, a) = {C}
δ ( { }, a) = { } δ ( {C,B}, b) = {B,C,D}
δ ( { }, b) = { } δ ( {C}, a) = {C}
δ ( {B}, a) = { } δ ( {C}, b) = {B,D}
DFA :
2) Lakukan test menggunakan string dengan program dan ekstend transisia) abbbaa d) abbabbb) babba e) aabababc) babab f) abbab
Jawaban:a) S₀ : {A} b) So : {A}
= ᵹ (A,”abbbaa”} = ᵹ (A,”babba”}
= ᵹ (ᵹ (A,a),”bbbaa”) = ᵹ (ᵹ (A,b),”abba”)
= ᵹ (δ (A,a),”bbbaa”) = ᵹ (δ (A,b),”abba”)
= ᵹ (B,”bbbaa”} = ᵹ (C,”abba”)
= ᵹ (ᵹ (B,b),”bbaa”) = ᵹ (ᵹ (C,a),”bba”)
= ᵹ (δ (B,b),”bbaa”) = ᵹ (δ (C,a),”bba”)
= ᵹ (E,”bbaa”} = ᵹ (C,”bba”)
= ᵹ (ᵹ (E,b),”baa”) = ᵹ (ᵹ (C,b),”ba”)
= ᵹ (δ (E,b),”baa”) = ᵹ (δ (C,b),”ba”)
= ᵹ (B,”baa”} = ᵹ (C,”ba”)
= ᵹ (ᵹ (B,b),”aa”) = ᵹ (ᵹ (C,b),”a”)
= ᵹ (δ (B,b),”aa”) = ᵹ (δ (C,b),”a”)
= ᵹ (E,”aa”} = ᵹ (C,”a”)
= ᵹ (ᵹ (E,a),”a”) = ᵹ (ᵹ (C,a))
= ᵹ (δ (E,a),”a”) = ᵹ (δ (C,a))
= ᵹ (F,”a”} C ɇ Final state (not accepted)
= ᵹ (ᵹ (F,a))
= ᵹ (δ (F,a))
G ɇ Final state (not accepted)
c)S₀ : {A} d) S₀ : {A}
= ᵹ (A,”babab”} = ᵹ (A,”abbabb”}
= ᵹ (ᵹ (A,b),”abab”) = ᵹ (ᵹ (A,a),”bbabb”)
= ᵹ (δ (A,b),”abab”) = ᵹ (δ (A,a),”bbabb”)
= ᵹ (C,”abab”} = ᵹ (B,”bbabb”)
= ᵹ (ᵹ (C,a),”bab”) = ᵹ (ᵹ (B,b),”babb”)
= ᵹ (δ (C,a),”bab”) = ᵹ (δ (B,b),”babb”)
= ᵹ (C,”bab”} = ᵹ (E,”babb”)
= ᵹ (ᵹ (C,b),”ab”) = ᵹ (ᵹ (E,b),”abb”)
= ᵹ (δ (C,b),”ab”) = ᵹ (δ (E,b),”abb”)
= ᵹ (C,”ab”} = ᵹ (B,”abb”)
= ᵹ (ᵹ (C,a),”b”) = ᵹ (ᵹ (B,a),”bb”)
= ᵹ (δ (C,a),”b”) = ᵹ (δ (B,a),”bb”)
= ᵹ (C,”b”} = ᵹ (D,”bb”)
= ᵹ (ᵹ (C,b)) = ᵹ (ᵹ (D,b) ”b”)
= ᵹ (δ (C,b)) = ᵹ (δ (D,b) “b”)
C ɇ Final state (not accepted) = ᵹ (E,”b”)
= ᵹ (ᵹ (E,b))
= ᵹ (ᵹ (E,b))
B ϵ Final state(accepted)
e). S₀ : {A} f) S₀ : {A}
= ᵹ (A,”aababab”} = ᵹ (A,”abbab”}
= ᵹ (ᵹ (A,a),”ababab”) = ᵹ (ᵹ (A,a),”bbab”)
= ᵹ (δ (A,a),”ababab”) = ᵹ (δ (A,a),”bbab”)
= ᵹ (B,”ababab”} = ᵹ (B,”bbab”)
= ᵹ (ᵹ (B,a),”babab”) = ᵹ (ᵹ (B,b),”bab”)
= ᵹ (δ (B,a),”babab”) = ᵹ (δ (B,b),”bab”)
= ᵹ (D,”babab”} = ᵹ (E,”bab”)
= ᵹ (ᵹ (D,b),”abab”) = ᵹ (ᵹ (E,b),”ab”)
= ᵹ (δ (D,b),”abab”) = ᵹ (δ (E,b),”ab”)
= ᵹ (E,”abab”} = ᵹ (B,”ab”)
= ᵹ (ᵹ (E,a),”bab”) = ᵹ (ᵹ (B,a),”b”)
= ᵹ (δ (E,a),”bab”) = ᵹ (δ (B,a),”b”)
= ᵹ (F,”bab”} = ᵹ (D,”b”)
= ᵹ (ᵹ (F,b),”ab”) = ᵹ (ᵹ (D,b))
= ᵹ (δ (F,b),”ab”) = ᵹ (δ (D,b))
= ᵹ (H,”ab”} E ϵ Final state(accepted)
= ᵹ (ᵹ (H,a),”b”)
= ᵹ (δ (H,a),”b”)
= ᵹ (F,”bab”}
= ᵹ (ᵹ (F,b),”ab”)
= ᵹ (δ (F,b),”ab”)
= ᵹ (H,”ab”}
= ᵹ (ᵹ (H,a),”b”)
= ᵹ (δ (H,a),”b”)
= ᵹ (F,”b”)
= ᵹ (ᵹ (F,b))
= ᵹ (δ (F,b))
H ϵ Final state(accepted)
Flowchart program DFA bab IV
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 ada19 private boolean final_state[]={false,true,false,true,true,true,false,true};20 21 //Variable penyimpan uji string22 private String Uji;23 24 //Variabel kursor State25 private int state;26 27 public DFA1(String input_string){28 Uji=input_string;29 //menghilangkan spasi pada string input30 Uji=Uji.trim();31 //membuat char input menjadi alphabet kecil32 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 DFA41 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
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