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-profit), 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.
E-Trik JAVA

Game Sederhana

IRAWAN
e-mail : irawan_cyber@yahoo.com.sg

Penerbit Maxikom
Jl. Residen H. Abdul Rozak No. 33 B5-B6
Palembang 30114.
e-mail: maxi@maxikom.co.id
Fax. (0711) 717598

www.maxikom.co.id

1
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 Java.

Gambar 1 Tampilan Program

A Menyiapkan Program.

1. Sebelum membuat program Java, jangan lupa untuk menginstall JRE


dan JDK agar program Java bisa dijalankan pada Windows anda.
Dalam pembahasan ini kita akan menggunakan JRE dan JDK versi
1.6.0 yang bisa anda download di http://www.java.com.

2. Buka program JCreator anda klik Tombol Start pada


Windows Taskbar. Kemudian klik Programs | JCreatorV3 LE |
JCreator LE, lihat Gambar 2.

2
Game Sederhana Copyright © Maxikom, 2007

3 4

1
Gambar 2 Membuka Aplikasi JCreator 3.0 LE

3. Kemudian kita akan membuat Class Java dengan nama ‘CariGambar’.


Klik Menu File | New | File seperti Gambar 3.

1
2 3

Gambar 3 Membuat File Baru

4. Setelah itu akan muncul kotak dialog File Wizard, lalu pilih Java File
kemudian klik Tombol . Lihat Gambar 4.

3
Game Sederhana Copyright © Maxikom, 2007

Pilih Java File

Klik Next

Gambar 4 Membuat File Java

5. Beri nama file dengan nama CariGambar, kemudian klik Tombol


untuk menentukan lokasi tempat anda menyimpan file. Lihat
Gambar 5.

Gambar 5 Menyimpan File CariGambar.java

6. Jika sudah maka tampilannya akan seperti Gambar 6

4
Game Sederhana Copyright © Maxikom, 2007

Judul File

Jendela Kode

Gambar 6 TampilanFile Selesai di Simpan


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.

Program ACDSee

Contoh gambar

Beri nama “background”

Ukuran = 100x100

Gambar 7 Tampilan File background.jpg

5
Game Sederhana 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.

Gambar 8 Tampilan File image1.jpg-image12.jpg

9. Kemudian simpanlah gambar-gambar yang sudah di Edit tadi ke dalam


Folder yang sama dengan File CariGambar.java. Lihat Gambar 9.

Gambar 9 File-File Disimpan Dalam Satu Folder

6
Game Sederhana Copyright © Maxikom, 2007
B Listing Program.

1. Pada Jendela Kode File CariGambar.Java ketikkan kode program


berikut ini :
import java.io.*;
1
import java.awt.*;
2
import javax.swing.*;
3
import
4 java.awt.event.ActionListener;
5public class CariGambar extends javax.swing.JFrame
6implements ActionListener {
7 int[] tilemap = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
8 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12};
9 JToggleButton[] cards = new JToggleButton[24];
10 Object card1Object = null;
11 Object card2Object = null;
12 String card1Image = "";
13 String card2Image = "";
14 int card1Num = 0;
15 int card2Num = 0;
16 int cardsSelected = 0;
17 int cardsLeft = 24;
18 int numTries = 0;
19 public CariGambar() {
20 initComponents();
21 shuffleCards();
22 }
23 private void initComponents() {
24 setDefaultCloseOperation(javax.swing.
25 WindowConstants.EXIT_ON_CLOSE);
26 setSize(800,600);
27 setTitle("Cari Gambar");
28 JPanel buttonPane = new JPanel();
29 JPanel cardPane = new JPanel();
30 buttonPane.setLayout(new GridBagLayout());
31 GridBagConstraints b = new GridBagConstraints();
32 b.fill = GridBagConstraints.HORIZONTAL;
33 cardPane.setLayout(new GridLayout(6,6));
34 numTriesLabel = new JLabel();
35 b.gridx = 0;
36 b.gridy = 1;
37 buttonPane.add(numTriesLabel,b);
38 replayButton = new JButton();
39 b.gridx = 0;
40 b.gridy = 0;

7
Game Sederhana Copyright © Maxikom, 2007

41 buttonPane.add(replayButton,b);
42 exitButton = new JButton();
43 b.gridx = 1;
44 b.gridy = 0;
45 buttonPane.add(exitButton,b);
46 numTriesLabel.setText("Total Coba: "
47 + numTries +" x");
48 replayButton.setMnemonic('S');
49 replayButton.setText("Acak Gambar");
50 replayButton.setToolTipText("Acak Gambar");
51 replayButton.addActionListener(
52 new java.awt.event.ActionListener() {
53 public void actionPerformed
54 (java.awt.event.ActionEvent evt) {
55 replayButtonActionPerformed(evt);
56 }
57 });
58 exitButton.setMnemonic('x');
59 exitButton.setText("Keluar");
60 exitButton.setToolTipText("Keluar");
61 exitButton.addActionListener(
62 new java.awt.event.ActionListener() {
63 public void actionPerformed
64 (java.awt.event.ActionEvent evt) {
65 exitButtonActionPerformed(evt);
66 }
67 });
68 for (int i = 0; i < cards.length; i++)
69 {
70 cards[i] = new JToggleButton("Card: " + i);
71 cards[i].addActionListener(this);
72 cards[i].setSize(100,100);
73 cards[i].setIcon(new ImageIcon
74 (".\\background.jpg"));
75 cards[i].setText("");
76 cardPane.add(cards[i]);
77 }
78 getContentPane().add(buttonPane,
79 BorderLayout.SOUTH);
80 getContentPane().add(cardPane,
81 BorderLayout.NORTH);
82 }
83 private void replayButtonActionPerformed
84 (java.awt.event.ActionEvent evt) {

8
Game Sederhana Copyright © Maxikom, 2007

85shuffleCards();
86 }
87 private void shuffleCards() {
88 int[] temparray = new int[3];
89 for (int shuffle = 0; shuffle < 5; shuffle++){
90 for (int x = 0; x < tilemap.length; x++) {
91 temparray[0] = (int)Math.floor
92 (Math.random()*24);
93 temparray[1] = tilemap[temparray[0]];
94 temparray[2] = tilemap[x];
95 tilemap[x] = temparray[1];
96 tilemap[temparray[0]] = temparray[2];
97 }
98 }
99 for (int i = 0; i < cards.length; i++) {
100 cards[i].setSelectedIcon(new ImageIcon
101 (".\\image"+tilemap[i]+".jpg"));
102 cards[i].setText("" + i);
103 cards[i].setEnabled(true);
104 cards[i].setVisible(true);
105 cards[i].setSelected(false);
106 }
107 cardsLeft = 24;
108 numTries = 0;
109 numTriesLabel.setText("Total Coba: "
110 + numTries+" x");
111 }
112 public void actionPerformed
113 (java.awt.event.ActionEvent e)
114 {
115 int iconMarker = 0;
116 int nameMarker = 0;
117 String card1String = "";
118 String card2String = "";
119 String nameText = "";
120 cardsSelected++;
121 if (cardsSelected == 3) {
122 card1Object = null;
123 cards[card1Num].setSelected(false);
124 card2Object = null;
125 cards[card2Num].setSelected(false);
126 cardsSelected = 1;
127 }
128 if (card1Object == null) {

9
Game Sederhana Copyright © Maxikom, 2007

129 card1Object = e.getSource();


130 card1String = card1Object.toString();
131 iconMarker = card1String.lastIndexOf
132 (",selectedIcon=");
133 nameMarker = card1String.lastIndexOf
134 (",text=");
135 card1Image = card1String.substring(iconMarker
136 +14,nameMarker);
137 nameText = card1String.substring(nameMarker
138 +6,card1String.length()-1);
139 card1Num = Integer.parseInt(nameText);
140 }
141 else if (card2Object == null) {
142 card2Object = e.getSource();
143 card2String = card2Object.toString();
144 iconMarker = card2String.lastIndexOf
145 (",selectedIcon=");
146 nameMarker = card2String.lastIndexOf
147 (",text=");
148 card2Image = card2String.substring(iconMarker
149 +14,nameMarker);
150 nameText = card2String.substring(nameMarker
151 +6,card2String.length()-1);
152 card2Num = Integer.parseInt(nameText);
153 }
154 if (card1Object != null && card2Object != null) {
155 numTries++;
156 numTriesLabel.setText("Total Coba: " + numTries
157 +" x");
158 if (card1Image.equals(card2Image) &&
159 (card1Num != card2Num)) {
160 cards[card1Num].setVisible(false);
161 cards[card2Num].setVisible(false);
162 card1Object = null;
163 card2Object = null;
164 cardsLeft -= 2;
165 cardsSelected = 0;
166 }
167 }
168 if (cardsLeft == 0) {
169 getRootPane().setDefaultButton(replayButton);
170 numTriesLabel.setText
171 ("Selamat! Anda Selesai Dalam : "
172 + numTries+" x Mencoba");

10
Game Sederhana Copyright © Maxikom, 2007

173}
174 }
175 private void exitButtonActionPerformed(java.awt.event
176 .ActionEvent evt) {
177 System.exit(0);
178 }
179 public static void main(String args[]) {
180 java.awt.EventQueue.invokeLater(
181 new Runnable() {
182 public void run() {
183 new CariGambar().setVisible(true);
184 }
185 });
186 }
187 private javax.swing.JPanel cardPane;
188 private javax.swing.JButton exitButton;
189 private javax.swing.JButton replayButton;
190 private javax.swing.JLabel numTriesLabel;
191 }

Keterangan :
- Baris 1-4 merupakan fungsi Java API yang akan kita gunakan untuk memanggil
kompenen-komponen GUI(Graphical User Interface) Java.
- 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.

11
Game Sederhana Copyright © Maxikom, 2007

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.

2. Kemudian klik Icon Compile pada Menu Toolbar agar program


CariGambar.java diubah menjadi CariGambar.class. Lihat Gambar10.

Klik Compile

Status Compile

Gambar 10 Meng-Compile kode FileCariGambar.java

C Menjalankan Program.

1. Untuk menjalankan program klik Icon Execute File pada Menu


Toolbar lihat Gambar 11.
12
Game Sederhana Copyright © Maxikom, 2007

Klik Execute File

Gambar 11 Menjalankan Program

2. Tampilan program akan terlihat seperti Gambar 12.

Gambar 12 Tampilan Program CariGambar

3. Untuk mengulang atau memulai permainan klik Tombol Acak Gambar.


Jika ingin berhenti klik Tombol Keluar. Lihat Gambar 13.

13
Game Sederhana Copyright © Maxikom, 2007

Memulai / Mengulang Game Berhenti


Gambar 13 Fungsi Tombol

4. Untuk bermain klik keduapuluhempat gambar yang ada dan carilah


sepasang gambar yang sama. Lihat Gambar 14.

Gambar 14 Cara Bermain

14
Game Sederhana Copyright © Maxikom, 2007

5. Jika berhasil menemukan sepasang gambar yang sama, maka secara


otomatis sepasang gambar tersebut hilang dari tampilan. Lihat
Gambar 15.

Gambar 15 Tampilan Menemukan Gambar Yang Sama

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.

Jumlah Mencoba
Gambar 16 Tampilan Game Selesai

15

Anda mungkin juga menyukai