500 likes | 700 Views
14. PUSH DOWN AUTOMATA. 14.1 Push Down Automata (PDA) Merupakan mesin otomata dari bahasa bebas konteks . Perbedaan PDA dengan Otomata Hingga terletak pada kemampuan memori . Otomata hingga mempunyai memori yang terbatas , sedangkan PDA mempunyai memori yang tidak terbatas ,
E N D
14.1 Push Down Automata (PDA) Merupakanmesinotomatadaribahasabebas konteks. Perbedaan PDA denganOtomataHinggaterletak padakemampuanmemori. Otomatahingga mempunyaimemori yang terbatas, sedangkan PDA mempunyaimemori yang tidakterbatas, berupastack. Stackadalahkumpulandarielemen-elemensejenis dengansifatpenambahanelemendanpengambilan elemenmelaluisuatutempat yang disebut top of stack.
Aturanpengisianataupengeluaranelemenstack menganutsistem LIFO (Last In First Out). Pengambilanelemendari stack dikenaldenganistilah pop. Sedangkanmemasukkanelemenkedalam stack dikenaldenganistilahpush. Contohsebuahstack Top-stack A D D E E Biladilakukanoperasipop, makakondisi stack menjadi: Top-stack
Biladilakukanoperasipush B, makakondisistack menjadi: B Top-stack D E
Sebuah PDA dinyatakandalam 7 tupel: • M = (Q, , , , S, F, Z) • Q = himpunanstate • = himpunansimbol input • = simbol-simboltumpukan / stack • = fungsitransisi • S = stateawal, S Q • F = himpunanfinal state, F Q • Z = simbolawaltumpukan / top stack, Z • Dari komponendiatasdapatdisimpulkanbahwa: • - DefinisiuntukQ, , S, F samadengan yang adapada • otomatahingga. • Tupelbaruadalah , Z yang berhubungandenganstack. • memilikikemiripandengan padaotomatahingga • denganbeberapaperbedaan (akandijelaskankemudian)
PDA dapatdianggapsebagaiotomatahingga yang dilengkapidenganstack. Sebuah PDA yang menerimainput, selainbisa berpindahstatejugabisamelakukanoperasipada stack. Kondisiataukonfigurasi PDA padasuatusaat dinyatakandenganstatedanstack. Jenistransisipada PDA; Membacasimbolinput Tanpamembacasimbolinput.
Membacasimbol input Pada PDA yang membacasimbol input, terdapat sejumlahpilihan yang mungkin, bergantungpada simbolinput, simbolpadatop-stack, danstate. Setiappilihanterdiridaristateberikutnyadan simbol-simbol (bisasatu, beberapa, ataukosong) untukmenggantisimbolpadatop-stack. Penggantiansimbolpadatop-stackbisaberupapush, untuksatuataubeberapasimbol, atauberupapop untuksimbolkosong. Setelahmembuatpilihan, kemudian PDA membaca simbolinputberikutnya.
2. Tanpamembacasimbol input Jenistransisitanpamembaca input adalahtransisi yang dilakukantanpamembacainputatau. Transisiinimemungkinkan PDA memanipulasiisi stackatauberpindahstatetanpamembacainput. Jenis-jenis PDA: PDA null stack, yaitu PDA yang melakukan penerimaaninputdenganstackkosong. 2. PDA final state,yaitu PDA yang melakukan penerimaaninput yang pilihantransisinya menyebabkan PDA mencapaifinal state.
Contoh 14.1 • Sebuah PDA • Q = {q1, q2} • = {a, b} • = {A, B, Z} • S = q1 • Z = Z • F = {q2} PDA tersebutmemilikifungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)}
Kita bisamembacafungsi transisitsb. sebagaiberikut. (q1, a, Z) = {(q1, AZ)} Mesindengankonfigurasi: State q1dantop-stack Z membacainput ‘a’ Fungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} Z Konfigurasimenjadi: State q1 , push A kestack, A menjaditop-stack A Z
(q1, b, A) = {(q1, )} Mesindengankonfigurasi: State q1dantop-stack A membacainput ‘b’ Fungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} A Konfigurasimenjadi: State q1 , pop A daristack, elemendibawah A menjaditop-stack
(q1, , Z) = {(q2, Z)} Mesindengankonfigurasi: State q1dantop-stack Z tanpamembacainput. Fungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} Z Z Konfigurasimenjadi: State q2, stacktidakberubah
Contoh 14.2 • Sebuah PDA • Q = {q1, q2} • = {a, b} • = {A, B, Z} • S = q1 • Z = Z • F = {q2} PDA tersebutmemilikifungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} Tentukanapakah PDA diatasdapatmenerima string ‘abba’ Penyelesaian:
Fungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} Konfigurasiawalmesin: state q1 , top-stack Z, membaca input ‘a’. Fungsitransisinya: (q1, a, Z) = {(q1, AZ)} Konfigurasimesinmenjadi: state q1danpush A Z A Z
2. Membacainput ‘b’. Fungsitransisinya: (q1, b, A) = {(q1, )} Konfigurasimesinmenjadi: state q1dantop-stackdipop Fungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} Z 3. Membacainput ‘b’. Fungsitransisinya: (q1, b, Z) = {(q1, BZ)} Konfigurasimesinmenjadi: state q1dan B dipush B Z
4. Membacainput ‘a’. Fungsitransisinya: (q1, a, B) = {(q1, )} Konfigurasimesinmenjadi: state q1dantop-stackdipop Fungsitransisi: (q1, , Z) = {(q2, Z)} (q1, a, Z) = {(q1, AZ)} (q1, b, Z) = {(q1, BZ)} (q1, a, A) = {(q1, AA)} (q1, b, A) = {(q1, )} (q1, a, B) = {(q1, )} (q1, b, B) = {(q1, BB)} Z 5. Semua input sudahselesaidibaca. Fungsitransisinya: (q1, , Z) = {(q2, Z)} Konfigurasimesinmenjadi: state q2 State q2beradadalam F (final state), maka ‘abba’ diterimaoleh PDA Z
Contoh 14.3 Sebuah PDA Q = {q1, q2} ; = {0, 1, 2} ; = {Z, B, G} ; S = {q1 , q2} ; Z = Z ; F = PDA tersebutmemilikifungsitransisi: (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} Tentukanapakah PDA diatasdapatmenerima string ‘020’ Penyelesaian:
Z B (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z Konfigurasiawalmesin: state q1 , top-stack Z, menerima input ‘0’. Fungsitransisinya: (q1, 0, Z) = {(q1, BZ)} Konfigurasimesinmenjadi: state q1danpush B
2. Membaca input ‘2’ Fungsitransisinya: (q1, 2, B) = {(q2, B)} Konfigurasimesinmenjadi: state q2danstack tetap B (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z
3. Membaca input ‘0’ Fungsitransisinya: (q2, 0, B) = {(q2, )} Konfigurasimesinmenjadi: state q2dan B dipop (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z
4. Tanpamembaca input ( ) Fungsitransisinya: (q2, , Z) = {(q2, )} Konfigurasimesinmenjadi: state q2dan Z dipop Stack kosong (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Karenastring‘020’ telahselesai dibacadanberakhirpadastack kosong, maka PDA dapat menerimastring‘020’.
14.2 PDA untuksuatutatabahasabebaskonteks PDA adalahmerupakanpenerimabahasa-bahasa bebaskonteks, sehinggadarisuatutatabahasa bebaskontekskitadapatmemperolehsebuah PDA, begitujugasebaliknya. Sebuah PDA bisadibuatuntukkumpulanaturan Produksidarisuatutatabahasabebaskonteks. Langkah-langkahnyaadalahsebagaiberikut: 1. Definisikan: Q = {q1, q2, q3 } S = q1 F = { q3 } = simbol terminal
Untuk yang berhubungandenganstack, tentukan : • = semuasimbolvariabel, simbol terminal, dan • Z (simbolawalstack) • 2. Mesininidimulaidenganmem-push Z pada top stack. Padasetiaplangkahberikutnyadilakukan • salahsatudariduahalberikut: • Jikatop-stackadalahvariabel , misal A, kitagantikandenganruaskanandari A, misal A w, • makakitagantidengan w. • Jikatop-stackadalah terminal, dansamadengansimbolmasukanberikutnya, makakitapopdaristack.
3. Berdasarkanaturandiatas, kitadapatmengkonstruksiempattipetransisiberikut. • (q1 , , Z) = {(q2 , SZ)} untukmem-pushsimbolawal (S) kestack. • (q2 , , A) = {(q2 , w) | A w adalahsebuahsimbolproduksidalamtatabahasabebaskonteksitu} untuksemuavariabel A. • (q2 , a, a) = {(q2 , )} untuksetiapsimbol terminal (untukmem-poppembandingan terminal yang sama) • (q2 , , Z) = {(q3 , Z)}, bilaselesaimembacasemuainputdantop-stackadalah Z, berartistringinputsuksesditerimaoleh PDA ( q3stateakhir)
Contoh 14.4 • Sebuahtatabahasabebaskonteks, D aDa | bDb | c • PDA nyadapatdikonstruksimenjadi: • Q = {q1, q2, q3 } • S = q1 • F = { q3 } • = {a, b, c} • = {D, a, b, c, Z} • Fungsitransisinya: • (q1, , Z) = {(q2, DZ)} • (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} • (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} • (q2, , Z) = {(q3, Z)}
Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘aca’ dari D aDa aca Karenatatabahasabebaskonteksbisamenurunkanstring ‘aca’ , maka PDA jugaharusdapatmenerimauntaitersebut. Langkahpemeriksaan:
Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)} Konfigurasiawalmesin: state q1 , top-stack Z, tanpamenerimainput (). Fungsitransisinya: (q1, , Z) = {(q2, DZ)} Konfigurasimesinmenjadi: state q2danpush D
Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)} 2. Tanpamenerimainput (). Fungsitransisinya: (q2, , D) = {(q2, aDa)} Konfigurasimesinmenjadi: state q2, pop top-stack push‘aDa’
3. Menerimainput ‘a’ Fungsitransisinya: (q2, a, a) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
4. Tanpamenerimainput ( ) Fungsitransisinya: (q2, , D) = {(q2, c)} Konfigurasimesinmenjadi: state q2 , pop top-stack, push c Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
5. Menerimainput ’c’ Fungsitransisinya: (q2, c, c) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
6. Menerimainput ’a’ Fungsitransisinya: (q2, a, a) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
7. Tanpamenerimainput () Fungsitransisinya: (q2, , Z) = {(q3, Z)} Konfigurasimesinmenjadi: state q3 Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)} Tidakadatransisilagidari q3 . Karena q3stateakhirdansemuainputsudahselesaidibaca, sehinggamenandakanuntai ‘aca’ diterimaoleh PDA tersebut.
14.3 Deskripsiseketikapada PDA Langkah 1 s.d. 7 padacontohsoal 14.4, dapatjugadinyatakandalamsuatunotasi yang disebutdeskripsiseketika (instantaneous description). Deskripsiseketikatersebutdigunakanuntukmenyatakansecara formal konfigurasi PDA padasuatusaat. Perubahandarisuatukondisikekondisiberikutnyadipisahkandengantanda ‘┣’. Konfigurasisuatusaatdapatdinyatakandengan triplet: (q, w, u) Dimana q menyatakanstate, w adalahstring yang belumdibaca, sedangkan u adalahisistackdengansimbolterkiriadalahpop-stack.
Tahapannomor 1 s.d. 7 dapatdinyatakansebagaiberikut: (q1 , aca, Z) (q2, aca, DZ) (q2, aca, aDaZ) (q2, ca, DaZ) (q2, ca, caZ) (q2 , a, aZ) (q2 , , Z) (q3, , Z)
Latihan 1. Sebuah PDA Q = {q1, q2} ; = {0, 1, 2} ; = {Z, B, G} ; S = {q1 , q2} ; Z = Z ; F = PDA tersebutmemilikifungsitransisi: (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} Tentukanapakah PDA diatasdapatmenerima string ‘121’ Penyelesaian:
Z G (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z Konfigurasiawalmesin: state q1 , top-stack Z, menerima input ‘1’. Fungsitransisinya: (q1, 1, Z) = {(q1, GZ)} Konfigurasimesinmenjadi: state q1danpush G
2. Membaca input ‘2’ Fungsitransisinya: (q1, 2, G) = {(q2, G)} Konfigurasimesinmenjadi: state q2danstack tetap G (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z
3. Membaca input ‘1’ Fungsitransisinya: (q2, 1, G) = {(q2, )} Konfigurasimesinmenjadi: state q2dan G dipop (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )} Z
4. Tanpamembaca input ( ) Fungsitransisinya: (q2, , Z) = {(q2, )} Konfigurasimesinmenjadi: state q2dan Z dipop Stack kosong (q1, 0, Z) = {(q1, BZ)} (q1, 0, B) = {(q1, BB)} (q1, 0, G) = {(q1, BG)} (q1, 2, Z) = {(q2, Z)} (q1, 2, B) = {(q2, B)} (q1, 2, G) = {(q2, G)} (q2, 0, B) = {(q2, )} (q2, , Z) = {(q2, )} (q1, 1, Z) = {(q1, GZ)} (q1, 1, B) = {(q1, GB)} (q1, 1, G) = {(q1, GG)} (q2, 1, G) = {(q2, )}
Latihan 2 • Sebuahtatabahasabebaskonteks, D aDa | bDb | c • PDA nyadapatdikonstruksimenjadi: • Q = {q1, q2, q3 } • S = q1 • F = { q3 } • = {a, b, c} • = {D, a, b, c, Z} • Fungsitransisinya: • (q1, , Z) = {(q2, DZ)} • (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} • (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} • (q2, , Z) = {(q3, Z)}
Dari aturanproduksi yang ada, tatabahasabebaskontekstersebutbisamenurunkanuntai ‘bcb’ dari D bDb bcb Karenatatabahasabebaskonteksbisamenurunkanstring ‘bcb’ , maka PDA jugaharusdapatmenerimauntaitersebut. Langkahpemeriksaan:
Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)} Konfigurasiawalmesin: state q1 , top-stack Z, tanpamenerimainput (). Fungsitransisinya: (q1, , Z) = {(q2, DZ)} Konfigurasimesinmenjadi: state q2danpush D
2. Tanpamenerimainput (). Fungsitransisinya: (q2, , D) = {(q2, bDb)} Konfigurasimesinmenjadi: state q2 , pop top-stack push ‘bDb’ Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
3. Menerimainput ‘b’ Fungsitransisinya: (q2, b, b) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
4. Tanpamenerimainput ( ) Fungsitransisinya: (q2, , D) = {(q2, c)} Konfigurasimesinmenjadi: state q2 , pop top-stack, push c Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
5. Menerimainput ’c’ Fungsitransisinya: (q2, c, c) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
6. Menerimainput ’b’ Fungsitransisinya: (q2, b, b) = {(q2, )} Konfigurasimesinmenjadi: state q2 , pop top-stack Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)}
7. Tanpamenerimainput () Fungsitransisinya: (q2, , Z) = {(q3, Z)} Konfigurasimesinmenjadi: state q3 Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)} Tidakadatransisilagidari q3 . Karena q3stateakhirdansemuainputsudahselesaidibaca, sehinggamenandakanuntai ‘bcb’ diterimaoleh PDA tersebut.
Fungsitransisinya: (q1, , Z) = {(q2, DZ)} (q2, , D) = {(q2, aDa), (q2, bDb), (q2, c)} (q2, a, a) = (q2, b, b) = (q2, c, c) = {(q2, )} (q2, , Z) = {(q3, Z)} Latihan 3: Kerjakanlatihan 2, dengandeskripsiseketika. (q1 , bcb, Z) (q2, bcb, DZ) (q2, bcb, bDbZ) (q2, cb, DaZ) (q2, cb, cbZ) (q2 , b, bZ) (q2 , , Z) (q3, , Z)