Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

74
PROYEK AKHIR BOUNCING BALL GAME BERBASIS J2ME DENGAN MENGGUNAKAN SENSOR ACCELEROMETER PADA PONSEL BLACKBERRY FELIX SEBASTIAN DEO Teknologi Informasi NRP. 740 70 40 730 DOSEN PEMBIMBING : Yuliana Setiowati, S.Kom, M.Kom. NIP. 1978 0706 2002 122003 Siswati, S.Kom, MT. NIP. 1977 0519 2005 012001 JURUSAN TEKNIK INFORMATIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER 2011

Transcript of Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

Page 1: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

PROYEK AKHIR

BOUNCING BALL GAME BERBASIS J2ME DENGAN MENGGUNAKAN SENSOR ACCELEROMETER

PADA PONSEL BLACKBERRY

FELIX SEBASTIAN DEO Teknologi Informasi NRP. 740 70 40 730

DOSEN PEMBIMBING :

Yuliana Setiowati, S.Kom, M.Kom. NIP. 1978 0706 2002 122003

Siswati, S.Kom, MT.

NIP. 1977 0519 2005 012001

JURUSAN TEKNIK INFORMATIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

INSTITUT TEKNOLOGI SEPULUH NOPEMBER 2011

Page 2: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

PROYEK AKHIR

BOUNCING BALL GAME BERBASIS J2ME DENGAN MENGGUNAKAN SENSOR ACCELEROMETER

PADA PONSEL BLACKBERRY

FELIX SEBASTIAN DEO Teknologi Informasi NRP. 740 70 40 730

DOSEN PEMBIMBING :

Yuliana Setiowati, S.Kom, M.Kom. NIP. 1978 0706 2002 122003

Siswati, S.Kom, MT.

NIP. 1977 0519 2005 012001

JURUSAN TEKNIK INFORMATIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

INSTITUT TEKNOLOGI SEPULUH NOPEMBER 2011

Page 3: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

BOUNCING BALL GAME BERBASIS J2ME DENGAN MENGGUNAKAN SENSOR ACCELEROMETER

PADA PONSEL BLACKBERRY

Disusun oleh: FELIX SEBASTIAN DEO

NRP. 740 704 0730

Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Sains Terapan ( S.ST )

di Politeknik Elektronika Negeri Surabaya

Institut Teknologi Sepuluh Nopember Surabaya

Telah diuji dan dinyatakan lulus pada tanggal 22 Juli 2011

Tim Penguji Proyek Akhir: Dosen Pembimbing:

1. Arna Fariza, S.Kom., M.Kom. NIP. 197107081999032001

1. Yuliana Setiowati, S.Kom., M.Kom. NIP. 197807062002122003

2. Endah Damayanti, MT.

2. Siswati, S.Kom, MT. NIP. 197705192005012001

3. Nanik Sri Rahayu, MT. NIP. 197902062005012002

Mengetahui Ketua Jurusan

Arna Fariza, S.Kom., M.Kom. NIP. 197107081999032001

Page 4: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

ABSTRAK Deo, Felix Sebastian, 2011, Jurusan Teknologi Informatika, JOINT PROGRAM BA Malang, BOUNCING BALL GAME BERBASIS J2ME DENGAN MENGGUNAKAN SENSOR ACCELEROMETER PADA PONSEL BLACKBERRY, Dosen Pembimbing I : Yuliana Setiowati, S.Kom, M.Kom, Dosen Pembimbing II : Siswati, S.Kom. Dengan semakin berkembangnya teknologi, mobile phone tidak hanya digunakan sebagai alat komunikasi saja, melainkan sudah dilengkapi dengan berbagai teknologi multimedia, salah satunya adalah game. Seiring dengan perkembangan jaman, aplikasi mobile game pun semakin berkembang dan fitur-fitur dalam mobile phone semakin canggih , salah satu yang terkini adalah fitur accelerometer. Pemanfaatan fitur accelerometer ini merupakan salah satu faktor yang menjadikan suatu game lebih atraktif. Salah satu ponsel yang memiliki sensor accelerometer adalah Blackberry. Sensor accelerometer ini dapat dimanfaatkan sebagai input control sebuah game.Game ini dirancang menggunakan bahasa pemrograman Java dengan Blackberry spesifik API. Proses pengerjaan program dilakukan dengan tahap awal penentuan skenario dari permainan, karakteristik level, kemudian dilanjutkan dengan desain dari program. Desain yang sudah ada dibawa ke dalam kode program (impementation step). Langkah terakhir adalah testing program dengan melakukan instalasi game pada ponsel Blackberry. Bouncing Ball Game mengusung tema bangun ruang. Game ini bercerita tentang sebuah bola yang akan terus dipantulkan untuk menghancurkan target- target yang berupa bangun ruang. Game terdiri dari 10 level dengan desain yang berbeda-beda. Pembuatan game ini dapat menjadi salah satu alternatif game yang menggunakan sensor accelerometer pada ponsel Blackberry.

Kata kunci : j2me, accelerometer,blackberry,game.

Page 5: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

i

KATA PENGANTAR

Pertama-tama saya mengucap syukur kepada Tuhan Yang Maha Esa yang telah menyertai saya sehingga saya dapat menyelesaikan laporan progress Proyek Akhir yang berjudul “BOUNCING BALL GAME BERBASIS J2ME DENGAN MENGGUNAKAN SENSOR ACCELEROMETER PADA PONSEL BLACKBERRY “ dengan baik . Sebab tanpa karunia dan penyertaanNya tak mungkin saya dapat berhasil dengan baik dalam segala hal yang saya kerjakan.

Tujuan umum dari pembuatan laporan ini adalah untuk melihat sejauh mana kemajuan dari proyek akhir. Sedangkan tujuan khusus dari pembuatan tugas ini adalah merancang suatu aplikasi game berbasis J2ME dengan menggunakan sensor accelerometer pada ponsel blackberry.

Selain itu, saya juga ingin menyampaikan ucapan terima kasih kepada : 1. Yuliana S., S.Kom, M.Kom, selaku dosen pembimbing I saya dalam

dalam pembuatan laporan ini. 2. Siswati, S.Kom, selaku dosen pembimbing II saya dalam dalam

pembuatan laporan ini. 3. Orang tua yang telah memberikan dukungan dan semangat kepada saya

sehingga saya mampu menyelesaikan laporan Proyek Akhir ini dengan baik. Akhir kata, saya sebagai penulis dan penyusun laporan ini menyadari

bahwa sebagai manusia, saya tidak lepas dari ketidaksempurnaan. Penulis sadar progress proyek akhir ini masih jauh dari sempurna dengan segala kekurangannya. Untuk itu penulis harapkan adanya kritik dan saran dari semua pihak demi kesempurnaan dari laporan kerja industri penulis. Akhir kata semoga laporan ini dapat bermanfaat bagi kita semua.

Malang, Juli 2011 Penyusun

Page 6: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

ii

DAFTAR ISI

KATA PENGANTAR ............................................................................. i DAFTAR ISI ........................................................................................... ii DAFTAR TABEL ................................................................................... v DAFTAR GAMBAR............................................................................... vi DAFTAR LAMPIRAN............................................................................ vii BAB I.......................................................................................................... i PENDAHULUAN ...................................................................................... 1

1.1 Latar Belakang Masalah............................................................ 1 1.2 Rumusan Masalah .................................................................... 1 1.3 Batasan Masalah....................................................................... 1 1.4 Tujuan...................................................................................... 1 1.5 Metodologi Penyelesaian .......................................................... 2 1.6 Sistematika Penulisan ............................................................... 3

BAB II ....................................................................................................... 4 LANDASAN TEORI.................................................................................. 4

2.1 Konsep Game........................................................................... 4 2.2 Accelerometer .......................................................................... 4

2.2.1 Prinsip Kerja Accelerometer................................................. 5 2.2.2 Tipe Accelerometer.............................................................. 5 2.2.3 Contoh Penggunaan Accelerometer ...................................... 5

2.3 Java Pada Perangkat Mobile...................................................... 6 2.3.1 Platform Java ....................................................................... 6 2.3.2 Java 2 Micro Edition ............................................................ 7

2.4 MIDP ....................................................................................... 8 2.5 RIMLET .................................................................................. 9 2.6 UiApplication........................................................................... 9 2.7 MainScreen ............................................................................ 10 2.8 Accelerometer pada Blackberry .............................................. 11

2.8.1 AccelerometerSensor ......................................................... 11 2.8.2 AccelerometerListener ....................................................... 13 2.8.3 AccelerometerData............................................................. 13

BAB III .................................................................................................... 15 PERANCANGAN APLIKASI .................................................................. 15

3.1 Deskripsi Umum Game........................................................... 15 3.2 Skenario Game ....................................................................... 17 3.3 FSM (Finite State Machine).................................................... 18 3.4 Karakter Game ....................................................................... 19

3.4.1 Pembuatan Target .............................................................. 19 3.4.2 Pembuatan Bola ................................................................. 22

Page 7: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

iii

3.4.3 Pendeteksian Pantulan........................................................ 24 3.4.3.1 Benturan Bola dengan Batas Layar ................................ 24 3.4.3.2 Benturan Bola dengan Batas Target ............................... 26 3.4.3.3 Benturan Bola dengan Batas Papan ................................ 28

3.5 Pembacaan Sensor Accelerometer........................................... 32 3.6 Gambaran Umum Desain Antar Muka .................................... 34 3.7 Karakteristik Level ................................................................. 34 3.8 Pembuatan Aplikasi................................................................ 36

3.8.1 Pembuatan Splash Screen................................................... 37 3.8.2 Pembuatan Menu Game ..................................................... 39 3.8.3 Pembuatan Game ............................................................... 40

3.8.3.1 Pembuatan Player .......................................................... 40 3.8.3.2 Pembuatan Bola............................................................. 42 3.8.3.3 Menampilkan Status Game ............................................ 42 3.8.3.4 Pergerakan Player.......................................................... 42 3.8.3.5 Main Thread Game........................................................ 43 3.8.3.6 Proses Level .................................................................. 43 3.8.3.7 Penyimpanan Score, Profil, dan Sound........................... 44

3.8.4 Pembuatan Tampilan Highscores........................................ 46 3.8.5 Pembuatan Tampilan Setting.............................................. 47 3.8.6 Pembuatan Tampilan About ............................................... 49

BAB IV.................................................................................................... 50 HASIL DAN PENGUJIAN....................................................................... 50

4.1 Hasil Perancangan .................................................................. 50 4.1.1 Hasil Splash Screen............................................................ 50 4.1.2 Hasil Main Menu ............................................................... 51 4.1.3 Hasil Start Game................................................................ 51 4.1.4 Hasil Pilihan Level............................................................. 52 4.1.5 Hasil Desain Level ............................................................. 53 4.1.6 Hasil Highscores Screen..................................................... 54 4.1.7 Hasil Setting Screen ........................................................... 54 Pengaturan yang ada pada permainan adalah setting sound, reset profil, dan reset score . Berikut adalah tampilan dari setting screen : ............. 54 4.1.8 Hasil About Screen ............................................................ 55

4.2 Pengujian ............................................................................... 56 4.2.1 Instalasi Bouncing Ball Games........................................... 56 4.2.2 Penilain Grafis Game ......................................................... 58 4.2.3 Penilaian Respon Accelerometer ........................................ 58 4.2.4 Penilain Sisi Entertainment................................................. 59

BAB V ..................................................................................................... 60 KESIMPULAN DAN SARAN ................................................................. 60

5.1 Kesimpulan ............................................................................ 60

Page 8: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

iv

5.2 Saran...................................................................................... 60 DAFTAR PUSTAKA ............................................................................... 61

Page 9: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

v

DAFTAR TABEL Tabel 2.1 Platform Java............................................................................... 7 Tabel 2.2 Field Summary Kelas AccelerometerSensor............................... 12 Tabel 2.3 Method Summary Kelas Accelerometer ..................................... 13 Tabel 2.4 Method Summary Kelas AccelerometerListener........................ 14 Tabel 4.1 Spesifikasi Blackberry 9530....................................................... 56 Tabel 4. 2 Penilain responden terhadap proses instalasi.............................. 57 Tabel 4.3 Penilain responden terhadap user interface game........................ 58 Tabel 4.4 Penilain responden terhadap respon accelerometer .................... 58 Tabel 4.5 Penilain responden terhadap sisi entertaint game ........................ 59

Page 10: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

vi

DAFTAR GAMBAR Gambar 2.1 Desain dari sebuah accelerometer ............................................ 5 Gambar 2. 2 Java 2 Micro Edition .............................................................. 8 Gambar 2. 3 Ilustrasi akselerasi pada sumbu x,y, dan z .............................. 11 Gambar 3.1 Use Case Aplikasi Game........................................................ 16 Gambar 3. 2 Diagram Block Aplikasi........................................................ 17 Gambar 3.3 FSM Bouncing Ball ............................................................... 19 Gambar 3.4 Contoh pembuatan target........................................................ 22 Gambar 3.5 Ilustrasi dy dan dx bola .......................................................... 23 Gambar 3.6 Ilustrasi pergerakan bola ........................................................ 24 Gambar 3.7 flowchart tabrakan bola dengan target .................................... 25 Gambar 3.8 kondisi tabrakan bola dengan target........................................ 27 Gambar 3. 9 flowchart tabrakan bola dengan target.................................... 28 Gambar 3.10 pembagian papan ................................................................. 30 Gambar 3.11 flowchart tabrakan bola dengan papan .................................. 31 Gambar 3.12 Desain UI............................................................................. 34 Gambar 3.13 Rancangan Menu Start Game ............................................... 36 Gambar 3.14 Rancangan Menu Scores ...................................................... 37 Gambar 3.15 Rancangan Menu Setting...................................................... 37 Gambar 3.16 Rancangan Menu About ....................................................... 37 Gambar 4.1 Splash Screen......................................................................... 50 Gambar 4.2 Main Menu ............................................................................ 51 Gambar 4.3 Desain Profile Screen............................................................. 52 Gambar 4. 4 Layar pemilihan Level .......................................................... 52 Gambar 4.5 Desain level 1,2, dan 3 ........................................................... 53 Gambar 4.6 Desain level 4,5,dan 6 ............................................................ 53 Gambar 4.7 Desain level 7,8, dan 9 ........................................................... 53 Gambar 4.8 Desain final level ................................................................... 54 Gambar 4.9 Desain Highscores Screen ...................................................... 54 Gambar 4.110 Desain Setting Screen......................................................... 55 Gambar 4.11 Desain About Screen............................................................ 55 Gambar 4.12 Program BBSAK ................................................................. 57 Gambar 4.13 Grafik penilaian instalasi Bouncing Ball Games.................... 57 Gambar 4.14 Grafik penilaian user interface game..................................... 58 Gambar 4.15 Grafik penilaian respon accelerometer .................................. 59 Gambar 4.16 Grafik penilaian sisi entertainment game .............................. 59

Page 11: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

vii

DAFTAR LAMPIRAN

Lampiran A Pertanyaan dan Hasil Quisioner Game ................................... 62

Page 12: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

1

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah Mobile Application atau program aplikasi yang mampu berjalan pada mobile devices, saat ini berkembang dengan sangat pesat. Ponsel tidak hanya digunakan sebagai alat komunikasi suara saja, tetapi juga sebagai media hiburan, salah satunya adalah game. Seiring dengan perkembangan jaman, aplikasi mobile game pun semakin berkembang dan fitur-fitur dalam mobile phone semakin canggih , salah satu yang terkini adalah fitur accelerometer. Accelerometer merupakan alat untuk mendeteksi orientasi pergerakan dari device sehingga dimungkinkan untuk menciptakan suatu aplikasi mobile game yang lebih menarik. Dengan penggunaan accelerometer pada mobile phone, game tidak lagi membutuhkan tombol atau media lain untuk mengontrol permainan, tapi cukup dengan menggerakkan mobile phone tersebut. Dari sekian banyak ponsel yang berkembang saat ini, salah satu ponsel yang memiliki fitur accelerometer adalah Blackberry. Dengan perkembangan pemakai Blackberry yang sangat pesat, maka dibuatlah sebuah game Bouncing Ball dengan menggunakan sensor accelerometer pada ponsel Blackberry. 1.2 Rumusan Masalah Bagaimana membuat bouncing ball game berbasis J2ME dengan menggunakan sensor accelerator pada ponsel Blackberry? 1.3 Batasan Masalah Agar perancangan dan pembahasan dalam Tugas Akhir ini terarah dan mendalam, maka perlu dilakukan pembatasan masalah sebagai berikut : 1. Sensor gerakan accelerometer hanya gerakan ke kanan dan ke kiri. 2. Aplikasi game hanya akan berjalan pada Blackberry yang memiliki

sensor accelerometer. 3. Tidak terjadi rotasi pada pergerakan bola 1.4 Tujuan Tujuan yang hendak dicapai dalam perancangan Tugas Akhir ini adalah membuat boucing ball game berbasis J2ME dengan menggunakan sensor accelerometer pada ponsel Blackberry.

Page 13: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

2

1.5 Metodologi Penyelesaian Berikut adalah alur kerja dari penyelesaian proyek akhir: 1. Studi Literatur Proses awal adalah melakukan studi literatur untuk mengumpulkan referensi yang nantinya akan menjadi bahan acuan pengerjaan proyek akhir yang meliputi tool dan teori yanga akan digunakan. Literatur- literatur tersebut bisa didapat dari browsing di internet, buku, dan lain- lain. 2. Desain Aplikasi Game ini merupakan game permainan tentang sebuah bola yang bertujuan untuk menghancurkan target yang ada. Bola tersebut akan terus memantul dan tujuan kita adalah menjaga bola agar tidak melewati batas yang ada dengan menggerakkan papan pemantul untuk terus memantulkannya. User dapat menggerakkan papan pemantul dengan menggunakan sensor accelerator pada ponsel. Apabila bola melewati papan pemantul maka nyawa dari pemain akan berkurang dan game akan kembali dari awal sesuai level yang dijalankan. Semakin tinggi level, semakin tinggi pula tingkat kesulitan. Score akan terus bertambah ketika tembok yang ada berhasil dihancurkan. 3. Implementasi Tahap ini merupakan tahap implementasi dari rancangan aplikasi yang kita buat, tahap ini juga bertujuan untuk merealisasikan tahap sebelumnya (desain aplikasi). 4. Uji Coba dan Evaluasi Pada tahap ini dilakuan pengujian terhadap aplikasi apakah sudah sesuai dengan rancangan yang kita telah buat sebelumnya atau tidak. Jika terdapat hal yang tidak sesuai akan dilakukan analisa kesalahan dan akan ditindaklanjuti dengan melakukan pembenaran sistem pada aplikasi dengan mengulang proses pengerjaan pada tahap-tahap tertentu sesuai dengan ksalahan yang terjadi. 5. Penyusunan Laporan Proyek Akhir Setelah semua tahap dilalui, maka langkah terakhir akan dilakukan proses dokumentasi yang akan dibuat dalam bentuk laporan.

Page 14: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

3

1.6 Sistematika Penulisan Sistematika pembahasan tiap bab untuk Tugas Akhir ini tersusun sebagai berikut : 1. BAB I PENDAHULUAN Bab ini berisi latar belakang, identifikasi dan pembatasan, rumusan masalah, tujuan pembuatan aplikasi, sistematika penulisan yang dibahas dalam Proyek Akhir ini. 2. BAB II DASAR TEORI Memberikan dasar teori untuk menunjang penyelesaian masalah dalam proyek akhir ini. 3. BAB III PERANCANGAN DAN PEMBUATAN APLIKASI Berisi tentang perancangan dan pembuatan dari seluruh elemen dari Aplikasi game Bouncing Ball berbasis Blackberry phone yang akan di buat. Baik algoritma, flowchart, dan perangkat lunaknya. 4. PENGUJIAN DAN ANALISA Berisi tentang implementasi, hasil pengukuran dan analisa dari sistem yang sudah di buat, kemudian di bandingkan dengan perencanaan awal serta teori-teori penunjang yang menjadi landasan dari proyek akhir ini 5. PENUTUP Berisi Kesimpulan dari hasil yang diperoleh pada Bab III dan IV, dan tambahan saran serta rencana pengembangan proyek akhir, jika di mungkinkan untuk masa yang akan datang.

Page 15: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

4

BAB II LANDASAN TEORI

2.1 Konsep Game Secara umum konsep dari game memiliki 4 konsep utama yaitu: a. Game memiliki tujuan: Suatu game harus memiliki tujuan mengapa

game tersebut dibuat. Sebagai contoh permainan catur bertujuan agar pemain bisa memenangkan permainan dengan situasi “skak-mat”, permainan sepakbola dengan mencetak banyak gol ke gawang lawan, permainan Othello dengan memperbanyak pion di papan permainan. [1]

b. Game harus dapat dimenangkan: Sebagai contoh terdapat permainan melempar 2 dadu sebanyak 3 kali dan pemenangnya harus memperoleh angka 12 (masing-masing dadu memiliki angka 6) setiap kali melempar. Permainan tersebut memang dapat dimenangkan, akan tetapi peraturan untuk mendapatkan kemenangan itu tidaklah cukup baik (peluang kemenangannya adalah 1:46.656). Desain dari permainan yang baik adalah dengan membuat suatu kemenangan untuk pemainnya dan kemenangan itu didapat dengan cara yang masuk akal atau dengan tingkat kesulitan yang bertahap dan kemungkinan memenangkannya masih besar. [1]

c. Memiliki awal permainan: Pada permainan, setiap pemainnya memiliki beberapa inisialisasi posisi, setup (status). Sebagai contoh pada permainan catur, setiap pemain memiliki 16 bidak catur masing-masing berwarna hitam dan putih. Pada game strategi setiap pemain pada awalnya memiliki lahan sendiri sebelum berperang. Pada permainan olahraga masing-masing team memiliki formasi atau posisi awalnya. [1]

d. Memiliki pertengahan / akhir permainan: Pada semua jenis game harus terdapat cara untuk memenangkan permainan atau melangkah ke level selanjutnya. Sebagai contoh pada game petualangan pemain harus menyelesaikan quest utama agar mendapatkan quest selanjutnya. Pada game puzzle dengan memberikan password agar pemain dapat melangkah ke level selanjutnya.

2.2 Accelerometer Accelerometer adalah sebuah perangkat yang digunakan untuk mengukur percepatan yang tepat. Model tunggal dan model multi-sumbu yang tersedia untuk mendeteksi besar dan arah percepatan sebagai besaran vektor, dan dapat digunakan untuk mendeteksi orientasi , percepatan, dan getaran. Accelerometers Micromachined semakin hadir dalam perangkat elektronik portabel dan pengontrol video game, untuk mendeteksi posisi perangkat atau memberikan masukan/input pada permainan.

Page 16: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

5

Gambar 2.1 Desain dari sebuah accelerometer Sumber : http://en.wikipedia.org/wiki/Accelerometer

Selain itu, accelerometer juga biasa digunakan untuk mengukur getaran yang terjadi di dalam bumi, getaran mesin, jarak yang dinamis, dan kecepatan dengan ataupun tanpa dipengaruhi gravitasi bumi. Biasanya accelerator digunakan pada peralatan elektronik yang portable. 2.2.1 Prinsip Kerja Accelerometer Sebuah accelerometer pada dasarnya mengukur percepatan dan gravitasi yang dirasakan. Sebuah accelerometer yang diletakkan di permukaan bumi seharusnya mendeteksi percepatan sebesar 1g (ukuran gravitasi bumi) pada titik vertikalnya.Untuk percepatan yang dikarenakan oleh pergerakan horizontal, accelerator akan mengukur percepatannya secara langsung ketika dia bergerak secara horizontal 2.2.2 Tipe Accelerometer Beberapa tipe accelerometer adalah sebagai berikut :

a. Capacitive : lempengan metal pada accelerometer ini memproduksi sejumlah kapasitansi; perubahan kapasitansi mempengaruhi percepatan.

b. Piezoelectric : kristal piezoelectic terpasang pada accelerometer ini. Tegangan yang dikeluarkan akan dikonversi menjadi percepatan.

c. Piezoresistive : suatu lempengan yang secara resistan akan berubah sesuai dengan percepatan.

d. HallEffect: sebuah pergerakan dikonversi menjadi sinyal elektrik dengan cara mensensor perubahan yang terjadi pada sebuah daerah yang terinduksi magnet.

e. Magnetoresistive : perubahan resistivitas material karena hadirnya daerah yang terinduksi magnet

2.2.3 Contoh Penggunaan Accelerometer Accelerometer bisa diaplikasikan pada berbagai bidang , seperti : 1. Science and Engineering Accelerometer banyak digunakan untuk menghitung percepatan dan

Page 17: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

6

penurunan percepatan dari sebuah kendaraan. Acclerometer membantu untuk mengevaluasi performansi dari mesin, sistem percepatan dan juga breaking system (sistem penurunan percepatan). Kecepatan yang biasa ditampilkan pada kendaraan anda umumnya didapatkan dari penggunaan accelerometer. Selain itu, accelerometer juga biasa digunakan untuk menghitung vibrasi pada kendaraan , mesin, bangunan, dan sistem keamanan pada kendaraan (safety installation). Accelerometer juga dapat mengkalkulasi percepatan yang diakiabatkan oleh gravitasi bumi. Accelerometer yang menghitung gravitasi, secaras pesifik digunakan pada gravimetry, disebut sebagai gravimeter. Notebook atau laptop juga dilengkapi dengan accelerometer untuk mengevaluasi goncangan yangdirasakan oleh notebook atau laptop tersebut. 2. BidangMedis Sport Watch, berupa jam tangan olahraga yang juga dapat menghitung berapa banyak langkah yang telah kita lakukan, menggunakan accelerometer untuk menghitung kecepatan dan jarak dari si pelari yang menggunakannya. 3. Transportasi Salah satu pengguaan accelerometer yang sangat umum yaitu dalam sistem airbag yang terdapat pada kendaraan, khususnya mobil. Accelerometer ini digunakan untuk mendeteksi penurunan percepatan yang sangat besar yang biasanya terjadi ketika adanya tabrakan antar kendaraan. 4. Peralatan Elektronik Accelerometer pada laptop biasanya digunakan pada sistem Sudden Motion Sensor, yang biasa digunakan untuk mendeteksi jatuhnya laptop. Jika kondisi pada saat jatuh terdeteksi ,harddisk yang ada akan diproteksi sehingga tidak terjadi data loss. Sekarang ini juga terdapat notebook yang menggunakan accelerometer untuk secara otomatis mengubah arah layar (menjadi miring ataupun terbalik) sesuai dengan arah notebook tersebut ditegakkan (portrait atau landscape). Terdapat juga sejumlah handphone yang menggunakan accelerometer untuk mengubah lagu yang dimainkan (Track Switching). Camera recorder menggunakan accelerometer untuk menstabilkan gambar (image stabilization). Kamera digital menggunakan accelerometer untuk fitur anti blur ketika mengambil gambar. 2.3 Java Pada Perangkat Mobile 2.3.1 Platform Java Java dibuat pada tahun 1991 oleh James Gosling. Pada awalnya diberi nama Oak, untuk menghormati pohon yang ada di luar jendela Gosling. Kemudian namanya diubah ke Java karena telah ada sebuah bahasa yang diberi nama Oak.

Page 18: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

7

Motivasi sesungguhnya dari Java adalah kebutuhan akan sebuah bahasa yang bisa digunakan pada berbagai platform yang bisa dimasukkan ke dalam berbagai produk elektronik seperti pemanggang roti dan lemari es. Salah satu dari proyek pertama yang dikembangkan menggunakan JAVA adalah sebuah remote kontrol yang diberi nama Star 7. Pada saat yang sama, World Wide Web dan Internet berkembang sangat cepat. Gosling menyadari bahwa Java dapat digunakan untuk pemrograman Internet. Dengan keluarnya versi 1.2, platform Java telah dipilah-pilah menjadi beberapa edisi :The Standard Edition(J2SE), Enterprise Edition(J2EE), Mobile Edition(J2ME), dan JavaCard API.

Tabel 2.1 Platform Java J2SE – Java 2 Platform, Standart Edition

Aplikasi Desktop

J2EE – Java 2 Platform, Enterprise Edition

Aplikasi Enterprise dengan fokus pada pengembangan sisi web server, termasuk servlet, JSP, EJB, dan XML

J2ME – Java 2 Micro Edition

Perangkat Mobile

JavaCard Smart Cards 2.3.2 Java 2 Micro Edition J2ME adalah salah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei, layar yang kecil, dan bandwith jaringan yang rendah. Java menyediakan suatu lingkungan yang portable untuk mengembangkan dan menjalankan aplikasi pada perangkat ini. Program J2ME, seperti semua program java adalah diterjemahkan oleh Virtual Machine (VM). Program-program tersebut dikompile ke dalam bytecode dan diterjemahkan denga Java Virtual Machine(JVM).Ini berarti bahwa program-program tersebut tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda. Inti dari J2ME terletak pada configuration dan profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan

Page 19: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

8

Gambar 2. 2 Java 2 Micro Edition

Sumber : http://daraatengdjaja.wordpress.com/2009/01/04/pengenalan-j2me

2.4 MIDP Mobile Information Device Profile (MIDP) berada di atas dari CLDC. menulis aplikasi mobile tidak hanya dengan menggunakan CLDC API. tetapi 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. Spesifikasi MIDP menggambarkan suatu perangkat MIDP yang memiliki karakteristik- karateristik ini sebagai batas minimum: Tampilan: - Ukuran Layar: 96x54 - kedalaman tampilan: 1-bit - Ketajaman pixel: sekitar 1:1 Masukan: - Satu atau lebih mekanisme user-input: satu keybboard, 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:

Page 20: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

9

- 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-the- air. 2.5 RIMLET Aplikasi pada Blackberry dapat dikembangkan sebagai MIDlet standar yang akan berjalan pada perangkat MIDP-enabled, atau sebagai RIMlet, aplikasi berbasis CLDC yang menggunakan BlackBerry-spesifik API dan karenanya akan hanya berjalan pada perangkat BlackBerry . Jika Anda sedang mengembangkan aplikasi khusus untuk BlackBerry anda harus menggunakan model API CLDC karena RIM akan memberikan tampilan ”rasa” BlackBerry-tanpa melarang pilihan untuk menggunakan API J2ME standar di daerah lain dari UI. Untuk ketekunan, Anda dapat menggunakan API BlackBerry atau RMS MIDP API. Kelas utama dari RIMlet entends net.rim.system.Application, jika itu merupakan aplikasi background tanpa user interface, atau extends net.rim.system.UiApplication jika RIMlet membutuhkan user interface. Tidak seperti titik awal MIDlet, titik masuk ke sebuah RIMlet adalah main() method. Seperti dalam UI MIDP, layar RIMlet bukan window yang bergerak. Untuk menampilkannya hanya diperlukan method pushScreen(). 2.6 UiApplication Semua aplikasi yang memiliki user interface (screen , menus , dll) harus menjadi subclass net.rim.device.api.ui.UiApplication . Kita dapat melakukannya dengan menambahkan import pada bagian paling atas program kita seperti listing program di bawah ini : import net.rim.device.api.ui.UiApplication; /** contoh sederhana Hello World pada BlackBerry. */ class HelloWorldApp extends UiApplication { HelloWorldApp(){ } }

Kita bisa saja melakukan import net.rim.device.api.ui.* untuk mendapatkan hasil yang sama, tapi apabila kita melakukan import pada sebuah class lebih baik hanya import class spesifik yang dibutuhkan saja. Dengan melakukan hal itu, kita akan meningkatkan performa dari aplikasi mengingat performa merupakan suatu yang sangat penting dari sebuah device.

Page 21: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

10

Langkah selanjutnya kita isi main method yang ada : class HelloWorldApp extends UiApplication { HelloWorldApp() { HelloWorldMainScreen mainScreen = new HelloWorldMainScreen(); pushScreen(mainScreen); }}

Pada potongan program di atas, kita membuat sebuah main screen dan melakukan push pada display stack. Langkah selanjutnya kita tinggal mengisi main method, cara melakukannya hampir sama dengan pemrograman J2SE, .NET, maupun C, tapi sangat berbeda dengan J2ME. Method utama bertindak sebagai titik awal bagi aplikasi kita dan selalu memiliki signature yang sama. Method utama akan membuat instance dari aplikasi, dan menjalankan event dispatcher, yang merupakan pengatur dari semua yang ada di layer dan mendengarkan semua interaksi user pada aplikasi. class HelloWorldApp extends UiApplication { public static void main(String[] args) { HelloWorldApp app = new HelloWorldApp(); app.enterEventDispatcher(); } }

2.7 MainScreen Jika kita menjalankan program pada bab 2.5, kita akan mendapatkan error, karena method pushScreen() yang kita panggil pada konstruktor kelas HelloWorldApp memerlukan sebuah objek dari kelas Screen, yang merupakan subclass net.rim.device.api.ui.Screen dan kelas HelloWorldMainScreen belum mengimport kelas MainScreen. Kita lebih memilih class MainScreen daripada class Screen karena class MainScreen memberikan kita beberapa hal secara otomatis, disebut sebagai layout manager (untuk menempatkan kontrol dari user interface pada layar). MainScreen objek berisi title section, sebuah separator element, dan sebuah main scrollable section (merupakan sebuah single vertical field manager yang digunakan untuk mengurus daftar fields) . import net.rim.device.api.ui.container.MainScreen; class HelloWorldMainScreen extends MainScreen { HelloWorldMainScreen() { } }

Page 22: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

11

2.8 Accelerometer pada Blackberry Pembacaan orientasi device pada blackberry memerlukan beberapa class khusus untuk pendeteksian. 2.8.1 AccelerometerSensor Kelas ini menyediakan query untuk pendeteksian accelerometer dan listening registration method. Ada dua tipe dari accelerometer data : Orientasi, yang merupakan orientasi handheld dengan tanah, misalnya, ORIENTATION_TOP_UP atau ORIENTATION_LEFT_UP. Raw acceleration, yang memiliki tiga koordinat : X, Y, and Z. Setiap nilai mewakili acceleration dari sumbu X, Y dan Z, seperti ilustrasi berikut :

Gambar 2. 3 Ilustrasi akselerasi pada sumbu x,y, dan z

Sumber : http://www.blackberry.com/developers/docs/4.7.0api/

Acceleration sensor mengembalikan sebuah nilai G-force sepanjang sumbu x,y, dan z, relatif terhadap tanah, sebagai berikut : * Sumbu X berjalan dari timur (nilai negatif) ke barat (nilai positif); * Sumbu Y membentang dari utara (nilai negatif) ke selatan (nilai positif);dan * Sumbu Z berjalan dari bagian depan perangkat BlackBerry (nilai negatif) ke bagian belakang perangkat (nilai positif).

Page 23: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

12

Tabel 2.2 Field Summary Kelas AccelerometerSensor Tipe Nama Keterangan int G_FORCE_VALUE Percepatan konstan

untuk nilai baku yang sama dengan G-Force.

int ORIENTATION_BACK_UP Orientasi konstan menunjukkan layar perangkat BlackBerry secara langsung menghadap tanah.

int ORIENTATION_BOTTOM_UP Orientasi konstan menunjukkan sisi bawah perangkat Blackberry bergerak ke atas

int ORIENTATION_FRONT_UP Orientasi konstan menunjukkan layar perangkat BlackBerry menghadap 180 derajat dari tanah.

int ORIENTATION_LEFT_UP Orientasi konstan menunjukkan sisi kiri perangkat BlackBerry bergerak ke atas.

int ORIENTATION_RIGHT_UP Orientasi konstan menunjukkan sisi kanan perangkat BlackBerry bergerak ke atas.

int ORIENTATION_TOP_UP Orientasi konstan menunjukkan sisi atas perangkat Blackberry bergerak ke atas.

int ORIENTATION_UNKNOWN Orientasi konstan menunjukkan orientasi BlackBerry perangkat yang tidak dikenal.

Page 24: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

13

Tabel 2.3 Method Summary Kelas Accelerometer Tipe Nama Keterangan

bolean isSupported() return true jika sensor accelerometer didukung pada perangkat ini, false jika tidak

AccelerometerSensor.Channel

openChannel(Application app , AccelerometerChannelConfig cfg)

menyalakan sensor accelerometer berdasarkan konfigurasi channel.

AccelerometerSensor.Channel

openOrientationDataChannel (Application app)

menyalakan sensor accelerometer untuk data orientasi.

AccelerometerSensor.Channel

openRawDataChannel (Application app)

menyalakan sensor accelerometer untuk raw acceleration data

2.8.2 AccelerometerListener Kelas ini merupakan listener dari accelerometer notification. listener akan diberitahu bila channel menerima data baru. Jika channel tersebut sudah dibuka untuk orientasi maka listener akan diberitahu setiap perubahan orientasi pada device. Jika channel tersebut sudah dikonfigurasi untuk raw data accelerometer maka akan diberitahu pada setiap sensor seperti biasanya berbeda dengan di dunia nyata. Pada method ini hanya terdapat satu kelas, yaitu: onData public void onData(AccelerometerData accData) Memberitahu listener mengenai accelerometer data yang baru . Parameters: accData - accelerometer data berisi informasi yang terdaftar 2.8.3 AccelerometerData Kelas ini digunakan untuk enkapsulasi pembacaan sensor accelerometer. Mengandung informasi dari acceleromoter data sebagai berikut : Orientasi, yang merupakan orientasi genggam sehubungan dengan tanah,

misalnya, AccelerometerSensor.ORIENTATION_TOP_UP atau AccelerometerSensor. ORIENTATION_LEFT_UP.

Raw acceleration simples, yaitu vektor dari tiga koordinat: X, Y, dan Z. Setiap nilai baku merupakan percepatan sepanjang X, Y dan sumbu Z.

Raw samples history, yaitu buffered samples yang dialokasikan berdasarkan jumlah sample. Buffer dikembalikan oleh getXAccHistory

Page 25: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

14

(), getYAccHistory () dan getZAccHistory () memiliki nilai percepatan terbaru disimpan pada indeks 0, sedangkan nilai tertua disimpan pada akhir array.

Tabel 2.4 Method Summary Kelas AccelerometerListener

Tipe Nama Keterangan long getLastTimestamp() Mengembalikan timestamp

untuk pengukuran percepatan yang terakhir .

short getLastXAcceleration() Pengembalian percepatan terbaru. sepanjang sumbu X

short getLastYAcceleration() Pengembalian percepatan terbaru. sepanjang sumbu Y

short getLastZAcceleration() Pengembalian percepatan terbaru. sepanjang sumbu Z

int getNewBatchLength() Mengembalikan hitungan sampel baru dalam array sejak panggilan permintaan terakhir.

int getOrientation() Mengembalikan orientasi terakhir yang dikethaui pada device

long [] getSampleTsHistory() Pengembalian sampel timings.

short [] getXAccHistory() Pengembalian sejarah dari pembacaan percepatan sepanjang sumbu X.

short [] getYAccHistory() Pengembalian sejarah dari pembacaan percepatan sepanjang sumbu Y

Page 26: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

15

BAB III PERANCANGAN APLIKASI

Pada bab ini akan di jelaskan mengenai deskripsi umum, skenario permainan, desain sistem aplikasi, perancangan database dan pembuatan aplikasi. Desain aplikasi ditujukan untuk memberikan gambaran secara umum terhadap aplikasi yang akan di buat. Dengan desain aplikasi juga akan mempermudah untuk pengembangan lebih lanjut terhadap aplikasi yang di buat. Untuk membuat aplikasi pada proyek akhir, terlebih dahulu di lakukan pembuatan desain interface dan desain database. Desain database berguna untuk mengetahui data apa saja yang di butuhkan dalam proses tersebut. Sedangkan desain interface bertujuan sebagai jembatan antara pengguna dengan sistem aplikasi yang di buat, sehingga pengguna dapat mengoperasikan aplikasi yang di buat. 3.1 Deskripsi Umum Game Game ini merupakan game permainan tentang sebuah bola / ball yang mempunyai misi untuk menghancurkan target - target yang ada. Bola tersebut akan terus memantul dan tujuan kita adalah menjaga bola agar tidak melewati batas yang ada dengan menggerakkan player/ papan pemantul untuk terus memantulkannya. User dapat menggerakkan papan pemantul dengan menggunakan accelerometer pada ponsel. Apabila bola melewati papan pemantul maka nyawa dari pemain akan berkurang. Apabila nyawa yang dimiliki sudah habis, maka game akan berakhir. Fungsi-fungsi yang dilakukan pada aplikasi game dapat dijelaskan melalui use case pada gambar 3.1.

Page 27: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

16

Gambar 3.1 Use Case Aplikasi Game

Sistem aplikasi game dapat dijelaskan melalui diagram blok aplikasi pada gambar 3.2

Page 28: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

17

Gambar 3. 2 Diagram Block Aplikasi

3.2 Skenario Game Skenario dari game adalah sebagai berikut : 1. Pada awal permainan user memiliki 5 live atau nyawa. 2. Ada 10 level yang disediakan dan tiap kenaikan level memiliki tingkat

kesulitan yang lebih tinggi pula serta desain target yang berbeda-beda. 3. Pada saat start posisi bola awal berada tepat di atas papan pemantul

bagian tengah. 4. Untuk memulai permainan, user harus melakukan sentuhan (touch) pada

layar. 5. Game dimainkan dengan cara menggerakkan/menggoyangkan hp ke kiri

dan ke kanan untuk menggerakkan papan pemantul ke kiri atau kanan. 6. Bola akan memantul dan merusakkan target-target yang ada sampai

semua target habis.

System Processor

Accelerometer Sensor

x-axis

y-axis

z-axis

Input Control

Proses

JVM

class file

Game Assets Level, Sound. Model

Output

LCD controller 3.25 “ HVGA

Page 29: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

18

7. Terdapat score atau nilai untuk user yang berhasil menghancurkan target-target yang ada. Nilai untuk target bervariasi tergantung tingkat kesulitan pada tiap level.

8. Jika bola melewati papan pemantul maka nyawa akan berkurang. 9. Jika semua target sudah habis maka masuk pada level-level berikutnya

yang lebih sulit. 10. Pada level-level berikutnya akan terdapat beberapa variasi. Contoh : - Ketika salah satu target dihancurkan maka akan berisi option yang akan

jatuh berupa gambar. Misalnya : ada gambar ’bom’, maka nyawa akan berkurang jika bom tersebut mengenai papan pemantul.

- Target pada level tertentu akan hacur jika 2 kali ditabrak. 3.3 FSM (Finite State Machine) Alur dari game dapat dijelaskan melalui finite state machine pada gambar 3.2.

Page 30: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

19

Gambar 3.3 FSM Bouncing Ball 3.4 Karakter Game Sub bab ini akan menjelasakan bagaimana cara pembuatan karakter dari game beserta hubungannya dengan karakter lain. 3.4.1 Pembuatan Target Untuk menggambarkan target pada layar kita membuat class baru, yaitu class Target. Berikut adalah script constructor dari class Target yang digunakan untuk menggambarkan Target : public class Target extends Sprite{ public Target(int x,int y, String nama, String

menghancurkan

target

menabrak tembok

menabrak papan

menjelajah

Keterangan : A = target masih ada B = kearah papan C = kearah tembok D = kearah target

D

A

C

D

C B B

A

A

C

B

D

Page 31: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

20

jenis){ super(nama); locx = x; locy = y; type=jenis; if(jenis=="gerak"){ dx=20; } } Parameter yang dilemparkan oleh class Target adalah : 1. int x : posisi x gambar 2. int y : posisi y gambar 3. String nama : nama gambar 4. String jenis : jenis target

Contructor Target akan melemparkan parameter nama bertipe String pada contructor superclass. Berikut adalah constructor superclass dari class Target : public Sprite(String fnm) { pWidth = Display.getWidth(); pHeight = Display.getHeight(); loadImage(fnm); locx = (pWidth-width)/2; locy = pHeight/2; }

Construcor class Sprite yang merupakan superclass dari class Target melakukan : 1. mengatur lebar dan tinggi layar 2. melakukan load image dengan membuat fungsi loadImage seperti script di bawah ini : private void loadImage(String fnm) { image = Bitmap.getBitmapResource(IMAGES_DIR + fnm); if (image != null) { width = image.getWidth(); height = image.getHeight(); } else { System.out.println("Tidak ada gambar pada " + fnm); width = SIZE; height = SIZE; }}

Page 32: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

21

3. menentukan default dari posisi x dan posisi y dari sprite Sedangkan untuk menggambarkan sprite pada layar menggunakan method draw(Garphics g). Berikut adalah potongan kode method tersebut : public void draw(Graphics g) { if (isActive()) { if (image == null) { g.setColor(Color.YELLOW); g.fillArc(locx, locy, SIZE, SIZE, 0, 360); g.setColor(Color.BLACK); } else g.drawBitmap(locx, locy, width, height, image, 0, 0); } }

Penjelasan kode : Apabila image tidak ada, maka dibuat sebuah lingkaran berwarna hijau dengan ukuran yang sudah ditentukan sebelumnya pada variable bernama ‘size’. Dari penjelasan sebelumnya, maka kita dapat menyusun target-target pada game sesuai keinginan kita. Berikut adalah contoh script untuk menyusun sebuah target: jumlahTarget = 5; int x= 60; int y = 100; String img = "bataputih.png"; target = new Target[jumlahTarget]; for(int i=1;i<=jumlahTarget;i++){ target[i-1] = new Target(x,y,img,""); x+=40; y+=30; }

Dari scipt di atas, program melakukan : 1. menentukan image dari target yang bernama ‘bataputih.png’. 2. menentukan posisi target pertama. 3. menggambar target pertama. 4. melakukan looping untuk membuat target sebanyak 29 kali. 5. target yang dibuat tidak memiliki tipe, yaitu target biasa.

Page 33: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

22

Gambar 3.4 Contoh pembuatan target

3.4.2 Pembuatan Bola Untuk menggambarkan bola pada layar kita juga membuat class baru, yaitu class Bola. Class ini juga merupakan subclass dari class Sprite yang kita buat sebelumnya. Berikut adalah potongan kode untuk menggambar sebuah Bola : public Bola(int dx,int dy){ super("bolabasket.png"); locy=pHeight-75; this.dx = dx; this.dy = dy; }

Parameter yang dilemparkan oleh class Target adalah :

1. int dx : kecepatan bola pada sumbu x 2. int dy : kecepatan bola pada sumbu u

Constructor dari class Bola juga akan melemparkan parameter nama image pada constructor superclass. Bola juga memiliki kecepatan karena bola bisa bergerak, sehingga diperlukan pengaturan variabel dx (kecepatan x) dan dy (kecepatan y). Sedangkan untuk menggerakkan bola tersebut kita buat sebuah method pada class Sprite, yaitu : public void update() // menggerakkan sprite { if (isActive()) { locx += dx;

480

360

posisi x : 60 posisi y : 100

Page 34: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

23

locy += dy; } }

Pergerakan bola dapat dijelaskan melalui gambar :

Gambar 3.5 Ilustrasi dy dan dx bola

sumbu y

keterangan :

= posisi awal bola

= posisi akhir bola 1 = dx bola adalah 10 2 = dy bola adalah 15

(50,100)

(60,115)

1

2

sumbu x

Page 35: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

24

Gambar 3.6 Ilustrasi pergerakan bola

3.4.3 Pendeteksian Pantulan Sesuai dengan nama dari aplikasi, yaitu Bouncing Ball Games, pendeteksian pantulan sangatlah penting. Pendeteksian pantulan pada game ini meliputi :

Benturan bola dengan batas layar Benturan bola dengan target Benturan bola dengan papan

3.4.3.1 Benturan Bola dengan Batas Layar Untuk mendeteksi benturan bola dengan batas layar , maka kita buat method pada class Bola yaitu method move(). Berikut adalah potongan kodenya : public void move() { if (locx <= 0 || locx > pWidth - width ) { dx = - dx; }

dx (-) dy (+)

dx (+) dy (+)

keterangan :

= posisi akhir bola

= posisi awal bola

dx (+) dy (-)

dx (-) dy (-)

Page 36: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

25

locx = locx + dx; if (locy< 0 || locy> pHeight - height) { dy= -dy; } locy= locy+ dy; }

Penjelasan dari kode di atas : 1. Apabila posisi x bola lebih kecil daripada 0 atau posisi x lebih besar dari lebar layar dikurangi lebar bola, maka nilai dx akan diminus dari nilai dx sebelumnya. 2. Apabila posisi y bola lebih kecil daripada 0 atau posisi y lebih besar dari tinggi layar dikurangi tinggi bola, maka nilai dy akan diminus dari nilai dy sebelumnya 3. Kecepatan setelah bola memantul target tetap sama. Berikut adalah diagram alur program ketika terjadi benturan dengan target :

Gambar 3.7 flowchart tabrakan bola dengan target

Page 37: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

26

3.4.3.2 Benturan Bola dengan Batas Target Untuk mendeteksi benturan bola dengan target, maka kita buat method pada class Bola yaitu method kenaTarget(). Berikut adalah potongan kodenya: protected boolean kenaTarget(Target target){ XYRect blk = target.getRect(); XYRect ball = getRect(); if(ball.intersects(blk)){ if((dy < 0)&&(dx >0)){ if((ball.y+height)-10>= (blk.y+height)) dy = -dy; else dx = -dx; } else if((dy<0)&&(dx<0)){ if((ball.y+height)-10 >= (blk.y+height)) dy = -dy; else dx = -dx; } else if((dx <0)&&( dy >0)){ if(ball.y <= (blk.y-2)) dy = -dy; else dx =-dx; } else if((dx > 0)&& (dy >0)){ if(ball.y <= (blk.y-2)){ dy = -dy; } else dx =-dx; } return true; } return false;}

Method di atas akan mengembalikan nilai boolean true jika terjadi tabrakan antara bola dengan target. Untuk mendeteksi tabrakan maka dibuat terlebih dahulu pengotakan pada image gambar bola dan gambar target. Pengotakan tersebut dilakukan dengan menggunakan method getRect bertipe XYRect pada class Sprite. Berikut potongan kodenya : public XYRect getRect() { return new XYRect(locx, locy, width, height); }

Method tersebut akan mengembalikan nilai berupa sebuah object XYRect. Setelah kedua image sudah dibungkus dengan masing-masing sebuah objek XYRect, dapat dilakukan deteksi tabrakan dengan menggunakan method instersects(XYRect x). Method ini akan mengembalikan nilai true jika terjadi

Page 38: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

27

interseksi antar kedua image. Jika hasil bernilai true, maka akan masuk pada 4 buah kondisi, yaitu : 1. Kondisi dimana dy bernilai negatif dan dx bernilai positif. 2. Kondisi dimana dy bernilai negatif dan dx bernilai negatif. 3. Kondisi dimana dy bernilai positif dan dx bernilai negatif. 4. Kondisi dimana dy bernilai positif dan dx bernilai positif. Keempat kondisi di atas dapat dijelaskan melalui gambar sebagai berikut :

Gambar 3.8 kondisi tabrakan bola dengan target

Keterangan :

= Target

= Bola sebelum memantul

= Bola setelah memantul

rect 9

kondisi 1-1 kondisi 2-1

kondisi 3-1

kondisi 4-1

kondisi 1-2

kondisi 2-2 kondisi 3-2

kondisi 4-2

Page 39: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

28

Berikut adalah flowchart ketika terjadi benturan antara bola dengan target:

Gambar 3. 9 flowchart tabrakan bola dengan target

3.4.3.3 Benturan Bola dengan Batas Papan Untuk mendeteksi benturan bola dengan papan, maka kita buat method pada class Bola yaitu method kenaPapan(). Berikut adalah potongan kodenya: public void kenaPapan(Papan ppn){ XYRect r = getRect(); int slsh = ppn.width/10; int batas1 = ppn.locx + slsh;

Page 40: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

29

int batas2 = batas1 + slsh ; int batas3 = batas2 + slsh ; int batas4 = batas3 + slsh ; int batas5 = batas4 + slsh ; int batas6 = batas5 + slsh ; int batas7 = batas6 + slsh ; int batas8 = batas7 + slsh ; int batas9 = batas8 + slsh ; XYRect p1=new XYRect(ppn.locx,ppn.locy,slsh,ppn.height); XYRect p2 = new XYRect(batas1,ppn.locy,slsh,ppn.height); XYRect p3 = new XYRect(batas2,ppn.locy,slsh,ppn.height); XYRect p4 = new XYRect(batas3,ppn.locy,slsh,ppn.height); XYRect p5 = new XYRect(batas4,ppn.locy,slsh,ppn.height); XYRect p6 = new XYRect(batas5,ppn.locy,slsh,ppn.height); XYRect p7 = new XYRect(batas6,ppn.locy,slsh,ppn.height); XYRect p8 = new XYRect(batas7,ppn.locy,slsh,ppn.height); XYRect p9 = new XYRect(batas8,ppn.locy,slsh,ppn.height); XYRect p10= new XYRect(batas9,ppn.locy,slsh,ppn.height); if(r.intersects(p1)){ dy =-dy;dx = -6; return true; } else if(r.intersects(p2)){ dy =-dy;dx = -5; return true; } else if (r.intersects(p3)){ dy =-dy;dx = -4; return true; } else if (r.intersects(p4)){ dy =-dy;dx = -2; return true; } else if (r.intersects(p5)){ dy =-dy;dx = -1; return true; } else if (r.intersects(p6)){ dy =-dy;dx = 1; return true; } else if (r.intersects(p7)){ dy =-dy;dx = 2; return true; } else if (r.intersects(p8)){

Page 41: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

30

dy =-dy;dx = 4; return true; } else if (r.intersects(p9)){ dy =-dy;dx = 5; return true; } else if (r.intersects(p10)){ dy =-dy;dx = 6; return true; } return false; }

Penjelasan kode di atas : 1. membagi papan menjadi 10 bagian yang sama besar 2. melakukan pembungkusan tiap bagian menggunakan class XYRect. 3. mengecek apakah terjadi interseksi/ tabrakan dengan masing-masing

bagian dengan menggunakan method intersects(). 4. tiap bagian akan memberikan nilai yang berbeda pada dy dan dx bola.

Cara pendeteksi tabrakan antara bola dan papan hampir sama dengan pendeteksian tabrakan bola dan target. Yang berbeda adalah pada papan pembungkusan dilakukan tidak seperti pada target, tapi papan dibagi menjadi 10 bagian terlebih dahulu kemudian dikotak-kotakkan mengunakan method getRect(). Dengan pembagian papan seperti ini, efek pemantulan bola pun dapat kita pilah-pilah. Untuk mempermudah penjelasan dapat dilihat gambar:

Gambar 3.10 pembagian papan

Skenario ketika terjadi benturan antara bola dengan papan adalah:

1. membagi papan menjadi 10 bagian 2. apabila terkena rect 1, nilai dy = -dy dan nilai dx =-6 3. apabila terkena rect 2, nilai dy = -dy dan nilai dx =-5 4. apabila terkena rect 3, nilai dy = -dy dan nilai dx =-4 5. apabila terkena rect 4, nilai dy = -dy dan nilai dx =-3 6. apabila terkena rect 5, nilai dy = -dy dan nilai dx =-1

rect 5 rect 1 rect 3 rect 7

rect 2 rect 4 rect 6 rect 8 rect 10

rect 9

Page 42: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

31

7. apabila terkena rect 6, nilai dy = -dy dan nilai dx =1 8. apabila terkena rect 7, nilai dy = -dy dan nilai dx =3 9. apabila terkena rect 8, nilai dy = -dy dan nilai dx =4 10. apabila terkena rect 9, nilai dy = -dy dan nilai dx =5 11. apabila terkena rect 10, nilai dy = -dy dan nilai dx =6

Berikut adalah flowchart ketika terjadi benturan antara bola dengan papan :

Gambar 3.11 flowchart tabrakan bola dengan papan

Page 43: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

32

3.5 Pembacaan Sensor Accelerometer Untuk menggerakkan papan menggunakan sensor accelerometer pada device, kita perlu membuat beberapa method. Langkah pertama kita buat global variabel class GamePlay seperti code di bawah ini : private Channel accelChannel=null; private short[] xyzAccels = new short[3];

Setelah mendeklarasikan global variable, pada constructor class Gameplay kita tambahkan kode untuk mendeteksi apakah device memiliki sensor accelerometer, seperti kode di bawah ini : if (AccelerometerSensor.isSupported()) accelChannel=AccelerometerSensor.openRawDataChannel( Application.getApplication() );

Langkah berikutnya adalah membuat sebuah method untuk mendapatkan data akselerasi pada device. Berikut adalah potongan kodenya: private void processShakes() { if (accelChannel == null) return; if (gameOver) return; accelChannel.getLastAccelerationData( xyzAccels ); papan.shake(xyzAccels[0]); }

Setelah mendapatkan data akselerasi, kita ambil data akeselerasi pada sumbu x, dalam hal ini adalah xyzAccels[0], lalu kita lemparkan data tersebut pada sebuah method di class Papan, yaitu method shake(short xAccel). Berikut adalah potongan kode method shake pada class Papan: public void shake(short xAccel){ if(xAccel >=0){ if (locx+width <=pWidth){ if (xAccel==0) locx = locx; else if ((xAccel > 0) && (xAccel < 75)) locx -=5; else if ((xAccel > 75) &&(xAccel < 150)) locx -= 6; else if ((xAccel > 150) &&(xAccel < 225)) locx -=7; else if ((xAccel > 225) &&(xAccel < 300)) locx -=8;

Page 44: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

33

else if ((xAccel > 300) &&(xAccel < 375)) locx -=9; else if ((xAccel > 375) &&(xAccel < 425)) locx -=10; else if ((xAccel > 425) &&(xAccel < 500)) locx -=11; else if ((xAccel > 500) &&(xAccel < 575)) locx -=12; else locx -=15; } }else if(xAccel <=0){ if (locx >= 0){ if (xAccel==0) locx = locx; else if ((xAccel <= 0) && (xAccel > -75)) locx +=5; else if ((xAccel <= -75) &&(xAccel > -150)) locx += 6; else if ((xAccel <= -150) &&(xAccel > -225)) locx +=7; else if ((xAccel < -225) &&(xAccel > -300)) locx +=8; else if ((xAccel < -300) &&(xAccel > -375)) locx +=9; else if ((xAccel < -375) &&(xAccel > -450)) locx +=10; else if ((xAccel < -450) &&(xAccel > -525)) locx +=11; else if ((xAccel < -525) &&(xAccel > -600)) locx +=12; else locx +=15; } }}

Page 45: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

34

3.6 Gambaran Umum Desain Antar Muka Berikut adalah gambaran umum user interface game bouncing ball pada saat start:

Gambar 3.12 Desain UI

Keterangan dari nomor yang terdapat pada gambar antarmuka di atas adalah sebagai berikut: (1) Score : nilai/score akan selalu bertambah ketika kita berhasil menghancurkan tembok (2) Nyawa : apabila bola gagal dipantulkan dan melewati papan pemantul maka jumlah bola berkurang. Apabila jumlah bola habis, maka permainan akan selesai (game over). (3) Target : merupakan sasaran dari bola, akan hancur jika terkena bola. (4) Bola : merupakan tokoh utama dari permainan ini. (5) Papan pemantul : user dapat menggerakkan papan pemantul ini untuk memantulkan bola dan menghancurkan semua target yang ada . 3.7 Karakteristik Level Permainan dibangun dengan 10 level. Setiap level memiliki karakteristik yang berbeda-beda. Berikut adalah karakteristik dari tiap-tiap level : Level Pertama : - target berbentuk segienam. - target akan hancur jika terkena hanya satu kali tabrakan - tidak ada penghalang target. - ada bonus nyawa pada sebuah target - score untuk setiap target adalah 1. Level Kedua : - target berbentuk lingkaran - score untuk setiap target adalah 1.

Page 46: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

35

Level Ketiga : - target berbentuk persegi panjang . - ada bonus papan menjadi lebih panjang - score untuk setiap target adalah 1. Level Keempat : - target berbentuk persegi panjang. - score untuk tiap target adalah 2. - ada beberapa target yang akan hancur jika ditabrak sebanyak dua kali.

Tabrakan pertama akan membuat target menjadi retak Level kelima : - target berbentuk segitiga - ada 2 buah target yang apabila terkena bola akan berubah menjadi

gambar meteor yang jatuh. Apabila terkena player maka nyawa akan berkurang

- score untuk tiap bintang adalah 3 Level keenam : - target berbentuk limas. - ada 3 buah target yang apabila ditabrak akan berubah menjadi bom dan

nuklir . Apabila terkena player maka nyawa akan berkurang. - score untuk tiap target adalah 4 Level Ketujuh : - target berbentuk trapesium. - terdapat penghalang bergerak yang mempersulit user untuk

menghancurkan target. - ada sebuah target berupa gambar peti yang berisi bom. Level kedelapan : - target berbentuk jajaran genjang. - jumlah bom pada tiap target semakin banyak - score untuk tiap target adalah 5 Level kesembilan : - target berupa campuran antara beberapa bangun ruang pada level –level

sebelumnya. - hampir seluruh target akan mengeluarkan jebakan berupa bom/meteor/

nuklir apabila terkena bola. - score untuk tiap target adalah 5 Level kesepuluh : - target berupa campuran antara beberapa bangun ruang pada level-level

sebelumnya. - sangat banyak jebakan pada tiap target - ada penghalang yang bergerak yang mempersulit user untuk

menghancurkan target - score untuk tiap target adalah 8.

Page 47: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

36

3.8 Pembuatan Aplikasi Dalam tahapan ini, akan dijelaskan tentang bagaimana cara pembuatan

game. Tahapan – tahapan yang akan akan dibuat diantaranya adalah 1. Pembuatan splash screen 2. Pembuatan menu game 3. Pembuatan game 4. Pembuatan highscore game 5. Pembuatan setting game 6. Pembuatan about game Dari perancangan aplikasi game yang telah direncanakan sebelumnya,

dimana nantinya game terdiri dari 10 level permainan. Desain rancangan aplikasi untuk game bisa dilihat pada gambar berikut.

Gambar 3.13 Rancangan Menu Start Game

splash screen

start game scores setting about quit

insert name

Choose Level

Game Play

Page 48: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

37

Gambar 3.14 Rancangan Menu Scores

Gambar 3.15 Rancangan Menu Setting

Gambar 3.16 Rancangan Menu About

3.8.1 Pembuatan Splash Screen Splash Screen digunakan untuk menampilkan tampilan awal sebelum memainkan game. Biasanya splash screen selalu ada pada setiap aplikasi, termasuk game.

splash screen

start game scores setting about quit

About

splash screen

start game scores setting about quit

Sound on/off

splash screen

start game scores setting about quit

High Scores

Page 49: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

38

Setiap aplikasi pada Blackberry harus memiliki main class yang extends class UiApplication. Berikut adalah potongan program class BouncingBall yang merupakan main class dari aplikasi: class BouncingBall extends UiApplication { BouncingBall() { IntroScreen introScreen = new IntroScreen(); pushScreen(introScreen); } public static void main (String args[]){ BouncingBall app = new BouncingBall(); app.enterEventDispatcher(); }

Constructor Main class berisi kode untuk membuat objek dari class IntroScreen, yaitu splash screen dari aplikasi , dan kemudian melakukan push screen tersebut. Untuk membuat splash screen pada gambar , hal yang perlu dipersiapkan adalah file image yang akan dibuat splash screen. Buat sebuah class bernama IntroScreen extends MainScreen. Lalu kita ovveride method paint pada class MainScreen menjadi seperti berikut : public void paint(Graphics g){ bmp = Bitmap.getBitmapResource("gambar/splash.jpg"); g.drawBitmap(0,0,bmp.getWidth(),bmp.getHeight(),bmp,0,0); }

Class IntroScreen merupakan splash screen dari aplikasi sehingga hanya akan berlangsung selama 3 detik. Kemudian setelah 3 detik, maka otomatis akan pindah ke screen main menu yaitu class MenuScreen. Berikut adalah constructor dari class IntroScreen: public IntroScreen(){ main = new MenuScreen(); splash(); }

Method splash() kemudian dipanggil pada constructor class IntroScreen. Pada constructor juga kita buat object dari class MenuScreen yang akan kita push pada method splash(). Berikut adalah potongan kode dari method splash : public void splash(){ loading = new Thread(new Runnable(){ public void run(){ try{ Thread.sleep(3000);

Page 50: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

39

}catch(InterruptedException ex){ } UiApplication.getUiApplication().invokeLater (new Runnable(){ public void run(){ UiApplication.getUiApplication().pushScreen(main); }}); } }); loading.start(); }

3.8.2 Pembuatan Menu Game Dalam pembuatan menu game didalamnya akan membuat list menu yang akan di tampilkan dalam game. Melalui menu ini kita akan masuk pada screen game, screen scores, screen setting, screen about, dan keluar dari permainan. Untuk membuat menu seperti gambar , kita siapkan gambar untuk menu screen, kemudian kita override method paint(). Pada method paint kita akan menggambar object dari class Sprite yang sudah kita buat pada kostruktor class MenuScreen . Karena aplikasi game ini dibuat khusus untuk Blackberry phone layar sentuh, maka perlu dilakukan deteksi tiap sentuhan pada layar, kita harus mengetahui titik koordinat x dan y dari tombol-tombol pada image menggunakan class XYRect untuk membungkus tombol pada gambar. Berikut adalah potongan kode dari konstruktor : MenuScreen() { newgame = new XYRect(40,95,135,40); score = new XYRect(65,155,85,40); help = new XYRect(60,215,100,40); about = new XYRect(65,270,100,40); quit = new XYRect(70,320,75,40); bg = new Sprite("menu.jpg",0,0); }

Mendeteksi sentuhan pada tombol dengan melakukan overriding pada method touchEvent(). Objek class XYRect digunakan untuk membungkus area sentuhan dari user dan mengecek apakah area sentuh berada dalam area-area tombol yang dibuat sebelumnya Apabila area sentuh yang merupakan input dari user terkena area dari tombol- tombol, method pushScreen(Screen screen) akan digunakan untuk berpindah ke layar / screen lain. Berikut potongan kode method touchEvent(): protected boolean touchEvent(TouchEvent message){ int eventCode = message.getEvent(); int x = message.getX(1); int y = message.getY(1); if(eventCode == TouchEvent.CLICK) { click = new XYRect(x,y,5,5);

Page 51: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

40

if(click.intersects(newgame)){ ProfilScreen a = new ProfilScreen(); UiApplication.getUiApplication().pushScreen(a); } else if(click.intersects(help)){ SettingScreen h = new SettingScreen(); UiApplication.getUiApplication().pushScreen(h); } else if(click.intersects(about)){ AboutScreen a = new AboutScreen(); UiApplication.getUiApplication().pushScreen(a); } else if(click.intersects(quit)){ int exit = Dialog.ask(Dialog.D_OK_CANCEL,"Apa anda benar - benar ingin keluar dari aplikasi ?"); if(exit== Dialog.OK){ System.exit(0); } } else if(click.intersects(score)){ HighScoreScreen hg = new HighScoreScreen(); UiApplication.getUiApplication().pushScreen(hg);} } if(eventCode == TouchEvent.UNCLICK){ click.reset();) return true; }

3.8.3 Pembuatan Game Dalam pembuatan game beberapa hal yang akan dibahas, yaitu:

1. Pembuatan player 2. Pembuatan bola 3. Main thread game 4. Pergerakkan player 5. Proses level 6. Tabrakan bola dengan target 7. Tabrakan bola dengan papan 8. Penyimpanan score,profile, level, dan sound.

3.8.3.1 Pembuatan Player Player merupakan tokoh utama dari game dan yang akan bergerak sesuai sensor accelerometer dari ponsel. Berikut adalah potongan kode untuk membuat player : player = new Player("player.png");

Kode di atas merupakan pembuatan objek class Player. Berikut adalah isi dari konstruktor class Player :

Page 52: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

41

public Player(String nama){ super(nama); locy = pHeight-60; dx=0; }

Kelas Player merupakan anak dari kelas Sprite. Berikut adalah konstruktor kelas Sprite : public Sprite(String fnm) { pWidth = Display.getWidth(); pHeight = Integer.parseInt(tinggiHashtable.get("tinggi").toString()); loadImage(fnm); locx = (pWidth-width)/2; locy = pHeight/2; }

Pada konstruktor kelas Sprite ada method loadImage() yang digunakan untuk mendapatkan image. Berikut adalah potongan kode method loadImage(): private void loadImage(String fnm) { image = Bitmap.getBitmapResource(IMAGES_DIR + fnm); if (image != null) { width = image.getWidth(); height = image.getHeight();} else { System.out.println("Tidak ada gambar pada " + fnm); width = SIZE; height = SIZE; } }

Method paint(Graphics g) digunakan untuk menampilkan gambar tersebut. Berikut adalah script dari method paint(Graphics g) : protected void paint(Graphics g){ player.draw(g); }

Method draw(Graphics g) merupakan method dari superclass kelas Player. Berikut script method draw(Graphics g): public void draw(Graphics g) { if (isActive()) { if (image == null) { g.setColor(Color.YELLOW); g.fillArc(locx, locy, SIZE, SIZE, 0, 360); g.setColor(Color.BLACK); }else

Page 53: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

42

g.drawBitmap(locx, locy, width, height, image, 0, 0); } }

3.8.3.2 Pembuatan Bola Cara untuk membuat bola sama dengan pembuatan player, yaitu membuat objek dari kelas Bola yang akan memanggil konstruktor superclassnya, yaitu kelas Sprite. Berikut adalah potongan kode kelas Bola: bola = new Bola(5,-10);

Kode di atas merupakan pembuatan objek class Bola. Berikut adalah isi dari konstruktor class Bola : public Bola(int dx,int dy){ super("bolabasket.png"); locy=pHeight-75; this.dx = dx; this.dy = dy; }

Perbedaan dengan pembuatan player , pada konstruktor kelas Bola dilakukan pengaturan pergerakan sumbu x dan y bola. Menampilkan bola sama seperti menampilkan player, yaitu pada method paint(Graphics g) . 3.8.3.3 Menampilkan Status Game Status game berupa status level , nyawa, dan score dari permainan yang sedang berlangsung ditampilkan menggunakan method showStatus(Graphics g). Berikut potongan kode dari method tersebut : private void showStatus(Graphics g) { g.setColor(Color.YELLOW); g.setFont(msgFont); int x = screenWidth - msgFont.getAdvance("Live: X"); // text onright side g.drawText( "Live: "+ nyawa, x, 25, DrawStyle.BOTTOM | DrawStyle.LEFT); g.drawText( "Score: "+ score, 10, 25, DrawStyle.BOTTOM| DrawStyle.LEFT); g.drawText( "Level: "+ level, 10, screenHeight-5, DrawStyle.BOTTOM|DrawStyle.LEFT); }

3.8.3.4 Pergerakan Player Untuk menggerakkan player dilakukan pendeteksian accelerometer pada ponsel. Method isSupported() digunakan untuk mengecek apa ponsel memiliki fitur accelerometer. Berikut adalah potongan kode penggunaan method isSupported():

Page 54: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

43

if (AccelerometerSensor.isSupported()){ accelChannel =AccelerometerSensor.openRawDataChannel Application.getApplication() ); }

Method processShakes() digunakan untuk melemparkan data akselerasi pada accelerometer ke method shake() pada class Player. Berikut adalah potongan kode method processShakes() : private void processShakes() { if (accelChannel == null) return; if (gameOver) return; accelChannel.getLastAccelerationData( xyzAccels ); player.shake(xyzAccels[0]); }

3.8.3.5 Main Thread Game Thread digunakan untuk membuat animasi pergerakan gambar . method invalidate() pada UiApplication pada thread digunakan untuk mengupdate layar. Berikut potongan kode dari thread : animator = new Thread (new Runnable() { public void run() { long beforeTime, sleepTime; startTime = System.currentTimeMillis(); isRunning = true; while(isRunning) { beforeTime = System.currentTimeMillis(); update(); UiApplication.getUiApplication().invokeAndWait (newRunnable() { public void run() { invalidate(); } }); sleepTime = period - (System.currentTimeMillis() -beforeTime); try { if (sleepTime > 0) Thread.sleep(sleepTime); } catch(InterruptedException ex){} }

3.8.3.6 Proses Level Apabila target habis maka akan menuju level berikutnya . Method prosesLevel() digunakan untuk mengecek apakah balok sudah habis atau belum . Berikut adalah potongan kode method prosesLevel():

Page 55: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

44

private void prosesLevel(){ if(broken==jumlahTarget) { naikLevel=true; level++; broken=0; } if(naikLevel){ initLevel(level); isStarted = false; bola.setPosisiAwal(screenHeight-75); player.setPosisiAwal(screenHeight-60); naikLevel=false; }}

3.8.3.7 Penyimpanan Score, Profil, dan Sound Penyimpanan data berupa score, profil dan level menggunakan PersistenObject pada library Blackberry. Data ini disimpan pada flash memori ponsel . Setiap Persistent Object membutuhkan identitas berupa data bertipe long, seperti potongan script berikut : static final long scoreKey = 0x9df9f961bc6d6baL; static final long profileKey = 0x3562c0ecce2c8632L; static final long soundKey = 0x3530bac7c3972e5eL;

Dibutuhkan masing-masing sepasang persisten object dan hastable untuk menyimpan tiap data. Method cekHastable() digunakan sebagai inisialisasi awal tiap Persistent Object dan Hastable yang akan digunakan untuk menyimpan tiap data. Berikut adalah potongan kode method cekHastable() : protected void cekHastable(){ // cek penyimpanan nama dan score persistentScore = PersistentStore.getPersistentObject(scoreKey); if (persistentScore.getContents() == null) { scoreHastable = new Hashtable(); persistentScore.setContents(scoreHastable); } else{ scoreHastable =(Hashtable)persistentScore.getContents(); } //cek penyimpanan profil dan level persistentProfil= PersistentStore.getPersistentObject(profileKey); if (persistentProfil.getContents() == null) { profilHastable = new Hashtable();

Page 56: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

45

persistentProfil.setContents(profilHastable); } else{ profilHastable= (Hashtable)persistentProfil.getContents(); } soundPersistent = PersistentStore.getPersistentObject(soundKey); if (soundPersistent.getContents() == null) { soundHastable = new Hashtable(); soundPersistent.setContents(soundHastable); } else { soundHastable =(Hashtable)soundPersistent.getContents(); }

Method saveScore() digunakan untuk mengisi data score beserta profil dan level akhir yang berhasil dicapai user ke dalam hastable kemudian dikumpulkan pada persistent object yang sudah dibuat. Berikut adalah potongan kode method saveScore() : public void saveScore() int lvl = Integer.parseInt(profilHastable.get(namaProfil).toString().trim()); if(lvl<level){ profilHastable.put(namaProfil.toUpperCase(),Integer.toString(level)); persistentProfil.commit(); } scoreHastable.put( Integer.toString(score) , namaProfil.toUpperCase()); persistentScore.commit(); int scores[] = new int[scoreHastable.size()]; int z =0; for(Enumeration e = scoreHastable.keys(); e.hasMoreElements();){ String score = e.nextElement().toString(); scores[z] = Integer.parseInt(score); z++; } if(scoreHastable.size()>9){ Arrays.sort(scores, 0, scores.length); scoreHastable.remove(Integer.toString(scores[0])); } }

Page 57: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

46

3.8.4 Pembuatan Tampilan Highscores Menampilkan highscore dilakukan dengan menggunakan persistent object dan hastable yang sudah dibuat pada saat penyimpanan score permainan. Key berupa data bertipe long yang digunakan untuk menampilkan data highscore harus sama dengan key yang digunakan pada saat penyimpanan score. Berikut adalah potongan kode untuk menampilkan score : HighScoreScreen() { static final long KEY = 0x9df9f961bc6d6baL; persistentObject = PersistentStore.getPersistentObject(KEY); if (persistentObject.getContents() == null) { persistentHashtable = new Hashtable(); persistentObject.setContents(persistentHashtable); } else { persistentHashtable = (Hashtable)persistentObject.getContents(); } tampil(); }

Inisialisasi yang dilakukan sama dengan pada saat penyimpanan score. Method tampil() digunakan untuk menampilkan mengurutkan data score yang ada. Berikut potongan kode dari method tampil(): public void tampil(){ scores = new int[persistentHashtable.size()]; int z =0; for(Enumeration e = persistentHashtable.keys(); e.hasMoreElements();){ String score = e.nextElement().toString(); System.out.println(score+" = "+ persistentHashtable.get(score)); scores[z] = Integer.parseInt(score); z++; } Arrays.sort(scores, 0,scores.length); for(int i=scores.length-1;i>=0;i--){ name += persistentHashtable.get(Integer.toString(scores[i])) ; name += " : "; name += scores[i] + ","; } nama = new LabelField(name); add(nama); ready = true;} }

Page 58: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

47

Untuk menampilkan data score perlu dilakukan overriding pada method paint(Graphics g). Berikut potongan kode method tersebut : protected void paint(Graphics g){ g.drawBitmap(0, 0, 360, 480, bmp, 0,0); if(ready) showScore(g); }

Jika nilai variable ready pada method tampil() bernilai true, maka akan memanggil method showScore(Graphics g). Berikut adalah potongan kode method tersebut : protected void showScore(Graphics g){ int x=80 ;int x1 = 100;int x2=205; int y = 145; int nomor =1; for(int i=scores.length-1;i>=0;i--){ name = persistentHashtable.get(Integer.toString(scores[i])).toString(); score = Integer.toString(scores[i]); g.setColor(Color.DARKGREEN); g.setFont(nilai); g.drawText(Integer.toString(nomor)+". ", x, y, DrawStyle.BOTTOM|DrawStyle.LEFT); g.drawText(name, x1, y, DrawStyle.BOTTOM|DrawStyle.LEFT); g.drawText(score, x2, y, DrawStyle.BOTTOM|DrawStyle.LEFT); y+=25; nomor++ ;} }

3.8.5 Pembuatan Tampilan Setting Setting pada game meliputi setting sound, reset score, dan reset profile. Method destroyPersistentObject(key) digunakan untuk menghapus persisten object yang sudah dibuat sebelumnya. Key yang dijadikan parameter adalah key yang sama pada saat inisialisasi persistent object pertama kali. Untuk pengaturan layout pada screen setting, kita buat sebuah class baru bernama ManagerSetting yang merupakan extends dari class Manager . Method-method yang perlu di override ketika sebuah class extends class Manager adalah method sublayout(int width, int height,) getPreferredWidth(),getPreferedHeight() Method sublayout(int width, int height,) digunakan untuk pengaturan letak setiap field pada manager yang dibuat, sedangkan method getPreferredWidth() dan getPreferedHeight()

Page 59: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

48

digunakan untuk mendeteksi tinggi dan lebar layar. Berikut adalah potongan kode method-method tersebut : protected void sublayout(int width, int height) { Field field; Field field1; Field field2; Field field3; int numberOfFields = getFieldCount(); field = getField(1); setPositionChild(field,180,120); layoutChild(field, 100,70); field2 = getField(2); setPositionChild(field2,180,180); layoutChild(field2, 100,70); field3 = getField(3); setPositionChild(field3,180,240); layoutChild(field3, 100,70); field1 = getField(0); setPositionChild(field1,0,0); //posisi backgroud layoutChild(field1, width, height); // ukuran layout setExtent(width, height); } public int getPreferredWidth() { return 480; } public int getPreferredHeight() { return 360; }

Pemilihan setting menggunakan ObjectChoiceField, yaitu pilihan berbentuk drop down list Berikut potongan kode pembuatan ObjectChoiceField dan peletakan objek pada manager yang sudah dibuat, yaitu ManagerSetting : bmp = Bitmap.getBitmapResource("setting.jpg"); bf12 = new BitmapField(bmp); snd = new ObjectChoiceField("", new String[]{"OFF","ON"}); reset = new ObjectChoiceField("", new String[]{"NO","YES"}); profile = new ObjectChoiceField("", new String[]{"NO","YES"}); ManagerSetting a = new ManagerSetting(); a.add(bf12); a.add(snd); a.add(reset);

Page 60: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

49

a.add(profile); add(a);

3.8.6 Pembuatan Tampilan About Tampilan about hanya berupa image yang sudah ada. Berikut adalah potongan kode method paint(Graphics g) pada class AboutScreen(): public void paint(Graphics g){ bmp = Bitmap.getBitmapResource("gambar/about.jpg"); g.drawBitmap(0,0,bmp.getWidth(),bmp.getHeight(),bmp,0,0); }

Page 61: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

50

BAB IV HASIL DAN PENGUJIAN

Pada bab ini berisi hasil dari perancangan aplikasi Bouncing Ball Games, dan hasil uji coba (pengujian) yang dilakukan oleh beberapa responden untuk memberikan penilaian pada questioner Bouncing Ball Games.Hasil perancangan disimulasikan menggunakan Blackberry Device Simulator for Eclipse . 4.1 Hasil Perancangan Beberapa tampilan aplikasi dari hasil perancangan meliputi :

1. hasil splash screen 2. hasil main menu 3. hasil start game 4. hasil pilihan level 5. hasil desain level 6. hasil highscores screen 7. hasil setting screen 8. hasil about screen

4.1.1 Hasil Splash Screen

Berikut adalah tampilan awal dari aplikasi. Saat user masuk ke dalam aplikasi, maka akan muncul splash screen selama beberapa detik sebelum pilihan menu seperti pada gambar 4.1.

Gambar 4.1 Splash Screen

Page 62: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

51

4.1.2 Hasil Main Menu

Berikut adalah tampilan menu utama dari aplikasi :

Gambar 4.2 Main Menu

Pilihan pada menu utama adalah sebagai berikut :

- New Game : pilihan untuk memulai game

- High Score : pilihan untuk melihat 10 score teratas.

- Setting : pilihan pengaturan game

- About : berisi informasi mengenai game

- Quit : pilihan untuk keluar aplikasi

4.1.3 Hasil Start Game

Apabila user memilih menu start game, maka akan masuk kepada screen pengisian profil . Berikut adalah tampian layar pengisian profil:

Page 63: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

52

Gambar 4.3 Desain Profile Screen 4.1.4 Hasil Pilihan Level Apabila user yang di inputkan pada screen pengisian profil pada gambar 4.3 sudah pernah bermain dan mencapai level tertentu, maka akan masuk pada layar berikutnya, yaitu pemilihan level. Level yang dapat dipilih tergantung dari level akhir yang berhasil dicapai user tersebut sebelumnya. Berkiut adalah tampilan dari layar pemilihan level :

Gambar 4. 4 Layar pemilihan Level

Page 64: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

53

4.1.5 Hasil Desain Level Desain dari setiap level berbeda, seperti yang sudah dijelaskan pada bab sebelumnya, jumlah level adalah 10. Berikut adalah screenshoot dari level-level yang ada :

Gambar 4.5 Desain level 1,2, dan 3

Gambar 4.6 Desain level 4,5,dan 6

Gambar 4.7 Desain level 7,8, dan 9

Page 65: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

54

Gambar 4.8 Desain final level

4.1.6 Hasil Highscores Screen Menu berikut adalah score. yaitu tampilan daftar nilai tertinggi dari user yang sudah bermain. Berikut adalah tampilan dari layar highscores:

Gambar 4.9 Desain Highscores Screen

4.1.7 Hasil Setting Screen Pengaturan yang ada pada permainan adalah setting sound, reset profil, dan reset score . Berikut adalah tampilan dari setting screen :

Page 66: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

55

Gambar 4.110 Desain Setting Screen

Pada pengaturan terdapat pilihan apakah game mengeluarkan suara atau tidak. Reset score dan reset profile digunakan untuk menghapus data score dan profile yang sudah tersimpan pada memori. 4.1.8 Hasil About Screen Menu terakhir adalah menu about, yaitu tampilan berisi informasi tujuan pembuatan game. Berikut adalah tampilan menu about :

Gambar 4.11 Desain About Screen

Page 67: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

56

4.2 Pengujian Sebelum melakukan pengujian, hal yang perlu diperhatikan adalah spesifikasi perangkat keras yang digunakan, dalam hal ini adalah ponsel Blackberry dengan accelerometer support. Pengujian dilakukan menggunakan Blackberry 9530, dengan spesifikasi teknis sebagai berikut :

Tabel 4.1 Spesifikasi Blackberry 9530

General Information Dimensi Berat / Volume

112.5x62.2x14 mm 155 gram / 98 cc

System 2 G Network 3 G Network CPU Type CPU Speed Sistem Operasi Type

GSM 850 / 900 / 1800 /1900 HSDPA 2100 624 MHz processor 624 BlackBerry OS

Memory Memory Eksternal Memory Memory Included Phone Book Call Records

1 GB storage, 128 MB RAM microSD kapasitas maksimal:16G 8000 Yes, Photocall Yes

Display Jenis Layar / Warna Resolusi Layar Ukuran layer Qwerty Keyboard Touch Screen Opsi Layar & Input

TFT Capacitive touchscreen , 65 ribu warna 360 x 480 pixels 3.25 inch No Yes Accelerometer sensor for auto-rotate

4.2.1 Instalasi Bouncing Ball Games Proses intalasi game ke dalam ponsel dilakukan dengan menggunakan program BBSAK. Berikut adalah tampilan program BBSAK:

Page 68: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

57

Gambar 4.12 Program BBSAK

Untuk menginstal suatu program, masuk ke dalam tab modify CODs,kemudian klik tombol Install COD(s). Setelah itu browse file instalasi yang sudah dihasilkan oleh Eclipse yang berekstensi .cod. Pengujian ini dilakukan oleh 2 orang responden pada Blackberry 9530 dan Blackberry 9550. Berikut adalah data penilaian terhadap instalasi aplikasi :

Tabel 4. 2 Penilain responden terhadap proses instalasi

Penilaian Jumlah Responden Berhasil 2 Tidak 0

Gambar 4.13 Grafik penilaian instalasi Bouncing Ball Games

Page 69: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

58

Dari hasil yang diberikan responden, proses intalasai game sangat baik dan tidak mengalami masalah. 4.2.2 Penilain Grafis Game Penilaian ditujukan pada sisi desain user intreface dari game. Penilaian meliputi tampilan splash screen, menu, about, help, dan level-level yang dalam game. Hasil penilaian dari 10 orang responden mengenai user interface game adalah sebagai berikut :

Tabel 4.3 Penilain responden terhadap user interface game Penilaian Jumlah Responden Sangat Baik 7 Baik 2

Kurang 1

Gambar 4.14 Grafik penilaian user interface game

Dari hasil yang diberikan responden, sebanyak 70% responden memberikan penilain sangat baik, 20% responden memberikan respon baik, dan 10% memperikan respon kurang baik. 4.2.3 Penilaian Respon Accelerometer Inti dari Bouncing Ball Games terletak pada sensor accelerometer untuk menggerakkan pemain. Penilaian ditujukan pada reaksi player saat device digerakkan . Berikut adalah data dari 10 orang responden mengenai penggunaan accelerometer :

Tabel 4.4 Penilain responden terhadap respon accelerometer Penilaian Jumlah Responden Sesuai 5 Cukup sesuai 3

Kurang sesuai 2

Page 70: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

59

Gambar 4.15 Grafik penilaian respon accelerometer

Dari hasil yang diberikan 10 orang responden, sebanyak 50% responden memberikan penilain sesuai, 30% responden memberikan respon cukup sesuai, dan 20% memperikan respon kurang sesuai pada respon accelerometer. 4.2.4 Penilain Sisi Entertainment Penilaian ditujukan pada sisi tujuan dari bouncing ball games, yaitu sisi hiburan. Berikut adalah data dari 10 orang responden mengenai sisi hiburan dari game :

Tabel 4.5 Penilain responden terhadap sisi entertaint game Penilaian Jumlah Responden Sangat menghibur 7 Menghibur 3

Kurang menghibur 0

Gambar 4.16 Grafik penilaian sisi entertainment game

Dari hasil yang diberikan 10 orang responden, sebanyak 70% responden memberikan penilain sangat menghibur, 30% responden memberikan respon menghibur terhadap sisi hiburan dari game.

Page 71: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

60

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan Dari perancangan, pembuatan serta pengujian dan analisa yang telah dijelaskan pada bab-bab sebelumnya, maka dapat ditarik kesimpulan bahwa:

1. Sensor accelerometer pada sebuah mobile phone dapat dimanfaatkan dalam pembuatan aplikasi game.

2. Berdasarkan pengujian segi user interface dari 10 responden 70% memberikan penilaian sangat baik, 20%menilai baik, dan 10 % menilai kurang baik. Penilaian respon accelerometer dari 10 reponden 50% menilai sesuai, 30% menilai cukup sesuai, dan 20% menilai kurang sesuai. Sedangkan untuk penilaian sisi hiburan dari 10 responden 70% menilai sangat baik dan 30% menilai baik.

3. Hasil yang dicapai dari pembuatan bouncing ball games dapat berjalan dengan baik pada handphone Blackberry 9530 dan Blackberry 9550.

5.2 Saran

Saran yang dapat di berikan untuk pengembangan yang mungkin dapat dilakukan pada aplikasi bouncing ball games antara lain :

1. Pengembangan kode program supaya game dapat berjalan pada ponsel semua ponsel Blackberry, baik ponsel yang support accelerometer maupun tidak.

2. Level yang ada diperbanyak dengan desain yang semakin menarik.

Page 72: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

61

DAFTAR PUSTAKA

Pedersen Roger E., 2003, Game Design Foundations , United States of America:Wordware Publishing Inc. JENI-J2ME Bab 01. 2007. Pengembangan Aplikasi Mobile Hamer, C., Davidson A., 2010, Learn Blackberry Games Development,

United States of America: Springer-Verlag New York Inc. Rizk, A, 2009, Beginning Blackberry Development, United States of

America: Springer-Verlag New York Inc. Dara, 2009, Pengenalan J2ME,[online],

<http://daraatengdjaja.wordpress.com/2009/01/04/pengenalan-j2me diakses pada tanggal 24 Juli 2011>

Page 73: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

62

LAMPIRAN A

PERTANYAAN DAN HASIL QUISIONER BOUNCING BALL GAMES

Pertanyaan Quisioner Jenis Kelamin : Pria/Wania Usia : …… tahun

1. Bagaimana desain user interface dari game ?

a. sangat baik b. baik c. kurang baik

2. Bagaimana respon sensor accelerometer pada permainan ? a. sesuai b. cukup sesuai c. kurang sesuai

3. Bagaimana pendapat anda mengenai aspek entertaint dari game ? a. sangat baik b. baik c. kurang baik

Page 74: Bouncing Ball Game Berbasis J2ME Dengan Menggunakan Sensor Accelerometer Pada Ponsel Blackberry

63

Hasil Quisioner

JAWABAN NO

JENIS KELAMIN

USIA 1 2 3

1 P 18 C A A

2 P 22 B B A

3 P 20 B A A

4 P 24 A C B

5 P 19 A C A

6 P 23 A B A

7 W 25 A B B

8 W 27 A A A

9 W 32 A B B

10 P 23 A A A