Senin, 16 Januari 2012

APLIKASI KONVERTER SUHU BERBASIS J2ME

Halo blogger. Ditahun yang baru ini kita akan membahas materi baru. Bila tahun kemarin kita berkutat di J2SE maka ditahun 2012 ini kita akan berlanjut ke J2ME. Pada kesempatan kali ini saya akan membahas mengenai Aplikasi Konverter Suhu. Aplikasi ini saya buat di NetBeans IDE 6.8 . Untuk membuat project dengan basis J2ME maka kita pilih Java ME lalu Mobile Application. Untuk Emulator Platformnya, saya gunakan defaultnya yaitu Java(TM) Platform Micro Edition SDK 3.0, Device yang digunakan yaitu DefaultFxTouchPhone1 dengan Device Configuration CLDC-1.1 dan Device Profile MIDP-2.1 . Terakhir, buat file baru dengan jenis MIDlet.
Berikut ini adalah coding dari Aplikasi Konverter Suhu Sederhana Berbasis J2ME.

package hello;


import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;

/**
 * @author PradistyaSY
 */
public class MidletSuhu extends MIDlet implements CommandListener{

    Display disp;
    Form frminput, frmhasil;
    StringItem strCelcius,strFahreinheit,strreamur,strhasil;
    TextField txtCelcius, txtFahreinheit, txtreamur;
    Command cmdExit, cmdhitung, cmdkembali;

    public MidletSuhu(){
        frminput = new Form("Input satuan suhu");

        strCelcius = new StringItem("" ,"Celcius", StringItem.PLAIN);
        txtCelcius = new TextField("", "", 30,TextField.NUMERIC);

        strFahreinheit = new StringItem("" ,"Fahreinheit", StringItem.PLAIN);
        txtFahreinheit = new TextField("", "", 30,TextField.NUMERIC);

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

        cmdExit = new Command("Kembali", Command.EXIT, 0);
        cmdhitung = new Command("Hitung", Command.OK,1);

        frminput.append(strCelcius);
        frminput.append(txtCelcius);
        frminput.append(strFahreinheit);
        frminput.append(txtFahreinheit);
        frminput.append(strreamur);
        frminput.append(txtreamur);

        strCelcius = new StringItem("","Yes",StringItem.PLAIN);
        strFahreinheit = new StringItem("Coba","",StringItem.PLAIN);
        frminput.addCommand(cmdExit);
        frminput.addCommand(cmdhitung);
        frminput.setCommandListener((CommandListener) this);}

    public void startApp()
        {if(disp == null)
            {
                disp = Display.getDisplay(this);
                disp.setCurrent(frminput);
            }
        }
    public void hitungSuhu(){
    frmhasil = new Form("Hasil konversi suhu");
       if(!txtCelcius.getString().equals("")){
                int celcius = Integer.parseInt(txtCelcius.getString());
                int fahrenheit = ((celcius)*9/5+32);
                int reamur = (celcius*4/5);

                strhasil = new StringItem("","",StringItem.PLAIN);
                strhasil.setText("C -> F = "+fahrenheit+"\nC -> R = "+reamur);

            }

       else if(!txtFahreinheit.getString().equals("")){
                int fahrenheit = Integer.parseInt(txtFahreinheit.getString());
                int celcius = ((fahrenheit-32)*5/9);
                int reamur = ((fahrenheit-32)*4/9);

                strhasil = new StringItem("","",StringItem.PLAIN);
                strhasil.setText("F -> C = "+celcius+"\nF -> R = "+reamur);
            }

       else if(!txtreamur.getString().equals("")){
                int reamur = Integer.parseInt(txtreamur.getString());
                int celcius = ((reamur)*5/4);
                int fahrenheit = (((reamur)*9/4)+32);

                strhasil = new StringItem("","",StringItem.PLAIN);
                strhasil.setText("R -> C = "+celcius+"\nR -> F = "+fahrenheit);
            }

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

        disp.setCurrent(frmhasil);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
        }

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

    }
}


Ketika Aplikasi dijalankan tampilan pertama yang akan muncul akan seperti gambar dibawah ini.
 Gambar 1.1 Tampilan 1

Selanjutnya inputkan angka pada bagian yang tersedia. Aplikasi ini hanya memperbolehkan anda mengisi satu bagian saja. Selanjutnya pilih menu dan pilih hitung. Berikut tampilannya.

 Gambar 1.2 Tampilan 2

Misalkan kita inputkan pada bagian Celcius dengan angka 12. Maka angka dalam Celcius tersebut akan dikonversikan ke dalam bentuk Reamur dan Fahrenheit. Berikut Tampilannya.

 Gambar 1.3 Tampilan 3

Mungkin cukup sekian yang dapat saya bagikan untuk blogger sekalian. Semoga Aplikasi ini bisa bermanfaat bagi orang banyak. Sampai jumpa di Aplikasi selanjutnya. Wassalam.

Tidak ada komentar:

Posting Komentar