PERANCANGAN DAN IMPLEMENTASI INTERPRETER BAHASA X PADA NOKIA 9210i

dokumen-dokumen yang mirip
GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

SATUAN ACARA PERKULIAHAN (SAP) MATA KULIAH PENGANTAR TEKNIK KOMPILASI

TEKNIK KOMPILASI. Firrar Utdirartatmo

Teknik Kompilasi II TEKNIK KOMPILASI. Ernastuti & Sulistyo P 1/52. Ernastuti & Sulistyo

TEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008

UNIVERSITAS GUNADARMA

Pendahuluan. Tujuan Pembelajaran :

FTIK / PRODI TEKNIK INFORMATIKA

TEKNIK KOMPILASI (TEKKOM) ISTIQOMAH, S.KOM /SEMESTER VI

TEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008

LANGUAGES AND TRANSLATOR

TEORI BAHASA DAN AUTOMATA

Analisis Sintaksis (syntactic analyzer atau parser)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

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

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Teori Komputasi 10/15/2015. Bab 1: Pendahuluan. Teori Komputasi dan Teknik Kompilasi. Teori Komputasi dan Teknik Kompilasi

Pendahuluan. Kuliah online : Tekkom [2013/VI]

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

PENGANTAR TEKNIK KOMPILASI

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

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

Komponen sebuah Kompilator

ALGORITMA PEMROGRAMAN 1C SINTAKS

TEORI BAHASA & OTOMATA (PENGENALAN KOMPILASI) PERTEMUAN VI Y A N I S U G I Y A N I

PENGANTAR OTOMATA DAN KOMPILASI

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

Teori Bahasa & Otomata

SATUAN ACARA PERKULIAHAN (SAP)

RENCANA PEMBELAJARAN SEMESTER (Kelas Teori)

Compiler & Interpreter

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah

TEKNIK KOMPILASI. Alamat untuk tugas: Informasi: DADANG MULYANA. dadang mulyana 2013

RENCANA PEMBELAJARAN SEMESTER

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

LEMBAR PENGESAHAN PROSEDUR PELAKSANAAN KULIAH

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

BUKU RANCANGAN PENGAJARAN. Teknik Kompilator

BAB 1 PENDAHULUAN Latar Belakang

Fase-fase proses sebuah kompilasi

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

BAB I PENDAHULUAN 1-1

KOMPILASI. Assembler Bahasa Rakitan Bahasa Mesin Compiler (Kompilator) Bahasa Tingkat Tinggi Bahasa tingkat rendah

BAB II SINTAKS 2.1. SINTAKS

Parsing. A -> a as baa B -> b bs abb

Tanggal Revisi : Tanggal : SATUAN ACARA PERKULIAHAN

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

LAPORAN PRAKTIKUM 1 TEKNIK KOMPILASI

TEORI BAHASA DAN OTOMATA PENGANTAR

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Pemrograman. Fery Updi,M.Kom

TEKNIK KOMPILASI Bahasa Regular

TEORI BAHASA DAN OTOMATA [TBO]

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

BAB II TINJAUAN PUSTAKA

Review C/C++ & Intro to Java. Pemrograman Berorientasi Obyek IT209

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

BAB IV ANALISA SINTAKS

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

TEKNIK KOMPILASI. Oleh. Hartono

BAB I PENGANTAR Pendahuluan Penyajian 1.1 Latar Belakang 1.2 Algoritma dan Struktur Data

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

FIRDAUS SOLIHIN FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO

Algoritma dan Struktur Data

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

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

Implementasi OOP Pada Perangkat Lunak Pemrograman

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR. Dosen Pengampu: Utami Dewi Widianti,S.Kom

Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu

BAB II DASAR TEORI. 2.1 Kompilator

IF-UTAMA 1. Definisi. Grammar. Definisi

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program.

Algoritma dan Struktur Data

Grammar dan Tingkat Bahasa

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

1. Pendahuluan. 2. Tinjauan Pustaka

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

Pemrograman dan Bahasa Pemrograman

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

BAB I PENGENALAN TEKNIK KOMPILASI

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004

Tujuan perancangan bhs program

BAB IV HASIL DAN UJI COBA

SEMANTIK. Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa.

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

Bab III Semantik. Konsep Semantik Bahasa Pemrograman (Semantik Analisis)

Media Pembelajaran Bahasa Pemrograman C++...(Luh Joni Erawati Dewi)

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

TEKNIK KOMPILASI Konsep & Notasi Bahasa

Pengantar Pemrograman dengan Bahasa Java

Pengantar Pemrograman dengan Bahasa Java

Transkripsi:

PERANCANGAN DAN IMPLEMENTASI INTERPRETER BAHASA X PADA NOKIA 9210i Maukar 1, Resza Ciptadi 2 1. Universitas Gunadarma, 2. Universitas Bina Nusantara Abstrak Dalam penelitian ini dilakukan perancangan interpreter untuk bahasa X dengan teknik recursive descent parsing menggunakan pendekatan pemrograman berbasis objek, dan mengimplementasikan-nya pada perangkat mobile device, yang dalam hal ini adalah Nokia 9210i. Metode penelitian yang digunakan adalah studi pustaka yang dimaksudkan untuk mencari informasi-informasi yang berkaitan dengan penelitian yang sedang dilakukan. Serta praktek di lapangan yang bermaksud untuk mencoba hasil penelitian pada komputer maupun pada mobile device tersebut. Serta mencari informasi-informasi yang bersifat teknis. Hasil yang dicapai adalah sebuah interpreter bahasa X yang dapat dipergunakan pada mobile device, dalam hal ini adalah Nokia 9210i. Namun belum dilakukan penelitian lebih lanjut apakah interpreter bahasa yang telah dibuat dapat digunakan pada perangkat mobile device lain selain Nokia 9210i. Parser bahasa yang dibuat dengan pendekatan object oriented programming, dapat berjalan dengan baik pada interpreter bahasa X, mobile device (Nokia 9210i) tidak hanya dapat digunakan untuk menjalankan aplikasi akan tetapi bisa juga digunakan untuk mengembangkan aplikasi, serta teknik recursive descent parsing dapat digunakan untuk perancangan parser dengan pendekatan object oriented programming. Diharapkan untuk masa yang akan datang interpreter bahasa X ini dapat dikembangkan kembali sehingga interpreter bahasa X memiliki banyak fungsionalitas, dan tidak hanya didukung oleh Nokia 9210i saja, melainkan untuk seluruh mobile device yang memiliki teknologi Java di dalamnya. Kata Kunci: Interpreter, parser, mobile device PENDAHULUAN Bahasa merupakan alat yang digunakan untuk berkomunikasi. Tidak hanya untuk melakukan komunikasi atara manusia dengan manusia yang lainnya, namun dalam hal ini bahasa juga menjembatani komunikasi antara manusia dengan komputer. Bahasa yang digunakan manusia untuk berkomunikasi dengan komputer dikenal dengan bahasa JURNAL INFORMATIKA & KOMPUTER, NO. 3, JILID 8, 2003130

pemrograman (programming language). Bahasa pemprograman adalah alat untuk menjembatani komunikasi antara manusia dengan komputer (Metsker, 2001). Karena pada dasarnya komputer mengerti hanya sedikit bila tidak bisa dibilang tidak mengerti sama sekali. Komputer dapat menambahkan angka dan memindahkan string tapi tidak mengerti (Metsker, 2001). Sementara bahasa alami manusia cenderung ekspresif. Itulah sebabnya bahasa pemprograman menjadi penting. Bahasa pem-programan dibentuk dari bahasa alami manusia. Misalnya kata while dalam bahasa C memiliki pengertian yang sama untuk bahasa Inggris. Kompromi ideal antara bahasa alami manusia dalam hal ini bahasa Inggris dengan bahasa pemprograman disesuaikan dengan konteks dan tujuan apa yang ingin dikerjakan. Bahasa seperti SQL misalnya lebih ideal untuk bekerja dengan database dari pada bahasa fungsional seperti Prolog yang lebih cocok untuk me-ngembangkan aplikasi kecerdasan buatan. C misalnya merupakan bahasa terbaik dalam pemprograman sistem operasi dibandingkan dengan C++ yang lebih cocok untuk me-ngembangkan aplikasi yang berjalan diatas sistem operasi. Perkembangan bahasa pe-mrograman ini tidak saja ber-pengaruh pada pesatnya teknologi komputer, namun juga teknologi yang digunakan dalam alat yang lebih kecil dari komputer, dalam hal ini adalah mobile device. Pemanfaatan mobile device dewasa ini makin ber-kembang. Hal ini tentu saja bisa di-lihat dalam kehidupan sehari-hari. Berbagai kalangan sudah mulai tidak asing lagi dengan perangkat mobile device, seperti handphone, PDA (Personal Digital Assistance), PocketPC, dan perangkat mobile device lainnya. Perkembangan pada perangkat ini tentu tidak dapat bisa dilepaskan begitu saja dengan makin pesatnya perkembangan teknologi hardware maupun software yang ada. Jika di-lihat lima tahun ke belakang, handphone hanya berupa alat komunikasi yang bisa digunakan dimana-mana selama masih di dalam area jangkauan jaringannya. Sekarang handphone tidak saja bisa digunakan untuk ber-komunikasi dengan orang lain, namun bisa juga digunakan untuk mengatur jadwal keseharian kita, membuat foto dengan kamera digital yang terintegrasi, bahkan mengakses internet dimana saja. Selain itu, bagian piranti lunak (software) yang digunakan oleh mobile device ini juga mengalami peningkatan yang sangat berarti. Salah satu penyebab makin banyaknya aplikasi-aplikasi yang telah dibuat untuk dipakai pada perangkat ter-sebut adalah adanya bahasa pe-mrograman yang bernama Java. Walaupun Java bukan satu-satunya bahasa yang dapat digunakan untuk membuat suatu aplikasi pada mobile device, namun Java bisa dikatakan bahasa yang terbaik saat ini dalam menangani seluruh proses yang ada pada mobile device. Java dengan J2ME (Java 2 Micro Edition) dapat mengakomodir segala kebutuhan para pembangun aplikasi untuk mobile de- 131 JURNAL INFORMATIKA & KOMPUTER, NO. 3, JILID 8, 2003

vice dari pada bahasa-bahasa yang lainnya. Salah satu keunggulan Java dibandingkan dengan bahasa-bahasa lainnya, seperti C atau C++, adalah ke-mampuannya untuk dijalankan pada seluruh mesin mobile device yang ada tanpa harus mengubah atau melakukan kompilasi ulang terhadap program. Hal ini sesuai dengan moto dari Java itu sendiri yaitu write once run anywhere. Ruang lingkup dari penelitian ini meliputi: bahasa yang dibuat hanya sebatas bahasa sederhana yang hanya memiliki fungsi-fungsi dasar, sehingga hanya bisa melakukan operasi-operasi sederhana. Bahasa yang dibuat tidak diharapkan untuk mengganti atau menyaingi bahasabahasa pemrograman yang sudah ada. Bahasa ini baru diimplementasikan pada satu jenis mobile device, yaitu Nokia 9210i Communicator. Bahasa dibuat dengan menggunakan bahasa pemrograman Java. Namun belum bisa dipastikan bahwa bahasa yang dibuat bisa dipergunakan pada seluruh mobile device yang memiliki teknologi java terintegrasi. Pe-rancangan dibuat dengan meng-gunakan UML (Unified Modeling Language). Komputer digunakan hanya sebagai alat bantu pe-ngembangan. TINJAUAN PUSTAKA Bahasa Menururt Metsker (2001, p3), bahasa adalah sebuah kumpulan string. Sedangkan menurut Ambary (1986, p8), bahasa adalah lambang bunyi suara yang dihasilkan oleh alat ucap manusia sebagai alat ko-munikasi antar anggota masyarakat. Stringstring yang membentuk se-buah bahasa adalah elemen dari bahasa tersebut, menurut Metsker (2001, p3). Pengertian Kompilator (Compiler) Kompilator menbaca suatu program yang ditulis dalam bahasa sumber (source language) dan me-nerjemahkan bahasa sumber tadi ke dalam suatu bahasa lain yang di-sebut dengan bahasa sasaran (target language). Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling). Tahap-Tahap Kompilasi : 1. Tahap Analisis Pada tahap analisis, program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan di-representasikan ke dalam suatu bentuk antara dari program sumber. Tahap analisis ini terdiri dari 3 proses utama yaitu : a. Analisis leksikal / analisis linier / pembacaan sumber (scanning). b. Analisis sintaktik / analisis hirarki / penguraian (parsing). c. Analisis semantik. 2. Tahap sintesis. Pada tahap sintesis program sasaran dibentuk berdasarkan re-presentasi antara yang dihasilkan pada tahap analisis. Tahap sintesis terdiri dari 3 proses utama yaitu : a. Intermediate code generator. b. Code optimizer. c. Code generator. MAUKAR, CIPTADI, PERANCANGAN DAN IMPLEMENTASI. 132

Parser Menurut Metsker (2002, p7), parser adalah sebuah objek yang mengenali elemen dari sebuah bahasa dan menterjemahkan setiap elemen menjadi hasil yang dimaksud. Kemampuan utama dari sebuah parser adalah untuk menentukan apakah string yang dituliskan me-rupakan pola dari bahasa atau bukan. Kolaborasi parser Dalam konteks pemrograman berbasis objek maka pekerjaan mengenali sintaks dilakukan oleh sebuah objek bernama parser yang bekerja sama dengan objek lain yang bernama Assembler sebagai objek penterjemah. Objek ketiga berfungsi sebagai pengawas dan penyedia tempat kerja pekerjaan yang sudah dilakukan disebut objek Assembly. Metoda parsing 1. Penguraian dari atas ke bawah (Top-Down Parsing). Penguraian dari atas ke bawah dapat dipandang sebagai suatu usaha untuk mencari derivasi paling kiri (leftmost) dari suatu rangkaian masukkan. Dalam topdown parsing dikenal 2 metode, yaitu : a. Recursive-Descent Parsing. b. Predictive Parsing. 2. Penguraian dari bawah ke atas. (Bottom up Parsing). Penguraian dari bawah ke atas lebih banyak mempergunakan penguraian shift-reduce. Penguraian shift-reduce berusaha untuk membuat pohon parser bagi suatu masukkan dimulai dari bawah (leaf) dan bergerak ke atas menuju puncak (root). Pada setiap langkah reduksi suatu sub string yang sesuai dengan sisi kanan suatu produksi itu, langkah itu sering disebut derivasi (rightmost). 3. Universal Parsing. Pada metode ini menggunakan algoritma Cocke-Younger_Kasami dan algoritma Early yang dapat menguraikan semua jenis tata bahasa (grammar), tetapi metode ini tidak efisien diguna-kan dalam pembuatan kompilator sehingga metode ini jarang di-gunakan. Finite automata Finite automata adalah suatu model matematika dari sebuah sistem dengan masukkan (input) dan keluaran (output) yang pasti dan jelas. Finite automata ditunjukkan dalah 5 tupple (Q,Σ,δ,q 0,F), dimana Q adalah himpunan dari state, Σ adalah himpunan alfabet sebagai masukkan, q 0 adalah melambangkan state awal, F adalah melambangkan final state, dan δ adalah fungsi transisi antar state berdasarkan masukkan ter-tentu. Finite automata digambarkan menggunakan graph berarah. Secara umum finite automata dibedakan menjadi 2 jenis, yaitu : 1. Non deterministik Finite Automata (NFA). Adalah suatu finite automata yang bisa mempunyai 1 atau lebih transisi dari suatu state ke state lain dengan simbol masukkan yang sama. 133 JURNAL INFORMATIKA & KOMPUTER, NO. 3, JILID 8, 2003

2. Deterministik Finite Automata (DFA). Adalah suatu finite automata yang hanya boleh mempunyai 1 transisi dari satu state ke state lain dengan simbol masukkan yang sama. Context Free Grammar (CFG) Menurut Winston (1991, p310), context free grammar adalah sebuah metode yang digunakan untuk mendefiniskan bagian kecil dari suatu kalimat (grammar). CFG terdiri atas : Terminal, Non terminal, Start symbol, Produksi. CFG digunakan untuk melakukan parsing terhadap kalimat yang akan dimasukkan dan informasi yang dimiliki aladah dalam bentuk terminal sehingga kalimat tersebut dapat dipahami. Pengertian interpreter Menurut Sukamdi (1995, p1), interpreter adalah program pe-nerjemah yang menterjemahkan instruksi-instruksi yang diberikan oleh pemakai sedemikian rupa sehingga komputer mampu memahaminya dan mengerjakannya. Menurut David Greis (1971, p2), interpreter adalah program yang menerima sebuah program sumber yang ditulis dalam suatu bahasa sebagai input dan mengeksekusinya. Perbedaan interpreter dengan kompilator 1. Interpreter memberikan hasil pengerjaan instruksi-instruksi memasukkannya dan tidak menghasilkan objek program untuk dieksekusi, sedangkan kompiler menghasilkan kode obyek yang biasanya berupa file EXE. 2. Interpreter memberikan kebebasan untuk melakukan modifikasi atau penambahaan kepada program ketika program di-eksekusi, sedangkan kompiler mengharuskan program di-kompilasi ulang jika ada modi-fikasi terhadap program. 3. Pada interpreter bersifat machine independent karena tidak ada kode mesin yang dihasikan, sedangkan kompiler bersifat machine dependent. 4. Interpreter memerlukan sumber daya piranti keras yang lebih besar karena harus selalu me-ngecek source program pada saat dieksekusi. ANALISIS DAN PERANCANG- AN Analisis dan disain yang terdapat pada bab ini. Pada bagian analisa kami mendefinisikan jenis token yang dapat dikenali oleh proses scaning yang demikian juga bahasa yang dapat dikenali melalui proses parsing. Pada bagian desain dicoba dibuat definisi formal dari jenis token yang dapat dikenali, selain itu untuk mendefinisikan bahasa yang dapat dikenali maka di desain Conteks Free Grammar yang sesuai. Conteks Free Grammar yang dibuat disini sangat terbatas pada pengenalan bahasa ekspresi yang sangat sederhana diataranya mewakili ekpresi aritmetik, ekpresi kontrol (if), ekpresi perulangan (for), ekspresi manipulasi string. Desain dilakukan dengan standar MAUKAR, CIPTADI, PERANCANGAN DAN IMPLEMENTASI. 134

formal yang biasa dipakai dalam teknik kompilasi. Conteks Free Grammar sebagai desain bahasa harus diyakinkan tidak ambigu untuk itu ambiguitas bahasa harus dihilangkan dalam hal ini dalam ekspresi kontrol if dengan else. Pernyataan aritmetik juga dibuat tidak rekursife kiri karena teknik parser yang dipakai top-down. Lexikal analisis dilakukan oleh tokenizer, tokenizerstate dan subkelasnya yang berfungsi membentuk token sesusai dengan jenis token yang didefinisikan. Proses scanner melakukan scaning pada untaian string yang terdapat pada stream. Bila untaian string tertentu sesuai polanya dengan jenis token yang sudah didefinisikan maka ia akan di bentuk menjadi token yang bersangkutan. Parsing atau syntaxis analisis dilakukan menggunakan teknik yang disebut sebagai Recursive-decent parsing yang merupakan sebuah teknik yang termasuk top down karena analisa bahasanya menggunakan struktur pohon yang ditelusuri mulai dari root sampai leave.top down dipilih karena teknik ini menghabiskan lebih sedikit sumber daya dibandingkan dengan teknik bottom-up, meskipun teknik bottom up memiliki keuntungan dapat mengenali lebih banyak grammar dari yang dikenali oleh teknik top down. Pertimbangan sumberdaya menjadi penting mengingat parser ini akan ditempatkan pada mobile device yang sumber dayanya amatlah terbatas. Sebenarnya teknik top down dapat diimplementasi dengan cara lain selain menggunakan pohon strukrur yaitu dengan menggunakan tabel parsing. Kami tidak mengetahui mana dari kedua teknik ini memiliki kinerja dan keperluan sumber daya tapi pada kasus ini kami menggunakan struktur pohon dengan backtracking. Kami melakukan definisi pohon lengkap pada memori yang nantinya akan dipakai pada proses pencocokan. Penanganan kesalahan dilakukan dengan solusi paling sederhana yaitu panic mode yaitu bila ada kesalahan pencocokan maka akan langsung melakukan pesan kesalahan. Proses selanjutnya bila ada proses parsing telah dilakukan maka akan pengolahan untuk memperoleh perintah java yang sesuai. Proses interpretasi ini melakukan menggunakan mekanisasi pohon fungsi dan stack untuk menghasilkan command yang dapat dijalankan oleh java. Selain apa yang telah dibahas sebagai engine dibelakang maka untuk antar mukanya digunakan sebuah aplikasi yang diberi nama BXEditor. BXEditor fungsi utamanya adalah sebagai sumber input yang berupa bahasa yang akan di interpretasi dan yang tak kalah pentingnya sebagai media output untuk perintah yang akan mengeluarkan hasil pada media output. IMPLEMENTASI DAN EVALUASI BXEditor adalah program aplikasi pembantu sederhana yang berfungsi sebagai tempat menginterpretasikan source code dari bahasa X dan me-lihat hasilnya. BXEditor memang tidak 135 JURNAL INFORMATIKA & KOMPUTER, NO. 3, JILID 8, 2003

mempunyai fugsionalitas yang sempurna tetapi penulis menganggap cukup keberadaannya untuk mengimplementasikan bahasa X. Gambar 1. Tampilan awal Menu Utama BXEditor pada Emulator Nokia 9210. Gambar 2. Tampilan Result Area tempat hasil interpretasi ditampilkan. Gambar 3. Penulisan source code pada Code Editor. MAUKAR, CIPTADI, PERANCANGAN DAN IMPLEMENTASI. 136

Gambar 4. Tombol Run untuk mengeksekusi source code. Gambar 5. Message Area menampilkan pesan kesalahan beserta solusinya. Gambar 6. Source code setelah di koreksi. 137 JURNAL INFORMATIKA & KOMPUTER, NO. 3, JILID 8, 2003

Gambar 7. Result Area menampilkan hasil eksekusi source code. Gambar 8. Tombol Source Code untuk kembali ke Layar Code Editor Evaluasi BXEditor di buat untuk semata mata membantu penulis mengimplementasikan bahasa X sehingga tidak mempunyai fungsionalitas yang sempurna. Nokia 9210i, merupakan mobile device yang memiliki kemampuan lebih dari mobile device yang ada saat ini. Nokia 9210i belum mendukung beberapa teknologi baru seperti GPRS dan MMS. Personal Java TM pada Nokia 9210i merupakan kunci penting dari produk ini untuk membuat aplikasi yang dapat berjalan diatasnya. Keterbatasan kemampuan prosesor dan physical memory pada Nokia 9210i dapat menghambat MAUKAR, CIPTADI, PERANCANGAN DAN IMPLEMENTASI. 138

pembuatan aplikasi dengan fungsionalitas yang tinggi. Software aplikasi yang di-buat untuk dijalankan pada Nokia 9210i harus di-kompilasi dengan JDK versi 1.2.1.004, bila tidak maka aplikasi itu tidak akan berjalan. Sehingga pe-ngembang tidak dapat me-makai fungsi fungsi baru yang bermanfaat pada JDK versi terbaru. Bahasa X hanya bisa menjalankan operator logika dan aritmatika yang sederhana. Karena bahasa X baru hanya bisa menjalankan operator logika yang se-derhana maka BXEditor tidak bisa disebarluaskan untuk tujuan komersil tetapi hanya digunakan oleh pe-nulis untuk keperluan pe-nelitian. PENUTUP Object oriented programming dapat digunakan dalam pembuatan parser, serta parser tersebut berjalan dengan baik dalam interpreter bahasa X. Mobile device yang digunakan (Nokia 9210i), tidak hanya bisa untuk menjalankan aplikasi, namun juga bisa digunakan untuk mengembangkan aplikasi. Teknik recursive descent parsing dapat dipergunakan untuk pe-rancangan parser dengan pen-dekatan object oriented programming. Proses pembuatan interpreter sebuah bahasa merupakan suatu hal yang me-narik untuk dilakukan, diharapkan ke depan banyak mahasiswa yang tertarik untuk me-ngembangkan lebih lanjut interpreter bahasa X ini, sehingga interpreter bahasa X ini memiliki banyak fungsionalitas dan lebih bisa men-dukung banyak platform yang tentunya mendukung teknologi Java. Diharapkan interpreter bahasa X ini dapat mendorong mahasiswa untuk merancang dan mengembangkan hal yang sejenis di masa yang akan datang, yang tentunya dengan metode dan alat bantu yang berbeda dari interpreter bahasa X ini. Agar dapat menangani statement yang lebih kompleks, grammar perlu di-perluas dengan menambahkan produksi untuk statement-statement yang tidak terdapat pada parser ini. Sebagai bahan penelitian yang menarik juga jika ke depan ada mahasiswa yang mencoba mem-bandingkan antara teknik recursive descent parsing dengan Tabel parsing. DAFTAR PUSTAKA Aho, Alfred V., Senthi, R, Villman, Jeffrey D. 1986. Compiler Principles, Techniques, and Tools. Addison Wesley Publish-ing Company, USA. Ambary, Abdullah. 1986. Intisari Tata Bahasa Indonesia. Penerbit Djatmika, Bandung, Indonesia. Firrar Utdirartatmo. 2001. Teknik Kompilasi. Penerbit J & J Learning, Yogyakarta, Indonesia. Gamma, et.al. 1995. Design Pattern. Addison-Wesley, USA. Gries, David. 1971. Compiler Construction for Digital Computers. Willey International Edition, New York. 139 JURNAL INFORMATIKA & KOMPUTER, NO. 3, JILID 8, 2003

Metsker, Steven John. 2001. Building parser With Java. Addison- Wesley Publishing Company, New York. Pittman, J dan Peters, J. 1992. The Art of Conpiler Design Theory and Practice. Prentice-Hall International. Inc., New Jersey. Sukamdi. 1995. Merekayasa Interpreter (Sebuah Penerapan Teknik Kompilasi). PT. Elex Komputindo, Jakarta. Winston, Patrick Henry. 1984. Arficial Inteligence 2nd Edition. Edison Wesley, California. MAUKAR, CIPTADI, PERANCANGAN DAN IMPLEMENTASI. 140