Kalkulator Sederhana Dengan Java
Pertama kali saya belajar java , saya mencoba untuk membuat
aplikasi kalkulator sederhana. Untuk membuatnya, saya harus memahamai
alur kerja atau algoritma kalkulator. Tujuannya adalah agar kemampuan
algoritma saya semakin terasah dan termotivasi agar terus latihan
belajar bahasa pemrograman.
Diinternet banyak sekali contoh aplikasi kalkulator dengan java, misalnya di planet source code. Tinggal ketik keyword “calculator”, kemudian find, maka akan muncul beberapa contoh aplikasi kalkulator. Satu sama lain menggunakan algoritma yang berbeda, walaupun tujuannya sama.
Berikut adalah contoh kalkulator sederhana dengan java. Pada kalkulator sederhana ini saya sengaja pisahkan antara class model(proses) dan calss view(tampilan).Tujuannya agar bisa menambah pemahaman konsep Object oriented. Seluruh proses seperti pertambahan, pengurangan, perkalian, dan pembagian diletakan pada class model. Pada class view dibuat object dari class model untuk menjalankan fungsi kalkulator.
Tools yang dibutuhkan adalah:
Java JDK, saya menggunakan JDK versi 1.6
Netbeans, saya menggunakan netbeans 6.9
Berikut adalah class model kalkulator.
Diinternet banyak sekali contoh aplikasi kalkulator dengan java, misalnya di planet source code. Tinggal ketik keyword “calculator”, kemudian find, maka akan muncul beberapa contoh aplikasi kalkulator. Satu sama lain menggunakan algoritma yang berbeda, walaupun tujuannya sama.
Berikut adalah contoh kalkulator sederhana dengan java. Pada kalkulator sederhana ini saya sengaja pisahkan antara class model(proses) dan calss view(tampilan).Tujuannya agar bisa menambah pemahaman konsep Object oriented. Seluruh proses seperti pertambahan, pengurangan, perkalian, dan pembagian diletakan pada class model. Pada class view dibuat object dari class model untuk menjalankan fungsi kalkulator.
Tools yang dibutuhkan adalah:
Java JDK, saya menggunakan JDK versi 1.6
Netbeans, saya menggunakan netbeans 6.9
Berikut adalah class model kalkulator.
public class CalculatorModel { int operator=0; double operand1=0; double operand2=0; double result=0; public void setOperand(String opr) { if(!opr.equals("")){ if(operator==0){ operand1=Double.valueOf(opr); }else{ operand2=Double.valueOf(opr); } } } public void setOperator(int operator) { this.operator = operator; } public double getResult() { return result; } public void setResult(double hasil) { this.result = hasil; } public void process(){ switch (operator){ case 1: result = operand1 + operand2; break; case 2: result = operand1 - operand2; break; case 3: result = operand1 * operand2; break; case 4: result = operand1 / operand2; break; case 5: result = operand1 % operand2; break; case 6: result = 1/operand1; break; default: result = operand1; } operand1=result; } public void setOperand1(double operand1) { this.operand1 = operand1; } public void setOperand2(double operand2) { this.operand2 = operand2; } public void clear(){ setOperand1(0); setOperand2(0); setResult(0); setOperator(0); } }
dan berikut adalah class view kalkulator. Disini hanya saya tampilkan source yang saya buat. Source yang digenerate oleh netbeans tidak saya cantumkan.
package view; import java.text.DecimalFormat; import javax.swing.JOptionPane; import model.CalculatorModel; public class CalculatorView extends javax.swing.JFrame { /** Creates new form CalculatorView */ public CalculatorView() { initComponents(); } CalculatorModel model = new CalculatorModel(); String operand=""; public void getOperand(javax.swing.JButton button){ operand+=button.getText(); resultLabel.setText(operand); } private void getOperator(int opt){ model.setOperand(operand); model.setOperator(opt); if(opt == 1 || opt == 2){ model.process(); resultLabel.setText(model.getResult()+""); }else{ resultLabel.setText(operand); } operand = ""; } private void process(){ DecimalFormat df = new DecimalFormat("#,###.########"); model.setOperand(operand); model.process(); operand = ""; resultLabel.setText(df.format(model.getResult())+""); } private void button1ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button1); } private void button2ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button2); } private void button3ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button3); } private void button4ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button4); } private void button5ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button5); } private void button6ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button6); } private void button7ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button7); } private void button8ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button8); } private void button9ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button9); } private void buttonTambahActionPerformed(java.awt.event.ActionEvent evt) { getOperator(1); } private void buttonKurangActionPerformed(java.awt.event.ActionEvent evt) { getOperator(2); } private void buttonKaliActionPerformed(java.awt.event.ActionEvent evt) { getOperator(3); } private void buttonBagiActionPerformed(java.awt.event.ActionEvent evt) { getOperator(4); } private void buttonModulusActionPerformed(java.awt.event.ActionEvent evt) { getOperator(5); } private void buttonSeperActionPerformed(java.awt.event.ActionEvent evt) { getOperator(6); } private void buttonSamaDenganActionPerformed(java.awt.event.ActionEvent evt) { process(); } private void button11ActionPerformed(java.awt.event.ActionEvent evt) { getOperand(button11); } private void buttonKomaActionPerformed(java.awt.event.ActionEvent evt) { getOperand(buttonKoma); } private void button12ActionPerformed(java.awt.event.ActionEvent evt) { if(operand.length()>1){ operand = operand.substring(0, operand.length()-1); model.setOperand(operand); resultLabel.setText(operand); }else{ operand = ""; model.setOperand(operand); resultLabel.setText("0"); } } private void buttonACActionPerformed(java.awt.event.ActionEvent evt) { operand = ""; model.clear(); resultLabel.setText("0"); } private void menuExitActionPerformed(java.awt.event.ActionEvent evt) { if(JOptionPane.showConfirmDialog(rootPane,
"Are you sure you will exit this application?","Exit Application",1)==0){ System.exit(0); } } private void aboutMenuActionPerformed(java.awt.event.ActionEvent evt) { JOptionPane.showMessageDialog(rootPane,
"This is a simple example of a calculator that uses the concept of MVC." + "View and process are placed in separate classes." + "Made by Muhamad Nur"); } }
Dan untuk menjalankannya jangan lupa buat class main
import view.CalculatorView; public class Main { public static void main(String[] args) { new CalculatorView().setVisible(true); } }