Senin, 16 Januari 2012

Konversi Suhu

assalamualikum wr.wb , pada kesempatan ini kali ini saya membuat aplikasi tentang konversi suhu dimana bisa menghitung suhu sperti celcius, farenheit, dan rheamur  maupun sebaliknya dan program ini berbasis J2ME atau Java Mobile . berikut ini adalah print screen dari program ini dan source codenya pula .

1. 
(a) printscreen



(b) printscreen 
















2.source code
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 asus
 */
public class LatihanPertama extends MIDlet implements CommandListener {
    Display disp;
    Form frmInput, frmHasil;
    StringItem strCelcius, strFahrenheit, strRheamur, strHasil, strHasil2;
    TextField txtCelcius, txtFahrenheit, txtRheamur;
    Command cmdExit, cmdHitung, cmdKembali;

    public LatihanPertama() {
        frmInput = new Form("Input Satuan Suhu");
        frmHasil = new Form("Hasil");

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

        strFahrenheit = new StringItem("", "Fahrenheit (32-212)", StringItem.PLAIN);
        txtFahrenheit = new TextField("", "", 30, TextField.NUMERIC);

        strRheamur = new StringItem("", "Reamur (0-80)", StringItem.PLAIN);
        txtRheamur = new TextField("", "", 30, TextField.NUMERIC);


        cmdExit = new Command("Keluar", Command.EXIT, 0);
        cmdHitung = new Command("Hitung", Command.OK, 1);

        frmInput.append(strCelcius);
        frmInput.append(txtCelcius);
        frmInput.append(strFahrenheit);
        frmInput.append(txtFahrenheit);
        frmInput.append(strRheamur);
        frmInput.append(txtRheamur);

        frmInput.addCommand(cmdExit);
        frmInput.addCommand(cmdHitung);
        frmInput.setCommandListener(this);
    }

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

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        if(d == frmInput){
            if(c == cmdHitung){
                if(!txtCelcius.getString().equals("")){
                    hitungCelcius();
                }
                else if(!txtFahrenheit.getString().equals("")){
                    hitungFahrenheit();
                }
                else if(!txtRheamur.getString().equals("")){
                    hitungRheamur();
                }

            }else if(c==cmdExit){
                destroyApp(true);
                notifyDestroyed();
            }
        }else{
            if(c == cmdKembali){
                disp.setCurrent(frmInput);
            }
        }
    }

     public void hitungCelcius(){
        frmHasil = new Form("Hasil");

        int celc = Integer.parseInt(txtCelcius.getString());
        int hasilR = (4*celc/5);
        int hasilF = (9*celc/5+32);

        strHasil = new StringItem("", "",StringItem.PLAIN);
        strHasil.setText("C->F = "+hasilF);

        strHasil2 = new StringItem("", "",StringItem.PLAIN);
        strHasil2.setText("C->R = "+hasilR);

        cmdKembali = new Command("Kembali", Command.BACK, 1);
        frmHasil.append(strHasil);
        frmHasil.append(strHasil2);
        frmHasil.addCommand(cmdKembali);
        frmHasil.setCommandListener(this);

        disp.setCurrent(frmHasil);
    }

    private void hitungFahrenheit() {
        frmHasil = new Form("Hasil");

        int fahr = Integer.parseInt(txtFahrenheit.getString());
        int hasilC = (5*(fahr-32)/9);
        int hasilR = (4*(fahr-32)/9);


        strHasil = new StringItem("", "",StringItem.PLAIN);
        strHasil.setText("F->C = "+hasilC);

        strHasil2 = new StringItem("", "",StringItem.PLAIN);
        strHasil2.setText("F->R = "+hasilR);

        cmdKembali = new Command("Kembali", Command.BACK, 1);
        frmHasil.append(strHasil);
        frmHasil.append(strHasil2);
        frmHasil.addCommand(cmdKembali);
        frmHasil.setCommandListener(this);

        disp.setCurrent(frmHasil);
    }

     private void hitungRheamur() {
        frmHasil = new Form("Hasil");

        int ream = Integer.parseInt(txtRheamur.getString());
        int hasilC = (5*ream/4);
        int hasilF = (9*ream/4)+32;


        strHasil = new StringItem("", "",StringItem.PLAIN);
        strHasil.setText("R->C = "+hasilC);

        strHasil2 = new StringItem("", "",StringItem.PLAIN);
        strHasil2.setText("R->F = "+hasilF);

        cmdKembali = new Command("Kembali", Command.BACK, 1);
        frmHasil.append(strHasil);
        frmHasil.append(strHasil2);
        frmHasil.addCommand(cmdKembali);
        frmHasil.setCommandListener(this);

        disp.setCurrent(frmHasil);
    }

}
kekurangan dari program ini adalah :
*tidak bisa menghitung yang lain selain suhu tersebut
kelebihan dari program ini adalah :
*bisa menghitung suhu tersebut dengan cepat
sekian dari program saya mohon maaf bila terdapat kekurangan atau kesalahan  wassalamualaikum wr.wb