Kamis, 18 Oktober 2012

Presistance

read more

Rabu, 03 Oktober 2012

Percobaan 2: High Level User Interface

Pada kesempatan kali ini saya akan membuat sebuah aplikasi pengisian nama, jenis kelamin, alamat, no telepon, email, dan tanggal lahir.

Berikut langkah-langkahnya:
  1. Pastikan aplikasi eclipse telah terbuka
  2. Membuat project baru, caranya  pilih file > new > project > J2ME > J2ME middle suit > Next > silahkan ketik nama projectnya misal HighLevel > Next > Finish
  3. Buat class baru, caranya pada nama project di klik kanan pilih new > other > J2ME > J2ME Midlet > Next > silahkan ketikkan Name-nya misal HLI > Finish
  4. Setelah itu silahkan copy source code yang ada dibawah ini
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

import java.util.Date;


public class HLI extends MIDlet implements CommandListener {
    Display display;
    Form input;
    Alert warning;
    TextField nama, alamat, telp, email;
    DateField tgl;
    ChoiceGroup gender;
    StringItem text;
    Command exit = new Command("Exit", Command.EXIT, 1);
    Command view = new Command("View", Command.OK, 1);

    public HLI(){
        input = new Form("Masuk Data");
        input.addCommand(exit);
        input.addCommand(view);
        input.setCommandListener(this);
        Date now = new Date();
       
        nama = new TextField("Nama", "", 32, TextField.ANY);
       
        gender = new ChoiceGroup("Gender", Choice.POPUP);
        gender.append("Laki-Laki", null);
        gender.append("Perempuan", null);
       
        alamat = new TextField("Alamat", "", 32, TextField.ANY);
       
        telp = new TextField("No Hp/telp", "", 32, TextField.PHONENUMBER);
       
        email = new TextField("E-mail", "", 32, TextField.EMAILADDR);
       
        tgl = new DateField("HarLah", DateField.DATE);
        tgl.setDate(new Date());
       
        input.append(nama);
        input.append(gender);
        input.append(alamat);
        input.append(telp);
        input.append(email);
        input.append(tgl);
      
     }
    
     public void startApp(){
         if (display == null){
             display = Display.getDisplay(this);
             display.setCurrent(input);
         }
     }
    
     public void pauseApp(){
        
     }
    
     public void destroyApp(boolean unconditional){
        
     }

     public void commandAction(Command c, Displayable d) {
         if(c == view){
             input.deleteAll();
            
             /*text = new StringItem("", "nama : "+nama.getString()+"\n"
             +"gender : "+gender.getString(gender.getSelectedIndex())+"\n"
             +"alamat : "+alamat.getString()+"\n"
             +"nomer : "+telp.getString()+"\n"
             +"email : "+email.getString()+"\n"
             +"BDay : "+tgl.getDate());*/
            
             if(nama.getString()==""){
                 warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);           
                 warning.setTimeout(warning.FOREVER);
                 display.setCurrent(warning);
             }else if("".equals(alamat.getString())){
                 warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);           
                 warning.setTimeout(warning.FOREVER);
                 display.setCurrent(warning);
             }else if(telp.getString()==""){
                 warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);           
                 warning.setTimeout(warning.FOREVER);
                 display.setCurrent(warning);
             }else if(email.getString()==""){
                 warning = new Alert("Warning","Harus diisi semua!",null, AlertType.WARNING);           
                 warning.setTimeout(warning.FOREVER);
                 display.setCurrent(warning);
             }else {
            
             text = new StringItem("", "nama   : "+nama.getString()+"\n"
                     +"gender : "+gender.getString(gender.getSelectedIndex())+"\n"
                     +"alamat : "+alamat.getString()+"\n"
                     +"nomer  : "+telp.getString()+"\n"
                     +"email   : "+email.getString()+"\n"
                     +"BDay   : "+tgl.getDate());
             input.append(text);           
             display = Display.getDisplay(this);     
             display.setCurrent(input);
             }
            
             input.removeCommand(view);
             input.addCommand(exit);
         }
        
         if (c == exit){
             destroyApp(true);
             notifyDestroyed();
         }
     }
    
 }


     6. Untuk menjalankannya, kilk kanan pada nama class-nya > Run As > Emulated J2ME Midlet.
     7. Maka akan tampil emulator seperti gambar berikut:
  
      8. Jika tidak diisi semua atau salah satu tidak diisi, maka akan muncul warning sebagai berikut:






       9. Jika diisi semua, maka hasil akhirnya adalah sebagai berikut:


read more

High Level User Interface

Tujuan mempelajari materi tentang High Level User Interface adalah:
- Mengetahui keuntungan dan kerugian dengan menggunakan high-level dan low-level UI classes
- Mengetahui desain MIDlets menggunakan komponen high-level UI
- Mengidentifikasi perbedaan sub-classes pada screen
- Mengetahui perbedaan item-item yang dapat dimasukkan kedalam sebuah object Form

Perbedaan High Level  vs Low Level


Kapan menggunakan High-Level UI
- Saat membangun aplikasi text-based yang mudah
- Saat Anda ingin aplikasi Anda dapat dengan mudah dipertukarkan dengan berbagai macam peralatan (Portabilitas)
- Saat Anda ingin aplikasi Anda memiliki tampilan yang sama dengan komponen UI yang lain dari berbagai peralatan
- Saat Anda ingin kode Anda dapat menjadi sesedikit mungkin, ketika sebuah interaksi ditangani oleh API


Kapan menggunakan Low-Level UI
- Saat Anda memerlukan sebuah high-level untuk mengkontrol tampilan dari suatu aplikasi
- Saat aplikasi Anda membutuhkan tempat yang tepat dari elemen-elemen yang ada pada screen
- Saat membuat game secara grafik; meskipun Anda tetap dapat menggunakan highlevel UI pada menu game, hal tersebut lebih disarankan untuk membuat menu UI Anda sendiri untuk menghindari seamless atmosphere bagi para user
- Saat sebuah aplikasi membutuhkan akses ke low-level yang memiliki inputan seperti key presses
-Jika aplikasi Anda akan diimplementasikan pada layar navigasi Anda sendiri


Display
- Satu-satunya object untuk menampilkan sesuatu ke layar pada tiap MIDlet
- MIDlet dapat meminta refrence kepada object Display dengan menggunakan static Display.getDisplay(), untuk memberikan refrence pada instance dari MIDlet
- MIDlet akan memastikan bahwa object Display tidak akan berubah selama object dari MIDlet tersebut tersedia


Displayable
- Hanya satu displayable yang ditampilkan pada satu waktu
- Secara langsung, displayable tidak ditampilkan pada layar
- Sebuah displayable dapat ditampilkan dengan memanggil method setCurrent() dari Display instance
- Method setCurrent() harus dipanggil pada saat memulai aplikasi, dengan kata lain sebuah screen kosong akan ditampilkan atau aplikasi tersebut tidak akan dijalankan


Sebuah  displayable  dapat  memiliki  nama (title),  beberapa  perintah(command), commandListener dan Ticker.

Title
- Posisi dan penampilan dari title tersebut merupakan piranti spesifik yang hanya dapat ditentukan oleh peralatan dari aplikasi yang sedang dijalankan
- Sebuah title ditampilkan pada Displayable dengan memanggil setTitle()

Command
-  Untuk menggantikan menu bar, MIDlet memiliki Commands
- Biasanya Command diimplementasikan sebagai soft key atau item dalam sebuah menu
- Object Command hanya berisi informasi tentang action yang harus dikerjakan pada saat Command diaktifkan

 CommandListener
- CommandListener merupakan interface dengan single method:
void commandAction(Command command, Displayable displayable) 
- Method commandAction()  akan dipanggil jika Command dipilih
- CommandAction() harus dikembalikan dengan seketika, jika tidak maka pengeksekusian aplikasi akan diblock

Ticker
- Ticker adalah sebuah baris dari text yang dapat discrolling secara terus-menerus pada display
- Method konstruktor dari ticker menerima text string untuk ditampilkan.
- Hanya memiliki dua method lain, yaitu getter dan setter untuk text ini: String getString() dan void setString(String text)


Screen
Screen merupakan inti abstrak class yang digunakan untuk high-level UI ketika canvas merupakan Displayable abstrak class untuk low-level UI.






Item
Items merupakan komponen yang dapat diletakan kedalam container, seperti Form atau Alert. Sebuah item dapat memiliki property seperti dibawah ini:



read more

By :
Free Blog Templates