• Tidak ada hasil yang ditemukan

PERANCANGAN DAN IMPLEMENTASI INTERPRETER BAHASA X PADA NOKIA 9210i

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERANCANGAN DAN IMPLEMENTASI INTERPRETER BAHASA X PADA NOKIA 9210i"

Copied!
11
0
0

Teks penuh

(1)

PERANCANGAN DAN IMPLEMENTASI

INTERPRETER BAHASA X PADA NOKIA 9210i

Maukar1, Resza Ciptadi2 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 mengimplemen-tasikan-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-infor-masi yang bersifat teknis. Hasil yang dicapai adalah sebuah inter-preter 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 dikem-bangkan kembali sehingga interpreter bahasa X memiliki banyak fung-sionalitas, dan tidak hanya didukung oleh Nokia 9210i saja, melainkan untuk seluruh mobile device yang memiliki teknologi Java di dalam-nya.

Kata Kunci: Interpreter, parser, mobile device

PENDAHULUAN

Bahasa merupakan alat yang digunakan untuk berkomunikasi. Tidak hanya untuk melakukan komu-nikasi atara manusia dengan manu-sia yang lainnya, namun dalam hal ini

bahasa juga menjembatani komu-nikasi antara manusia dengan kom-puter. Bahasa yang digunakan manu-sia untuk berkomunikasi dengan komputer dikenal dengan bahasa

(2)

pemrograman (programming lan-guage).

Bahasa pemprograman adalah alat untuk menjembatani komunikasi antara manusia dengan komputer (Metsker, 2001). Karena pada dasar-nya komputer mengerti hadasar-nya sedikit bila tidak bisa dibilang tidak mengerti sama sekali. Komputer dapat me-nambahkan angka dan memindahkan string tapi tidak mengerti (Metsker, 2001). Sementara bahasa alami manusia cenderung ekspresif. Itulah sebabnya bahasa pemprograman menjadi penting. Bahasa pem-pro-graman 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 pemprogram-an disesuaikpemprogram-an dengpemprogram-an konteks dpemprogram-an tujuan apa yang ingin dikerjakan. Ba-hasa seperti SQL misalnya lebih ideal untuk bekerja dengan database dari pada bahasa fungsional seperti Pro-log yang lebih cocok untuk me-ngem-bangkan aplikasi kecerdasan buatan. C misalnya merupakan bahasa ter-baik dalam pemprograman sistem operasi dibandingkan dengan C++ yang lebih cocok untuk me-ngem-bangkan aplikasi yang berjalan diatas sistem operasi.

Perkembangan bahasa pe-mro-graman ini tidak saja ber-pengaruh pada pesatnya teknologi komputer, namun juga teknologi yang digu-nakan dalam alat yang lebih kecil dari komputer, dalam hal ini adalah mo-bile device. Pemanfaatan momo-bile de-vice 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-li-hat lima tahun ke belakang, hand-phone hanya berupa alat komunikasi yang bisa digunakan dimana-mana selama masih di dalam area jangkau-an jaringjangkau-annya. Sekarjangkau-ang hjangkau-and- hand-phone tidak saja bisa digunakan un-tuk ber-komunikasi dengan orang lain, namun bisa juga digunakan un-tuk 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 mo-bile device ini juga mengalami pe-ningkatan yang sangat berarti. Salah satu penyebab makin banyaknya ap-likasi-aplikasi yang telah dibuat untuk dipakai pada perangkat ter-sebut adalah adanya bahasa pe-mrogra-man yang bernama Java. Walaupun Java bukan satu-satunya bahasa yang dapat digunakan untuk membu-at sumembu-atu aplikasi pada mobile device, namun Java bisa dikatakan bahasa yang terbaik saat ini dalam menan-gani seluruh proses yang ada pada mobile device. Java dengan J2ME (Java 2 Micro Edition) dapat men-gakomodir segala kebutuhan para pembangun aplikasi untuk mobile

(3)

de-vice dari pada bahasa-bahasa yang lainnya. Salah satu keunggulan Java dibandingkan dengan bahasa-ba-hasa lainnya, seperti C atau C++, adalah ke-mampuannya untuk di-jalankan pada seluruh mesin mobile device yang ada tanpa harus men-gubah atau melakukan kompilasi ulang terhadap program. Hal ini sesuai dengan moto dari Java itu sendiri yaitu write once run any-where.

Ruang lingkup dari penelitian ini meliputi: bahasa yang dibuat hanya sebatas bahasa sederhana yang hanya memiliki fungsi-fungsi dasar, sehingga hanya bisa melakukan op-erasi-operasi sederhana. Bahasa yang dibuat tidak diharapkan untuk mengganti atau menyaingi bahasa-bahasa pemrograman yang sudah ada. Bahasa ini baru diimplementasi-kan 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-ran-cangan dibuat dengan meng-gu-nakan UML (Unified Modeling Lan-guage). Komputer digunakan hanya sebagai alat bantu pe-ngembangan. TINJAUAN PUSTAKA

Bahasa

Menururt Metsker (2001, p3), ba-hasa 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. String-string yang membentuk se-buah ba-hasa adalah elemen dari baba-hasa tersebut, menurut Metsker (2001, p3).

Pengertian Kompilator (Compiler)

Kompilator menbaca suatu pro-gram yang ditulis dalam bahasa sum-ber (source language) dan me-ner-jemahkan bahasa sumber tadi ke dalam suatu bahasa lain yang di-se-but dengan bahasa sasaran (target language). Proses penerjemahan yang dilakukan oleh kompilator ini di-sebut proses kompilasi (compiling).

Tahap-Tahap Kompilasi : 1. Tahap Analisis

Pada tahap analisis, program yang ditulis dalam bahasa sumber di-bagi dan dipecah ke dalam beberapa bagian yang kemudian akan di-repre-sentasikan 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-pre-sentasi antara yang dihasilkan pada tahap analisis. Tahap sintesis terdiri dari 3 proses utama yaitu :

a. Intermediate code generator. b. Code optimizer.

(4)

Parser

Menurut Metsker (2002, p7), parser adalah sebuah objek yang mengenali elemen dari sebuah ba-hasa dan menterjemahkan setiap ele-men ele-menjadi hasil yang dimaksud. Kemampuan utama dari sebuah parser adalah untuk menentukan apakah string yang dituliskan me-ru-pakan pola dari bahasa atau bukan.

Kolaborasi parser

Dalam konteks pemrograman berbasis objek maka pekerjaan me-ngenali sintaks dilakukan oleh se-buah 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 pal-ing kiri (leftmost) dari suatu rangkaian masukkan. Dalam top-down 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. Peng-uraian shift-reduce berusaha un-tuk 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 (right-most).

3.

Universal Parsing.

Pada metode ini menggunakan algoritma Cocke-Younger_Kasa-mi dan algoritma Early yang dap-at menguraikan semua jenis tdap-ata 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 sis-tem dengan masukkan (input) dan keluaran (output) yang pasti dan je-las. Finite automata ditunjukkan dalah 5 tupple (Q,Σ,δ,q0,F), dimana Q

adalah himpunan dari state, Σ adalah himpunan alfabet sebagai masukkan, q0 adalah melambangkan state awal,

F adalah melambangkan final state, dan δ adalah fungsi transisi antar state berdasarkan masukkan ter-ten-tu. Finite automata digambarkan menggunakan graph berarah. Secara umum finite automata dibedakan menjadi 2 jenis, yaitu :

1.

Non deterministik Finite Auto-mata (NFA).

Adalah suatu finite automata yang bisa mempunyai 1 atau lebih transisi dari suatu state ke state lain dengan simbol masuk-kan yang sama.

(5)

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 men-definiskan 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 di-miliki aladah dalam bentuk terminal sehingga kalimat tersebut dapat di-pahami.

Pengertian interpreter

Menurut Sukamdi (1995, p1), in-terpreter adalah program pe-ner-jemah yang menterpe-ner-jemahkan instruk-si-instruksi yang diberikan oleh pe-makai sedemikian rupa sehingga komputer mampu memahaminya dan mengerjakannya. Menurut David Greis (1971, p2), interpreter adalah program yang menerima sebuah pro-gram sumber yang ditulis dalam su-atu bahasa sebagai input dan me-ngeksekusinya.

Perbedaan interpreter dengan kompilator

1. Interpreter memberikan hasil pe-ngerjaan instruksi-instruksi me-masukkannya dan tidak meng-hasilkan objek program untuk di-eksekusi, sedangkan kompiler

menghasilkan kode obyek yang biasanya berupa file EXE.

2.

Interpreter memberikan kebebas-an untuk melakukkebebas-an modifikasi atau penambahaan kepada pro-gram ketika propro-gram di-eksekusi, sedangkan kompiler meng-haruskan program di-kompilasi ulang jika ada modi-fikasi ter-hadap program.

3.

Pada interpreter bersifat machine independent karena tidak ada kode mesin yang dihasikan, sedangkan kompiler bersifat ma-chine dependent.

4.

Interpreter memerlukan sumber daya piranti keras yang lebih be-sar karena harus selalu me-nge-cek 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 men-definisikan bahasa yang dapat di-kenali maka di desain Conteks Free Grammar yang sesuai. Conteks Free Grammar yang dibuat disini sangat terbatas pada pengenalan bahasa ekspresi yang sangat sederhana di-ataranya mewakili ekpresi aritmetik, ekpresi kontrol (if), ekpresi perulang-an (for), ekspresi mperulang-anipulasi string. Desain dilakukan dengan standar

(6)

formal yang biasa dipakai dalam teknik kompilasi. Conteks Free Grammar sebagai desain bahasa harus diyakinkan tidak ambigu untuk itu ambiguitas bahasa harus dihilang-kan 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 sub-kelasnya 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 ber-sangkutan.

Parsing atau syntaxis analisis dilakukan menggunakan teknik yang disebut sebagai Recursive-decent parsing yang merupakan sebuah teknik yang termasuk top down karena analisa bahasanya meng-gunakan struktur pohon yang di-telusuri 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 di-tempatkan 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 meng-gunakan struktur pohon dengan backtracking. Kami melakukan de-finisi pohon lengkap pada memori yang nantinya akan dipakai pada proses pencocokan.

Penanganan kesalahan dilaku-kan dengan solusi paling sederhana yaitu panic mode yaitu bila ada ke-salahan pencocokan maka akan langsung melakukan pesan ke-salahan.

Proses selanjutnya bila ada proses parsing telah dilakukan maka akan pengolahan untuk memperoleh perintah java yang sesuai. Proses interpretasi ini melakukan mengguna-kan memengguna-kanisasi 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 se-buah aplikasi yang diberi nama BXEditor. BXEditor fungsi utamanya adalah sebagai sumber input yang berupa bahasa yang akan di in-terpretasi dan yang tak kalah penting-nya 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-li-hat hasilnya. BXEditor memang tidak

(7)

mempunyai fugsionalitas yang

sem-purna tetapi penulis menganggap cukup keberadaannya untuk meng-implementasikan bahasa X.

Gambar 1. Tampilan awal “Menu Utama” BXEditor pada Emulator Nokia 9210.

Gambar 2. Tampilan “Result Area” tempat hasil interpretasi ditampilkan.

(8)

Gambar 4. Tombol Run untuk mengeksekusi source code.

Gambar 5. “Message Area” menampilkan pesan kesalahan beserta solusinya.

(9)

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 meng-implementasikan bahasa X se-hingga tidak mempunyai fungsi-onalitas yang sempurna.

Nokia 9210i, merupakan mobile device yang memiliki kemam-puan lebih dari mobile device yang ada saat ini.

• Nokia 9210i belum mendukung beberapa teknologi baru seperti GPRS dan MMS.

• Personal JavaTM pada Nokia

9210i merupakan kunci penting dari produk ini untuk membuat aplikasi yang dapat berjalan di-atasnya.

• Keterbatasan kemampuan pro-sesor dan physical memory pada Nokia 9210i dapat menghambat

(10)

pembuatan aplikasi dengan fung-sionalitas 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 ber-jalan. Sehingga pe-ngembang tidak dapat me-makai fungsi – fungsi baru yang bermanfaat pada JDK versi terbaru.

• Bahasa X hanya bisa men-jalankan operator logika dan arit-matika yang sederhana.

• Karena bahasa X baru hanya bisa menjalankan operator logika yang se-derhana maka BXEditor tidak bisa disebarluaskan untuk tujuan komersil tetapi hanya digu-nakan oleh pe-nulis untuk keper-luan pe-nelitian.

PENUTUP

Object oriented programming da-pat digunakan dalam pembuatan parser, serta parser tersebut berjalan dengan baik dalam interpreter ba-hasa X.

Mobile device yang digunakan (Nokia 9210i), tidak hanya bisa untuk menjalankan aplikasi, namun juga bisa digunakan untuk mengembang-kan aplikasi.

Teknik recursive descent parsing dapat dipergunakan untuk pe-rancan-gan parser denpe-rancan-gan pen-dekatan ob-ject oriented programming.

Proses pembuatan interpreter se-buah bahasa merupakan suatu hal yang me-narik untuk dilakukan, di-harapkan ke depan banyak maha-siswa yang tertarik untuk me-ngem-bangkan lebih lanjut interpreter

hasa X ini, sehingga interpreter ba-hasa X ini memiliki banyak fungsion-alitas dan lebih bisa men-dukung banyak platform yang tentunya men-dukung teknologi Java. Diharapkan interpreter bahasa X ini dapat men-dorong mahasiswa untuk merancang dan mengembangkan hal yang seje-nis 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 ma-hasiswa yang mencoba mem-band-ingkan antara teknik recursive de-scent parsing dengan Tabel parsing. DAFTAR PUSTAKA

Aho, Alfred V., Senthi, R, Villman, Jeffrey D. 1986. Compiler

Prin-ciples, Techniques, and Tools.

Addison Wesley Publish-ing Company, USA.

Ambary, Abdullah. 1986. Intisari

Tata Bahasa Indonesia.

Pener-bit Djatmika, Bandung, Indonesia. Firrar Utdirartatmo. 2001. Teknik

Kompilasi. Penerbit J & J

Learn-ing, Yogyakarta, Indonesia. Gamma, et.al. 1995. Design Pattern.

Addison-Wesley, USA.

Gries, David. 1971. Compiler

Con-struction for Digital Comput-ers. Willey International Edition,

(11)

Metsker, Steven John. 2001.

Build-ing 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

Inter-national. Inc., New Jersey. Sukamdi. 1995. Merekayasa

Inter-preter (Sebuah Penerapan Teknik Kompilasi). PT. Elex

Komputindo, Jakarta.

Winston, Patrick Henry. 1984.

Arfi-cial Inteligence 2nd Edition.

Gambar

Gambar 2. Tampilan “Result Area” tempat hasil interpretasi ditampilkan.
Gambar 4. Tombol Run untuk mengeksekusi source code.
Gambar 8. Tombol “Source Code” untuk kembali ke Layar Code Editor Evaluasi

Referensi

Dokumen terkait

10 Ketika teman mengundang saya hadir dalam pertemuan persekutuan gerejani, saya mengiyakan dengan senang hati. STS TS

• Mahasiswa mampu menjelaskan Algoritma Mahasiswa mampu menjelaskan Algoritma dan membuat Flowchart. dan

Kendali optimal sistem suspensi mobil yang didesain secara off-line (K didesain pada massa mobil tertentu), jika massa mobil berubah dari muatan kosong ke muatan penuh, sistem

Kedalaman pondasi yang sekaligus berfungsi sebagai tirai aliran dibuat sampai mencapai air bawah permukaan tanah terendah 4 Dimensi pondasi harus memperhatikan beban yang

f) Apakah variabel wujud fisik, keandalan layanan, ketanggapan karyawan, Jaminan Layanan, dan empati berpengaruh signifikan secara simultan terhadap kepuasan

Ikterus/jaundice adalah Penimbunan pigmen empedu dalam tubuh yang menyebabkan warna kuning pada jaringan yang disebabkan oleh kelebihan kadar bilirubin di dalam plasma dan

[r]

Kemudian plastik panas terus diinjeksikan kedalam cetakan, material dengan suhu yang lebih rendah tadi terdorong terus kedalam dan meniggalkan bekas aliran..