Follow Now......!

Java Programming

Membagikan dan membuat contoh-contoh study kasus yang sering digunakan dalam bahasa pemograman Java, kita bisa saling sharing all about Java Programming.

Sunday, September 2, 2012

Membuat Kalkulator Sederhana di Java

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..

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
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

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

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 :)

Selamat bertemu dipostingan berikutnya~ :)

Tuesday, August 28, 2012

Menentukan Jumlah Bilangan Bulat dan Pecahan di Java

SEDIKIT KATA GA PENTING DARI YANG PUNYA LAPAK ..
Oke mulai kembali dengan postingan kedua saya, mungkin kalo dilihat dari blog ini postingan saya to the point mulu ga muluk-muluk hehehe, baru kemaren perkenalan sekarang udah muncul postingan yang dikatakan ini program bukan dasar hehehe (yg punyanya males postingan tah :p).
Niat awal sih mau kenalin dulu programming language itu kya gimana, apa aja yang dipelajari, materinya apa aja, sampe teknik-teknik biar belajar programming ga boring, tpi mau gimana lagi sekarang saya lagi dikejar deadline buat posting ini tugas (klo bukan tugas ga bakalan postingan kayanya :p) mau ga mau saya harus beresin dulu ini tugas. Ga penting yah kata pengantarnya?? kenapa dibaca coba hehehe.
YAAA SEKIAN KATA GA PENTING DARI YANG PUNYA LAPAK ..

Okey waktunya untuk serius,

Ohh I'm curious yeeaahh ..
Sesuai dengan judul postingan kali ini yaitu "MENENTUKAN JUMLAH BILANGAN BULAT DAN PECAHAN DI JAVA" yang akan saya jelaskan cara kerja program beserta scriptnya.
Program ini bertujuan untuk menghitung banyak bilangan yang masuk kemudian di seleksi, apakah bilangan tersebut termasuk ke dalam bilangan bulat atau bilangan pecahan untuk lebih jelasnya ini dia algoritmanya :
Contoh :
Jumlah bilangan yang akan dimasukan : 3
Bilangan ke 1 : 2
Bilangan ke 2 : 3.14
Bilangan ke 3 : 12
Output
Jumlah Bilangan Bulat : 2
Jumlah Bilangan Pecahan : 1
Pertama saya akan memberikan script keseluruhannya, silahkan dicoba dan dipahami terlebih dahulu sebelum saya menjelaskan alur dari script-script tersebut.

Ini merupakan script dari file JmlBilBulatPecahan.java yang merupakan alur dan proses program yang nanti akan dijalankan, namun file ini tidak dapat dieksekusi :
/**
 * @date 25 Agustus 2012
 * @author ABRZLAZHR
 */

import java.util.Scanner;     //mengimport class library Scanner
public class JmlBilBulatPecahan {
    int masuk_jml, bulat, pecahan;          //Deklarasi variabel global
    double[] bil = new double[100];         //variabel bil menggunkan array sebagai penyimpanan bilangan
    
    //method prosedur
    public void input(){
        //penggunakan class library scanner
        Scanner scan = new Scanner(System.in);          //instansiasi
        
        System.out.print("Jumlah bilangan yang akan dimasukan : ");
        masuk_jml = scan.nextInt();                     //membaca data masuk_jml utk pembatasan dipengulangan
        
        //pembatasan pengulangan
        for(int i=1; i<=masuk_jml; i++){                
            System.out.print("Bilangan ke "+i+" : ");
            bil[i] = scan.nextDouble();                 //membaca bilangan, kemudian disimpan ke dalam array
        }
        //pass by reference, memberi nilai dan mengambil nilai
        ProsesOutput(bil, bulat, pecahan, masuk_jml);   
    }
    
    //method fungsi yg dpt memberi nilai kembali
    public static int ProsesOutput(double[] a, int b, int p, int in){
        for(int i=1;i<=in;i++){     //pengulangan utk pembacaan index array
            if(a[i] != 0 ){         //jika a = 0 maka aksi tidak akan dijalankan
                if(a[i]%1 != 0){    //a di moduluskan 1_
                    p = p+1;        //_jika hasilnya bersisa maka termasuk ke bil.pecahan_
                }                   //_dan nilai p akan ditmbahkan 1
                else{
                    b = b+1;        //_jika hasilnya habis maka termasuk ke bil.bulat_
                }                   ////_dan nilai p akan ditmbahkan 1
            }
        }
        System.out.println("\nOutput");
        System.out.println("Jumlah bilangan bulat   : "+b);     //menampilkan nilai b
        System.out.println("Jumlah bilangan pecahan : "+p);     //menampilkan nilai p
        return in;              //nilai in dikembalikan
    }
}
Dan ini merupakan file JmlBilBulatPecahanTest.java yang merupakan main program, dan file inilah yang akan dieksekusi :
/**
 * @date 25 Agustus 2012
 * @author ABRZLAZHR
 */
public class JmlBilBulatPecahanTest {
    public static void main(String[] args) {
        JmlBilBulatPecahan out = new JmlBilBulatPecahan();      //instansiasi
        out.input();            //pemanggilan method
    }
}
Bagaimana hasilnya?? Sudahkah dicoba?? ato masih ada yang error?? Jika masih error apanya yg error?? Error coding nya ato error otaknya?? hehehe.
Kalo yang error otaknya maka anda jangan lewatkan yang satu ini, tapi sebelumnya ini dia hasil printscreennya.


Bagaimana sesuai ?
Okey kita langsung ajah ke penjelasan script nya cekidot.

JmlBilBulatPecahan.java
public class JmlBilBulatPecahan
Ini merupakan nama class dimana INGAAT!! nama CLASS harus sama dengan nama FILE

int masuk_jml, bulat, pecahan;   
double[] bil = new double[100]; 
Ini merupakan deklarasi variabel. Kebetulan variabel yang saat ini digunakan adalah variabel global, yaitu variabel yang dapat digunakan di satu class, berbeda dengan variabel local, yang hanya dpt digunakan di satu method dan tidak dapat digunakan di method yg lain, atau untuk lebih jelasnya kita lihat saja berdasarkan nama nya local dan global, kalau local itu khusus hanya dpt digunakan di 1 tempat, tpi kalo global menyeluruh tidak hanya digunakan di 1 tempat saja.

public void input(){
Ini merupakan method prosedur, method yang tidak memiliki nilai kembali.

Scanner scan = new Scanner(System.in);
Ini merupakan cara penggunaan Class Library Scanner utk input dari keyboard. Disertai dengan menginstansiasi dengan menggunakan variabel scan.

System.out.print("Jumlah bilangan yang akan dimasukan : ");     //1
masuk_jml = scan.nextInt();          //1

for(int i=1; i<=masuk_jml; i++){                
 System.out.print("Bilangan ke "+i+" : ");
 bil[i] = scan.nextDouble();         //2
}
  1. Membaca masuk_jml, berfungsi untuk membaca nilai yang akan digunakan untuk membatasi pengulangan/looping sekaligus membatasi jumlah bilangan yang masuk.
    Dapat dilihat dari struktur kondisi pengulangan:
    i = 1 ; i <= masuk_jml ; i++
    i dimulai dari angka 1
    i <= masuk_jml (hasil dari inputan data sebelumnya) misalkan masuk_jml = 3, maka stetment akan dilakukan berulang selama 3x
    i++ , misalkan i bernilai 1 dan diulang 3x maka 1+1...(ulang ke 1) akan memiliki nilai 2+1...(ulang ke 2) akan memiliki nilai 3...(ulang ke 3) dan looping akan berhenti di 3 karena i <= 3
    Dan nantinya akan menampilkan :
    Bilangan ke 1 (nilai 1 hasil dari i=1) :
    Bilangan ke 2 (nilai 2 hasil dari 1+1) :
    Bilangan ke 3 (nilai 3 hasil dari 2+1) :
    (memang sedikit ribet jika di jelaskan dgn kata2 hehehe). 
  2. Membaca bil[i], nilai sekaligus disimpan dalam array

ProsesOutput(bil, bulat, pecahan, masuk_jml); 
Ini merupakan Pass by Reference, yaitu memberi nilai dan mengambil nilai dari suatu method ke method yang lain.

public static int ProsesOutput(double[] a, int b, int p, int in){  
Method ProsesOutput menggunakan method fungsi yang dapat membarikan nilai kembali.

if(a[i] != 0 ){       
 if(a[i]%1 != 0){   
  p = p+1;        
 }                   
 else{
  b = b+1;       
 }                   
}
Saya menyeleksi bilangan bulat dan bilangan pecahan menggunakan teknik modulus(mod tandanya %) modulus berguna untuk membagi habis nilai dari sebuah variabel, namun sebelum memasuki aksi pembagian modulus saya menyeleksi terlebih dahulu jika bilangan yang masuk nilainya 0 maka aksi modulus tidak akan dijalankan. Contoh pembagian modulus:

1 % 1 hasilnya 0
2 % 1 hasilnya 0
5 % 1 hasilnya 0

2.5 % 1 hasilnya 0.5
3.14 % 1 hasilnya 0.14
4.3 % 1 hasilnya 0.3

Sehingga didapatkan kesimpulan, jika hasil dari modulus 0 maka bilangan tersebut terkategorikan bilangan bulat tapi jika hasil dari modulus memiliki sisa maka bilanga tersbut terkategorikan bilangan pecahan.
***
Namun tidak berhenti disitu, ada 1 file utama yang bekerja untuk menjalankan alur program ini dia.

JmlBilBulatPecahanTest.java
public static void main(String[] args) {
    JmlBilBulatPecahan out = new JmlBilBulatPecahan();      //instansiasi
    out.input();                    //pemanggilan method
}
Scriptnya tidak terlalu panjang dan tidak terlalu membingungkan namun perlu di INGAT!! file inilah yang menentukan alur berjalannya program yang sudah dijelaskan diatas.

JmlBilBulatPecahan out = new JmlBilBulatPecahan();
Seperti biasa instansiasi diperlukan, JmlBilBulatPecahan merupakan nama Class dari file JmlBilBulatPecahan.java. Kemudian diberi nama out dan terakhir pemanggilan method dari class lain yaitu
out.input();

kalo mau download filenya bisa disini :
JmlBilBulatPecahan.class
JmlBilBulatPecahan.jar

Akhirnya.. kita selesai jugaaa :D
Mohon maaf apabila ada penjelasan yang kurang berkenan atau kurang difahami, mohon untuk dimaklum yang punya lapak masih dalam tahap belajar hehehe..
Jika masih ada yang error silahkan di cek kembali, mungkin saja penamaan Class nya yg tidak sesuai atau nama variabelnya yg tidak sesuai, atau mungkin pendevinisian methodnya yang salah, silahkan untuk di cek kembali :)

INGATT!! jika error bukan CODING yang salah tapi LOGIKA KITA yang salah hehehe.

Selamat bertemu di postingan berikutnya~ :)

Wednesday, August 8, 2012

I WANT TO START HEYYY :D

I want to start heyyy..
kalimat pertama dalam blog saya ini, tpi kalau dipikirkan mengapa ada "heeyyy" nya segala ??. Yaaa inilah hasil dari imajinasi saya yang garing hahaha 

Langsung sajalah kita chekibrott tudepoin aja "tak kenal maka ta'aruf"


Nama : Abu Rizal Azhari
<---- nihh kalo mau liat kecakepannya wkakaak
Jenis Kelamin : L (Lupa) *ehh Laki-Laki maksudnya
Tempat, Tanggal lahir : Bandung, 17 Desember 1996 -2 *ga kepikiran yaa??
Status : Pelajar
Sekolah : Sekolah Menengah Kejuruan Negeri 4 Bandung
Jurusan : Rekayasa Perangkat Lunak


Sesuai dengan Program Study Keahlian saya yaitu Rekayasa Perangkat Lunak, di blog ini saya akan share all about programming semua tentang pemrograman, jadi jika anda datang untuk mencari info tentang makanan, maaf anda salah masuk kelas hehehe. Tapi tidak menutup kemungkinan disini hanya terdapat bahasan programming saja, disini juga saya akan membahas semua yang menarik untuk refreshing karena belajar programming sangatlah membosankan dan membuat kepala tidak karuan *bagi pemula

Anda dapat sharing diblog ini mengenai segala kendala anda, baik dalam masalah pembuatan program, pembuatan kue *eehh, dan sebagainya. Gunakanlah blog ini sebaik mungkin, semoga anda banyak mendapat kan ilmu dari blog ini.

Trimakasih, Thanks, Kamsahamnida, Arigato

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More