APLIKASI GAME BERBASIS JAVA 2 MICRO EDITION (J2ME) Trio Ardiyanto, Darwin Suhendra, dan Muhammad Sholeh Jurusan Teknik Informatika, FTI, IST AKPRIND Yogyakarta ABSTRAK Java 2 Micro Edition (J2ME merupakan teknologi terpenting dari Java untuk masa depan. Implementasi Implementasi J2ME dapat ditemukan pada piranti mobile devices. Piranti-piranti mobile device yang baru diluncurkan ke pasar, semuanya sudah mendukung Java, terutama produk tiga besar yaitu: Nokia, Soni Ericcson, Motorola. Salah satu aplikasi yang sangat menarik dan sering dimainkan dalam piranti mobile device adalah game. Dalam makalah ini akan dibahas salah satu permainan game yang dapat dimainkan di mobile device. Aplikasi ini dikembangkan dengan menggunakan J2ME Kata kunci: aplikasi game, J2ME, mobile device PENDAHULUAN Perkembangan dunia informasi saat ini mengarah pada teknologi wireless yang sudah sepantasnya dicermati sebagai langkah maju dari dunia IT untuk mengembangkan informasi yang tak terbatas dan dapat diakses dari mana saja tanpa terbatas akan ruang. Wireless merupakan suatu sistem telekomunikasi yang memberi layanan komunikasi yang bersifat mobile kepada penggunanya. Mobile berarti dapat berpindah dari suatu tempat ketempat lain yang luas dengan mudah. Teknologi wireless ini sangatlah luas mencakup bidang-bidang mulai dari radio, televisi, hingga peralatan komunikasi bergerak, seperti Pager, Handphone, PDA, maupun satelit. Wireless application merupakan aplikasi-aplikasi yang dikembangkan untuk digunakan pada perangkat-perangkat mobile. Saat ini program pada handphone ada tiga jenis, yakni: 1. Program yang dipasang pada handphone, semacam AddressBook, CallRegister, games yang sudah ada pada tiap handphone yang dipakai. 2. Program yang dipasang pada SIM Card, semacam mobile banking BCA. 3. Program yang dijalankan dengan model client-server, semacam aplikasi-aplikasi berbasis WAP (Wireless Access Protocol). Game adalah salah satu aplikasi aplikasi yang tak pernah berhenti dibahas oleh pakar-pakar bidang IT. Mulai dari PC sampai sekarang kedunia wireless game tetap hangat untuk dibicarakan. Dengan adanya Java yang merupakan bahasa pemrograman lintas platform, kita tidak harus bergantung pada salah satu platform saja untuk kepentingan menulis program sekaligus menjalankannya. Penulis sengaja membahas dalam lingkungan sistem operasi Linux karena Java dapat menjembatani kebingungan para programmer Linux akan masa depan aplikasi yang dibuatnya. Pasar aplikasi untuk perangkat mobile (wireless application) ini sangat luas, dan menjadi tantangan bagi para pemprogram di Indonesia khususnya, untuk siap-siap menyambut salah satu teknologi masa depan ini Teknologi Java merupakan sebuah teknologi yang berkembang sangat pesat akhir-akhir ini. Bahkan belakangan ini dikabarkan berusaha mengalahkan Microsoft yang terkenal sebagai kampiun dari produsen operating system dimuka bumi ini. Teknologi Java yang pada awalnya dikenal untuk aplikasi pada desktop (J2SE) ataupun pada aplikasi server (J2EE), kini hadir dengan tenologi terbarunya, J2ME Platform, untuk pembangunan aplikasi pada mobile device seperti mobile phone dan PDA.(http://j2me.winwinfaisal.info) Java 2 Micro Edition (J2ME) yang saat ini semakin populer, merupakan teknologi terpenting dari Java untuk masa depan. Ini dapat kita temukan pada semua mobile devices yang baru diluncurkan ke pasar, semuanya sudah mendukung Java, terutama produk tiga besar yaitu: Nokia, Soni Ericcson, Motorola. Sekilas Tentang MIDlet MIDlet adalah aplikasi yang dibuat menggunakan Java 2 Micro Edition dengan profile Mobile Information Device Profile (MIDP). Aplikasi game (MIDlet Game) yang penulis implementasikan ini masih sangat sederhana, hanya menyertakan suatu koboi yang berjalan melalui suatu padang rumput yang luas yang melompat diatas rumput kering (tumbleweeds). MIDlet game ini seperti silly game, tetapi game yang saya implementasikan hanya menggambarkan paling dasar dari suatu pengembangan implementasi MIDlet game.
296
Sekilas Tentang Java Dari referensi yang diperoleh penulis, bahwa Java awalnya bernama Oak, yakni bagian dari projekGreen yang dikembangkan khusus oleh Sun Microsystem untuk memprogram perangkatperangkat elektronik rumah tangga semacam televise. Namun pada perkembangannya, bahasa Oak ini menjadi bahasa yang bias digunakan untuk pemrograman secara umum dan dikenal menjadi bahasa Java saat ini. Sekilas J2ME (Java 2 Micro Edition) Java 2 Micro Edition merupakan subset dari Java 2 Standard Edition (J2SE) yang ditujukan untuk implementasi pada peralatan embedded system dan handheld yang tidak mampu mendukung secara penuh implementasi menggunakan J2SE. Embedded system adalah produk-produk dengan komputer kecil berada didalamnya, namun aplikasi yang bisa dimanfaatkan dari peralatan tersebut sangatlah spesifik. Hal ini tentu saja berbeda dengan komputer PC yang kita kenal sehari-hari, yang mampu digunakan untuk berbagai aplikasi. Contoh Embedded System yang ada misalnya adalah aplikasi-aplikasi yang memanfaatkan mikroprosesor seperti televisi, sistem keamanan gedung, dan sebagainya. (Antonius Aditya Hartanto, 2003). J2ME sangat berguna untuk membangun sebuah aplikasi pada peralatan dengan jumlah memori dan kapasitas penyimpan yang terbatas, serta kemampuan user interface yang terbatas seperti pada perangkat komunikasi bergerak berupa handphone, PDA dan sebagainya. Bila dibandingkan dengan WAP (wireless application protocol) dengan bahasa pemrograman markup languange-nya yaitu WML (wireless mark up language) maka J2ME memiliki beberapa kelebihan yang berarti. WML sendiri memiliki beberapa kekurangan yaitu: 1. Small display dan limited user input facility. 2. Must always connected. 3. Biasanya devices-nya memiliki memory dan computational resources yang terbatas. Teknologi J2ME ditujukan untuk cakupan user yang luas sekali dari mulai handphone hingga set-top-box yang powerful seperti halnya sebuah komputer yang dilengkapi dengan J2SE atau J2EE. J2ME memiliki beberapa keunggulan yaitu: 1. Sebagaimana kekhasan aplikasi yang ditulis dengan bahasa pemrograman Java maka aplikasi J2ME memiliki ciri running any where, any time, over any device. 2. Aplikasi dapat dijalankan secara on-line maupun off-line. 3. Memiliki kode yang portable. 4. Safe network delivery. 5. Aplikasi yang ditulis dengan J2ME akan memiliki kompatibilitas yang tinggi dengan platform J2SE dan J2EE.(http://j2me.winwinfaisal.info).
HASIL DAN PEMBAHASAN Fungsi Sistem Fungsi sistem ini antara lain: 1. Sistem dapat dioperasikan dengan mudah oleh para pengguna. 2. Sistem dapat menunjukan bahwa aplikasi MIDlet ini sebagai media hiburan alternatif yang menarik. Konfigurasi Perangkat Keras dan Perangkat Lunak. Dalam pembuatan aplikasi MIDlet ini perangkat keras yang digunakan minimal adalah sebuah komputer dengan spesifikasi sebagai berikut: 1. Processor : 166 MHz 2. Memori / RAM : 64 MB 3. Hard Disk : 200 MB 4. VGA Card : 4 MB Dalam pembuatan program aplikasi MIDlet ini, pernagkat keras yang penulis gunakan adalah sebuah komputer dengan konfigurasi sebagai berikut: 1. Processor : Pentium III 800 MHz 2. Memori / RAM : 128 MB 3. Hard Disk : 20 GB 4. VGA Card : 32 MB Dalam pembuatan apliakasi MIDlet yang berbasis Java 2 Micro Edition hal yang pertama diperlukan adalah Java 2 Software Developkit (J2SDK) versi 1.4.0.2. Yang kedua Java 2 Micro Edition
297
(J2ME) Wireless Toolkit versi 2.0. Untuk menjalankan sistem menggunakan emulator yang telah disediakan pada perangkat lunak J2ME Wireless Toolkit 2.0. Pembuatan File Gambar File gambar dapat diperoleh dari foto-foto atau gambar-gambar yang sudah jadi, selanjutnya gambar tersebut dapat diolah atau diedit lagi dengan menggunakan perangkat lunak pengedit gambar. Penulis menggunakan suatu perangkat lunak gratis yang sudah tersedia pada Red Hat Linux 7.2 yaitu The GIMP. Jika belum ada program tersebut dapat di download di http//:www.gimp.org/download.html. Seluruh file gambar yang penulis gunakan berekstensi .png. File Gambar yang penulis gunakan dalam aplikasi game ini adalah sebagai berikut: ¾
boot.png
File ini digunakan sebaga icon game
¾
cowboy.png
File ini digunakan sebagai gambaran objek coboi. ¾
grass.png
File ini digunakan sebagai gambar dari objek rumput liar (grass). ¾
tumbleweed.png
File ini digunakan sebagai gambar objek rumput kering (tumbleweed) yang harus dihindari oleh koboi. Hasil Sistem Setelah mengklik “Run” maka akan muncul tampilan:
Gambar 1: Tampilan icon MIDlet Game Tampilan ini merupakan icon MIDlet Game. Setelah icon diklik dengan menekan tombol Launch yang terletak di sebelah kanan layar maka akan menampilakan layar seperti dibawah ini:
Gambar 2: Tampilan awal MIDlet game
298
Tampilan awal sangat sederhana, langsung menampilkan objek game dengan menu “Start” untuk mulai permainan dan “Exit” keluar game dan kembali ke tampilan icon. Setelah menekan tombol “Start” akan muncul:
Gambar 3: Tampilan saat MIDlet game dijalankan Pada saat game dijalankan coboi berusaha untuk menghindar dari hadangan tumbleweed seperti pada gambar:
Gambar 4: Tampilan saat coboi menghindar dari tumbleweed dengan melompat Pada saat game dijalankan tombol yang saya gunakan akan secara otomatis berubah menjadi tombol “Pause” yang tetap berada disebelah kanan. Saat tombol “Pause” diklik game akan otomatis berhenti sementara seperti pada gambar berikut:
Gambar .5. Tampilan saat MIDlet game dalam keadaan Pause Jika tombol “Start” ditekan kembali maka game akan berjalan kembali, dan game berakhir apabila waktu yang digunakan telah habis. Seperti pada gambar dibawah ini:
299
Gambar 6.Tampilan saat MIDlet game berakhir
packagepetualang; import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; /public class Cowboy extends Sprite { static int WIDTH = 32; static int HEIGHT = 48; static int[] FRAME_SEQUENCE = { 3, 2, 1, 2 }; int myInitialX; int myInitialY; int myNoJumpInt = -6; int myIsJumping = myNoJumpInt; int myScoreThisJump = 0; public Cowboy(int initialX, int initialY) throws Exception { super(Image.createImage("/icons/cowboy.png"), WIDTH, HEIGHT); myInitialX = initialX; myInitialY = initialY; defineReferencePixel(WIDTH/2, 0); setRefPixelPosition(myInitialX, myInitialY); setFrameSequence(FRAME_SEQUENCE); } //--------------------------------------------------------// game methods /** * If the cowboy has landed on a tumbleweed, we decrease * the score. */ int checkCollision(Tumbleweed tumbleweed) { int retVal = 0; if(collidesWith(tumbleweed, true)) { retVal = 1; // once the cowboy has collided with the tumbleweed, // that tumbleweed is done for now, so we call reset // which makes it invisible and ready to be reused. tumbleweed.reset(); } return(retVal); } /** * set the cowboy back to its initial position. */ void reset() { myIsJumping = myNoJumpInt; setRefPixelPosition(myInitialX, myInitialY); setFrameSequence(FRAME_SEQUENCE); myScoreThisJump = 0; // at first the cowboy faces right: setTransform(TRANS_NONE); } void advance(int tickCount, boolean left) { if(left) { setTransform(TRANS_MIRROR); move(-1, 0); } else { setTransform(TRANS_NONE); move(1, 0); } if(tickCount % 3 == 0) { // slow the animation down a little if(myIsJumping == myNoJumpInt) { nextFrame(); } else { myIsJumping++; if(myIsJumping < 0) { setRefPixelPosition(getRefPixelX(), getRefPixelY() - (2<<(-myIsJumping)));
300
} else { if(myIsJumping != -myNoJumpInt - 1) { setRefPixelPosition(getRefPixelX(), getRefPixelY() + (2<<myIsJumping)); } else { myIsJumping = myNoJumpInt; setRefPixelPosition(getRefPixelX(), myInitialY); setFrameSequence(FRAME_SEQUENCE); myScoreThisJump = 0; } } } } } /** * makes the cowboy jump. */ void jump() { if(myIsJumping == myNoJumpInt) { myIsJumping++; setFrameSequence(null); setFrame(0); } } int increaseScoreThisJump() { if(myScoreThisJump == 0) { myScoreThisJump++; } else { myScoreThisJump *= 2; } return(myScoreThisJump); } }
KESIMPULAN Aplikasi MIDlet game ini merupakan aplikasi yang sangat sederhana dan menggambarkan dasar-dasar dari pemrograman wireless dengan menggunakan teknologi Java. Game ini sangat sederhana karena hanya menampilkan satu layar dengan tampilan grafis yang sederhana dan tomboltombol yang digunakan sangat sedikit yaitu “Play”, “Pause”, Play Again”, penulis merasa tomboltombol tersebut sudah sangat familiar oleh pengguna sehingga penulis tidak membuat menu “Help” sebagai menu bantuan. Aplikasi MIDlet game ini menggambarkan sebuah coboi yang berjalan pada suatu padang rumput yang luas dimana dia berusaha menghindar dari tumpukan rumput kering dengan meloncat. Jika koboi tersebut berhasil meloncatinya dia akan mendapat score +1 tetapi jika gagal akan mendapat score -1. Game ini berakhir jika waktu permainan telah berakhir. Game ini diberi waktu satu menit dan jika waktu berakhir game akan diulangi kembali. DAFTAR PUSTAKA Day, Bill, 2003, Developing Wireless Application using MIDP 2.0, WMA, and MMA, http://billday.com/j2me Hariyanto, Bambang, 2003, Esensi-esensi Bahasa Pemrograman Java, Penerbit Informatika, Bandung. Hartanto, Aditya, Antonius, 2003, Java 2 Micro Edition Mobile Interface Device Programming, PT. Elex Media Komputindo, Jakarta. Hartanto, Aditya, Antonius, 2003, Pemrograman di Linux dengan Java, PT. Elex Media Komputindo, Jakarta. Sun Microsystems,2003, Java 2 Platform, Microedition (J2ME) Wireless Toolkit http://www.java.sun.com/j2me/documentation/ Thamura, Frans, 2003, Memahami Java ‘Kebebasan’ di Mobile Java, NEOTEK, Vol.III – No.09, Jun/Jul 2003. Wicaksono, Ady, 2002, Dasar-dasar Pemrograman Java 2, PT. Elex Media Komputindo, Jakarta. Wicaksono, Ady, 2003 , Pemrograman Aplikasi Wireless dengan Java, PT. Elex Media Komputindo, Jakarta. Wiryasantika, Faisal, 2003, Membangun Wireless Application Menggunakan Teknologi J2ME, http://j2me.winwinfaisal.info
301