Catatan Liburan – Membangun Aplikasi Mobile Dengan J2ME (Bagian 1)

Liburan semester ini, alhamdulillah berkat kebaikan donor saya, Rajawali Corpora, saya dan teman-teman saya yang juga penerima beasiswa Paramadina Fellowship dari Rajawali mendapatkan kesempatan internship di beberapa perusahaan yang berada di bawah naungan mereka.

Saya mendapatkan kesempatan untuk melaksanakan internship di Velo Networks, sebuah perusahaan IT yang bergerak di bidang jaringan. Sesuai minat saya ke pemrograman, saya diberikan tugas untuk men-develop sebuah aplikasi yang berjalan di mobile device. Internship ini sekaligus mentoring, karena saya belum pernah membangun aplikasi seperti ini sebelumnya. Saya akan merekam hasil belajar saya di beberapa artikel di blog ini.

Untuk membangun aplikasi mobile ini, saya menggunakan Java. Java sendiri memiliki beberapa edisi yang masing-masingnya memiliki tempat implementasi sendiri-sendiri. Ada Java SE, Java EE, Java ME, dan sebagainya. Untuk mobile, Java yang saya gunakan di sini adalah Java 2 Platform Micro Edition atau J2ME.

Untuk membuat program di mobile device, tidak perlu khawatir walaupun tidak ada device-nya, karena tools pemrograman untuk J2ME ini sudah menyediakan emulator yang akan menghadirkan perangkat mobile di layar desktop Anda, jadi walau tidak ada device tidak menghalangi untuk belajar.

Untuk memulai membuat aplikasi mobile, download saja IDE-nya, yaitu Java ME Software Development Kit (SDK). Anda bisa men-download-nya di halaman ini.

Ada beberapa teori fundamental juga untuk membuat aplikasi mobile ini, karena kerangka source code-nya berbeda. Kalau biasanya program-program Java memulai melakukan eksekusi pada suatu static methodbernama main, maka pada model aplikasi mobile ini tidak. Secara umum, kerangka program Java pada aplikasi mobile adalah seperti ini:

package NamaPackage;

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

public class NamaMidlet extends MIDlet {

    // Konstruktor dari class NamaMidlet, digunakan untuk inisialisasi objek.
    public NamaMidlet() {

    }

    public void startApp() {
        // Rutin yang dijalankan saat aplikasi mulai dijalankan di sini
    }

    public void pauseApp() {

    }

    public void destroyApp(boolean unconditional) {
        // Rutin yang akan dijalankan saat aplikasi dihancurkan (selesai dieksekusi)
    }
}

Seperti yang bisa dilihat, bahwa class NamaMidlet di atas mewarisi class MIDlet (terlihat dari keyword extends pada deklarasi class NamaMidlet).

Selain struktur program, ketika program MIDlet ini berjalan, sifatnya juga berbeda dengan program komputer yang biasanya berjalan di komputer desktop. Kalau biasanya banyak program di desktop bisa dilihat bentuknya dalam jendela-jendela, maka kalau di MIDlet, tampilan program adalah berupa layar-layar yang diatur kemunculannya. Dari segi pemrograman pun, kalau biasanya di Java pada pemrograman GUI, 1 class hanya mewakili 1 form. Sedangkan di Midlet ini, 1 class bisa menyimpan banyak layar, karena bentuk dari layar itu adalah suatu objek juga yang bisa dipanggil dan berada di bawah javax.microedition.lcdui.

Ayo kita buat 1 program sederhana. Pertama yang harus Anda lakukan, download dulu Java(TM) ME SDK dari alamat yang saya cantumkan di atas. Saat saya menggunakannya, versinya adalah 3.0. Setelah itu install, dan mari memulai membuat project pertama dengan memilih menu File dan memilih submenu New Project (Ctrl+Shift+N).

Anda harus memberikan spesifikasi dari software yang Anda buat. Pilih yang MIDP Application.

Klik Next. Ketikkan nama project Anda. Settings project saya bisa di lihat di bawah ini

Setelah ini, kita buat MIDlet-nya untuk ditampilkan di device. Untuk membuat MIDlet, perhatikan panel Projects di sebelah kiri, klik kanan di <default package> pilih New dan kemudian pilih MIDlet…

Nanti akan tampil kotak dialog settings untuk nama MIDlet dan nama package-nya. Settings untuk MIDlet saya seperti ini

Klik Finish dan mari melangkah ke bagian yang ditunggu-tunggu: coding😀

package Hallo;

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

public class HalloMidlet extends MIDlet {

    // Pengontrol tampilan di MIDlet
    private Display dispHello;

    private Form frmHello = new Form("Hello Midlet");
    private Command cmdHello = new Command("Hello", Command.SCREEN, 0);
    private Command cmdExit = new Command("Exit", Command.EXIT, 1);

    public HalloMidlet() {
        // Menambahkan teks ke Form frmHello
        frmHello.append("Hai, ini hallo midlet.");

        // Menambahkan perintah ke Form frmHello
        frmHello.addCommand(cmdHello);
        frmHello.addCommand(cmdExit);

        // Menambahkan CommandListener yang akan melakukan aksi tertentu
        // ketika suatu command/perintah diberikan ke midlet
        frmHello.setCommandListener(new CommandListener() {

            public void commandAction(Command c, Displayable d) {
                if (c == cmdHello) {
                    // Membuat sebuah Alert untuk pengguna
                    Alert alrtHello = new Alert("Hello", "Halo, ini alert di Hello Midlet.", null, AlertType.INFO);
                    // Membuat alert ini ditampilkan hingga pengguna mengklik command done
                    alrtHello.setTimeout(Alert.FOREVER);
                    // Mengeset layar agar menampilkan alert ini
                    dispHello.setCurrent(alrtHello);
                }
                else if (c == cmdExit) {
                    // Prosedur khusus untuk memberitahukan
                    // bahwa aplikasi sedang memasuki keadaan destroyed/selesai eksekusi
                    notifyDestroyed();
                }
            }

        });

    }

    public void startApp() {
        // Mengambil display dari MIDlet Hello ini
        dispHello = Display.getDisplay(this);
        // Mengeset tampila ke frmHello
        dispHello.setCurrent(frmHello);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}

Silakan compile dan jalankan. Dengan IDE ini, Anda hanya cukup mengklik F6 saja. Kalau saya perhatikan, sepertinya IDE ini mengadopsi IDE NetBeans, sehingga bagi yang biasa menggunakannya pasti tidak akan kesulitan. Berikut tampilannya di emulator ketika dijalankan.

Kiri: tampilan saat MIDlet pertama kali dijalankan. Kanan: tampilan saat tombol Hello diklik pengguna

MIDlet ini nantinya bisa ditransfer langsung ke device yang Anda miliki. File yang dibutuhkan hanya file *.jar-nya saja, dan bisa berjalan di device yang memiliki Java terinstal di dalamnya.

Ada banyak yang bisa dilakukan MIDlet ini nantinya, mulai dari mengirim dan menerima SMS, juga menghubungkan ke internet dan mengambil data serta mengirim data. Selanjutnya akan saya tulis lagi catatan belajar saya tentang MIDlet ini. Tunggu bagian ke-2 ya😛

Semoga bermanfaat.

One comment

  1. yonk · November 1, 2011

    info yang sangat bermanfaat buat para mobile yg suka hal2 baru dalam dunia mobile ..
    http://www.blazemedea.com blog ini jga sngat bgus buat shearing masalah mobile..
    jaya terus wat sang admin

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s