SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
J.E.N.I.



                                        Bab 2
            Memulai Pemrograman Mobile


2.1 Tujuan

In this section, we will be delving into writing, building, using the emulator and
packaging J2ME applications. The Integrated Programming Environment that we will use
is NetBeans 4.1 (www.netbeans.org) and NetBeans Mobility Pack.
Pada bagian ini, kita akan menggali tentang menulis, membangun, menggunakan
emulator dan melakukan packaging aplikasi J2ME. Integrated Programming Environment
yang akan kita gunakan adalah NetBeans 4.1 (www.netbeans.org) dan NetBeans
Mobility Pack.


Setelah menyelesaikan bagian ini, siswa diharapkan mampu:


   •   Membuat MIDlet sederhana
   •   Membuat sebuah project di NetBeans
   •   Membuat sebuah MIDlet menggunakan NetBeans Mobility Pack
   •   Menjalankan MIDlet di emulator



2.2 Pengenalan

IDE (Integrated Development Environment) adalah sebuah lingkungan pemrograman
(programming environment) yang memiliki GUI builder, text atau code editor, compiler
dan/atau interpreter dan debugger. Dalam hal ini, NetBeans Mobility Pack juga memiliki
device emulator. Fasilitas ini bisa membuat kita melihat program kita pada device yang
sesungguhnya.



2.3 "Hello, world!" MIDlet

Kita sudah mempelajari pada bagian sebelumnya tentang daur hidup MIDlet (MIDlet's
life cycle). MIDlet mulai hidup ketika MIDlet dibuat oleh Application Management System
(AMS) pada device.




Pengembangan Perangkat Mobile                                                         1
J.E.N.I.


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.




                                 new

                                          destroyApp()




           startApp()           Paused

                                                          Destroyed
                                Active       pauseApp()




                                         destroyApp()


Tidak seperti program Java pada umumnya dimana method main() hanya digunakan
sekali pada jalannya program, method startApp() mungkin akan dipanggil lebih dari
sekali dalam daur hidup MIDlet. Sehingga Anda diharuskan tidak membuat satu
inisialisasi code pada method startApp(). Daripada, anda dapat membuat MIDlet
consturctor dan melakukan inisialisasi di situ.


Berikut ini adalah code program MIDP pertama kita:


/*
 * HelloMidlet.java
 *
 * Created on July 8, 2000, 9:00 AM
 */


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


/**
 *
 * @author        JEDI Apprentice

Pengembangan Perangkat Mobile                                                      2
J.E.N.I.


 * @version
 */
public class HelloMidlet extends MIDlet implements CommandListener {
      Display display;
      Command exitCommand = new Command("Exit", Command.EXIT, 1);
      Alert helloAlert;


      public HelloMidlet(){
           helloAlert = new Alert(
                "Hello MIDlet", "Hello, world!",
                null, AlertType.INFO
           );


           helloAlert.setTimeout(Alert.FOREVER);
           helloAlert.addCommand(exitCommand);
           helloAlert.setCommandListener(this);
      }


      public void startApp() {
           if (display == null){
                display = Display.getDisplay(this);
           }


           display.setCurrent(helloAlert);
      }


      public void pauseApp() {
      }


      public void destroyApp(boolean unconditional) {
      }


      public void commandAction(Command c, Displayable d){
           if (c == exitCommand){
                destroyApp(true);
                notifyDestroyed(); // Exit
           }


Pengembangan Perangkat Mobile                                          3
J.E.N.I.


      }
}


Selanjutnya kita akan mempelajari MIDlet pertama kita, difokuskan pada line yang
penting dari code diatas:


public class HelloMidlet extends MIDlet implements CommandListener {


Seperti yang sudah kita katakan sebelumnya, kita harus membuat subclass dari MIDlet
untuk membuat MIDP program. Pada line ini, kita sudah membuat subclass dari MIDlet
dengan memberikan turunan kelas induk dan menamakannya HelloMIDlet.


      Display display;
      Command exitCommand = new Command("Exit", Command.EXIT, 1);
      Alert helloAlert;


Line diatas ini adalah variabel properties dari MIDlet. Kita membutuhkan object Display
(hanya ada satu diplay per MIDlet) untuk melakukan fungsi menggambar pada layar.
exitCommand adalah perintah yang akan kita taruh pada layar agar kita dapat keluar
dari program. Jika kita tidak memiliki perintah keluar, maka kita tidak memiliki cara
untuk keluar dari MIDlet dengan benar.


      public HelloMidlet(){
           helloAlert = new Alert(
                "Hello MIDlet", "Hello, world!",
                null, AlertType.INFO
           );


           helloAlert.setTimeout(Alert.FOREVER);
           helloAlert.addCommand(exitCommand);
           helloAlert.setCommandListener(this);
      }


Consturctor melakukan inisialisasi dari object Alert. Kita akan mempelajari lebih lanjut
dari Alert class pada bab berikutnya. Method addCommand() pada object Alert
memberikan perintah "Exit" pada layar. Method setCommandListener() memberikan
informasi kepada sistem untuk memberikan semua command events ke MIDlet.




Pengembangan Perangkat Mobile                                                          4
J.E.N.I.


public class HelloMidlet extends MIDlet implements CommandListener {


Code "implements CommandListener" adalah untuk command/key presses, sehingga
program kita mampu menghandle "command" events. Jika kita melakukan implement
CommandListener, kita harus membuat method commandAction().


      public void commandAction(Command c, Displayable d){
           if (c == exitCommand){
               destroyApp(true);
               notifyDestroyed(); // Exit
           }
      }


commandAction() diatas hanya menghandle request untuk perintah "Exit". Method diatas
akan menghentikan program menggunakan notifyDestroyed() jika perintah "Exit"
dijalankan atau ditekan.


      public void startApp() {
          if (display == null){
               display = Display.getDisplay(this);
           }


           display.setCurrent(helloAlert);
      }


Code diatas adalah bagian awal dari program kita ketika program kita sudah siap untuk
ditampilkan oleh AMS. Perlu diingat bahwa method startApp() mungkin / bisa
dimasukkan lebih dari sekali seperti pada daur hidup MIDlet. Jika MIDlet berhenti /
dihentikan, seperti bila ada telepon masuk, program akan masuk ke state berhenti
(pausedApp). Jika panggilan sudah selesai AMS akan kembali ke program dan
memanggil method startApp() lagi. Method display.setCurrent() memberikan informasi
ke sistem bahwa kita menginginkan object Alert untuk dimunculkan ke layar. Kita dapat
mendapat tampilah object dengan memanggil method statis Display.getDisplay().


NetBeans Mobility Pack secara otomatis membuat Java Application Descriptor (JAD)
untuk program Anda. NetBeans Mobility Pack menaruh file JAD pada folder "dist" dari
folder project. Berikut ini adalah contoh file JAD yang dibuat oleh NetBeans Mobility
Pack:


MIDlet-1: HelloMidlet, , HelloMidlet
MIDlet-Jar-Size: 1415
MIDlet-Jar-URL: ProjectHello.jar


Pengembangan Perangkat Mobile                                                       5
J.E.N.I.


MIDlet-Name: ProjectHello
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0


Sekarang kita siap untuk mengcompile, melakukan pemaketan (package) pada aplikasi
MIDlet pertama kita.



2.4 Compilation dan Packaging MIDlets

Sebelum kita menggunakan integrated tools untuk mengcompile dan melakukan
packaging aplikasi MIDlet (MIDlet suite), kita akan mencoba menggunakan command
line.


Aplikasi MIDlet biasanya dipaketkan ke dalam sebuah file yaitu file JAR. File ini adalah
file terkompres, seperti file ZIP. Pada implementasinya, Anda dapat membuka file JAR
menggunakan program dekompresor file ZIP.


Aplikasi MIDlet terdiri dari:


−   File JAR
−   File Java Application Descriptor (JAD)


File JAR memiliki:


−   File class
−   Manifest file describing the contents of the archive
−   File manifest yang menjelaskan isi dari arsip
−   Sumber: image/icon, video, data, dll. Digunakan oleh aplikasi


File manifest, manifest.mf adalah seperti file JAD. File ini digunakan oleh appication
manager dari device. Beberapa field yang diperlukan oleh file manifest adalah:


−   MIDlet-Name
−   MIDlet-Version
−   MIDlet-Vendor
−   MIDlet-<n> (dimana n adalah angka dari 1, untuk setiap MIDlet di file JAR)



Pengembangan Perangkat Mobile                                                          6
J.E.N.I.


−   MicroEdition-Profile
−   MicroEdition-Configuration


Selanjutnya kita mengcompile file source java:


javac -bootclasspath C:WTK23libcldcapi11.jar;C:WTK23libmidpapi20.jar
*.java


Program Compiler Java, "javac", harus berada pada path Anda. Jika anda melihat error
seperti "cannot find file" atau "not an executable", Anda bisa mengkonsultasikan dengan
panduan instalasi untuk distribusi Java development kit Anda tentang bagaimana
memasukkan executable PATH dari lokasi tools yang ada di Java.


Selanjutnya kita melakukan pre-verify dari file class:


preverify
-classpath C:WTK23libcldcapi11.jar;C:WTK23libmidpapi20.jar;.
-d . HelloMidlet


Preverify sudah berada di wireless toolkit dari java.sun.com. Masukkan perintah ini pada
sebuah baris.


Langkah terakhir adalah membuat file JAR tersebut:


jar cvfm HelloMidlet.jar manifest.txt HelloMidlet.class


Program jar sudah berada di Java Development Kit, dan lokasinya harus dimasukkan
pada executeable path Anda. Perintah ini akan membuat file JAR dengan nama file
HelloMidlet.jar. File manifest.txt namanya diganti dengan manifest.mf pada file JAR.




2.5 Menggunakan Sun Wireless Toolkit

Sekarang kita menggunakan Sun Wireless Toolkit untuk mengcompile dan memaketkan
aplikasi MIDlet / MIDlet suite (mengandung satu MIDlet)




Pengembangan Perangkat Mobile                                                          7
J.E.N.I.


Buka ktoolbar (dari Wireless Toolkit distribution):




Buat sebuah project:




Pada Setting window, anda dapat merubah banyak pilihan-pilihan dari beberapa opsi
konfigurasi untuk project Anda. Anda dapat memilih konfigurasi yang akan bekerja,
package/API yang diperlukan, konfigurasi Push Registry dan yang lain. Untuk tujuan kita
kali ini, kita akan menggunakan konfigurasi default project. Click "OK" untuk selesai
membuat project.




Pengembangan Perangkat Mobile                                                         8
J.E.N.I.




Copy HelloMidlet.java kedalam direktori "src": Pada jendela ini berada di direktori:
C:WTK23appsHelloMidletsrc (dimana C:WTK23 adalah lokasi Anda menginstall
wireless toolkit). Click "Build" dan "Run":




Pengembangan Perangkat Mobile                                                      9
J.E.N.I.




Pengembangan Perangkat Mobile   10
J.E.N.I.




Pengembangan Perangkat Mobile   11
J.E.N.I.




2.6 Menggunakan NetBeans Mobility Pack


Seperti yang telah dijelaskan pada awal bab ini tentang hal yang diperlukan, NetBeans
4.1 dan NetBeans Mobility Pack harus sudah terinstall di komputer Anda.


Langkah 1: Membuat project baru




Pengembangan Perangkat Mobile                                                      12
J.E.N.I.


Langkah 2: Memilih kategori "Mobile"




Pengembangan Perangkat Mobile          13
J.E.N.I.


Langkah 3: Memilih "Mobile Application"




Pengembangan Perangkat Mobile             14
J.E.N.I.


Langkah 4: Beri nama project dan tentukan lokasinya
(Hilangkan tanda pada "Create Hello MIDlet", kita akan membuat MIDlet kita sendiri
nantinya)




Step 5: Memilih Platform (optional)




Pengembangan Perangkat Mobile                                                   15
J.E.N.I.




           Gambar 1: Mobile Project yang baru dibuat (NetBeans Mobility Pack)




Pengembangan Perangkat Mobile                                                   16
J.E.N.I.




Langkah 6: Membuat sebuah MIDlet baru




Pengembangan Perangkat Mobile           17
J.E.N.I.


Langkah 7: Memilih MIDP "Category" dan MIDlet "File Type"




Pengembangan Perangkat Mobile                               18
J.E.N.I.




Langkah 8: Memberi nama MIDlet




Pengembangan Perangkat Mobile    19
J.E.N.I.




Langkah 9




 Gambar 2: Membuat MIDlet secara otomatis membuat method MIDlet yang diperlukan




Pengembangan Perangkat Mobile                                                 20
J.E.N.I.


Langkah 10: Mengganti code yang dibuat secara otomatis dengan code program
kita.




Pengembangan Perangkat Mobile                                           21
J.E.N.I.




Langkah 11: Mengcompile dan Menjalankan (Run) MIDlet di Emulator




Pengembangan Perangkat Mobile                                      22
J.E.N.I.


Langkah 12: Menjalankan MIDlet kita di Emulator




Pengembangan Perangkat Mobile                     23
J.E.N.I.




                                Gambar 3: Hello World MIDlet




Pengembangan Perangkat Mobile                                  24
J.E.N.I.




2.7 Latihan
2.7.1 Multiple MIDlets dalam satu MIDlet suite


Tambahkan satu MIDlet baru pada project "ProjectHello". Perlu anda catat bahwa
NetBeans Mobility Pack secara otomatis menambahkan MIDlet baru pada aplikasi file
JAD ketika anda menggunakan "New File..." Wizard.



2.7.2 Multiple MIDlets dalam satu MIDlet suite menggunakan
Wireless Toolkit


Gunakan Sun Wireless Toolkit untuk menambahkan MIDlet baru pada aplikasi MIDlet
anda.




Pengembangan Perangkat Mobile                                                  25

Más contenido relacionado

La actualidad más candente

Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Helmi Mahfudhatul
 
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Devi Apriansyah
 
Jeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interfaceJeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interfaceUNIVERSITY Of LAMPUNG
 
Modul praktikum 7 - Android Sudaryatno
Modul praktikum 7 - Android SudaryatnoModul praktikum 7 - Android Sudaryatno
Modul praktikum 7 - Android SudaryatnoYatno Sudar
 
Jeni J2 Me Bab03 High Level User Interface
Jeni J2 Me Bab03 High Level User InterfaceJeni J2 Me Bab03 High Level User Interface
Jeni J2 Me Bab03 High Level User InterfaceIndividual Consultants
 
Modul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android SudaryatnoModul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android SudaryatnoYatno Sudar
 
15. lampiran listing program
15. lampiran   listing program15. lampiran   listing program
15. lampiran listing programFaza Zahrah
 
Jeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interfaceJeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interfacesainudinuga
 

La actualidad más candente (10)

Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026Java2 micro edition_Helmi MH_1100631026
Java2 micro edition_Helmi MH_1100631026
 
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
 
Jeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interfaceJeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interface
 
Modul praktikum 7 - Android Sudaryatno
Modul praktikum 7 - Android SudaryatnoModul praktikum 7 - Android Sudaryatno
Modul praktikum 7 - Android Sudaryatno
 
Jeni J2 Me Bab03 High Level User Interface
Jeni J2 Me Bab03 High Level User InterfaceJeni J2 Me Bab03 High Level User Interface
Jeni J2 Me Bab03 High Level User Interface
 
Modul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android SudaryatnoModul praktikum 8 - Android Sudaryatno
Modul praktikum 8 - Android Sudaryatno
 
Modul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUIModul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUI
 
15. lampiran listing program
15. lampiran   listing program15. lampiran   listing program
15. lampiran listing program
 
Jeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interfaceJeni slides j2 me-03-high level user interface
Jeni slides j2 me-03-high level user interface
 
36 JBK Borland Delphi 7
36 JBK Borland Delphi 736 JBK Borland Delphi 7
36 JBK Borland Delphi 7
 

Destacado (10)

Jeni j2 me-cover
Jeni j2 me-coverJeni j2 me-cover
Jeni j2 me-cover
 
Jeni j2 me-bab07-security
Jeni j2 me-bab07-securityJeni j2 me-bab07-security
Jeni j2 me-bab07-security
 
Jeni j2 me-bab08-web services
Jeni j2 me-bab08-web servicesJeni j2 me-bab08-web services
Jeni j2 me-bab08-web services
 
Jeni j2 me-bab05-persistence
Jeni j2 me-bab05-persistenceJeni j2 me-bab05-persistence
Jeni j2 me-bab05-persistence
 
Jeni J2 Me Bab06 Jaringan
Jeni J2 Me Bab06 JaringanJeni J2 Me Bab06 Jaringan
Jeni J2 Me Bab06 Jaringan
 
Jeni j2 me-bab06-jaringan
Jeni j2 me-bab06-jaringanJeni j2 me-bab06-jaringan
Jeni j2 me-bab06-jaringan
 
Jeni j2 me-bab03-high level user interface
Jeni j2 me-bab03-high level user interfaceJeni j2 me-bab03-high level user interface
Jeni j2 me-bab03-high level user interface
 
Jeni j2 me-bab10-optional%20packages
Jeni j2 me-bab10-optional%20packagesJeni j2 me-bab10-optional%20packages
Jeni j2 me-bab10-optional%20packages
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahan
 
Jeni j2 me-bab04-low level user interface
Jeni j2 me-bab04-low level user interfaceJeni j2 me-bab04-low level user interface
Jeni j2 me-bab04-low level user interface
 

Similar a Jeni j2 me-bab02-memulai pemrograman mobile

JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJurnal IT
 
Jeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileJeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobilesainudinuga
 
Jeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileJeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileeli priyatna laidan
 
Jeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileJeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileUNIVERSITY Of LAMPUNG
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Debby Ummul
 
Lucky anugerah 1100631020
Lucky anugerah 1100631020Lucky anugerah 1100631020
Lucky anugerah 1100631020Lucky AnugerahP
 
06.77 JAVA SE_adapter classes
06.77 JAVA SE_adapter classes06.77 JAVA SE_adapter classes
06.77 JAVA SE_adapter classesJefri Fahrian
 
Program sms menggunakan java ria
Program sms menggunakan java riaProgram sms menggunakan java ria
Program sms menggunakan java riayayaria
 
Aplinet 1100631006
Aplinet 1100631006Aplinet 1100631006
Aplinet 1100631006yolandalala
 
JENI-J2ME-Bab04-Low Level User Interface.pdf
JENI-J2ME-Bab04-Low Level User Interface.pdfJENI-J2ME-Bab04-Low Level User Interface.pdf
JENI-J2ME-Bab04-Low Level User Interface.pdfJurnal IT
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming TutorialDimas Prawira
 
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJurnal IT
 
Tugas struktur data
Tugas struktur dataTugas struktur data
Tugas struktur dataDevandy Enda
 
Memasang aplikasi phpindonesia_di_windows_7
Memasang aplikasi phpindonesia_di_windows_7Memasang aplikasi phpindonesia_di_windows_7
Memasang aplikasi phpindonesia_di_windows_7Cahya Dwiana SN
 

Similar a Jeni j2 me-bab02-memulai pemrograman mobile (20)

JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
 
Modul psb 1 j2 me
Modul psb 1 j2 meModul psb 1 j2 me
Modul psb 1 j2 me
 
Jeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileJeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobile
 
Dasar java mobile
Dasar java mobileDasar java mobile
Dasar java mobile
 
Jeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileJeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobile
 
Jeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobileJeni slides j2 me-02-memulai pemrograman mobile
Jeni slides j2 me-02-memulai pemrograman mobile
 
Angkasa netbeans
Angkasa netbeansAngkasa netbeans
Angkasa netbeans
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
 
Lucky anugerah 1100631020
Lucky anugerah 1100631020Lucky anugerah 1100631020
Lucky anugerah 1100631020
 
06.77 JAVA SE_adapter classes
06.77 JAVA SE_adapter classes06.77 JAVA SE_adapter classes
06.77 JAVA SE_adapter classes
 
Pemrograman android
Pemrograman androidPemrograman android
Pemrograman android
 
Program sms menggunakan java ria
Program sms menggunakan java riaProgram sms menggunakan java ria
Program sms menggunakan java ria
 
Aplinet 1100631006
Aplinet 1100631006Aplinet 1100631006
Aplinet 1100631006
 
JENI-J2ME-Bab04-Low Level User Interface.pdf
JENI-J2ME-Bab04-Low Level User Interface.pdfJENI-J2ME-Bab04-Low Level User Interface.pdf
JENI-J2ME-Bab04-Low Level User Interface.pdf
 
Introduction on Android programming Tutorial
Introduction on Android programming TutorialIntroduction on Android programming Tutorial
Introduction on Android programming Tutorial
 
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
 
Gamejavaj2me
Gamejavaj2meGamejavaj2me
Gamejavaj2me
 
Laporan p1
Laporan p1Laporan p1
Laporan p1
 
Tugas struktur data
Tugas struktur dataTugas struktur data
Tugas struktur data
 
Memasang aplikasi phpindonesia_di_windows_7
Memasang aplikasi phpindonesia_di_windows_7Memasang aplikasi phpindonesia_di_windows_7
Memasang aplikasi phpindonesia_di_windows_7
 

Más de UNIVERSITY Of LAMPUNG

Jeni j2 me-bab01-pengembangan aplikasi mobile
Jeni j2 me-bab01-pengembangan aplikasi mobileJeni j2 me-bab01-pengembangan aplikasi mobile
Jeni j2 me-bab01-pengembangan aplikasi mobileUNIVERSITY Of LAMPUNG
 
Jeni slides j2 me-10- optional package
Jeni slides j2 me-10- optional packageJeni slides j2 me-10- optional package
Jeni slides j2 me-10- optional packageUNIVERSITY Of LAMPUNG
 
Jeni slides j2 me-04 low level user interface-v 0.2
Jeni slides j2 me-04 low level user interface-v 0.2Jeni slides j2 me-04 low level user interface-v 0.2
Jeni slides j2 me-04 low level user interface-v 0.2UNIVERSITY Of LAMPUNG
 
Jeni slides j2 me-01-pengenalan thdp pembangunan apl mobile
Jeni slides j2 me-01-pengenalan thdp pembangunan apl mobileJeni slides j2 me-01-pengenalan thdp pembangunan apl mobile
Jeni slides j2 me-01-pengenalan thdp pembangunan apl mobileUNIVERSITY Of LAMPUNG
 
Jeni slides j2 me-11-topik-topik tambahan-v0.2
Jeni slides j2 me-11-topik-topik tambahan-v0.2Jeni slides j2 me-11-topik-topik tambahan-v0.2
Jeni slides j2 me-11-topik-topik tambahan-v0.2UNIVERSITY Of LAMPUNG
 

Más de UNIVERSITY Of LAMPUNG (10)

Jeni j2 me-bab01-pengembangan aplikasi mobile
Jeni j2 me-bab01-pengembangan aplikasi mobileJeni j2 me-bab01-pengembangan aplikasi mobile
Jeni j2 me-bab01-pengembangan aplikasi mobile
 
Jeni j2 me-bab09-optimisasi
Jeni j2 me-bab09-optimisasiJeni j2 me-bab09-optimisasi
Jeni j2 me-bab09-optimisasi
 
Jeni slides j2 me-10- optional package
Jeni slides j2 me-10- optional packageJeni slides j2 me-10- optional package
Jeni slides j2 me-10- optional package
 
Jeni slides j2 me-07-security
Jeni slides j2 me-07-securityJeni slides j2 me-07-security
Jeni slides j2 me-07-security
 
Jeni slides j2 me-06-networking
Jeni slides j2 me-06-networkingJeni slides j2 me-06-networking
Jeni slides j2 me-06-networking
 
Jeni slides j2 me-05-persistence
Jeni slides j2 me-05-persistenceJeni slides j2 me-05-persistence
Jeni slides j2 me-05-persistence
 
Jeni slides j2 me-04 low level user interface-v 0.2
Jeni slides j2 me-04 low level user interface-v 0.2Jeni slides j2 me-04 low level user interface-v 0.2
Jeni slides j2 me-04 low level user interface-v 0.2
 
Jeni slides j2 me-01-pengenalan thdp pembangunan apl mobile
Jeni slides j2 me-01-pengenalan thdp pembangunan apl mobileJeni slides j2 me-01-pengenalan thdp pembangunan apl mobile
Jeni slides j2 me-01-pengenalan thdp pembangunan apl mobile
 
Jeni slides j2 me-11-topik-topik tambahan-v0.2
Jeni slides j2 me-11-topik-topik tambahan-v0.2Jeni slides j2 me-11-topik-topik tambahan-v0.2
Jeni slides j2 me-11-topik-topik tambahan-v0.2
 
Jeni slides j2 me-09-optimisasi
Jeni slides j2 me-09-optimisasiJeni slides j2 me-09-optimisasi
Jeni slides j2 me-09-optimisasi
 

Último

Teks ucapan Majlis Perpisahan Lambaian Kasih
Teks ucapan Majlis Perpisahan Lambaian KasihTeks ucapan Majlis Perpisahan Lambaian Kasih
Teks ucapan Majlis Perpisahan Lambaian Kasihssuserfcb9e3
 
P_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.ppt
P_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.pptP_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.ppt
P_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.pptAfifFikri11
 
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptx
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptxAKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptx
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptxHeriyantoHeriyanto44
 
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...NiswatuzZahroh
 
PERTEMUAN 9 KESEIM 3 SEKTOR.............
PERTEMUAN 9 KESEIM 3 SEKTOR.............PERTEMUAN 9 KESEIM 3 SEKTOR.............
PERTEMUAN 9 KESEIM 3 SEKTOR.............SenLord
 
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptxMATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptxrofikpriyanto2
 
MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...
MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...
MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...YosuaElyakim
 
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxKeberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxLeniMawarti1
 
Materi pembelajaran tentang MISIOLOGI.pptx
Materi pembelajaran tentang MISIOLOGI.pptxMateri pembelajaran tentang MISIOLOGI.pptx
Materi pembelajaran tentang MISIOLOGI.pptxoperatorsttmamasa
 
Sejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptSejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptssuser940815
 
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdfAPRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdfVenyHandayani2
 
PPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi Online
PPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi OnlinePPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi Online
PPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi OnlineMMario4
 
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxKeberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxLeniMawarti1
 
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdfAKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdfHeriyantoHeriyanto44
 
Catatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus PerilakuCatatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus PerilakuHANHAN164733
 
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup BangsaDinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup BangsaEzraCalva
 
rpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdfrpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdfGugunGunawan93
 
Mata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptxMata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptxoperatorsttmamasa
 
Buku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfBuku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfWahyudinST
 
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdfsandi625870
 

Último (20)

Teks ucapan Majlis Perpisahan Lambaian Kasih
Teks ucapan Majlis Perpisahan Lambaian KasihTeks ucapan Majlis Perpisahan Lambaian Kasih
Teks ucapan Majlis Perpisahan Lambaian Kasih
 
P_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.ppt
P_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.pptP_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.ppt
P_E_R_I_L_A_K_U__K_O_N_S_E_L_O_R__v.1.ppt
 
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptx
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptxAKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptx
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pptx
 
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
 
PERTEMUAN 9 KESEIM 3 SEKTOR.............
PERTEMUAN 9 KESEIM 3 SEKTOR.............PERTEMUAN 9 KESEIM 3 SEKTOR.............
PERTEMUAN 9 KESEIM 3 SEKTOR.............
 
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptxMATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
 
MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...
MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...
MATERI SESI 1a FILSAFAT DAN ETIKA KOMUNIKASI SKOM 4323 - Konsep-konsep Pemiki...
 
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxKeberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
 
Materi pembelajaran tentang MISIOLOGI.pptx
Materi pembelajaran tentang MISIOLOGI.pptxMateri pembelajaran tentang MISIOLOGI.pptx
Materi pembelajaran tentang MISIOLOGI.pptx
 
Sejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptSejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.ppt
 
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdfAPRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
 
PPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi Online
PPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi OnlinePPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi Online
PPT PERLINDUNGAN KONSUMEN .Pengertian Transaksi Online
 
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxKeberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
 
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdfAKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
AKSI NYATA MODUL 1.3 VISI GURU PENGGERAK.pdf
 
Catatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus PerilakuCatatan di setiap Indikator Fokus Perilaku
Catatan di setiap Indikator Fokus Perilaku
 
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup BangsaDinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
 
rpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdfrpp bangun-ruang-sisi-datar kelas 8 smp.pdf
rpp bangun-ruang-sisi-datar kelas 8 smp.pdf
 
Mata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptxMata Kuliah Etika dalam pembelajaran Kristen.pptx
Mata Kuliah Etika dalam pembelajaran Kristen.pptx
 
Buku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfBuku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdf
 
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
 

Jeni j2 me-bab02-memulai pemrograman mobile

  • 1. J.E.N.I. Bab 2 Memulai Pemrograman Mobile 2.1 Tujuan In this section, we will be delving into writing, building, using the emulator and packaging J2ME applications. The Integrated Programming Environment that we will use is NetBeans 4.1 (www.netbeans.org) and NetBeans Mobility Pack. Pada bagian ini, kita akan menggali tentang menulis, membangun, menggunakan emulator dan melakukan packaging aplikasi J2ME. Integrated Programming Environment yang akan kita gunakan adalah NetBeans 4.1 (www.netbeans.org) dan NetBeans Mobility Pack. Setelah menyelesaikan bagian ini, siswa diharapkan mampu: • Membuat MIDlet sederhana • Membuat sebuah project di NetBeans • Membuat sebuah MIDlet menggunakan NetBeans Mobility Pack • Menjalankan MIDlet di emulator 2.2 Pengenalan IDE (Integrated Development Environment) adalah sebuah lingkungan pemrograman (programming environment) yang memiliki GUI builder, text atau code editor, compiler dan/atau interpreter dan debugger. Dalam hal ini, NetBeans Mobility Pack juga memiliki device emulator. Fasilitas ini bisa membuat kita melihat program kita pada device yang sesungguhnya. 2.3 "Hello, world!" MIDlet Kita sudah mempelajari pada bagian sebelumnya tentang daur hidup MIDlet (MIDlet's life cycle). MIDlet mulai hidup ketika MIDlet dibuat oleh Application Management System (AMS) pada device. Pengembangan Perangkat Mobile 1
  • 2. J.E.N.I. 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. new destroyApp() startApp() Paused Destroyed Active pauseApp() destroyApp() Tidak seperti program Java pada umumnya dimana method main() hanya digunakan sekali pada jalannya program, method startApp() mungkin akan dipanggil lebih dari sekali dalam daur hidup MIDlet. Sehingga Anda diharuskan tidak membuat satu inisialisasi code pada method startApp(). Daripada, anda dapat membuat MIDlet consturctor dan melakukan inisialisasi di situ. Berikut ini adalah code program MIDP pertama kita: /* * HelloMidlet.java * * Created on July 8, 2000, 9:00 AM */ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * * @author JEDI Apprentice Pengembangan Perangkat Mobile 2
  • 3. J.E.N.I. * @version */ public class HelloMidlet extends MIDlet implements CommandListener { Display display; Command exitCommand = new Command("Exit", Command.EXIT, 1); Alert helloAlert; public HelloMidlet(){ helloAlert = new Alert( "Hello MIDlet", "Hello, world!", null, AlertType.INFO ); helloAlert.setTimeout(Alert.FOREVER); helloAlert.addCommand(exitCommand); helloAlert.setCommandListener(this); } public void startApp() { if (display == null){ display = Display.getDisplay(this); } display.setCurrent(helloAlert); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d){ if (c == exitCommand){ destroyApp(true); notifyDestroyed(); // Exit } Pengembangan Perangkat Mobile 3
  • 4. J.E.N.I. } } Selanjutnya kita akan mempelajari MIDlet pertama kita, difokuskan pada line yang penting dari code diatas: public class HelloMidlet extends MIDlet implements CommandListener { Seperti yang sudah kita katakan sebelumnya, kita harus membuat subclass dari MIDlet untuk membuat MIDP program. Pada line ini, kita sudah membuat subclass dari MIDlet dengan memberikan turunan kelas induk dan menamakannya HelloMIDlet. Display display; Command exitCommand = new Command("Exit", Command.EXIT, 1); Alert helloAlert; Line diatas ini adalah variabel properties dari MIDlet. Kita membutuhkan object Display (hanya ada satu diplay per MIDlet) untuk melakukan fungsi menggambar pada layar. exitCommand adalah perintah yang akan kita taruh pada layar agar kita dapat keluar dari program. Jika kita tidak memiliki perintah keluar, maka kita tidak memiliki cara untuk keluar dari MIDlet dengan benar. public HelloMidlet(){ helloAlert = new Alert( "Hello MIDlet", "Hello, world!", null, AlertType.INFO ); helloAlert.setTimeout(Alert.FOREVER); helloAlert.addCommand(exitCommand); helloAlert.setCommandListener(this); } Consturctor melakukan inisialisasi dari object Alert. Kita akan mempelajari lebih lanjut dari Alert class pada bab berikutnya. Method addCommand() pada object Alert memberikan perintah "Exit" pada layar. Method setCommandListener() memberikan informasi kepada sistem untuk memberikan semua command events ke MIDlet. Pengembangan Perangkat Mobile 4
  • 5. J.E.N.I. public class HelloMidlet extends MIDlet implements CommandListener { Code "implements CommandListener" adalah untuk command/key presses, sehingga program kita mampu menghandle "command" events. Jika kita melakukan implement CommandListener, kita harus membuat method commandAction(). public void commandAction(Command c, Displayable d){ if (c == exitCommand){ destroyApp(true); notifyDestroyed(); // Exit } } commandAction() diatas hanya menghandle request untuk perintah "Exit". Method diatas akan menghentikan program menggunakan notifyDestroyed() jika perintah "Exit" dijalankan atau ditekan. public void startApp() { if (display == null){ display = Display.getDisplay(this); } display.setCurrent(helloAlert); } Code diatas adalah bagian awal dari program kita ketika program kita sudah siap untuk ditampilkan oleh AMS. Perlu diingat bahwa method startApp() mungkin / bisa dimasukkan lebih dari sekali seperti pada daur hidup MIDlet. Jika MIDlet berhenti / dihentikan, seperti bila ada telepon masuk, program akan masuk ke state berhenti (pausedApp). Jika panggilan sudah selesai AMS akan kembali ke program dan memanggil method startApp() lagi. Method display.setCurrent() memberikan informasi ke sistem bahwa kita menginginkan object Alert untuk dimunculkan ke layar. Kita dapat mendapat tampilah object dengan memanggil method statis Display.getDisplay(). NetBeans Mobility Pack secara otomatis membuat Java Application Descriptor (JAD) untuk program Anda. NetBeans Mobility Pack menaruh file JAD pada folder "dist" dari folder project. Berikut ini adalah contoh file JAD yang dibuat oleh NetBeans Mobility Pack: MIDlet-1: HelloMidlet, , HelloMidlet MIDlet-Jar-Size: 1415 MIDlet-Jar-URL: ProjectHello.jar Pengembangan Perangkat Mobile 5
  • 6. J.E.N.I. MIDlet-Name: ProjectHello MIDlet-Vendor: Vendor MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 Sekarang kita siap untuk mengcompile, melakukan pemaketan (package) pada aplikasi MIDlet pertama kita. 2.4 Compilation dan Packaging MIDlets Sebelum kita menggunakan integrated tools untuk mengcompile dan melakukan packaging aplikasi MIDlet (MIDlet suite), kita akan mencoba menggunakan command line. Aplikasi MIDlet biasanya dipaketkan ke dalam sebuah file yaitu file JAR. File ini adalah file terkompres, seperti file ZIP. Pada implementasinya, Anda dapat membuka file JAR menggunakan program dekompresor file ZIP. Aplikasi MIDlet terdiri dari: − File JAR − File Java Application Descriptor (JAD) File JAR memiliki: − File class − Manifest file describing the contents of the archive − File manifest yang menjelaskan isi dari arsip − Sumber: image/icon, video, data, dll. Digunakan oleh aplikasi File manifest, manifest.mf adalah seperti file JAD. File ini digunakan oleh appication manager dari device. Beberapa field yang diperlukan oleh file manifest adalah: − MIDlet-Name − MIDlet-Version − MIDlet-Vendor − MIDlet-<n> (dimana n adalah angka dari 1, untuk setiap MIDlet di file JAR) Pengembangan Perangkat Mobile 6
  • 7. J.E.N.I. − MicroEdition-Profile − MicroEdition-Configuration Selanjutnya kita mengcompile file source java: javac -bootclasspath C:WTK23libcldcapi11.jar;C:WTK23libmidpapi20.jar *.java Program Compiler Java, "javac", harus berada pada path Anda. Jika anda melihat error seperti "cannot find file" atau "not an executable", Anda bisa mengkonsultasikan dengan panduan instalasi untuk distribusi Java development kit Anda tentang bagaimana memasukkan executable PATH dari lokasi tools yang ada di Java. Selanjutnya kita melakukan pre-verify dari file class: preverify -classpath C:WTK23libcldcapi11.jar;C:WTK23libmidpapi20.jar;. -d . HelloMidlet Preverify sudah berada di wireless toolkit dari java.sun.com. Masukkan perintah ini pada sebuah baris. Langkah terakhir adalah membuat file JAR tersebut: jar cvfm HelloMidlet.jar manifest.txt HelloMidlet.class Program jar sudah berada di Java Development Kit, dan lokasinya harus dimasukkan pada executeable path Anda. Perintah ini akan membuat file JAR dengan nama file HelloMidlet.jar. File manifest.txt namanya diganti dengan manifest.mf pada file JAR. 2.5 Menggunakan Sun Wireless Toolkit Sekarang kita menggunakan Sun Wireless Toolkit untuk mengcompile dan memaketkan aplikasi MIDlet / MIDlet suite (mengandung satu MIDlet) Pengembangan Perangkat Mobile 7
  • 8. J.E.N.I. Buka ktoolbar (dari Wireless Toolkit distribution): Buat sebuah project: Pada Setting window, anda dapat merubah banyak pilihan-pilihan dari beberapa opsi konfigurasi untuk project Anda. Anda dapat memilih konfigurasi yang akan bekerja, package/API yang diperlukan, konfigurasi Push Registry dan yang lain. Untuk tujuan kita kali ini, kita akan menggunakan konfigurasi default project. Click "OK" untuk selesai membuat project. Pengembangan Perangkat Mobile 8
  • 9. J.E.N.I. Copy HelloMidlet.java kedalam direktori "src": Pada jendela ini berada di direktori: C:WTK23appsHelloMidletsrc (dimana C:WTK23 adalah lokasi Anda menginstall wireless toolkit). Click "Build" dan "Run": Pengembangan Perangkat Mobile 9
  • 12. J.E.N.I. 2.6 Menggunakan NetBeans Mobility Pack Seperti yang telah dijelaskan pada awal bab ini tentang hal yang diperlukan, NetBeans 4.1 dan NetBeans Mobility Pack harus sudah terinstall di komputer Anda. Langkah 1: Membuat project baru Pengembangan Perangkat Mobile 12
  • 13. J.E.N.I. Langkah 2: Memilih kategori "Mobile" Pengembangan Perangkat Mobile 13
  • 14. J.E.N.I. Langkah 3: Memilih "Mobile Application" Pengembangan Perangkat Mobile 14
  • 15. J.E.N.I. Langkah 4: Beri nama project dan tentukan lokasinya (Hilangkan tanda pada "Create Hello MIDlet", kita akan membuat MIDlet kita sendiri nantinya) Step 5: Memilih Platform (optional) Pengembangan Perangkat Mobile 15
  • 16. J.E.N.I. Gambar 1: Mobile Project yang baru dibuat (NetBeans Mobility Pack) Pengembangan Perangkat Mobile 16
  • 17. J.E.N.I. Langkah 6: Membuat sebuah MIDlet baru Pengembangan Perangkat Mobile 17
  • 18. J.E.N.I. Langkah 7: Memilih MIDP "Category" dan MIDlet "File Type" Pengembangan Perangkat Mobile 18
  • 19. J.E.N.I. Langkah 8: Memberi nama MIDlet Pengembangan Perangkat Mobile 19
  • 20. J.E.N.I. Langkah 9 Gambar 2: Membuat MIDlet secara otomatis membuat method MIDlet yang diperlukan Pengembangan Perangkat Mobile 20
  • 21. J.E.N.I. Langkah 10: Mengganti code yang dibuat secara otomatis dengan code program kita. Pengembangan Perangkat Mobile 21
  • 22. J.E.N.I. Langkah 11: Mengcompile dan Menjalankan (Run) MIDlet di Emulator Pengembangan Perangkat Mobile 22
  • 23. J.E.N.I. Langkah 12: Menjalankan MIDlet kita di Emulator Pengembangan Perangkat Mobile 23
  • 24. J.E.N.I. Gambar 3: Hello World MIDlet Pengembangan Perangkat Mobile 24
  • 25. J.E.N.I. 2.7 Latihan 2.7.1 Multiple MIDlets dalam satu MIDlet suite Tambahkan satu MIDlet baru pada project "ProjectHello". Perlu anda catat bahwa NetBeans Mobility Pack secara otomatis menambahkan MIDlet baru pada aplikasi file JAD ketika anda menggunakan "New File..." Wizard. 2.7.2 Multiple MIDlets dalam satu MIDlet suite menggunakan Wireless Toolkit Gunakan Sun Wireless Toolkit untuk menambahkan MIDlet baru pada aplikasi MIDlet anda. Pengembangan Perangkat Mobile 25