37
MAKALAH TENTANG CARA PEMBUATAN GAMESP LABIRIN Nama : Arif Safrudin Kelas : 3 c Nim : 11040016 POLITEKNIK HARAPAN BERSAMA TEGAL Jl.Mataram 09 Tegal

cara membuat game sederhana menggunakan neatbeans

Embed Size (px)

DESCRIPTION

ini adalah cara membuat gae labirin sederhana

Citation preview

Page 1: cara membuat game sederhana menggunakan neatbeans

MAKALAH

TENTANG CARA PEMBUATAN GAMESP

LABIRIN

Nama : Arif Safrudin

Kelas : 3 c

Nim : 11040016

POLITEKNIK HARAPAN BERSAMA TEGAL

Jl.Mataram 09 Tegal

Page 2: cara membuat game sederhana menggunakan neatbeans

2

KATA PENGANTAR

Dengan nama Allah yang Maha Pengasih lagi Maha Penyayang. Segala puji bagi Allah semata,

seraya memanjatkan puji syukur kehadirat Allah SWT atas limpahan anugerah dan rahmat- Nya,

saya selaku penulis dapat melaksanakan Tugas pemrograman berorientasi objek 2 sesuai dengan

yang bapak berikan. Tentunya saya selaku penulis telah berupaya semaksimal mungkin

kemampuan saya kerahkan dalam pengerjaan soal tersebut, namun saya menyadari tidak ada

yang sempurna di dunia ini. Selanjutnya saya mengharap adanya saran dan kritik yang

membangun sekaligus ucapan terima kasih pada semua pihak yang telah membantu

terlaksananya tugas ini. Dan pada akhirnya saya menyadari tiada yang sempurna dan besar di

hadapan Allah SWT, namun sekecil apapun amal shaleh yang kita kerjakan pasti diperhitungkan-

Nya dengan pahala yang besar, Amin

Page 3: cara membuat game sederhana menggunakan neatbeans

3

DAFTAR ISI

BAB I PENDAHULUAN ……………………………………………………………… 4

RUMUSAN MASALAH ………………………………………………………. 5

BAB II PEMBAHASAN ………………………………………………………………. 6

BAB III PENUTUP ……………………………………………………………………. 30

Page 4: cara membuat game sederhana menggunakan neatbeans

4

PENDAHULUAN Puji syukur penyusun panjatkan ke hadirat Allah Subhanahu wata΄ala, karena berkat rahmat-Nya

saya bisa menyelesaikan makalah yang berjudul “cara membuat game menggunakan Visual

MIDlet”. Makalah ini diajukan guna memenuhi tugas mata kuliah Pemrograman berorientasi 2.

saya mengucapkan terima kasih kepada semua pihak yang telah membantu sehingga makalah ini

dapat diselesaikan tepat pada waktunya. Makalah ini masih jauh dari sempurna, oleh karena itu,

kritik dan saran yang bersifat membangun sangat kami harapkan demi sempurnanya makalah ini

Semoga makalah ini memberikan informasi bagi masyarakat dan bermanfaat untuk

pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.

Page 5: cara membuat game sederhana menggunakan neatbeans

5

RUMUSAN MASLAH

Pengertian J2ME

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

didesain untuk meletakkan perangkat lunak JAVA pada barang elektronik berserta perangkat

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

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

informasi, komunikasi, dan perangkat komputasi yang lebih kecil dibandingkan dengan

computer desktop. J2ME biasa digunakan pada telepon selular, pager, PDA, dan sejenisnya.

Teknologi J2ME juga memiliki beberapa keterbatasan jika diaplikasikan pada ponsel. J2ME

sangat bergantung pada device yang digunakan, bisa dari merk ponsel, maupun kemampuan

ponsel, dan dukungan terhadap teknologi J2ME. MIsalnya, jika sebuah ponsel tidak memiliki

kamera maka jelas J2ME pada ponsel tersebut tidak dapat mengakses kamera.

Mobile Information Device Profile (MIDP)

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

MIDP memilik lapisan diatas CLDC, API tambahan untuk daur hidup aplikasi, antar muka,

jaringan, dan pemyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur

tambahan pada MIDP 2.0 dibandingkan MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0

terdapat dukunagan memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya

Mobile Media API (MMAPI).

MIDlet

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

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

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

J2ME dan aplikasi manajemen pada perangkat bias terbentuk.

• Daur hidup MIDlet

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

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

(Boolean unconditional) throws MIDletStateChangeException

Ketika MIDlet dijalankan maka akan diinisialisasi dengan kondisi pause dan dijalankan

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

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

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

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

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

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

menterminasi MIDlet dan membersihkan semua sember daya yang mengacu pada MIDlet

Berikut adalah skema hidup MIDlet :

Page 6: cara membuat game sederhana menggunakan neatbeans

6

BAB II PEMBAHASAN

Cara cara untuk membuat game menggunakan java visual MIDlet

yang pertama buka netbeans

,klik new project,

pilih jenis project kemudian klik next

Page 7: cara membuat game sederhana menggunakan neatbeans

7

,tulis nama project,

klik browse untuk memeilih dimana anda akan menyimpan dan centang set as main project dan

hilangkan centang pada Hello create MIDlet

Page 8: cara membuat game sederhana menggunakan neatbeans

8

pada emulator platform biarkan saja, jangan di ubah – ubah

pada device pilih clamshellCldcPhone2

pada CLDC dan MIDP pilih CLDC-1.1,MIDP-2.0

kemudian klik next,pilih Finish

Page 9: cara membuat game sederhana menggunakan neatbeans

9

klik kanan source package pilih new java package

ketik nama paket anda kemudian tekan finish(buatlah 2 nama packages yang berbeda karena kita

akan masukkan 2 packages yang berbeda).contoh nama packages : Image dan apps

kemudian di packages yang bernama image kita isi dengan gambar – gambar,cara

memasukkannya di windows explorer,cari gambar yang akan masukkan,blok semua gambar

kemudian copy atau tekan ctrl+c.kemudian pastekan di packages image. Caranya klik kanan

packages image,paste.dengan sendirinya gambar telah masuk di packages image.

Setelah mengisi packages image kita akan mengisi packages apps dengan cara klik kanan

packages source pilih new game design,visual MIDlet kemudian java class “ bagian java class

kita buat 3 class yaitu dengan nama counter,mainkan,music”setelah semuanya sudah di buat

maka akan muncul kotak dialog seperti ini :

Page 10: cara membuat game sederhana menggunakan neatbeans

10

Kita akan memulai dengan VisualMIDlet pilih vvisual MIDlet

Ini adalah tampilan awal visual MIDlet

Klik kanan pada are kerja Visual MIDlet pilih new Splash Screen, maka akan tampil seperti ini

Page 11: cara membuat game sederhana menggunakan neatbeans

11

Kemudian klik kanan dan pilih list,mainkan,alert”pada alert kita buat dua alert dan kita beri nama

petunjuk dan tentang”

Atur arah aliran program agar setiap kali dijalankan, splash screen adalah bagian pertama yang

ditampilkan dengan cara memberikan panah dari mobile device ke splash screen.cara untuk

mengatur ialah klik dan tahan pada mobile device dan lepaskan pada splashScreen dan lanjutkan

pada semua program sampai program menjadi seperti ini

Page 12: cara membuat game sederhana menggunakan neatbeans

12

Atur properties splash screen agar ditampilkan selama 2 detik. Pengaturan ini terletak pada

bagian Timeout.

Beri gambar pada splash screen kita dengan gambar yang kita telah siapkan. Masuk pada bagian

screen ,klik dua kali pada <Image not specified>.

Page 13: cara membuat game sederhana menggunakan neatbeans

13

Klik tombol Add untuk menambah gambar sehingga image1 akan muncul. Klik tombol Browse

untuk mencari lokasi gambar yang akan ditampilkan.

Buka folder src dikarenakan kita ingin menampilkan gambar yang sudah kita persiapkan di

proyek kita.

Buka folder image yang berisi gambar-gambar yang telah kita persiapkan.

Contoh gunakan gambar background.png untuk kita gunakan sebagai gambar splash screen kita.

Klik tombol Ok untuk menerima semua perubahan yang baru saja kita buat.

Tampilan splash screen kita setelah ditambahkan gambar kepadanya

Setelah kita buat Visual MIDletnya, kita buka Game Design, ini adalah tampilan utama Game design

Page 14: cara membuat game sederhana menggunakan neatbeans

14

Pertama tama kita buat dulu tiled layer dengan nama Dinding dan tanah, pertama kita klik create tiled

layer, masukkan nama dan pilh gambar yang akan menjadi dinding,

Setelah memasukkan nama dan memilih gambar kemudian klik OK.

ini adalah tampilan utama dinding anda, buatlah dinding anda dengan cara memilih gambar kemudian

Page 15: cara membuat game sederhana menggunakan neatbeans

15

tekan mouse / pointer anda pada lembar dinding yang akan kita buat, jika kita ingin menambah lembar

dinding kita, kita bias klik kanan dan pilih append column, ini adalah contoh dinding yang sudah jadi,

Kemudian kita buatlah lagi tiled layer dengan nama tanah, caranya pun sama seperti saat kita membuat

dinding, ini adalah tampilan tanah yang sudah jadi

Page 16: cara membuat game sederhana menggunakan neatbeans

16

Setelah dinding dan tanah kita sudah jadi kita akan buat actor atau pemain dari game ini, dengan cara

klik create sprite masukkan nama sprite dan pilih gambar sprites aturlah gambar actor sampai menjadi

seperti ini :

Ini adalah tampilan utama saat kita mengklik OK.

Page 17: cara membuat game sederhana menggunakan neatbeans

17

Pada aktorseq001 kita buang satu frame dengan cara klik kanan remove frame lalu kita ubah namanya

dengan cara klik kanan rename sequence dan kita beri nama actormaju, pilih gambar agar bisa jalan

seirama ketika diplay, kita ulangi sampai kita buat actor mundur,akorkiri,aktorkanan,dengan caraseperti

saat kita buat actor maju, sampai seperti ini

Setelah kita membuat actor kita akan buat harta dengan caraseperti kita membuat actor tetapi hanya

ada 1 sequnce saja, contoh sperti ini

Page 18: cara membuat game sederhana menggunakan neatbeans

18

Setelah semua bahan sudah kita buat gabungkan semuanya, dengan cara klik create scene dan kita beri

nama layer, ini adalah tampilan utama layer

Untuk menambahkan dinding,tanah klik kanan pada lembar layer dan pilih tiled layer dan untuk

menmbahkan ,actor dan harta klik kanan dan pilih sprite layer, atur tanah dan dinding pada angka X dan

Page 19: cara membuat game sederhana menggunakan neatbeans

19

Y adalah 0, taruh actor dan di tanah tetapi jangan mepet sama dinding, kemudian taruh harta berjauhan

dengan actor agar game menarik, contoh :

Setelah kita buat game design kita akan buat class mainkan dengan cara:

Kita buka class Mainkan

Tampilan awal class Mainkan.

Page 20: cara membuat game sederhana menggunakan neatbeans

20

Masukkan kode program class Mainkan.

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package apps;

import java.io.IOException;

import java.util.Timer;

import java.util.TimerTask;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Image;

import javax.microedition.lcdui.game.GameCanvas;

import javax.microedition.lcdui.game.LayerManager;

import javax.microedition.lcdui.game.Sprite;

Page 21: cara membuat game sederhana menggunakan neatbeans

21

import javax.microedition.lcdui.game.TiledLayer;

/**

*

* @author chun_chun

*/

public class Mainkan extends GameCanvas implements Runnable{

private static final int SPEED =3;

private static final int MIN__BUFFER =20;

private int viewPortx =0;

private int viewPorty =0;

private byte lastDirection =-1;

private int kecepatan =3;

private boolean interrupted = true;

private VisualMIDlet midlet;

private GameDesign gd;

private LayerManager lm;

private Timer timer;

private TiledLayer Tanah, Dinding;

private Sprite Aktor, harta,harta2,harta3;

private SpriteAnimationTask Aktorgerak,animator;

private int score =0;

private Counter c;

private Image Gimeover,Menang;

Music music = new Music();

public Mainkan (VisualMIDlet midlet){

Page 22: cara membuat game sederhana menggunakan neatbeans

22

super(true);

try {

music.PlayWaveMidi("/Image/Music1.mid");

daftardesign();

} catch (Exception ex) {

ex.printStackTrace();

}

c = new Counter();

c.setActive(true);

c.setInc(-1);

c.setCount(100);

timer.scheduleAtFixedRate(c, 1000, 1000);

this.setFullScreenMode(true);

new Thread(this).start();

}

private void daftardesign() throws IOException {

this.timer = new Timer();

gd = new GameDesign();

lm =new LayerManager();

gd.updateLayerManagerForLayer(lm);

Tanah =gd.getTanah();

Dinding =gd.getDinding();

harta =gd.getHarta();

harta2 = gd.getHarta2();

Page 23: cara membuat game sederhana menggunakan neatbeans

23

harta3 = gd.getHarta3();

this.Aktor = gd.getAktor();

this.Aktor.defineReferencePixel(6, 6);

this.Aktorgerak = new SpriteAnimationTask(this.Aktor,false);

this.timer.scheduleAtFixedRate(this.Aktorgerak, 0, gd.AktorMajuDelay);

}

public boolean spriteCollides(Sprite sprite){

return sprite.collidesWith(

sprite==this.Aktor ? this.harta :this.Aktor, true)

|| sprite.collidesWith(this.Dinding, true)

|| sprite.getX() <0 || sprite.getY()<0

|| sprite.getX() > (this.Tanah.getWidth()-sprite.getWidth())

|| sprite.getY() >(this.Tanah.getHeight()-sprite.getHeight());

}

void stopPlaying(){

}

private void adjustViewport(int x, int y ){

int sx =this.Aktor.getX();

int sy = this.Aktor.getY();

int xmin = this.viewPortx + MIN__BUFFER;

int xmax = this.viewPortx + this.getWidth() - this.Aktor.getWidth() -MIN__BUFFER;

int ymin = this.viewPorty + MIN__BUFFER;

int ymax = this.viewPorty + this.getHeight() - this.Aktor.getHeight() -MIN__BUFFER;

Page 24: cara membuat game sederhana menggunakan neatbeans

24

if(sx >= xmin && sx<= xmax && sy >= ymin && sy <= ymax){

return;

}

if(this.lastDirection == LEFT && sx >= xmin){

return;

}

if(this.lastDirection == RIGHT && sx <= xmax){

return;

}

if(this.lastDirection == UP && sy >=ymin){

return;

}

if(this.lastDirection == DOWN && sy <= ymax){

return;

}

if(x < this.Tanah.getX()){

this.viewPortx = this.Tanah.getX();

}else if ( x >this.Tanah.getX() + this.Tanah.getWidth() - this.getWidth())

{ this.viewPortx = this.Tanah.getX() + this.getWidth() - this.getWidth();

}else{

this.viewPortx =x;

}

if (y <this.Tanah.getY()){

this.viewPorty = this.Tanah.getY();

}else if (y>this.Tanah.getY()+this.Tanah.getHeight()-this.getHeight()){

this.viewPorty = this.Tanah.getY()+ this.Tanah.getCellHeight()- this.getHeight();

Page 25: cara membuat game sederhana menggunakan neatbeans

25

}else{

this.viewPorty =y;

}

this.lm.setViewWindow(this.viewPortx,this.viewPorty, this.getWidth(),this.getHeight());

}

public void run(){

Graphics g = getGraphics();

while (interrupted) {

int KeyState = getKeyStates();

if ((KeyState & LEFT_PRESSED) !=0) {

if(this.lastDirection != LEFT){

this.lastDirection = LEFT;

this.Aktor.setFrameSequence(gd.AktorKanan);

this.Aktor.setTransform(Sprite.TRANS_MIRROR);

continue;

}

this.Aktorgerak.forward();

this.Aktor.move(-SPEED, 0);

if(this.spriteCollides(this.Aktor)){

this.Aktor.move(SPEED, 0);

continue;

}

this.adjustViewport(this.viewPortx - SPEED, this.viewPorty);

}else if ((KeyState & RIGHT_PRESSED) !=0){

Page 26: cara membuat game sederhana menggunakan neatbeans

26

if(this.lastDirection !=RIGHT){

this.lastDirection = RIGHT;

this.Aktor.setFrameSequence(gd.AktorKanan);

this.Aktor.setTransform(Sprite.TRANS_NONE);

continue;

}

this.Aktorgerak.forward();

this.Aktor.move(SPEED, 0);

if (this.spriteCollides(this.Aktor)){

this.Aktor.move(-SPEED, 0);

continue;

}

this.adjustViewport(this.viewPortx + SPEED, this.viewPorty);

}else if ((KeyState & UP_PRESSED) !=0){

if(this.lastDirection !=UP){

this.lastDirection =UP;

this.Aktor.setFrameSequence(gd.AktorMundur);

this.Aktor.setTransform(Sprite.TRANS_NONE);

continue;

}

this.Aktorgerak.forward();

this.Aktor.move(0, -SPEED);

if(this.spriteCollides(this.Aktor)){

this.Aktor.move(0, SPEED);

continue;

}

Page 27: cara membuat game sederhana menggunakan neatbeans

27

this.adjustViewport(this.viewPortx,this.viewPorty - SPEED);

}else if ((KeyState & DOWN_PRESSED) !=0){

if(this.lastDirection !=DOWN){

this.lastDirection =DOWN;

this.Aktor.setFrameSequence(gd.AktorMaju);

this.Aktor.setTransform(Sprite.TRANS_NONE);

continue;

}

this.Aktorgerak.forward();

this.Aktor.move(0, SPEED);

if(this.spriteCollides(this.Aktor)){

this.Aktor.move(0, -SPEED);

continue;

}

this.adjustViewport(this.viewPortx, this.viewPorty + SPEED);

}else{

this.Aktorgerak.setMoving(false);

}

this.lm.paint(g, 0, 0);

g.setColor(0, 255, 255);

g.drawString("Score:"+ score,5 ,5,0);

g.drawString("Waktu:"+ c.getCount(),165 ,5 ,0);

if(c.getCount()<=0){

stopPlaying();

Kalah();

if (c.getCount()<= 0) {

Page 28: cara membuat game sederhana menggunakan neatbeans

28

music.stopMusik();

if (c.getCount() <= 0) {

Aktor.setVisible(false);

}

}

}

if(score>= 30){

Menang();

if(score >=30){

music.stopMusik();

}

}

flushGraphics(0, 0, this.getWidth(), this.getHeight());

Nilai();

try{

Thread.sleep(20);

} catch(InterruptedException ex){

ex.printStackTrace();

}

}

}

Page 29: cara membuat game sederhana menggunakan neatbeans

29

private void Kalah(){

Graphics g = getGraphics();

this.lm.paint(g, 0, 0);

g.setColor(0, 0, 255);

g.fillRect(0, 0, getWidth(), getHeight());

g.setColor(255, 255, 255);

g.drawString("TAMAT", 10, 100, 0);

g.setColor(255, 255, 0);

g.drawString("SKOR ANDA ADALAH :" +score,10, 130, 0);

}

private void Nilai(){

if (Aktor.collidesWith(harta, true)){

harta.setVisible(false);

score += 10;

c.getCount();

}

if (Aktor.collidesWith(harta2, true)){

harta2.setVisible(false);

score += 10;

} if (Aktor.collidesWith(harta3, true)){

harta3.setVisible(false);

score += 10;

}

}

Page 30: cara membuat game sederhana menggunakan neatbeans

30

private void Menang(){

Graphics g = getGraphics();

this.lm.paint(g, 0, 0);

g.setColor(0, 0, 0);

g.fillRect(0, 0, getWidth(), getHeight());

g.setColor(0, 255, 0);

g.drawString("SELAMAT ANDA MENANG", 10, 100, 0);

g.setColor(0, 255, 0);

g.drawString("SKOR ANDA ADALAH :"+score ,10, 130, 0);

g.setColor(255, 255, 255);

g.drawString("POLITEKNIK TEGAL" , 10, 150, 0);

g.drawString("CREATED BY : WINDHIANI" , 10, 170,0);

g.drawString("3A 11040096", 10, 190,0);

}

public class SpriteAnimationTask extends TimerTask{

private boolean moving = false;

private boolean forward = false;

private Sprite sprite;

private Image image;

public SpriteAnimationTask(Sprite sprite, boolean forward){

this.sprite =sprite;

this.forward = forward;

}

public void run(){

Page 31: cara membuat game sederhana menggunakan neatbeans

31

if(!this.moving){

}

if(this.forward){

this.sprite.nextFrame();

}else{

this.sprite.prevFrame();

}

}

public void forward(){

this.forward = true;

this.moving = true;

}

public void backward(){

this.forward = false;

this.moving = true;

}

public void setMoving(boolean isMoving){

this.moving = isMoving;

}

}

}

Kemudian kita buka class Music, ini adalah tampilan utama class Music

Page 32: cara membuat game sederhana menggunakan neatbeans

32

Kita masukkan script program class music

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package apps;

import javax.microedition.media.Manager;

import javax.microedition.media.MediaException;

import javax.microedition.media.Player;

import javax.microedition.media.PlayerListener;

import javax.microedition.media.control.VolumeControl;

/**

*

* @author chun_chun

Page 33: cara membuat game sederhana menggunakan neatbeans

33

*/

public class Music implements PlayerListener{

private static Player player;

private VolumeControl vc;

public void playerUpdate( Player player, String event, Object evenData){

}

void PlayWaveMidi(String file) throws Exception{

player= Manager.createPlayer(getClass().getResourceAsStream(file),"audio/midi");

player.addPlayerListener(this);

player.setLoopCount(-1);

player.prefetch();

player.realize();

vc =(VolumeControl) player.getControl("VolumeControl");

if (vc !=null){

vc.setLevel(100);

}

player.start();

}

public void stopMusik(){

try {

player.stop();

} catch (MediaException ex) {

ex.printStackTrace();

}

}

Page 34: cara membuat game sederhana menggunakan neatbeans

34

}

Setelah kita buat class Music kemudian kita buka class counter, ini adalah tampilan utama class

counter

Maskkan Code program class Counter

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package apps;

import java.util.TimerTask;

/**

*

Page 35: cara membuat game sederhana menggunakan neatbeans

35

* @author chun_chun

*/

public class Counter extends TimerTask {

private int inc = 1;

private int count;

private boolean active;

public void run() {

if (active) {

count += inc;

}

}

public void setActive(boolean active) {

this.active = active;

}

public void setCount(int count) {

this.count = count;

}

public void setInc(int inc) {

this.inc = inc;

}

Page 36: cara membuat game sederhana menggunakan neatbeans

36

public int getCount() {

return count;

}

}

kemudian setelah program di buat coba anda jalankan .

Page 37: cara membuat game sederhana menggunakan neatbeans

37

PENUTUP

Demikian yang dapat saya paparkan mengenai cara pembuatan game java yang menjadi pokok

bahasan dalam makalah ini, tentunya masih banyak kekurangan dan kelemahannya, kerena

terbatasnya pengetahuan dan kurangnya rujukan atau referensi yang ada hubungannya dengan

judul makalah ini.

Penulis banyak berharap para pembaca yang budiman dusi memberikan kritik dan saran yang

membangun kepada penulis demi sempurnanya makalah ini dan dan penulisan makalah di

kesempatan-kesempatan berikutnya. Semoga makalah ini berguna bagi penulis pada khususnya

juga para pembaca yang budiman pada umumnya.