8/22/2019 Presenj2me
1/28
PENGENALAN
J2ME
(Java Application for Mobile Device)
Windu Gata, SKom. Universitas Budi Luhur
"God gives u tools.. it is depends to you how deep you want to dig...
that is why I always wanted to dig deeper and deeper...
bcos I was so blessed with all the tools He had given me..."
(by. Siskaovianty)
8/22/2019 Presenj2me
2/28
Handphone & Fungsinya
Alat Komunikasi (Mobile Phone) Menjadi Life Style Pada
Kehidupan Modern
SMS (Short Messaging Service /Pesan Pendek)
MMS (Multi Media Messaging)
Internet (HTTP & WAP)
Tukar Menukar File InfraRed
BlueTooth
Audio Video
Dan Lain - Lain
8/22/2019 Presenj2me
3/28
Apa Itu J2ME
Java 2 Micro Edition (J2ME)
adalah program yang
disediakan oleh SUN
Microsystem untuk
menjawab kebutuhan olehpengembang program,
khususnya pengembang
program untuk alat-alat
terbatas seperti Handphone,
PDA dan lain-lain.
http://www.sun.com
8/22/2019 Presenj2me
4/28
Media Mobile
Contoh : Internet TV, Nokia
Communicator dan Car Television
Contoh : Handphone (Nokia,
Samsung, Palm, dan lain-lain),PDA, Pocket PC dan two way
pager.
Prosesor : 32 BitProsesor : 16 Bit atau 32 Bit
Digunakan pada perangkat handhelddengan ukuran memori minimal 2
Mbytes
Digunakan pada perangkat handhelddengan ukuran memori terbatas
(160-512 Kbytes)
JVM yang dikenal dengan nama CVMJVM yang digunakan dikenal dengan
nama KVM
Mengimplementasikan seluruh fitur
pada J2SE
Mengimplitasikan subset dari J2SE
CDCCLDC
8/22/2019 Presenj2me
5/28
Kenapa J2ME ?
Moto JAVA
PROGRAMMING, Write
Once Use Everywhere
Dengan Menggunakan
Program J2ME Dapat
Digunakan Disemua
Handphone.
8/22/2019 Presenj2me
6/28
Bagaimana Cara Membuat Program Pada
J2ME
8/22/2019 Presenj2me
7/28
Bagaimana Cara Membuat Program Pada
J2ME
8/22/2019 Presenj2me
8/28
Bagaimana Cara Membuat Program Pada
J2ME
8/22/2019 Presenj2me
9/28
Bagaimana Cara Membuat Program Pada
J2ME
Unduh Sun J2SDK pada
Website
http://java.sun.com/j2se/do
wnloads/dan lakukan
Instalasi
Unduh Sun Java Wireless
Toolkit Pada Web Site
http://java.sun.com/products
/j2mewtoolkit/
8/22/2019 Presenj2me
10/28
Versi Sun Java Wireless Toolkit
J2ME Wireless Toolkit 1.0.4 J2ME Wireless Toolkit 2.0_01
J2ME Wireless Toolkit 2.1 J2ME Wireless Toolkit 2.2Connected Limited Device Configuration (CLDC) 1.1 (JSR 139)
Mobile Information Device Profile (MIDP) 2.0 (JSR 118)
Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185)
Wireless Messaging API (WMA) 2.0 (JSR 205)Mobile Media API (MMAPI) 1.1 (JSR 135)
PDA Optional Packages for the J2ME Platform (JSR 75)
Java APIs for Bluetooth (JSR 82)
J2ME Web Services Specification (JSR 172)
Mobile 3D Graphics API for J2ME (JSR 184)
Connected Limited Device Configuration (CLDC), version 1.1 (JSR-039)
Mobile Information Device Profile 2.0, (JSR-118)
J2ME Web Services version 1.0, (JSR-172)Wireless Messaging APIs version 1.1, (JSR-120)
Mobile Media APIs version 1.1, (JSR-135)
Support forMIDP 2.0
Support forWMA
Support forMMAPI
Solaris and Linux versions
Additional development features:
Integrated Over The Air emulation
Midlet Signing
WMA Emulation features for SMS and CBS messages
New skins for QWERTY and Media devices
Certificate management
Push Registry emulationMonitoring for all protocols (HTTP(S), Socket, datagram, Comm,
SSL, SMS/CBS)
Compile and Runtime selection of API extensions (WMA, MMAPI)
New demo applications
Support for the ProGuard obfuscator
Canvas (Graphics 2 D)
Form (textbox, choice, radiobutton, button, gauge, List, dll)
Http
8/22/2019 Presenj2me
11/28
Membuat Program HelloWorld
Bukalah Aplikasi Wireless Toolkit
Buatlah Project Baru
Direktori
HelloMIDlet.java
8/22/2019 Presenj2me
12/28
Membuat Program HelloWorld
Buat Program HelloMidlet.java Disimpan Pada Direktori c:\WTK\apps\HelloWorld
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloMIDlet extends MIDlet implements CommandListener {
private Form mMainForm;
public HelloMIDlet(){
mMainForm = new Form("Hello World");
mMainForm.append(new StringItem(null, "Hello Teman Teman Budiluhur"));
mMainForm.addCommand(new Command("Exit", Command.EXIT,0));
mMainForm.setCommandListener(this);
}
public void startApp() {
Display.getDisplay(this).setCurrent(mMainForm);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c, Displayable s) {
notifyDestroyed();}
}
8/22/2019 Presenj2me
13/28
Hasil Pembuatan Program HelloWorld
BUILD RUN
8/22/2019 Presenj2me
14/28
Membentuk Paket HelloWorld.jar &
HelloWorld.jad
RS232
BLUETOOTHIRDA
8/22/2019 Presenj2me
15/28
J2ME & Grafik 2 Dimport javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
class canvasBendera extends Canvas {
public void paint(Graphics g) {g.setColor(0,0,0);
g.drawRect(0,0,getWidth()-1, getHeight()/2);
g.setColor(255,0,0);
g.fillRect(1,1, getWidth()-1, getHeight()/4);
g.setColor(255,255,255);
g.fillRect(1, getHeight()/4, getWidth()-1,getHeight()/4);
g.setColor(0,0,255);
g.drawString("Indonesia Merdeka", getWidth()/2 ,
getHeight()/2 + 10, g.TOP | g.HCENTER);
g.setColor(0,255,0);
g.drawString("17 Agustus 1945", getWidth()/2 ,
getHeight()/2 + 20, g.TOP | g.HCENTER);}
}
public class bendera extends MIDlet {
private Display display;
public bendera() {}
public void startApp() {
display = Display.getDisplay(this);
Canvas canvas = new canvasBendera();
display.setCurrent(canvas);
}
public void pauseApp () {}
public void destroyApp (boolean unconditional) {}
}
8/22/2019 Presenj2me
16/28
J2ME & INTERNET (HTTP)
INTERNET
GPRS
WEB APLICATION SERVER
8/22/2019 Presenj2me
17/28
J2ME & INTERNET (HTTP)import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class beritaantara extends MIDlet {
private Display display;
String url =
"http://wap.antara.net.id:2002/testing/tampilakhir.php";
public beritaantara() {
display = Display.getDisplay(this);
}
public void startApp() {
try {
getViaStreamConnection(url);} catch (IOException e) {
//Handle Exceptions any other way you like.
System.out.println("IOException " + e);
e.printStackTrace();
}
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
/**
* read url via stream connection
*/
void getViaStreamConnection(String url) throws IOException {StreamConnection c = null;
InputStream s = null;
StringBuffer b = new StringBuffer();
Form t = new Form("Berita Antara Terakhir");
try {
c = ( StreamConnection)Connector.open(url);
s = c.openInputStream();
int ch;
while((ch = s.read()) != -1) {
b.append((char) ch);
}
System.out.println(b.toString());t.append(b.toString());
} finally {
if(s != null) {
s.close();
}
if(c != null) {
c.close();
}
}
display.setCurrent(t);
}}
8/22/2019 Presenj2me
18/28
J2ME & INTERNET (HTTP)
8/22/2019 Presenj2me
19/28
J2ME & TELNET,SSH VIA INTERNET
http://www.xk72.com/midssh
http://www.mutelnet.com
http://j2me.ngphone.com/opensource/ssh.htm
INTERNET
GPRS
SERVER
8/22/2019 Presenj2me
20/28
J2ME, Form dan Record Manajemen
System
javax.microedition.rms.*
non-volatile(data tidak akan hilang ketika Handphone dimatikan)
Record
ManagemenSystem
Array of Bytes3
Array of Bytes2
Array of Bytes1
DataRecordID
8/22/2019 Presenj2me
21/28
APLIKASI MAHASISWA - J2ME, Form
dan Record Manajemen System
Dibuat Oleh Gerry Geraldi Untuk Mata Kuliah Bahasa Pemrograman 4
1
KampuzJurusanSertifikatNamaNim
Data
RecordID
RecStore
dbMhs
CtrlMahasiswa
EntryMhs EditMhs DeleteMhs SearchMhs
NimNama
Sertifikat
Jurusan
Kampuz
CtrlMahasiswa.java
bukaRS()tutupRS()
writeRecord() dll
EntryMahasiswa.javaEditMahasiswa.java
DeleteMahasiswa.java
SearchMahasiswa.java
GambarCover.java // untuk menampilkan Gambar pada Cover MIDletAbout.java // menampilkan About dari Programmer dari class Canvas.
8/22/2019 Presenj2me
22/28
APLIKASI MAHASISWA - J2ME, Form
dan Record Manajemen System
8/22/2019 Presenj2me
23/28
J2ME & SMS ( Short Messaging Service)
Pengirim Penerima
SMS Center(Store and Forward)
8/22/2019 Presenj2me
24/28
Tentang SMS
Dikembangkan dan
distandarisasi oleh European
Telecommunication Standard
Institute(ETSI)
Umumnya pesan SMS berupa
mode PDU (Protocol DataUnit) yaitu format pesan dalam
bentuk bilanganbilangan
heksadesimal.
8/22/2019 Presenj2me
25/28
JAVA GUI & SMS
8/22/2019 Presenj2me
26/28
J2ME & SMS
8/22/2019 Presenj2me
27/28
J2ME & SMS (WMA Wireless Messaging API)
8/22/2019 Presenj2me
28/28
J2ME & PALM OS
www.palm.com