Membuat Kalkulator Sederhana

Kali ini saya akan meberikan tutorial membuat kalkulator sederhana dan seperti biasa saya menggunakan bahasa pemrograman Java dengan aplikasi Eclipse. Langsung saja berikut ini langkah yang harus anda lakukan untuk dapat membuat kalkulator dengan Java.

1. Buat project baru di Eclipse, jika anda masih bingung bagaiman cara membuat project baru di Eclipse bisa baca post ini terlebih dahulu. Membuat Project Java di Eclipse

2. Setelah project terbuat maka langkah selanjutnya adalah membuat class dengan nama Kalkulator, dan centang bagian public main
Membuat Class Kalkulator
3. Setelah Class terbuat adalah menulis Code pada workspace Eclipse, dan pada code untuk membuat kalkulator ini dibutuhkan JFrame dan beberapa Keywords, anda dapat membaca terlbih dahulu apa itu JFrame dan Keywords Java pada post sebelumnya. (JFrame & Keyword Java)
Menulis Code
Beirikut ini Code Kalkulator Sederhana 

Code :
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Kalkulator extends JFrame {

// deklarasi variabel untuk kalkulator
protected static final Object JButton = null;
private JPanel contentPane;
private JTextField textField;
private Float operasi1;
private Float operasi2;
private String tanda;
private String back;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Kalkulator frame = new Kalkulator();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Kalkulator() {

// sintax untuk pembuatan frame gui
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(50, 50, 300, 300);
contentPane = new JPanel();
contentPane.setBackground(new Color(230, 230, 230));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 13));
setContentPane(contentPane);

//Header
JLabel RidoKalkulator = new JLabel("");
RidoKalkulator.setForeground(Color.white);
RidoKalkulator.setFont(new Font("Calibri Light", Font.BOLD, 28));

// label untuk tulisan hasil
JLabel lblHasil = new JLabel("");
lblHasil.setForeground(Color.white);
lblHasil.setFont(new Font("Calibri Light", Font.BOLD, 13));

// display hasil dan operasi kalkulator
textField = new JTextField();
textField.setBackground(Color.white);
textField.setFont(new Font("Calibri Light", Font.BOLD, 17));
textField.setColumns(10);

// Syntax untuk menampilkan angka (0-9)
JButton satu = new JButton("1");
satu.addMouseListener(new MouseAdapter() {

@Override
// syntax untuk menjalankan aksi,jika button angka di klik maka akan tampil di layer display angka tersebut
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"1");
}
});
satu.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton dua = new JButton("2");
dua.addMouseListener(new MouseAdapter() {

@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"2");
}
});
dua.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton tiga = new JButton("3");
tiga.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"3");
}
});
tiga.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton empat = new JButton("4");
empat.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"4");
}
});
empat.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton lima = new JButton("5");
lima.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"5");
}
});
lima.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton enam = new JButton("6");
enam.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"6");
}
});
enam.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton tujuh = new JButton("7");
tujuh.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"7");
}
});
tujuh.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton delapan = new JButton("8");
delapan.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"8");
}
});
delapan.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton sembilan = new JButton("9");
sembilan.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"9");
}
});
sembilan.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton nol = new JButton("0");
nol.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText(textField.getText()+"0");
}
});
nol.setFont(new Font("Tahoma", Font.BOLD, 11));

// syntax untuk button operasi matematika(+,_,/,* dan =) dan juga tombol backspace dan clean

JButton perkalian = new JButton("x");
perkalian.addMouseListener(new MouseAdapter() {

// syntax untuk menjalankan fungsi dari tombol yaitu operasi matematika pada kalkulator dan kemudian di tampilkan pada display
@Override
public void mouseClicked(MouseEvent arg0) {
operasi1=Float.valueOf(textField.getText());
tanda="*";
textField.setText("");

}
});
perkalian.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton pembagian = new JButton("/");
pembagian.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
operasi1=Float.valueOf(textField.getText());
tanda="/";
textField.setText("");

}
});
pembagian.setFont(new Font("Tahoma", Font.PLAIN, 11));

JButton penjumlahan = new JButton("+");
penjumlahan.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
operasi1=Float.valueOf(textField.getText());
tanda="+";
textField.setText("");
}
});
penjumlahan.setFont(new Font("Tahoma", Font.BOLD, 11));

JButton pengurangan = new JButton("-");
pengurangan.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
operasi1=Float.valueOf(textField.getText());
tanda="-";
textField.setText("");

}
});
pengurangan.setFont(new Font("Tahoma", Font.BOLD, 11));

// syntax sama dengan
JButton samadengan = new JButton("=");
samadengan.addMouseListener(new MouseAdapter() {

@Override
//syntax untuk operasi samadengan dan di tampilkan pada display kalkulator (textfield)
public void mouseClicked(MouseEvent arg0) {
operasi2=Float.valueOf(textField.getText());
if(tanda.equals("*"))
operasi1=operasi1*operasi2;
else if(tanda.equals("/"))
operasi1=operasi1/operasi2;
else if(tanda.equals("+"))
operasi1=operasi1+operasi2;
else if(tanda.equals("-"))
operasi1=operasi1-operasi2;
textField.setText(String.valueOf(operasi1));
}
});

samadengan.setFont(new Font("Tahoma", Font.BOLD, 11));

// syntax untuk backspace, menghapus angka per satu digit
JButton btnBa = new JButton(" Hapus ");
btnBa.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int x;
back=textField.getText();
x=back.length();
back=back.substring(0,x-1);
textField.setText(back);

}
});
btnBa.setFont(new Font("Tahoma", Font.BOLD, 9));

// syntax untuk menghapus angka yang telah di tekan secara keseluruah (clear)
JButton btnC = new JButton("C");
btnC.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
textField.setText("");
}
});
btnC.setFont(new Font("Tahoma", Font.BOLD, 10));

// credit
JLabel lblTmd = new JLabel("");
lblTmd.setForeground(Color.white);
lblTmd.setFont(new Font("Simplified Arabic Fixed", Font.BOLD, 8));

GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addContainerGap()
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addComponent(lblHasil)
.addComponent(textField, GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE)
.addGroup(gl_contentPane.createSequentialGroup()
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup()
.addComponent(satu)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(dua)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(tiga))
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(empat)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lima)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(enam))
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(tujuh)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(delapan)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(sembilan))
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(nol)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnBa)))
.addGap(23)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(2)
.addComponent(perkalian)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(pengurangan, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(gl_contentPane.createSequentialGroup()
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addComponent(penjumlahan)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(2)
.addComponent(pembagian, GroupLayout.PREFERRED_SIZE, 39, GroupLayout.PREFERRED_SIZE))
.addComponent(btnC))
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(samadengan)))
.addContainerGap(100, Short.MAX_VALUE))))
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(114)
.addComponent(RidoKalkulator, GroupLayout.PREFERRED_SIZE, 191, GroupLayout.PREFERRED_SIZE)
.addContainerGap(50, Short.MAX_VALUE))
.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
.addContainerGap(50, Short.MAX_VALUE)
.addComponent(lblTmd)
.addGap(22))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(RidoKalkulator)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblHasil)
.addGap(3)
.addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(23)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(satu)
.addComponent(dua)
.addComponent(tiga)
.addComponent(perkalian)
.addComponent(pengurangan))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)
.addGroup(gl_contentPane.createSequentialGroup()
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(empat)
.addComponent(lima)
.addComponent(enam)
.addComponent(pembagian, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(tujuh)
.addComponent(delapan)
.addComponent(sembilan)
.addComponent(penjumlahan))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(nol)
.addComponent(btnBa)
.addComponent(btnC)))
.addComponent(samadengan, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
.addComponent(lblTmd))
);
contentPane.setLayout(gl_contentPane);
}
}
Anda juga dapat download Code nya disini.
4.Setelah Code tertulis maka langkah terakhir adalah compile program dengan cara menakan tombol play hijau di menu atau tekan Ctrl+F11.
Ouput Program
Apabila ada kesalahan dalam penyampaian tutorial saya mohon maaf karena saya juga dalam proses belajar, Terimakasih :)

Post a Comment

Previous Post Next Post