Minggu, 17 Juni 2012

Kalkulator sederhana – Belajar JAVA



Kalkulator merupakan sebuah aplikasi sederhana yang digunakan untuk mencari hasil dari sebuah operasi matematika baik itu operasi penjumlahan, pengurangan, pembagian maupun perkalian dan beberapa operasi lainnya.
Pada postingan kali ini, akan dibuat sebuah aplikasi kalkulator sederhana yang bisa digunakan untuk mencari hasil dari operasi penjumlahan, pengurangan, pembagian serta perkalian. Selain itu, akan dijelaskan juga mengenai beberapa program yang ada pada aplikasi tersebut. Aplikasi kalkulator sederhana ini dibuat dengan menggunakan bahasa pemrograman JAVA dengan memanfaatkan NetBeans sebagai IDE nya.
Aplikasi kalkulator sederhana ini berbasis GUI, dan pada saat pembuatannya menggunakan JFrame. Pemilihan tersebut dapat kita lakukan dengan cara buat project baru dengan memilih File >> New Project >> Java Application. Setelah pembuatan project baru selesai, hapus lah subfolder beserta isi yang ada pada folder “Source Packages”.
 

Jika sudah dihapus, maka buat lah sebuah form dengan memanfaatkan JFrame Form, dengan cara klik kanan pada “source packages” kemudian pilih new, dan setelah itu pilih JFrame Form.



anda akan diminta untuk memberikan nama JFrame Form tersebut. Setelah selesai memberikan nama, klik “finish”. Akan muncul sebuah jendela baru, yang mana akan terdapat 2 tombol pilihan yaitu “Source” dan “Design”.




Jika tombol “Source” ditekan, maka tampilan akan berganti menjadi tampilan/jendela coding yang mana pada jendela tersebut kita membuat program untuk aplikasi kalkulator. Sedangkan jika tombol “Design” ditekan maka tampilan/jendela akan berganti menjadi jendela design, yaitu sebuah jendela yang kita gunakan untuk mendesign tampilan dari aplikasi sesuai dengan yang kita inginkan.
Kemudian buatlah tampilan aplikasi seperti desain gambar dibawah ini,


Sebelum mulai mendesaign tampilan dengan meletakkan tombol dan textField, sebaiknya letakkan dulu sebuah panel sebagai dasar/background, hal itu akan memudahkan kita nantinya jika kita ingin menghias background dari aplikasi yang kita buat.
Komponen-komponen yang digunakan adalah sebagai berikut.



Setelah selesai membuat design tampilan aplikasi, sekarang tinggal membuat source code/ programnya. Untuk memulai membuat program, kita bisa berpindah ke jendela program dengan cara menekan tombol “Source”, selain itu karena kebanyakan program memanfaatkan event penekanan tombol/button, maka sebaiknya kita berpindah ke jendela program dengan menekan 2 kali pada button yang ada pada desaign tampilan aplikasi yang telah dibuat sebelumnya. Sebagai contohnya, akan dibuat program yang mana program tersebut akan dijalankan saat button btn0 ditekan. Maka kita hanya perlu menekan 2x pada btn0 kemudian secara otomatis jendela tampilan pada netbeans akan berubah menjadi jendela source, yang akan langsung tertuju pada fungsi yang akan dijalankan jika btn0 ditekan. Setelah itu, tambahkan program seperti dibawah ini :


private void btn0ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        if(txtHasil.getText().isEmpty() || nolLagi==true)
        {
            txtHasil.setText("0");
            nolLagi=false;
        }
        else{
            mulaiBaru=false;
            txtHasil.setText(txtHasil.getText() + "0");           
        }
    }
    else txtHasil.setText(txtHasil.getText() + "0");
}


Program diatas digunakan untuk mencetak/menampilkan angka 0 pada textField txtHasil. Program tersebut menggunakan pencabangan if-else, yang mana if-else tersebut digunakan untuk pengkondisian pencetakan angka 0 pada tampilan aplikasi.
Penambahan program pada button lainnya memiliki cara yang sama dengan penambahan program untuk btn0.
Sebelum menambahkan program untuk button yang lainnya, tambahkan dahulu beberapa variabel global dibawah ini :

    //variabel global
    boolean koma, mulaiBaru, nolLagi;
    double nilai1, nilai2, hasil;
    int proses, hasilInt;
   
    DecimalFormat formatData = new DecimalFormat("#.#####");

Setelah itu tambahkan juga beberapa inisialisasi terhadap beberapa variabel didalam fungsi kalkulator (yang mana didalam fungsi tersebut terdapat program inisialisasi komponen GUI/ initComponents()).
  
 public kalkulator() {
        initComponents();
        mulaiBaru=true;
        koma=false;
        nolLagi=true;
        nilai1=0;
        nilai2=0;
        hasil=0;
    }

Berikut ini merupakan program/coding untuk semua buttonnya.

private void btn0ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        if(txtHasil.getText().isEmpty() || nolLagi==true)
        {
            txtHasil.setText("0");
            nolLagi=false;
        }
        else{
            mulaiBaru=false;
            txtHasil.setText(txtHasil.getText() + "0");            
        }
    }
    else txtHasil.setText(txtHasil.getText() + "0");
}                                   

private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("1");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "1");
}                                   

private void btn2ActionPerformed(java.awt.event.ActionEvent evt) {                                     
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("2");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "2");
}                                   

private void btn3ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("3");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "3");
}                                    

private void btn4ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("4");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "4");
}                                   

private void btn5ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("5");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "5");
}                                   

private void btn6ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("6");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "6");
}                                   

private void btn7ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("7");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "7");
}                                   

private void btn8ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("8");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "8");
}                                   

private void btn9ActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("9");
        mulaiBaru=false;
    }
    else txtHasil.setText(txtHasil.getText() + "9");
}                                   

private void btnKomaActionPerformed(java.awt.event.ActionEvent evt) {                                        
// TODO add your handling code here:
    if(mulaiBaru){
        txtHasil.setText("0.");
        koma=true;    
        mulaiBaru=false;
    }
    else{
        if(!koma){
            if(txtHasil.getText().isEmpty())txtHasil.setText("0.");
            else txtHasil.setText(txtHasil.getText() + ".");
            koma=true;
        }
    }
}                                      

private void btnBagiActionPerformed(java.awt.event.ActionEvent evt) {                                       
// TODO add your handling code here:
    nilai1 = Double.valueOf(txtHasil.getText());
    txtProses.setText(txtHasil.getText() + " / ");
    mulaiBaru=true;
    proses=1;
}                                      

private void btnKaliActionPerformed(java.awt.event.ActionEvent evt) {                                       
// TODO add your handling code here:
    nilai1 = Double.valueOf(txtHasil.getText());
    txtProses.setText(txtHasil.getText() + " * ");
    mulaiBaru=true;
    proses=2;
}                                       

private void btnKurangActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
    nilai1 = Double.valueOf(txtHasil.getText());
    txtProses.setText(txtHasil.getText() + " - ");
    mulaiBaru=true;
    proses=3;
}                                        

private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
    nilai1 = Double.valueOf(txtHasil.getText());
   
    txtProses.setText(txtHasil.getText() + " + ");
    mulaiBaru=true;
    proses=4;   
}                                        

private void btnSamaDenganActionPerformed(java.awt.event.ActionEvent evt) {                                             
// TODO add your handling code here:
    nilai2 = Double.valueOf(txtHasil.getText());
    switch(proses){
        case 1 :
            hasil = nilai1 / nilai2;
            break;
        case 2 :
            hasil = nilai1 * nilai2;
            break;
        case 3 :
            hasil = nilai1 - nilai2;
            break;
        case 4 :
            hasil = nilai1 + nilai2;
            break;
        default :
            break;
    }
   
    if(hasil%1==0){
        hasilInt = (int)Math.round(hasil);
        txtHasil.setText(Integer.toString(hasilInt));
    }
    else{
        hasil = Double.valueOf(formatData.format(hasil));
        txtHasil.setText(Double.toString(hasil));
    }
    txtProses.setText("");
   
    //inisialisasi variabel
    mulaiBaru=true;
    koma=false;
    nolLagi=true;
    proses=0;
    nilai1=0;
    nilai2=0;
    hasil=0;
}                                            

private void btnCActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    txtProses.setText("");
    txtHasil.setText("");
    //inisialisasi variabel
    mulaiBaru=true;
    koma=false;
    nolLagi=true;
    proses=0;
    nilai1=0;
    nilai2=0;
    hasil=0;
}  

0 komentar:

Posting Komentar