WIRELESS TOOLKIT (SUN JAVA)

TUTORIAL GAME
WIRELESS TOOLKIT (SUN JAVA)
I. TUJUAN
    1. Agar mahasiswa dapat memahami project pada Wirelsess Toolkit (Sun Java)
      2. Agar mahasiswa dapat menjalankan, mengerti, dan mengetahui funsi project pada Wireless Toolkit.

II. TEORI DASAR
           Wireless Toolkit adalah emulator yang digunakan untuk mengetest aplikasi mobile (J2ME) yang sudah dibuat di komputer dan selanjutnya bisa ditransfer kedalam perangkat mobile melalui koneksi seperti bluetooth, atau infrared, atau pun dengan menggunakan kabel data. Tentunya simulasi bisa saja hasil yang didapatkan dari simulasi dengan percobaan sesungguhnya dalam perangkat mobile berbeda.

1. PERSIAPAN
Spesifikasi minimum hardware yang diperlukan.
a. Windows XP (32 bit), Windows 7 (32 bit atau 64bit).
         b. Space Harddisk yang diperlukan minimal adalah 500MB.

2. SOFTWARE
          a.  Java JDK (Java Development Kit).
          b. J2ME WTK (Sun Java Wireless Toolkit for CLDC)
          c. IDE (Integrated Development Environment) atau Notepad.

3. INSTALASI
   Install Sun Java Wireless Toolkit.
   1. Klik dua kali pada file Sun Java Wireless Toolkit 2.5.2 Windows.exe.
      2. Kemudian akan tampil kotak dialog instalasi, klik tombol Next untuk melanjutkan.

   3. Kemudian akan tampil kotak lisensi software, klik tombol Accept untuk menyetujui
    4. Selanjutnya kamu bias mengatur alamat folder untuk menginstall JDK. Secara default, file tersebut akan
        diinstal pada folder Program Files. Klik tombol Browse jika ingin mengubah alamat instalasi.

   5. Klik Next, instalasi dimulai. Tunggu sampai proses instalasi selesai


4. LANGKAH PERCOBAAN
    a.  Langkah Membuat Aplikasi Java di Handphone.
    1)   Jalankan aplikasi Sun Java Wireless Toolkit 2.5.2

   2) Untuk mensimulasi project bawaan Sun Java Wireless Toolkit 2.5.2, dapat dilakukan dengan
        mengklik tab bar Open Project
   3)      Terdapat banyak project program bawaan Sun Java Wireless Toolkit 2.5.2, dalam kasus ini saya
         akan menjalankan project Games. Kemudian klik Open Project.
   4)      Maka akan muncul konfigurasi tempat lokasi file project yang sedang dibuat.

   5)    Pada information bar Device, silakan pilih tipe Device yang akan digunakan. Pada bar ini terdiri dari 4 pilihan yaitu Default Color Phone, Default Gray Phone, Media Color Skin dan Qwety Device. Disini saya akan menggunakan Qwerty Device karena simulasinya akan menggunakan Handphone berbasis Qwerty Keypad.

6)      Kemudian Run untuk melihat hasil simulasi.

 7)    Agar file tersebut dapat dijalankan di handphone, dapat di Built pada icon Built yang ada di bar Sun Wireless Toolkit dan akan menghasilkan dua file berekstensi Jar dan Jad. File berekstensi Jar lah yang akan dikirim ke Handphone.

   8)    Maka akan muncul konfigurasi tempat lokasi file project yang telah dibuat. Program yang telah dibuat akan disimpan di recktory C:\WTK2.5.2\apps\Games\src\example\pushpuzzle

   9)   Berikut Source Program PDAP demo yang telah dijelaskan pada project sebelumnya. Copy akan ke software IDE yang digunakan atau bisa dengan menggunakan Notepad.
/*
 *
 * Copyright (c) 2007, Sun Microsystems, Inc.
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *  * Neither the name of Sun Microsystems nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package example.pushpuzzle;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;


/**
 * PushPuzzle is the MIDlet that drives the game.  It puts up the
 * screens and handles all the commands that are invoked on each
 * screen.
 */
public class PushPuzzle extends MIDlet implements CommandListener {
    Display display;
    private PushPuzzleCanvas canvas;
    private Score score;
    private Screen scoreScreen;
    private Screen levelScreen;
    private Alert alert;
    private Command undoCommand = new Command("Undo", Command.BACK, 1);
    private Command restartCommand = new Command("Start Over", Command.CANCEL, 21);
    private Command exitCommand = new Command("Exit", Command.EXIT, 60);
    private Command scoresCommand = new Command("Show Scores", Command.SCREEN, 26);
    private Command okCommand = new Command("OK", Command.OK, 30);
    private Command levelCommand = new Command("Change Level", Command.SCREEN, 24);
    private Command nextCommand = new Command("Next Level", Command.SCREEN, 22);
    private Command prevCommand = new Command("Previous Level", Command.SCREEN, 23);
    private Command themeCommand = new Command("Switch Theme", Command.SCREEN, 25);

    /**
     * Creates new PushPuzzle MIDlet.
     */
    public PushPuzzle() {
        display = Display.getDisplay(this);
        score = new Score();
        canvas = new PushPuzzleCanvas(this, score);
        alert = new Alert("Warning");

        if (!score.open()) {
            System.out.println("Score open failed");
        }

        canvas.init();
        canvas.addCommand(undoCommand);
        canvas.addCommand(scoresCommand);
        canvas.addCommand(restartCommand);
        canvas.addCommand(levelCommand);
        canvas.addCommand(exitCommand);
        canvas.addCommand(nextCommand);
        canvas.addCommand(prevCommand);
        canvas.addCommand(themeCommand);
        canvas.setCommandListener(this);
    }

    /**
     * Start creates the thread to do the timing.
     * It should return immediately to keep the dispatcher
     * from hanging.
     */
    public void startApp() {
        display.setCurrent(canvas);
    }

    /**
     * Pause signals the thread to stop by clearing the thread field.
     * If stopped before done with the iterations it will
     * be restarted from scratch later.
     */
    public void pauseApp() {
    }

    /**
     * Destroy must cleanup everything.
     * Only objects exist so the GC will do all the cleanup
     * after the last reference is removed.
     */
    public void destroyApp(boolean unconditional) {
        display.setCurrent(null);
        canvas.destroy();

        if (score != null) {
            score.close();
        }
    }

    /**
     * Respond to a commands issued on any Screen
     */
    public void commandAction(Command c, Displayable s) {
        if (c == undoCommand) {
            canvas.undoMove();
        } else if (c == restartCommand) {
            canvas.restartLevel();
        } else if (c == levelCommand) {
            levelScreen = canvas.getLevelScreen();
            levelScreen.addCommand(okCommand);
            levelScreen.setCommandListener(this);
            display.setCurrent(levelScreen);
        } else if ((c == okCommand) && (s == levelScreen)) {
            if (!canvas.gotoLevel()) {
                alert.setString("Could not load level");
                display.setCurrent(alert, canvas);
            } else {
                display.setCurrent(canvas);
            }
        } else if (c == scoresCommand) {
            scoreScreen = canvas.getScoreScreen();
            scoreScreen.addCommand(okCommand);
            scoreScreen.setCommandListener(this);
            display.setCurrent(scoreScreen);
        } else if ((c == okCommand) && (s == scoreScreen)) {
            display.setCurrent(canvas);
        } else if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        } else if ((c == List.SELECT_COMMAND) && (s == canvas)) {
            // Solved the level
            scoreScreen = canvas.getScoreScreen();
            scoreScreen.addCommand(okCommand);
            scoreScreen.setCommandListener(this);
            display.setCurrent(scoreScreen);

            // Read the next screen.
            canvas.nextLevel(1);
        } else if (c == nextCommand) {
            if (!canvas.nextLevel(1)) {
                alert.setString("Could not load level " + (canvas.getLevel() + 1));
                display.setCurrent(alert, canvas);
            } else {
                display.setCurrent(canvas);
            }

            if (s == canvas) {
                canvas.repaint();
            }
        } else if (c == prevCommand) {
            if (!canvas.nextLevel(-1)) {
                alert.setString("Could not load level " + (canvas.getLevel() - 1));
                display.setCurrent(alert, canvas);
            } else {
                display.setCurrent(canvas);
            }

            if (s == canvas) {
                canvas.repaint();
            }
        } else if (c == themeCommand) {
            canvas.changeTheme();
        }
    }
}

b.    Langkah Pengetesan MIDlet Java di Handphone.
      Kali ini saya menggunakan HP Qwerty Nexian NX G900 yang support aplikasi Midlet Java dengan        Sistem Operasi Symbian. Saya menggunakan project Games.
        1)      Project Games setelah di Built, kita akan menyimpan nya di handphone.
       C:\Users\engla\j2mewtk\2.5.2\apps\Games\bin
       2)      Copy file yang berekstensi di handphone
     3)      Kemudian instalasi pada handphone anda.
4)      Muncul konfirmasi dari instalasi. Jika melakukan instalasi kllik “Ya” seperti berikut

5)      Tunggu beberapa saat, sedang menginstal project “Game” pada Java
6)      Konfirmasi untuk menjalankan Java MIDlet. Tekan “Ya” Untuk menjalankannya.
7)      Setelah selesai melalui proses penginstalan Java MIDlet untuk project “Games”, maka akan muncul beberapa permainan.




  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar