1 PEMOGRAMAN APLIKASI BERGERAK (Java ME) Yoannita2 Daur Hidup MIDlet kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masu...
Daur Hidup MIDlet kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk status “Pause” setelah perintah baru dibuat. AMS memanggil constructor public tanpa argumen dari MIDlet.
Author : Yoannita STMIK GI MDP PALEMBANG
Daur Hidup MIDlet Jika sebuah exception terjadi dalam constructor, MIDlet memasuki status “Destroyed” dan membuangnya segera. MIDlet masuk ke dalam status “Active” atas pemanggilan method startUp() oleh AMS. MIDlet masuk ke dalam status “Destroyed” ketika AMS memanggil method destroyApp(). Status ini juga kembali diakses ketika method notifyDestroyed() kembali dengan sukses kepada aplikasi. Dengan catatan bahwa MIDlet hanya bisa memasuki status “Destroyed” sekali dalam masa hidupnya. Author : Yoannita STMIK GI MDP PALEMBANG
Simple example The example code shows the three methods that must be implemeted to allow the application manager to control a MIDlet.
public class Application extends MIDlet { public Application() { } // Called when the MIDlet is created or re-started public void startApp() { } // Called to pause the MIDlet public void pauseApp() { }
}
// Called to terminate the MIDlet public void destroyApp(boolean unconditional) { }
Author : Yoannita STMIK GI MDP PALEMBANG
wikipedia
Keterangan Agar kita dapat membuat MIDlet, kita harus membuat subclass dari MIDlet class dari javax.microedition.midlet package. Kita juga harus melakukan override atau implement pada method: startApp(), destroyApp() dan pauseApp(). Method-method tersebut adalah method yang diperlukan oleh AMS untuk menjalankan dan mengkontrol MIDlet.
Author : Yoannita STMIK GI MDP PALEMBANG
Langkah-langkah
Lepas tanda centang pada Create Hello MIDlet
Author : Yoannita STMIK GI MDP PALEMBANG
Author : Yoannita STMIK GI MDP PALEMBANG
Author : Yoannita STMIK GI MDP PALEMBANG
Kode Program import javax.microedition.midlet.*; public class ProgramPertama extends MIDlet { Display display; Form frmHitung; public void startApp() { } public void pauseApp() { }
Definisi VARIABEL ditaruh di baris dalam kurung kurawal dari class Program Pertama, bukan di dalam constructor Hal ini dimaksudkan agar variabel tersebut dapat dikenal di semua method yang ada di dalam class Program Pertama
public void destroyApp(boolean unconditional) { } } Author : Yoannita STMIK GI MDP PALEMBANG
Kode Program
Terdapat dua buah error yang menyatakan bahwa display dan form tidak dikenali, hal ini dikarenakan kita belum mengimport library yang dibutuhkan
Author : Yoannita STMIK GI MDP PALEMBANG
Kode Program
Lakukan QUICK FIX untuk menyelesaikan permasalahan tersebut, dengan cara mengklik simbol error di sebelah kiri baris program, lalu pilih add import Author : Yoannita STMIK GI MDP PALEMBANG
Kode Program
Hasil QUICK FIX
Author : Yoannita STMIK GI MDP PALEMBANG
Kode Program
Tambahkan constructor class Nama constructor harus sama persis dengan nama classnya Author : Yoannita STMIK GI MDP PALEMBANG
Kode Program
Simpan dan Cek program anda Jika tidak ada error, jalankan program anda dengan menekan tombol run Author : Yoannita STMIK GI MDP PALEMBANG
Latihan Buatlah project yang baru dengan tampilan seperti di samping Kode program berikut ini hanyalah contoh, tambahkan ‘\n’ seperlunya public class ProgramKedua extends MIDlet { Display display; Form frmTampil; public ProgramKedua() { display = Display.getDisplay(this); frmTampil = new Form("JUDUL FORM"); frmTampil.append("Biodata :"); frmTampil.append("Nama: MDP"); frmTampil.append("Alamat: Jln. Rajawali 14"); frmTampil.append("Tlp:376400\nfax:376360\ nwebsite:www.stmik-mdp.net"); } Author : Yoannita STMIK GI MDP PALEMBANG
15
Latihan Ubahlah tipe emulator menjadi Default Color Phone Tampilkan bentuk data seperti di samping
Author : Yoannita STMIK GI MDP PALEMBANG
16
INSTALASI KE PONSEL ECLIPSE : INSTALASI KE PONSEL }
MEMBUAT FILE JAD DAN JAR
Pastikan program telah berjalan dengan baik Buatlah package Jalankan jad untuk mengecek hasil Instal jar ke dalam ponsel Apabila coding diperbaiki, buatlah package sekali lagi Author : Yoannita STMIK GI MDP PALEMBANG
17
Create Package(i) Klik .jad pada panel sebelah kiri Pilih tab Midlets Tambahkan MIDlet Sesuaikan namanya dgn nama class ber-extend MIDlet yg dibuat
Author : Yoannita STMIK GI MDP PALEMBANG
Note: Pada tab Required, sesuaikan versi configuration(CLDC) dan profile(MIDP) dengan versi yang ada pada ponsel yg hendak diinstal
Create Package(ii)
Author : Yoannita STMIK GI MDP PALEMBANG
19
Create Package(iii)
Author : Yoannita STMIK GI MDP PALEMBANG
Pada bagian choose Midlet, ketik nama class utama pada project tersebut, lalu pilih OK Save Klik kanan nama project, pilih J2ME, create package
INSTALASI KE PONSEL Jika anda menggunakan aplikasi Micro Edition Software Development Kit, sewaktu anda menjalankan aplikasi, file instalasi (jar dan jad) akan otomatis dibuat. Hal inilah yang menyebabkan proses RUN menjadi lebih lama. Pertanyaannya : di manakah lokasi anda membuat project tersebut? ☺ Pada folder apakah file jad dan jar dibuat? Author : Yoannita STMIK GI MDP PALEMBANG
Contoh lebih lanjut public class ProgramKedua extends MIDlet { Display display = Display.getDisplay(this);; Form frmTampil = new Form("Contoh Lanjutan"); public ProgramKedua() { frmTampil.append("Program JAVA"); display.setCurrent(frmTampil); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Author : Yoannita STMIK GI MDP PALEMBANG
Pembuatan objek dapat dilakukan bersamaan dengan inisialisasi variabel/objeknya
Dikarenakan constructor akan otomatis dipanggil sewaktu class ProgramKedua dijalankan, anda dapat menuliskan display.setCurrent() pada constructor
Contoh lebih lanjut (Hasil tampilan)
Author : Yoannita STMIK GI MDP PALEMBANG
Latihan Bagian mana dari potongan kode berikut ini yang merupakan baris komentar?
public class Application extends MIDlet { public Application() { } // Called when the MIDlet is created or re-started public void startApp() { } // Called to pause the MIDlet public void pauseApp() { }
}
// Called to terminate the MIDlet public void destroyApp(boolean unconditional) { }
Author : Yoannita STMIK GI MDP PALEMBANG
Latihan Bagian mana dari potongan kode berikut ini yang merupakan CONSTRUCTOR?
public class Application extends MIDlet { public Application() { } // Called when the MIDlet is created or re-started public void startApp() { } // Called to pause the MIDlet public void pauseApp() { }
}
// Called to terminate the MIDlet public void destroyApp(boolean unconditional) { }
Author : Yoannita STMIK GI MDP PALEMBANG
Latihan Bagian mana dari potongan kode berikut ini yang mencerminkan suatu inheritance (subclass dan superclassnya)?
public class Application extends MIDlet { public Application() { } // Called when the MIDlet is created or re-started public void startApp() { } // Called to pause the MIDlet public void pauseApp() { }
}
// Called to terminate the MIDlet public void destroyApp(boolean unconditional) { }
Author : Yoannita STMIK GI MDP PALEMBANG
Latihan Bagian mana dari potongan kode berikut ini yang merupakan mencerminkan suatu parameter/argumen dari suatu method?
public class Application extends MIDlet { public Application() { } // Called when the MIDlet is created or re-started public void startApp() { } // Called to pause the MIDlet public void pauseApp() { }
}
// Called to terminate the MIDlet public void destroyApp(boolean unconditional) { }
Author : Yoannita STMIK GI MDP PALEMBANG
Latihan Method apa yang merupakan turunan dari class MIDlet? public class ProgramPertama extends MIDlet implements CommandListener { public ProgramPertama() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { } public void commandAction(Command arg0, Displayable arg1) { } }