• Tidak ada hasil yang ditemukan

POLITEKNIK TELKOM BANDUNG

N/A
N/A
Protected

Academic year: 2021

Membagikan "POLITEKNIK TELKOM BANDUNG"

Copied!
247
0
0

Teks penuh

(1)

MOBILE APPLICATION

POLITEKNIK TELKOM BANDUNG

(2)

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.

(3)

KATA PENGANTAR

Assalamu’alaikum 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.

Wassalamu’alaikum Wr. Wb. Bandung, Oktober 2009

Christanto Triwibisono Wakil Direktur I

(4)

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

(5)

3.2.1

CLDC Libraries pewarisan dari J2SE

... 47

3.2.2

CLDC Libraries J2ME

... 51

3.3

CLDC System Properties

... 54

3.4

CLDC Networking

... 54

3.5

Verifikasi Class oleh KVM

... 55

4

MIDP ... 62

4.1

Mobile Information Device Profile (MIDP)

... 63

4.2

J2ME Security

... 65

4.2.1

Protection Domains

... 65

4.2.2

Permissions

... 65

4.2.3

Mode Interaksi User

... 66

4.2.4

Anatomi dari Aplikasi MIDP

... 69

4.3

MIDlet

... 70

4.3.1

Arsitektur Aplikasi MIDlet

... 71

4.3.2

Siklus MIDlet

... 73

4.3.3

MIDlet suites

... 75

5

Integrated Programming Environment

... 82

5.1

Pengenalan

... 83

5.2

"Hello, world!" MIDlet

... 83

5.3

Compilation dan Packaging MIDlets

... 87

5.4

Menggunakan Sun Wireless Toolkit

... 89

5.5

Menggunakan NetBeans Mobility Pack

... 92

5.6

Bekerja dengan Form

... 103

6

High Level User Interface I

... 112

6.1

MIDP User Interface

... 113

6.2

Display

... 114

6.2.1

Displayable

... 114

6.2.2

Title

115

6.2.3

Command

... 116

6.2.4

CommandListener

... 119

6.2.5

Ticker

... 120

6.2.6

Screen

... 120

6.2.7

Item

121

(6)

6.3

Text Box

... 122

6.4

Form

... 124

6.5

Date Field

... 125

6.6

Image Item

... 126

6.7

Text Field

... 128

6.8

Gauge

... 130

7

High Level User Interface II

... 138

7.1

ChoiceGroup

... 139

7.2

List

... 140

7.3

Alert

... 142

7.4

String Item

... 144

7.5

Jenis Fungsi-Fungsi API pada MIDP untuk GUI

... 145

8

Low Level User Interface I

... 151

8.1

Pengenalan

... 152

8.2

Canvas

... 152

8.2.1

Sistem Koordinat

... 153

8.2.2

”Hello,World!”

... 154

8.2.3

Perintah

... 156

8.3

Grafik

... 157

8.3.1

Warna

... 157

8.3.2

Huruf

... 159

8.3.3

Style Coretan

... 160

8.3.4

Menggambar garis

... 160

8.3.5

Menggambar kotak

... 162

8.3.6

Menggambar Sudut

... 164

8.3.7

Melukis gambar

... 166

9

Low Level User Interface II

... 173

9.1

Event key

... 174

9.2

Aksi Permainan

... 174

9.3

Event Pointer

... 175

9.4

Clipping

... 176

(7)

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

(8)
(9)

Intro J2ME 1

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

(10)

1.1 Keluarga JAVA

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, hanya penggunaan API yang berbeda sesuai dengan target platform yang akan digunakan dan kompatibilitas platform tersebut.

(11)

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 perangkat-perangkat semacam handphone, Palm, PDA, dan Pocket PC.

(12)

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)

(13)

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.

(14)

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)

(15)

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

1.2 Gambaran J2ME

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.

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.

(16)

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 Configuration

Suatu 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 Profile

Suatu 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.

(17)

1.5 Perangkat Mobile

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 :

a. Ukuran yang kecil

Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.

b. 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.

c. 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.

d. 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.

e. 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.

(18)

f. Konektivitas yang terbatas

Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. Kebanyakan dari mereka menggunakan koneksi wireless.

g. 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.

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 sets

(19)

1.6 Sistem Operasi untuk Alat Mobile

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. 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) Palm (PalmOS) Microsoft (Pocket PC)

Sony Ericsson Palm Compaq

Motorola IBM HP

Nokia Sony Casio

Psion Dell Symbol

Matsushita Handspring Siemens/ Fujitsu Philips Symbol Toshiba

Sony Qualcomm

(20)

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.

(21)

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 hand-held 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

(22)

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).

(23)

Rangkuman

1. Java merupakan bahasa pemrograman “general purpose”, Java bisa digunakan untuk pembuatan aplikasi web, database, grafis dan berbagai aplikasi lainnya seperti bahasa pemrograman lainnya. 2. 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.

3. 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.

4. 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.

5. 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

6. Terdapat tiga nama OS untuk mobile devices yang popular yaitu

Palm dengan PalmOS-nya, Symbian dengan EPOC-nya, dan

(24)

Kuis Benar Salah

1. 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.

2. J2EE dan J2SE dikembangkan untuk platform Server dan PC, J2ME dikembangkan untuk platform mobile device sedangkan Java Card untuk platform simcard.

3. Pada dasarnya versi-versi tersebut sama untuk penggunaan API sesuai dengan target platform yang akan digunakan dan kompatibilitas platform tersebut.

4. 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.

5. 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.

6. 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.

7. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda.

8. 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.

(25)

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.

(26)

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. 1,2,3,4 c. 1,2

b. 1,2,3 d. 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

3. 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

(27)

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

(28)

Latihan

1. Sebutkan perbedaan antara J2SE, J2EE, J2ME dan Java Card ?

2. Apa keuntungan menggunakan java sebagai pengembangan dan platform runtime untuk perangkat mobile?

3. Sebutkan komponen-komponen dari J2ME ?

4. Sebutkan kemampuan-kemampuan yang dimiliki Java API merupakan komponen-komponen dan kelas Java yang sudah jadi ?

5. Sebutkan karakteristik perangkat mobile ?

6. Sebutkan tiga nama OS untuk mobile devices yang popular dan masing-masing OS berikan minimal 3 contoh perangkat mobilenya ?

(29)

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 Machine

(30)

2.1 J2ME, J2SE dan J2EE

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 perangkat-perangkat semacam handphone, Palm, PDA, dan Pocket PC.

(31)

Gambar 2.2 Berbagai versi Java dilihat dari target platformnya

2.2 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), 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

(32)

2.3 J2ME Configuration

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. 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,

(33)

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

dari J2SE Mengimplementasikan seluruh fitur pada J2SE JVM yang digunakan dikenal

dengan nama KVM

JVM yang digunakan dikenal dengan nama CVM

Digunakan pada perangkat handled dengan ukuran memori terbatas (160-512 KiloBytes)

Digunakan pada perangkat handled dengan ukuran memori minimal 2 Mbytes

Processor 16 bit atau 32 bit Processor : 32 bit

2.3.1 CLDC

(34)

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

(35)

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”.

(36)

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 Framework

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. 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.

(37)

Gambar 2.6: Hirarki koneksi GCF

2.6 J2ME Profile

Jika 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

(38)

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 URL

30 Connected Limited Device Configuration (CLDC) 1.0

http://jcp.org/jsr/detail/30.jsp

139 Connected Limited Device

Configuration (CLDC) 1.1 http://jcp.org/jsr/detail/139.jsp 36 Connected Device Configuration (CLDC) 1.0.1 http://jcp.org/jsr/detail/36.jsp 218 Connected Device Configuration (CLDC) 1.1 http://jcp.org/jsr/detail/218.jsp

Profile

JSR Name URL

37 Mobile Information Device Profile 1.0

http://jcp.org/jsr/detail/37.jsp

118 Mobile Information Device Profile 2.0

http://jcp.org/jsr/detail/118.jsp

75 PDA Profile 1.0 http://jcp.org/jsr/detail/75.jsp

46 Foundation Profile 1.0 http://jcp.org/jsr/detail/46.jsp

(39)

62 Personal Profile 1.0 http://jcp.org/jsr/detail/62.jsp

219 Foundation Profile 1.1 http://jcp.org/jsr/detail/219.jsp

217 Personal Basis Profile 1.1 http://jcp.org/jsr/detail/217.jsp

Optional API

JSR Name URL

75 PDA Optional Packages for J2ME

http://jcp.org/jsr/detail/75.jsp

82 Java APIs for Bluetooth http://jcp.org/jsr/detail/82.jsp

135 Mobile Media API 1.1 http://jcp.org/jsr/detail/135.jsp

184 Mobile 3D Graphics http://jcp.org/jsr/detail/184.jsp

179 Location API for J2ME http://jcp.org/jsr/detail/179.jsp

120 Wireless Messaging API 1.0 http://jcp.org/jsr/detail/120.jsp

205 Wireless Messaging API 2.0 http://jcp.org/jsr/detail/205.jsp

172 J2ME Web Services APIs http://jcp.org/jsr/detail/172.jsp

66 RMI Optional Package http://jcp.org/jsr/detail/66.jsp

2.8 MIDP

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.

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

(40)

 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 MIDlet

Suatu 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.

(41)

2.10 Siklus MIDlet

kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk status “Pause” setelah perintah baru dibuat. AMS memanggil constructor public tanpa argumen dari MIDlet. 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.

(42)

Rangkuman

1. Menjelaskan tentang perbedaan J2ME dengan J2SE, dan J2EE 2. 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.

3. 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.

4. Dalam J2ME dibagi menjadi dua bagian yang dikenal dengan istilah

configuration dan profile.

5. 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.

6. 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.

(43)

 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

(44)

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().

(45)

Kuis Benar Salah

1. 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.

2. J2ME Configuration bisa dikatakan merupakan JRE pada handled devices. Lingkungan kerja yang dimaksud meliputi Java Virtual Machine yang digunakan untuk menjalankan program Java. 3. Ada dua kategori J2ME Configuration saat ini, yaitu CLDC

(Connected Limited Device Configuration) dan CDC (Connected Device Configuration)

4. 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 perangkat-perangkat tersebut hanya memiliki memori berukuran 160-512 KiloBytes.

5. 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.

6. 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.*).

(46)

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).

(47)

Pilihan Ganda

1. 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

2. 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

3. 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. 1, 2, 3, 4, 5 c. 1, 2, 3

b. 1, 2, 3, 4 d. 1, 2

4. 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. 1, 2, 3, 4, 5 c. 1, 2, 3 b. 1, 2, 3, 4 d. 1, 2

(48)

Latihan

1. Sebutkan perbedaan antara CLDC dan CDC ?

2. Sebutkan Fitur tertentu dari J2SE yang dipindahkan dari CLDC? 3. Sebutkan karakteristik dari perangkat CLDC ?

4. Sebutkan lima kategori J2ME Profile saat ini ?

5. Sebutkan spesifikasi MIDP menggambarkan suatu perangkat MIDP yang memiliki karakteristik-karateristik ini sebagai batas minimum?

(49)

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. Connected Limited Device Configuration (CLCD) 2. Kilobyte Virtual Machine (KVM)

(50)

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

(51)

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.

(52)

 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:

(53)

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

(54)

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)

(55)

Gambar 3.4. API pada J2ME CLDC

3.2 CLDC Libraries

3.2.1 CLDC Libraries pewarisan dari J2SE

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).

(56)

1. Java Lang

(57)

2. Java Util

(58)

3. Java IO

(59)

3.2.2 CLDC Libraries J2ME

Class library dari J2ME Platform adalah paket: 1. Package java.microedition.io

2. Package javax.microedition.lcdui 3. Package javax.microedition.midlet 4. Package javax.microedition.rms

1. Package java.microedition.io

(60)

2. Package javax.microedition.lcdui

(61)

3. Package javax.microedition.midlet

Gambar 3.10 Hirarki javax.microedition.midlet

4. Package javax.microedition.rms

(62)

3.3 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").

3.4 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("<protocol>:<address>; <parameters>").

 CLDC mendefinisikan basic connection types sedangkan protocol didefinisikan pada profiles.

3.1 Generic Connection Possibilities

 General form :

Connector.open("<protocol>://<address>:<parameters>");  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");

(63)

3.5 Verifikasi Class oleh KVM

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.

(64)

Rangkuman

1. 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).

2. 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.*).

3. 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

(65)

 Asynchronous exceptions  Beberapa error classes  User-defined class loaders  Reflection

 Thread groups dan daemon threads

4. 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.

5. 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).

6. 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

Gambar

Gambar 1.2 Berbagai versi Java dilihat dari target platformnya
Gambar 1.3 Java API
Gambar 1.3 :  Peralatan Mobile.
Tabel 1. Berbagai vendor mobile device dengan variasi OS-nya.
+7

Referensi

Dokumen terkait

4.2.2.5 Diagram Aktivitas Sistem Informasi Pemetaan Sekolah SMP-SMA Sederajat Tingkat Kabupaten Kudus Berbasis OpenSource

Maka dari itu, dengan kesempatan ini, Bapak Presiden saya mohon untuk revisi UU khususnya tentang sanksi pidana karena di sana juga tidak membedakan antara nelayan kecil dan

Seperti paket mana yang diijinkan masuk ke dalam sebuah jaringan internal dan paket mana yang ditolak, atau paket mana saja yang akan dilepas ke jaringan eksternal

Data yang digunakan adalah data sekunder bulanan dari tahun 2007 sampai 2012 berupa harga saham perusahaan Jakarta Islamic Index 30 dan LQ45 dijadikan sampel,

Sangat cemas hingga saya mandi keringat bahkan sampai merasakan sakit secara fisik. Ketika anda berada di dalam ruang tindakan sambil menunggu dokter gigi mempersiapkan

BADAN PERENCANAAN PEMBANGUNAN DAERAH KABUPATEN OGAN KOMERING

Dalam kegiatan ini, supervisor dan guru melaksanakan pembicaraan tentang hasil supervisi penyusunan RPP yang pada mengacu kepada Permendiknas Nomor 41 Tahun 2007

Puji dan syukur kehadirat Allah SWT atas segala nikmat, karunia dan limpahkan rahmat-NYA yang telah memberikan kesehatan dan kekuatan kepada penulis sehingga