PALINDROM CONTEXT FREE GRAMMAR PADA MESIN PUSH DOWN AUTOMATA

dokumen-dokumen yang mirip
Fr*snd*mffi. Fakultns tlmu Komputer, l;nivrrsitfls. f&,# d *-B. ,, :..:.4 t:,{;. ${r= st :rir"l, r;t. .j"s*l!&,. '":*& \',?Srlrlfu. :1i-,=-+n 3r: lvqd

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

PushDown Automata(PDA) Definisi : PDA adalah pasangan 7 tuple M = (Q,, q 0. ), dimana :

anggota alfabet dinamakan simbol terminal atau token.

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

Analisis Sintaksis (syntactic analyzer atau parser)

Teori Bahasa Formal dan Automata

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

BAB I TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN OTOMATA [TBO]

GRAMMAR AND LANGUAGE

ALGORITMA PEMROGRAMAN 1C SINTAKS

KONSEP GRAMMAR DAN BAHASA

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi.

TEKNIK KOMPILASI Konsep & Notasi Bahasa

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

Teori Bahasa Formal dan Automata

TEORI BAHASA DAN AUTOMATA

Teori Bahasa dan Otomata 1

Dasar Teori Bahasa & Grammar

TEKNIK KOMPILASI Bahasa Regular

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

SATUAN ACARA PERKULIAHAN MATA KULIAH : TEORI BAHASA DAN AUTOMATA (TBA) KODE / SKS : KK / 3 SKS

Grammar dan Tingkat Bahasa

Komponen sebuah Kompilator

IF-UTAMA 1. Definisi. Grammar. Definisi

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Teori Bahasa Formal dan Automata

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

Mahasiswa memahami bahasa sebagai himpunan dan operasi 2 -nya, cara mendefinisikan bahasa, serta cara mengenali anggota 2 bahasa

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

SATUAN ACARA PERKULIAHAN (SAP)

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

BAHASA BEBAS KONTEKS UNTUK KOMPLEMEN DARI STRING BERULANG CONTEXT FREE LANGUAGE FOR COMPLEMENT OF REPEATED STRING

UNIVERSITAS GUNADARMA

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA [TBO]

BAB II SINTAKS 2.1. SINTAKS

FIRDAUS SOLIHIN FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO

Teori Komputasi 11/23/2016. Bab 6: Context-Free Grammar & Parsing. Context-Free Grammar. Context-Free Grammar

Amir Hamzah AKPRIND PRESS 2009

TEORI BAHASA DAN OTOMATA [TBO]

Pendahuluan. Push Down Atomata. Perbedaan FA dan PDA [7] 4/25/2012 IF-UTAMA 1. Grammar-machine equivalence [3] Latar belakang munculnya konsep PDA

Teori Bahasa & Otomata

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI

POHON PENURUNAN Context Free Grammar

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

MODUL 1: PENGANTAR TEORI BAHASA

FTIK / PRODI TEKNIK INFORMATIKA

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

Contents.

BAHASA REGULER 1. Ekspresi Regular

Teori Bahasa & Otomata

RENCANA PEMBELAJARAN SEMESTER

Teknik Kompilasi. Notasi Bahasa

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

MODUL 11: PUSHDOWN AUTOMATON

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

PENDEKATAN TEORI AUTOMATA UNTUK MENYELESAIKAN APLIKASI-APLIKASI DI BIDANG ILMU KECERDASAN BUATAN

Teori Bahasa dan Operasi Matematis.

TEORI BAHASA DAN OTOMATA PENGANTAR

DIKTAT TEORI BAHASA DAN OTOMATA

Teknik Informatika PERTEMUAN 2. TEORI BAHASA & OTOMATA Imam Riadi, M.Kom Shofwatul Uyun, M.Kom. Teknik Informatika

Overview. Pendahuluan. Pendahuluan. Pendahuluan. Pendahuluan. Pendahuluan

RENCANA PEMBELAJARAN SEMESTER (RPS)

BAB II TINJAUAN PUSTAKA. konsep, fakta, termasuk simbol simbol serta aturan agar mempunyai makna.

Tanggal Revisi : Tanggal : SATUAN ACARA PERKULIAHAN

RENCANA PEMBELAJARAN SEMESTER

TEORI BAHASA & AUTOMATA

BAB II TINJAUAN PUSTAKA. Bahasa menurut kamus Websters adalah the body of words and methods of

TEORI BAHASA DAN OTOMATA [TBO]

PENGANTAR OTOMATA DAN KOMPILASI

SATUAN ACARA PERKULIAHAN (SAP) MATA KULIAH PENGANTAR TEKNIK KOMPILASI

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

PENYEDERHANAAN Context Free Grammar

Teknik Kompiler 6. oleh: antonius rachmat c, s.kom

BAB I PENDAHULUAN 1-1

TEORI BAHASA & OPERASI MATEMATIS (2)

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

Ekspresi Reguler Definisi. Notasi Ekspresi Regular. Contoh Ekspresi Reguler [2]

APLIKASI PROGRAM DINAMIS DALAM ALGORITMA COCKE- YOUNGER -KASAMI (CYK)

BAB II LANDASAN TEORI

PERANCANGAN SISTEM PERBAIKAN ERROR KODE SUMBER PROGRAM OTOMATIS

RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN SEMESTER (RPKPS) Mata Kuliah Teori Bahasa Dan Otomata IF1402

BAB I PENGENALAN TEKNIK KOMPILASI

SATUAN ACARA PERKULIAHAN STMIK UBUDIYAH INDONESIA SEMESTER GENAP TAHUN AKADEMIK 2013/2014

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN AUTOMATA

Lecture Notes Teori Bahasa dan Automata

Teori Bahasa Formal dan Automata

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1

Aplikasi Rekursif dalam Analisis Sintaks Program

BAB III CFG DAN PARSING

Transkripsi:

A-61 PALINDROM CONTEXT FREE GRAMMAR PADA MESIN PUSH DOWN AUTOMATA M. Haviz Irfani STMIK GI MDP Jl. Rajawali No. 14 Palembang, tlp.0711-376400 e-mail: haviz.irfani@mdp.ac.id Abstrak Palindrom merupakan string (untai) yang dibaca sama jika ditelusuri dari depan maupun dari belakang. Palindrom dalam otomata berperan penting dalam teori komputasi karena hanya ada dalam bahasa bebas konteks yang memberikan kajian mengenai mesin komputasi khayali dengan mempunyai batasan susunan literal dalam komputasi.setiap mesin abstrak otomata memiliki bahasa formal salah satunya tata bahasa bebas konteks (Context Free Grammar/ CFG) yang banyak diimplementasikan dalam bahasa pemrograman komputer. Tulisan ini dibuat untuk memberikan pendekatan sintaksis pada Palindrom mesin Push Down Automata (PDA) dan menjelaskan bagaimana CFG memberikan palindrom bagi mesin PDA. Kata Kunci Palindrom, Otomata,CFG, PDA. Abstract: Palindrome is a string ( string ) that reads the same if traced from the front or from behind. Palindrome in automata have an important role in the theory of computation because it only exists in a context-free languages are on the study of the imaginary computing machine with literals arrangement has limitations in computing. Each machine has an abstract automata formal language one context-free grammar (Context Free Grammar / CFG ) is most implemented in a computer programming language. This paper created to provide syntactic palindromes approach on a Push Down Automata ( PDA ) and explains how the CFG provides a palindrome for PDA machines. Keywords: Palindrome, automata, CFG, PDA. I. PENDAHULUAN Palindrom adalah untai yang terbaca sama baik dari depan maupun dari belakang. Untai berbentuk 0110, 11011, oto dan seterusnya merupakan palindrom. Palindrom hanya ada pada bahasa bebas konteks (CFG). Chomsky (1962) membagi semua bahasa otomata menjadi empat kelas[1][2]. Setiap bahasa tersebut memiliki mesin otomata pendukung dalam menjalankan kinerjanya secara abstrak. Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-properti bahasa[2]. Tata bahasa bebas konteks (CFG) menyediakan mekanisme yang sederhana dan tepat untuk menggambarkan metode frase dalam bahasa yang dibangun dari kelompok yang lebih kecil, sampai kalimat dalam bahasa dengan cara alami. Selain itu batasan aturan produksi berupa sebuah simbol variable saja. Pada awal CFG membantu menspesifikasikan bahasa manusia dan ternyata sangat cocok untuk mendefinisikan bahasa komputer, memformalisasikan pengertian parsing, menyederhanakan penerjemahan bahasa komputer dan aplikasi-aplikasi pengolahan string lainnya. Dalam tata bahasa bebas konteks sederhana pun memungkinkan untuk membangun seperti algoritma parsing yang efisien dengan menggunakan Push Down Automata (PDA) sebagai mesin abstraknya. Penting mengetahui Palindrom dalam bahasa pemrograman melalui tata bebas konteks pada mesin PDA yang berperan dalam pembentukan untai secara leksikal (scanner) dan sintaks (parser) menjadi sebuah tata bahasa L(Gpalindrom). II. LANDASAN TEORI 2.1 Tata Bahasa Tata bahasa (grammar) bisa didefinisikan secara formal sebagai kumpulan dari himpunan-himpunan variabel, simbol-simbol, terminal, simbol awal, dan dibatasi oleh aturan-aturan produksi[1][2]. Selain itu diartikan bahwa bagaimana string di setiap kelas dari kumpulan string yang dibangun, konstruksinya dapat menggunakan simbol alfabet (huruf, angka,dan karakter khusus) dan string yang sudah diketahui berada disalah satu kelas. 2.2 Otomata Otomata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu[1]. Gbr 1. Model Umum Mesin Otomata

A-62 Setiap mesin abstrak menurut memiliki bahasa yang formal bagi mesin tersebut, agar dapat mengenali bahasa yang discanning atau diparsing. Dalam bahasa pemrograman kalimat dikenal sebagai ekspresi, dan kata sebagai token.kata terdiri atas beberapa karakter/ kelompok karakter yang membentuk sebuah token dinamakan lexeme. Token mereprentasikan identifier (nama variabel, fungsi, tipe atau nama yang didefinisikan pemakai), keyword, literalstring, operator, label, simbol tanda (tanda kurung, koma, titik koma), constant, relation, identity, number dan variabel [1][2]. Pada Gambar 1 memperlihatkan bahwa model otomata mempunyai kesamaan dengan model komputasi. Otomata dibedakan berdasarkan jenis memori sementara yang dimilikinya yaitu[1]: Pushdown automata (PDA) memiliki memori sementara dengan mekanisme LIFO (Last In First Out, yaitu mekanisme stack (tumpukan). Mesin ini lebih ampuh karena keberadaan stack sebagai unit memori. Contoh: bahasa pemrograman yang memiliki keampuhan komputasi menengah. 2.3 Tata Bahasa Bebas Konteks (CFG /Context Free Grammar). Tata Bahasa Bebas Konteks (CFG) adalah sekumpulan berhingga variabel (non terminal) dalam aturan produksi, masing-masing merepresentasikan bahasa secara rekursif atau dalam bentuk lain. Terdapat 4 tupel (benda) yang membentuk CFG yaitu [2] G={V N, V T, P, S} dimana V N himpunan variabel atau non terminal, V T himpunan simbol terminal, P adalah kumpulan berhingga aturan produksi (bagaimana untai-untai dalam masing-masing kelas dibangun) dan bentuk umum aturan produksinya α β, α V N, β (V N V T )*, dan S adalah variabel special yang disebut simbol permulaan (S V N). α berupa satu variabel, tanda artinya penurunan, dan β artinya untai atau string. Simbol-simbol yang digunakan antara lain[1]: (1). Karakter khusus (a, b, c,..,z, 0, 1, 2..,9 menyatakan terminal), (2). karakter A,B,C,..,Z menyatakan non terminal dan S simbol awal(mula), dan (3). String yang terdiri dari simbolsimbol dalam terminal. 2.4 Aturan Produksi Setiap aturan produksi mengandung sebuah variabel yang sebagian didefiniskan dengan produksi, memiliki simbol yang artinya menurunkan, mengandung string nol atau lebih terminal dan variabel disebut tubuh dari produksi untuk membentuk string dalam bahasa dari variabel kepala. 2.5 Push Down Automato (PDA) PDA adalah recognizer yang merupakan model alami dari syntactic analyzer dari bahasa bebas konteks. PDA secara alami merupakan NPDA (PDA non determinsitik) yang dapat melakukan operasi layaknya stack. Tetapi mensimulasikannya dengan deterministik agar dapat dikomputasi secara efisien. 2.6 Terminologi Mesin Otomata 2.6.1Pohon Penurunan bagi CFG Sebuah pohon penurunan terdiri dari akar sebagai S (simbol mulai), sub pohon yang berupa turunan langsung dari akar berupa cabang sebagai simbol non terminal dan daun sebagai simpul terminal. Notasi non terminal umumnya ditulis diantara parentis < dan >. Gbr 2. Pohon Penurunan 2.6.2 Penurunan Terkiri dan Terkanan Penurunan terkiri terjadi jika tiap langkah dalam penurunan produksi diterapkan ke variabel terkiri S Lm => *α n.. Selain itu penurunan terkanan terjadi jika tiap langkah dalam penurunan produksi diterapkan ke variabel terkanan S mr => *α n.. Jika S= α 0, α 1,, α n = w adalah penurunan terkiri string w, maka tiap α i 0 i n, adalah berbentuk x ia iβ i dengan x i V T,A i V N, dan β i (V N V T). Nonterminal terkiri dari A i diganti (dengan sisi kirinya) untuk memperoleh kalimat berikutnya.situasi sebaliknya untuk penurunan terkanan. 2.6.3 Ambiguitas Sebuah CFG disebut ambigu jika terdapat sedikitnya string w V T yang mempunyai dua pohon penurunan terkiri yang berbeda atau lebih dari S (akar pohon). 2.6.4 Penyederhanaan Aturan Produksi Aturan produksi yang dimiliki oleh sebuah CFG memungkinkan terjadi iteratif yang terus menerus tidak pernah berakhir di terminal (terjadi siklus), aturan produksi yang tidak mempunyai peran apapun dalam grammar dan aturan produksi tunggal yang tidak bermanfaat. Kejadian tersebut dapat dieliminir dengan penyederhanaan CFG yaitu peng-hilangan ɛ (empty), penghilangan simbol yang tidak berguna, dan penghilangan simbol tunggal. 2.6.5 Rekursif mendefinisikan bahwa bahasa mengikuti tiga langkah yang digunakan dalam pendefinisian rekursif tersebut dari beberapa string (kata) dalam bahasa tertentu, selain itu juga aturan untuk membangun beberapa kata juga didefinisikan dalam bahasa dan tidak ada string yang diterima melainkan dibangun oleh sebuah bahasa. Berikut ini beberapa aturan dalam mendefinisikan sebuah bahasa, yaitu:

A-63 1. Mendefinisikan bahasa dari Integer. Langkah 1: angka 1 ϵ Integer. Langkah 2: Jika x ϵ Integer maka x+1 dan x-1 juga ϵ Integer. Langkah 3: tidak ada untai-untai yang diterima dibangun diatasnya termasuk ϵ Integer. 2. Mendefinisikan bahasa dari Even (bilangan genap). Langkah 1: Angka 2 ϵ Even. Langkah 2: jika x ϵ Even maka x+2 dan x-2 juga ϵ Even. Langkah 3: tidak ada untai-untai yang diterima dibangun diatasnya diperbolehkan dalam Even. 3. Mendefinisikan bahasa Faktorial. Langkah 1: Jika 0!=1, maka nilai 1 dalam Faktorial. Langkah 2: n!=n*(n-1)! dalam Faktorial. Langkah 3: Tidak ada untai-untai yang diterima dibangun di-atasnya termasuk dalam Faktorial. 4. Mendefinisikan Palindrom, didefinisikan melalui Σ = {a,b}. Langkah 1: Nilai a dan b dalam Palindrom. Langkah 2: Jika x adalah Palindrom, maka s(x)rev(s) dan xx juga Palindrom, dimana s anggota Σ*. Langkah 3: Tidak ada untai-untai yang diterima dibangun diatasnya, melainkan termasuk dalam Palindrom. 5. Mendefinisikan bahasa {a n b n }, n=1,2,3,, untaiuntai mengikuti abjad Σ={a,b}. Langkah 1: ab berada dalam {a n b n }. Langkah 2: Jika x ϵ {a n b n }, maka axb ϵ {a n b n }. Langkah 3: Tidak ada untai-untai yang diterima dibangun diatasnya termasuk dalam {a n b n }. 6. Mendefiniskan bahasa L, untai-untai berakhiran a didefiniskan melalui Σ={a,b}. Langkah 1: a ϵ L. Lagkah 2: Jika x ϵ L maka s(x) juga ϵ L, dimana s berada dalam Σ*. Langkah 3: Tidak ada untai-untai yang diterima dibangun diatasnya diterima dalam L. 7. Mendefinisikan bahasa L, of untai-untai berawal dan berakhir pada abjad yang sama didefinsikan pada Σ={a, b}. Langkah 1: a dan b ϵ L. Langkah 2: (a)s(a) dan (b)s(b) dalam L, dimana s mengikuti Σ*. Langkah 3: Tidak ada untai-untai yang diterima dibangun di-atasnya, melainkan yang masuk dalam L 2.7 Analisis Sintaksis Palindrom adalah salah satu struktur berulang yang paling penting dalam string.analisis sintaks adalah penelusuran sebuah string dalam kalimat (atau sentensial) sampai pada simbol awal grammar.analisis sintaksi s dapat dilakukan melalui derivasi atau parsing yang menghasilkan pohon sintaks. III. PEMBAHASAN Mesin otomata bahasa bebas konteks (CFG) layaknya PDA berperan penting dalam komputasi dengan kemampuannya dalam spesifikasi bahasa.pda memberikan pemahaman tentang Palindrom dalam spesifikasi bahasa komputer (pemrograman, markup, kamus data, query, perintah, script, printer) yang membuat PDA semakin popular untuk dikembangkan. 3.1 Karakteristik Palindrom Sebuah Palindrom memiliki basis berupa ԑ, 0 dan 1, sedemikian sehingga 0w0 dan 1w1 adalah Palindrom. Sebuah bahasa L(G) = {a n b n n = 0,1, 2,..} berdasarkan bentuk umum L= {xcrev(x) x Є{a,b}*} dengan Rev(x) adalah string yang sama dengan x dalam urutan terbalik dan c menandai tengah-tengah string, tidak dapat dibangkitkan oleh tata bahasa regular karena bersifat Palindrom yaitu sebuah bahasa yang dapat membaca untai yang sama dari depan maupun dari belakang. Misalnya abcba dibaca dari belakang abcba. Contoh lain untai tanpa c ditengah-tengah string yaitu aba, baab, abba dan lain-lain. Untuk n=0 x = a n.b n = a 0.b 0 = ԑ Untuk n=1 x = a 1.b 1 = a. b maka rev(x)=b.a abba Untuk n=2 x = a 2.b 2 = aa. bb maka rev(x)=bb.aa aabbbbaa Selain itu, x Є{a,b}* atau x Є(a+b)* dapat diturunkan untuk setiap n 0. Untuk n=0 x = (a+b) 0 = ԑ Untuk n=1 x = (a+b) 1 = a maka rev(x)=a a x = (a+b) 1 = b maka rev(x)=b b Untuk n=2 x = (a+b) 2 = aa maka rev(x)=aa aaaa x = (a+b) 2 = ab maka rev(x)=ba abba x = (a+b) 2 = ba maka rev(x)=ab baab x = (a+b) 2 = bb maka rev(x)=bb bbbb Untuk Σ={a,b}, Palindrom={ε, a, b, aa, bb, aaa, aba, bab, bbb,...} karenanya sembarang string dengan panjang m didefiniskan pada sembarang alfabet n yaitu sebanyak n.m (n m ). Contoh sebuah bahasa dengan panjang string masingmasing adalah 2 didefinisikan Σ={a,b} sebagai L={aa, ab, ba, bb} dan panjang masing-masing string adalah 3 yaitu L={aaa, aab, aba, baa, abb, bab, bba, bbb}. Beberapa contoh kata dan kalimat dalam bahasa Indonesia antara lain malam, makam, ada, kasur ini rusak, apa,bab, ini, kodok, taat, dan lain sebagainya. 3.2 Sifat Kleene Star Closure Kleene Star Closure bagi Σ dilambangkan dengan Σ* adalah kumpulan semua string yang didefinisikan melalui Σ termasuk Λ. Jika Σ = {x} maka palindrom Σ* = {Λ, x, xx, xxx, xxxx,.}, jika Σ = {0,1} maka Σ* = {Λ, 0, 1, 00, 01, 10, 11,.} bukan sebuah palindrom, dan jika Σ = {aab, c} maka Σ* = {Λ, aab, c, aabaab, aabc, caab, cc,.} bukan sebuah palindrom. Bahasa-bahasa yang dihasilkan oleh kleene star closure mempunyai himpunan string yang tidak terbatas pada bahasa tertentu.

A-64 3.2.1 Operasi Plus (+) Operasi plus (+) sama seperti kleene star closure hanya saja tidak menghasilkan Λ (null string), misalnya Σ = {0,1} maka Σ + = {0, 1, 00, 01, 10, 11,.}, dan jika Σ = {aab, c} maka Σ + = {aab, c, aabaab, aabc, caab, cc,.} bukan sebuah palindrom. 3.2.2 Tata bahasa untuk Palindrom. G=(V,T,P,S) adalah tupel yang memberikan 4 benda yang membentuk aturan produksi CFG. Adapun G pal=({p},{0,1}, A, P) adalah grammar palindrom dengan A yaitu himpunan 5 produksi tata bahasa palindrom didefinisikan sebagai berikut: (1) P ԑ (2) P 0 (3) P 1 (4) P 0P0 (5) P 1P1 Jika sembarang bagian w diambil dari aturan (4) dan (5) maka hasilnya merupakan kelas palindrom dan seterusnya. 1 q 0 A Z 0 (q 0, az 0 ) 2 q 0 B Z 0 (q 0, bz 0 ) 3 q 0 A A (q 0, aa ) 4 q 0 B A (q 0, ba ) 5 q 0 A B (q 0, ab ) 6 q 0 B B (q 0, bb ) 7 q 0 C Z 0 (q 1, Z 0 ) 8 q 0 c A (q 1, a ) 9 q 0 c B (q 1, b ) 10 q 1 a A (q 1, ε ) 11 q 1 b B (q 1, ε ) 12 q 1 ε Z 0 (q 1, Z 0 ) Deterministik PDA Atau M ditulis = (Q, :, P Γ, ԑ q0 0, 1 Z 0 0P0, δ, F) 1P1 pengenal palindrom L = {xcx T x Є (a,b)* }, dimana x T adalah reverse(x) yang mempunyai tuple (benda) : Q = {q 0, q 1, q 2 }, F = {q 2 }, = {a, b, c}, Γ = {a, b, Z 0}, dan fungsi transisi δ terdefinisi melalui ilustrasi graf yang terlihat pada Gambar 3 [3]. Sedangkan transisi mesin PDA terdapat dalam Tabel 2. Adapun penerimaan dan penolakan string (misalnya untai abcba, acb, dan ab ) dijelaskan sebagai berikut : Untai abcba memberikan hasil: (q, abcba, Z ) (q, bcba, az ) (q, cba, baz ) (q, ba, baz ) (q, a, az ) (q, ε, Z ) (q 2, ε, Z ) Gbr 3. Pohon Penurunan Palindrom Gambar 3 memperlihatkan diagram pohon untuk palindrom bahasa L(G). (q, ε, Z ) (diterima) /tabel 1.ilustrasi string yang dihasilkan dari palindrom Iterasi P 0P0 Produksi P 1P1 Produksi 1 00 4-1 11 5-1 2 000 4-2 111 5-2 3 010 4-3 101 5-3 4 0000 4-4-1 1111 5-5-1 5 0110 4-5-1 1001 5-4-1 6 00000 4-4-2 11111 5-5-3 7 00100 4-4-3 11011 5-5-2 8 000000 4-4-4-1 111111 5-5-5-1 9 001100 4-4-5-1 110011 5-5-4-1 seterusnya seterusnya seterusnya 3.2.3 Palindrom pada Determinsitik PDA (DPDA). No Gerak State Tabel 2. Daftar aturan transisi mesin deterministik PDA Masukan Simbol dalam Stack Transisi Gbr 3. Diagram Palindrom Mesin Determinstik Push Down Automata Untai diterima karena tracing sampai di state penerima (q 2 ) dan string abcba selesai dibaca. Untai acb memberikan hasil: (q, acb, Z ) (q, cb, az ) (q 1, b, az ) (crash ditolak) Pembacaan ke dalam stack menggunakan fungsi PUSH dan pembacaan kebalikannya menggunakan fungsi POP pada stack. 3.2.4 Palindrom pada Non-determinsitik PDA (NPDA) Non-deterministik PDA M = (Q,,, q, Z,, F) pengenal palindrom L = {xx x (a b)*} mempunyai

A-65 komponen tuple (benda): Q = {q, q, q }, F = { q }, = {a, b}, = {a, b, Z }, dan fungsi transisi terdefinisi melalui Gambar 4 berikut ini. Tabel 3. Daftar aturan transisi mesin non deterministik PDA No Simbol State Masukan Gerak dalam Stack Transisi 1 q 0 a Z 0 (q 0, az 0 ) 2 q 0 b Z 0 (q 0, bz 0 ) 3 q 0 a a (q 0, aa ) 4 q 0 b a (q 0, ba ) 5 q 0 a b (q 0, ab ) 6 q 0 b b (q 0, bb ) 7 q 0 b a (q 1, a ) 8 q 0 a b (q 1, b ) 9 q 0 b b (q 1, b ) 10 q 0 a a (q 1, a ) 11 q 0 a Z 0 (q 1, Z 0 ) 12 q 0 b Z 0 (q 1, Z 0 ) 13 q 0 ε Z 0 (q 1, Z 0 ) 14 q 0 ε a (q 1, a ) 15 q 0 ε b (q 1, b ) 16 q 1 a A (q 1, ε ) 17 q 1 b B (q 1, ε ) 18 q 1 ε Z 0 (q 2, ε ) Tabel 3 memperlihatkan transisi untuk mesin NPDA yang memiliki abjad {a,b} dan state {q 0, q 1, q 2 }. Gbr 4. Diagram Palindrom Mesin Non - Determinstik Push Down Automata Penerimaan dan penolakan string (misalnya baab ) berasosiasi dengan fungsi transisi pada Gambar 4 dapat dijelaskan sebagai berikut : 1. (q, baab, Z ) (q, aab, bz ) (q, b, bz ) (q, ε, Z ) (q, ε, Z ) (diterima) 2. (q, baab, Z ) (q, baab, Z ) (crash ditolak) 3. (q, baab, Z ) (q, aab, bz ) (q, b, aabz ) (q, b, aabz ) (crash ditolak) 4. (q, baab, Z ) (q, aab, bz ) (q, b, aabz ) (q, ε, baabz ) (q, ε, baabz ) (crash ditolak) Ada beberapa kemungkinan parser yang terjadi dengan menggunakan NPDA karena fungsi transisi yang didefinisikan mempunyai satu atau lebih penentu posisi top stack.untai baab yang dimasukkan hasilnya diterima oleh mesin NPDA. 3.2.5 Pendekatan Kode Program bagi Palindrom public class Palindrom { private boolean Palindrom_Kah=true; private Stack tumpuk; public Palindrom(){ tumpuk=new Stack(); } public boolean Palindrom_Kah(String string) { String karakter= string.replaceall ("\\s", "").replaceall("\\w",""); int position=0; for(int i=0;i<karakter.length();i++){ tumpuk.push(karakter.substring (i, i+1));} while(tumpuk.count()>0){ if(!karakter.substring(position, position+1).equalsignorecase( tumpuk.pop().tostring())) { Palindrom_Kah=false; break; } position++; } return Palindrom_Kah; } } Kelas palindrom memperlihatkan bahwa sebuah string yang dibaca melalui fungsi Palindrom_Kah dengan memperhatikan karakter uppercase atau lowercase adalah palindrom atau bukan palindrom melalui penilaian value (tipe boolean) dari equalsignorecase yang melakukan perbandingan dua buah string tanpa memperdulikan perbedaan antara huruf besar dengan huruf kecil. Misalkan untai malam dengan panjang untai sebanyak 5 karakter. Karakter akan dibaca sebanyak 5 kali dengan fungsi

A-66 Push (forward) dan Pop (backward). Berikut ini ilustrasi pengenal palindrom menggunakan konsep operasi stack dalam abstraksi stack. Gbr 6. Abstraksi Untai Palindrom dengan Stack (Tumpukan) Gambar 6 memperlihatkan penggunaan memori pada saat pembacaan untai malam dengan menggunakan stack sebagai memori, hasil pembacaan menunjukkan untai malam diterima oleh mesin Non Determinstic Push Down Autamata. IV. KESIMPULAN Dari hasil pembahasan sebelumnya dapat ditarik beberapa kesimpulan sebagai beri kut: 1. Mesin PDA (nondeterministik) hanya digunakan untuk tata bahasa bebas konteks dan CFG yang tidak dikenali/ didefinisikan oleh DPDA dapat dikenali oleh NPDA. 2. Hanya Nondeterminsitik PDA yang dapat melakukan operasi layaknya stack (tumpukan). 3. Palindrom tidak dapat dibangkitkan oleh bahasa regular melainkan hanya dibangkitkan oleh tata bahasa bebas konteks (CFG). REFERENSI [1] Bambang Hariyanto, 2004. Teori Bahasa, Otomata dan Komputasi Serta Terapannya, Bandung: Informatika. [2] J., E. Hopcroft, et al, 2007. Teori Bahasa dan Otomata, Yogyakarta: Andi. [3] Firrar Utdirartatmo, 2005. Teori Bahasa dan Otomata, ISBN: 9793289678, Yogyakarta: Graha Ilmu. [4] Zomorodian A., 1995. Context-Free Language Induction by Evolution of Deterministic Push-Down Automata Using Genetic Programming,Working Notes for the AAAI Symposium on Genetic Programming MIT, Cambridge, October, 127-133.