Alhamdulillah sesuatu akhirnya bisa postingan lagi, selama bermeditasi digunung batu akhirnya dapet flashbang (pencerahan) juga hehehe. Postingan kali ini kita masih akan membahas seputar Java Programming, kalo kemarin kan kita membahas tentang Menentukan Jumlah Bilangan Bulat dan Pecahan, nahh sekarang juga masih tentang bilangan cuman ada ngitung-ngtungnya aja, yuppss benerr kita akan membuat program tentang kalkulator, tapi sebelumnya sebenernya program yang akan saya bahas ini belum sempurna atau masih versi 1.0 nya lah hahaha, program kali ini masih sangaaaattt simpel, sebenernya tugasnya ga gini sih cuman proses nya itu looohh hahaha, cuman yaa di buat simpel aja dulu karna keterbatasan ilmu hehehe, next time kalo udah beres meditasi di gunung batu lgi terus dapet flashbang, kita update versi 1.0 nya hehehe.
Ok..
Selamat bertemu dipostingan berikutnya~ :)
Ok..
Ohh I'm curious yeeaahh..
Sesuai dengan judul, tuhh bisa diliat diatas apa judulnya hehehe. Sederhana, oke namanya juga sederhana jadi program yang saya buat ini cuman bisa + sama - aja, seharusnya tugasnya itu ada * sama / cuman ya itu ilmunya belum kesampaian hehehe maap yaaa nanti diupdate kalo udah dapet ilmunya :)
Namun program ini ada keistimewaan tersendiri, tapi kalo dibandingin sama program yang udah pake GUI jelas kalah laahh itu ngebandinginnya terlalu jauh hehehe, disini kita bisa langsung input bilangan disertai dengan operatornya, berbeda dengan tutorial yang pernah saya temui yang memasukan operatornya dengan dipilih berdasarkan keterangan, itu benar ! tohh hasilnya juga bener ga salah, selagi 1+1= masih 2 kenapa disalahkan?? hehehe, untuk lebih jelasnya ini algoritmanya :
contoh :Input
5 + 2 - 3
Output
4
Yang perlu diperhatikan, inputan disekaliguskan tanpa enter, pertanyaannya ko bisa ? kan klo belum dienter si bilangan nya ga bakanlan ke input dong ? itu kenapa ada operatornya lgi ? berarti itu String dong ? mungkin dari anda akan bertanya demikian, untuk lebih jelas nya chek this out !!
Seperti biasa saya akan memberikan script keseluruhannya terlebih dahulu sebelum dijelaskan, dimohon untuk dipahami terlebih dahulu sekaligus dicoba.
Calculator.java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * @date 1 September 2012 * @author ABRZLAZHR */ public class Calculator { //menggunakan class library BufferedReader BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)); //instansiasi String input = ""; //deklarasi input //method prosedur input public void input() throws IOException{ System.out.println("Kalkulator sederhana + dan -"); input = dataIn.readLine(); //membaca data input } //method prosedur OpBil public void OpBil(){ //split berguna untuk memecah string(dipisah berdasarkan spasi), kemudian disimpan dalam array String all[] = input.split(" "); //Pendeklarasian_ String bilangan[] = new String[3]; //_data bilangan dimasukan ke dalam array 3 element String operator[] = new String[2]; //_data operator dimasukan ke dalam array 2 element int index_op = 0; // int index_bil = 0; // //looping untuk membaca input yang sudah displit for(int i=0; i<all.length; i++){ //penyeleksian untuk membuat variabel berdasarkan operator dan bilangan if (("+".equals(all[i])) || ("-".equals(all[i]))){ operator[index_op] = all[i]; //jika all[i] +/- maka var operator[index] akan diinisialisasi index_op++; //nilai index ditambahkan } else{ bilangan[index_bil] = all[i]; //jika all[i] bilangan maka var bilangan[index] akan diinisialisasi index_bil++; //nilai index ditambahkan } } //pass by reference, memberi nilai dan mengambil nilai hasil(bilangan, operator); } //method fungsi dengan parameter bil dan opp public static String[] hasil(String[] bil, String[] opp){ //variabel d_bilangan utk menyimpan bilangan yg sudah di convert double d_bilangan[] = new double[3]; double hasil = 0; //mengconvert masing2 bilangan dari string ke double menggunakan looping for(int i=0; i<bil.length; i++){ d_bilangan[i] = Double.parseDouble(bil[i]); } //nilai hasil di awali dengan nilai bilangan index 0 hasil = d_bilangan[0]; /*karena nilai hasil awal sudah diawali oleh nilai bilangan index 0_ maka index_hasil nilainya diawali dengan 1 bukan lagi 0*/ int index_hasil = 1; for(int i=0; i<opp.length; i++){ switch (opp[i]) { case "+": hasil = hasil + d_bilangan[index_hasil]; break; case "-": hasil = hasil - d_bilangan[index_hasil]; break; } index_hasil++; } System.out.println(hasil); return bil; } }
dan ini mainClass nya
CalculatorTest.java
CalculatorTest.java
import java.io.IOException; /** * @date 1 September 2012 * @author ABRZLAZHR */ public class CalculatorTest { public static void main(String[] args) throws IOException { Calculator test = new Calculator(); test.input(); test.OpBil(); } }
Nahh kalo udah di coba kurang lebih printscreen nya seperti ini
Oke dilanjutkan dengan pembahasan scriptnya tapi ga bakalan semuanya dibahas, hanya sub-sub tertentu saja yg akan dibahas. Pertama kita buka dulu script Calculator.java
misalkan :
Oke dilanjutkan dengan pembahasan scriptnya tapi ga bakalan semuanya dibahas, hanya sub-sub tertentu saja yg akan dibahas. Pertama kita buka dulu script Calculator.java
String all[] = input.split(" ")Split disini berguna untuk memecah string berdasarkan spasi kemudian dimasukan kedalam index,
misalkan :
"saya belajar java"
maka
index 0 = "saya"
index 1 = "belajar"
index 2 = "java"
String bilangan[] = new String[3]; String operator[] = new String[2];
Pendeklarasian, kebetulan karena input di program seperti ini : "5 + 2 - 3",
variabel bilangan hanya membatasi 3 penyimpanan saja yaitu 5, 2, dan 3 tidak bisa lebih karena String[3] sudah dibatasi,
begitu juga dengan variabel operator hanya membatasi 2 penyimpanan saja yaitu + dan - tidak bisa lebih karena sudah dibatasi String[2].
for(int i=0; i<all.length; i++){ if (("+".equals(all[i])) || ("-".equals(all[i]))){ operator[index_op] = all[i]; index_op++; } else{ bilangan[index_bil] = all[i]; index_bil++; } }
Pebagian inisialisasi berdasarkan all[index] hasil dari split().
misalkan(mengambil contoh sebelumnya) :
all[0] = "saya"
all[1] = "belajar"
Lalu disana ada penyeleksian dan masuk ke aksi berikutnya (misal) maksud dari operator[index_op] = all[i] adalah
operator[0] = all[0]
Jadi inisialisasi dari variabel operator[0] = "saya" diloopingkan menghasilkan
variabel operator[1] = "belajar" dan seterusnya.
double d_bilangan[] = new double[3];
Mengapa harus membuat variabel untuk bilangan lagi?
Varibel ini dikhususkan untuk bilangan yang sudah di convert dari string ke double.
for(int i=0; i<bil.length; i++){ d_bilangan[i] = Double.parseDouble(bil[i]); }
Masing-masing bilangan[index] di convert dari String ke double agar dapat diproses berikutnya.
hasil = d_bilangan[0]; int index_hasil = 1;
Mengapa index_hasil dimulai dari 1 ?
Karena nilai hasil awal sudah diawali oleh nilai bilangan index 0 (hasil = d_bilangan[0]) maka index_hasil nilainya diawali dengan 1 bukan lagi 0.
Untuk download bisa disini :
Kalkulator.class
Kalkulator.jar
Untuk download bisa disini :
Kalkulator.class
Kalkulator.jar
Selanjutnya script CalculatorTest.java, namun scipt ini tidak usah dijelaskan karena di CalculatorTest.java ini hanya terdapat pemanggilan method saja dan juga sudah dijelaskan dipost sebelumnya untuk pemanggilan method dapat dilihat di Menentukan Jumlah Bilangan Bulat dan Pecahan.
Oke sekian pembahasan kali ini mohon maaf jika ada pembahasaan yang kurang dipahami, namun saya percaya bahwa anda bisa paham sendiri tanpa dijelaskan juga, pahami alur dari coding seperti apa, lalu hasil dari coding itu juga seperti apa. Insyaallah jika usaha anda baik hasilnya pun akan baik pula :)