dasar teorieprints.umm.ac.id/67860/2/bab ii.pdfpemrograman game (j2me, symbian, brew) sudah didukung...

26
8 BAB II DASAR TEORI 2.1 Sejarah Game Game merupakan sebuah permainan yang sangat menghibur bagi kita yang bosan atau jenuh akan kegiatan sehari-hari. Oleh karena itu perkembangan dunia Game sekarang ini sangatlah cepat baik itu dalam perangkat khusus buat game, komputer (PC), ataupun handphone (HP). ). Menurut Budi Daryatmo (2007), sejarah game di perangkat bergerak berawal ketika Nintendo memperkenalkan portable LCD game “Games & Watch” dan Gameboy, yang terkenal sebagai mobile game console [1]. Pada tahun 1997, Nokia membuat sebuah tipe game baru yang dapat dimainkan dengan menggunakan ponsel. Game pertama yang sangat populer adalah Snake. Pada tahun 1999, multi- player game di perangkat bergerak mulai diperkenalkan, yang berupa game berbasis WAP dan game berbasis SMS. Pada tahun 2001, game di perangkat bergerak lebih berkembang karena perangkat bergerak telah ditunjang dengan layar yang berwarna dan game berbasis Java yang dapat didownload mulai diperkenalkan ke pasar. Pada tahun 2003, Nokia memperkenalkan platform N-Gage dan game online dengan platform tersebut. Sekarang, perangkat bergerak telah banyak yang mendukung grafis 3D, kualitas suara dan resolusi tampilan yang baik, dan memori yang memadai. Berbagai platform pemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap.

Upload: others

Post on 19-Jul-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

8

BAB II

DASAR TEORI

2.1 Sejarah Game

Game merupakan sebuah permainan yang sangat menghibur bagi kita yang bosan atau

jenuh akan kegiatan sehari-hari. Oleh karena itu perkembangan dunia Game sekarang ini sangatlah

cepat baik itu dalam perangkat khusus buat game, komputer (PC), ataupun handphone (HP). ).

Menurut Budi Daryatmo (2007), sejarah game di perangkat bergerak berawal ketika Nintendo

memperkenalkan portable LCD game “Games & Watch” dan Gameboy, yang terkenal sebagai

mobile game console [1].

Pada tahun 1997, Nokia membuat sebuah tipe game baru yang dapat dimainkan dengan

menggunakan ponsel. Game pertama yang sangat populer adalah Snake. Pada tahun 1999, multi-

player game di perangkat bergerak mulai diperkenalkan, yang berupa game berbasis WAP dan

game berbasis SMS. Pada tahun 2001, game di perangkat bergerak lebih berkembang karena

perangkat bergerak telah ditunjang dengan layar yang berwarna dan game berbasis Java yang dapat

didownload mulai diperkenalkan ke pasar.

Pada tahun 2003, Nokia memperkenalkan platform N-Gage dan game online dengan

platform tersebut. Sekarang, perangkat bergerak telah banyak yang mendukung grafis 3D, kualitas

suara dan resolusi tampilan yang baik, dan memori yang memadai. Berbagai platform

pemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin

lengkap.

Page 2: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

9

2.2 Konsep Game Edukasi

Perkembangan game khususnya di Indonesia saat ini sudah semakin pesat contohnya

beberapa instansi pemerintahan, SMU/SMK sudah membuat content game edukasi, bahkan

beberapa perguruan tinggi sudah mulai membuka jurusan Game Tech.

Perusahaan - perusahaan IT di Indonesia sangat banyak yang mulai mengarah pada

produksi pembuatan game. Dengan semakin menggeliatnya minat masyarakat IT pada game

mendorong saya para pemerhati kemajuan pendidikan untuk membantu menyediakan sebuah

engine yang bisa dipelajari dan digunakan untuk keperluan pembuatan game sehingga lahirlah ide

untuk menciptakan engine EGFE (Engine Game For Education).

EGFE atau Engine Game For Education adalah salah suatu engine yang dibuat untuk

membantu mempermudah para developer/programmer khususnya programmer newbie dalam

proses pembuatan aplikasi game mobile secara umum. Dengan adanya engine ini diharapkan kita

dapat mempersingkat waktu dalam pembuatan interface awal contohnya pembuatan SplashScreen,

Main Menu, dst, sehingga kita lebih fokus pada masalah scenario & game play saja [2].

Page 3: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

10

Gambar 2.01 Arsitektur Game Edukasi (Engine Game For Education, pdf)

2.3 Struktur Game Edukasi

Seperti yang kita ketahui bersama bahwa ketika membuat class turunan dari MIDLet maka

yang harus dilakukan adalah mengimport paket javax.microedition.midlet.* begitupun juga

caranya jika kita ingin mengimplementasikan engine Game Edukasi yang sedang dibuat nantinya.

Engine EGFE disimpan dalam package egfe sehingga untuk dapat mengakses fungsi-fungsi dari

engine yang nantinya kita harus mengimport package egfe.

Page 4: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

11

Gambar 2.02 Struktur Game Edukasi (Engine Game For Education, pdf)

Seperti dilihat pada gambar diatas struktur dari engine EGFE, dapat kita lihat bahwa class

– class yang digunakan untuk pembuatan Splash Screen, Main Menu, Interface dari setiap class,

fungsi random untuk soal atau quiz nantinya, fasilitas score, fasilitas nyawa dan kerangka

pembangunan aplikasi game mobile secara umum sudah disediakan oleh package egfe. Sehingga

nanti kita tinggal fokus pada pembuatan scenario, ide, dan desain dari Game itu sendiri masing –

masing nantinya [2].

2.4 Mobile Device

Mobile device merupakan istilah yang sangat luas sekali, karena dapat mendukung semua

informasi, alat - alat informasi, Personal Digital Assistant (PDA), Mobile Phone, dan lain

sebagainya. Masing - masing Mobile device mempunyai OS (Operating System) yang dapat

Page 5: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

12

memberikan interface dan mengendalikan sinkronisasi piranti. Salah satu OS (Operating System)

yang biasa kita kenal yaitu Symbian, yang banyak digunakan oleh berbagai Handphone sekarang

ini, misalnya saja Nokia, Motorola, SonyEricson. Dan seiring berkembangnya teknologi, maka

berkembang pula OS (Operating System) Handphone misalkan saja Apple, Palm OS, Smartphone,

Linux.

2.5 Java 2 Micro Edition (J2ME)

Java2 Micro Edition atau yang biasa disebut J2ME adalah lingkungan pengembangan yang

didesain untuk meletakkan perangkat lunak Java pada barang elektronik beserta perangkat

pendukungnya. Pada J2ME, jika perangkat lunak berfungsi baik pada sebuah perangkat maka

belum tentu juga berfungsi baik pada perangkat yang lainnya. J2ME membawa Java ke dunia

informasi, komunikasi, dan perangkat komputasi selain perangkat komputer desktop yang

biasanya lebih kecil dibandingkan perangkat komputer dekstop. J2ME biasa digunakan pada

telepon seluler, pager, Personal Digital Assistants (PDA) dan sejenisnya. [3]

J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada pada J2SE dapat

digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimiliki

J2SE.

Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun,

di beragam lingkungan: Internet, intranets, consumer electronic products, computer applications

dan handphone. J2ME sendiri pada dasarnya

Page 6: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

13

terdiri dari tiga buah bagian, yaitu : konfigurasi, profil, dan paket – paket opsional, seperti

gambar di bawah ini.

Gambar 2.03 Bagian di dalam platform J2ME

2.5.1 Konfigurasi J2ME

Konfigurasi merupakan Java library minimum dan kapabilitas yang

dipunya oleh para pengembang J2ME, yang maksudnya sebuah mobile device

dengan kemampuan Java akan dioptimalkan untuk menjadi sesuai. Configuration

hanyalah mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran

Page 7: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

14

kesesuaian antar device.

Konfigurasi merupakan bagian yang berisi JVM (Java Virtual Machine) dan beberapa

library kelas lainnya. Perlu kita perhatikan bahwa JVM disini bukanlah JVM tradisioanal seperti

yang terdapat pada J2SE, melainkan JVM yang sudah didesain secara khusus untuk alat. J2ME

mempunyai dua konfigurasi yaitu `Connected Limited Device Configuration (CLDC) dan

Connected Device Configuration (CDC).

2.5.1.1 CLDC

The Connected Limited Device Configuration (CLDC) menggambarkan dan menunjuk

pada area berikut ini:

● Fitur Bahasa Java dan Virtual Machine(VM)

● Library dasar(java.lang.*,java.util.*)

● Input/Output(java.io.*)

● Kemanan

● Jaringan

● Internationalization

CLDC atau Connected Limited Device Configuration adalah perangkat dasar dari J2ME,

spesifikasi dasar yang berupa library dan API yang diimplementasiakan pada J2ME, seperti yang

digunakan pada telepon seluler, pager dan PDA. Perangkat tersebut dibatasi dengan keterbatasan

memori, sumber daya dan kemampuan memproses.

CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan

penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah

Page 8: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

15

CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP menggambarkan daur

hidup aplikasi MIDP (MIDlet), library UI dan event handling (javax.microedition.lcdui.*) [3].

Spesifikasi CLDC pada J2ME adalah spesifikasi minimal pada package, class, dan

sebagian fungsi Java Virtual Machine yang dikurangi agar dapat diimplementasikan dengan

keterbatasan sumber daya pada alat tersebut, JVM yang digunakan adalah KVM (Kilobyte Virtual

Machine). CDC (Connected Device Configuration) merupakan superset dari CLDC, sehingga

semua kelas yang nanti kita definisikan di dalam CLDC akan ada juga dalam CDC.

2.5.1.2 CDC

CDC atau Connected Device Configuration adalah spesifikasi dari

konfigurasi J2ME. CDC merupakan komunitas proses pada Java yang

mempunyai standardisasi. CDC terdiri dari virtual machine dan kumpulan library

dasar untuk dipergunakan pada profile industri. Implementasi CDC pada J2ME

adalah source code yang menyediakan sambungan dengan macam-macam platform [3].

Page 9: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

16

Perbedaan antara CLDC dan CDC sebagai berikut :

Tabel 2.01 Perbandingan CLDC dan CDC

CLDC CDC Mengimplementasikan subset dari J2SE Mengimplementasikan seluruh fitur

pada J2SE

JVM yang digunakan dikenal dengan

nama KVM

JVM yang digunakan dikenal dengan

nama CVM

Digunakan pada perangkat handled

dengan ukuran memori terbatas (160-

512 kilobyes)

Digunakan pada perangkat handled

dengan ukuran memori minimal 2

Mbytes

Procesor 16 bit atau 32 bit Procesor 32 bit

2.5.1.3 MIDP

MIDP atau Mobile Information Device profil adalah spesifikasi untuk sebuah profil J2ME.

MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka,

jaringan dan penyimpanan resisten.

The Mobile Information Device Profile (MIDP) berada di atas dari CLDC. Kita tidak bisa

menulis aplikasi mobile hanya dengan menggunakan CLDC API. Kita harus tetap memanfaatkan

MIDP yang mendefinisikan UI.

Spesifikasi MIDP, kebanyakan seperti CLDC dan API lainnya sudah digambarkan melalui

Java Community Process (JCP). JCP melibatkan sebuah kelompok ahli berasal dari lebih dari 50

perusahaan, yang terdiri atas pabrik perangkat mobile, pengembang software. MIDP terus

berkembang, dengan versi-versi masa depan yang telah lulus dari proses ketat JCP [3].

Page 10: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

17

Spesifikasi MIDP menggambarkan suatu perangkat MID yang memiliki karakteristik-

karateristik ini sebagai batas minimum:

Tampilan:

· Ukuran Layar: 96×54

· Kedalaman tampilan: 1-bit

· Ketajaman pixel: sekitar 1:1

Masukan:

·Satu atau lebih mekanisme user-input: satu keyboard, dua keyboard, atau

touch screen.

Memory:

·256 kilobytes of non-volatile memory untuk implementasi MIDP.

·8 kilobytes of non-volatile memory for application-created persistent data

·128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap)

Jaringan:

·Dua jalur, wireless, bandwidth terbatas

Sound:

· Kemampuan untuk memainkan nada-nada

MIDP menggambarkan model aplikasi, UI API, penyimpanan dan jaringan yang kuat,

permainan dan media API, kebijakan keamanan, penyebaran aplikasi dan ketetapan over-theair

(Konfigurasi J2ME, 2009).

Page 11: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

18

Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan pada MIDP 2.0

dibandingkan MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat dukungan

memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya Mobile Media API

(MMAPI).

2.5.2 Profil

Profil adalah perluasan dari konfigurasi. Artinya selain sekumpulan kelas yang terdapat

pada konfigurasi, terdapat juga kelas-kelas spesifik yang didefinisikan lagi di dalam profil.

Dengankata lain, profil akan membantu secara fungsional yaitu dengan menyediakan kelas-kelas

yang tidak terdapat di level konfigurasi.

Berikut beberapa profil yang tersedia untuk kebutuhan spesifik lainnya :

- PDAP (Personal Digital Asistent Profile), yaitu untuk PDA yang memperluas fungsi-

fungsi pada konfigurasi CLDC dan digunakan khusus menambahkan kemampuan-

kemampuan lebih apabila dibandingkan dengan pengguna profil MIDP.

- Foundation Profile, yaitu profil yang digunakan untuk konfigurasi CDC. Disini

ditambahkan beberapa kelas dari J2SE (Java2 Standart Edition) ke dalam

konfigurasi CDC dan berperan juga sebagai pondasi untuk membentuk profil baru

lainnya.

- Personal Profile, yaitu profil yang mendefinisikan ulang Personal Java sebagai profil

yang dapat digunakan sebagai profil dalam J2ME. Profil ini merupakan hasil

perluasan dari Foundation Profile.

Page 12: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

19

- RMI Profile, yaitu profil yang menambahkan dukungan RMI (Remote Method

Invocation) ke dalam konfigurasi CDC [3].

2.5.3 MIDlet

MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah bagian dari class

javax.microedition.midlet.MIDlet yang didefinisikan pada MIDP. MIDlet berupa sebuah class

abstrak yang merupakan subclass dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi

J2ME dan aplikasi manajemen pada perangkat bisa terbentuk.

• Daur Hidup MIDlet

MIDlet terdiri dari beberapa method yang harus ada, yaitu contructor(), protected

void startApp() throws MIDletStateChangeException, protected void pauseApp(),

protected void destroyApp (Boolean unconditional) throws

MIDletStateChangeException.

Ketika MIDlet dijalankan maka akan diinisialisasi dengan kondisi pause dan dijalankan

pauseApp(), kondisi berikutnya adalah fungsi MIDlet dijalankan, yaitu pada startApp(). Metode

yang ada tersebut diimplementasikan sebagai protected, hal ini dimaksudkan agar MIDlet lain

tidak dapat memanggil method tersebut. Pada saat pemakai keluar dari MIDlet, maka method

destroyApp() akan dijalankan sebelum MIDlet benar-benar tidak berjalan lagi. Method

notifyDestroyed() akan dipanggil sebelum MIDlet benar-benar tidak berjalan lagi, DestroyApp()

akan memanggil notifyDestroyed(), dan notifyDestroyed() akan memberi tahu platform untuk

menterminasi MIDlet dan membersihkan semua sember daya yang mengacu pada MIDlet.

(Wartawrga, 2010)

Page 13: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

20

2.5.4 J2ME Wireless Toolkit

J2ME Wireless Toolkit adalah sekumpulan tool yang digunakan untuk mengembangkan

aplikasi – aplikasi dalam Handphone dan wireless device lainnya [3].

Sun Java Wireless Toolkit for CLDC yang juga disebut dengan J2ME Wireless Toolkit

merupakan kumpulan dari tool yang memungkinkan pembuatan aplikasi untuk ponsel dan piranti

wireless lainnya. Walaupun berbasis Mobile Information Device Profile (MIDP) 2.0, Sun Java

Wireless Toolkit for CLDC juga mendukung banyak paket optional. Sun Java Wireless Toolkit for

CLDC mendukung pembuatan aplikasi MIDP dengan fitur utama (Sun microsystem, 2006).

2.5.5 Emulator J2ME

Sebagian pengguna perangkat mobile seperti handphone menginginkan aplikasi - aplikasi

yang biasa didapati pada sebuah komputer (PC) tersedia versi mobilenya. Saat ini berbagai aplikasi

sudah siap pakai, baik yang berbasis sistem operasi yang digunakan, berbasis web, maupun

penggunaan java yang umum didukung berbagai perangkat mobile.

Penulis berpikir bagaimana jika aplikasi - aplikasi yang kita buat nantinya untuk perangkat

mobile dapat dijalankan pada PC. Khusus untuk aplikasi berbasis java yang banyak tersedia untuk

perangkat mobile, J2ME Wireless Toolkit menyediakan empat buah emulator. Emulator itu sendiri

nantinya akan digunakan untuk menyimulasikan device di dalam komputer sehingga aplikasi atau

game ini dapat kita jalankan dan ujicoba tanpa harus di instal ke dalam device bersangkutan

terlebih dahulu [3].

Page 14: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

21

Beberapa emulator yang disediakan J2ME Wireless Toolkit adalah sebagai berikut :

- DefaultColorPhone, dengan ukuran layar 240x320 dan ukuran canvas 240x289.

Gambar 2.04 Emulator DefaultColorPhone

- DefaultGrayPhone, dengan ukuran layar 120x208 dan ukuran canvas 180x177.

- MediaControlSkin, dengan ukuran layar 120x208 dan ukuran canvas 180x177.

2.5.6 Direktori Projek J2ME

Awal mula membuat suatu projek baru didalam J2ME maka akan secara otomatis J2ME

Wireless Toolkit akan menyimpan ke dalam direktori dan ditempatkan dalam direktori apps. Jika

instalasi software J2ME di drive C, maka direktori yang akan terbentuk adalah

C:\WTK22\apps\”nama projek”. Hal ini apabila dalam keadaan default, apabila tanpa merubah

pesan yang ditampilkan pada panel toolkit.

Page 15: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

22

Adapun struktur direktori yang di maksud gambarannya sebagai berikut :

C:\WTK22\apps\”nama projek”.

- “nama projek”

bin

lib

res

src

Berikut adalah keterangan dari direktori yang terbentuk pada setiap objek default :

- bin, berisi file mainfest serta file hasil kompilasi (file .jar) dan file Java Application

Description (file .jad).

- lib, digunakan untuk menyimpan file-file .class maupun .jar tambahan yang dibutuhkan

oleh projek (apabila ada).

- res, digunakan untuk menyimpan file-file tambahan lain yang diperlukan oleh projek,

misal file gambar maupun teks.

- src, digunakan untuk menyimpan file kode program dan perlu kita perhatikan bahwa jika

menggunakan paket tambahan maka kita harus membuat direktori sesuai susunan paket tersebut.

Dan setelah melakukan proses Build terhadap projek, maka J2ME Wireless Toolkit akan

menambahkan tiga buah direktori lagi untuk keperluan internal yakni classes, tmpclasses, dan

tmplib. Sehingga struktur direktori akan berubah menjadi:

Page 16: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

23

C:\WTK22\apps\”nama projek”.

- “nama projek”

bin

classes

lib

res

src

tmpclasses

tmplib

2.5.7 Siklus Aplikasi J2ME

Setiap MIDlet dapat berada dalam salah satu keadaan (state) berikut ini: Paused, Active,

maupun Destroyed. Berikut ini adalah gambar yang akan mengilustrasikan ketiga buah keadaan

tersebut pada saat kapan MIDlet akan berada dalam keadaan tertentu.

Gambar 2.05 Siklus hidup MIDlet

Page 17: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

24

2.6 Alur Mobile Game

Berikut ini adalah cara pembuatan game J2ME 2D, J2ME adalah lingkungan yang menarik

untuk game ini nantinya. Dengan pengetahuan dasar Java, sudah diinstal NetBeans dan J2ME

Wireless Toolkit, kita sudah dapat membuat game 2D sederhana.

2.6.1 Main MIDlet

Sebagai Midlet, MainMidlet harus memperpanjang Midlet kelas abstrak yang dapat

ditemukan dalam paket javax.microedition.midlet. Midlet membutuhkan menimpa tiga metode,

yaitu:

startApp() Untuk pemanggilan memulai permainan

pauseApp() Called to temporarily stop the application, i.e., receiving a call. Application

should stop the animation and release resources that are not needed. Application can be resumed

by calling resumeMIDlet()

destroyApp() (boolean tanpa syarat) yang disebut saat keluar dari aplikasi. Untuk

mengakhiri, MIDlet dapat menghubungi notifyDestroyed ().

(Metode ini secara otomatis dibuat dengan menciptakan sebuah Midlet Visual di

NetBeans.) Namun, hanya membutuhkan untuk melaksanakan metode startApp () dengan

menciptakan sebuah instance dari canvas Game dan menambahkan CommandListener untuk

keluar dari Midlet. Sampai langkah ini, kita mungkin hanya ingin aplikasi dijalankan. Tampilan

saat ini dapat diatur ke GameCanvas di akhir atau di dalam GameCanvas oleh setCurrent metode.

Metode ini menerima setiap objek ditampilkan sebagai argumen.

Page 18: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

25

Sebagai unsur dari mesin rendah UI, bila dikombinasikan dengan Grafis, GameCanvas

memberikan kita alat yang fleksibel untuk mengatur layar permainan kita sendiri. Dengan

Graphics, pada dasarnya anda bisa menarik hal-hal yang biasanya Anda lakukan di Java 2D,

termasuk menggambar bentuk, string atau gambar. GameCanvas adalah perluasan ke kanvas asli

dengan kontrol lebih besar atas lukisan itu, dan tingkat di mana tombol yang diserahkan ke

permainan.

Menggunakan GameCanvas, kita dapat melihat kemampuannya termasuk penyangga off-

layar. Bila kita menggambar sesuatu, kita mungkin adalah gambar dalam layar-off, dan dengan

menghubungi metode flushGraphics (), buffer dengan cepat ditulis ke layar.

GameCanvas juga menyederhanakan proses mendapatkan input dengan memungkinkan

kita untuk permintaan status kunci menggunakan getKeyState () method. Pengolahan status kunci,

bagaimanapun, adalah diserahkan kepada GameManager untuk manajemen lebih mudah.

Asal usul permainan sistem koordinat terletak di sudut kiri atas layar seperti pada gambar.

Gambar 2.06 Sistem koordinat pada canvas

Page 19: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

26

2.6.2 GameLoops

Waktu permainan dikendalikan oleh integer bernama tick. tick timer menyederhanakan

masalah dalam permainan, seperti tingkat penembakan, atau berapa lama sesuatu akan flash,

berapa lama sprite akan melangkah ke frame berikutnya. Jika waktu dilakukan dalam GameCanvas

dengan menerapkan Runnable, centang sarana mDelay + waktu untuk menyelesaikan satu siklus

permainan (milidetik). Jika kita membuat Thread yang mengurus tick, kita mungkin akan memiliki

centang mDelay. Kita akan membutuhkan hanya 24 -30 fps, sehingga akan membatasi mDelay

yang sesuai untuk memiliki efek animasi yang diinginkan dengan konsumsi daya yang lebih kecil.

Pada setiap siklus permainan, kita sebut kemajuan metode dari GameManager, yang membentang

LayerManager untuk memeriksa input pengguna, tabrakan dan cat grafis.

2.6.3 Sprite

Sprite bertindak sebagai aktor dari permainan. Hal ini dapat kita buat dengan karakter

sakera, itik, dan senjata dalam permainan Sakera Hunter ini. Sebagai elemen visual dasar, dapat

diberikan untuk menampilkan aksi yang terus menerus dengan beberapa bingkai foto yang

tersimpan dalam suatu. File gambar harus pake semua frame dari Sprite agar dapat ditampilkan.

Semua frame harus memiliki standar yang sama dan lebar dan tinggi. Salah satu faktor yang

membuat keberhasilan game adalah grafis yang unggul. Sebagian besar objek pada sebuah game

dikategorikan sebagai grafis khusus yang disebut sprites. Sebuah sprite dapat berupa bullet,

monster, karakter utama, musuh, kekuatan spesial, kunci, pintu dan lain sebagainya.

Page 20: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

27

Pada umumnya Sprite adalah grafis animasi. Grafis animasi dibuat dari sprite yang sama

namun berbeda penampakannya. Kumpulan sprite biasanya mengacu sebagai sebuah kumpulan

frame. Frame ini dapat dibuat secara terurut ataupun tidak terurut. Umumnya sprite ditampilkan

secara terurut untuk memudahkan pengkodean.

Gambar 2.07 Contoh Sprite frame tunggu dan 4 frame dasar lainnya.

Ada 3 konstruktor yang disediakan oleh kelas sprite :

1. Sprite (Image image), yaitu membuat frame sprite tunggal, tidak dianimasikan.

2. Sprite (Sprite sprite), yaitu membuat sprite baru dari sprite lainnya

3. Sprite (Image image, int frameWidth, int frameHeight), yaitu membuat animasi sprite

dengan lebih dari 2 frame, frameWidth adalah lebar dari sebuah sprite dan frameHeight

adalah tinggi dari sebuah sprite.

2.6.4 Layer Manager

Pada hakekatnya semua game memiliki background yang dianimasikan atau tetap, untuk

memberikan efek visual. Disinilah awal mulanya LayerManager itu kita buat nantinya, yaitu

mengelola layer grafis. Ada satu method yang menyediakan fitur yang tepat, yaitu method

setViewWindow(int x, int y, int width, int height). Fitur ini mengijinkan Anda untuk mengeset

ukuran jendela pada Handphone yang dapat dilihat oleh user dan bagian dari layer yang

ditampilkan.

Page 21: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

28

2.6.5 Game Manager

Sebagai subclass dari LayerManager, GameManager yang mampu mengelola serangkaian

Layers, secara otomatis setiap Layer renders dalam urutan yang tepat. Metode tambahkan

dipanggil untuk menambahkan suatu Layer khusus untuk LayerManager tersebut.

2.6.6 Thread

Thread adalah unit fundamental dari eksekusi program. Setiap aplikasi minimal memiliki

sebuah thread untuk menjalankan kode. Aplikasi yang memiliki dua thread atau lebih, biasa

disebut dengan multithreaded application. Fungsi seperti ini sering kita butuhkan dalam membuat

program aplikasi/game nantinya. Misalnya, sebuah thread yang bertugas menjalankan operasi

penghitungan nilai/skor game, kemudian thread yang lainnnya menjalankan operasi pendeteksi

tabrakan antara obyek-obyek pada game. Kedua thread tersebut berjalan bersamaan dalam

melakukan tugasnya masing-masing.

Setiap thread memiliki sebuah konteks yang berhubungan dengannya. Konteks tersebut

memuat informasi tentang thread, seperti alamat dari instruksi yang sedang dieksekusi dan storage

untuk variabel-variabel lokal. Konteks tersebut akan terupdate begitu thread dieksekusi. Konteks

juga menyimpan state dari thread.

Page 22: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

29

Thread bisa dalam state sebagai berikut:

• Running, saat dimana thread sedang menjalankan kode.

• Ready, saat dimana thread siap untuk mengeksekusi kode.

• Suspended, saat dimana thread sedang menunggu external event. Contohnya:

menunggu data yang datang dari device lain. Begitu data datang dan event terjadi

(dilakukan), maka thread kembali ke state ready.

• Terminated, saat dimana thread selesai mengeksekusi kode.

Thread yang dalam keadaan (state) running, ready atau suspended, adalah thread yang

hidup (live thread). Sedangkan thread yang berstatus terminated adalah thread mati (dead thread).

Page 23: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

30

2.6.7 GameCanvas

Kelas GameCanvas menyediakan fungsi-fungsi penting dalam menangani antar muka

game. Merupakan turunan dari kelas Canvas (commands, input events, etc.), dengan penambahan

fitur antara lain kemampuan game yang spesifik seperti: off-screen graphic buffer dan kemampuan

untuk mengetahui status key-key input dari key-key pada HP. Kelas GameCanvas pada MIDP 2.0

telah mengusung fitur - fitur penting yang mengatasi masalah yang ada pada MIDP 1.0. Yaitu

sekarang kita cukup menggunakan sebuah (single) buffer untuk setiap obyek GameCanvas yang

dibuat. Ini sangat penting karena tidak hanya meminimalkan penggunaan heap memory yang

digunakan oleh game. Tetapi juga agar game bisa dikontrol dengan hanya menggunakan sebuah

(single) loop.

2.6.8 Mobile Media API

Mobile Media API (MMAPI) memberikan dukungan lebih dari MIDlet dalam penggunaan

media seperti audio dan video. MMAPI adalah paket yang mengizinkan kita untuk dapat

memainkan file multimedia di dalam perangkat ponsel. Paket tersebut juga dapat digunakan untuk

melakukan kontrol terhadap kamera dalam pengambilan gambar. Perangkat yang dapat digunakan

untuk melakukan pekerjaan tersebut tentunya harus mendukung infrastruktur atau prasarana yang

dibutuhkan serta dukungan terhadap tipe file media yang akan dimainkan. Teknologi J2ME juga

dapat memainkan file musik seperti file wave (.wav) dan midi (.mid), memainkan file musik pada

J2ME juga menggunakan obyek Player pada MMAPI.

MMAPI memfasilitasi sebuah kelas factory genetik yang menginstansiasi objek – objek

media player dari lokasi tertentu (URI, objek – objek InputStream, maupun objek DataSource).

Sedangkan implementasi dari perangkat ponsel yang mendukung MMAPI menyediakan kelas

Page 24: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

31

player konkrit untuk media yang di dukung. Pada intinya untuk membuat aplikasi multimedia di

dalam ponsel, terlebih dahulu kita harus membuat instance dari objek Player berdasarkan sumber

data (DataSource) yang kita tentukan.

Manager adalah sebuah kelas yang menyediakan metode untuk menggenerasi Player dan

mengakses aturan yang mendukungnya. Manager juga menyediakan metode playTone() untuk

memainkan tone. Metode createPlayer() menggenerasi Player yang terasosiasi dengan

DataSource yang menyediakan data. Player itu sendiri adalah sebuah antarmuka (interface). Jika

player telah di generasi maka aplikasi / game juga dapat membuat sebuah obyek kontrol.

2.6.9 RMS (Record Management System)

RMS (Record Management System) yang telah MIDP sediakan sebuah mekanisme

penyimpanan data secara persisten (tetap) di memory device yang bersangkutan. Record yang telah

ditempatkan di dalam ruang penyimpanan selanjutnya dapat diambil kembali untuk digunakan

sesuai dengan kebutuhan. Ruang penyimpanan tetap adalah sebuah tempat non-volatil untuk

menyimpan data-data dalam sebuah aplikasi, yang harus kita gunakan secara efisien dikarenakan

keterbatasan memory yang terdapat dalam sebuah mobile device [3].

2.7 NetBeans IDE

Pembuatan program java dapat dilakukan dengan notepad, akan tetapi untuk meningkatkan

produktifitas dan efektifitas dalam proses pengembangan maka penggunaan IDE (Integrated

Development Environment) atau Text editor yang tepat akan sangat membantu. IDE yang ada

bersifat komersial/propietari, ada juga yang open source. Open source Text Editor Java yang

Page 25: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

32

paling populer saat ini adalah JEdit (http://www.jedit.org) sedangkan IDE java yang murni dibuat

dengan library Java / J2SDK dari Sun adalah NetBeans yang pada penulisan ini mencapai versi

6.5.

Kemampuan NetBeans bisa ditingkatkan dan ditambahkan melalui modul-modul plugin

seperti modul untuk mobile application yang memungkinkan kita membuat aplikasi J2ME

(NetBeans Mobility Pack), modul Refactoring sehingga kita dapat mendapatkan fasilitas

refactoring di NetBeans, bahkan kita juga mendapatkan UML Designer [3].

2.7.1 Keperluan Awal

Sebelum kita memulai pembuatan sebuah aplikasi atau game untuk platform handheld

device / handphone terlebih dahulu menginstal NetBeans (dalam kasus ini, penulis menggunakan

NetBeans 6.5) serta harus mengetahui aplikasi – aplikasi yang nantinya akan kita butuhkan untuk

keperluan dalam hal ini, antara lain sebagai berikut :

Page 26: DASAR TEORIeprints.umm.ac.id/67860/2/BAB II.pdfpemrograman game (J2ME, Symbian, BREW) sudah didukung dengan pustaka yang semakin lengkap. 9 2.2 Konsep Game Edukasi Perkembangan game

33

2.7.1.1 Java Development Kit (JDK)

Untuk membangun MIDlet, karena disini disediakan paltform yang dibutuhkan

untuk dapat menjalankan J2ME Wireless Toolkit, tanpa hal ini kita tidak akan bisa

menjalankan di dalam komputer nantinya.

2.7.1.2 Wireless Toolkit (WTK)

Sekumpulan alat bantu yang digunakan untuk membangun dan mencoba jalannya aplikasi – aplikasi MIDP, agar lebih mudah dimengerti anggap saja J2ME Wireless Toolkit sebagai miniatur IDE (Integrated Development Environment. [3].