Rabu, 18 Januari 2012

Aplikasi Mobile pertama berbasis J2ME "Konversi Suhu "

Setelah beberapa bulan saya vakum dengan tugas -  tugas e-mail dan blog karena di sibukan dengan Tugas Akhir juga UAS kemarin, terpotong juga oleh liburan tahun baru hari ini saya mulai memasuki tugas tugas itu, KELAS XII - M Rekayasa Perangkat Lunak SMKN 4 BANDUNG 2011 - 2012, ya itu lah... tak terasa kini saya sudah memasuki tahun akhir atau semester akhir kelas 3, jika saya ingat ingat kembali tugas seperti ini yang terakhir saya kumpulkan tahun kemarin, ketika guru faforit saya meniggal dunia dan itulah hari dimana banyak perubahan dalam dunia yang saya alami.

ok deh tidak banyak cingcong langsung aja kita masuk ke penjelasan program. Program yang saya buat kali ini adalah program Mobile pertama saya berbasis J2ME dengan judul "Konversi Suhu".
dari judulnya kita sudah bisa menebak program seperti apa itu?
ya program ini mengkonversi dari mulai suhu celcius, fahrenheit juga reamur. konversi ini berdasarkan perhitungan yang akurat.

Code :

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

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 Yudith Pratama
 */
public class suhu extends MIDlet implements CommandListener
{
    Display disp;
    Form frmInput, frmHasil;
    Command cmdKeluar, cmdKembali, cmdHitung;
    TextField txtSuhu, txtKategori;
    StringItem strCelcius, strHasilCelcius, strHasilFahrenheit, strHasilReamur, strFahrenheit, strReamur, strKategori, strSuhu;

   public suhu()
   {
        frmInput = new Form("Form Input Suhu");
        strCelcius = new StringItem("1.","Celcius", StringItem.PLAIN);
        strFahrenheit = new StringItem("2.","Fahrenheit", StringItem.PLAIN);
        strReamur = new StringItem("3.","Reamur", StringItem.PLAIN);
        strKategori = new StringItem("*","Kategori", StringItem.PLAIN);
        txtKategori = new TextField("","", 1, TextField.NUMERIC);
        strSuhu = new StringItem("*","Suhu", StringItem.PLAIN);
        txtSuhu = new TextField("","", 4, TextField.NUMERIC);

        cmdKeluar = new Command("Keluar", Command.EXIT, 0);
        cmdKembali = new Command("Kembali", Command.BACK, 1);
        cmdHitung = new Command("Hitung", Command.ITEM, 1);

        frmInput.append(strCelcius);
        frmInput.append(strFahrenheit);
        frmInput.append(strReamur);
        frmInput.append(strKategori);
        frmInput.append(txtKategori);
        frmInput.append(strSuhu);
        frmInput.append(txtSuhu);

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

   private void hitungsuhuCelcius(int nilaiCelcius)
   {
        frmHasil = new Form("Form Hasil");
        strHasilFahrenheit = new StringItem(nilaiCelcius + " Celcius = ", "", StringItem.PLAIN);
        strHasilReamur = new StringItem(nilaiCelcius +" Celcius = ", "", StringItem.PLAIN);

        //celcius ke fahrenheit dan reamur

        int hasilFahrenheit = (5 * nilaiCelcius / 9) + 32;
        int hasilReamur = (5 * nilaiCelcius / 4);
        strHasilFahrenheit.setText(hasilFahrenheit + " Fahrenheit");
        strHasilReamur.setText(hasilReamur + " Reamur");
        cmdKeluar = new Command("Keluar", Command.EXIT, 0);
        cmdKembali = new Command("Kembali", Command.BACK, 1);

        frmHasil.append(strHasilFahrenheit);
        frmHasil.append(strHasilReamur);
        frmHasil.addCommand(cmdKembali);
        frmHasil.addCommand(cmdKeluar);
        frmHasil.setCommandListener(this);

        disp.setCurrent(frmHasil);
    }

   private void hitungsuhuFahrenheit(int nilaiFahrenheit)
   {
        frmHasil = new Form("Form Hasil");
        strHasilCelcius = new StringItem(nilaiFahrenheit + " Fahrenheit = ", "", StringItem.PLAIN);
        strHasilReamur = new StringItem(nilaiFahrenheit +" Fahrenheit = ", "", StringItem.PLAIN);

         //fahrenheit ke celcius dan reamur

        int hasilCelcius = (9 * nilaiFahrenheit / 5) - 32;
        int hasilReamur = (9 * nilaiFahrenheit / 4) - 32;
        strHasilCelcius.setText(hasilCelcius + " Celcius");
        strHasilReamur.setText(hasilReamur + " Reamur");
        cmdKeluar = new Command("Keluar", Command.EXIT, 0);
        cmdKembali = new Command("Kembali", Command.BACK, 1);

        frmHasil.append(strHasilCelcius);
        frmHasil.append(strHasilReamur);
        frmHasil.addCommand(cmdKembali);
        frmHasil.addCommand(cmdKeluar);
        frmHasil.setCommandListener(this);

        disp.setCurrent(frmHasil);
    }

    private void hitungsuhuReamur(int nilaiReamur)
    {
        frmHasil = new Form("Form Hasil");
        strHasilFahrenheit = new StringItem(nilaiReamur + " Reamur = ", "", StringItem.PLAIN);
        strHasilCelcius = new StringItem(nilaiReamur + " Reamur = ", "", StringItem.PLAIN);

        //reamur ke celcius dan fahrenheit

        int hasilCelcius = (4 * nilaiReamur / 5);
        int hasilFahrenheit = (4 * nilaiReamur / 9) + 32;
        strHasilCelcius.setText(hasilCelcius + " Celcius");
        strHasilFahrenheit.setText(hasilFahrenheit + " Fahrenheit");
        cmdKeluar = new Command("Keluar", Command.EXIT, 0);
        cmdKembali = new Command("Kembali", Command.BACK, 1);

        frmHasil.append(strHasilCelcius);
        frmHasil.append(strHasilFahrenheit);
        frmHasil.addCommand(cmdKembali);
        frmHasil.addCommand(cmdKeluar);
        frmHasil.setCommandListener(this);

        disp.setCurrent(frmHasil);
    }

    public void startApp()
    {
        if (disp == null){
            disp = Display.getDisplay(this);
            
        }
        disp.setCurrent(frmInput);
    }
    public void pauseApp() {
    }
    public void commandAction(Command c, Displayable d) {
       if(d == frmInput){
           if(c == cmdHitung){
               switch(Integer.parseInt(txtKategori.getString()))
  {
  case 1:
  hitungsuhuCelcius(Integer.parseInt(txtSuhu.getString()));
  break;
  case 2:
  hitungsuhuFahrenheit(Integer.parseInt(txtSuhu.getString()));
  break;
  case 3:
  hitungsuhuReamur(Integer.parseInt(txtSuhu.getString()));
  break;
  default:
   System.out.println("Sorry, you failed!");
  }
           }
           else if(c == cmdKeluar){
               destroyApp(true);
               notifDestroyed();
           }

       }
       else if(d == frmHasil)
       {
           if (c == cmdKeluar)
           {
               destroyApp(true);
               notifyDestroyed();
           }
           else if (c == cmdKembali)
           {
               disp.setCurrent(frmInput);
           }
       }
  }
    public void notifDestroyed() {
        
    }
    public void destroyApp(boolean unconditional) {
    }
}
 

Listing Program diatas akan menghasilkan output :