SlideShare a Scribd company logo
1 of 27
MEMULAI PEMROGRAMAN MOBILE
Contoh 1:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet1 extends MIDlet {
private Display display;
public Midlet1(){
display = Display.getDisplay(this);
}
public void startApp() {
TextBox tb = new TextBox ("Hello MIDlet","Hello J2ME...!", 250,0);
display.setCurrent(tb);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Contoh 2:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet implements CommandListener {
Display display;
Command exitCommand = new Command("Exit", Command.EXIT, 1);
Alert helloAlert;
public HelloMidlet(){
helloAlert = new Alert(
"Judul MIDlet", "Selamat datang dipemrograman MIDlet!",
null, AlertType.INFO
);
helloAlert.setTimeout(Alert.FOREVER);
helloAlert.addCommand(exitCommand);
helloAlert.setCommandListener(this);
}
public void startApp() {
if (display == null){
display = Display.getDisplay(this);
}
display.setCurrent(helloAlert);
}
public void pauseApp() { }
public void destroyApp(boolean unconditional) { }
public void commandAction(Command c, Displayable d){
if (c == exitCommand){
destroyApp(true);
notifyDestroyed(); // Exit
}
}
}
HIGH LEVEL USER INTERFACE
Contoh 1:
package ora.ch4;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.lcdui.Ticker;
import javax.microedition.midlet.MIDlet;
public class TextBoxMIDlet extends MIDlet {
// Maximum size of the text in the TextBox
private static final int MAX_TEXT_SIZE = 64;
// The TextBox
protected TextBox textBox;
// The MIDlet's Display object
protected Display display;
// Flag indicating first call of startApp
protected boolean started;
protected void startApp( ) {
if (!started) {
// First time through - initialize
// Get the text to be displayed
String str = null;
try {
InputStream is = getClass( ).getResourceAsStream(
"resources/text.txt");
InputStreamReader r = new InputStreamReader(is);
char[] buffer = new char[32];
StringBuffer sb = new StringBuffer( );
int count;
while ((count = r.read(buffer, 0, buffer.length)) > -1) {
sb.append(buffer, 0, count);
}
str = sb.toString( );
} catch (IOException ex) {
str = "Failed to load text";
}
// Create the TextBox
textBox = new TextBox("TextBox Example", str,
MAX_TEXT_SIZE, TextField.ANY);
// Create a ticker and install it
Ticker ticker = new Ticker("This is a ticker...");
textBox.setTicker(ticker);
// Install the TextBox as the current screen
display = Display.getDisplay(this);
display.setCurrent(textBox);
started = true;
}
}
protected void pauseApp( ) {
}
protected void destroyApp(boolean unconditional) {
}
}
Contoh 2:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Timer;
import java.util.TimerTask;
public class SimpleStopWatch extends MIDlet implements CommandListener
{
Display dsp;
Form form;
TextField txt;
Command start;
Command pause;
Command exit;
Timer timer;
StartTime st;
public void startApp()
{
dsp = Display.getDisplay(this);
form = new Form("Simple StopWatch");
txt = new TextField("Waktu","",45, TextField.ANY);
start = new Command("Start", Command.OK,0);
pause = new Command("Pause", Command.OK,0);
exit = new Command("Exit", Command.EXIT,1);
form.append(txt);
form.addCommand(start);
form.addCommand(exit);
form.setCommandListener((CommandListener) this);
dsp.setCurrent(form);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command com, Displayable dis)
{
if(com == start)
{
form.removeCommand(start);
form.addCommand(pause);
timer = new Timer();
st = new StartTime();
timer.schedule(st,0,100);
}
else if(com == pause)
{
form.removeCommand(pause);
form.addCommand(start);
timer.cancel();
}
else if(com == exit)
{
destroyApp(false);
notifyDestroyed();
}
}
public class StartTime extends TimerTask
{
int a;
int dtk, detik, menit, jam;
public final void run()
{
++dtk;
if(dtk >= 9)
{
detik = detik + 1;
dtk = 0;
}
else if(detik > 59)
{
menit = menit + 1;
detik = 0;
}
else if(menit > 59)
{
jam = jam + 1;
menit = 0;
}
txt.setString(jam + ":" + menit + ":" + detik + ":" +
dtk);
}
}
}
LOW LEVEL USER INTERFACE
Contoh 1:
import javax.microedition.lcdui.*;
public class MIDPCanvas extends Canvas implements CommandListener {
public MIDPCanvas() {
}
public void paint(Graphics g) {
g.drawString("Sample Text", 0, 0, Graphics.TOP | Graphics.LEFT);
// desain form
int w = getWidth();
int h = getHeight();
g.setColor(0,0,0);
g.fillRect(0,0,w,h);
// shape line
g.setColor(0,174,0);
int z = 10;
g.drawLine(z, z, z=30, z);
//shape ractanggle
g.setColor(70,28,0);
z += 15;
g.drawRect(z,z,100,50);
g.fillRect(20,132,88,44);
//shape mound ractanggle
g.setColor(255,255,255);
z +=75;
g.drawRoundRect(z,z,35,35,73,73);
//shape triangle
g.setColor(0,0,255);
z +=15;
g.fillTriangle(z,z+30,z+60,z+30,z+60,z+100);
}
protected void keyPressed(int keyCode) {
}
protected void keyReleased(int keyCode) {
}
protected void keyRepeated(int keyCode) {
}
protected void pointerDragged(int x, int y) {
}
protected void pointerPressed(int x, int y) {
}
protected void pointerReleased(int x, int y) {
}
public void commandAction(Command command, Displayable displayable) {
}
}
Contoh 2:
package movingcircle;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.*;
public class Midlet extends MIDlet implements CommandListener {
public MovingCircleCanvas canvas;
public Alert alert;
public static boolean isPaused = false;
private Command exitCmd = new Command("Exit", Command.EXIT, 99);
private Command pauseCmd = new Command("Pause", Command.SCREEN, 1);
private Command resumeCmd = new Command("Resume", Command.SCREEN, 0);
private int tempX, tempY;
public Midlet() {
// TODO Auto-generated constructor stub
canvas = new MovingCircleCanvas(this);
canvas.addCommand(exitCmd);
canvas.addCommand(pauseCmd);
canvas.setCommandListener(this);
}
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
Display display = Display.getDisplay(this);
display.setCurrent(canvas);
canvas.mulai();
}
public void commandAction(Command c, Displayable s) {
// TODO Auto-generated method stub
if (c == exitCmd) {
try {
destroyApp(true);
notifyDestroyed();
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
} else if (c == pauseCmd) {
isPaused = true;
canvas.addCommand(resumeCmd);
canvas.removeCommand(pauseCmd);
tempX = canvas.speedBallX;
tempY = canvas.speedBallY;
canvas.speedBallX = 0;
canvas.speedBallY = 0;
} else if (c == resumeCmd) {
isPaused = false;
canvas.addCommand(pauseCmd);
canvas.removeCommand(resumeCmd);
canvas.speedBallX = tempX;
canvas.speedBallY = tempY;
// canvas.mulai();
}
}
}
PERSISTENCE
Contoh 1:
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.TextField;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.rms.RecordFilter;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
public class RMSKonsep extends MIDlet
{
Input input;
public RMSKonsep()
{
input = new Input();
}
public void startApp()
{
Display.getDisplay(this).setCurrent(input);
}
public void pauseApp(){}
public void destroyApp(boolean n){ notifyDestroyed(); }
}
class Input extends Form implements CommandListener,RecordFilter
{
public TextField tf;
public TextField tfCari;
public RecordStore rs;
public Input()
{
super(“Input “);
try{
rs = RecordStore.openRecordStore(“KonsepRMS1.db”,true);
}catch(Exception e){}
tf = new TextField(“Input Data “,”",10,1);
tfCari = new TextField(“Cari Data “,”",10,1);
append(tf);
append(tfCari);
addCommand(new Command(“Lihat”,Command.BACK,1));
addCommand(new Command(“Tambah”,Command.OK,1));
addCommand(new Command(“Cari”,Command.OK,2));
setCommandListener(this);
}
public void tambahData(String strinput)
{
byte tempInput[];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
try{
dos.writeUTF(strinput);
}catch(Exception e){}
tempInput = bos.toByteArray();
try{
rs.addRecord(tempInput,0,tempInput.length);
System.out.println(strinput+” DIINPUT”);
}catch(Exception e){}
}
public void tampilkanData()
{
byte tempTampil[];
RecordEnumeration re;
try{
re = rs.enumerateRecords(null, null, false);
while(re.hasNextElement())
{
int i = re.nextRecordId();
tempTampil = rs.getRecord(i);
ByteArrayInputStream bis = new
ByteArrayInputStream(tempTampil);
DataInputStream dis = new DataInputStream(bis);
String strinput = dis.readUTF();
System.out.println(i+”. “+strinput+”");
}
}catch(Exception e){}
}
public void cariData()
{
RecordEnumeration reCari;
try{
rs = RecordStore.openRecordStore(“KonsepRMS1.db”,true);
reCari = rs.enumerateRecords(this, null, false);
}catch(Exception e){}
}
public boolean matches(byte[] candidate)
{
boolean isMatches = false;
try{
ByteArrayInputStream bisC = new
ByteArrayInputStream(candidate);
DataInputStream dis = new DataInputStream(bisC);
String buff = dis.readUTF();
if(buff.equals(tfCari.getString()))
{
isMatches = true;
System.out.println(buff+” BERHASIL DITEMUKAN”);
}else{
isMatches = false;
}
}catch(Exception e){}
return(isMatches);
}
public void commandAction(Command c, Displayable d)
{
if(c.getLabel()==”Tambah”)
{
if(tf.getString().length()!=0)
{
System.out.println(“Input Data”);
tambahData(tf.getString());
System.out.println(“”);
}else
{
System.out.println(“Isi Dulu Datanya”);
}
//System.out.println(tf.getString());
}
if(c.getLabel()==”Lihat”)
{
System.out.println(“Data yang telah diinput”);
tampilkanData();
System.out.println(“”);
}
if(c.getLabel()==”Cari”)
{
cariData();
}
}
}
Contoh 2:
package ListMenu;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import javax.microedition.midlet.*;
import java.io.*;
public class ListMenu extends MIDlet implements CommandListener{
private Display display;
private List list;
private Command cmdKeluar;
private Command cmdKembali, cmdHasil, cmdbalik, cmdSimpan;
private TextField soal1, soal2, soal3, soal4, soal5, id;
private Form form;
int nilai1, nilai2, nilai3, nilai4, nilai5;
int Nakhir;
private RecordStore rs;
private RecordEnumeration re;
private Alert alert;
public ListMenu() {
form = new Form("Menu Utama");
cmdKeluar = new Command("Keluar", Command.EXIT, 0);
cmdKembali = new Command("Kembali", Command.BACK, 1);
cmdbalik = new Command("Kembali", Command.BACK, 1);
cmdHasil = new Command("Hasil", Command.OK, 2);
cmdSimpan = new Command("Simpan", Command.OK, 2);
alert = new Alert(null);
alert.setTimeout(Alert.FOREVER);
list = new List(null, Choice.IMPLICIT);
rs = null;
// membuat atau membuka record store
try
{
rs = RecordStore.openRecordStore("db_KodeBar", true);
}
catch (RecordStoreException RSE) //check kalau error = exception
{
alert.setString("Record store tidak dapat dibuka. " +"Aplikasi
akan dihetikan");
alert.setType(AlertType.ERROR);
display.setCurrent(alert, null);
System.exit(1);
}
}
public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(form);
menuList();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void menuList(){
list = new List("Menu Utama", List.IMPLICIT);
list.append("Latihan Berhitung", null);
list.append("Skor", null);
list.append("Keluar", null);
list.setCommandListener(this);
display.setCurrent(list);
}
public void UJIAN(){
form = new Form("Latihan Berhitung");
soal1 = new TextField("1. 2+3 = ?", "", 100, TextField.DECIMAL);
soal2 = new TextField("2. 8/2 = ?", "", 100, TextField.DECIMAL);
soal3 = new TextField("3. 3*4 = ?", "", 100, TextField.DECIMAL);
soal4 = new TextField("4. 7-3 = ?", "", 100, TextField.DECIMAL);
soal5 = new TextField("5. (7-3)*2 = ?", "", 100, TextField.DECIMAL);
form.append(soal1);
form.append(soal2);
form.append(soal3);
form.append(soal4);
form.append(soal5);
form.setCommandListener(this);
form.addCommand(cmdKembali);
form.addCommand(cmdHasil);
display.setCurrent(form);
}
public void nama(){
form = new Form("SIMPAN HASIL");
id = new TextField("Masukkan nama anda : ","", 100, TextField.ANY);
form.append(id);
form.setCommandListener(this);
form.addCommand(cmdSimpan);
form.addCommand(cmdbalik);
display.setCurrent(form);
}
public void commandAction(Command c, Displayable d) {
if (c == cmdKeluar){
destroyApp(true);
}
if(c.getLabel()=="Simpan"){
alert.setType(AlertType.INFO);
if (!id.equals(null)) //cek jika var ada isi nya
{
tambahRecord(id.getString());
alert.setString("Data lengkap !, Data sudah disimpan di RMS,
untuk melihat gunakan pilihan menu'nilai tertinggi' pada menu utama");
display.setCurrent(alert);
display.setCurrent(alert, list);
}
else //jika data kosong
{
alert.setString("Data Kurang !, isikan nama anda terlebih
dahulu.");
display.setCurrent(alert, form);
}
}
if(c.getLabel()=="Nilai Tertinggi"){
lihatRecord();
}
else if (c == cmdHasil){
nama();
}
else if (c == cmdbalik){
UJIAN();
}else if (c == cmdKembali){
menuList();
}else{
List menu = (List) display.getCurrent();
switch (menu.getSelectedIndex()){
case 0:
UJIAN();
break;
case 1:
lihatRecord();
break;
case 2:
destroyApp(true);
}
}
}
public void tambahRecord(String id)
{
int a = Integer.parseInt(soal1.getString());
int b = Integer.parseInt(soal2.getString());
int c = Integer.parseInt(soal3.getString());
int d = Integer.parseInt(soal4.getString());
int e = Integer.parseInt(soal5.getString());
if(a == 5){
a=2;
}
else if(a != 5){
a=0;
}
if(b==4){
b=2;
}
else if(b != 4){
b=0;
}
if(c==12){
c=2;
}
else if(c != 12){
c=0;
}
if(d==5){
d=2;
}
else if(d !=2 ){
d=0;
}
if(e==10){
e=2;
}
else if(e != 10){
e=0;
}
Nakhir = a + b + c + d + e;
byte[] temp = null;
try
{
//kosntruktor baos dan dos
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
//cari fungsi ini ByteArrayOutputStream dan DataOutputStream di
internet
dos.writeUTF(id);// tulis var pada dos
dos.writeInt(Nakhir);
temp = baos.toByteArray();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
try
{
rs.addRecord(temp, 0, temp.length); //masukan data pada RecordStore
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void lihatRecord() {
byte[] temp = null;
list.setTitle("Nilai Tertinggi");
list.deleteAll();
try
{
re = rs.enumerateRecords(null, null, false); //enumerasi record
while (re.hasNextElement()) //jk elemen rs lbh dr satu
{
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais = new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try
{
String id = dis.readUTF();
//Integer Nakhir = dis.readUTF();
list.append(id + " = "+ Nakhir +" n",null);// tampilkan
}
catch (IOException ioe) {ioe.printStackTrace();}
}
list.addCommand(cmdKembali);
list.setCommandListener(this);
display.setCurrent(list);
}
catch (InvalidRecordIDException invID) {invID.printStackTrace();}
catch (RecordStoreNotOpenException rsnoe) {rsnoe.printStackTrace();}
catch (RecordStoreException rse) {rse.printStackTrace();}
}
}
WEB SERVICES
Contoh 1:
package org.secangkirkopipanas.xml;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import org.kxml2.io.*;
import org.xmlpull.v1.*;
public class XmlParsing extends MIDlet implements CommandListener {
private Display display;
private Form main;
private StringItem siNim[];
private StringItem siNama[];
private StringItem siAlamat[];
private StringItem siJudul[];
private Command cmdExit;
private KXmlParser parser;
private int jumlah = 0;
public XmlParsing() {
display = Display.getDisplay(this);
main = new Form("Data Skripsi Mahasiswa");
siNim = new StringItem[10];
siNama = new StringItem[10];
siAlamat = new StringItem[10];
siJudul = new StringItem[10];
cmdExit = new Command("Exit", Command.EXIT, 0);
}
public void startApp() {
getXMLDocument();
main.addCommand(cmdExit);
main.setCommandListener(this);
display.setCurrent(main);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdExit) {
destroyApp(true);
}
}
public void getXMLDocument() {
HttpConnection conn;
DataInputStream dis;
DataOutputStream dos;
try {
conn = (HttpConnection) Connector.open(
"http://localhost:8081/xml/skripsi.xml");
conn.setRequestMethod(HttpConnection.GET);
conn.setRequestProperty("Content-Type", "text/xml");
dos = new DataOutputStream(conn.openDataOutputStream());
/**
* Proses untuk membuka koneksi dengan server untuk
* mengambil response dari server
*/
dis = new DataInputStream(conn.openDataInputStream());
if (conn.getResponseCode() == HttpConnection.HTTP_OK) {
/** Mengambil data XML dari server */
doParse(dis);
for (int i = 0; i < jumlah; i++) {
main.append(siNim[i]);
main.append(siNama[i]);
main.append(siAlamat[i]);
main.append(siJudul[i]);
main.append("---");
}
} else {
/** Koneksi Error */
main.append("Koneksi Error");
}
} catch (Exception e) {
/** Error */
main.append("Error: " + e);
}
}
public void doParse(InputStream isxml) {
parser = new KXmlParser();
try {
parser.setInput(new InputStreamReader(isxml));
parser.next();
parser.require(XmlPullParser.START_TAG, null, "teknik-
informatika");
while (parser.nextTag() != XmlPullParser.END_TAG) {
parser.require(XmlPullParser.START_TAG, null,
"mahasiswa");
siNim[jumlah] = new StringItem("NIM: ",
parser.getAttributeValue(0));
while (parser.nextTag() != XmlPullParser.END_TAG)
{
parser.require(XmlPullParser.START_TAG,
null, "nama");
siNama[jumlah] = new StringItem("Nama: ",
parser.nextText());
parser.require(XmlPullParser.END_TAG,
null, "nama");
parser.nextTag();
parser.require(XmlPullParser.START_TAG,
null, "alamat");
siAlamat[jumlah] = new StringItem("Alamat:
", parser.nextText());
parser.require(XmlPullParser.END_TAG,
null, "alamat");
parser.nextTag();
parser.require(XmlPullParser.START_TAG,
null, "judul");
siJudul[jumlah] = new StringItem("Judul:
", parser.nextText());
parser.require(XmlPullParser.END_TAG,
null, "judul");
}
parser.require(XmlPullParser.END_TAG, null,
"mahasiswa");
jumlah++;
}
parser.require(XmlPullParser.END_TAG, null, "teknik-
informatika");
} catch (Exception e) { e.printStackTrace(); }
}
}
Contoh 2:
package Tutorial.Parser;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
public class KesesuaianParse {
String url = "/Tutorial/XMLfile/Kesesuaian.xml";
String idkesesuaian;
String namakesesuaian;
public KesesuaianParse() {
}
public void parseNow(){
InputStream is = getClass().getResourceAsStream(url);
InputStreamReader reader = new InputStreamReader(is);
KXmlParser parser = new KXmlParser();
try {
parser.setInput(reader);
} catch (XmlPullParserException ex) {
ex.printStackTrace();
}
try {
parser.nextTag();
while(parser.getEventType() != XmlPullParser.END_DOCUMENT){
if(parser.getEventType() == XmlPullParser.START_TAG &&
parser.getName().equals("id_kesesuaian")){
parser.next();
idkesesuaian = parser.getText();
}
if(parser.getEventType() == XmlPullParser.START_TAG &&
parser.getName().equals("nama_kesesuaian")){
parser.next();
namakesesuaian = parser.getText();
}
parser.next();
}
} catch (XmlPullParserException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
public String getIdkesesuaian() {
return idkesesuaian;
}
public String getNamakesesuaian() {
return namakesesuaian;
}
}
package Tutorial;
import Tutorial.Parser.KesesuaianParse;
import Tutorial.TextBox.ContohTextBox;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;
public class Midlet extends MIDlet {
private Display display;
private ContohTextBox textBox;
public Midlet() {
display = Display.getDisplay(this);
KesesuaianParse parse = new KesesuaianParse();
parse.parseNow();
textBox = new ContohTextBox(this, display, "textbox contoh",
parse.getIdkesesuaian()+"nn"+parse.getNamakesesuaian(), 159,
TextField.ANY);
display.setCurrent(textBox);
}
public void startApp() {
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void exit(){
destroyApp(false);
notifyDestroyed();
}
}
OPTIONAL PACKAGES
Contoh 1:
FormCamera.java
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Date;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.control.VideoControl;
public class FormCamera extends Form {
private VideoControl control;
private Player player;
private Item videoItem;
public FormCamera() {
super("Camera ON");
initial();
}
public void initial() {
try {
player = Manager.createPlayer("capture://image");
player.realize();
control = (VideoControl) player.getControl("VideoControl");
if (control != null) {
videoItem = (Item)
control.initDisplayMode(control.USE_GUI_PRIMITIVE, null);
this.deleteAll();
this.append(videoItem);
control.setDisplayFullScreen(true);
control.setVisible(true);
}
player.start();
} catch (IOException ex) {
ex.printStackTrace();
} catch (MediaException ex) {
ex.printStackTrace();
}
}
public void shootNow() {
new SnapshotThread().start();
}
class SnapshotThread extends Thread {
public void run() {
try {
byte[] snap = control.getSnapshot("encoding=jpeg");
Date date = new Date(System.currentTimeMillis());
FileConnection fileconnection = (FileConnection)
Connector.open("file:///E:/Images/" + date.getTime() + ".jpg");
if (fileconnection.exists()) {
fileconnection.delete();
}
fileconnection.create();
DataOutputStream dataoutputstream =
fileconnection.openDataOutputStream();
dataoutputstream.write(snap, 0, snap.length);
dataoutputstream.flush();
dataoutputstream.close();
fileconnection.close();
player.close();
player = null;
control = null;
initial();
} catch (MediaException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} catch (NullPointerException ex) {
ex.printStackTrace();
}
}
}
}
MidletCamera.java
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.*;
public class MidletCamera extends MIDlet implements CommandListener{
private Command cmdShoot;
private Command cmdExit;
private Command cmdBack;
private FormCamera form;
public Display display;
public MidletCamera(){
cmdShoot = new Command("Shoot!",Command.OK, 1);
cmdExit = new Command("Exit", Command.EXIT, 2);
cmdBack = new Command("Back", Command.BACK, 2);
form = new FormCamera();
}
public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(form);
form.addCommand(cmdShoot);
form.addCommand(cmdExit);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if(c == cmdShoot){
form.shootNow();
}else if(c == cmdExit){
destroyApp(true);
notifyDestroyed();
}else if(c == cmdBack){
}
}
}
Contoh 2:
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.media.control.VideoControl;
public class VideoControlExample extends MIDlet implements CommandListener{
private Display display;
private Form form;
private Command exit, back, capture, camera;
private Player player;
private VideoControl videoControl;
private Video video;
public VideoControlExample() {
display = Display.getDisplay(this);
form = new Form("Capture Video");
exit = new Command("Exit", Command.EXIT, 0);
camera = new Command("Camera", Command.SCREEN, 1);
back = new Command("Back", Command.BACK, 2);
capture = new Command("Capture", Command.SCREEN, 3);
form.addCommand(camera);
form.setCommandListener(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional){
notifyDestroyed();
}
public void commandAction(Command c, Displayable s){
String label = c.getLabel();
if (label.equals("Exit")){
destroyApp(true);
} else if (label.equals("Camera")) {
showCamera();
} else if (label.equals("Back"))
display.setCurrent(form);
else if (label.equals("Capture")) {
video = new Video(this);
video.start();
}
}
public void showCamera(){
try{
player = Manager.createPlayer("capture://video");
player.realize();
videoControl = (VideoControl)player.getControl("VideoControl");
Canvas canvas = new VideoCanvas(this, videoControl);
canvas.addCommand(back);
canvas.addCommand(capture);
canvas.setCommandListener(this);
display.setCurrent(canvas);
player.start();
} catch (IOException ioe) {} catch (MediaException me) {}
}
class Video extends Thread {
VideoControlExample midlet;
public Video(VideoControlExample midlet) {
this.midlet = midlet;
}
public void run() {
captureVideo();
}
public void captureVideo() {
try {
byte[] photo = videoControl.getSnapshot(null);
Image image = Image.createImage(photo, 0, photo.length);
form.append(image);
display.setCurrent(form);
player.close();
player = null;
videoControl = null;
} catch (MediaException me) { }
}
};
}
class VideoCanvas extends Canvas {
private VideoControlExample midlet;
public VideoCanvas(VideoControlExample midlet, VideoControl videoControl)
{
int width = getWidth();
int height = getHeight();
this.midlet = midlet;
videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
try {
videoControl.setDisplayLocation(2, 2);
videoControl.setDisplaySize(width - 4, height - 4);
} catch (MediaException me) {}
videoControl.setVisible(true);
}
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
g.setColor(255, 0, 0);
g.drawRect(0, 0, width - 1, height - 1);
g.drawRect(1, 1, width - 3, height - 3);
}
}
TOPIK TAMBAHAN
Contoh 1:
import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class TimerMIDlet extends MIDlet implements CommandListener{
private Display display;
private Form form;
private Command exit, stop;
private Timer timer;
private TestTimerTask task;
private int count = 0;
public TimerMIDlet(){
display = Display.getDisplay(this);
form = new Form("Timer Example");
exit = new Command("Exit", Command.EXIT, 1);
stop= new Command("Stop", Command.STOP, 2);
form.append("Please wait for timer.. n");
form.addCommand(exit);
form.addCommand(stop);
form.setCommandListener(this);
}
public void startApp (){
timer = new Timer();
task = new TestTimerTask();
timer.schedule(task,5000);
display.setCurrent(form);
}
public void pauseApp (){ }
public void destroyApp (boolean unconditional){
notifyDestroyed();
}
public void commandAction(Command c, Displayable d){
String label = c.getLabel();
if (label.equals("Stop")){
timer.cancel();
}else if (label.equals("Exit")) {
destroyApp(true);
}
}
private class TestTimerTask extends TimerTask{
public final void run(){
form.append("Timer Execute Count: " + ++count + "n");
}
}
}
Contoh 2:
import java.io.IOException;
import java.util.Vector;
import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.io.Connector;
import javax.microedition.io.PushRegistry;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.MessageListener;
import javax.wireless.messaging.TextMessage;
public class PushMidlet extends MIDlet implements CommandListener,
MessageListener, Runnable {
Display display;
Form form;
/*MIDlet class name.*/
private String midletName = this.getClass().getName();
Command cmdExit = new Command("Exit", Command.EXIT, 1);
/*Command for registering alarm*/
Command cmdAlarm = new Command("Register Alarm", Command.ITEM, 0);
/*Command for registering SMS Port*/
Command cmdReg = new Command("Register SMS", Command.ITEM, 0);
/*Command for unregistering SMS Port*/
Command cmdUnreg = new Command("UNRegister SMS", Command.ITEM, 0);
Vector allConn = new Vector();
Thread thread;
String smsPort;
boolean firstTime;
public PushMidlet() {
display = Display.getDisplay(this);
smsPort = getAppProperty("SMS-Port");
firstTime = true;
form = new Form("Event Listener");
form.addCommand(cmdExit);
form.addCommand(cmdAlarm);
form.addCommand(cmdReg);
form.addCommand(cmdUnreg);
form.setCommandListener(this);
}
public void startApp() {
getListConnections();
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
/*Check for list of connections recieved*/
public void getListConnections() {
String regConnections[];
regConnections = PushRegistry.listConnections(true);
if (regConnections.length != 0) {
form.append("Launched using SMS Event to UN Register select
UNRegister SMS");
for (int i = 0; i < regConnections.length; i++) {
try {
MessageConnection msgconn = (MessageConnection)
Connector.open(regConnections[i]);
msgconn.setMessageListener(this);
allConn.addElement(msgconn);
} catch (SecurityException exSec) {
form.append("SecurityException=" + exSec);
} catch (IOException exIO) {
form.append("IOException==" + exIO);
}
}
} else {
if (firstTime) {
form.append("Manually launched");
form.append("Here you can select Register and Un Register
SMS also Register Alarm Dynamically");
firstTime = false;
}
regConnections = PushRegistry.listConnections(false);
}
}
/*Register the Alarm for certain period for auto launch*/
private void registerAlarm(final long duration) {
new Thread() {
public void run() {
long alarmTiming = System.currentTimeMillis() + duration;
try {
/*to register MIDlet for a time period*/
PushRegistry.registerAlarm(midletName, alarmTiming);
} catch (ClassNotFoundException ex) {
form.append("n ClassNotFoundException");
} catch (ConnectionNotFoundException ex) {
form.append("n ConnectionNotFoundException");
}
}
}.start();
}
public void commandAction(Command cmd, Displayable disp) {
if (cmd == cmdExit) {
exitMidlet();
} else if (cmd == cmdAlarm) {
registerAlarm(4000);
} else if (cmd == cmdReg) {
RegisterSMSConn();
} else if (cmd == cmdUnreg) {
UnRegisterSMSConn();
}
}
public void exitMidlet() {
closeConnections();
destroyApp(true);
notifyDestroyed();
}
/*Make dynamic connection registered for a specific sms port*/
public void RegisterSMSConn() {
thread = new Thread(this);
thread.start();
}
public void run() {
try {
/*To register Midlet for a port number*/
PushRegistry.registerConnection("sms://:" + smsPort, midletName,
"*");
closeConnections();
getListConnections();
} catch (ClassNotFoundException exe) {
} catch (IOException ex) {
}
}
/*To unregister the port dynamically*/
public void UnRegisterSMSConn() {
PushRegistry.unregisterConnection("sms://:" + smsPort);
}
public void closeConnections() {
if (allConn != null) {
while (allConn.isEmpty() == false) {
MessageConnection msgConn =
(MessageConnection) allConn.firstElement();
if (msgConn != null) {
try {
msgConn.setMessageListener(null);
msgConn.close();
} catch (Exception exp) {
}
}
allConn.removeElementAt(0);
}
}
}
/* Invokes when recieved message on specify port*/
public void notifyIncomingMessage(MessageConnection msgConn) {
TextMessage message = null;
try {
message = (TextMessage) msgConn.receive();
String sendAddr = message.getAddress();
form.setTitle(sendAddr);
String messageText = message.getPayloadText();
form.append(messageText);
} catch (IOException ex) {
form.append("Exception here" + ex);
}
}
}

More Related Content

Similar to Contoh bahan latihan programan mobile java

Curso de Desenvolvimento Mobile - Android - Activities
Curso de Desenvolvimento Mobile - Android - ActivitiesCurso de Desenvolvimento Mobile - Android - Activities
Curso de Desenvolvimento Mobile - Android - ActivitiesJackson F. de A. Mafra
 
Please help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdfPlease help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdfJUSTSTYLISH3B2MOHALI
 
Applet 2 container and action_listener
Applet 2 container and action_listenerApplet 2 container and action_listener
Applet 2 container and action_listenerNitigan Nakjuatong
 
C# Delegates and Event Handling
C# Delegates and Event HandlingC# Delegates and Event Handling
C# Delegates and Event HandlingJussi Pohjolainen
 
Chat application in java using swing and socket programming.
Chat application in java using swing and socket programming.Chat application in java using swing and socket programming.
Chat application in java using swing and socket programming.Kuldeep Jain
 
Matching Game In Java
Matching Game In JavaMatching Game In Java
Matching Game In Javacmkandemir
 
The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]Nilhcem
 
Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)Korhan Bircan
 
原创 读《大话设计模式》---外观模式(Facade) 收藏
原创 读《大话设计模式》---外观模式(Facade) 收藏原创 读《大话设计模式》---外观模式(Facade) 收藏
原创 读《大话设计模式》---外观模式(Facade) 收藏wensheng wei
 
Session2-J2ME development-environment
Session2-J2ME development-environmentSession2-J2ME development-environment
Session2-J2ME development-environmentmuthusvm
 

Similar to Contoh bahan latihan programan mobile java (20)

Gwt and Xtend
Gwt and XtendGwt and Xtend
Gwt and Xtend
 
Curso de Desenvolvimento Mobile - Android - Activities
Curso de Desenvolvimento Mobile - Android - ActivitiesCurso de Desenvolvimento Mobile - Android - Activities
Curso de Desenvolvimento Mobile - Android - Activities
 
Please help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdfPlease help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdf
 
Easy Button
Easy ButtonEasy Button
Easy Button
 
Applet 2 container and action_listener
Applet 2 container and action_listenerApplet 2 container and action_listener
Applet 2 container and action_listener
 
C# Delegates and Event Handling
C# Delegates and Event HandlingC# Delegates and Event Handling
C# Delegates and Event Handling
 
Android TDD
Android TDDAndroid TDD
Android TDD
 
To-Do App With Flutter: Step By Step Guide
To-Do App With Flutter: Step By Step GuideTo-Do App With Flutter: Step By Step Guide
To-Do App With Flutter: Step By Step Guide
 
Popup view on Mortar
Popup view on MortarPopup view on Mortar
Popup view on Mortar
 
Chat application in java using swing and socket programming.
Chat application in java using swing and socket programming.Chat application in java using swing and socket programming.
Chat application in java using swing and socket programming.
 
Test Engine
Test EngineTest Engine
Test Engine
 
Matching Game In Java
Matching Game In JavaMatching Game In Java
Matching Game In Java
 
Day 5
Day 5Day 5
Day 5
 
Tutorial 8 menu
Tutorial 8   menuTutorial 8   menu
Tutorial 8 menu
 
J2 me 07_5
J2 me 07_5J2 me 07_5
J2 me 07_5
 
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
 
The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]The 2016 Android Developer Toolbox [NANTES]
The 2016 Android Developer Toolbox [NANTES]
 
Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)Useful Tools for Making Video Games - XNA (2008)
Useful Tools for Making Video Games - XNA (2008)
 
原创 读《大话设计模式》---外观模式(Facade) 收藏
原创 读《大话设计模式》---外观模式(Facade) 收藏原创 读《大话设计模式》---外观模式(Facade) 收藏
原创 读《大话设计模式》---外观模式(Facade) 收藏
 
Session2-J2ME development-environment
Session2-J2ME development-environmentSession2-J2ME development-environment
Session2-J2ME development-environment
 

More from Jurnal IT

Belajar Java Dasar
Belajar Java DasarBelajar Java Dasar
Belajar Java DasarJurnal IT
 
12_Sinkronisasi.pdf
12_Sinkronisasi.pdf12_Sinkronisasi.pdf
12_Sinkronisasi.pdfJurnal IT
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdfJurnal IT
 
9_Multithreading.pdf
9_Multithreading.pdf9_Multithreading.pdf
9_Multithreading.pdfJurnal IT
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdfJurnal IT
 
7_Packages.pdf
7_Packages.pdf7_Packages.pdf
7_Packages.pdfJurnal IT
 
6_String.pdf
6_String.pdf6_String.pdf
6_String.pdfJurnal IT
 
5_Pewarisan.pdf
5_Pewarisan.pdf5_Pewarisan.pdf
5_Pewarisan.pdfJurnal IT
 
3_Pengertian_Class_Object_Method.pdf
3_Pengertian_Class_Object_Method.pdf3_Pengertian_Class_Object_Method.pdf
3_Pengertian_Class_Object_Method.pdfJurnal IT
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdfJurnal IT
 
1_Pengenalan_Java.pdf
1_Pengenalan_Java.pdf1_Pengenalan_Java.pdf
1_Pengenalan_Java.pdfJurnal IT
 
delphi part 13.pdf
delphi part 13.pdfdelphi part 13.pdf
delphi part 13.pdfJurnal IT
 
delphi part 11.pdf
delphi part 11.pdfdelphi part 11.pdf
delphi part 11.pdfJurnal IT
 
delphi part 8 new.pdf
delphi part 8 new.pdfdelphi part 8 new.pdf
delphi part 8 new.pdfJurnal IT
 
delphi part 7 new.pdf
delphi part 7 new.pdfdelphi part 7 new.pdf
delphi part 7 new.pdfJurnal IT
 
delphi part 6.pdf
delphi part 6.pdfdelphi part 6.pdf
delphi part 6.pdfJurnal IT
 
delphi part 5.pdf
delphi part 5.pdfdelphi part 5.pdf
delphi part 5.pdfJurnal IT
 
delphi part 4.pdf
delphi part 4.pdfdelphi part 4.pdf
delphi part 4.pdfJurnal IT
 
delphi part 3.pdf
delphi part 3.pdfdelphi part 3.pdf
delphi part 3.pdfJurnal IT
 

More from Jurnal IT (20)

Belajar Java Dasar
Belajar Java DasarBelajar Java Dasar
Belajar Java Dasar
 
12_Sinkronisasi.pdf
12_Sinkronisasi.pdf12_Sinkronisasi.pdf
12_Sinkronisasi.pdf
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdf
 
9_Multithreading.pdf
9_Multithreading.pdf9_Multithreading.pdf
9_Multithreading.pdf
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
7_Packages.pdf
7_Packages.pdf7_Packages.pdf
7_Packages.pdf
 
6_String.pdf
6_String.pdf6_String.pdf
6_String.pdf
 
5_Pewarisan.pdf
5_Pewarisan.pdf5_Pewarisan.pdf
5_Pewarisan.pdf
 
4_Array.pdf
4_Array.pdf4_Array.pdf
4_Array.pdf
 
3_Pengertian_Class_Object_Method.pdf
3_Pengertian_Class_Object_Method.pdf3_Pengertian_Class_Object_Method.pdf
3_Pengertian_Class_Object_Method.pdf
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf
 
1_Pengenalan_Java.pdf
1_Pengenalan_Java.pdf1_Pengenalan_Java.pdf
1_Pengenalan_Java.pdf
 
delphi part 13.pdf
delphi part 13.pdfdelphi part 13.pdf
delphi part 13.pdf
 
delphi part 11.pdf
delphi part 11.pdfdelphi part 11.pdf
delphi part 11.pdf
 
delphi part 8 new.pdf
delphi part 8 new.pdfdelphi part 8 new.pdf
delphi part 8 new.pdf
 
delphi part 7 new.pdf
delphi part 7 new.pdfdelphi part 7 new.pdf
delphi part 7 new.pdf
 
delphi part 6.pdf
delphi part 6.pdfdelphi part 6.pdf
delphi part 6.pdf
 
delphi part 5.pdf
delphi part 5.pdfdelphi part 5.pdf
delphi part 5.pdf
 
delphi part 4.pdf
delphi part 4.pdfdelphi part 4.pdf
delphi part 4.pdf
 
delphi part 3.pdf
delphi part 3.pdfdelphi part 3.pdf
delphi part 3.pdf
 

Recently uploaded

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxabhijeetpadhi001
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 

Recently uploaded (20)

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptx
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 

Contoh bahan latihan programan mobile java

  • 1. MEMULAI PEMROGRAMAN MOBILE Contoh 1: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Midlet1 extends MIDlet { private Display display; public Midlet1(){ display = Display.getDisplay(this); } public void startApp() { TextBox tb = new TextBox ("Hello MIDlet","Hello J2ME...!", 250,0); display.setCurrent(tb); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Contoh 2: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMidlet extends MIDlet implements CommandListener { Display display; Command exitCommand = new Command("Exit", Command.EXIT, 1); Alert helloAlert; public HelloMidlet(){ helloAlert = new Alert( "Judul MIDlet", "Selamat datang dipemrograman MIDlet!", null, AlertType.INFO ); helloAlert.setTimeout(Alert.FOREVER); helloAlert.addCommand(exitCommand); helloAlert.setCommandListener(this); } public void startApp() { if (display == null){ display = Display.getDisplay(this); } display.setCurrent(helloAlert); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d){ if (c == exitCommand){ destroyApp(true); notifyDestroyed(); // Exit } } }
  • 2. HIGH LEVEL USER INTERFACE Contoh 1: package ora.ch4; import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.TextBox; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.Ticker; import javax.microedition.midlet.MIDlet; public class TextBoxMIDlet extends MIDlet { // Maximum size of the text in the TextBox private static final int MAX_TEXT_SIZE = 64; // The TextBox protected TextBox textBox; // The MIDlet's Display object protected Display display; // Flag indicating first call of startApp protected boolean started; protected void startApp( ) { if (!started) { // First time through - initialize // Get the text to be displayed String str = null; try { InputStream is = getClass( ).getResourceAsStream( "resources/text.txt"); InputStreamReader r = new InputStreamReader(is); char[] buffer = new char[32]; StringBuffer sb = new StringBuffer( ); int count; while ((count = r.read(buffer, 0, buffer.length)) > -1) { sb.append(buffer, 0, count); } str = sb.toString( ); } catch (IOException ex) { str = "Failed to load text"; } // Create the TextBox textBox = new TextBox("TextBox Example", str, MAX_TEXT_SIZE, TextField.ANY); // Create a ticker and install it Ticker ticker = new Ticker("This is a ticker..."); textBox.setTicker(ticker); // Install the TextBox as the current screen display = Display.getDisplay(this); display.setCurrent(textBox); started = true;
  • 3. } } protected void pauseApp( ) { } protected void destroyApp(boolean unconditional) { } } Contoh 2: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.Timer; import java.util.TimerTask; public class SimpleStopWatch extends MIDlet implements CommandListener { Display dsp; Form form; TextField txt; Command start; Command pause; Command exit; Timer timer; StartTime st; public void startApp() { dsp = Display.getDisplay(this); form = new Form("Simple StopWatch"); txt = new TextField("Waktu","",45, TextField.ANY); start = new Command("Start", Command.OK,0); pause = new Command("Pause", Command.OK,0); exit = new Command("Exit", Command.EXIT,1); form.append(txt); form.addCommand(start); form.addCommand(exit); form.setCommandListener((CommandListener) this); dsp.setCurrent(form); } public void pauseApp(){ } public void destroyApp(boolean unconditional) { } public void commandAction(Command com, Displayable dis) { if(com == start) { form.removeCommand(start); form.addCommand(pause); timer = new Timer(); st = new StartTime(); timer.schedule(st,0,100);
  • 4. } else if(com == pause) { form.removeCommand(pause); form.addCommand(start); timer.cancel(); } else if(com == exit) { destroyApp(false); notifyDestroyed(); } } public class StartTime extends TimerTask { int a; int dtk, detik, menit, jam; public final void run() { ++dtk; if(dtk >= 9) { detik = detik + 1; dtk = 0; } else if(detik > 59) { menit = menit + 1; detik = 0; } else if(menit > 59) { jam = jam + 1; menit = 0; } txt.setString(jam + ":" + menit + ":" + detik + ":" + dtk); } } }
  • 5. LOW LEVEL USER INTERFACE Contoh 1: import javax.microedition.lcdui.*; public class MIDPCanvas extends Canvas implements CommandListener { public MIDPCanvas() { } public void paint(Graphics g) { g.drawString("Sample Text", 0, 0, Graphics.TOP | Graphics.LEFT); // desain form int w = getWidth(); int h = getHeight(); g.setColor(0,0,0); g.fillRect(0,0,w,h); // shape line g.setColor(0,174,0); int z = 10; g.drawLine(z, z, z=30, z); //shape ractanggle g.setColor(70,28,0); z += 15; g.drawRect(z,z,100,50); g.fillRect(20,132,88,44); //shape mound ractanggle g.setColor(255,255,255); z +=75; g.drawRoundRect(z,z,35,35,73,73); //shape triangle g.setColor(0,0,255); z +=15; g.fillTriangle(z,z+30,z+60,z+30,z+60,z+100); } protected void keyPressed(int keyCode) { } protected void keyReleased(int keyCode) { } protected void keyRepeated(int keyCode) { } protected void pointerDragged(int x, int y) { } protected void pointerPressed(int x, int y) { } protected void pointerReleased(int x, int y) { } public void commandAction(Command command, Displayable displayable) { }
  • 6. } Contoh 2: package movingcircle; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.midlet.*; public class Midlet extends MIDlet implements CommandListener { public MovingCircleCanvas canvas; public Alert alert; public static boolean isPaused = false; private Command exitCmd = new Command("Exit", Command.EXIT, 99); private Command pauseCmd = new Command("Pause", Command.SCREEN, 1); private Command resumeCmd = new Command("Resume", Command.SCREEN, 0); private int tempX, tempY; public Midlet() { // TODO Auto-generated constructor stub canvas = new MovingCircleCanvas(this); canvas.addCommand(exitCmd); canvas.addCommand(pauseCmd); canvas.setCommandListener(this); } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } protected void startApp() throws MIDletStateChangeException { // TODO Auto-generated method stub Display display = Display.getDisplay(this); display.setCurrent(canvas); canvas.mulai(); } public void commandAction(Command c, Displayable s) { // TODO Auto-generated method stub if (c == exitCmd) { try { destroyApp(true); notifyDestroyed(); } catch (MIDletStateChangeException e) { e.printStackTrace(); } } else if (c == pauseCmd) { isPaused = true; canvas.addCommand(resumeCmd); canvas.removeCommand(pauseCmd); tempX = canvas.speedBallX;
  • 7. tempY = canvas.speedBallY; canvas.speedBallX = 0; canvas.speedBallY = 0; } else if (c == resumeCmd) { isPaused = false; canvas.addCommand(pauseCmd); canvas.removeCommand(resumeCmd); canvas.speedBallX = tempX; canvas.speedBallY = tempY; // canvas.mulai(); } } }
  • 8. PERSISTENCE Contoh 1: import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.rms.RecordFilter; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.ByteArrayInputStream; import java.io.DataInputStream; public class RMSKonsep extends MIDlet { Input input; public RMSKonsep() { input = new Input(); } public void startApp() { Display.getDisplay(this).setCurrent(input); } public void pauseApp(){} public void destroyApp(boolean n){ notifyDestroyed(); } } class Input extends Form implements CommandListener,RecordFilter { public TextField tf; public TextField tfCari; public RecordStore rs; public Input() { super(“Input “); try{ rs = RecordStore.openRecordStore(“KonsepRMS1.db”,true); }catch(Exception e){} tf = new TextField(“Input Data “,”",10,1); tfCari = new TextField(“Cari Data “,”",10,1); append(tf); append(tfCari); addCommand(new Command(“Lihat”,Command.BACK,1)); addCommand(new Command(“Tambah”,Command.OK,1)); addCommand(new Command(“Cari”,Command.OK,2)); setCommandListener(this); }
  • 9. public void tambahData(String strinput) { byte tempInput[]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(bos); try{ dos.writeUTF(strinput); }catch(Exception e){} tempInput = bos.toByteArray(); try{ rs.addRecord(tempInput,0,tempInput.length); System.out.println(strinput+” DIINPUT”); }catch(Exception e){} } public void tampilkanData() { byte tempTampil[]; RecordEnumeration re; try{ re = rs.enumerateRecords(null, null, false); while(re.hasNextElement()) { int i = re.nextRecordId(); tempTampil = rs.getRecord(i); ByteArrayInputStream bis = new ByteArrayInputStream(tempTampil); DataInputStream dis = new DataInputStream(bis); String strinput = dis.readUTF(); System.out.println(i+”. “+strinput+”"); } }catch(Exception e){} } public void cariData() { RecordEnumeration reCari; try{ rs = RecordStore.openRecordStore(“KonsepRMS1.db”,true); reCari = rs.enumerateRecords(this, null, false); }catch(Exception e){} } public boolean matches(byte[] candidate) { boolean isMatches = false; try{ ByteArrayInputStream bisC = new ByteArrayInputStream(candidate); DataInputStream dis = new DataInputStream(bisC); String buff = dis.readUTF(); if(buff.equals(tfCari.getString())) { isMatches = true; System.out.println(buff+” BERHASIL DITEMUKAN”);
  • 10. }else{ isMatches = false; } }catch(Exception e){} return(isMatches); } public void commandAction(Command c, Displayable d) { if(c.getLabel()==”Tambah”) { if(tf.getString().length()!=0) { System.out.println(“Input Data”); tambahData(tf.getString()); System.out.println(“”); }else { System.out.println(“Isi Dulu Datanya”); } //System.out.println(tf.getString()); } if(c.getLabel()==”Lihat”) { System.out.println(“Data yang telah diinput”); tampilkanData(); System.out.println(“”); } if(c.getLabel()==”Cari”) { cariData(); } } } Contoh 2: package ListMenu; import javax.microedition.lcdui.*; import javax.microedition.rms.*; import javax.microedition.midlet.*; import java.io.*; public class ListMenu extends MIDlet implements CommandListener{ private Display display; private List list; private Command cmdKeluar; private Command cmdKembali, cmdHasil, cmdbalik, cmdSimpan; private TextField soal1, soal2, soal3, soal4, soal5, id; private Form form; int nilai1, nilai2, nilai3, nilai4, nilai5; int Nakhir; private RecordStore rs; private RecordEnumeration re; private Alert alert; public ListMenu() {
  • 11. form = new Form("Menu Utama"); cmdKeluar = new Command("Keluar", Command.EXIT, 0); cmdKembali = new Command("Kembali", Command.BACK, 1); cmdbalik = new Command("Kembali", Command.BACK, 1); cmdHasil = new Command("Hasil", Command.OK, 2); cmdSimpan = new Command("Simpan", Command.OK, 2); alert = new Alert(null); alert.setTimeout(Alert.FOREVER); list = new List(null, Choice.IMPLICIT); rs = null; // membuat atau membuka record store try { rs = RecordStore.openRecordStore("db_KodeBar", true); } catch (RecordStoreException RSE) //check kalau error = exception { alert.setString("Record store tidak dapat dibuka. " +"Aplikasi akan dihetikan"); alert.setType(AlertType.ERROR); display.setCurrent(alert, null); System.exit(1); } } public void startApp() { display = Display.getDisplay(this); display.setCurrent(form); menuList(); } public void pauseApp() { } public void destroyApp(boolean unconditional) { notifyDestroyed(); } public void menuList(){ list = new List("Menu Utama", List.IMPLICIT); list.append("Latihan Berhitung", null); list.append("Skor", null); list.append("Keluar", null); list.setCommandListener(this); display.setCurrent(list); } public void UJIAN(){ form = new Form("Latihan Berhitung"); soal1 = new TextField("1. 2+3 = ?", "", 100, TextField.DECIMAL); soal2 = new TextField("2. 8/2 = ?", "", 100, TextField.DECIMAL); soal3 = new TextField("3. 3*4 = ?", "", 100, TextField.DECIMAL); soal4 = new TextField("4. 7-3 = ?", "", 100, TextField.DECIMAL); soal5 = new TextField("5. (7-3)*2 = ?", "", 100, TextField.DECIMAL); form.append(soal1); form.append(soal2); form.append(soal3); form.append(soal4); form.append(soal5); form.setCommandListener(this); form.addCommand(cmdKembali);
  • 12. form.addCommand(cmdHasil); display.setCurrent(form); } public void nama(){ form = new Form("SIMPAN HASIL"); id = new TextField("Masukkan nama anda : ","", 100, TextField.ANY); form.append(id); form.setCommandListener(this); form.addCommand(cmdSimpan); form.addCommand(cmdbalik); display.setCurrent(form); } public void commandAction(Command c, Displayable d) { if (c == cmdKeluar){ destroyApp(true); } if(c.getLabel()=="Simpan"){ alert.setType(AlertType.INFO); if (!id.equals(null)) //cek jika var ada isi nya { tambahRecord(id.getString()); alert.setString("Data lengkap !, Data sudah disimpan di RMS, untuk melihat gunakan pilihan menu'nilai tertinggi' pada menu utama"); display.setCurrent(alert); display.setCurrent(alert, list); } else //jika data kosong { alert.setString("Data Kurang !, isikan nama anda terlebih dahulu."); display.setCurrent(alert, form); } } if(c.getLabel()=="Nilai Tertinggi"){ lihatRecord(); } else if (c == cmdHasil){ nama(); } else if (c == cmdbalik){ UJIAN(); }else if (c == cmdKembali){ menuList(); }else{ List menu = (List) display.getCurrent(); switch (menu.getSelectedIndex()){ case 0: UJIAN(); break; case 1: lihatRecord(); break; case 2: destroyApp(true); } } } public void tambahRecord(String id)
  • 13. { int a = Integer.parseInt(soal1.getString()); int b = Integer.parseInt(soal2.getString()); int c = Integer.parseInt(soal3.getString()); int d = Integer.parseInt(soal4.getString()); int e = Integer.parseInt(soal5.getString()); if(a == 5){ a=2; } else if(a != 5){ a=0; } if(b==4){ b=2; } else if(b != 4){ b=0; } if(c==12){ c=2; } else if(c != 12){ c=0; } if(d==5){ d=2; } else if(d !=2 ){ d=0; } if(e==10){ e=2; } else if(e != 10){ e=0; } Nakhir = a + b + c + d + e; byte[] temp = null; try { //kosntruktor baos dan dos ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); //cari fungsi ini ByteArrayOutputStream dan DataOutputStream di internet dos.writeUTF(id);// tulis var pada dos dos.writeInt(Nakhir); temp = baos.toByteArray(); } catch (IOException ioe) { ioe.printStackTrace(); } try { rs.addRecord(temp, 0, temp.length); //masukan data pada RecordStore } catch (RecordStoreNotOpenException rsnoe) { rsnoe.printStackTrace(); } catch (RecordStoreException rse) { rse.printStackTrace();
  • 14. } } public void lihatRecord() { byte[] temp = null; list.setTitle("Nilai Tertinggi"); list.deleteAll(); try { re = rs.enumerateRecords(null, null, false); //enumerasi record while (re.hasNextElement()) //jk elemen rs lbh dr satu { int i = re.nextRecordId(); temp = rs.getRecord(i); ByteArrayInputStream bais = new ByteArrayInputStream(temp); DataInputStream dis = new DataInputStream(bais); try { String id = dis.readUTF(); //Integer Nakhir = dis.readUTF(); list.append(id + " = "+ Nakhir +" n",null);// tampilkan } catch (IOException ioe) {ioe.printStackTrace();} } list.addCommand(cmdKembali); list.setCommandListener(this); display.setCurrent(list); } catch (InvalidRecordIDException invID) {invID.printStackTrace();} catch (RecordStoreNotOpenException rsnoe) {rsnoe.printStackTrace();} catch (RecordStoreException rse) {rse.printStackTrace();} } }
  • 15. WEB SERVICES Contoh 1: package org.secangkirkopipanas.xml; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.io.*; import java.io.*; import org.kxml2.io.*; import org.xmlpull.v1.*; public class XmlParsing extends MIDlet implements CommandListener { private Display display; private Form main; private StringItem siNim[]; private StringItem siNama[]; private StringItem siAlamat[]; private StringItem siJudul[]; private Command cmdExit; private KXmlParser parser; private int jumlah = 0; public XmlParsing() { display = Display.getDisplay(this); main = new Form("Data Skripsi Mahasiswa"); siNim = new StringItem[10]; siNama = new StringItem[10]; siAlamat = new StringItem[10]; siJudul = new StringItem[10]; cmdExit = new Command("Exit", Command.EXIT, 0); } public void startApp() { getXMLDocument(); main.addCommand(cmdExit); main.setCommandListener(this); display.setCurrent(main); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if (c == cmdExit) { destroyApp(true); } } public void getXMLDocument() { HttpConnection conn; DataInputStream dis; DataOutputStream dos; try { conn = (HttpConnection) Connector.open( "http://localhost:8081/xml/skripsi.xml"); conn.setRequestMethod(HttpConnection.GET); conn.setRequestProperty("Content-Type", "text/xml");
  • 16. dos = new DataOutputStream(conn.openDataOutputStream()); /** * Proses untuk membuka koneksi dengan server untuk * mengambil response dari server */ dis = new DataInputStream(conn.openDataInputStream()); if (conn.getResponseCode() == HttpConnection.HTTP_OK) { /** Mengambil data XML dari server */ doParse(dis); for (int i = 0; i < jumlah; i++) { main.append(siNim[i]); main.append(siNama[i]); main.append(siAlamat[i]); main.append(siJudul[i]); main.append("---"); } } else { /** Koneksi Error */ main.append("Koneksi Error"); } } catch (Exception e) { /** Error */ main.append("Error: " + e); } } public void doParse(InputStream isxml) { parser = new KXmlParser(); try { parser.setInput(new InputStreamReader(isxml)); parser.next(); parser.require(XmlPullParser.START_TAG, null, "teknik- informatika"); while (parser.nextTag() != XmlPullParser.END_TAG) { parser.require(XmlPullParser.START_TAG, null, "mahasiswa"); siNim[jumlah] = new StringItem("NIM: ", parser.getAttributeValue(0)); while (parser.nextTag() != XmlPullParser.END_TAG) { parser.require(XmlPullParser.START_TAG, null, "nama"); siNama[jumlah] = new StringItem("Nama: ", parser.nextText()); parser.require(XmlPullParser.END_TAG, null, "nama"); parser.nextTag(); parser.require(XmlPullParser.START_TAG, null, "alamat"); siAlamat[jumlah] = new StringItem("Alamat: ", parser.nextText()); parser.require(XmlPullParser.END_TAG, null, "alamat"); parser.nextTag(); parser.require(XmlPullParser.START_TAG, null, "judul");
  • 17. siJudul[jumlah] = new StringItem("Judul: ", parser.nextText()); parser.require(XmlPullParser.END_TAG, null, "judul"); } parser.require(XmlPullParser.END_TAG, null, "mahasiswa"); jumlah++; } parser.require(XmlPullParser.END_TAG, null, "teknik- informatika"); } catch (Exception e) { e.printStackTrace(); } } } Contoh 2: package Tutorial.Parser; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.kxml2.io.KXmlParser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; public class KesesuaianParse { String url = "/Tutorial/XMLfile/Kesesuaian.xml"; String idkesesuaian; String namakesesuaian; public KesesuaianParse() { } public void parseNow(){ InputStream is = getClass().getResourceAsStream(url); InputStreamReader reader = new InputStreamReader(is); KXmlParser parser = new KXmlParser(); try { parser.setInput(reader); } catch (XmlPullParserException ex) { ex.printStackTrace(); } try { parser.nextTag(); while(parser.getEventType() != XmlPullParser.END_DOCUMENT){ if(parser.getEventType() == XmlPullParser.START_TAG && parser.getName().equals("id_kesesuaian")){ parser.next(); idkesesuaian = parser.getText(); } if(parser.getEventType() == XmlPullParser.START_TAG && parser.getName().equals("nama_kesesuaian")){ parser.next(); namakesesuaian = parser.getText(); } parser.next(); }
  • 18. } catch (XmlPullParserException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public String getIdkesesuaian() { return idkesesuaian; } public String getNamakesesuaian() { return namakesesuaian; } } package Tutorial; import Tutorial.Parser.KesesuaianParse; import Tutorial.TextBox.ContohTextBox; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.*; public class Midlet extends MIDlet { private Display display; private ContohTextBox textBox; public Midlet() { display = Display.getDisplay(this); KesesuaianParse parse = new KesesuaianParse(); parse.parseNow(); textBox = new ContohTextBox(this, display, "textbox contoh", parse.getIdkesesuaian()+"nn"+parse.getNamakesesuaian(), 159, TextField.ANY); display.setCurrent(textBox); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void exit(){ destroyApp(false); notifyDestroyed(); } }
  • 19. OPTIONAL PACKAGES Contoh 1: FormCamera.java import java.io.DataOutputStream; import java.io.IOException; import java.util.Date; import javax.microedition.io.Connector; import javax.microedition.io.file.FileConnection; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Item; import javax.microedition.media.Manager; import javax.microedition.media.MediaException; import javax.microedition.media.Player; import javax.microedition.media.control.VideoControl; public class FormCamera extends Form { private VideoControl control; private Player player; private Item videoItem; public FormCamera() { super("Camera ON"); initial(); } public void initial() { try { player = Manager.createPlayer("capture://image"); player.realize(); control = (VideoControl) player.getControl("VideoControl"); if (control != null) { videoItem = (Item) control.initDisplayMode(control.USE_GUI_PRIMITIVE, null); this.deleteAll(); this.append(videoItem); control.setDisplayFullScreen(true); control.setVisible(true); } player.start(); } catch (IOException ex) { ex.printStackTrace(); } catch (MediaException ex) { ex.printStackTrace(); } } public void shootNow() { new SnapshotThread().start(); } class SnapshotThread extends Thread { public void run() { try { byte[] snap = control.getSnapshot("encoding=jpeg"); Date date = new Date(System.currentTimeMillis());
  • 20. FileConnection fileconnection = (FileConnection) Connector.open("file:///E:/Images/" + date.getTime() + ".jpg"); if (fileconnection.exists()) { fileconnection.delete(); } fileconnection.create(); DataOutputStream dataoutputstream = fileconnection.openDataOutputStream(); dataoutputstream.write(snap, 0, snap.length); dataoutputstream.flush(); dataoutputstream.close(); fileconnection.close(); player.close(); player = null; control = null; initial(); } catch (MediaException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } catch (NullPointerException ex) { ex.printStackTrace(); } } } } MidletCamera.java import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.midlet.*; public class MidletCamera extends MIDlet implements CommandListener{ private Command cmdShoot; private Command cmdExit; private Command cmdBack; private FormCamera form; public Display display; public MidletCamera(){ cmdShoot = new Command("Shoot!",Command.OK, 1); cmdExit = new Command("Exit", Command.EXIT, 2); cmdBack = new Command("Back", Command.BACK, 2); form = new FormCamera(); } public void startApp() { display = Display.getDisplay(this); display.setCurrent(form); form.addCommand(cmdShoot); form.addCommand(cmdExit); form.setCommandListener(this); display.setCurrent(form); }
  • 21. public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { if(c == cmdShoot){ form.shootNow(); }else if(c == cmdExit){ destroyApp(true); notifyDestroyed(); }else if(c == cmdBack){ } } } Contoh 2: import java.io.IOException; import javax.microedition.lcdui.*; import javax.microedition.media.*; import javax.microedition.media.control.*; import javax.microedition.midlet.MIDlet; import javax.microedition.media.control.VideoControl; public class VideoControlExample extends MIDlet implements CommandListener{ private Display display; private Form form; private Command exit, back, capture, camera; private Player player; private VideoControl videoControl; private Video video; public VideoControlExample() { display = Display.getDisplay(this); form = new Form("Capture Video"); exit = new Command("Exit", Command.EXIT, 0); camera = new Command("Camera", Command.SCREEN, 1); back = new Command("Back", Command.BACK, 2); capture = new Command("Capture", Command.SCREEN, 3); form.addCommand(camera); form.setCommandListener(this); } public void startApp() { display.setCurrent(form); } public void pauseApp() {} public void destroyApp(boolean unconditional){ notifyDestroyed(); } public void commandAction(Command c, Displayable s){ String label = c.getLabel(); if (label.equals("Exit")){ destroyApp(true); } else if (label.equals("Camera")) { showCamera();
  • 22. } else if (label.equals("Back")) display.setCurrent(form); else if (label.equals("Capture")) { video = new Video(this); video.start(); } } public void showCamera(){ try{ player = Manager.createPlayer("capture://video"); player.realize(); videoControl = (VideoControl)player.getControl("VideoControl"); Canvas canvas = new VideoCanvas(this, videoControl); canvas.addCommand(back); canvas.addCommand(capture); canvas.setCommandListener(this); display.setCurrent(canvas); player.start(); } catch (IOException ioe) {} catch (MediaException me) {} } class Video extends Thread { VideoControlExample midlet; public Video(VideoControlExample midlet) { this.midlet = midlet; } public void run() { captureVideo(); } public void captureVideo() { try { byte[] photo = videoControl.getSnapshot(null); Image image = Image.createImage(photo, 0, photo.length); form.append(image); display.setCurrent(form); player.close(); player = null; videoControl = null; } catch (MediaException me) { } } }; } class VideoCanvas extends Canvas { private VideoControlExample midlet; public VideoCanvas(VideoControlExample midlet, VideoControl videoControl) { int width = getWidth(); int height = getHeight(); this.midlet = midlet; videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); try { videoControl.setDisplayLocation(2, 2); videoControl.setDisplaySize(width - 4, height - 4); } catch (MediaException me) {} videoControl.setVisible(true); }
  • 23. public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); g.setColor(255, 0, 0); g.drawRect(0, 0, width - 1, height - 1); g.drawRect(1, 1, width - 3, height - 3); } }
  • 24. TOPIK TAMBAHAN Contoh 1: import java.util.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class TimerMIDlet extends MIDlet implements CommandListener{ private Display display; private Form form; private Command exit, stop; private Timer timer; private TestTimerTask task; private int count = 0; public TimerMIDlet(){ display = Display.getDisplay(this); form = new Form("Timer Example"); exit = new Command("Exit", Command.EXIT, 1); stop= new Command("Stop", Command.STOP, 2); form.append("Please wait for timer.. n"); form.addCommand(exit); form.addCommand(stop); form.setCommandListener(this); } public void startApp (){ timer = new Timer(); task = new TestTimerTask(); timer.schedule(task,5000); display.setCurrent(form); } public void pauseApp (){ } public void destroyApp (boolean unconditional){ notifyDestroyed(); } public void commandAction(Command c, Displayable d){ String label = c.getLabel(); if (label.equals("Stop")){ timer.cancel(); }else if (label.equals("Exit")) { destroyApp(true); } } private class TestTimerTask extends TimerTask{ public final void run(){ form.append("Timer Execute Count: " + ++count + "n"); } } } Contoh 2: import java.io.IOException; import java.util.Vector;
  • 25. import javax.microedition.io.ConnectionNotFoundException; import javax.microedition.io.Connector; import javax.microedition.io.PushRegistry; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.wireless.messaging.MessageConnection; import javax.wireless.messaging.MessageListener; import javax.wireless.messaging.TextMessage; public class PushMidlet extends MIDlet implements CommandListener, MessageListener, Runnable { Display display; Form form; /*MIDlet class name.*/ private String midletName = this.getClass().getName(); Command cmdExit = new Command("Exit", Command.EXIT, 1); /*Command for registering alarm*/ Command cmdAlarm = new Command("Register Alarm", Command.ITEM, 0); /*Command for registering SMS Port*/ Command cmdReg = new Command("Register SMS", Command.ITEM, 0); /*Command for unregistering SMS Port*/ Command cmdUnreg = new Command("UNRegister SMS", Command.ITEM, 0); Vector allConn = new Vector(); Thread thread; String smsPort; boolean firstTime; public PushMidlet() { display = Display.getDisplay(this); smsPort = getAppProperty("SMS-Port"); firstTime = true; form = new Form("Event Listener"); form.addCommand(cmdExit); form.addCommand(cmdAlarm); form.addCommand(cmdReg); form.addCommand(cmdUnreg); form.setCommandListener(this); } public void startApp() { getListConnections(); display.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } /*Check for list of connections recieved*/ public void getListConnections() { String regConnections[]; regConnections = PushRegistry.listConnections(true); if (regConnections.length != 0) { form.append("Launched using SMS Event to UN Register select UNRegister SMS"); for (int i = 0; i < regConnections.length; i++) {
  • 26. try { MessageConnection msgconn = (MessageConnection) Connector.open(regConnections[i]); msgconn.setMessageListener(this); allConn.addElement(msgconn); } catch (SecurityException exSec) { form.append("SecurityException=" + exSec); } catch (IOException exIO) { form.append("IOException==" + exIO); } } } else { if (firstTime) { form.append("Manually launched"); form.append("Here you can select Register and Un Register SMS also Register Alarm Dynamically"); firstTime = false; } regConnections = PushRegistry.listConnections(false); } } /*Register the Alarm for certain period for auto launch*/ private void registerAlarm(final long duration) { new Thread() { public void run() { long alarmTiming = System.currentTimeMillis() + duration; try { /*to register MIDlet for a time period*/ PushRegistry.registerAlarm(midletName, alarmTiming); } catch (ClassNotFoundException ex) { form.append("n ClassNotFoundException"); } catch (ConnectionNotFoundException ex) { form.append("n ConnectionNotFoundException"); } } }.start(); } public void commandAction(Command cmd, Displayable disp) { if (cmd == cmdExit) { exitMidlet(); } else if (cmd == cmdAlarm) { registerAlarm(4000); } else if (cmd == cmdReg) { RegisterSMSConn(); } else if (cmd == cmdUnreg) { UnRegisterSMSConn(); } } public void exitMidlet() { closeConnections(); destroyApp(true);
  • 27. notifyDestroyed(); } /*Make dynamic connection registered for a specific sms port*/ public void RegisterSMSConn() { thread = new Thread(this); thread.start(); } public void run() { try { /*To register Midlet for a port number*/ PushRegistry.registerConnection("sms://:" + smsPort, midletName, "*"); closeConnections(); getListConnections(); } catch (ClassNotFoundException exe) { } catch (IOException ex) { } } /*To unregister the port dynamically*/ public void UnRegisterSMSConn() { PushRegistry.unregisterConnection("sms://:" + smsPort); } public void closeConnections() { if (allConn != null) { while (allConn.isEmpty() == false) { MessageConnection msgConn = (MessageConnection) allConn.firstElement(); if (msgConn != null) { try { msgConn.setMessageListener(null); msgConn.close(); } catch (Exception exp) { } } allConn.removeElementAt(0); } } } /* Invokes when recieved message on specify port*/ public void notifyIncomingMessage(MessageConnection msgConn) { TextMessage message = null; try { message = (TextMessage) msgConn.receive(); String sendAddr = message.getAddress(); form.setTitle(sendAddr); String messageText = message.getPayloadText(); form.append(messageText); } catch (IOException ex) { form.append("Exception here" + ex); } } }