Kalkulator Java GUI : MVC Version


Kalkulator dengan metode MVC (Model View Control)

Class Model :

package guiKalkulator_5302413069;
public class model { 
        double tambah1(double nilaia, double nilaib)
        {
                double jumlah = nilaia + nilaib;
                return jumlah;
        }
        double kurang1(double nilaia, double nilaib)
        {
                double jumlah = nilaia - nilaib;
                return jumlah;
        }                
        double bagi1(double nilaia, double nilaib)
        {
                double jumlah = nilaia/nilaib;
                return jumlah;
        }
        double kali1(double nilaia, double nilaib)
        {
                double jumlah = nilaia*nilaib;
                return jumlah;
        }        
       }

Class View :

package guiKalkulator_5302413069;
public class view extends javax.swing.JFrame 
{
String angka_tampil;
double jumlah, nilaia, nilaib;
int pilihan;

public view() 
    {
    initComponents();
    angka_tampil = "";
    }
    @SuppressWarnings("unchecked")
    public void initComponents() {
        jTextField1 = new javax.swing.JTextField();
        satu = new javax.swing.JButton();
        dua = new javax.swing.JButton();
        tiga = new javax.swing.JButton();
        empat = new javax.swing.JButton();
        lima = new javax.swing.JButton();
        enam = new javax.swing.JButton();
        tujuh = new javax.swing.JButton();
        delapan = new javax.swing.JButton();
        sembilan = new javax.swing.JButton();
        nol = new javax.swing.JButton();
        tambah = new javax.swing.JButton();
        kurang = new javax.swing.JButton();
        kali = new javax.swing.JButton();
        bagi = new javax.swing.JButton();
        samadengan = new javax.swing.JButton();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        cos = new javax.swing.JButton();
        sin = new javax.swing.JButton();
        tan = new javax.swing.JButton();
        hapus = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        koma = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();
        jTextField1.setText("jTextField1");
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);
        satu.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        satu.setLabel("1");
        satu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                satuActionPerformed(evt);
            }
        });
        dua.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        dua.setLabel("2");
        dua.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                duaActionPerformed(evt);
            }
        });

        tiga.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        tiga.setLabel("3");
        tiga.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tigaActionPerformed(evt);
            }
        });

        empat.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        empat.setLabel("4");
        empat.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                empatActionPerformed(evt);
            }
        });

        lima.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        lima.setLabel("5");
        lima.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                limaActionPerformed(evt);
            }
        });

        enam.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        enam.setLabel("6");
        enam.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                enamActionPerformed(evt);
            }
        });

        tujuh.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        tujuh.setLabel("7");
        tujuh.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tujuhActionPerformed(evt);
            }
        });

        delapan.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        delapan.setLabel("8");
        delapan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                delapanActionPerformed(evt);
            }
        });

        sembilan.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        sembilan.setLabel("9");
        sembilan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sembilanActionPerformed(evt);
            }
        });

        nol.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        nol.setLabel("0");
        nol.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nolActionPerformed(evt);
            }
        });

        tambah.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        tambah.setLabel("+");
        tambah.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tambahActionPerformed(evt);
            }
        });

        kurang.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        kurang.setLabel("-");
        kurang.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                kurangActionPerformed(evt);
            }
        });

        kali.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        kali.setLabel("x");
        kali.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                kaliActionPerformed(evt);
            }
        });

        bagi.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        bagi.setLabel("/");
        bagi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bagiActionPerformed(evt);
            }
        });

        samadengan.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        samadengan.setLabel("=");
        samadengan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                samadenganActionPerformed(evt);
            }
        });

        jTextField2.setEditable(false);
        jTextField2.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        jTextField2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jTextField2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField2ActionPerformed(evt);
            }
        });

        jTextField3.setEditable(false);
        jTextField3.setFont(new java.awt.Font("Courier New", 0, 14)); // NOI18N
        jTextField3.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

        cos.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        cos.setLabel("cos");
        cos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cosActionPerformed(evt);
            }
        });

        sin.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        sin.setLabel("sin");
        sin.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sinActionPerformed(evt);
            }
        });

        tan.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        tan.setLabel("tan");
        tan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tanActionPerformed(evt);
            }
        });

        hapus.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        hapus.setLabel("Delete");
        hapus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                hapusActionPerformed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Monotype Corsiva", 1, 24)); // NOI18N
        jLabel1.setText("Kalkulator 5302413069 ");

        koma.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        koma.setLabel(".");
        koma.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                komaActionPerformed(evt);
            }
        });

        jButton1.setFont(new java.awt.Font("Courier New", 1, 36)); // NOI18N
        jButton1.setLabel("-/+");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(76, 76, 76)
                .addComponent(jLabel1)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jTextField3)
                    .addComponent(jTextField2)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(empat)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(lima)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(enam))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(satu)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(dua)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(tiga))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(tujuh)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(delapan)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(sembilan))
                            .addComponent(nol, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(kurang)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(cos))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(kali)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(tan))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(bagi)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(koma, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(tambah)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(sin))))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(hapus, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(samadengan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addGap(23, 23, 23))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(satu)
                    .addComponent(dua)
                    .addComponent(tiga)
                    .addComponent(tambah)
                    .addComponent(sin))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(empat)
                    .addComponent(lima)
                    .addComponent(enam)
                    .addComponent(kurang)
                    .addComponent(cos))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(tujuh)
                    .addComponent(delapan)
                    .addComponent(sembilan)
                    .addComponent(kali)
                    .addComponent(tan))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(nol)
                    .addComponent(bagi)
                    .addComponent(koma))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(hapus)
                    .addComponent(samadengan))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addContainerGap(12, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void satuActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka_tampil += "1";
        jTextField2.setText(angka_tampil);
    }                                    

    private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
    }                                           
double hitungan;

    private void samadenganActionPerformed(java.awt.event.ActionEvent evt) {                                           

                control aksi = new control();
                if (pilihan<=4)
                {
                    hitungan = aksi.hitungan(nilaia, angka_tampil, pilihan);
                    String hasil = Double.toString(hitungan);
                    jTextField2.setText(hasil);
                    String tampil=Double.toString(nilaia)+" "+aksi.tanda+" "+angka_tampil+" = "+hasil;  
                    jTextField3.setText(tampil); 
                }
                else
                {
                    String hasil= Double.toString(hitungan);
                    jTextField2.setText(hasil);
                    String tampil=aksi.tanda+" "+Double.toString(nilaia)+" = "+hasil;  
                    jTextField3.setText(tampil); 
                }
    }                                          

    private void duaActionPerformed(java.awt.event.ActionEvent evt) {                                    
        angka_tampil += "2";
        jTextField2.setText(angka_tampil);
    }                                   

    private void tigaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka_tampil += "3";
        jTextField2.setText(angka_tampil);
    }                                    

    private void empatActionPerformed(java.awt.event.ActionEvent evt) {                                      
        angka_tampil += "4";
        jTextField2.setText(angka_tampil);
    }                                     

    private void limaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka_tampil += "5";
        jTextField2.setText(angka_tampil);
    }                                    

    private void enamActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka_tampil += "6";
        jTextField2.setText(angka_tampil);
    }                                    

    private void tujuhActionPerformed(java.awt.event.ActionEvent evt) {                                      
        angka_tampil += "7";
        jTextField2.setText(angka_tampil);
    }                                     

    private void delapanActionPerformed(java.awt.event.ActionEvent evt) {                                        
        angka_tampil += "8";
        jTextField2.setText(angka_tampil);
    }                                       

    private void sembilanActionPerformed(java.awt.event.ActionEvent evt) {                                         
        angka_tampil += "9";
        jTextField2.setText(angka_tampil);
    }                                        

    private void nolActionPerformed(java.awt.event.ActionEvent evt) {                                    
        angka_tampil += "0";
        jTextField2.setText(angka_tampil);
    }                                   

    private void tambahActionPerformed(java.awt.event.ActionEvent evt) { 
        
        if (hitungan==0.0)
        {
        nilaia=Double.parseDouble(angka_tampil);
        angka_tampil="";
        jTextField2.setText("+");
        pilihan=1;
        }
        else {
        nilaia=hitungan;
        angka_tampil="";
        jTextField2.setText("+");
        pilihan=1;
        }
    }                                      

    private void kurangActionPerformed(java.awt.event.ActionEvent evt) {                                       
        
        if (hitungan==0.0)
        {
        nilaia=Double.parseDouble(angka_tampil);
        angka_tampil="";
        jTextField2.setText("-");
        pilihan=2;
        }
        else {
        nilaia=hitungan;
        angka_tampil="";
        jTextField2.setText("-");
        pilihan=2;
        }
    }                                      
                                   

    private void bagiActionPerformed(java.awt.event.ActionEvent evt) {                                     
        
        if (hitungan==0.0)
        {
        nilaia=Double.parseDouble(angka_tampil);
        angka_tampil="";
        jTextField2.setText("/");
        pilihan=3;
        }
        else {
        nilaia=hitungan;
        angka_tampil="";
        jTextField2.setText("/");
        pilihan=3;
        }
    }                                    
    
    private void kaliActionPerformed(java.awt.event.ActionEvent evt) {                                     
        
        if (hitungan==0.0)
        {
        nilaia=Double.parseDouble(angka_tampil);
        angka_tampil="";
        jTextField2.setText("*");
        pilihan=4;
        }
        else {
        nilaia=hitungan;
        angka_tampil="";
        jTextField2.setText("*");
        pilihan=4;
        }
    }

    private void hapusActionPerformed(java.awt.event.ActionEvent evt) {                                      
        jTextField2.setText("");
        jTextField3.setText("");
        nilaia=0.0;
        nilaib=0.0;
        jumlah=0.0;
        angka_tampil="";
        hitungan=0.0;
        
    }                                     

    private void komaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka_tampil+=".";
        jTextField2.setText(angka_tampil);
    }                                    

    private void sinActionPerformed(java.awt.event.ActionEvent evt) {                                    
         nilaia=Double.parseDouble(angka_tampil);
        jTextField2.setText("sin " + angka_tampil);
        angka_tampil="";
        pilihan=5;
    }                                   

    private void cosActionPerformed(java.awt.event.ActionEvent evt) {                                    
        nilaia=Double.parseDouble(angka_tampil);
        jTextField2.setText("Cos " + angka_tampil);
        angka_tampil="";
        pilihan=6;
    }                                   

    private void tanActionPerformed(java.awt.event.ActionEvent evt) {                                    
        nilaia=Double.parseDouble(angka_tampil);
        jTextField2.setText("Tan " + angka_tampil);
        angka_tampil="";
        pilihan=7;
    }                                   

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
    {                                         
        nilaia= -nilaia;
        //nilaib=(-nilaib);
        jTextField2.setText("-"+angka_tampil);
    }                                        

                   
    private javax.swing.JButton bagi;
    private javax.swing.JButton cos;
    private javax.swing.JButton delapan;
    private javax.swing.JButton dua;
    private javax.swing.JButton empat;
    private javax.swing.JButton enam;
    private javax.swing.JButton hapus;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JTextField jTextField1;
    public javax.swing.JTextField jTextField2;
    public javax.swing.JTextField jTextField3;
    private javax.swing.JButton kali;
    private javax.swing.JButton koma;
    private javax.swing.JButton kurang;
    private javax.swing.JButton lima;
    private javax.swing.JButton nol;
    private javax.swing.JButton samadengan;
    private javax.swing.JButton satu;
    private javax.swing.JButton sembilan;
    private javax.swing.JButton sin;
    private javax.swing.JButton tambah;
    private javax.swing.JButton tan;
    private javax.swing.JButton tiga;
    private javax.swing.JButton tujuh;

}

Class Control :

package guiKalkulator_5302413069;
public class control {
    private int number;
private String result;
int pilihan = 0;
public control() {
}
int toInt(String input) {
number = Integer.parseInt(input);
return number;
}
        String toString(double input) {
result = Double.toString(input);
return result;
}      
        public double translate(String a)
        {
        double hasil= Double.parseDouble(a);
        return hasil;     
        }
        
             double jumlah;
             String tanda;
        
        public double hitungan(double a, String b, int pilih){
        model baru = new model();
        double nilaib=translate(b);
        view anyar = new view();
   
        switch(pilih){
            case 1:
                jumlah = baru.tambah1(a, nilaib);
                tanda = "+";
                break;
            case 2:
                jumlah = baru.kurang1(a, nilaib);
                tanda = "-";
                break;
            case 3:
                jumlah = baru.bagi1(a, nilaib);
                tanda = ":";
                break;
            case 4:
                jumlah = baru.kali1(a, nilaib);
                tanda = "*";
                break;

                default:
                break;
        return jumlah;    
  }
        
        public double trigonometri(double a,int pilih){
                switch(pilih)
                {
            case 5:
                jumlah = Math.sin(Math.toRadians(a));
                tanda="sin";
                break;
            case 6:
                jumlah = Math.cos(Math.toRadians(a));
                tanda="cos";
                break;
            case 7:
                jumlah = Math.tan(Math.toRadians(a));
                tanda="tan";
                break;
        default:
                break;
                }
                 return jumlah; 
        
        }
}



Jangan lupa Main classnya :


package guiKalkulator_5302413069;
public class Main {
        public static void main(String args[]) 
        {
      view kalkulatorGUI = new view();
kalkulatorGUI.setVisible(true);
        }
}

Saat Di Run :







Share this

Related Posts

First
Comments


EmoticonEmoticon