Introduction to Java ME - · PDF filelingkungan pemrograman yang konsisten dan sedapat mungkin...

Post on 06-Feb-2018

226 views 0 download

Transcript of Introduction to Java ME - · PDF filelingkungan pemrograman yang konsisten dan sedapat mungkin...

Introduction toIntroduction to

Java MEJava MEIntroduction toIntroduction to

Java MEJava MEIntroduction toIntroduction to

Java MEJava MEIntroduction toIntroduction to

Java MEJava ME

Full Day Java and Android SeminarFull Day Java and Android SeminarTangerangTangerang, 11, 11 DesemberDesember 20112011

DedyDedy AlamsyahAlamsyah

Profil

Dedy Alamsyah Moslem Asli made-in Tangerang Perguruan Tinggi Raharja (STMIK Raharja) Dept Head IT : PT Alamkaca Prabawa Indonesia + Dosen STMIK Raharja Kenal Java dari tahun 2005 Email : wafasa@gmail.com Ym : dygorgonites FB : www.facebook.com/alamsyahdedy Web : wafasa.wordpress.com (dah lama ndak diupdate)

Dedy Alamsyah Moslem Asli made-in Tangerang Perguruan Tinggi Raharja (STMIK Raharja) Dept Head IT : PT Alamkaca Prabawa Indonesia + Dosen STMIK Raharja Kenal Java dari tahun 2005 Email : wafasa@gmail.com Ym : dygorgonites FB : www.facebook.com/alamsyahdedy Web : wafasa.wordpress.com (dah lama ndak diupdate)

Karakteristik Perangkat Mobile

Ukuran yang kecil Memory yang terbatas Daya proses yang terbatas Mengkonsumsi daya yang rendah Kuat dan dapat diandalkan Konektivitas yang terbatas Masa hidup yang pendek

Ukuran yang kecil Memory yang terbatas Daya proses yang terbatas Mengkonsumsi daya yang rendah Kuat dan dapat diandalkan Konektivitas yang terbatas Masa hidup yang pendek

Sekilas JME (Java Mobile Edition)

JME -> SUN -> Oracle so .. Java -> Oracle Platform Java untuk “Small Device” Bagian dari J2SE Pertama kali release pertengahan Juni 1999 Target devices: Two-way pagers Mobile phones, smart phones, PDA’s PDAs (inc PocketPCs) TVs, VCRs, CD players

Hampir semua peralatan mobile phone supprt JME

JME -> SUN -> Oracle so .. Java -> Oracle Platform Java untuk “Small Device” Bagian dari J2SE Pertama kali release pertengahan Juni 1999 Target devices: Two-way pagers Mobile phones, smart phones, PDA’s PDAs (inc PocketPCs) TVs, VCRs, CD players

Hampir semua peralatan mobile phone supprt JME

Why JME

Portabel (WORA) Write Once Run Anywhere Standard (SCJP) Sudah didisain dan dioptimasi untuk “Small Devices” Mewarisi “sebagian” ketangguhan JSE: Thread Security Exception API seperti : Java.io Java.lang Java.util

Portabel (WORA) Write Once Run Anywhere Standard (SCJP) Sudah didisain dan dioptimasi untuk “Small Devices” Mewarisi “sebagian” ketangguhan JSE: Thread Security Exception API seperti : Java.io Java.lang Java.util

JME Buzz word

MIDP (Mobile Informatioan Device Profile) MIDlet adalah aplikasi Java yang berjalan pada paket J2ME. CDC (Connected Devices Configuration) CLDC (Connected Limited Devices Configuration) JAR (Java Archice ) Kumpulan file class java hasil compiled & file-file tambahan lainnya (image, dll) yang

dicompress sedemikian rupa. JAD (Java Application Descriptor) adalah sebuah file konfigurasi yang menjelaskan tentang file .jar, url

alamat file jar, sertifikat, (penjelasan & konfigurasi aplikasi MIDLet yng dibuat tsb). Mobile Devices dalam hal ini adalah emulator perangkat genggam (handphone, dll) standard (beberapa

spek tergantung vendor) yang support cldc dan midp sesuai dengan versinya masing-masing KVM (Kilo Virtual Machine) VM spesial untuk perangkat mobile (cldc)

40 sd 80 KB memory, 16 bit processor dng clock speed 25Mhz OTA (Over The Air) -> Download dan langsung install

MIDP (Mobile Informatioan Device Profile) MIDlet adalah aplikasi Java yang berjalan pada paket J2ME. CDC (Connected Devices Configuration) CLDC (Connected Limited Devices Configuration) JAR (Java Archice ) Kumpulan file class java hasil compiled & file-file tambahan lainnya (image, dll) yang

dicompress sedemikian rupa. JAD (Java Application Descriptor) adalah sebuah file konfigurasi yang menjelaskan tentang file .jar, url

alamat file jar, sertifikat, (penjelasan & konfigurasi aplikasi MIDLet yng dibuat tsb). Mobile Devices dalam hal ini adalah emulator perangkat genggam (handphone, dll) standard (beberapa

spek tergantung vendor) yang support cldc dan midp sesuai dengan versinya masing-masing KVM (Kilo Virtual Machine) VM spesial untuk perangkat mobile (cldc)

40 sd 80 KB memory, 16 bit processor dng clock speed 25Mhz OTA (Over The Air) -> Download dan langsung install

Java 2 Platform

Arsitektur JME Secara Umum

Kutipan dari J2ME “(http://java.sun.com/j2me/faq.html)FAQ: Konfigurasi dan Profil didefinisikan oleh “OpenIndustry” yang berdasar dari standar Sun JavaCommunity Process (SCJP)Program.Dengan cara ini pihak vendor dapat memutuskan sendiriapa unsur-unsur yang diperlukan untukmenyediakan solusi lengkap yang ditargetkan padaperalatan (handset) buatan mereka. Untuk informasi lebihlanjut tentang SCJP, lihat: http://jcp.org”

Kutipan dari J2ME “(http://java.sun.com/j2me/faq.html)FAQ: Konfigurasi dan Profil didefinisikan oleh “OpenIndustry” yang berdasar dari standar Sun JavaCommunity Process (SCJP)Program.Dengan cara ini pihak vendor dapat memutuskan sendiriapa unsur-unsur yang diperlukan untukmenyediakan solusi lengkap yang ditargetkan padaperalatan (handset) buatan mereka. Untuk informasi lebihlanjut tentang SCJP, lihat: http://jcp.org”

JME Stack (Con’t) Configuration

merupakan spesifikasi yang mendefinisikan lingkungan perangkat lunak untuk berbagai peralatanberdasarkan sekumpulan karakteristik, seperti tipe dan jumlah memori yang tersedia, tipe dankecepatan processor, dan tipe koneksi jaringan yang tersedia. Configuration diharapkan dapatmerepresentasikan platform minimum bagi peralatan target. Vendor diperlukan untukmengimplementasikan spesikasi secara lengkap sehingga para pengembang dapat mengandalkanlingkungan pemrograman yang konsisten dan sedapat mungkin membuat aplikasi-aplikasi yangkompatibel dengan berbagai peralatan. Hingga saat ini terdapat dua J2ME configuration, yaitu :

CLDC, ditujukan pada peralatan elektronik yang memiliki sumber daya yang sangat terbatasdan dikembangkan untuk keperluan wireless Java, yang memungkinkan pengguna teleponseluler atau PDA untuk menginstalasi aplikasi Java (MIDlet) ke peralatan mereka;

CDC, ditujukan pada peralatan elektronik yang terletak antara peralatan yang didukung CLDCdan sistem desktop yang didukung J2SE, seperti set-top box,web telephone, dan high-end PDA.

Setiap configuration terdiri dari JVM dan kumpulan kelas Java yang menyediakan lingkunganpemrograman bagi pembuatan aplikasi. Spesifikasi configuration tidak mengharuskanimplementasi Java menggunakan virtual machine yang spesifik. Para vendor bebasmembuat virtual machine mereka sendiri asalkan memenuhi persyaratan minimum spesifikasi.Sun menyediakan implementasi kedua configurationdi atas, yang dapat menjadi pedoman bagipara vendor di mana JVM untuk implementasi CLDC dinamakan Kilobyte VirtualMachine (KVM) dan untuk implementasi CDC dinamakan CVM.

Configurationmerupakan spesifikasi yang mendefinisikan lingkungan perangkat lunak untuk berbagai peralatanberdasarkan sekumpulan karakteristik, seperti tipe dan jumlah memori yang tersedia, tipe dankecepatan processor, dan tipe koneksi jaringan yang tersedia. Configuration diharapkan dapatmerepresentasikan platform minimum bagi peralatan target. Vendor diperlukan untukmengimplementasikan spesikasi secara lengkap sehingga para pengembang dapat mengandalkanlingkungan pemrograman yang konsisten dan sedapat mungkin membuat aplikasi-aplikasi yangkompatibel dengan berbagai peralatan. Hingga saat ini terdapat dua J2ME configuration, yaitu :

CLDC, ditujukan pada peralatan elektronik yang memiliki sumber daya yang sangat terbatasdan dikembangkan untuk keperluan wireless Java, yang memungkinkan pengguna teleponseluler atau PDA untuk menginstalasi aplikasi Java (MIDlet) ke peralatan mereka;

CDC, ditujukan pada peralatan elektronik yang terletak antara peralatan yang didukung CLDCdan sistem desktop yang didukung J2SE, seperti set-top box,web telephone, dan high-end PDA.

Setiap configuration terdiri dari JVM dan kumpulan kelas Java yang menyediakan lingkunganpemrograman bagi pembuatan aplikasi. Spesifikasi configuration tidak mengharuskanimplementasi Java menggunakan virtual machine yang spesifik. Para vendor bebasmembuat virtual machine mereka sendiri asalkan memenuhi persyaratan minimum spesifikasi.Sun menyediakan implementasi kedua configurationdi atas, yang dapat menjadi pedoman bagipara vendor di mana JVM untuk implementasi CLDC dinamakan Kilobyte VirtualMachine (KVM) dan untuk implementasi CDC dinamakan CVM.

JME Stack (Con’t)

ProfileDimaksudkan untuk memperkaya fitur configuration dengan menyediakan tambahan kelas yang lebihspesifik ke tipe peralatan. MIDP merupakan J2ME profileyang paling dikenal saat ini karena peralatan yangmendukung MIDP (seperti telepon seluler dan PDA) merupakan produk yang sangat dibutuhkan pasar.Adanya fitur konektivitas Internet pada peralatan-peralatan yang mendukung MIDP membuat merekamenjadi platform yang sangat menarik untuk aplikasi distribusi.Perpaduan antara CLDC dan MIDP menyediakan fungsionalitas untuk melakukan konektivitas ke Internet,mengelola record management system, membuat antarmuka aplikasi (termasuk game), memainkan dataaudio dan video, dan lain-lain, yang memungkinkan berbagai aplikasi diimplementasikan di peralatan-peralatan yang mendukung MIDP.

Optional APIMendefinisikan fungsionalitas tambahan yang dapat disertakan ke platform J2ME. Contoh optionalAPI pada platform J2ME antara lain Web Service Access for J2ME, Java API for Bluetooth WirelessTechnology (JABWT), Wireless Messaging API 1.1, Wireless Messaging API 2.0, Mobile Media API,dan Location API for J2ME.

ProfileDimaksudkan untuk memperkaya fitur configuration dengan menyediakan tambahan kelas yang lebihspesifik ke tipe peralatan. MIDP merupakan J2ME profileyang paling dikenal saat ini karena peralatan yangmendukung MIDP (seperti telepon seluler dan PDA) merupakan produk yang sangat dibutuhkan pasar.Adanya fitur konektivitas Internet pada peralatan-peralatan yang mendukung MIDP membuat merekamenjadi platform yang sangat menarik untuk aplikasi distribusi.Perpaduan antara CLDC dan MIDP menyediakan fungsionalitas untuk melakukan konektivitas ke Internet,mengelola record management system, membuat antarmuka aplikasi (termasuk game), memainkan dataaudio dan video, dan lain-lain, yang memungkinkan berbagai aplikasi diimplementasikan di peralatan-peralatan yang mendukung MIDP.

Optional APIMendefinisikan fungsionalitas tambahan yang dapat disertakan ke platform J2ME. Contoh optionalAPI pada platform J2ME antara lain Web Service Access for J2ME, Java API for Bluetooth WirelessTechnology (JABWT), Wireless Messaging API 1.1, Wireless Messaging API 2.0, Mobile Media API,dan Location API for J2ME.

JME mempunyai 2 konfigurasi

CDC (Connected Device Konfiguration) CLDC (Connected Limited Device Konfiguration)

Arsitektur MIDP

Package di JME

Kelas-kelas untuk UI

High Level UILow Level UI

Networking and the Generic ConnectionFramework

CLDC Generic Connection Framework MIDP 2.0 Generic Connection Framework

Contoh Tampilan

Proses Kompilasi di JME

Struktur Project JME

J2ME/apps/{proj} source, resource, dan file-file binary J2ME/apps/{proj}/bin JAR, JAD, unpacked manifest files. J2ME/apps/{proj}/lib Class-class external libraries, (JAR or ZIP) untuk project tertentu J2ME/apps/{proj}/res resource files J2ME/apps/{proj}/src source files J2ME/apps/lib external class libraries, (JAR or ZIP) for all KToolbar projects.

J2ME/apps/{proj} source, resource, dan file-file binary J2ME/apps/{proj}/bin JAR, JAD, unpacked manifest files. J2ME/apps/{proj}/lib Class-class external libraries, (JAR or ZIP) untuk project tertentu J2ME/apps/{proj}/res resource files J2ME/apps/{proj}/src source files J2ME/apps/lib external class libraries, (JAR or ZIP) for all KToolbar projects.

Komunikasi di JME

Penyimpanan di JME

RMS (Record Mangement System)

Simple RMS pada J2ME RMS(Record Management System) merupakansuatu mekanisme yang digunakan oleh MIDP untuk menyimpan data,pada dasarnya RMS menyimpan kumpulan kumpulan record pada memoripersistance, memori persistance adalah suatu bentuk penyimpanan non-volatile dalam sebuah aplikasi Midlet, untuk menyimpan data tersebutdiperlukan sebuah class RecordStore, class ini digunakan untuk membukasuatu ruang penyimpan

Non relational database Bentuk umum :

RecordStore.openRecordStore(String recordStoreName, boolean createIfNecessary)

RMS (Record Mangement System)

Simple RMS pada J2ME RMS(Record Management System) merupakansuatu mekanisme yang digunakan oleh MIDP untuk menyimpan data,pada dasarnya RMS menyimpan kumpulan kumpulan record pada memoripersistance, memori persistance adalah suatu bentuk penyimpanan non-volatile dalam sebuah aplikasi Midlet, untuk menyimpan data tersebutdiperlukan sebuah class RecordStore, class ini digunakan untuk membukasuatu ruang penyimpan

Non relational database Bentuk umum :

RecordStore.openRecordStore(String recordStoreName, boolean createIfNecessary)

Siklus MIDlet

Controlled byAMS

(If An Exception is thrown)

New

Penjelasan Siklus MIDlet

1. Ketika MIDLet dijalankan, sebuah instance dibuat. Konstruktor MIDlet dijalankandan MIDlet memasuki fase Jeda (Paused)

2. Selanjutnya, MIDlet masuk ke fase Aktik setelah AMS memanggil methodstartApp().

3. Selama MIDlet dalam posisi Aktif, AMS dapat dapat memberhentikan sementaradengan memanggil method pauseApp(). Hal ini berefek kepada kembalinyaMIDlet ke fase Jeda (Paused). Sebuah MIDlet dapat menempatkan dirinya sendirike fase Jeda (Paused) dengan memanggil method notifyPaused().

4. Selama MIDlet dalam fase Jeda (Paused), AMS dapat memanggil methodstartApp() untuk kembali ke fase Aktif.

5. AMS (Application Management Software) dapat menghentikan eksekusi dariMIDlet dengan memanggil method destroyApp(), yang dalam hal ini MIDletharus juga menunggu proses “garbage collection”. Dan akhirnya MIDlet dapat“membunuh” dirinya sendiri dengan memanggil method notifyDestroyed().

1. Ketika MIDLet dijalankan, sebuah instance dibuat. Konstruktor MIDlet dijalankandan MIDlet memasuki fase Jeda (Paused)

2. Selanjutnya, MIDlet masuk ke fase Aktik setelah AMS memanggil methodstartApp().

3. Selama MIDlet dalam posisi Aktif, AMS dapat dapat memberhentikan sementaradengan memanggil method pauseApp(). Hal ini berefek kepada kembalinyaMIDlet ke fase Jeda (Paused). Sebuah MIDlet dapat menempatkan dirinya sendirike fase Jeda (Paused) dengan memanggil method notifyPaused().

4. Selama MIDlet dalam fase Jeda (Paused), AMS dapat memanggil methodstartApp() untuk kembali ke fase Aktif.

5. AMS (Application Management Software) dapat menghentikan eksekusi dariMIDlet dengan memanggil method destroyApp(), yang dalam hal ini MIDletharus juga menunggu proses “garbage collection”. Dan akhirnya MIDlet dapat“membunuh” dirinya sendiri dengan memanggil method notifyDestroyed().

Tools untuk develop JME

JME SDK Editor (Netbeans + Mobility Pack, Eclipse ME, Gel, Notepad ++) Emulator Toolkit (Java Platform Micro Edition SDK, Sun Wireless Toolkit,

Sprint Wireless Toolkit, dll)

Java MobileSDK

Java MobileSDK

JME

Simpel DemoSimpel Demo

Sun Wireless Toolkit

Jalankan Sun Wireless Ktoolbar New Project -> Isi nama project , Nama Class -> Create Project Navigasi ke folder hasil generate SWTK Toolbar -> folder src Buat satu buah file MIDLet dengan Nama HelloJME.java dan isi dengan kode java Lewat Ktoolbar tekan tombol Buil untuk compiled dan Klik Run untuk menjalankan file tsb.

Netbeans

Install SDK Install Netbeans with Mobility Pack Install Sun Wireless Toolkit

From Netbeans1. New -> Project

Install SDK Install Netbeans with Mobility Pack Install Sun Wireless Toolkit

From Netbeans1. New -> Project

1. New -> Project-> Java ME -> Mobile Application

2. Isi Project Name (Uncheck pilihan Create HelloMIDlet) -> Next

3. Pilih Platform (Sun WTK), Device Configurationdan Device Profile -> Next -> Finish

4. Dari project yg tadi dibuat -> New -> MIDlet->Beri Nama -> Finish

5. Default “Code Generated” aplikasi MIDlet

6. Create Hello JME

7. Klik kanan project -> Clean & Build -> Run

JME

DEMO(JME)DEMO(JME)

JME Selanjutnya ?

Solusi untuk keterbatasa UI

LWUIT JMEPOLISH

Solusi untuk keterbatasa UI

LWUIT JMEPOLISH

LWUIT (Lightweight User Interface Toolkit)

Apasih LWUIT ?

LWUIT - > Lightweight UI Toolkit LWUIT dari SUN -> Oracle LWUIT is 100% gratis untuk tujuan Commercial dan non-commercial dan menggunakan lisensi GPL +

“Classpath exception” yang artinya LWUIT bebas didistribusikan di dalam aplikasi yang kita buat. Awalnya sekedar “Library UI” untuk menutupi keterbatasan JME Versi terbaru LWUIT adalah 1.5 Dapat didownload di

http://www.oracle.com/technetwork/java/javame/javamobile/download/lwuit/index.html LWUIT compatible di JME, Blackberry, Android Versi terbaru sudah support fungsi yang lain:

LWUIT - > Lightweight UI Toolkit LWUIT dari SUN -> Oracle LWUIT is 100% gratis untuk tujuan Commercial dan non-commercial dan menggunakan lisensi GPL +

“Classpath exception” yang artinya LWUIT bebas didistribusikan di dalam aplikasi yang kita buat. Awalnya sekedar “Library UI” untuk menutupi keterbatasan JME Versi terbaru LWUIT adalah 1.5 Dapat didownload di

http://www.oracle.com/technetwork/java/javame/javamobile/download/lwuit/index.html LWUIT compatible di JME, Blackberry, Android Versi terbaru sudah support fungsi yang lain:

Fitur dari LWUIT

LWUIT Designer - Allows creating themes, user interfaces (GUI builder), localization etc. Swing Like MVC (Model View Controller) Layouts PLAF (Pluggable Look And Feel) & Themes Fonts Touch UI - Tensile/tactile drag and touch UI XML/HTML Animations & Transitions Rich widgets 3D Integration (Optional) Painters Modal Dialogs External Tools I18N/L10N (Localization) Virtual keyboard SVG Integration (Optional)

LWUIT Designer - Allows creating themes, user interfaces (GUI builder), localization etc. Swing Like MVC (Model View Controller) Layouts PLAF (Pluggable Look And Feel) & Themes Fonts Touch UI - Tensile/tactile drag and touch UI XML/HTML Animations & Transitions Rich widgets 3D Integration (Optional) Painters Modal Dialogs External Tools I18N/L10N (Localization) Virtual keyboard SVG Integration (Optional)

LWUIT – Sekilas API

Contoh Tampilan

LWUIT Sekilas API (Con’t)

From : http://lwuit.java.net/nonav/iodocs/index.html

LWUIT V 1.5 (What’s New)

LWUIT V 1.5 (What’s New) (Con’t)

LWUIT “IDE” Designer (LWUIT Resources Editor)

Apa sih LWUIT Resources Editor itu ?

Sebuah aplikasi visual GUI Standalone yang dibuat dari Java Hanya terdiri dari sebuah file .jar (ResourceEditor.jar) Membuat, mengedit package resource dari aplikasi LWUIT Juga mampu membuat theme, animation dan dapat dipreview Dapat mengekspor menjadi Netbeans Project Format file berextensi .res (contoh : theme.res) Terdapat dalam paket ketika kita mendownload LWUIT versi terbaru. Terdapat di direktori resources editor di dalam folder root LWUIT.

Sebuah aplikasi visual GUI Standalone yang dibuat dari Java Hanya terdiri dari sebuah file .jar (ResourceEditor.jar) Membuat, mengedit package resource dari aplikasi LWUIT Juga mampu membuat theme, animation dan dapat dipreview Dapat mengekspor menjadi Netbeans Project Format file berextensi .res (contoh : theme.res) Terdapat dalam paket ketika kita mendownload LWUIT versi terbaru. Terdapat di direktori resources editor di dalam folder root LWUIT.

LWUIT

DEMO(LWUIT)

Resource EditorLWUIT Simple

DEMO(LWUIT)

Resource EditorLWUIT Simple