Membuat Game Tebak Gambar Sederhana dengan Java NetBeans dan MySQL
Game yang gw buat adalah game berhitung sederhana untuk anak – anak. Cara menggunakan gamenya adalah dengan memilih gambar sebagai jawaban yang benar dari tiga gambat yang ada. Ada 5 soal dalam setiap permainan, bila jawaban benar skor akan bertambah 20 poin, tetapi bila jawabannya salah maka skor tidak akan berkurang tetapi jumlah soal tidak akan bertambah.
Oke
sebelum buat game ini pastikan gambar yang akan ditamplikan dalam
program ini sudah siap. Simpan semua gambar yang akan dipakai dalam satu
folder, kemudian simpan folder di drive yang diinginkan.
Langkah pertama yang harus dikerjakan adalah, buat database dengan
MySQL, dengan perintah berikut (contoh database yang gw buat namanya
calistung) :
CREATE DATABASE CALISTUNG;
Kemudian
buat table dalam database calistung (contoh table yang dibuat adalah
hitung dan soal_lat), dengan memasukkan perintah berikut :
CREATE
TABLE hitung (id_soalhit VARCHAR(5) NOT NULL, a_hit VARCHAR(10) NOT
NULL, b_hit VARCHAR(10) NOT NULL, c_hit VARCHAR(10) NOT NULL, PRIMARY
KEY(id_soalhit));
Setelah
itu buat table soal_lat dengan perintah yang sama seperti diatas, Cuma
diubah saja nama fieldnya. Untuk field – field yang gw pake untuk table
soal_lat adalah id_soal (primary key), soal_lat, kunci_jawab. Format
yang akan digunakan dalam pembuatan table bisa dilakukan sesuai
keinginan kalian. Misalnya dengan menghilangkan table soal_lat sedangkan
field dalam table soal_lat dibuat dalam table hitung. Sekedar info aja
masalah ini sempat dipermasalahkan waktu gw sidang PI, terus terang gw
buat jadi dua table supaya ada ERD-nya tapi malah bikin gw kerepotan pas
sidang (wkwkwkwkwk..........^_^V).
Setelah table selesai dibuat masukan record – recordnya. Perintahnya :
INSERT INTO hitung VALUES (‘HTG01’, ‘bola2.jpg’, ‘bola3.jpg’, ‘bola4.jpg’);
Masukkan
recordnya sebanyak yang kalian inginkan. Isi dalam record terserah
kalian. Untuk isian yang ada .jpg – nya di gunakan untuk memanggil file
gambar, jadi sesuaikan isi recordnya dengan nama file gambar yang akan
dipanggil.
Lakukan hal yang sama pada table soal_lat, tinggal diubah nama
table-nya dan isi values – nya saja dalam perintahnya. Contohnya seperti
ini :
Setelah
selesai dengan database, sekarang buka NetBeans-nya lalu buat project
baru misalnya namanya PI_APLIKASI_CALISTUNG, lalu masukkan source
classpath. Caranya klik kanan pada project PI_APLIKASI_CALISTUNG – pilih
properties – pada source package folder pilih add folder – kemudian
pilih folder classpath-nya.
Setelah
itu buat frame baru, misalnya dengan nama FrameLatHtTG. Lalu bangun
bentuk GUI – nya sesuai keinginan kalian, contohnya seperti berikut :
Untuk
menampilkan soalnya sebaiknya gunakan text area, pada propertiesnya
hilang tanda centang pada edittable. Untuk menampilkan gambar –
gambarnya gunakan checkbox (bisa juga radio button karena hanya boleh
memilih satu, tetapi gw lebih milih pake checkbox, gak tau kenapa?
Hehehehe....). Klik semua checkbox (gunakan ctrl) lalu tambahkan event
pada actionPerformed dengan nama allActionPerformed.
Dalam jendela inspector klik kanan pada other components – pilih Add From Palette – pilih Swing – pilih JoptionPane.
Kemudian masuk ke bagian source dan masukan package berikut :
import javax.swing.*;
import javax.swing.ImageIcon;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
Selanjutnya masukan perintah berikut dibawah public class FrameLatHtTG extends javax.swing.JFrame {
Connection konek;
String no_id;
String soal,pila,pilb,pilc,knjwb;
int no_soal = 1, main = 0;
int nilai;
String kode = null;
java.net.URL url;
javax.swing.ImageIcon gambar[];
/** Creates new form FrameLatHtTG */
public FrameLatHtTG() {
kondb();
setTitle("Latihan Berhitung - Tebak Gambar");
setResizable(false);
initComponents();
}
private void kondb() {
try{
Class.forName("com.mysql.jdbc.Driver");
try{
String url ="jdbc:mysql://localhost:3306/calistung";
konek =DriverManager.getConnection(url);
System.out.println("Proses Koneksi Sukses");
}
catch(SQLException sqle){
System.out.println("Proses Koneksi Gagal");
}
}
catch (ClassNotFoundException cnfe){
System.err.println("Error loading driver: " + cnfe);
}
}
private void sqlquery() {
no_soal = (int)(Math.random()*23);
if (no_soal < 10) {
kode = "HTG0";
}
else {
kode = "HTG";
}
try {
String sql2 = "Select * from hitung a, soal_lat b where a.id_soalhit = b.id_soal and a.id_soalhit = '"+kode+no_soal+"'";
Statement stmt = konek.createStatement();
ResultSet rslt = stmt.executeQuery (sql2);
while (rslt.next()) {
soal = rslt.getString("b.soal_lat");
pila = rslt.getString("a.a_hit");
pilb = rslt.getString("a.b_hit");
pilc = rslt.getString("a.c_hit");
knjwb = rslt.getString("kunci_jawab");
jTextArea1.setText(soal);
String namaGambar[] = {pila,pilb,pilc};
gambar = new javax.swing.ImageIcon[3];
for (int x = 0; x < 3; x++) {
url = getClass().getResource("/"+namaGambar[x]);
gambar[x] = new javax.swing.ImageIcon(url);
}
a.setIcon(gambar[0]);
b.setIcon(gambar[1]);
c.setIcon(gambar[2]);
}
} catch (Exception e) {
System.out.println("Gagal lagi" + e);
}
}
public void loopingmain() {
main++;
if (main == 5) {
a.setEnabled(false);
b.setEnabled(false);
c.setEnabled(false);
int keluar = jOptionPane1.showConfirmDialog(null,"Adik - adik sudah mengerjakan 5 soal\n" +
"Apakah adik - adik mau latihan lagi ?","Main Lagi",
jOptionPane1.YES_NO_OPTION);
if (keluar == 0) {
dispose();
new FrameLatHtTG().setVisible(true);
}
else {
dispose();
new FrameLathit().setVisible(true);
}
}
sqlquery();
}
Setelah itu masukan perintah dibawah ini di dalam event berikut :
private void allActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
nilai = Integer.valueOf(lbnilai.getText());;
String act = evt.getActionCommand();
if (a.isSelected()==true) {
if (pila.equalsIgnoreCase(knjwb)) {
nilai += 20;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
else {
nilai += 0;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
a.setSelected(false);
}
else if (b.isSelected()==true) {
if (pilb.equalsIgnoreCase(knjwb)){
nilai += 20;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
else {
nilai += 0;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
b.setSelected(false);
}
else if (c.isSelected()==true) {
if (pilc.equalsIgnoreCase(knjwb)){
nilai += 20;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
else {
nilai += 0;
lbnilai.setText(String.valueOf(nilai));
loopingmain();
}
c.setSelected(false);
}
Setelah
selesai kembali ke bagian design lalu dalam jendela inspector klik
kanan pada JFramr – pilih Event – pilih Window – pilih windowActived.
Lalu tambahkan perintah berikut dalam event formWindowActivated :
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
sqlquery();
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int x = (dim.width - getSize().width)/2;
int y = (dim.height - getSize().height) / 2;
setLocation(x,y);
}
kita juga punya nih artikel mengenai 'Java Netbeans', silahkan dikunjungi dan dibaca , berikut linknya
BalasHapushttp://repository.gunadarma.ac.id/bitstream/123456789/4842/1/DOKUMEN%20PRESENTASI.pdf
terimakasih
ko gak bisa buka situs y
BalasHapus