This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Kamis, 02 Februari 2012

J2ME - Menyimpan Data, Record Management System (RMS)

RMS adalah singkatan dari Record Management System. RMS Merupakan suatu mekanisme yang digunakan oleh MIDP untuk menyimpan data, dan RMS juga menyimpan kumpulan kumpulan record pada memori.

Contoh penggunaan RMS. Berikut ini saya akan memberikan contoh cara penggunaan RMS di J2Me. Buatlah sebuah project baru dengan nama "simpan" dan buat sebuah file MIDlet dengan nama "simpan", ketikkan kode dibawah ini.


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;
/**
* @author idisuwardi.blogspot.com
*/
public class simpan extends MIDlet implements CommandListener{
Display layar;
Form fm;
TextField tnama, ttelp;
Command proses;
RecordStore rs;

public void startApp() {
layar=Display.getDisplay(this);
fm=new Form("Simpan Data");
tnama=new TextField("Nama:","",50,TextField.ANY);
ttelp=new TextField("Telp:","",50,TextField.NUMERIC);
proses=new Command("Simpan",Command.OK,0);
fm.append(tnama);
fm.append(ttelp);
fm.addCommand(proses);
fm.setCommandListener(this);
layar.setCurrent(fm);
try {
rs = RecordStore.openRecordStore("mahasiswa", true);
} catch (Exception ex) {
ex.printStackTrace();
}


}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if(c==proses){
tambahdata(tnama.getString(),ttelp.getString());
}
}
public void tambahdata(String nama, String telp){
//membuat array byte
//temp adalah penampung data array byte
byte[]temp=null;
//mengubah data menjadi array dari byte
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//menulis data dalam record store, yang kemudian akan diubah oleh baos
DataOutputStream dos=new DataOutputStream(baos);
try {
dos.writeUTF(nama);
dos.writeUTF(telp);
temp=baos.toByteArray();
rs.addRecord(temp, 0, temp.length);
} catch (Exception ex) {
ex.printStackTrace();
}



}
}


Pada program diatas akan menghasilkan output 2 buah textfield. TextField 1 adalah Nama dan TextField 2 adalah No Telp. User diminta untuk menginputkan nilai kedalam kedua TextField tesebut dan program akan menyimpan hasil inputan kedalam memori. Untuk melihat hasil (database) yang telah kita simpan maka harus membuat/menambah sedikit kode lagi. Tunggu pertemuan berikutnya.

J2ME - Alert (Bunyi, Suara)

Di JavaME kita dimungkinkan untuk membuat program dengan tambahan suara, misalkan pada program alarm dan lainnya. Nah, pertanyaannya adalah bagaimanakah cara untuk menggunakan fitur tersebut?, Ternya di JavaMe tidak sesusah yang dibanyangkan, coba lihat kode dibawah ini:

Buatlah sebuah project dengan nama "alert" dan tambahkan file Midlet dengan nama "alert", copas kode dibawah ini kedalam file Midletnya.


import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author idisuwardi.blogspot.com
*/
public class alert extends MIDlet implements CommandListener{
Display layar;
Form fm;
Alert al;
Command proses;

public void startApp() {
layar=Display.getDisplay(this);
fm=new Form("Bunyi");
proses=new Command("proses",Command.OK,0);
fm.addCommand(proses);
fm.setCommandListener(this);
layar.setCurrent(fm);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if(c==proses){
al=new Alert("Alert","",null,AlertType.ALARM);
al.setTimeout(Alert.FOREVER);
layar.setCurrent(al);
}
}
}


Ketika menu proses jilankan maka program akan dieksekusi dan suara bib akan berbunyi.
public void commandAction(Command c, Displayable d) {
if(c==proses){
al=new Alert("Alert","",null,AlertType.ALARM);
al.setTimeout(Alert.FOREVER);
layar.setCurrent(al);
}
}

Coba buat sebuah program dengan 3 menu yang berbeda dan menghasilkan suara yang berbeda. Selamat mencoba.

J2ME - Gambar di Java

Pernahkan anda membuat program yang menggunakan gambar, misalkan anda ingin memasukkan gambar bacground atau program untuk mengambil gambar di JavaMe?. Berikut ini kode sedernaha untuk meletakkan gambar pada form di JavaMe.

Buatlah project baru dengan nama "gambar", dan buatlah file baru dengan nama "gambar", kemuadian copas kode dibawahi ini di file gambar tsb.

import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author idisuwardi.blogspot.com
*/
public class gambar extends MIDlet {
Display layar;
Form fm;
Image im;
ImageItem img1;
public void startApp() {
layar=Display.getDisplay(this);
fm=new Form("Gambar");
try {
im = Image.createImage("/Blue 2hills.jpg");
img1=new ImageItem("Gambar saya",im,ImageItem.LAYOUT_CENTER,"Gambar saya");
} catch (Exception ex) {
ex.printStackTrace();
}
fm.append(img1);
layar.setCurrent(fm);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}


Kode dibawah ini menjelaskan mengenai pengambilan gambar didalam folder picture yang ada di mydokument. Gambar tersebut akan diberinama "Gambar saya" dengan deskripsi "Gambar saya".
Fungsi "try" disini untuk mengatasi error bila image tidak ditemukan.
try {
im = Image.createImage("/Blue 2hills.jpg");
img1=new ImageItem("Gambar saya",im,ImageItem.LAYOUT_CENTER,"Gambar saya");
} catch (Exception ex) {
ex.printStackTrace();
}
ImageItem.LAYOUT_CENTER adalah untuk perataan gambar yang akan dimasukkan kedalam form. Coba kembangkan kode diatas misalnya menambahkan lebih dari 1 gambar di dalam form. Selamat mencoba.

Jumat, 27 Januari 2012

J2ME - Kalkulator Sedernaha

Membuat program kalkulator bukanlah hal yang sulit, seperti contoh kode program dibawah ini. Coba anda kembangkan kode program dibawah ini, seperti menambahkan warna dan lainnya.


import javax.microedition.midlet.*;
//mengimport LCDUI
import javax.microedition.lcdui.*;
//supaya program bisa mengerti perintah yang diberikan pada tombol
//supaya bisa merespons perubahan yang terjadi pada textbox maka tambahkanlah perintah ItemStateListener
public class kalkulator extends MIDlet implements CommandListener {
//Mendeklarasikan layar sebagai objek display
Display layar;
//Mendeklarasikan fm sebagai objek form
Form fm;
//Mendeklarasikan panjang,lebar,luas sebagai TextField
TextField bil1,bil2,hasil;
//mendeklarasikan hitung dan keluar sebagai command
Command jumlah,kurang,kali,keluar,help,bagi;
public void startApp() {
//menggunakan objek display
layar=Display.getDisplay(this);
//menggunakan 0bjek form
fm=new Form("Kalkulator V.01 By Idi");
//menggunakan objek textbox
bil1=new TextField("Bil1 :","",20,TextField.NUMERIC);
bil2=new TextField("Bil2 :","",20,TextField.NUMERIC);
hasil=new TextField("Hasil :","",20,TextField.UNEDITABLE);
//menggunakan command
bagi=new Command("Bagi (/)",Command.OK,0);
jumlah=new Command("Tambah (+)",Command.OK,0);
kurang=new Command("Kurang (-)",Command.OK,0);
kali=new Command("Kali (*)",Command.OK,0);
keluar=new Command("Keluar",Command.OK,0);
help=new Command("Help",Command.HELP,0);

//meletakkan textbox di atas form
fm.append(bil1);
fm.append(bil2);
fm.append(hasil);
//meletakkan command diatas form
fm.addCommand(jumlah);
fm.addCommand(kurang);
fm.addCommand(kali);
fm.addCommand(bagi);
fm.addCommand(keluar);
fm.addCommand(help);
//supaya tombol bisa berfungsi
fm.setCommandListener(this);
//fm.setItemStateListener(this);
//meletakkan form di atas objek layar

layar.setCurrent(fm);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if(c==keluar){
destroyApp(true);
notifyDestroyed();
}

if (c==jumlah){
int nbil1,nbil2,nhasil;
nbil1=Integer.valueOf(bil1.getString()).intValue();
nbil2=Integer.valueOf(bil2.getString()).intValue();
nhasil=nbil1+nbil2;
hasil.setString(nhasil+"");
}
if (c==bagi){
double nbil1,nbil2,nhasil;
nbil1=Integer.valueOf(bil1.getString()).intValue();
nbil2=Integer.valueOf(bil2.getString()).intValue();
nhasil=nbil1/nbil2;
hasil.setString(nhasil+"");
}
if (c==kurang){
int nkbil1,nkbil2,nkhasil;
nkbil1=Integer.valueOf(bil1.getString()).intValue();
nkbil2=Integer.valueOf(bil2.getString()).intValue();
nkhasil=nkbil1-nkbil2;
hasil.setString(nkhasil+"");
}
if (c==kali){
int nkalbil1,nkalbil2,nkalhasil;
nkalbil1=Integer.valueOf(bil1.getString()).intValue();
nkalbil2=Integer.valueOf(bil2.getString()).intValue();
nkalhasil=nkalbil1*nkalbil2;
hasil.setString(nkalhasil+"");
}
}


}

Minggu, 22 Januari 2012

J2ME - Program Zodiak Sedernaha

Berikut ini adalah program zodiak sederhana, dan menurut saya masih banyak kekurangannya. Anda bisa bereksperimen sediri nantinya. Misalnya menambahkan kotak input yang meminta tanggal, bulan dan tahun lahir yang sebelumnya tidak ada pada program ini.

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class zodiak extends MIDlet implements CommandListener {
Display layar;
Form fm;
DateField df1,df2,df3;
TextField tanggal,zodiak;
Command proses;
Calendar cal;
public void startApp() {
layar=Display.getDisplay(this);
fm=new Form("Tanggal dan Waktu");
df1=new DateField("Tanggal",DateField.DATE);
df2=new DateField("waktu",DateField.TIME,TimeZone.getTimeZone("GMT+07:00"));
df3=new DateField("Tanggal dan Waktu",DateField.DATE_TIME);
tanggal=new TextField("Tanggal","",50,TextField.ANY);
proses=new Command("Proses",Command.OK,0);
cal=Calendar.getInstance();

//menampilkan tanggal dan waktu sekarang
df1.setDate(new Date());
df2.setDate(new Date());
df3.setDate(new Date());

fm.append(df1);
fm.append(df2);
fm.append(df3);
fm.append(tanggal);
fm.addCommand(proses);
fm.setCommandListener(this);
layar.setCurrent(fm);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
int tgl,bulan,tahun,jam,menit,detik;
if(c==proses){
//tanggal.setString(df1.getDate()+"");
cal.setTime(df1.getDate());
tgl=cal.get(Calendar.DATE);
bulan=cal.get(Calendar.MONTH)+1;
tahun=cal.get(Calendar.YEAR);
if((tgl>=22 && bulan==12) || (tgl<=19 && bulan==1))
tanggal.setString("Capricorn");
else if((tgl>=20 && bulan==1) || (tgl<=18 && bulan==2))
tanggal.setString("Aquarius");
else if((tgl>=19 && bulan==2) || (tgl<=20 && bulan==3))
tanggal.setString("Pisces");
else if((tgl>=21 && bulan==3) || (tgl<=19 && bulan==4))
tanggal.setString("aries");
else if((tgl>=20 && bulan==4) || (tgl<=20 && bulan==5))
tanggal.setString("Taurus");
else if((tgl>=21 && bulan==5) || (tgl<=20 && bulan==6))
tanggal.setString("Gemini");
else if((tgl>=21 && bulan==6) || (tgl<=22 && bulan==7))
tanggal.setString("Cancer");
else if((tgl>=23 && bulan==7) || (tgl<=22 && bulan==8))
tanggal.setString("leo");
else if((tgl>=23 && bulan==8) || (tgl<=22 && bulan==9))
tanggal.setString("Virgo");
else if((tgl>=23 && bulan==9) || (tgl<=22 && bulan==10))
tanggal.setString("Libra");
else if((tgl>=23 && bulan==10) || (tgl<=21 && bulan==11))
tanggal.setString("Scorpio");
else if((tgl>=22 && bulan==11) || (tgl<=21 && bulan==12))
tanggal.setString("Sagitarius");

}
}
}

J2ME - Menampilan Date dan Time

Kode dibawah ini mendemonstrasikan bagaimana cara menampilkan Date dan Time di J2ME.


import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


/**
* @author idisuwardi.blogspot.com
*/
public class waktu extends MIDlet {
Display layar;
Form fm;
Timer tm;
TimerJalan task;
public void startApp() {
layar=Display.getDisplay(this);
fm=new Form("Pemakaian Timer");
tm=new Timer();
task=new TimerJalan();
tm.schedule(task,0,5000);
layar.setCurrent(fm);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
public class TimerJalan extends TimerTask{
public final void run(){
fm.append("Timer selesai Dijalankan");
}
}
}

Pada kode di atas ketika dijalankan akan menghasilkan output "Timer selesai dijalankan" yang diulang selama selang waktu 5 detik.

J2ME - Membuat Program StopWatch Sederhana


Berikut ini adalah program StopWatch sederhana yang saya buat dengan menggunakan bahasa pemrograman Java. Di program ini hanya ada tombol start untuk memulai/ menjalankan dan Pause untuk berhenti.

import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
* @author Idisuwardi.blogspot.com
*/
public class stopwatch extends MIDlet implements CommandListener {
Display layar;
Form fm;
Timer tm;
TimerJalan task;
TextField tf;
Command start,pause;

public void startApp() {
layar=Display.getDisplay(this);
fm=new Form("Pemakaian Timer");


tf=new TextField("Stop Watch","",50,TextField.ANY);
start=new Command("Start",Command.OK,0);
pause=new Command("pause",Command.OK,0);

fm.append(tf);
fm.addCommand(start);
fm.setCommandListener((CommandListener) this);
layar.setCurrent(fm);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if(c==start){
fm.removeCommand(start);
fm.addCommand(pause);
tm=new Timer();
task=new TimerJalan();
tm.schedule(task,0,100);
}
if(c==pause){
fm.removeCommand(pause);
fm.addCommand(start);
tm.cancel();
}
}
public class TimerJalan extends TimerTask {
int i,mdetik,detik,menit,jam;
public final void run(){
++mdetik;
if (mdetik>=9){
detik=detik+1;
mdetik=0;
}
if(detik>59){
menit=menit+1;
detik=0;
}
if(menit>59){
jam=jam+1;
menit=0;
}
tf.setString(jam+":"+menit+":"+detik+":"+mdetik);

}
}

}


Silahkan berexperiment sendiri dengan kode diatas, jika ada yang kurang jelas silahkan ditanyakan. Selamat mencoba.