Sunday 2 September 2012

Membuat Kalkulator Sederhana

Kali ini kita akan membuat sebuah kalkulator sederhana, tetapi belum berbasis GUI (Graphic User Interface).


Masalah :
Berikut masalah yang harus kita selesaikan
Buatlah sebuah program dengan menggunakan bahasa java dengan  algoritma dan ketentuan berikut ini

Program Kalkulator Sederhana
Tools yang digunakan : Teks Editor (Notepad, Wordpad, Notepad++, Komodo, etc)




Penyelesaian :
Membuat class bernama kalkulator_simple.java

package kalkulator_console;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 *
 * @author nadin
 */
public class kalkulator_simple {
    public static void main(String[] args) {
        BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
        //mendeklarasikan sebuah variabel bernama dataIn dengan tipe class BufferedReader

        String in = ""; //in akan menjadi variabel inputan dari keyboard
        
        try{
            System.out.println("Masukkan ekspresi : ");
            in = dataIn.readLine(); //menjalankan perintah dataIn.readLine() untuk mengambil inout dari user dan memasukkannya pada variabel bernama in
                                      
            }catch(IOException e){
                System.out.print("gagal membaca keyboard!");
            }

        String all[] = in.split(" "); //untuk memisahkan String in berdasarkan spasi
        String var[] = new String[3]; //membatasi jumlah angka yang akan dihitung, hanya 3
        String op[] = new String[2]; //membatasi jumlah operator, hanya boleh 2
       
        double vardou[] = new double[3]; // dari string ke double
        int idxvar = 0; //hasil jumlah angka
        int idxop = 0 ; //hasil jumlah op

        for(int i =0;i<all.length;i++) //looping sebanyak index char dari hasil castingnya dari String
        {
            if((all[i].equals("+")) || (all[i].equals("-")) || (all[i].equals("*")) || (all[i].equals("/")))
                //menyeleksi mana yang termasuk ke dalam operator
        {
            op[idxop] = all[i];
            idxop++;
        }
            else //yang tidak termasuk operator, char tersebut masuk dalam var
        {
            var[idxvar] = all[i];
            idxvar++;
        }
        }
            double hasil = 0; //mendeklarasikan variable hasil type data double dan menginisialisasinya dengan 0

       
        for(int k=0;k<var.length;k++) //looping sebanyak jumlah var (jumlah var telah diseleksi pada looping sebelumnya)
        {
            vardou[k] = Double.parseDouble(var[k]); //untuk mengubah variabel var dari String menjadi double
        }

        hasil = vardou[0]; //mengganti nilai variabel hasil jadi nilai variabel vardou index 0

        int idxvardou = 1; //inisialisasi idxvardou
       
        for(int l =0 ; l < op.length;l++) //looping sebanyak jumlah op
        {
            if(op[l].equals("+")) //membandingkan array char op dengan operator +
            {
            hasil = hasil + vardou[idxvardou]; //mengganti nilai hasil menjadi hasil ditambah dengan vardou pada idxvardou
            }
                else if (op[l].equals("-"))
                {
                hasil = hasil - vardou[idxvardou];
                }
                    else if (op[l].equals("*"))
                    {
                    hasil = hasil * vardou[idxvardou];    
                    }
                        else if (op[l].equals("/"))
                        {
                        hasil = hasil / vardou[idxvardou];    
                        }
            idxvardou++; //menambahkan indexvardou (indexnya) karena akan masuk ke looping kembali.
        }
       
        System.out.println("\nOutput");
        System.out.println(hasil);

    }
}



Saat dirunning, hasilnya seperti ini

Output Program


Download file .class
Download file .jar




0 comments:

Post a Comment