Anda di halaman 1dari 16

DISCLAIMER

Seluruh dokumen E-Trik di dalam CD ini dapat digunakan


dan disebarkan secara bebas untuk tujuan belajar bukan
komersial (non-prot), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright
yang disertakan dalam dokumen. Tidak diperbolehkan
melakukan penulisan ulang, kecuali mendapatkan ijin
tertulis terlebih dahulu dari Penerbit Maxikom.
1
E-Trik JAVA
Game Sederhana
IRAWAN
e-mail : irawan_cyber@yahoo.com.sg
Penerbit Maxikom
J l. Residen H. Abdul Rozak No. 33 B5-B6
Palembang 30114.
e-mail: maxi@maxikom.co.id
Fax. (0711) 717598
www.maxikom.co.id
2
Game Sederhana
Pada E-Trik berikut ini kita akan membuat game sederhana dengan JCreatorLE
3.0. Pada game ini pemain di ajak untuk mencari gambar yang sama dengan
jumlah mencoba yang seminimal mungkin. Yang paling sedikit jumlah
mencobanya adalah pemain paling tinggi nilainya. Pada game sederhana ini
kita akan menerapkan logika bagaimana menampilkan gambar secara acak dan
menggunakan file dengan format gambar seperti jpg ,bmp, serta format gambar
lainnya pada J ava.
A Menyiapkan Program.
1. Sebelum membuat program J ava, jangan lupa untuk menginstall J RE
dan J DK agar program J ava bisa dijalankan pada Windows anda.
Dalam pembahasan ini kita akan menggunakan J RE dan J DK versi
1.6.0 yang bisa anda download di http://www.java.com.
2. Buka program J Creator anda klik Tombol Start pada
Windows Taskbar. Kemudian klik Programs | JCreatorV3 LE |
JCreator LE, lihat Gambar 2.
Gambar 1 Tampilan Program
Game Sederhana
3
Copyright Maxikom, 2007
3. Kemudian kita akan membuat Class Java dengan nama CariGambar.
Klik Menu File | New | File seperti Gambar 3.
4. Setelah itu akan muncul kotak dialog File Wizard, lalu pilih Java File
kemudian klik Tombol . Lihat Gambar 4.
Gambar 3 Membuat File Baru
1
2
3
Gambar 2 Membuka Aplikasi JCreator 3.0 LE
1
2
3
4
Game Sederhana
4
Copyright Maxikom, 2007
5. Beri nama file dengan nama CariGambar, kemudian klik Tombol
untuk menentukan lokasi tempat anda menyimpan file. Lihat
Gambar 5.
6. J ika sudah maka tampilannya akan seperti Gambar 6
Gambar 4 Membuat File Java
Pilih J ava File
Klik Next
Gambar 5 Menyimpan File CariGambar.java
1
2
Game Sederhana
5
Copyright Maxikom, 2007
7. Dalam pembuatan program ini dibutuhkan 13 File gambar dengan
format jpg yang nantinya 12 gambar akan digunakan sebagai Image
dalam game dan 1 gambar sebagai Icon. Untuk Icon pilihlah sebuah
File gambar dengan format jpg. Kemudian ubah ukurannya menjadi
100x100 Pixel dengan menggunakan program Image Editor apa saja.
Kemudian beri nama File gambar tersebut dengan nama background.
Pada contoh gambar berikut File di Resize dan di Rename dengan
menggunakan program ACDSee. Lihat Gambar 7.
Gambar 6 TampilanFile Selesai di Simpan
J udul File
J endela Kode
Gambar 7 Tampilan File background.jpg
Program ACDSee
Beri nama background
Ukuran =100x100
Contoh gambar
Game Sederhana
6
Copyright Maxikom, 2007
8. Untuk Image pilihlah 12 gambar format jpg yang berbeda dengan
ukuran yang sama seperti File background. Kemudian beri nama
keduabelas gambar tersebut dengan nama image1-image12 (tanpa
spasi). Lihat Gambar 8.
9. Kemudian simpanlah gambar-gambar yang sudah di Edit tadi ke dalam
Folder yang sama dengan File CariGambar.java. Lihat Gambar 9.
Gambar 8 Tampilan File image1.jpg-image12.jpg
Gambar 9 File-File Disimpan Dalam Satu Folder
Game Sederhana
7
Copyright Maxikom, 2007
B Listing Program.
1. Pada Jendela KodeFileCariGambar.Java ketikkan kode program
berikut ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
public class CariGambar extends javax.swing.JFrame
implements ActionListener {
int[] tilemap = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12};
JToggleButton[] cards = new JToggleButton[24];
Object card1Object = null;
Object card2Object = null;
String card1Image = "";
String card2Image = "";
int card1Num = 0;
int card2Num = 0;
int cardsSelected = 0;
int cardsLeft = 24;
int numTries = 0;
public CariGambar() {
initComponents();
shuffleCards();
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.
WindowConstants.EXIT_ON_CLOSE);
setSize(800,600);
setTitle("Cari Gambar");
JPanel buttonPane = new JPanel();
JPanel cardPane = new JPanel();
buttonPane.setLayout(new GridBagLayout());
GridBagConstraints b = new GridBagConstraints();
b.fill = GridBagConstraints.HORIZONTAL;
cardPane.setLayout(new GridLayout(6,6));
numTriesLabel = new JLabel();
b.gridx = 0;
b.gridy = 1;
buttonPane.add(numTriesLabel,b);
replayButton = new JButton();
b.gridx = 0;
b.gridy = 0;
Game Sederhana
8
Copyright Maxikom, 2007
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
buttonPane.add(replayButton,b);
exitButton = new JButton();
b.gridx = 1;
b.gridy = 0;
buttonPane.add(exitButton,b);
numTriesLabel.setText("Total Coba: "
+ numTries +" x");
replayButton.setMnemonic('S');
replayButton.setText("Acak Gambar");
replayButton.setToolTipText("Acak Gambar");
replayButton.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed
(java.awt.event.ActionEvent evt) {
replayButtonActionPerformed(evt);
}
});
exitButton.setMnemonic('x');
exitButton.setText("Keluar");
exitButton.setToolTipText("Keluar");
exitButton.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed
(java.awt.event.ActionEvent evt) {
exitButtonActionPerformed(evt);
}
});
for (int i = 0; i < cards.length; i++)
{
cards[i] = new JToggleButton("Card: " + i);
cards[i].addActionListener(this);
cards[i].setSize(100,100);
cards[i].setIcon(new ImageIcon
(".\\background.jpg"));
cards[i].setText("");
cardPane.add(cards[i]);
}
getContentPane().add(buttonPane,
BorderLayout.SOUTH);
getContentPane().add(cardPane,
BorderLayout.NORTH);
}
private void replayButtonActionPerformed
(java.awt.event.ActionEvent evt) {
Game Sederhana
9
Copyright Maxikom, 2007
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
shuffleCards();
}
private void shuffleCards() {
int[] temparray = new int[3];
for (int shuffle = 0; shuffle < 5; shuffle++){
for (int x = 0; x < tilemap.length; x++) {
temparray[0] = (int)Math.floor
(Math.random()*24);
temparray[1] = tilemap[temparray[0]];
temparray[2] = tilemap[x];
tilemap[x] = temparray[1];
tilemap[temparray[0]] = temparray[2];
}
}
for (int i = 0; i < cards.length; i++) {
cards[i].setSelectedIcon(new ImageIcon
(".\\image"+tilemap[i]+".jpg"));
cards[i].setText("" + i);
cards[i].setEnabled(true);
cards[i].setVisible(true);
cards[i].setSelected(false);
}
cardsLeft = 24;
numTries = 0;
numTriesLabel.setText("Total Coba: "
+ numTries+" x");
}
public void actionPerformed
(java.awt.event.ActionEvent e)
{
int iconMarker = 0;
int nameMarker = 0;
String card1String = "";
String card2String = "";
String nameText = "";
cardsSelected++;
if (cardsSelected == 3) {
card1Object = null;
cards[card1Num].setSelected(false);
card2Object = null;
cards[card2Num].setSelected(false);
cardsSelected = 1;
}
if (card1Object == null) {
Game Sederhana
10
Copyright Maxikom, 2007
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
card1Object = e.getSource();
card1String = card1Object.toString();
iconMarker = card1String.lastIndexOf
(",selectedIcon=");
nameMarker = card1String.lastIndexOf
(",text=");
card1Image = card1String.substring(iconMarker
+14,nameMarker);
nameText = card1String.substring(nameMarker
+6,card1String.length()-1);
card1Num = Integer.parseInt(nameText);
}
else if (card2Object == null) {
card2Object = e.getSource();
card2String = card2Object.toString();
iconMarker = card2String.lastIndexOf
(",selectedIcon=");
nameMarker = card2String.lastIndexOf
(",text=");
card2Image = card2String.substring(iconMarker
+14,nameMarker);
nameText = card2String.substring(nameMarker
+6,card2String.length()-1);
card2Num = Integer.parseInt(nameText);
}
if (card1Object != null && card2Object != null) {
numTries++;
numTriesLabel.setText("Total Coba: " + numTries
+" x");
if (card1Image.equals(card2Image) &&
(card1Num != card2Num)) {
cards[card1Num].setVisible(false);
cards[card2Num].setVisible(false);
card1Object = null;
card2Object = null;
cardsLeft -= 2;
cardsSelected = 0;
}
}
if (cardsLeft == 0) {
getRootPane().setDefaultButton(replayButton);
numTriesLabel.setText
("Selamat! Anda Selesai Dalam : "
+ numTries+" x Mencoba");
Game Sederhana
11
Copyright Maxikom, 2007
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
}
}
private void exitButtonActionPerformed(java.awt.event
.ActionEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(
new Runnable() {
public void run() {
new CariGambar().setVisible(true);
}
});
}
private javax.swing.JPanel cardPane;
private javax.swing.JButton exitButton;
private javax.swing.JButton replayButton;
private javax.swing.JLabel numTriesLabel;
}
Keterangan :
- Baris 1-4 merupakan fungsi J ava API yang akan kita gunakan untuk memanggil
kompenen-komponen GUI(Graphical User Interface) J ava.
- Baris 5-6 mendeklarasikan class Carigambar.
- Baris 7-22 mendeklarasikan Variabel dan Object yang akan digunakan.
- Baris 23-82 kode-kode pengaturan tampilan dan posisi Object yang digunakan.
- Baris 83-86 memanggil Method shuffleCards.
- Baris 87-111 kode Method shuffleCards dengan logika Array yang berfungsi
untuk mengacak file image1-12 kemudian menampilkannya kembali.
- Baris 112-174 merupakan kode-kode logika dalam game AcakGambar.
Pada Baris 115-120 kode-kode untuk mengosongkan nilai Variabel.
Pada Baris 121-127 kode-kode logika jika pemain mengklik gambar ke-3 maka
secara otomatis gambar 1dan 2 dianggap tidak terseleksi, karena pemain hanya
boleh melihat 2 gambar saja.
- Baris 128-153 kode-kode logika jika salah satu dari sepasang gambar yang dipilih
tidaklah sama.
- Baris 154-167 kode-kode logika jika semua gambar dari sepasang gambar yang
dipilih adalah gambar yang sama.
- Baris 168-174 kode-kode logika jika semua gambar berhasil dibuka, maka game
selesai.
Game Sederhana
12
Copyright Maxikom, 2007
2. Kemudian klik Icon Compile pada Menu Toolbar agar program
CariGambar.java diubah menjadi CariGambar.class. Lihat Gambar10.
C Menjalankan Program.
1. Untuk menjalankan program klik Icon Execute File pada Menu
Toolbar lihat Gambar 11.
Keterangan :
- Baris 175-178 kode-kode perintah untuk keluar dari program ketika Tombol Exit
di klik.
- Baris 179-186 kode-kode perintah untuk menampilkan File-file gambar pada saat
program dijalankan.
- Baris 187-190 kode-kode perintah memberi nama pada komponen-komponen
Swing.
- Baris 191 akhir blok kode class CariGambar.
Gambar 10 Meng-Compile kode FileCariGambar.java
Klik Compile
Status Compile
Game Sederhana
13
Copyright Maxikom, 2007
2. Tampilan program akan terlihat seperti Gambar 12.
3. Untuk mengulang atau memulai permainan klik Tombol Acak Gambar.
Jika ingin berhenti klik Tombol Keluar. Lihat Gambar 13.
Gambar 11 Menjalankan Program
Klik Execute File
Gambar 12 Tampilan Program CariGambar
Game Sederhana
14
Copyright Maxikom, 2007
4. Untuk bermain klik keduapuluhempat gambar yang ada dan carilah
sepasang gambar yang sama. Lihat Gambar 14.
Memulai / Mengulang Game
Berhenti
Gambar 13 Fungsi Tombol
Gambar 14 Cara Bermain
Game Sederhana
15
Copyright Maxikom, 2007
5. J ika berhasil menemukan sepasang gambar yang sama, maka secara
otomatis sepasang gambar tersebut hilang dari tampilan. Lihat
Gambar 15.
6. Jika berhasil menyelesaikan game, maka akan nilai jumlah berapa kali
anda mencoba membuka sepasang gambar. Semakin kecil jumlah
mencoba nya berarti semakin tinggi nilainya. Lihat Gambar 16.
Gambar 15 Tampilan Menemukan Gambar Yang Sama
Gambar 16 Tampilan Game Selesai
J umlah Mencoba

Anda mungkin juga menyukai