Laman

Minggu, 13 Februari 2011

Program Calculator Sederhana


Aku buat program ini karna ngga ada kerjaan di kosan.
karna mumpung ada  waktu luwang jadi coba coba buat.

buat agan-agan sekalian tolong di lihat kalo ada yang salah atau ada cara yang lebih singkat.
di share yah ke aku.. soalnya baru dalam tahap belajar bahasa java..
mohon bantuannya....


berikut ini programnya...



<<<<<<<<<<++++++++++++>>>>>>>>>>

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import static java.lang.Math.*;

public class calculator extends JFrame implements ActionListener{

    final String SATU = "1";         final String DUA = "2";
    final String TIGA = "3";         final String EMPAT = "4";
    final String LIMA = "5";         final String ENAM = "6";
    final String TUJUH = "7";        final String DELAPAN = "8";
    final String SEMBILAN = "9";     final String NOL = "0";
    final String TAMBAH = "+";       final String KURANG = "-";
    final String KALI = "*";         final String BAGI = "/";
    final String SAMA = "=";         final String KOMA = ",";
    final String C = "C";            final String CE = "CE";
    final String AKAR = "^";         final String M = "-M";
   
    private double var1 = 0;
    private double var2 = 0;
    private double desimal = 1;
    private boolean cek_koma = false;
    private JLabel label = new JLabel("blackant999");
    public String operasi = null;
   
    public void naik(double n){
        if(cek_koma == true){
            desimal=desimal*10;
            var2=var2+(n/desimal);
        }else{
            var2=(var2*10)+n;
        }
        label.setText(""+var2);
    }
   
    public void actionPerformed(ActionEvent e){
        String cek = e.getActionCommand();
        if(SATU.equals(cek)){
            naik(1);       
        }else
        if(DUA.equals(cek)){
            naik(2);
        }else
        if(TIGA.equals(cek)){
            naik(3);
        }else
        if(EMPAT.equals(cek)){
            naik(4);
        }else
        if(LIMA.equals(cek)){
            naik(5);
        }else
        if(ENAM.equals(cek)){
            naik(6);
        }else
        if(TUJUH.equals(cek)){
            naik(7);
        }else
        if(DELAPAN.equals(cek)){
            naik(8);
        }else
        if(SEMBILAN.equals(cek)){
            naik(9);
        }else
        if(NOL.equals(cek)){
            naik(0);
        }else
        if(AKAR.equals(cek)){
            if(var2 == 0 && var1 != 0 && operasi == null){
                var1=sqrt(var1);
                label.setText(""+var1);
            }else{
                var2=sqrt(var2);
                label.setText(""+var2);
            }
        }else
        if(TAMBAH.equals(cek)){
            operator(operasi);
            operasi = "+";
        }else
        if(KURANG.equals(cek)){
            operator(operasi);
            operasi = "-";
        }else
        if(KALI.equals(cek)){
            operator(operasi);
            operasi = "*";
        }else
        if(BAGI.equals(cek)){
            operator(operasi);
            operasi = "/";
        }else
        if(KOMA.equals(cek)){
            cek_koma = true;
        }else
        if(M.equals(cek)){
            if(operasi == null){
                var1=var1*-1;
                label.setText(""+var1);
            }else{
                var2=var2*-1;
                label.setText(""+var2);
            }
        }else
        if(CE.equals(cek)){
            var2=0;
            cek_koma = false;
            desimal = 1;
            label.setText("0");
        }else
        if(C.equals(cek)){
            var2=0;
            operasi=null;
            var1=0;
            cek_koma = false;
            desimal = 1;
            label.setText("0");
        }else
        if(SAMA.equals(cek)){
            if(operasi == "+"){
                var1=var1+var2;
            }else
            if(operasi == "-"){
                var1=var1-var2;
            }else
            if(operasi == "*"){
                var1=var1*var2;
            }else
            if(operasi == "/"){
                var1=var1/var2;
            }
            tampil_sama();
        }
    }
   
    public void tampil_sama(){
        var2=0;
        cek_koma = false;
        desimal = 1;
        operasi=null;
        label.setText(""+var1);
    }
   
    public void operator(String o){
        if(operasi == null && var2==0){   
        }else
        if(var2 == 0){       
        }else
        if(operasi == null){
            var1=var2;
            var2=0;
            cek_koma = false;
            desimal = 1;
        }else{
            if(o =="+"){
                var1=var1+var2;
            }
            else if(o =="-"){
                var1=var1-var2;
            }
            else if(o =="*"){
                var1=var1*var2;
            }
            else if(o =="/"){
                var1=var1/var2;
            }
            var2=0;
            cek_koma = false;
            desimal = 1;
        }
        label.setText(""+var1);
    }
   
    public JButton makeButton(String name_action){
        JButton btn = new JButton(name_action);
        btn.setActionCommand(name_action);
        btn.addActionListener(this);
        return btn;
    }
   
    public void aturLabel(){
        JPanel panel = new JPanel();
        this.add(panel, BorderLayout.NORTH);
        panel.setLayout(new FlowLayout(FlowLayout.LEFT));
        label.setPreferredSize(new Dimension (240,30));
        panel.add(label);
    }
   
    public void aturTombol(){
        JPanel tombol = new JPanel();
        this.add(tombol, BorderLayout.CENTER);
        tombol.setLayout(new GridLayout(4,4,5,5));
       
        JButton btn = null;
       
        btn = makeButton(M);
        tombol.add(btn);
        btn = makeButton(TUJUH);
        tombol.add(btn);
        btn = makeButton(DELAPAN);
        tombol.add(btn);
        btn = makeButton(SEMBILAN);
        tombol.add(btn);
        btn = makeButton(BAGI);
        tombol.add(btn);
       
        btn = makeButton(AKAR);
        tombol.add(btn);
        btn = makeButton(EMPAT);
        tombol.add(btn);
        btn = makeButton(LIMA);
        tombol.add(btn);
        btn = makeButton(ENAM);
        tombol.add(btn);
        btn = makeButton(KALI);
        tombol.add(btn);
       
        btn = makeButton(CE);
        tombol.add(btn);
        btn = makeButton(SATU);
        tombol.add(btn);
        btn = makeButton(DUA);
        tombol.add(btn);
        btn = makeButton(TIGA);
        tombol.add(btn);
        btn = makeButton(KURANG);
        tombol.add(btn);
       
        btn = makeButton(C);
        tombol.add(btn);
        btn = makeButton(NOL);
        tombol.add(btn);
        btn = makeButton(KOMA);
        tombol.add(btn);
        btn = makeButton(SAMA);
        tombol.add(btn);
        btn = makeButton(TAMBAH);
        tombol.add(btn);
    }
   
    calculator(){
        this.setSize(300,250);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("Calculator");
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        aturLabel();
        aturTombol();
    }
   
    public static void main(String [] args){
        calculator cal = new calculator();
    }
}

<<<<<<<<<<++++++++++>>>>>>>>>>

0 komentar:

Posting Komentar