mobile application

247
MOBILE APPLICATION POLITEKNIK TELKOM BANDUNG 2009

Upload: faris-sige

Post on 01-Jul-2015

2.341 views

Category:

Documents


7 download

TRANSCRIPT

MOBILE APPLICATION

POLITEKNIK TELKOM BANDUNG 2009

Politeknik Telkom

Mobile Application

Tim Penulis: Budi Laksono Putro Dedy Rahman Wijaya

Dilarang menerbitkan kembali, menyebarluaskan, atau menyimpan baik sebagian maupun seluruh isi buku dalam bentuk dan dengan cara apapun tanpa izin tertulis dari Politeknik Telkom Hak cipta dilindungi undang-undang @ Politeknik Telkom 2009 No part of this document may be copied, reproduced, printed, distributed, modified, removed and amended in any form by any means without prior written authorization of Telkom Polytechnic. Copyright @ 2009 Telkom Polytechnic. All rights reservedii

Politeknik Telkom

Mobile Application

KATA PENGANTARAssalamualaikum Wr. Wb Segala puji bagi Allah SWT karena dengan karunia-Nya courseware ini dapat diselesaikan. Atas nama Politeknik Telkom, kami sangat menghargai dan ingin menyampaikan terima kasih kepada penulis, penerjemah dan penyunting yang telah memberikan tenaga, pikiran, dan waktu sehingga courseware ini dapat tersusun. Tak ada gading yang tak retak, di dunia ini tidak ada yang sempurna, oleh karena itu kami harapkan para pengguna buku ini dapat memberikan masukan perbaikan demi pengembangan selanjutnya. Semoga courseware ini dapat memberikan manfaat dan membantu seluruh Sivitas Akademika Politeknik Telkom dalam memahami dan mengikuti materi perkuliahan di Politeknik Telkom. Amin. Wassalamualaikum Wr. Wb. Bandung, Oktober 2009

Christanto Triwibisono Wakil Direktur I

iii

Politeknik Telkom

Mobile Application

DAFTAR ISI

KATA PENGANTAR ...................................................... iii DAFTAR ISI .............................................................................. iv 1 INTRODUCTION J2ME.......................................... 1 1.1 Keluarga JAVA .................................................................. 2 1.2 Gambaran J2ME ................................................................ 7 1.3 Configuration ................................................................... 8 1.4 Profile ............................................................................... 8 1.5 Perangkat Mobile .............................................................. 9 1.6 Sistem Operasi untuk Alat Mobile ................................. 11 2 J2ME, J2EE DAN J2SE............................................ 21 2.1 J2ME, J2SE dan J2EE ........................................................ 22 2.2 Java 2 Micro Edition ....................................................... 23 2.3 J2ME Configuration ........................................................ 24 2.3.1 CLDC ............................................................................. 25 2.3.2 CDC 27 2.4 Java Technology for the Wireless Industry (JTWI) ...... 27 2.5 Generic Connection Framework ................................... 28 2.6 J2ME Profile .................................................................... 29 2.7 Java Community Process (JCP) ...................................... 30 2.8 MIDP............................................................................... 31 2.9 MIDlet............................................................................. 32 2.10 Siklus MIDlet .................................................................. 33 3 CLCD ....................................................................... 41 3.1 CLDC ............................................................................. 42 3.1.1 Karakteristik perangkat CLDC ...................................... 43 3.1.2 Fitur yang hilang.............................................................. 44 3.1.3 CLDC market................................................................. 45 3.1.4 Java TM Language Spesification (JLS) .............................. 46 3.1.5 Preverification dan Application Representation ............ 46 3.2 CLDC Libraries .............................................................. 47iv

Politeknik Telkom

Mobile Application

3.2.1 3.2.2 3.3 3.4 3.5 4 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.3 4.3.1 4.3.2 4.3.3 5 5.1 5.2 5.3 5.4 5.5 5.6 6 6.1 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7

CLDC Libraries pewarisan dari J2SE ............................. 47 CLDC Libraries J2ME ..................................................... 51 CLDC System Properties............................................... 54 CLDC Networking......................................................... 54 Verifikasi Class oleh KVM .............................................. 55 MIDP ........................................................................ 62 Mobile Information Device Profile (MIDP) .................... 63 J2ME Security.................................................................. 65 Protection Domains ....................................................... 65 Permissions..................................................................... 65 Mode Interaksi User....................................................... 66 Anatomi dari Aplikasi MIDP ........................................... 69 MIDlet............................................................................. 70 Arsitektur Aplikasi MIDlet ............................................. 71 Siklus MIDlet .................................................................. 73 MIDlet suites .................................................................. 75 Integrated Programming Environment .................... 82 Pengenalan ...................................................................... 83 "Hello, world!" MIDlet ................................................... 83 Compilation dan Packaging MIDlets............................... 87 Menggunakan Sun Wireless Toolkit ............................... 89 Menggunakan NetBeans Mobility Pack .......................... 92 Bekerja dengan Form ................................................... 103 High Level User Interface I .................................... 112 MIDP User Interface .................................................... 113 Display .......................................................................... 114 Displayable.................................................................... 114 Title 115 Command ..................................................................... 116 CommandListener ........................................................ 119 Ticker ........................................................................... 120 Screen ........................................................................... 120 Item 121v

Politeknik Telkom

Mobile Application

6.3 6.4 6.5 6.6 6.7 6.8 7 7.1 7.2 7.3 7.4 7.5 8 8.1 8.2 8.2.1 8.2.2 8.2.3 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 8.3.7 9 9.1 9.2 9.3 9.4 9.5vi

Text Box....................................................................... 122 Form ............................................................................. 124 Date Field ..................................................................... 125 Image Item .................................................................... 126 Text Field ..................................................................... 128 Gauge............................................................................ 130 High Level User Interface II ................................... 138 ChoiceGroup ............................................................... 139 List ................................................................................ 140 Alert ............................................................................. 142 String Item .................................................................... 144 Jenis Fungsi-Fungsi API pada MIDP untuk GUI ............ 145 Low Level User Interface I ..................................... 151 Pengenalan .................................................................... 152 Canvas .......................................................................... 152 Sistem Koordinat.......................................................... 153 Hello,World! ............................................................. 154 Perintah ........................................................................ 156 Grafik ............................................................................ 157 Warna........................................................................... 157 Huruf ............................................................................ 159 Style Coretan ............................................................... 160 Menggambar garis ......................................................... 160 Menggambar kotak ....................................................... 162 Menggambar Sudut ....................................................... 164 Melukis gambar............................................................. 166 Low Level User Interface II .................................... 173 Event key ...................................................................... 174 Aksi Permainan ............................................................. 174 Event Pointer ................................................................ 175 Clipping ......................................................................... 176 Anchor Points .............................................................. 176

Politeknik Telkom

Mobile Application

9.6 Menggambar Teks ........................................................ 177 9.7 Game API ..................................................................... 179 9.7.1 Game API ..................................................................... 179 9.7.2 Layers ........................................................................... 182 9.7.3 Sprites ........................................................................... 183 9.7.4 LayerManager ............................................................... 186 9.8 Scalable 2D Graphics ................................................... 186 10 Networking (Socket/TCP) ...................................... 192 10.1 Generic Connection Framework ................................. 193 10.1.1 Hirarki dari GCF Interface .................................. 193 10.1.2 GCF Connection URL ......................................... 194 10.2 TCP Sockets ................................................................. 195 10.3 Server Sockets.............................................................. 196 10.4 Datagrams .................................................................... 197 11 Networking (HTTP) ............................................... 206 11.1 Koneksi HTTP .............................................................. 207 11.1.1 Protokol HTTP.................................................... 207 11.1.2 Menciptakan sebuah koneksi HTTP .................... 208 11.1.3 Handling HTTP Redirects ................................... 209 11.2 Koneksi HTTPS ............................................................ 210 11.3 Servlet........................................................................... 213 11.4 HTTP Servlet ................................................................ 213 12 Persistent Storage .................................................. 221 12.1 Record Store ................................................................ 222 12.2 Record Enumeration .................................................... 229 12.3 Record Comparator..................................................... 230 12.4 Record Filter ................................................................ 231 12.5 Record Listener ............................................................ 232 Daftar Pustaka ................................................... 239

vii

Politeknik Telkom

Mobile Application

1 INTRODUCTION J2ME

Overview

Java merupakan bahasa pemrograman general purpose, Java bisa digunakan untuk pembuatan aplikasi web, database, grafis dan berbagai aplikasi lainnya seperti bahasa pemrograman lainnya. Mengapa Java menjadi andalan bagi para programmer ? Selain dukungan API yang begitu lengkap, hasil program Java akan bisa dijalankan di semua platform selama disitu terdapat JVM (Java Virtual Machine). Kalau seorang programmer memilih Java sebagai bahasa untuk pengembangan aplikasinya, maka dia tidak perlu pusing memikirkan apakah sistem operasi usernya mendukung atau tidak sehingga Java mempunyai slogan write once, run every where.

Tujuan

Pada akhir bab ini, siswa diharapkan dapat menguasai : 1. Mengidentifikasi karakteristik dari perangkat mobile 2. Menjelaskan arsitektur J2ME 3. Mengetahui peran atau aturan configuration dan profile.

Intro J2ME

1

Politeknik Telkom

Mobile Application

1.1

Keluarga JAVASun Microsystem sebagai pengembang bahasa Java telah mengembangkan beberapa versi Java, seperti: J2EE (Java 2 Enterprise Edition), J2SE (Java 2 Standar Edition), J2ME (Java 2 Micro Edition), Java Card. J2EE dan J2SE dikembangkan untuk platform Server dan PC, J2ME dikembangkan untuk platform mobile device sedangkan Java Card untuk platform simcard. Pada dasarnya versi-versi tersebut sama, hanya penggunaan API yang berbeda sesuai dengan target platform yang akan digunakan dan kompatibilitas platform tersebut.

Gambar 1.1 Java Platform

2

Intro J2ME

Politeknik Telkom

Mobile Application

Gambar 1.2 Berbagai versi Java dilihat dari target platformnya Java 2 Pada perkembangan selanjutnya, Sun Microsystem memperkenalkan Java versi 1.2 atau lebih dikenal dengan nama Java 2 yang terdiri atas JDK dan JRE versi 1.2. Aplikasiaplikasi java yang kompatibel dengan Java 2 ini dikenal dengan Java 2 Compliant. Pada Java 2 ini, java dibagi menjadi 3 kategori: Java 2 Standart Edition (J2SE) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada level PC (Personal Computer) Java 2 Enterprise Edition (J2EE) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada lingkungan entriprise dengan menambahkan fungsionalitasfungsionalitas Java semacam EJB (Enterprise Java Bean), Java CORBA, Servlet dan JSP serta Java XML (Extensible Markup Language) Java 2 Micro Edition (J2ME) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada handled devices atau perangkatperangkat semacam handphone, Palm, PDA, dan Pocket PC.Intro J2ME 3

Politeknik Telkom

Mobile Application

Java 2 Micro Edition J2ME dirancang untuk dapat menjalankan program Java pada perangkat-perangkat semacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiri atas komponen-komponen sebagai berikut : Java Virtual Machine (JVM) Komponen ini untuk menjalankan program program Java pada emulator atau handled devices. Java API (Application Programming Interface) Komponen ini merupakan kumpulan librari untuk menjalankan dan mengembangkan program Java pada handled devices. Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulator Motorolla. Java Application Programming Interface (Java API)

Gambar 1.3 Java API4 Intro J2ME

Politeknik Telkom

Mobile Application

Java API merupakan komponen-komponen dan kelas Java yang sudah jadi, yang memiliki berbagai kemampuan. Kemampuan untuk menangani objek, string, angka dan sebagainya Applet Java Applet merupakan program Java yang berjalan di atas browser. Penggunaan applet ini akan membuat halaman HTML lebih dinamis dan menarik. Java Networking Sekumpulan API (Application Programming Interface) yang menyediakan fungsi fungsi untuk aplikasi aplikasi jaringan, seperti penyediaan akses untuk TCP, UDP, IP Adrress dan URL. Tetapi Java Networking tidak menyediakan akses untuk ICMP dikarenakan alasan sekuriti dan pada kondidi umum hanya administrator ( root ) yang bisa memanfaatkan protokol ICMP. Java Database Connectivity (JDBC) JDBC API terdiri atas class dan interface yang ditulis dalam bahasa Java untuk sebagai alat bantu bagi pembuat program (developer) dan menyediakan sekumpulan API untuk mengatur keamanan mengakses database seperti Oracle, MySQL, PostgreSQL, Microsoft SQL Server. Jadi keunggulan API JDBC dapat mengakses sumber data dan berjalan pada semua Platform yang mempunyai Java Viortual Machine (JVM). Java Security Java Security menyediakan sekumpulan API untuk mengatur security dari aplikasi Java baik secara high level atau low level, seperti public/private key management dan certificates. Java Swing Java Swing menyediakan sekumpulan API untuk membangun aplikasi aplikasi GUI (Graphical User Interface) dan model GUI yang diinginkan bisa bermacam macam, bisa model Java, model Motif/CDE atau model yang dependent terhadap platform yang digunakan.

Intro J2ME

5

Politeknik Telkom

Mobile Application

Java RMI Java RMI menyediakan sekumpulan API untuk membangun aplikasi aplikasi Java yang mirip dengan model RPC (Remote 4 Procedure Call) jadi object - object Java bisa di call secara remote pada jaringan komputer. Java 2D/3D Java 2D/3D menyediakan sekumpulan API untuk membangun grafik grafik 2D/3D yang menarik dan juga akses ke printer. Java Server Pages (JSP) JSP adalah suatu teknologi web berbasis bahasa pemrograman Java dan berjalan pada platform Java. JSP merupakan pengembangan dari Servlet serta merupakan bagian dari teknologi Java 2 Platform, Enterprise Edition (J2EE). JNI (Java Native Interface) JNI menyediakan sekumpulan API yang digunakan untuk mengakses fungsi fungsi pada library (*.dll atau *.so) yang dibuat dengan bahasa pemrograman yang lain seperti C,C++, dan Basic. Java Sound Java Sound menyediakan sekumpulan API untuk manipulasi sound. k. Java IDL + CORBA Java IDL (Interface Definition Language) menyediakan dukungan Java untuk implementasi CORBA (Common Object Request Broker) yang merupakan model distributed-Object untuk solusi aplikasi besar di dunia networking. Java Card Java Card utamanya digunakan untuk aplikasi aplikasi pada smart card, yang sederhana wujudnya seperti SIM Card pada handphone. JTAPI (Java Telephony API) Java Telepony API menyediakan sekumpulan API untuk memanfaatkan devices devices telepony, sehingga akan cocok untuk aplikasi aplikasi CTI (Computer Telephony Integration)6 Intro J2ME

Politeknik Telkom

Mobile Application

yang dibutuhkan seperti ACD (Automatic Call Distribution), PCPBX dan lainnya.

1.2

Gambaran J2MEJ2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei, layar yang kecil dan bandwith jaringan yang rendah. Dengan perkembangbiakan perangkat mobile konsumer dari telepon, PDA, kotak permainan ke peralatan-peralatan rumah, Java menyediakan suatu lingkungan yang portable untuk mengembangkan dan menjalankan aplikasi pada perangkat ini. Program J2ME, seperti semua program JAVA adalah diterjemahkan oleh VM. Program-program tersebut dikompile ke dalam bytecode dan diterjemahkan denga Java Virtual Machine(JVM). Ini berarti bahwa program-program tersebut tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda. Inti dari J2ME terletak pada configuration dan profile-profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan.

Gambar 1.3 Arsitektur J2MEIntro J2ME 7

Politeknik Telkom

Mobile Application

Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada sebuah perangkat. Profile-profile menyediakan user interface(UI) API,persistence, messaging library, dan sebagainya. Satu set library tambahan atau package tambahan menyediakan kemampuan program tambahan. Pemasukan package ini ke dalam perangkat J2ME dapat berubah-ubah karena tergantung pada kemampuan sebuah perangkat. Sebagai contoh, beberapa perangkat MIDP tidak memiliki Bluetooth built-in, sehingga Bluetooth API tidak disediakan dalam perangkat ini.

1.3

ConfigurationSuatu configuration menggambarkan fitur minimal dari lingkungan lengkap Java runtime. Untuk menjamin kemampuan portabilitas dan interoperabilitas optimal diantara berbagai macam perangkat yang dibatasi sumber dayanya(memory, prosesor, koneksi yang dibatasi), configuration tidak menggambarkan fitur tambahan. Suatu configuration J2ME menggambarkan suatu komplemen yang minimum dari teknologi JAVA. Adalah merupakan tugas profile-profile untuk menggambarkan tambahan library untuk suatu kategori perangkat tertentu. configuration menggambarkan: Subset bahasa pemrograman JAVA Kemampuan Java Virtual Machine(JVM) Core platform libraries Fitur sekuriti dan jaringan

1.4

ProfileSuatu profile menggambarkan set-set tambahan dari API dan fitur untuk pasar tertentu, kategori perangkat atau industri. Sementara configuration menggambarkan library dasar, profile-profile menggambarkan library yang penting untuk membuat aplikasi-aplikasi efektif. Library ini memasukkan user interface, jaringan dan penyimpanan API.

8

Intro J2ME

Politeknik Telkom

Mobile Application

1.5

Perangkat MobilePerangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi mereka memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop. Adapun karakteristik dari perangkat mobile adalah sebagai berikut : a. Ukuran yang kecil Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka. Memory yang terbatas Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan secondary (disk). Pembatasan ini adalah salah satu faktor yang mempengaruhi penulisan program untuk berbagai jenis dari perangkat ini. Dengan pembatasan jumlah dari memory, pertimbangan-pertimbangan khusus harus diambil untuk memelihara pemakaian dari sumber daya yang mahal ini. Daya proses yang terbatas Sistem mobile tidaklah setangguh rekan mereka yaitu desktop. Ukuran, teknologi dan biaya adalah beberapa faktor yang mempengaruhi status dari sumber daya ini. Seperti harddisk dan RAM, Anda dapat menemukan mereka dalam ukuran yang pas dengan sebuah kemasan kecil. Mengkonsumsi daya yang rendah Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan dimana daya yang disediakan dibatasi oleh baterai-baterai. Kuat dan dapat diandalkan Karena perangkat mobile selalu dibawa kemana saja, mereka harus cukup kuat untuk menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air.

b.

c.

d.

e.

Intro J2ME

9

Politeknik Telkom

Mobile Application

f.

Konektivitas yang terbatas Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. Kebanyakan dari mereka menggunakan koneksi wireless. Masa hidup yang pendek Perangkat-perangkat konsumen ini menyala dalam hitungan detik kebanyakan dari mereka selalu menyala. Coba ambil kasus sebuah handphone, mereka booting dalam hitungan detik dan kebanyakan orang tidak mematikan handphone mereka bahkan ketika malam hari. PDA akan menyala jika anda menekan tombol power mereka.

g.

Gambar 1.3 : Peralatan Mobile.

Pada gambar 1.3 peralatan mobile meliputi : pagers cellular telephones personal digital assistants atau organizers point of sale systems pocket communicators Internet screen telephones automobile navigation dan entertainment systems Internet television sets10 Intro J2ME

Politeknik Telkom

Mobile Application

1.6

Sistem Operasi untuk Alat MobileTerdapat tiga nama OS untuk mobile devices yang popular yaitu Palm dengan PalmOS-nya, Symbian dengan EPOC-nya, dan Microsoft dengan Pocket PC/ Windows CE-nya. Dalam hubungan OS mobile device dengan teknologi J2ME (yang selama ini menjadi perhatian) adalah tampak pada gambar 1.4 dibawah ini:

Gambar 1.4 Layer Configuration dan Profile dengan OS pada teknologi J2ME Meskipun demikian gerakan open source telah pula merambah dunia OS mobile devices yaitu dengan hadirnya PDA (personal digital assistant) dengan brand Sharp Zaurus yang menggunakan OS berbasiskan Linux dan Java dengan berbagai keuntungan khas dunia open source yaitu dikenal diseluruh dunia dan free community development. Saya duga kedepan akan cerah prospeknya.Tabel 1. Berbagai vendor mobile device dengan variasi OS-nya. Symbian (EPOC) Sony Ericsson Motorola Nokia Psion Matsushita Philips Sony Sanyo Palm (PalmOS) Palm IBM Sony Dell Handspring Symbol Qualcomm TRG Microsoft (Pocket PC) Compaq HP Casio Symbol Siemens/ Fujitsu Toshiba

Intro J2ME

11

Politeknik Telkom

Mobile Application

Symbian (EPOC) Symbian didirikan pada tahun 1998 oleh Psion, Motorola, Nokia, dan Ericsson dan Matsushita bergabung pada tahun berikutnya. Pasar yang dikuasai oleh OS ini adalah dominan yaitu sekitar 60% (http://www.symbian.com). Pada bulan Agustus 2000, Sony dan Sanyo bergabung pula sebagai kelompok vendor pengguna EPOC. Mobile devices yang saat ini menggunakan EPOC diantaranya adalah Psion hand-held PC, Sony Ericsson P800, Nokia 7650, dan Nokia 9210 Communicator. OS EPOC dibagi dalam tiga versi yaitu : Smartphones (voice centric with data functionality), Communicator (e.g. : Nokia Communicator), dan PDA. EPOC telah dilengkapi dengan banyak fungsi-fungsi dasar yang sepatutnya dimiliki oleh sebuah OS mobile devices yaitu PIM (Personal Information Manager), integrated email, web browser, dan kemampuan untuk synchronization. EPOC terus meningkatkan kemampuannya dengan dilengkapi WAP browser, Bluetooth support, peningkatan kapabilitas security, email, dan messaging. Dan kini Symbian menikmati masa bulan madu-nya bermitra dengan perusahaan terkemuka dunia NTT DoCoMo (10 Juli 2003 yang lalu, Symbian mengumumkan bahwa Fujitsu, salah satu vendor mobile device jaringan 3G, meluncurkan mobile videophone F2102V untuk layanan NTT DoCoMo FOMA yang berbasiskan Symbian OS), Sun, Oracle, dan Sybase. Symbian mengklaim bahwa ada sekitar 31.000 software developer yang menggunakan EPOC sebagai basis pengembangan aplikasinya. Saat tulisan ini dibuat, versi terbaru dari Symbian adalah Symbian OS v7.0s yang menyediakan berbagai layanan yang sangat sesuai dengan berbagai functionality platform 3G market. Fitur utama dari versi ini adalah : Lightweight multi-threaded multimedia framework. Support for W-CDMA. Java MIDP 2.0 enabled. Support for multiple primary/ secondly PDP contents. Support bi-directional text (Thai, Arabic, and Hebrew)

12

Intro J2ME

Politeknik Telkom

Mobile Application

Palm (PalmOS) Produksi pertama dari Palm dijual tahun 1996. Setelah itu PalmOS menjadi OS open licensed yang dibuat oleh berbagai manufaktur mobile devices. IBM dan Dell juga menjual original PalmPilot devices. Selain dari itu Handspring juga menjadi perusahaan terbesar yang menyediakan mobile devices berbasiskan PalmOS. Sebagaimana Symbian, PalmOS juga menyediakan basic feature yaitu PIM, email, dan messaging. Salah satu keuntungan dari Palm adalah bahwa hardware manufacture dapat menambahkan beberapa tool untuk digabungkan dengan hardware yang berbasis PalmOS tadi, misalnya dengan menambahkan CompactFlash, Springboard, dan Palm clip-on. Untuk produk masa depan, PalmOS dikonsentrasikan pada wireless connectivity, bluetooth support, dan multi-language support. PalmOS pula berkerjasama dengan beberapa berusahaan software terkemuka seperti Computer Associates, IBM, Oracle, Peoplesoft, SAP, AOL, Sun, Siebel, dan Tivoli. Palm mengklaim ada 50.000 software developer yang bekerja dengan platform ini.

Microsoft (Pocket PC) Hand-held PC yang pertama berbasiskan Windows pertama kali tersedia pada tahun 1997. Pada mulanya versi awal dari OS mobile device ini sangatlah terbatas performansi dan fungsionalitasnya sehingga berakibat pada angka penjualannya yang mengecewakan. Namun kini Pocket PC menjelma menjadi salah satu OS mobile device yang paling banyak menyediakan software pendukungnya dan mengawaki PDA terkemuka saat ini dari Compaq yaitu iPAQ. Menurut David Coursey, Executive Editor Anchor Desk, bahwa handheld yang berbasiskan Pocket PC secara umum memerlukan beaya dua kali lebih besar daripada PalmOS devices tetapi sebaliknya Pocket PC menyediakan software pendukung lebih banyak daripada PalmOS. Anda dapat mendengarkan musik atau mendownload buku dari

Intro J2ME

13

Politeknik Telkom

Mobile Application

www.audible.com, memiliki software GPS navigation dari TrayRoute, atau topographic maps dari Map Tech. Jika Anda bingung berjalan-jalan di Amerika bisa pula menggunakan Microsoft Pocket Streets atau Topo! Software dari National Geographic. Pendek kata dan sudah jelas software-software Microsoft dapat berjalan dengan baik di Pocket PC seperti Microsoft Money, Word, Excel (tentu saja untuk versi Pocket PC-nya).

14

Intro J2ME

Politeknik Telkom

Mobile Application

Rangkuman

1. 2.

3.

4.

5.

6.

Java merupakan bahasa pemrograman general purpose, Java bisa digunakan untuk pembuatan aplikasi web, database, grafis dan berbagai aplikasi lainnya seperti bahasa pemrograman lainnya. Dengan semboyan write once run everywhere, teknologi Java dengan portabilitas yang tinggi, memungkinkan untuk jalan di segala sistem operasi selama disitu ada JVM (Java Virtual Machine) termasuk perangkat wireless dengan ukuran memori yang relatif kecil. Sun Microsystem sebagai pengembang bahasa Java telah mengembangkan beberapa versi Java, seperti: J2EE (Java 2 Enterprise Edition), J2SE (Java 2 Standar Edition), J2ME (Java 2 Micro Edition), Java Card. J2ME dirancang untuk dapat menjalankan program Java pada perangkat-perangkat semacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi mereka memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop. Adapun karakteristik dari perangkat mobile adalah sebagai berikut : 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 Terdapat tiga nama OS untuk mobile devices yang popular yaitu Palm dengan PalmOS-nya, Symbian dengan EPOC-nya, dan Microsoft dengan Pocket PC/ Windows CE-nya.

Intro J2ME

15

Politeknik Telkom

Mobile Application

Kuis Benar Salah

1.

2.

3.

4.

5.

6.

7.

8.

Sun Microsystem sebagai pengembang bahasa Java telah mengembangkan beberapa versi Java, seperti: J2EE (Java 2 Enterprise Edition), J2SE (Java 2 Standar Edition), J2ME (Java 2 Micro Edition), Java Card. J2EE dan J2SE dikembangkan untuk platform Server dan PC, J2ME dikembangkan untuk platform mobile device sedangkan Java Card untuk platform simcard. Pada dasarnya versi-versi tersebut sama untuk penggunaan API sesuai dengan target platform yang akan digunakan dan kompatibilitas platform tersebut. J2ME dirancang untuk dapat menjalankan program Java pada perangkat-perangkat semacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiri atas komponen-komponen terdiri dari Java Virtual Machine (JVM), Java API (Application Programming Interface), dan Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulator Motorolla. J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei, layar yang kecil dan bandwith jaringan yang rendah. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda. Inti dari J2ME terletak pada configuration dan profile-profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan.Intro J2ME

16

Politeknik Telkom

Mobile Application

9.

Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada sebuah perangkat. Profile-profile menyediakan user interface(UI) API,persistence, messaging library, dan sebagainya. 10. Terdapat tiga nama OS untuk mobile devices yang popular yaitu Palm dengan PalmOS-nya, Symbian dengan EPOC-nya, dan Microsoft dengan Pocket PC/ Windows CE-nya.

Intro J2ME

17

Politeknik Telkom

Mobile Application

Pilihan Ganda

1.

Pengembangan versi Java oleh Sun Microsystem terdiri dari : 1. J2EE (Java 2 Enterprise Edition) 2. J2SE (Java 2 Standar Edition) 3. J2ME (Java 2 Micro Edition) 4. Java Card. a. b. 1,2,3,4 1,2,3 c. d. 1,2 1

2.

Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada level PC (Personal Computer) a. J2SE c. J2ME b. J2EE d. Java Card Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada lingkungan entriprise dengan menambahkan fungsionalitasfungsionalitas Java semacam EJB (Enterprise Java Bean), Java CORBA, Servlet dan JSP serta Java XML (Extensible Markup Language) a. J2SE c. J2ME b. J2EE d. Java Card

3.

18

Intro J2ME

Politeknik Telkom

Mobile Application

4.

Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada lingkungan entriprise dengan menambahkan fungsionalitasfungsionalitas Java semacam EJB (Enterprise Java Bean), Java CORBA, Servlet dan JSP serta Java XML (Extensible Markup Language) c. J2SE c. J2ME d. J2EE d. Java Card

Intro J2ME

19

Politeknik Telkom

Mobile Application

Latihan1. 2. 3. 4. 5. 6. Sebutkan perbedaan antara J2SE, J2EE, J2ME dan Java Card ? Apa keuntungan menggunakan java sebagai pengembangan dan platform runtime untuk perangkat mobile? Sebutkan komponen-komponen dari J2ME ? Sebutkan kemampuan-kemampuan yang dimiliki Java API merupakan komponen-komponen dan kelas Java yang sudah jadi ? Sebutkan karakteristik perangkat mobile ? Sebutkan tiga nama OS untuk mobile devices yang popular dan masing-masing OS berikan minimal 3 contoh perangkat mobilenya ?

20

Intro J2ME

Politeknik Telkom

Mobile Application

2

J2ME, J2EE DAN J2SE

Overview

Anda jangan berharap dapat memprogram dengan platform J2SE dan dapat me-load-nya pada mobile devices, tentu saja berbeda terutama pada hal prosesor computing dan memory-nya. Jika pada J2SE anda menggunakan interpreter JVM, pada platform J2ME anda mempergunakan Kilo Virtual Machine (KVM) yang ditanam dalam handheld devices. Sebagai informasi bahwa J2EE merupakan superset dari J2SE, sebaliknya J2SE merupakan superset bagi J2ME. Apa artinya? API yang ada pada J2ME sebagian mengadopsi yang ada pada API J2SE, selain juga mengimplementasikan API spesifik untuk teknologi J2ME itu (javax.microedition.*).

Tujuan

Pada akhir bab ini, siswa diharapkan dapat menguasai : 1. Menjelaskan tentang perbedaan J2ME dengan J2SE, dan J2EE 2. Pengenalan tentang macam dan ragam dari profil-profil J2ME . seperti: Mobile Information Defice Profile (MIDP), PDA Profile (PDAP), Foundation Profile, Personal Basis and Personal Profiles, RMI Profile, dan Game Profile 3. Pengenalan tentang jenis konfigurasi-konfigurasi J2ME ,. seperti: CDC and CLCD.s 4. Pertimbangan-pertimbangan design untuk membangun aplikasi pada peralatan kecil dan peralatan mobile. 5. Pertimbangan-pertimbangan kinerja sistem 6. Pertimbangan-pertimbangan kompilasi 7. Pertimbangan-pertimbangan paket pembangunan sistem 8. CLCD Java Virtual MachineJ2ME, J2EE, J2SE 21

Politeknik Telkom

Mobile Application

2.1

J2ME, J2SE dan J2EEPada perkembangan selanjutnya, Sun Microsystem memperkenalkan Java versi 1.2 atau lebih dikenal dengan nama Java 2 yang terdiri atas JDK dan JRE versi 1.2. Aplikasiaplikasi java yang kompatibel dengan Java 2 ini dikenal dengan Java 2 Compliant. Pada Java 2 ini, java dibagi menjadi 3 kategori: Java 2 Standart Edition (J2SE) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada level PC (Personal Computer) Java 2 Enterprise Edition (J2EE) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada lingkungan entriprise dengan menambahkan fungsionalitasfungsionalitas Java semacam EJB (Enterprise Java Bean), Java CORBA, Servlet dan JSP serta Java XML (Extensible Markup Language) Java 2 Micro Edition (J2ME) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada handled devices atau perangkatperangkat semacam handphone, Palm, PDA, dan Pocket PC.

Gambar 2.1 Java Platform

22

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

Gambar 2.2 Berbagai versi Java dilihat dari target platformnya

2.2

Java 2 Micro EditionJ2ME dirancang untuk dapat menjalankan program Java pada perangkat-perangkat semacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiri atas komponen-komponen sebagai berikut : Java Virtual Machine (JVM), dikenal dengan nama KVirtualMachine (KVM) Komponen ini untuk menjalankan program program Java pada emulator atau handled devices. Java API (Application Programming Interface) Komponen ini merupakan kumpulan librari untuk menjalankan dan mengembangkan program Java pada handled devices. Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulator Motorolla. Dalam J2ME dibagi menjadi dua bagian yang dikenal dengan istilah configuration dan profile.

J2ME, J2EE, J2SE

23

Politeknik Telkom

Mobile Application

2.3

J2ME ConfigurationJ2ME Configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karena setiap handled devices memiliki fitur-fitur yang berbeda-beda, J2ME Configuration ini dirancang yakni menyediakan librari standar yang mengimplementasikan fitur standar dari sebuah handled devices. Mengapa perlu J2ME Configuration bisa dikatakan merupakan JRE pada handled devices. Lingkungan kerja yang dimaksud meliputi Java Virtual Machine yang digunakan untuk menjalankan program Java.

Gambar 2.3. J2ME components. Ada dua kategori J2ME Configuration saat ini, yaitu : CLDC (Connected Limited Device Configuration) Kategori ini umumnya digunakan untuk aplikasi Java pada handphone semacam Nokia, Samsung Java Phone, Motorola i85s,J2ME, J2EE, J2SE

24

Politeknik Telkom

Mobile Application

PDA (Personal Digital Assistant) semacam PALM, Pocket PC. Umumnya perangkat-perangkat tersebut hanya memiliki memori berukuran 160-512 KiloBytes. CDC (Connected Device Configuration) Kategori ini umumnya digunakan untuk aplikasi Java pada perangkat-perangkat handled devices dengan ukuran memori paling tidak 2 Megabytes. Contohnya adalah internet TV, Nokia Communicator dan car television atau TV pada mobil.

Perbedaan antara CDC dan CLDC adalah sebagai berikut : Tabel 2.1 Perbandingan antara CDC dan CLDC CLDC CDC Mengimplementasikan subset Mengimplementasikan seluruh dari J2SE fitur pada J2SE JVM yang digunakan dikenal JVM yang digunakan dikenal dengan nama KVM dengan nama CVM Digunakan pada perangkat Digunakan pada perangkat handled dengan ukuran memori handled dengan ukuran memori terbatas (160-512 KiloBytes) minimal 2 Mbytes Processor 16 bit atau 32 bit Processor : 32 bit 2.3.1 CLDC

Gambar 2.3. API pada J2ME CLDCJ2ME, J2EE, J2SE 25

Politeknik Telkom

Mobile Application

The Connected Limited Device Configuration (CLDC) menggambarkan dan menunjuk pada area berikut ini: Fitur Bahasa Java dan Virtual Machine(VM) dikenal dengan nama KVirtualMachine (KVM) Library dasar(java.lang.*,java.util.*) Input/Output(java.io.*) Kemanan Jaringan Internationalization Fitur yang hilang Fitur tertentu dari J2SE yang dipindahkan dari CLDC adalah : Finalization of class instances Asynchronous exceptions Beberapa error classes User-defined class loaders Reflection Java Native Interface (JNI) Thread groups dan daemon threads Reflection, Java Native Interface (JNI) dan user-defined class loaders potensial menjadi lubang keamanan. JNI juga membutuhkan memory yang intensif sehingga dimungkinkan untuk tidak mendapat dukungan dari memory rendah sebuah perangkat mobile. Karakteristik perangkat CLDC Perangkat yang diincar oleh CLDC mempunyai karateristik sebagai berikut: Memory minimal 192kb untuk platform Java. Prosesor dengan 16 atau 32 bit. Mengkonsumsi sedikit daya. Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith(biasanya wireless). CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP

26

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

menggambarkan daur hidup aplikasi MIDP (MIDlet), library UI dan event handling(javax.microedition.lcdui.*). 2.3.2 CDC Connected Device Configuration (CDC) adalah super set dari CLDC. CDC menyediakan lingkungan Java runtime yang lebih luas dibandingkan CLDC dan lebih dekat kepada lingkungan J2SE. CDC Java Virtual Machine (CVM) mendukung penuh Java Virtual Machine (JVM). CDC berisi semua API dari CLDC. CDC menyediakan suatu subset yang lebih besar dari semua class J2SE. Seperti CLDC, CDC tidak menggambarkan setiap class UI. Library UI digambarkan oleh profileprofile di bawah configuration ini. Semua class yang terdapat dalam CDC datang dari package ini: java.io java.lang java.lang.ref java.lang.math java.net java.security java.security.cert java.text java.util java.util.jar java.util.zip CDC juga memasukkan di dalamnya GCF. CDC memerlukan jenis koneksi tambahan seperti file dan dukungan datagram.

2.4

Java Technology for the Wireless Industry (JTWI)Java Technology for the Wireless Industry (JTWI) menetapkan satu set jasa dan spesifikasi standar. Berdasar spesifikasi JTWI, kata kuncinya adalah untuk memperkecil fragmentasi API di dalam pasar telepon mobile, dan untuk mengirim spesifikasi yang dapat diprediksi,spesifikasi yang jelas untuk perangkat pabrik, operator, dan pengembang aplikasi.

J2ME, J2EE, J2SE

27

Politeknik Telkom

Mobile Application

Dengan penyesuaian kepada JTWI, banyak aplikasi akan berjalan di suatu set yang lebih luas pada perangkat. Perangkat pabrik juga akan beruntung karena sebuah aplikasi yang besar akan tersedia untuk perangkat mereka.

Gambar 2.4: Komponen JTWI

2.5

Generic Connection FrameworkThe Generic Connection Framework menyediakan API dasar untuk koneksi dalam CLDC. Framework ini menyediakan suatu pondasi umum untuk koneksi seperti HTTP, Socket, dan Datagrams. GCF menyediakan suatu set API yang umum dan biasa yang memisahkan semua jenis koneksi. Perlu dicatat bahwa tidak semua jenis koneksi dibutuhkan untuk diterapkan oleh perangkat MIDP. Hirarki interface yang dapat diperluas dari GFC membuat proses penyamarataan menjadi mungkin. Jenis koneksi baru mungkin bisa ditambahkan ke dalam framework ini dengan memperluas hirarki ini.

28

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

Gambar 2.6: Hirarki koneksi GCF

2.6

J2ME ProfileJika J2ME Configuration menyediakan librari-librari Java untuk implementasi fitur-fitur standar dari sebuah handled devices, J2ME Profile menyediakan implementasi implementasi tambahan yang sangat spesifik dari sebuah handled devices. Kemampuan standart itulah yang diimplementasikan oleh J2ME Configuration, sedangkan kemampuan fitur lain sangat bergantung pada jenis perangkat handled yang digunakan akan diimplementasikan oleh J2ME Profile. Ada lima kategori J2ME Profile saat ini, yaitu : Mobile Information Device Profile (MIDP) Foundation Profile (FP) Personal Profile RMI Profile Personal Digital Assitance Profile

J2ME, J2EE, J2SE

29

Politeknik Telkom

Mobile Application

MIDP menyediakan librari-librari Java untuk implementasi dasar antarmuka (GUI), implementasi jaringan, database dan timer. MIDP dirancang khususnya untuk wireless phone dan pager. Buku ini hanya akan membahas pengembangan aplikasi wireless dengan MIDP saja yang bekerja pada CLDC.

2.7

Java Community Process (JCP)Spesifikasi untuk J2SE, J2EE dan J2ME dikembangkan dibawah pengawasan Java Community Process (JCP). Spesifikasi yang dihasilkan adalah Java Specification Request (JSR). JCP terdiri dari para ahli dari berbagai perusahaan yang tergabung untuk membentuk Spesification. JSR ini melalui beberapa tahap pada JCP sebelum selesai. Setiap JSR diberi nomor. Tabel 1 Configurasi, Profile dan Optional API pada J2ME. Configuration JSR Name 30 Connected Limited Device Configuration (CLDC) 1.0 139 Connected Limited Device Configuration (CLDC) 1.1 36 Connected Device Configuration (CLDC) 1.0.1 218 Connected Device Configuration (CLDC) 1.1 URL http://jcp.org/jsr/detail/30.jsp http://jcp.org/jsr/detail/139.jsp http://jcp.org/jsr/detail/36.jsp http://jcp.org/jsr/detail/218.jsp

ProfileJSR 37

118 75 46 12930

Name Mobile Information Device Profile 1.0 Mobile Information Device Profile 2.0 PDA Profile 1.0 Foundation Profile 1.0 Personal Basis Profile 1.0

URL http://jcp.org/jsr/detail/37.jsp http://jcp.org/jsr/detail/118.jsp http://jcp.org/jsr/detail/75.jsp http://jcp.org/jsr/detail/46.jsp http://jcp.org/jsr/detail/129.jspJ2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

62 219 217

Personal Profile 1.0 Foundation Profile 1.1 Personal Basis Profile 1.1

http://jcp.org/jsr/detail/62.jsp http://jcp.org/jsr/detail/219.jsp http://jcp.org/jsr/detail/217.jsp

Optional API JSR Name 75 PDA Optional Packages for J2ME 82 Java APIs for Bluetooth 135 Mobile Media API 1.1 184 Mobile 3D Graphics 179 Location API for J2ME 120 Wireless Messaging API 1.0 205 Wireless Messaging API 2.0 172 J2ME Web Services APIs 66 RMI Optional Package

URL http://jcp.org/jsr/detail/75.jsp http://jcp.org/jsr/detail/82.jsp http://jcp.org/jsr/detail/135.jsp http://jcp.org/jsr/detail/184.jsp http://jcp.org/jsr/detail/179.jsp http://jcp.org/jsr/detail/120.jsp http://jcp.org/jsr/detail/205.jsp http://jcp.org/jsr/detail/172.jsp http://jcp.org/jsr/detail/66.jsp

2.8

MIDPMobile Information Device Profile (MIDP) berada di atas dari CLDC. Anda tidak bisa menulis aplikasi mobile hanya dengan menggunakan CLDC API. Anda harus tetap memanfaatkan MIDP yang mendefinisikan UI. Spesifikasi MIDP, kebanyakan seperti CLDC dan API lainnya sudah digambarkan melalui Java Community Process (JCP). JCP melibatkan sebuah kelompok ahli berasal dari lebih dari 50 perusahaan, yang terdiri atas pabrik perangkat mobile, pengembang software. MIDP terus berkembang, dengan versi-versi masa depan yang telah lulus dari proses ketat JCP. Spesifikasi MIDP menggambarkan suatu perangkat MIDP yang memiliki karakteristik-karateristik ini sebagai batas minimum: Tampilan: Ukuran Layar: 96x54 kedalaman tampilan: 1-bit Ketajaman pixel: sekitar 1:1

J2ME, J2EE, J2SE

31

Politeknik Telkom

Mobile Application

Masukan: Satu atau lebih mekanisme user-input: satu keybboard, dua keyboard, atau touch screen Memory: 256 kilobytes of non-volatile memory untuk implementasi MIDP. 8 kilobytes of non-volatile memory for application-created persistent data 128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap) Jaringan: dua jalur, wireless, bandwidth terbatas Sound: Kemampuan untuk memainkan nada-nada MIDP menggambarkan model aplikasi, UI API, penyimpanan dan jaringan yang kuat, permainan dan media API, kebijakan keamanan, penyebaran aplikasi dan ketetapan over-theair.

2.9

MIDletSuatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy. MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend dengan class MIDlet. Dan dapat meminta parameter dari AMS seperti dirumuskan dalam application descriptor (JAD). Suatu MIDlet tidak harus memiliki (dan memang harus tidak mempunyai) sebuah method public static void main(String[] argv).Method tersebut tidak akan dikenal lagi oleh AMS sebagai titik awal sebuah program.

32

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

2.10 Siklus MIDletkehidupan 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. 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.

Gambar 2.7: Daur hidup MIDletJ2ME, J2EE, J2SE 33

Politeknik Telkom

Mobile Application

Rangkuman1. 2. Menjelaskan tentang perbedaan J2ME dengan J2SE, dan J2EE J2ME dirancang untuk dapat menjalankan program Java pada perangkat-perangkat semacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiri atas komponen-komponen sebagai berikut : Java Virtual Machine (JVM), dikenal dengan nama KVirtualMachine (KVM) Komponen ini untuk menjalankan program program Java pada emulator atau handled devices. Java API (Application Programming Interface) Komponen ini merupakan kumpulan librari untuk menjalankan dan mengembangkan program Java pada handled devices. Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulator Motorolla. Dalam J2ME dibagi menjadi dua bagian yang dikenal dengan istilah configuration dan profile. J2ME Configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karena setiap handled devices memiliki fitur-fitur yang berbeda-beda, J2ME Configuration ini dirancang yakni menyediakan librari standar yang mengimplementasikan fitur standar dari sebuah handled devices. Ada dua kategori J2ME Configuration saat ini, yaitu : CLDC (Connected Limited Device Configuration) Kategori ini umumnya digunakan untuk aplikasi Java pada handphone semacam Nokia, Samsung Java Phone, Motorola i85s, PDA (Personal Digital Assistant) semacam PALM, Pocket PC. Umumnya perangkat-perangkat tersebut hanya memiliki memori berukuran 160-512 KiloBytes.

3.

4. 5.

6.

34

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

CDC (Connected Device Configuration) Kategori ini umumnya digunakan untuk aplikasi Java pada perangkat-perangkat handled devices dengan ukuran memori paling tidak 2 Megabytes. Contohnya adalah internet TV, Nokia Communicator dan car television atau TV pada mobil. 7. The Connected Limited Device Configuration (CLDC) menggambarkan dan menunjuk pada area berikut ini: Fitur Bahasa Java dan Virtual Machine(VM) dikenal dengan nama KVirtualMachine (KVM) Library dasar(java.lang.*,java.util.*) Input/Output(java.io.*) Kemanan Jaringan Internationalization 8. Connected Device Configuration (CDC) adalah super set dari CLDC. CDC menyediakan lingkungan Java runtime yang lebih luas dibandingkan CLDC dan lebih dekat kepada lingkungan J2SE. 9. Java Technology for the Wireless Industry (JTWI) menetapkan satu set jasa dan spesifikasi standar. Berdasar spesifikasi JTWI, kata kuncinya adalah untuk memperkecil fragmentasi API di dalam pasar telepon mobile, dan untuk mengirim spesifikasi yang dapat diprediksi,spesifikasi yang jelas untuk perangkat pabrik, operator, dan pengembang aplikasi. 10. J2ME Configuration menyediakan librari-librari Java untuk implementasi fitur-fitur standar dari sebuah handled devices, J2ME Profile menyediakan implementasi implementasi tambahan yang sangat spesifik dari sebuah handled devices. Ada lima kategori J2ME Profile saat ini, yaitu : Mobile Information Device Profile (MIDP) Foundation Profile (FP) Personal Profile RMI Profile Personal Digital Assitance Profile

J2ME, J2EE, J2SE

35

Politeknik Telkom

Mobile Application

11. Spesifikasi untuk J2SE, J2EE dan J2ME dikembangkan dibawah pengawasan Java Community Process (JCP). Spesifikasi yang dihasilkan adalah Java Specification Request (JSR). JCP terdiri dari para ahli dari berbagai perusahaan yang tergabung untuk membentuk Spesification. JSR ini melalui beberapa tahap pada JCP sebelum selesai. Setiap JSR diberi nomor. 12. Spesifikasi MIDP, kebanyakan seperti CLDC dan API lainnya sudah digambarkan melalui Java Community Process (JCP). JCP melibatkan sebuah kelompok ahli berasal dari lebih dari 50 perusahaan, yang terdiri atas pabrik perangkat mobile, pengembang software. MIDP terus berkembang, dengan versi-versi masa depan yang telah lulus dari proses ketat JCP. 13. Suatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy. 14. MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend dengan class MIDlet. Dan dapat meminta parameter dari AMS seperti dirumuskan dalam application descriptor (JAD). 15. Kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. Jika Anda mengenal Java Applet, Anda akan menemukan bahwa Applet dapat berada dalam status init(), start(), stop() dan run().

36

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

Kuis Benar Salah

1.

2.

3.

4.

5.

6.

J2ME Configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karena setiap handled devices memiliki fitur-fitur yang berbeda-beda, J2ME Configuration ini dirancang yakni menyediakan librari standar yang mengimplementasikan fitur standar dari sebuah handled devices. J2ME Configuration bisa dikatakan merupakan JRE pada handled devices. Lingkungan kerja yang dimaksud meliputi Java Virtual Machine yang digunakan untuk menjalankan program Java. Ada dua kategori J2ME Configuration saat ini, yaitu CLDC (Connected Limited Device Configuration) dan CDC (Connected Device Configuration) CLDC (Connected Limited Device Configuration) umumnya digunakan untuk aplikasi Java pada handphone semacam Nokia, Samsung Java Phone, Motorola i85s, PDA (Personal Digital Assistant) semacam PALM, Pocket PC. Umumnya perangkatperangkat tersebut hanya memiliki memori berukuran 160-512 KiloBytes. CDC (Connected Device Configuration) umumnya digunakan untuk aplikasi Java pada perangkat-perangkat handled devices dengan ukuran memori paling tidak 2 Megabytes. Contohnya adalah internet TV, Nokia Communicator dan car television atau TV pada mobil. CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP menggambarkan daur hidup aplikasi MIDP (MIDlet), library UI dan event handling(javax.microedition.lcdui.*).

J2ME, J2EE, J2SE

37

Politeknik Telkom

Mobile Application

7.

Connected Device Configuration (CDC) adalah super set dari CLDC. CDC menyediakan lingkungan Java runtime yang lebih luas dibandingkan CLDC dan lebih dekat kepada lingkungan J2SE. 8. Java Technology for the Wireless Industry (JTWI) menetapkan satu set jasa dan spesifikasi standar. Berdasar spesifikasi JTWI, kata kuncinya adalah untuk memperkecil fragmentasi API di dalam pasar telepon mobile, dan untuk mengirim spesifikasi yang dapat diprediksi,spesifikasi yang jelas untuk perangkat pabrik, operator, dan pengembang aplikasi. 9. The Generic Connection Framework menyediakan API dasar untuk koneksi dalam CLDC. Framework ini menyediakan suatu pondasi umum untuk koneksi seperti HTTP, Socket, dan Datagrams. GCF menyediakan suatu set API yang umum dan biasa yang memisahkan semua jenis koneksi. 10. Spesifikasi untuk J2SE, J2EE dan J2ME dikembangkan dibawah pengawasan Java Community Process (JCP).

38

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

Pilihan Ganda1. Yang bukan merupakan karakteristeristik dari CLDC adalah : a. Mengimplementasikan subset dari J2SE b. JVM yang digunakan dikenal dengan nama CVM c. Digunakan pada perangkat handled dengan ukuran memori terbatas (160-512 KiloBytes) d. Processor 16 bit atau 32 bit Yang bukan merupakan karakteristeristik dari CDC adalah : a. Mengimplementasikan seluruh fitur pada J2SE b. JVM yang digunakan dikenal dengan nama CVM c. Digunakan pada perangkat handled dengan ukuran memori terbatas (160-512 KiloBytes) d. Processor : 32 bit J2ME Profile saat ini terdiri dari : 1. Mobile Information Device Profile (MIDP) 2. Foundation Profile (FP) 3. Personal Profile 4. RMI Profile 5. Personal Digital Assitance Profile a. b. 4. 1, 2, 3, 4, 5 1, 2, 3, 4 c. d. 1, 2, 3 1, 2

2.

3.

Spesifikasi MIDP menggambarkan suatu perangkat MIDP yang memiliki karakteristik-karateristik ini sebagai batas minimum pada aspek-aspek : 1. Tampilan 2. Masukan 3. Memory 4. Jaringan 5. Sound a. b. 1, 2, 3, 4, 5 1, 2, 3, 4 c. d. 1, 2, 3 1, 239

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

Latihan

1. 2. 3. 4. 5.

Sebutkan perbedaan antara CLDC dan CDC ? Sebutkan Fitur tertentu dari J2SE yang dipindahkan dari CLDC? Sebutkan karakteristik dari perangkat CLDC ? Sebutkan lima kategori J2ME Profile saat ini ? Sebutkan spesifikasi MIDP menggambarkan suatu perangkat MIDP yang memiliki karakteristik-karateristik ini sebagai batas minimum?

40

J2ME, J2EE, J2SE

Politeknik Telkom

Mobile Application

3 CLCD

Overview

Pada J2SE anda menggunakan interpreter JVM, pada platform J2ME anda mempergunakan Kilo Virtual Machine (KVM) yang ditanam dalam handheld devices. Sebagai informasi bahwa J2EE merupakan superset dari J2SE, sebaliknya J2SE merupakan superset bagi J2ME. Apa artinya? API yang ada pada J2ME sebagian mengadopsi yang ada pada API J2SE, selain juga mengimplementasikan API spesifik untuk teknologi J2ME itu (javax.microedition.*).

Tujuan

Pada bab ini, pelajar diharapkan dapat menguasai :1. 2. Connected Limited Device Configuration (CLCD) Kilobyte Virtual Machine (KVM)

CLDC

41

Politeknik Telkom

Mobile Application

J2ME CLDC dan KVM telah digunakan oleh banyak platform dan devices, termasuk oleh Motorola phones dan two-way pagers, Research in Motion (RIM) wireless handhelds, dan Palm PDA. Jutaan J2ME CLDS digunakan sehari-hari oleh berbagai mobile phone di Jepang dan Korea. Banyak pula consumer yang menggunakan J2ME dengan Motorola handsets pada jaringan Nextel di USA, dan dalam tahap test dan commercial deployment di Vodaphone Airtouch, Sprint PCS, Telefonica, dan operator lainnya di USA. Symbian terus men-support Java Technology untuk di-release-nya Nokia Communicator 9210 yang berbasiskan Java Technology pada akhir 2001.

Gambar 3.1 : Arsitektur Java 2 Micro Edition

3.1

CLDC

Gambar 3.2 : CLDC Scope42 CLDC

Politeknik Telkom

Mobile Application

Seperti dijelaskan pada gambar 3.1 dibagian I, J2ME terbagi menjadi 2: CDC dan CLDC. Pada CLDC(Connected Limited Device Configuration) umumnya untuk aplikasi java pada handphone seperti produk-produk Siemens, Nokia, Motorola dll. Sedangkan CDC(Connected Device Configuration) umumnya digunakan pada perangkat dengan memori setidaknya 2 Mb. Subset API pada CLDC dijelaskan pada gambar di bawah ini.

Gambar 3.3. API pada J2ME CLDC Salah satu kelemahan CLDC yang merisaukan programmer adalah tidak adanya dukungan floating point sehingga kreatifitas programmer sangat diperlukan. Pembahasan buku ini mengacu pada J2ME configuration CLDC. 3.1.1 Karakteristik perangkat CLDC Perangkat yang diincar oleh CLDC mempunyai karateristik sebagai berikut: Memory minimal 192kb untuk platform Java. Prosesor dengan 16 atau 32 bit. Mengkonsumsi sedikit daya.CLDC 43

Politeknik Telkom

Mobile Application

Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith(biasanya wireless). CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP menggambarkan daur hidup aplikasi MIDP (MIDlet), library UI dan event handling(javax.microedition.lcdui.*). The Connected Limited Device Configuration (CLDC) menggambarkan dan menunjuk pada area berikut ini : 1. Fitur Bahasa Java dan Virtual Machine(VM) dikenal dengan nama KVirtualMachine (KVM) 2. Library dasar(java.lang.*,java.util.*) 3. Input/Output(java.io.*) 4. Kemanan 5. Jaringan 6. Internationalization 3.1.2 Fitur yang hilang Akibatnya fitur-fitur yang kurang penting untuk diimplementasikan dalam handled devices yang bersangkutan pada Java 2 harus dibuang. Fitur-fitur tertentu dari J2SE yang dibuang antara lain : Tidak ada dukungan untuk floating point Class-class untuk perhitungan floating point yakni java.lang.Float dan java.lang.Double dibuang dari CLDC. Tidak ada dukungan untuk finalisasi objek Garbage collector yang secara sederhananya digunakan untuk bersih-bersih memori membuang fungsi finalize pada class java.lang.Object, sekalipun fungsi ini sangat penting pada Java 2. Tidak ada dukungan untuk Java Native Interface (JNI) Class JNI yang memungkinkan Java mengakses librari yang dibuat dengan bahasa selain Java, tidak didukung CLDC.I Penanganan kesalahan/exception yang terbatas CLDC hanya mendefinisikan tiga class berikut untuk penanganan kesalahan / exception: o class java.lang.Error44 CLDC

Politeknik Telkom

Mobile Application

o class java.lang.OutOfMemory o class java.lang.VirtualMachineError Asynchronous exceptions Beberapa error classes User-defined class loaders Reflection Thread groups dan daemon threads Reflection, Java Native Interface (JNI) dan user-defined class loaders potensial menjadi lubang keamanan. JNI juga membutuhkan memory yang intensif sehingga dimungkinkan untuk tidak mendapat dukungan dari memory rendah sebuah perangkat mobile. 3.1.3 CLDC market

Gambar 3.3 : Peralatan Mobile. Pada gambar 3.3 peralatan mobile meliputi : pagers cellular telephones personal digital assistants atau organizers point of sale systems pocket communicators Internet screen telephones automobile navigation dan entertainment systems Internet television sets

CLDC

45

Politeknik Telkom

Mobile Application

3.1.4

Java TM Language Spesification (JLS) Kompatibilitas dari Java TM Language Spesification (JLS) : Important thing : karena keterbatasan memory dan lainnya, maka KVM (kilo virtual machine) tidak dapat mengadaptasi seluruh fitur yang ada dalam JLS. No floating point support untuk CLDC 1.0. Kelas java.lang.Float dan java.lang.Double dibuang dari CLDC. No finalization object instances. Garbage collector yang menjadi salah satu andalan teknologi Java tidak di-support oleh CLDC. Limited error handling capabilities. CLDC hanya mendukung penanganan kesalahan dengan hanya menggunakan kelas-kelas berikut : java.lang.Error, java.lang,OutOfMemory, dan java.lang.VirtualMachineError. No thread & no JNI.

3.1.5

Preverification dan Application Representation Class file harus dipreverifikasi dan harus berisi informasi preverifikasi (anda akan menerima runtime error manakala berusaha mengeksekusi aplikasi yang belum ter preverifikasi). Jar format digunakan manakala sebuah aplikasi CLDC disimpan pada tempat publik (misalnya disimpan pada sebuah situs web). Selain format jar hanya mungkin digunakan pada lingkungan internal saja (missal saat implementasi atau saat network level)

46

CLDC

Politeknik Telkom

Mobile Application

Gambar 3.4. API pada J2ME CLDC

3.23.2.1

CLDC LibrariesCLDC Libraries pewarisan dari J2SEClass yang diwariskan dari Java 2 Standar Edition Platform adalah paket: 1. java.lang.* (Boolean, Byte, Character, Integer, Long, Math, Runnable, Runtime, System, StringBuffer). 2. java.util.* (Calendar, Date, Enumeration, Hashtable, Random, Stack, TimeZone, Vector). 3. java.io.* (berbagai variasi input & output stream readers dan writers : ByteArrayInput/Output, DataStreamInput/Ouput Reader/Writer).

CLDC

47

Politeknik Telkom

Mobile Application

1. Java Lang

Gambar 3.5. Hirarki library Java Lang

48

CLDC

Politeknik Telkom

Mobile Application

2. Java Util

Gambar 3.6. Hirarki library Java Util

CLDC

49

Politeknik Telkom

Mobile Application

3. Java IO

Gambar 3.7. Hirarki library Java IO

50

CLDC

Politeknik Telkom

Mobile Application

3.2.2

CLDC Libraries J2MEClass library dari J2ME Platform adalah paket: 1. Package java.microedition.io

2. 3. 4.

Package javax.microedition.lcdui Package javax.microedition.midlet Package javax.microedition.rms

1. Package java.microedition.io

Gambar 3.8 Hirarki class java.microedition.io

CLDC

51

Politeknik Telkom

Mobile Application

2. Package javax.microedition.lcdui

Gambar 3.9 Hirarki javax.microedition.lcdui

52

CLDC

Politeknik Telkom

Mobile Application

3. Package javax.microedition.midlet

Gambar 3.10 Hirarki javax.microedition.midlet 4. Package javax.microedition.rms

Gambar 3.11 Hirarki javax.microedition.rmsCLDC 53

Politeknik Telkom

Mobile Application

3.3

CLDC System PropertiesCLDC menyediakan akses pada system properties melalui java.lang.System. system.getProperty(String key) akan mengembalikan nilai string. Properti berikut digunakan oleh seluruh CLDC devices : microedition.platform, microedition.encoding, microedition.configuration, microedition.profiles. Profiles harus memberikan nilai yang spesifik untuk CLDC properties tersebut diatas (MIDP 1.0 requires microedition.profiles to contain at least "MIDP-1.0").

3.4 3.1

CLDC NetworkingLibraries Networking pada J2SE terlalu besar untuk CLDC devices. Diasumsikan TCP/IP telah tersedia. CLDC membuat suatu set kelas baru yang disebut Generic Connection Framework. Key idea : treat everything as a URL : Connector.open(":; "). CLDC mendefinisikan basic connection types sedangkan protocol didefinisikan pada profiles. Generic Connection Possibilities General form Connector.open("://:"); Files : Connector.open("file://myfile.txt"); HTTP : Connector.open("http://wireless.java.sun.com"); Sockets : Connector.open("socket://129.144.111.222:9000"); Communication ports : Connector.open("comm://9600:18N"); :

54

CLDC

Politeknik Telkom

Mobile Application

3.5

Verifikasi Class oleh KVMSpesifikasi CLDC memerlukan semua class untuk melewati proses verifikasi dua tingkat. Verifikasi pertama dilaksanakan diluar perangkat sebelum instalasi pada perangkat. Verifikasi kedua terjadi pada perangkat selama runtime dan dilaksanakan oleh KVM.

Gambar 3.12: Proses Verifikasi dua tingkat

CLDC

55

Politeknik Telkom

Mobile Application

Rangkuman1. Perangkat yang diincar oleh CLDC mempunyai karateristik sebagai berikut: Memory minimal 192kb untuk platform Java. Prosesor dengan 16 atau 32 bit. Mengkonsumsi sedikit daya. Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith(biasanya wireless). CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP menggambarkan daur hidup aplikasi MIDP (MIDlet), library UI dan event handling(javax.microedition.lcdui.*). Akibatnya fitur-fitur yang kurang penting untuk diimplementasikan dalam handled devices yang bersangkutan pada Java 2 harus dibuang. Fitur-fitur tertentu dari J2SE yang dibuang antara lain : Tidak ada dukungan untuk floating point Class-class untuk perhitungan floating point yakni java.lang.Float dan java.lang.Double dibuang dari CLDC. Tidak ada dukungan untuk finalisasi objek Garbage collector yang secara sederhananya digunakan untuk bersih-bersih memori membuang fungsi finalize pada class java.lang.Object, sekalipun fungsi ini sangat penting pada Java 2. Tidak ada dukungan untuk Java Native Interface (JNI) Class JNI yang memungkinkan Java mengakses librari yang dibuat dengan bahasa selain Java, tidak didukung CLDC.I Penanganan kesalahan/exception yang terbatas CLDC hanya mendefinisikan tiga class berikut untuk penanganan kesalahan / exception: o class java.lang.Error o class java.lang.OutOfMemory o class java.lang.VirtualMachineError

2.

3.

56

CLDC

Politeknik Telkom

Mobile Application

4.

5.

6.

Asynchronous exceptions Beberapa error classes User-defined class loaders Reflection Thread groups dan daemon threads Kompatibilitas dari Java TM Language Spesification (JLS) : Important thing : karena keterbatasan memory dan lainnya, maka KVM (kilo virtual machine) tidak dapat mengadaptasi seluruh fitur yang ada dalam JLS. No floating point support untuk CLDC 1.0. Kelas java.lang.Float dan java.lang.Double dibuang dari CLDC. No finalization object instances. Garbage collector yang menjadi salah satu andalan teknologi Java tidak di-support oleh CLDC. Limited error handling capabilities. CLDC hanya mendukung penanganan kesalahan dengan hanya menggunakan kelas-kelas berikut : java.lang.Error, java.lang,OutOfMemory, dan java.lang.VirtualMachineError. No thread & no JNI. Class yang diwariskan dari Java 2 Standar Edition Platform adalah paket: a. java.lang.* (Boolean, Byte, Character, Integer, Long, Math, Runnable, Runtime, System, StringBuffer). b. java.util.* (Calendar, Date, Enumeration, Hashtable, Random, Stack, TimeZone, Vector). c. java.io.* (berbagai variasi input & output stream readers dan writers : ByteArrayInput/Output, DataStreamInput/Ouput Reader/Writer). Class library dari J2ME Platform adalah paket: a. Package java.microedition.io b. Package javax.microedition.lcdui c. Package javax.microedition.midlet d. Package javax.microedition.rms

CLDC

57

Politeknik Telkom

Mobile Application

7.

CLDC System Properties CLDC menyediakan akses pada system properties melalui java.lang.System. system.getProperty(String key) akan mengembalikan nilai string. Properti berikut digunakan oleh seluruh CLDC devices : microedition.platform, microedition.encoding, microedition.configuration, microedition.profiles. Profiles harus memberikan nilai yang spesifik untuk CLDC properties tersebut diatas (MIDP 1.0 requires microedition.profiles to contain at least "MIDP-1.0"). 8. CLDC Networking Libraries Networking pada J2SE terlalu besar untuk CLDC devices. Diasumsikan TCP/IP telah tersedia. CLDC membuat suatu set kelas baru yang disebut Generic Connection Framework. Key idea : treat everything as a URL : Connector.open(":; "). CLDC mendefinisikan basic connection types sedangkan protocol didefinisikan pada profiles. 9. Generic Connection Possibilities General form : Connector.open("://:"); Files : Connector.open("file://myfile.txt"); HTTP : Connector.open("http://wireless.java.sun.com"); Sockets : Connector.open("socket://129.144.111.222:9000"); Communication ports : Connector.open("comm://9600:18N"); 10. Spesifikasi CLDC memerlukan semua class untuk melewati proses verifikasi dua tingkat. Verifikasi pertama dilaksanakan diluar perangkat sebelum instalasi pada perangkat. Verifikasi kedua terjadi pada perangkat selama runtime dan dilaksanakan oleh KVM.

58

CLDC

Politeknik Telkom

Mobile Application

Kuis Benar Salah

1. 2. 3. 4. 5.

6.

Pada CLDC(Connected Limited Device Configuration) umumnya untuk aplikasi java pada handphone seperti produk-produk Siemens, Nokia, Motorola dll. Salah satu kelemahan CLDC yang merisaukan programmer adalah tidak adanya dukungan floating point sehingga kreatifitas programmer sangat diperlukan. CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan penanganan peristiwa(event handling). Class file harus dipreverifikasi dan harus berisi informasi preverifikasi (anda akan menerima runtime error manakala berusaha mengeksekusi aplikasi yang belum ter preverifikasi). Jar format digunakan manakala sebuah aplikasi CLDC disimpan pada tempat publik (misalnya disimpan pada sebuah situs web). Selain format jar hanya mungkin digunakan pada lingkungan internal saja (missal saat implementasi atau saat network level) Spesifikasi CLDC memerlukan semua class untuk melewati proses verifikasi dua tingkat. Verifikasi pertama dilaksanakan diluar perangkat sebelum instalasi pada perangkat. Verifikasi kedua terjadi pada perangkat selama runtime dan dilaksanakan oleh KVM.

CLDC

59

Politeknik Telkom

Mobile Application

Pilihan Ganda1. Perangkat yang diincar oleh CLDC mempunyai karateristik : 1. Memory minimal 192kb untuk platform Java. 2. Prosesor dengan 16 atau 32 bit. 3. Mengkonsumsi sedikit daya. 4. Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith(biasanya wireless). a. b. 1,2,3,4 1,2,3 c. d. 1,2 1

2. CLDC hanya mendefinisikan tiga class berikut untuk penanganan kesalahan / exception: 1. class java.lang.Error 2. class java.lang.OutOfMemory 3. class java.lang.VirtualMachineError a. b. 1,2,3 1,2 c. d. 1, 3 2,3

3. Pilih jawaban yang paling tepat sehubungan dengan pernyaataan berikut A. Class file harus dipreverifikasi dan harus berisi informasi preverifikasi (anda akan menerima runtime error manakala berusaha mengeksekusi aplikasi yang belum ter preverifikasi). B. Jar format digunakan manakala sebuah aplikasi CLDC disimpan pada tempat publik (misalnya disimpan pada sebuah situs web). Selain format jar hanya mungkin digunakan pada lingkungan internal saja (missal saat implementasi atau saat network level) a. b. c. d. Pernyataan A dan B benar Pernyataan A benar dan pernyataan B salah Pernyataan A salah dan Pernyataan B benar Pernyataan A dan B salah

60

CLDC

Politeknik Telkom

Mobile Application

4. Class yang diwariskan dari Java 2 Standar Edition Platform adalah paket: 1. java.lang.* (Boolean, Byte, Character, Integer, Long, Math, Runnable, Runtime, System, StringBuffer). 2. java.util.* (Calendar, Date, Enumeration, Hashtable, Random, Stack, TimeZone, Vector). 3. java.io.* (berbagai variasi input & output stream readers dan writers : ByteArrayInput/Output, DataStreamInput/Ouput Reader/Writer). a. b. 1,2,3 1,2 c. 1, 3 d. 2,3

Latihan1. 2. 3. 4. 5. Sebutkan karakteristik dari perangkat yang diincar oleh CLDC ? Sebutkan area kerja dari The Connected Limited Device Configuration (CLDC) ? Sebutkan Fitur-fitur tertentu dari J2SE yang dibuang ? Sebutkan paket class pada J2Me yang diwariskan dari Java 2 Standar Edition Platform? Sebutkan paket class dari J2ME Platform ?

CLDC

61

Politeknik Telkom

Mobile Application

4 MIDP

Overview

MIDP (Mobile Information Device Profile) menyediakan librari-librari Java untuk implementasi dasar antarmuka (GUI), implementasi jaringan, database, security dan timer. MIDP dirancang khususnya untuk handphone, pager, PDA dan sebagainya.

Tujuan

Pada akhir bab ini, pelajar diharapkan dapat menguasai : 1. Memahami MIDP (Mobile Information Device Profile) 2. MIDP java platform 3. MIDlets Security 4. MIDlet Packaging

62

MIDP

Politeknik Telkom

Mobile Application

4.1

Mobile Information Device Profile (MIDP)MIDP dikhususkan untuk digunakan pada handset dengan kemampuan CPU, memori, keyboard dan layer yang terbatas, seperti handphone, pager, PDA dan sebagainya.

Gambar 4.1 Arsitektur aplikasi MIDP Pada Gambar 4.1 Menunjukkan bahwa aplikasi yang mendukung perangkat MIDP adalah aplikasi MIDlet yang juga termasuk bagian dari Java 2 Micro Edition. Mobile Information Device Profile (MIDP) berada di atas dari CLDC. Anda tidak bisa menulis aplikasi mobile hanya dengan menggunakan CLDC API. Anda harus tetap memanfaatkan MIDP yang mendefinisikan UI. Spesifikasi MIDP, kebanyakan seperti CLDC dan API lainnya sudah digambarkan melalui Java Community Process (JCP). JCP melibatkan sebuah kelompok ahli berasal dari lebih dari 50 perusahaan, yang terdiri atas pabrik perangkat mobile, pengembang software. MIDP terus berkembang, dengan versi-versi masa depan yang telah lulus dari proses ketat JCP.MIDP 63

Politeknik Telkom

Mobile Application

Spesifikasi MIDP menggambarkan suatu perangkat MIDP yang memiliki karakteristikkarateristik ini sebagai batas minimum: Tampilan: Ukuran Layar: 96x54 kedalaman tampilan: 1-bit Ketajaman pixel: sekitar 1:1 Masukan: Satu atau lebih mekanisme user-input: satu keybboard, dua keyboard, atau touch screen

Gambar 4.2 Tampilan Layar Peraltan Mobile Memory: 256 kilobytes of non-volatile memory untuk implementasi MIDP. 8 kilobytes of non-volatile memory for application-created persistent data 128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap) Jaringan: dua jalur, wireless, bandwidth terbatas Sound: Kemampuan untuk memainkan nada-nada MIDP menggambarkan model aplikasi, UI API, penyimpanan dan jaringan yang kuat, permainan dan media API, kebijakan keamanan, penyebaran aplikasi dan ketetapan over-theair.

64

MIDP

Politeknik Telkom

Mobile Application

4.24.2.1

J2ME SecurityProtection Domains Sebuah protection domains endefinisikan rangkaian permissions yang disertakan pada MIDlet Suite. MIDP 2.0 menjelaskan bahwa paling tidak terdapat dua buah protection domains : untrusted dan trusted domains. Untrusted domains adalah pembatasan dimana akses terhadap protected API pada kondisi default tidak diijinkan. Seorang user secara eksplisit harus mengatur tipe akses MIDlet Suite terhadap API. Untrusted MIDlets (berjalan di untrusted domains) tidak memerlukan user permission dalam mengakses protected API. Untrusted dan trusted domain menyediakan akses yang tak terbatas pada Record Management, MIDlet life cycle, LDCUI, Game dan Multimedia API. Bagaimanapun, API untuk koneksi HTTP dan HTTPS menuntut kejelasan permissions dari user jika MIDlet Suite berjalan pada untrusted domain. Sebuah protection domain adalah rangkaian dari Allowed dan User permissions yang diberikan kepada MIDlet Suite.

4.2.2

Permissions Terdapat dua tipe mode interaksi permissions, mode Allowed dan User. Pada mode Allowed, user tidak diminta melakukan pengaturan permission saat MIDlet mengakses sebuah API yang terproteksi. Sebuah aplikasi secara otomatis memberikan hak akses terhadap resource dan interaksi dari user tidak diperlukan. Dalam mode User, device menanyakan apakah user menginginkan untuk mencabut atau memberikan hak akses MIDlet terhadap resource. Frekuensi dari pertanyaan bergantung pada mode interaksi yang dipilih oleh user.

MIDP

65

Politeknik Telkom

Mobile Application

4.2.3

Mode Interaksi User Sebuah user permission memiliki salah satu dari 2 mode interaksi berikut : 1. Blanket User memberikan permission pada MIDlet Suite untuk mengakses resource atau API secara permanen. User tidak akan lagi diminta melakukan pengaturan setiap MIDlet Suite berjalan. Permission yang ada akan tetap eksis hingga MIDlet Suite dihapus dari device atau user merubah permission tersebut. Membuat sebuah permission adalah salah satu dari cara pengamanan akses terhadap restricted APIs. Dalam MIDP, nama dari permission menggunakan nama dari package dari API tersebut sebagai prefix dan bersifat case sensitive. Jika permission tersebut ditujukan kepada sebuah class, maka penamaan permission harus mengandung nama class dan package. Sebuah MIDlet dapat menuntut adanya permission dengan mendeklarasikan MIDlet-Permissions ataupun atribut MIDletPermissions-Opt pada application descriptor. Jika MIDlet Suite menyertakan atribut MIDlet-Permissions, atribut permission tersebut harus diberi hak akses terhadap protection domain. Jika hak akses tidak diberikan, maka proses instalasi akan dibatalkan. Multiple permissions dituliskan menggunakan tanda koma (,) sebagai pemisah. MIDlet-Permissions: javax.microedition.io.Connector.http MIDlet-Permissions-Opt: javax.wireless.messaging.sms.receive, javax.wireless.messaging.sms.send Membuat permissions pada MIDlet Suite menggunakan NetBeans Mobility Pack :

66

MIDP

Politeknik Telkom

Mobile Application

Gambar 4.3 Multiple Permissions

Gambar 4.4 Penambahan PermissionsMIDP 67

Politeknik Telkom

Mobile Application

2. Trusted MIDlets Sebuah MIDlet dapat diputuskan sebagai trusted application jika authentifikasi dan integritas dari file JAR dapat terverifikasi oleh device dan terbatas pada sebuah protection domain. Proses verifikasi dilakukan oleh device menggunakan certificates. Menandai MIDlet pada NetBeans Mobility Pack : Untuk memberi tanda pada MIDlet Suite menggunakan NetBeans Mobility Pack, buka project properties (klik kanan project name pada projects tab dan pilih Properties). Periksa bagian Sign Distribution :

68

MIDP

Politeknik Telkom

Mobile Application

4.2.4

Anatomi dari Aplikasi MIDP APIs yang tersedia bagi suatu aplikasi MIDP datang dari kemasankemasan di dalam kedua-duanya CLDC dan MIDP, seperti yang ditunjukkan di dalam Gambar 1-2. Bungkus yang ditandai dengan sebuah lambing + bersifat baru di CLDC 1.1 dan MIDP 2.0. CLDC menggambarkan suatu inti dari APIs, kebanyakan mengambil dari lingkup J2SE. Ini memasukkan di dalamnya kelas-kelas bahasa pokok di javalang, kelas-kelas stream dari java.io, dan koleksi-koleksi sederhana dari java.util. CLDC juga menetapkan network API di javax.microedition.io.

Gambar 4.5 MIDP packages

MIDP

69

Politeknik Telkom

Mobile Application

Kita dapat menentukan secara bebas memilih alat dari beragam vendor penyedia untuk mengakses fasilitas-fasilitas pada Java API. Beragam alat-alat MIDP dengan beragam aplikasi software di gambarkan pada Gambar 4.6.

Gambar 4.6. MIDP software components

Masing-masing alat menerapkan beragam sistem operasi (OS). Aplikasiaplikasi berjalan langsung pada lapisan yang sudah didefinisikan terlebih dahulu di MIDP, dan beragam ala-alat memiliki beragam juga jenis Sistem Operasinya (OS). Layered pada bagian atas OS dari alat adalah CLDC (termasuk JVM) dan MIDP APIs. Aplikasi-aplikasi MIDP digunakan hanya di CLDC dan MIDP APIs. Aplikasi-aplikasi spesifikasi alat Java boleh juga menggunakan interface API Java yang disediakan oleh vendor penyedia alat.

4.3

MIDletSuatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy.

70

MIDP

Politeknik Telkom

Mobile Application

MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend dengan class MIDlet. Dan dapat meminta parameter dari AMS seperti dirumuskan dalam application descriptor (JAD). Suatu MIDlet tidak harus memiliki (dan memang harus tidak mempunyai) sebuah method public static void main(String[] argv). Method tersebut tidak akan dikenal lagi oleh AMS sebagai titik awal sebuah program. 4.3.1 Arsitektur Aplikasi MIDlet Paket memiliki class MIDlet yang mendefinisikan MIDP (Mobile Information Device Profile) dan interaksinya dengan perangkat handled yang bersangkutan. Class ini merupakan class utama dalam sebuah MIDlet, yaitu semua aplikasi MIDlet harus merupakan turunan dari class ini. Class ini merupakan class abstract, sehingga class turunannya harus mengimplementasikan fungsi-fungsi abstract di dalamnya, perhatikan kode Java di bawah ini :package javax.microedition.midlet; import com.sun.midp.midlet.MIDletState; import com.sun.midp.midlet.MIDletSuite; public abstract class MIDlet{ protected MIDlet(){ state = new MIDletProxy(this); } protected abstract void startApp() throws MIDletStateChangeException{ } protected abstract void pauseApp() { } protected abstract void destroyApp(boolean unconditional) throws MIDletStateChangeException{ } public final void notifyDestroyed(){ state.notifyDestroyed(); } public final void notifyPaused(){ state.notifyPaused();MIDP 71

Politeknik Telkom

Mobile Application

} public final String getAppProperty(String key){ return state.getMIDletSuite().getProperty(key); } public final void resumeRequest(){ state.resumeRequest(); } Private MIDletProxy state ; }

Tampak ada tiga fungsi yang bersifat abstract yaitu :protected abstract void startApp() throws MIDletStateChangeException{ } protected abstract void pauseApp() { } protected abstract void destroyApp(boolean unconditional) throws MIDletStateChangeException{ }

Aplikasi MIDlet sudah pasti merupakan turunan dari class MIDlet diatas, harus mengimplementasikan tiga fungsi diatas. Itulah mengapa pada contoh MIDlet HelloWorld diatas, Anda menemukan implementasi dari fungsi-fungsi tersebut, sekalipun implementasi fungsi tersebut tidak melakukan apa-apa. Fungsi-fungsi yang tidak abstract pada class MIDlet bisa Anda gunakan karena otomatis diturunkan ke aplikasi MIDlet Anda, yakni ; public final void notifyDestroyed(); Digunakan oleh MIDlet untuk memberitahukan ke AMS bahwa MIDlet telah dihancurkan dan dibersihkan dari memori. Mengenai AMS ini akan dibahas kemudian. public final void notifyPaused(); Digunakan oleh MIDlet untuk memberitahukan ke AMS bahwa MIDlet telah dinonaktifkan sementara (paused). public final String getAppProperty(String key); Digunakan oleh MIDlet untuk mengambil informasi properti dari AMS sesuai parameter key pada fungsi getAppProperty().

72

MIDP

Politeknik Telkom

Mobile Application

public final void resumeRequest(); Digunakan oleh MIDlet untuk meminta ke AMS agar diaktifkan kembali.

Ada beberapa istilah penting dalam daur hidup sebuah MIDlet, yaitu: o Application Management Software MIDlet berjalan dalam sebuah perangkat handled. Application Management Software ini merupakan software atau program bawaan yang ada dalam perangkat handled tersebut untuk mengatur manajemen aplikasi MIDlet yang ada. o MIDlet Merupakan aplikasi yang dijalankan pada sebuah perangkat handled. MIDlet tidak berinteraksi langsung dengan hardware dari handphone, Palm atau perangkat handled Anda yang lain, melainkan berinteraksi melalui Application Management Software. AMS inilah yang akan menerima sinyal dari MIDlet bahwa MIDlet akan dijalankan atau berhenti. o MIDlet State Merupakan status dari sebuah MIDlet yang akan dijelaskan kemudian. 4.3.2 Siklus MIDlet Jika Anda mengenal Java Applet, Anda akan menemukan bahwa Applet dapat berada dalam status init(), start(), stop() dan run(). Untuk MIDlet, ada tiga status dalam daur hidup sebuah MIDlet yaitu: Nama Status Paused Keterangan Status ini terjadi ketika MIDlet selesai diinisialisasi dan tidak melakukan aksi apapun. Pada status ini MIDlet tidak boleh sedang mengunci suatu sumber daya, misalnya tidak boleh sedang melakukan locking atau mengunci sebuah file untuk ditulis yang menyebabkan proses lain tidak bias menulis ke file tersebut. Secara garis besar, status MIDlet adalah paused pada saat: Setelah MIDlet dibuat dengan konstruktor new()73

MIDP

Politeknik Telkom

Mobile Application

Active Destroyed

Dari status Active, kemudian berhasil memanggil fungsi MIDlet.pauseApp() Dari status Active, kemudian berhasil memanggil fungsi MIDlet.notifyPaused() Dari status Active, namun ketika akan start() terjadi kesalahanberupa exception: MIDletStateChangeException Status ini terjadi ketika MIDlet sedang aktif/berjalan dengan normal, yakni setelah memanggil fungsi MIDlet.startApp() Status ini terjadi ketika MIDlet berhenti berjalan (identik dengan exit) sehingga seluruh sumber daya yang digunakan akan dibebaskan. Status ini terjadi ketika berhasil dilakukan pemanggilan fungsi MIDlet.destroyApp() atau MIDlet.notifyDestroyed()

Jika digambarkan perubahan status dalam daur hidup sebuah MIDlet adalah seperti gambar berikut :

Gambar 4.7: Daur hidup MIDlet74 MIDP

Politeknik Telkom

Mobile Application

Eksekusi Sebuah MIDlet Umumnya urutan eksekusi sebuah MIDlet adalah sebagai berikut: 1. AMS (Application Management Software) menginisialisasi sebuah objek MIDlet, sehingga MIDlet be