program java kalkulator sederhana

Posted by mahfuz On Senin, 07 November 2011 0 komentar
import java.util.Scanner;
// Header yang berfungsi untuk memanggil package pada class Mahfuzs


import static java.lang.System.out;
// Header yang berfungsi untuk memanggil package pada class MahfuzsTest




class Mahfuzs// Nama utama class
{
// static berfungsi sebagai method yang tidak perlu instantiate
     static Scanner s = new Scanner(System.in);// Menampilkan data inputan
     static String angka1, angka2, karakter;// Inputan data
     static char fungsi,operator;// Inputan Operator berupa karakter
     static double hasil, nilai1, nilai2;// Inputan data berupa nilai String
   


// Menampilkan nilai String yang akan dioperasi
    static String getValue1()
    {
        angka1 = s.nextLine();
        return angka1;
    }
    static String getValue2()
    {
        angka2 = s.nextLine();
        return angka2;
    }


// Menampilkan function berupa karakter sebagai operator untuk nilai String
    static char getFunc()
    {
        karakter = s.nextLine();
        fungsi = karakter.charAt(0);
        return fungsi;
    }
    
// Menampilkan operator berupa karakter sebagai operator untuk nilai String
    static char getOperator()
    {
        karakter = s.nextLine();
        operator = karakter.charAt(0);
        return operator;
    }
    
// Operasi pengurangan dengan dua data inputan berupa string
    static double getKurang(double nilai1, double nilai2)
    {
        hasil = nilai1 - nilai2;
        return hasil; 
    }
    
// Operasi penjumlahan dengan dua data inputan berupa string
    static double getTambah(double nilai1, double nilai2)
    {
        hasil = nilai1 + nilai2;
        return hasil;
    }
    
// Operasi perkalian dengan dua data inputan berupa string
    static double getKali(double nilai1, double nilai2)
    {
        hasil = nilai1 * nilai2;
        return hasil;
    }
    
// Operasi pembagian dengan dua data inputan berupa string
    static double getBagi(double nilai1, double nilai2) throws ArithmeticException
    {
        if(nilai2 == 0)
        {
            throw new ArithmeticException();
        }
        else
        {
            hasil = nilai1 / nilai2;
        }
        return hasil;
    }


  } 
  


// Pewarisan class Mahfuzs terhadap class MahfuzsTest
public class MahfuzsTest extends Mahfuzs
{
// static berfungsi sebagai method yang tidak perlu instantiate
    static char n, operator;
    public static void main(String[]args)
    {
    
// Penerapan exception pada method sebagai pengecek kesalahan
        /* Digunakan dalam suatu block program. keyword ini digunakan untuk 
           mencoba menjalankan block program kemudian mengenai dimana munculnya 
           kesalahan yang ingin diproses. 
        */
        try{
        
        System.out.println("");
        System.out.println(" =========================================");
        System.out.println(" |    KALKULATOR EXCEPTION JAVA (PBO)    |");
        System.out.println(" |              (NORMALLY)               |");
        System.out.println(" =========================================");
        System.out.println("");
        System.out.println(" ==========================");
        System.out.println(" |   CREATED BY MAHFUZ    |");
        System.out.println(" --------------------------");
        System.out.println(" |100533405403 - PTI '10 B|");
        System.out.println(" ==========================");
        System.out.println("");
        System.out.println(" ============================");
        System.out.println(" |          M E N U         |");
        System.out.println(" ============================");
       
       
         // Method yang berfungsi sebagai pemisah angka atau bilangan
   /* Tanda koma sebagai pemisah untuk tiap 3 angka didepannya maupun
     dibelakangnya */
   // Tanda titik sebagai pemisah untuk 2 angka dibelakangnya
        System.out.print(" |ANGKA PERTAMA            :| ");
        nilai1 = Double.parseDouble(Mahfuzs.getValue1().replaceFirst(",","."));
        System.out.println(" ============================");
        
        System.out.print(" |ANGKA KEDUA              :| ");
        nilai2 = Double.parseDouble(Mahfuzs.getValue2().replaceFirst(",","."));
        
        System.out.println(" ============================");
        System.out.print(" |OPERATOR:(+),(-),(/),(*) :| ");
  // Pengondisian untuk operator penjumlahan
        operator = Mahfuzs.getOperator();
        if( operator == '+')
        {
            hasil = Mahfuzs.getTambah(nilai1, nilai2);
        
        }
        
        // Pengondisian untuk operator pengurangan
        else if(operator == '-')
                {
                    hasil = Mahfuzs.getKurang(nilai1, nilai2);
                }
                
                // Pengondisian untuk operator pembagian
                else if(operator == '/')
                        {
                            hasil = Mahfuzs.getBagi(nilai1, nilai2);
                        }
                        
                        // Pengondisian untuk operator perkalian
                        else if(operator == '*')
                                {
                                    hasil = Mahfuzs.getKali(nilai1, nilai2);
                                }
        System.out.println(" ============================");
        System.out.print(" |FUNGSI:(=)               :| ");
        
        // Pengondisian untuk fungsi sebagai penetapan hasil perhitungan operator
        n = Mahfuzs.getFunc();
        if(n == '=')
        {
         System.out.println(" ============================");
            System.out.println(String.format(" |HASILNYA ADALAH          :| %,.2f", hasil));
            System.out.println("");
        }
        else
        {
         // Pelemparan bug atau kesalahan yang dibuat secara manual
            throw new Exception();
        }
        }
        
        // Membaca kesalahan pada alur program diatas
        catch(ArithmeticException e)// Kesalahan pada pembagian dengan nilai 0
        {
         System.out.println("");
         System.out.println(" ===========================");
            System.out.println(" | ERROR : DIVIDED BY ZERO |");
            System.out.println(" ===========================");
        }
        catch(NumberFormatException e)// Kesalahan pada inputan angka
        {
         System.out.println("");
         System.out.println(" ================================================");
            System.out.println(" | ERROR : MAAF, YANG ANDA MASUKAN BUKAN ANGKA! |");
            System.out.println(" ================================================");
        }
        catch(Exception ec)// Kesalahan pada penulisan fungsi
        {
         System.out.println("");
         System.out.println(" ======================================");
            System.out.println(" | ERROR : KESALAHAN PENULISAN FUNGSI |");
            System.out.println(" ======================================");
        }
    }
}




// KETERANGAN : PROGRAM DIATAS TIDAK MENGGUNAKAN PENGULANGAN

0 komentar:

Posting Komentar