Program
Kalkulator Sederhana
SOAL
BONUS
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)
Tools yang saya
gunakan kali ini sama dengan sebelumnya, yaitu NetBeans IDE 7.0.1
Ada beberapa tahap untuk
menyelesaikan program tersebut, yaitu:
1. Jangan lupa berdo’a
sebelum mulai membuat program :D
2. Buka program
NetBeans IDE 7.0.1
3. Masih pada project
yang sama dengan sebelumnya, lalu buat pakage dan beri nama pakage tersebut.
Contohnya: soalBonus.
4. Dalam pembuatan
program ini saya hanya membuat 1 class. Dengan
nama class kalkulatorSedrhana.class
Berikut adalah coding yang saya
buat pada 2 class tersebut.
kalkulatorSedrhana.java
/*
* To change
this template, choose Tools | Templates
* and open the
template in the editor.
*/
package
soalBonus;
/**
*
* @author HP
*/
import java.util.Scanner;
public class kalkulatorSederhana {
public static void main(String[]
args) {
Scanner baca = new
Scanner(System.in); // membuat Scanner
objek / Instansiasi untuk menginput dari keyboard
System.out.println("Masukan
3 buah bilangan dilengkapi dengan 2 operator aritmatika (Beri spasi setiap karakter).");
/** Deklarasi variable */
double bilangan1 =
baca.nextDouble();
String operator1 = baca.next();
double bilangan2 = baca.nextDouble();
String operator2 = baca.next();
double bilangan3 =
baca.nextDouble();
// variable
bilangan1,bilangan2,bilangan3 bertipe double agar bila ada hasil desimal,
hasilnya bisa ditampilkan
// variable operator1, operator2 bertipe
String karena isinya berupa operator aritmatika
boolean test =
testTingkat(operator1, operator2);
double hitungAwal = 0; //
deklarasi variable hitungAwal
double hitungAkhir = 0; //
deklarasi variable hitungAkhir
// a. setara = 3 * 4 + 5
// b. tidak setara = 3 + 4 * 5
if(test){
// pemanggilan proses
hitung apabila setara/true
// proses hitung bila
seperti contoh a. Pada contoh ini merupakan proses hitung yang setara
hitungAwal = hitung(new
double[]{bilangan1,bilangan2},operator1);
hitungAkhir = hitung(new
double[]{hitungAwal,bilangan3},operator2);
}
else{
// pemanggilan proses
hitung apabila tidak setara/false
// proses hitung bila
seperti contoh b. Pada contoh ini merupakan proses hitung yang tidak setara
hitungAwal = hitung(new
double[]{bilangan2,bilangan3},operator2);
hitungAkhir = hitung(new
double[]{bilangan1,hitungAwal},operator1);
}
System.out.println(hitungAkhir);
//menampilkan hasil akhir yang ada di dalam variabel hitungAkhir
}
// proses hitung aritmatika
private static double
hitung(double[] bil, String op) {
double result = 0;//deklarasi
variabel result
if (op.equals("+")) {
result = bil[0] +
bil[1];//penyeleksian untuk operator +
} else if
(op.equals("-")) {
result = bil[0] -
bil[1];//penyeleksian untuk operator -
} else if
(op.equals("*")) {
result = bil[0] * bil[1];//penyeleksian untuk
operator *
} else if
(op.equals("/")) {
result = bil[0] /
bil[1];//penyeleksian untuk operator /
}
return result;//meminta nilai
kembali variabel result
}
// false tidak setingkat
// true setingkat
// proses menyusun tingkatkan operator
private static boolean
testTingkat(String op1, String op2){
boolean expression = false; /*
Deklarasi variabel expression, untuk menandakan apakah operator1 lebih tinggi
tingkatannya daripada operator2 atau sebaliknya
* operator * dan operator /
tingkatannya lebih tinggi daripada
* operator + dan operator -
* operator * dan operator / =
setara
* operator + dan operator - =
setara
* apabila operator 1 dan operator
2 sama maka setara
* operator yang lebih tinggi
didahulukan diproses.
*/
if(op1.equals("+") &&
op2.equals("*")){
expression = false;// + lebih
rendah dari *
}else if(op1.equals("+")
&& op2.equals("/")){
expression = false;// + lebih
rendah dari /
}else if(op1.equals("+")
&& op2.equals("+")){
expression = true;// setara
}else if (op1.equals("+")
&& op2.equals("-")) {
expression = true;// setara
}else if(op1.equals("-")
&& op2.equals("*")){
expression = false;// - lebih
rendah dari *
}else if(op1.equals("-")
&& op2.equals("/")){
expression = false;// - lebih
rendah dari /
}else if(op1.equals("-")
&& op2.equals("+")){
expression = true;// setara
}else if(op1.equals("-")
&& op2.equals("-")){
expression = true;// setara
}else if(op1.equals("*")
&& op2.equals("*")){
expression = true;// setara
}else if(op1.equals("*")
&& op2.equals("/")){
expression = true;// setara
}else if(op1.equals("*")
&& op2.equals("+")){
expression = true;// * lebih
tinggi dari +
}else if(op1.equals("*")
&& op2.equals("-")){
expression = true;// * lebih
tinggi dari -
}else if(op1.equals("/")
&& op2.equals("*")){
expression = true;// setara
}else if(op1.equals("/")
&& op2.equals("/")){
expression = true;// setara
}else if (op1.equals("/")
&& op2.equals("+")) {
expression = true;// / lebih
tinggi dari +
}else if(op1.equals("/")
&& op2.equals("-")){
expression = true;// / lebih
rendah dari -
}else{
System.out.println("Error!");
}
return
expression;//menggembalikan nilai
variabel expression
}
}
Tahap selanjutnya running program pada kalkulatorSederhana.java,
dan berikut merupakan hasilnya:
Tahap terakhir pada persoalan ini
adalah megucap syukur atas selesainya tugas tersebut.
Meskipun hasilnya belum sempurna.
- A L H A M D U L I L L A H -
Keritik dan sarannya ditunggu
ya.. semoga bisa bermanfaat..
Terimakasih. J
Untuk download file java bisa KLIK ----> Download file.java
Untuk download file class bisa KLIK ----> Download file.class
Untuk download file class bisa KLIK ----> Download file.class
Tidak ada komentar:
Posting Komentar