04-JavaGame

Embed Size (px)

Citation preview

  • 5/23/2018 04-JavaGame

    1/16

    DISCLAIMER

    Seluruh dokumen E-Trik di dalam CD ini dapat digunakandan disebarkan secara bebas untuk tujuan belajar bukankomersial (non-profit), dengan syarat tidak menghapusatau merubah atribut penulis dan pernyataan copyright

    yang disertakan dalam dokumen. Tidak diperbolehkanmelakukan penulisan ulang, kecuali mendapatkan ijin

    tertulis terlebih dahulu dari Penerbit Maxikom.

  • 5/23/2018 04-JavaGame

    2/16

    1

    E-Trik JAVA

    Game Sederhana

    IRAWAN

    e-mail : [email protected]

    Penerbit Maxikom

    Jl. Residen H. Abdul Rozak No. 33 B5-B6

    Palembang 30114.

    e-mail: [email protected]

    Fax. (0711) 717598

    www.maxikom.co.id

  • 5/23/2018 04-JavaGame

    3/16

    2

    Game Sederhana

    Pada E-Trik berikut ini kita akan membuat game sederhana dengan JCreatorLE3.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.

    A Menyiapkan Program.

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

    dan JDK agar program Java bisa dijalankan pada Windowsanda.

    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 TombolStart pada

    WindowsTaskbar. Kemudian klik Programs | JCreatorV3 LE |

    JCreator LE, lihat Gambar 2.

    Gambar 1 Tampilan Program

  • 5/23/2018 04-JavaGame

    4/16

    Game Sederhana

    3

    Copyright Maxikom, 2007

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

    KlikMenuFile | New | Fileseperti Gambar 3.

    4. Setelah itu akan muncul kotak dialog File Wizard, lalu pilih Java File

    kemudian klik Tombol . LihatGambar 4.

    Gambar 3 Membuat File Baru

    12 3

    Gambar 2 Membuka Aplikasi JCreator 3.0 LE

    1

    2

    3 4

  • 5/23/2018 04-JavaGame

    5/16

    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. Jika sudah maka tampilannya akan seperti Gambar 6

    Gambar 4 Membuat File Java

    Pilih Java File

    Klik Next

    Gambar 5 Menyimpan File CariGambar.java

    1

    2

  • 5/23/2018 04-JavaGame

    6/16

    Game Sederhana

    5

    Copyright Maxikom, 2007

    7. Dalam pembuatan program ini dibutuhkan 13 File gambardengan

    formatjpg yang nantinya 12 gambarakan digunakan sebagaiImage

    dalam game dan 1 gambar sebagaiIcon. UntukIconpilihlah sebuah

    Filegambar dengan formatjpg. Kemudian ubah ukurannya menjadi

    100x100 Pixeldengan menggunakan program Image Editorapa saja.

    Kemudian beri nama Filegambar tersebut dengan nama background.Pada contoh gambar berikut Filedi Resizedan di Rename dengan

    menggunakan program ACDSee. Lihat Gambar 7.

    Gambar 6 TampilanFile Selesai di Simpan

    Judul File

    Jendela Kode

    Gambar 7 Tampilan File background.jpg

    Program ACDSee

    Beri nama background

    Ukuran = 100x100

    Contoh gambar

  • 5/23/2018 04-JavaGame

    7/16

    Game Sederhana

    6

    Copyright Maxikom, 2007

    8. Untuk Imagepilihlah 12 gambarformatjpg 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 diEdittadi ke dalam

    Folderyang sama dengan FileCariGambar.java. Lihat Gambar 9.

    Gambar 8 Tampilan File image1.jpg-image12.jpg

    Gambar 9 File-File Disimpan Dalam Satu Folder

  • 5/23/2018 04-JavaGame

    8/16

    Game Sederhana

    7

    Copyright Maxikom, 2007

    B Listing Program.

    1. Pada Jendela KodeFileCariGambar.Javaketikkan kode program

    berikut ini :

    123456789

    10111213141516171819202122232425262728

    29303132333435363738

    3940

    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;

  • 5/23/2018 04-JavaGame

    9/16

    Game Sederhana

    8

    Copyright Maxikom, 2007

    414243

    44454647484950515253

    54555657585960616263

    646566676869707172

    73747576777879808182

    8384

    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) {

  • 5/23/2018 04-JavaGame

    10/16

    Game Sederhana

    9

    Copyright Maxikom, 2007

    85868788899091929394959697

    9899100101102103104105106107

    108109110111112113114115116117118119120121122123124125126

    127128

    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) {

  • 5/23/2018 04-JavaGame

    11/16

    Game Sederhana

    10

    Copyright Maxikom, 2007

    129130131

    132133134135136137138139140141

    142143144145146147148149150151

    152153154155156157158159160

    161162163164165166167168169170

    171172

    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");

  • 5/23/2018 04-JavaGame

    12/16

    Game Sederhana

    11

    Copyright Maxikom, 2007

    173174175

    176177178179180181182183184185

    186187188189190191

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

    - Baris 5-6mendeklarasikanclass Carigambar.

    - Baris 7-22mendeklarasikan Variabel dan Object yang akan digunakan.

    - Baris 23-82kode-kode pengaturan tampilan dan posisi Objectyang digunakan.

    - Baris 83-86memanggilMethod shuffleCards.

    - Baris 87-111kodeMethod shuffleCards dengan logikaArray yang berfungsi

    untuk mengacak file image1-12kemudian menampilkannya kembali.

    - Baris 112-174merupakan 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-153kode-kode logika jika salah satu dari sepasang gambar yang dipilih

    tidaklah sama.

    - Baris 154-167kode-kode logika jika semua gambar dari sepasang gambar yang

    dipilih adalah gambar yang sama.

    - Baris 168-174kode-kode logika jika semua gambar berhasil dibuka, maka game

    selesai.

  • 5/23/2018 04-JavaGame

    13/16

    Game Sederhana

    12

    Copyright Maxikom, 2007

    2. Kemudian klikIconCompile padaMenu Toolbar agar program

    CariGambar.javadiubah menjadiCariGambar.class. LihatGambar10.

    C Menjalankan Program.

    1. Untuk menjalankan program klikIconExecute File padaMenu

    Toolbar lihat Gambar 11.

    Keterangan :

    - Baris 175-178kode-kode perintah untuk keluar dari program ketika Tombol Exit

    di klik.

    - Baris 179-186kode-kode perintah untuk menampilkan File-file gambar pada saat program dijalankan.

    - Baris 187-190kode-kode perintah memberi nama pada komponen-komponen

    Swing.

    - Baris 191akhir blok kode class CariGambar.

    Gambar 10 Meng-Compile kode FileCariGambar.java

    Klik Compile

    Status Compile

  • 5/23/2018 04-JavaGame

    14/16

    Game Sederhana

    13

    Copyright Maxikom, 2007

    2. Tampilan program akan terlihat seperti Gambar 12.

    3. Untuk mengulang atau memulai permainan klikTombolAcak Gambar.

    Jika ingin berhenti klik Tombol Keluar. Lihat Gambar 13.

    Gambar 11 Menjalankan Program

    Klik Execute File

    Gambar 12 Tampilan Program CariGambar

  • 5/23/2018 04-JavaGame

    15/16

    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

  • 5/23/2018 04-JavaGame

    16/16

    Game Sederhana

    15

    Copyright Maxikom, 2007

    5. Jika 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 kalianda 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 SelesaiJumlah Mencoba