Monday, July 20, 2009

Menu Sederhana Dengan StringItem pada J2ME

Hmmm, maaf baru bisa balik lagi, aku sekarang pengen berbagi sedikit ilmu yang ku punya. Kali ini aku pengen membahas tentang High Level API dari J2ME yaitu penggunaan StringItem untuk membuat menu sederhana. Ok ku coba sedikit jelasin tentang StringItem deh. StringItem itu merupakan class turunan dari javax.microedition.lcdui.Item ato bisa di tulis public class StringItem extends Item. Jadi StringItem itu sebuah Item yang dapat diisi String. Constructor untuk membuat StringItem sendiri ada dua yaitu :
- StringItem(String label, String text)
- StringItem(String label, String text, int appearanceMode)
untuk appearanceMode itu mengatur bentuk tampilan dari StringItem itu sendiri. Ada 3 yaitu Plain, Hyperlink dan Button. Jadi kita bisa menentukan bentuk tampilan dari String Item yang kita buat. Berikut ini saya berikan contohnya. Untuk Editornya silahkan gunakan editor java yang kalian suka.

Ok ini Midlet Utamanya, aku kasih nama Main.java:


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

public class Main extends MIDlet {
Display display;
private Menu menu;

public Main(){

display = Display.getDisplay(this);
}

public void startApp() {
menu = new Menu(this, display);
display.setCurrent(menu);
}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void keluarMidlet(){
destroyApp(false);
notifyDestroyed(); }
}
Untuk Menunya aku kasih nama Menu.java :

import javax.microedition.lcdui.*;

public class Menu extends Form implements ItemCommandListener,ItemStateListener, CommandListener {

private Main midlet;

private Display display;

private Command Pilih1,Pilih2, Keluar;

private StringItem menu1, menu2;


public Menu(Main midlet, Display display){
super("Silahkan Pilih");

this.midlet = midlet;

this.display = display;

Pilih1 = new Command("Pilih", Command.SCREEN,1);
Pilih2 = new Command("Pilih", Command.SCREEN,2);

Keluar = new Command("Keluar",Command.BACK,1);


menu1 = new StringItem(null, "Menu1 \n");

menu1.setDefaultCommand(Keluar);//menampilkan Command Keluar

menu1.setDefaultCommand(Pilih1);//menampilkan Command Pilih

menu1.setItemCommandListener(this);

menu1.setLayout(3);//untuk menampilkan StringItem 1=kiri,2=kanan, 3=tengah

append(menu1);


menu2 = new StringItem(null, "Menu 2 \n");

menu2.setDefaultCommand(Keluar);//menampilkan Command Keluar

menu2.setDefaultCommand(Pilih1);//menampilkan Command Pilih

menu2.setItemCommandListener(this);

menu2.setLayout(3);//untuk menampilkan StringItem 1=kiri,2=kanan, 3=tengah

append(menu2);


setItemStateListener(this);

this.setCommandListener(this);


public void itemStateChanged(Item item){
}

public void commandAction(Command c, Item item){


if(c == Pilih1){

//memberikan aksi saat tombol pilih ditekan

}

if (c == Pilih2){

//memberikan aksi saat tombol pilih ditekan

}

if(c == Keluar){

midlet.keluarMIDlet();//keluar dari program

}

}


public void commandAction(Command c, Displayable S){
}

}

Hmmm, sekian dulu ya. Kalau ada yang salah mohon dimaafkan.

Monday, April 06, 2009

Penggunaan Obfuscator pada J2ME

Halo all, aku pengen sedikit sharing nih tentang apa yang lagi aku pelajarin. Tau dong, kan bisa diliat tuh dari judulnya, hehehe... Yups, J2ME. Oke ga usah deh terlalu panjang dikali lebar karena aku juga ga pengen terlalu luas ngebahasnya. Tulisanku kali ini just sharing sesuatu hal yang ringan dari J2ME. Aku buat sebagai sharing ke temen - temen yang baru mengenal J2ME dan pengingat buatku juga sih, hehehe. N buat para master yang baca tulisan ini mohon koreksi kalau tulisan saya ada yang salah ya.

Baiklah kita mulai aja yah, kali ini beneran deh. Buat kalian pengguna dan yang lagi pengen ngembangin aplikasi dihandphone, pernah ga sih nginstall aplikasi java dihandphone kalian, ituloh yang filenya berakhiran JAR(Java ARchive). Nah liat deh ukuran dari filenya, kecil kan, ya hitungan kb lah. Nah, salah satu cara yang digunakan para pengembang aplikasi java untuk memperkecil ukuran filenya, mengoptimalisasikan aplikasinya dan mempermudah di download pada saat diinstalasi melalui Over-the-Air(OTA) yaitu dengan obfuscating.

Obfuscating itu sebuah proses menyamarkan class-class Java yang kita buat dengan tujuan untuk membuat aplikasi yang kita bangun lebih sulit untuk di decompile ulang menjadi source(reverse-engineer). Adapun hal - hal yang dilakukan obfuscator antara lain :
- Mengganti nama class, variable dan method dengan nama yang lebih pendek.
- Menghapus class, variable dan method yang tidak diperlukan.
- Menyisipkan ilegal atau data yang salah untuk membingunkan proses decompiler.

Untuk pengguna WTK(Wireless Toolkit) sendiri default konfigurasi obfuscatornya menggunakan ProGuard tetapi kamu mesti download dulu ProGuardnya. Untuk langkahnya saya tidak akan jelaskan disini.Obfusctor sendiri cenderung sedikit rewel (busyet... kaya bayi aja), tapi setelah anda mengerti cara mengkonfigurasikannya secara benar, maka obfuscator akan memberikan pengurangan ukuran file yang signifikan. Oya, untuk penggunaan obfuscator sendiri sebaiknya saat akan dipackaging, karena kalau dilakukan saat penulisan masih kita lakukan akan membuat debug dari program kita menjadi lebih susah. Oke sekian dulu deh, dah capek juga nih ngetiknya. Thanks ya dah dibaca.