Senin, 16 Januari 2012

Konversi Suhu

          Kali ini saya membuat sebuah program yang digunakan untuk menghitung suhu. kita tinggal memasukan angka yang akan dihitung kemudian kita tinggal melihat hasilnya. berikut source code beserta gambarnya :
 

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 TOSIBA
 */
public class Midletsuhu extends MIDlet implements CommandListener{
    Display disp;
    Form frmInput,frmHasil;
    StringItem strCelcius,strFahrenheit,strHasil,strReamur,strHasil2,strHasil3,strKelvin;
    TextField txtCelcius,txtFahrenheit,txtReamur,txtKelvin;
    Command cmdExit,cmdHitung,cmdKembali;


    public Midletsuhu(){
        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);


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


        strKelvin = new StringItem("", "Kelvin (273-373)", StringItem.PLAIN);
        txtKelvin = 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(strReamur);
        frmInput.append(txtReamur);
        frmInput.append(strKelvin);
        frmInput.append(txtKelvin);


        frmInput.addCommand(cmdExit);
        frmInput.addCommand(cmdHitung);
        frmInput.setCommandListener(this);
    }
    public void startApp() {
        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(!txtReamur.getString().equals("")){
                    hitungReamur();
                }
                else if(!txtKelvin.getString().equals("")){
                    hitungKelvin();
                }
            }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 hasilK = (celc+273);
        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);


        strHasil3 = new StringItem("", "",StringItem.PLAIN);
        strHasil3.setText("C->K = "+hasilK);


        cmdKembali = new Command("Kembali", Command.BACK, 1);
        frmHasil.append(strHasil);
        frmHasil.append(strHasil2);
        frmHasil.append(strHasil3);
        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);
        int hasilK = (5*(fahr-32)/9)+273;




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


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


        strHasil3 = new StringItem("", "",StringItem.PLAIN);
        strHasil3.setText("F->K = "+hasilK);


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


        disp.setCurrent(frmHasil);
    }


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


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




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


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


        strHasil3 = new StringItem("", "",StringItem.PLAIN);
        strHasil3.setText("R->K = "+hasilK);


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


        disp.setCurrent(frmHasil);
    }


    private void hitungKelvin() {


        frmHasil = new Form("Hasil");


        int kelv = Integer.parseInt(txtKelvin.getString());
        int hasilC = (kelv-273);
        int hasilR = (4*hasilC/5);
        int hasilF = (9*hasilC/5+32);


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


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


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


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


        disp.setCurrent(frmHasil);
    }
}



                                                                 Gambar Program

setelah keluar tampilan pertama kita akan masuk ke tampilan selanjutnya, atau disebut form hitung .

                                                                   Gambar Program

Form ini untuk melihat hasil penghitungan.

Kelebihan :
     * Dapat menghitung suhu Celcius, Reamur, Fahrenheit dan Kelvin
Kelemahan :
    * Tidak dapat menghitung selain suhu

          Program ini dibuat untuk memenuhi nilai tugas JAVA, terima kasih..