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