January 15, 2012

Applikasi Konverter Suhu Menggunakan Java Mobile (J2ME)

Program kali ini yang saya buat adalah Applikasi Konverter Suhu Menggunakan Java Mobile (J2ME). Pada tahun kemarin saya membuat applikasi biasanya menggunakan J2SE untuk desktop kali ini saya akan mencoba membuat program menggunakan J2ME untuk mobile. Applikasi ini dibuat karena saya mendapatkan tugas dari guru pembimbing saya yaitu Pak Kurnia dan Kang Lukman.

Ok langsung saja , untuk membuat applikasi ini kalian membutuhkan :
1. Netbeans , disini saya menggunakan netbeans 7.1 , kalian dapat mendownloadnya Disini
2. JDK , kalian dapat mendownloadnya Disini

Setelah semua applikasi telah kalian download silakan install 1 persatu bila sudah maka kalian buka Netbeans , setelah membuka Netbeans step-step yang kalian harus lakukan adalah :
1. File > New Project
2. Cari Categories Java ME > lalu pilih Projects Mobile Application
3. Beri nama project dengan konverterSuhu
4. Untuk platform saya menggunakan bawaan dari netbeans (default) yaitu Java(TM) Platform Micro Edition SDK 3.0 , untuk device silakan pilih DefaultCldcPhone1 , lalu Device Configuration pilih CLDC-1.1 dan terakhir untuk device profile pilih MIDP-2.1 setelah itu pilih next dan pilih lagi finish
5. Silakan kalian membuat file baru dengan jenis MIDlet dan beri nama dengan nama konverterSuhu lalu pilih Finish
6. Silakan buka file tersebut dan copy paste script ini



/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package hello;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

/**
* @author Garoet
*/
public class konverterSuhu extends MIDlet implements CommandListener {
Display disp;
Form frminput , frmhasil;
StringItem strcelcius , strfahrenheit , strreamur , strhasil;
TextField txtcelcius , txtfahrenheit , txtreamur;
Command cmdexit , cmdhtg , cmdkembali;

public konverterSuhu(){
frminput = new Form("Input Satuan Suhu");

strcelcius = new StringItem("","Celcius",StringItem.PLAIN);
txtcelcius = new TextField("","",30,TextField.NUMERIC);

strfahrenheit = new StringItem("","fahrenheit",StringItem.PLAIN);
txtfahrenheit = new TextField("","",30,TextField.NUMERIC);

strreamur = new StringItem("","Reamur",StringItem.PLAIN);
txtreamur = new TextField("","",30,TextField.NUMERIC);


cmdexit = new Command("Keluar",Command.EXIT,0);
cmdhtg = new Command("Hitung",Command.OK , 1);

frminput.append(strcelcius);
frminput.append(txtcelcius);
frminput.append(strfahrenheit);
frminput.append(txtfahrenheit);
frminput.append(strreamur);
frminput.append(txtreamur);

frminput.addCommand(cmdexit);
frminput.addCommand(cmdhtg);
frminput.setCommandListener(this);
}

public void startApp() {
if(disp==null)
{
disp = Display.getDisplay(this);
disp.setCurrent(frminput);
}
}

public void hitungsuhu(){
double hasil1 , hasil2 , celc , fhr , rmr;

if(!txtcelcius.getString().equals("") && txtfahrenheit.getString().equals("") && txtreamur.getString().equals("") )
{
frmhasil = new Form("Hasil Konversi Dari Celcius");
celc = Double.parseDouble(txtcelcius.getString());
hasil1 = ((celc*1.8)+32);
hasil2 = (celc*0.8);
strhasil = new StringItem("","",StringItem.PLAIN);
strhasil.setText("Celcius ke fahrenheit = "+hasil1+""
+ "\nCelcius ke Reamur = "+hasil2);
}

else if(!txtfahrenheit.getString().equals("") && txtcelcius.getString().equals("") && txtreamur.getString().equals(""))
{
frmhasil = new Form("Hasil Konversi Dari fahrenheit");
fhr = Double.parseDouble(txtfahrenheit.getString());
hasil1 = ((fhr-32)/1.8);
hasil2 = ((fhr-32)/2.25);
strhasil = new StringItem("","",StringItem.PLAIN);
strhasil.setText("fahrenheit ke Celcius = "+hasil1+""
+ "\nfahrenheit ke Reamur = "+hasil2);
}

else if(!txtreamur.getString().equals("") && txtcelcius.getString().equals("") && txtfahrenheit.getString().equals("")){
frmhasil = new Form("Hasil Konversi Dari Reamur");
rmr = Double.parseDouble(txtreamur.getString());
hasil1 = (rmr/0.8);
hasil2 = ((rmr*2.25)+32);
strhasil = new StringItem("","",StringItem.PLAIN);
strhasil.setText("Reamur ke Celcius = "+hasil1+""
+ "\nReamur ke fahrenheit = "+hasil2);
}

else if(!txtcelcius.getString().equals("") || !txtfahrenheit.getString().equals("") || !txtreamur.getString().equals(""))
{
frmhasil = new Form("Ada Kesalahan");
strhasil = new StringItem("","",StringItem.PLAIN);
strhasil.setText("Anda hanya bisa menginput satu field saja , silakan kembali");
}

else
{
frmhasil = new Form("Ada Kesalahan");
strhasil = new StringItem("","",StringItem.PLAIN);
strhasil.setText("Semua field belum terisi , silakan isi salah satu field saja");
}

cmdkembali = new Command("Kembali",Command.BACK , 1);
frmhasil.append(strhasil);
frmhasil.addCommand(cmdkembali);
frmhasil.setCommandListener(this);
disp.setCurrent(frmhasil);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}



public void commandAction(Command c, Displayable d) {
if(d==frminput)
{
if(c==cmdhtg)
{
hitungsuhu();
}
else if(c==cmdexit)
{
destroyApp(true);
notifyDestroyed();
}
}
else
{
if(c==cmdkembali)
{
disp.setCurrent(frminput);
}
}

}
}



7. Setelah itu tinggal di save lalu click F6

Ini dia beberapa screenshoot applikasi yang sudah jadi

(Click gambar untuk memperbesar)
Tampilan Main Menu


Pada saat mengconversi

(Click gambar untuk memperbesar)
Dari Celcius ke Fahrenheit dan Reamur


(Click gambar untuk memperbesar)
Dari Fahrenheit ke Celcius dan Reamur


(Click gambar untuk memperbesar)
Dari Reamur ke Celcius dan Fahrenheit


Bila kalian menginputkan data lebih dari 1 maka akan terjadi error


(Click gambar untuk memperbesar)
Tampilan Error


Bila kalian tidak menginputkan data sama sekali maka akan terjadi error


(Click gambar untuk memperbesar)
Tampilan Error


Silakan bila kalian ingin mendownload full source code Download