Senin, 23 Januari 2012

Ngopi dengan Suhu

Aduh, jadi barista lagi. Biasanya ane racik kopi di rumah pake susu ato choco granule ini pake kompi. Cara penyajian kopi ada dua, yang disajikan hangat kayak kopi robusta atau yang disajikan dingin kayak vanilla latte. Kali ini ane racik kopi lagi? Kopi yang bisa dinikmati selagi ngerjain tugas salah kopi ini ane racik untuk membantu para penikmat kopi menyeruput kopi dengan temperatur yang pas. Program ini terdiri dari 2 class, ane tampilin script yang biasa. Script yg satu lagi rahasia perusahaan

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

package hello;

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

/**
* @author pika
*/
public class latihanPertamax extends MIDlet implements CommandListener{
Display disp;
Form fi, fh;
StringItem lblC, lblF, lblR,lblHF, lblHC, lblHR;
TextField txtC, txtF, txtR;
Command cmdKeluar, cmdHitung, cmdKembali;
int cl, re, fr, hf, hr, hc;
public latihanPertamax()
{
fi = new Form("Masukkan Satuan Suhu");

lblC = new StringItem("","Celcius", StringItem.PLAIN);
txtC = new TextField("", "", 30, TextField.NUMERIC);

lblF = new StringItem("","Fahrenheit", StringItem.PLAIN);
txtF = new TextField("", "", 30, TextField.NUMERIC);

lblR = new StringItem("","Reamur", StringItem.PLAIN);
txtR = new TextField("", "", 30, TextField.NUMERIC);

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

fi.append(lblC);
fi.append(txtC);
fi.append(lblF);
fi.append(txtF);
fi.append(lblR);
fi.append(txtR);

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

public void startApp() {
disp = Display.getDisplay(this);
disp.setCurrent(fi);
}

public void hitungSuhu()
{
fh = new Form("Hasilnya");
Hitung h = new Hitung();
if(!txtC.getString().equals(""))
{
cl = Integer.parseInt(txtC.getString());
hf = h.hitCF(cl);
hr = h.hitCR(cl);

lblHF = new StringItem("", "", StringItem.PLAIN);
lblHF.setText("Hasil (Fahrenheit)= " + hf);

lblHR = new StringItem("", "", StringItem.PLAIN);
lblHR.setText("\nHasil (Reamur)= " + hr);

fh.append(lblHF);
fh.append(lblHR);
}
else if(!txtF.getString().equals(""))
{
fr = Integer.parseInt(txtF.getString());
hc = h.hitFC(fr);
hr = h.hitFR(fr);

lblHC = new StringItem("", "", StringItem.PLAIN);
lblHC.setText("Hasil (Celcius)= " + hc);

lblHR = new StringItem("", "", StringItem.PLAIN);
lblHR.setText("\nHasil (Reamur)= " + hr);

fh.append(lblHC);
fh.append(lblHR);
}
else
{
re = Integer.parseInt(txtR.getString());
hc = h.hitRC(re);
hf = h.hitRF(re);

lblHC = new StringItem("", "", StringItem.PLAIN);
lblHC.setText("Hasil (Celcius)= " + hc);

lblHF = new StringItem("", "", StringItem.PLAIN);
lblHF.setText("\nHasil (Fahrenheit)= " + hf);

fh.append(lblHC);
fh.append(lblHF);
}

cmdKembali = new Command("Kembali", Command.BACK, 0);
fh.addCommand(cmdKembali);
fh.setCommandListener(this);


disp.setCurrent(fh);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void commandAction(Command c, Displayable d) {
if(d == fi)
{
if(c == cmdHitung)
{
hitungSuhu();
}
else if(c == cmdKeluar)
{
destroyApp(true);
notifyDestroyed();
}
}
else
{
if(c == cmdKembali)
{
disp.setCurrent(fi);
txtC.setString(null);
txtF.setString(null);
txtR.setString(null);
}
}
}
}

rincian script selengkapnya + program jadi unduh di sini
credit : audition emoticon on candrabeqx.net

Selasa, 23 Agustus 2011

Ascending Sort

Ini masih tentang kopi robusta yang disruput oleh Sun (sekarang disruput ama Oracle). Sebenarnya script ini tugas dari guru ane, ya biar nyambung ama blog ane kaitin ama kopi robusta asli Jawa (yang jadi cikal bakal nama Java itu lho...). Script ini bercerita tentang bagaimana mengurutkan angka dari bilangan terkecil hingga bilangan terbesar (ascending). Sori kalo script-nya simpel, soalnya ane masih nubi ama belum berani ngoprek script yang aneh-aneh.


import java.util.*;

public class SortArray
{
public static void main ( String[] args )
{
int kotak[] = new int[10];
int j, k;
Scanner isi = new Scanner(System.in);

System.out.print("tulis angka antara 1 - 10: ");
j = isi.nextInt();

k = j - 1;

for(int i = 0; i < j; i++)
{
System.out.print("angka ke-" + ( i + 1 ) + " : ");
kotak[i] = isi.nextInt();
}

Arrays.sort(kotak, 0, j);
System.out.print("setelah diurutkan : ");

for(int i = 0; i < j; i++)
{
if(k > i)
{
System.out.print( kotak[i] + ", ");
}
else
{
System.out.print( kotak[i] );
}
}
}
}


NB :
  • Perhatikan pada awal script (bagian import), sebenarnya bisa ditulis dua kali menjadi import java.util.Scanner; dan import java.util.Arrays;
    tapi karena berada dalam satu lingkup yang sama jadi ane singkat import java.util.*;
  • Ane menggunakan fungsi sort() yang ada pada class Arrays yg berada dalam package java.util untuk menyortir semua bilangan yang diinputkan user. Cara penulisannya :
Arrays.sort(nama_array, indeks_pertama, indeks_terakhir);

hasilnya :

Demikian script ane yg simpel dan amburadul ini, kalo mau rinciannya ane lampirin di sini


Jumat, 12 Agustus 2011

Menyeduh Kopi

Ini bukannya cara untuk membuat masakan berbahan dasar kopi, tapi ini hanya sebuah script sederhana dengan Java (ya biar nyambung sedikit ama blognya, toh simbolnya juga kopi anget :D). Maaf bila ada bug, toh ilmu program saya tidak sedalam ilmu memasak saya kok. (Apa mungkin kalo bisa racik ramuan ini bisa ikut masterchef?)

Sebenarnya script yang digunakan terbagi menjadi 2 bagian, maksudnya class. Class yang pertama berfungsi sebagai induk dan class kedua sebagai prosesnya.

Class pertama : Rapor

import java.util.Scanner;
public class Rapor
{
public static void main ( String[] args )
{
String nama = "";
String kls = "";
int uas, uts, tgs, abs;
double ruas, ruts, rtgs, rabs;

ProsesNilai a = new ProsesNilai(); // instansiasi dari class sebelumnya, proses nilai
Scanner b = new Scanner(System.in);

System.out.print("nama : ");
nama = b.nextLine(); //biar gak lupa, ini proses input sebuah String

System.out.print("\nkelas : ");
kls = b.nextLine();

System.out.print("\nnilai uas : ");
uas = b.nextInt(); // proses input untuk tipe data integer
ruas = (double)uas; //konversi ke double dari int

System.out.print("\nnilai uts : ");
uts = b.nextInt();
ruts = (double)uts;

System.out.print("\nnilai tugas : ");
tgs = b.nextInt();
rtgs = (double)tgs;

System.out.print("\nnilai absen : ");
abs = b.nextInt();
rabs = (double)abs;

System.out.print("===================\n");
System.out.println("nama : " + nama);
System.out.println("kelas : " + kls);

a.statNilai(a.hitung(ruas,ruts,rtgs,rabs));
//memanggil fungsi di class ProsesNilai dengan nilai yang telah dimasukkan
}
}
Maklum lah namanya masih belajar, script-nya masih berantakan. Ini adalah class utama yang ditandai dengan fungsi main() di atas. Untuk memudahkan meng-edit program sengaja dipisah menjadi dua class. Berikut ini disertakan juga class di mana proses penghitungan berlangsung.

Class kedua : ProsesNilai
public class ProsesNilai
{
public double hitung(double nuas, double nuts, double ntgs, double nabs)
{
nuas = 0.3 * nuas;
nuts = 0.3 * nuts;
ntgs = 0.2 * ntgs;
nabs = 0.1 * nabs;

return nuas + nuts + ntgs + nabs;
}

public void statNilai(double rt)
{
String hasil = "";
hasil = (rt > 75)?"lulus":"tidak lulus";
System.out.print("perkiraan nilai anda " + rt + " dan anda " + hasil);

}
}

Di sini tempat di mana data dari class utama (Rapor) diolah. Sori penjelasannya singkat, soalnya saya masih awam di bidang mengolah syntax.