Membuat Game Snake Dengan Java NetBeans IDE 8.2
Membuat Game Snake Dengan Java NetBeans IDE 8.2 - Pada postingan saya kali ini, saya akan berbagi bagaimana cara membuat game sederhana dengan Java Netbeans, kita belajar membuat game java, membuat game tetris.
Bahasa pemrograman Java NetBeans Merupakan bahasa pemrograman tingkat tinggi yang berorientasi objek dan terdiri dari kelas-kelas tertentu.
Untuk merancang suatu program itu dibutuhkan software bahasa pemrograman dan keahlian.
keahlian disini membuat logika program kita sebagai manusia terfokus dalam pembuatan program
Program yang kita buat tentunya melalui prosedur pembuatan program yang seharusnya dimana harus melalui tahapan supaya programnya sempurna dan tidak merugikan pengguna.
Membuat program sangat membutuhkan metode dan algoritma begitu pun pada saat kita membuat game java atau game snake. banyak sekali macam-macam algoritma, karna dalam penerapannya untuk memecahkan sebuah kasus dan penyelesaiannya pada program memang sebagian berbeda karena tidak semuanya cocok dalam proses pembuatan program.
sudah cukup basa-basinya, sekarang kita langsung ke tahap cara membuat game snake dengan java netbeans, Checkidot!!
Baca Juga :
6. Buat sebuah package baru dan beri nama snake.
7. Buat sebuah class beri nama Arena pada package snake, dan berikut ini adalah source code Class Arena untuk mengatur alur berjalannya game snake.
8. Pada Package snake buatlah sebuah Class baru beri nama Ular, berikut ini adalah source code Class Ular untuk mengeksekusi code yang ada di Class Arena.
9. Pada package snake terdapat sebuah java form diberi nama Splash untuk menampilkan dan menjalankan game snake, dimana pada form ini yang akan menjadi aplikasi GUI.
perhatikan gambar dibawah ini.
setelah semua sudah selesai, silahkan di run program nya.
pertama akan tampil perintah untuk kita memulai game java ,game snake klik Play untuk memulai.
maka akan ada perintah untuk mengisikian nama, isikan nama anda lalu klik OK.
selanjutnya anda siap untuk bermain game java,game snake.
lebih jelasnya lihat gambar dibawah.
Baca Juga
Belajar Menggambar Bangun General PATH Menggunakan Program Java Netbeans
Demikian teman-teman yang dapat saya bagi cara membuat game sederhana, game java,game snake buat kalian semua, semoga bermanfaat dan bisa dikembangkan lagi kreatifitasnya.selamat mencoba.
semua gambaran diatas hanyalah sebuah referensi buat teman-teman semua, jika hanya ingin mengetahui dan belajar tentang cara membuat game dengan java netbeans, jika teman teman-teman tertarik untuk mencoba atau mengembangkan game sederhana ini,teman-teman bisa Ambil project nya disini. Belajar Program Jframe Pada JAVA Netbeans
sekian dan terimakasih, ikuti blog ini untuk medapatkan informasi yang bermanfaat lainnya.
Bahasa pemrograman Java NetBeans Merupakan bahasa pemrograman tingkat tinggi yang berorientasi objek dan terdiri dari kelas-kelas tertentu.

keahlian disini membuat logika program kita sebagai manusia terfokus dalam pembuatan program
Program yang kita buat tentunya melalui prosedur pembuatan program yang seharusnya dimana harus melalui tahapan supaya programnya sempurna dan tidak merugikan pengguna.
Membuat program sangat membutuhkan metode dan algoritma begitu pun pada saat kita membuat game java atau game snake. banyak sekali macam-macam algoritma, karna dalam penerapannya untuk memecahkan sebuah kasus dan penyelesaiannya pada program memang sebagian berbeda karena tidak semuanya cocok dalam proses pembuatan program.
sudah cukup basa-basinya, sekarang kita langsung ke tahap cara membuat game snake dengan java netbeans, Checkidot!!
Baca Juga :
pada game java game snake yang saya bagikan ini menggunakan sebuah database, di xampp. tentunya teman-teman sudah tau cara membuat database.
kalau belum punya software xampp , anda bisa download terlebih dahulu
selanjutnya instal , setelah instal anda buka xampp-control klik Start pada Mysql sebagai penyedia database.
1. Buat lah database dengan nama gamesnake atau sesuai keinginan anda
2. Buat tabel dengan nama score dengan tiga kolom (id,nama dan score) seperti gambar dibawah.

3. Pada program java netbeans Buatlah sebuah project baru, beri nama sesuai keinginan anda.
4. Pada program java netbeans, buat lah sebuah package dengan nama cls
5. Pada package buatlah sebuah class dan diberi nama ClassDB, ini digunakan untuk mengkoneksikan program dengan database.
berikut ini adalah source code Class ClassDB untuk menghubungkan program ke database
package cls; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.swing.JOptionPane; /** * * @author CH MUNGKUR */ public class ClassDB { private static Connection koneksi; public static Connection getkoneksi() { if (koneksi==null) { try { String url=new String(); String user=new String(); String password=new String(); url="jdbc:mysql://localhost:3306/gamesnake"; user="root"; password=""; DriverManager.registerDriver(new com.mysql.jdbc.Driver()); koneksi=DriverManager.getConnection(url,user,password); // JOptionPane.showMessageDialog(null,"Koneksi Berhasil"); }catch (SQLException t) { JOptionPane.showMessageDialog(null,"Error membuat koneksi"); } } return koneksi; } }
6. Buat sebuah package baru dan beri nama snake.
7. Buat sebuah class beri nama Arena pada package snake, dan berikut ini adalah source code Class Arena untuk mengatur alur berjalannya game snake.
package snake; /** * @author CH MUNGKUR */ import cls.ClassDB; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.Timer; import sun.audio.AudioPlayer; import sun.audio.AudioStream; import sun.awt.im.InputMethodJFrame; public class Arena extends JPanel implements ActionListener{ InputStream in; JFrame ex; private final int Lebar = 400; private final int Tinggi = 400; private final int UkuranBola = 10; private final int ALL_DOTS = 1000; private final int RAND_POS = 30; private final int DELAY = 100; private int scorenya,scoretinggi,highscore = 0; private final int x[] = new int[ALL_DOTS]; private final int y[] = new int[ALL_DOTS]; private int dots; private int minuman_x; private int minuman_y; private boolean ArahKiri = false; private boolean ArahKanan = true; private boolean ArahAtas = false; private boolean ArahBawah = false; private boolean inGame = true; String Nama=""; private Timer timer; private Image ball; private Image minuman; private Image kepala; private int key; public Arena() { nama(); addKeyListener(new TAdapter()); setBackground(Color.black); setFocusable(true); setPreferredSize(new Dimension(Lebar, Tinggi)); loadImages(); initGame(); } private void nama(){ Nama = JOptionPane.showInputDialog(this, "Nama Anda"); if (Nama == null) { System.exit(0); } else{ if(Nama.equals("")){ JOptionPane.showMessageDialog(this,"Masukkan Nama Anda"); nama(); } else{ try{ Connection c=ClassDB.getkoneksi(); Statement st=(Statement)c.createStatement(); String ceknama="Select * from score where nama = '" + Nama.toString()+"'"; ResultSet r=st.executeQuery(ceknama); if (r.next()){ return; } else{ try { st.executeUpdate("Insert into score(nama) values('" + Nama.toString() + "')"); } catch(Exception e){ System.out.println(e); } } }catch(Exception e){ System.out.println(e); } } } } private void loadImages() { ImageIcon iid = new ImageIcon("src/dot.png"); ball = iid.getImage(); ImageIcon iia = new ImageIcon("src/minum.png"); minuman = iia.getImage(); ImageIcon iih = new ImageIcon("src/kanan.png"); kepala = iih.getImage(); } private void initGame() { dots = 5; for (int z = 0; z < dots; z++) { x[z] = Lebar/20; y[z] = Tinggi/2; } LokasiMinuman(); timer = new Timer(DELAY, this); timer.start(); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); doDrawing(g); } private void updatescore(){ try { Connection c=ClassDB.getkoneksi(); Statement s=(Statement)c.createStatement(); String cektinggi="Select * from score where nama = '" + Nama.toString() +"'"; ResultSet r=s.executeQuery(cektinggi); if (r.next()){ scoretinggi = Integer.parseInt(r.getString("score")); if (scorenya <= scoretinggi){ return; } else{ String sqel = "UPDATE score Set score ='" + scorenya +"' where nama = '" + Nama.toString()+ "'"; s.executeUpdate(sqel); } } }catch(Exception e) { System.out.println(e); } } private void doDrawing(Graphics g) { if (inGame) { g.drawImage(minuman, minuman_x, minuman_y, this); for (int z = 0; z < dots; z++) { if (z == 0) { g.drawImage(kepala, x[z], y[z], this); } else { g.drawImage(ball, x[z], y[z], this); } } Toolkit.getDefaultToolkit().sync(); String msg = "Score = "+scorenya; Font small = new Font("Helvetica", Font.BOLD, 10); FontMetrics metr = getFontMetrics(small); g.setColor(Color.white); g.setFont(small); g.drawString(msg, 5, Tinggi - (Tinggi-10)); try { Connection c=ClassDB.getkoneksi(); Statement s= c.createStatement(); String sql="Select * from score where score = (select max(score) from score)"; ResultSet r=s.executeQuery(sql); if (r.next()){ highscore = Integer.parseInt(r.getString("score")); String scr = "Score Tertinggi "+r.getString("nama")+" = "+highscore; g.drawString(scr, (Lebar - metr.stringWidth(scr)) -10, Tinggi -5); } else{ String scr = "Score Tertinggi = 0"; g.drawString(scr, (Lebar - metr.stringWidth(scr)) -10, Tinggi -5); } r.close(); s.close(); }catch(Exception e) { System.out.println(e); } } else { gameOver(g); } } private void gameOver(Graphics g) { updatescore(); if (scorenya <= highscore){ String msg = "Score Anda = "+ scorenya; Font small = new Font("Helvetica", Font.BOLD, 14); FontMetrics metr = getFontMetrics(small); g.setColor(Color.white); g.setFont(small); g.drawString(msg, (Lebar - metr.stringWidth(msg)) / 2, Tinggi / 2); } else{ String msgg = "Congratulation High Score = "+ scorenya; Font small = new Font("Helvetica", Font.BOLD, 14); FontMetrics metr = getFontMetrics(small); g.setColor(Color.blue); g.setFont(small); g.drawString(msgg, (Lebar - metr.stringWidth(msgg)) / 2, Tinggi / 2); } } private void CekMinuman() { if ((x[0] == minuman_x) && (y[0] == minuman_y)) { dots++; scorenya = scorenya + 5; try { in = new FileInputStream(new File("src\\slurp.wav")); AudioStream audios = new AudioStream(in); AudioPlayer.player.start(audios); } catch(Exception e) { System.out.println(e); } LokasiMinuman(); } } private void pindah() { for (int z = dots; z > 0; z--) { x[z] = x[(z - 1)]; y[z] = y[(z - 1)]; } if (ArahKiri) { x[0] -= UkuranBola; } if (ArahKanan) { x[0] += UkuranBola; } if (ArahAtas) { y[0] -= UkuranBola; } if (ArahBawah) { y[0] += UkuranBola; } } private void CekTabrakan() { for (int z = dots; z > 0; z--) { if ((z > 5) && (x[0] == x[z]) && (y[0] == y[z])) { inGame = false; try { in = new FileInputStream(new File("src\\beep.wav")); AudioStream audios = new AudioStream(in); AudioPlayer.player.start(audios); } catch(Exception e) { } } } if (y[0] >= Tinggi) { inGame = false; try { in = new FileInputStream(new File("src\\beep.wav")); AudioStream audios = new AudioStream(in); AudioPlayer.player.start(audios); } catch(Exception e) { } } if (y[0] < 0) { inGame = false; try { in = new FileInputStream(new File("src\\beep.wav")); AudioStream audios = new AudioStream(in); AudioPlayer.player.start(audios); } catch(Exception e) { } } if (x[0] >= Lebar) { inGame = false; try { in = new FileInputStream(new File("src\\beep.wav")); AudioStream audios = new AudioStream(in); AudioPlayer.player.start(audios); } catch(Exception e) { } } if (x[0] < 0) { inGame = false; try { in = new FileInputStream(new File("src\\beep.wav")); AudioStream audios = new AudioStream(in); AudioPlayer.player.start(audios); } catch(Exception e) { } } if(!inGame) { timer.stop(); } } private void LokasiMinuman() { int r = (int) (Math.random() * RAND_POS); minuman_x = ((r * UkuranBola)); r = (int) (Math.random() * RAND_POS); minuman_y = ((r * UkuranBola)); } @Override public void actionPerformed(ActionEvent e) { if (inGame) { CekMinuman(); CekTabrakan(); pindah(); } repaint(); } private class TAdapter extends KeyAdapter { @Override public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if ((key == KeyEvent.VK_LEFT) && (!ArahKanan)) { ArahKiri = true; ArahAtas = false; ArahBawah = false; ImageIcon kiri = new ImageIcon("src/kiri.png"); kepala = kiri.getImage(); } if ((key == KeyEvent.VK_RIGHT) && (!ArahKiri)) { ArahKanan = true; ArahAtas = false; ArahBawah = false; ImageIcon kanan = new ImageIcon("src/kanan.png"); kepala = kanan.getImage(); } if ((key == KeyEvent.VK_UP) && (!ArahBawah)) { ArahAtas = true; ArahKanan = false; ArahKiri = false; ImageIcon atas = new ImageIcon("src/atas.png"); kepala = atas.getImage(); } if ((key == KeyEvent.VK_DOWN) && (!ArahAtas)) { ArahBawah = true; ArahKanan = false; ArahKiri = false; ImageIcon bawah = new ImageIcon("src/bawah.png"); kepala = bawah.getImage(); } if ((key == KeyEvent.VK_P) ) { if(timer.isRunning()){ timer.stop(); } else{ timer.start(); } } } } }
8. Pada Package snake buatlah sebuah Class baru beri nama Ular, berikut ini adalah source code Class Ular untuk mengeksekusi code yang ada di Class Arena.
package snake; /** * * @author CH MUNGKUR */ import javax.swing.ImageIcon; import javax.swing.JFrame; public class Ular extends JFrame{ public Ular() { add(new Arena()); setResizable(false); pack(); setTitle("Snake"); ImageIcon icon = new ImageIcon("src/snake.png"); setIconImage(icon.getImage()); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
9. Pada package snake terdapat sebuah java form diberi nama Splash untuk menampilkan dan menjalankan game snake, dimana pada form ini yang akan menjadi aplikasi GUI.
perhatikan gambar dibawah ini.

10. source code yang terdapat pada form Splash ini sangat simpel dan sederhana karena tidak terlalu banyak komponen, berikut ini source code pada form Splash.
package snake; import javax.swing.ImageIcon; import javax.swing.JFrame; /** * * @author CH MUNGKUR */ public class Splash extends javax.swing.JFrame { public Splash() { initComponents(); setLocationRelativeTo(this); } private void formWindowActivated(java.awt.event.WindowEvent evt) { ImageIcon icon = new ImageIcon("src/snake.png"); setIconImage(icon.getImage()); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); JFrame ex = new Ular(); ex.setVisible(true); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Splash().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel1; // End of variables declaration }
setelah semua sudah selesai, silahkan di run program nya.
pertama akan tampil perintah untuk kita memulai game java ,game snake klik Play untuk memulai.
maka akan ada perintah untuk mengisikian nama, isikan nama anda lalu klik OK.
selanjutnya anda siap untuk bermain game java,game snake.
lebih jelasnya lihat gambar dibawah.
Baca Juga
Belajar Menggambar Bangun General PATH Menggunakan Program Java Netbeans
semua gambaran diatas hanyalah sebuah referensi buat teman-teman semua, jika hanya ingin mengetahui dan belajar tentang cara membuat game dengan java netbeans, jika teman teman-teman tertarik untuk mencoba atau mengembangkan game sederhana ini,teman-teman bisa Ambil project nya disini. Belajar Program Jframe Pada JAVA Netbeans
sekian dan terimakasih, ikuti blog ini untuk medapatkan informasi yang bermanfaat lainnya.
0 Response to " Membuat Game Snake Dengan Java NetBeans IDE 8.2"
Post a Comment