Saturday, October 22, 2011

Membuat Kalkulator Sederhana Menggunakan Java

Assalamu alaikum Wr. Wb.
Sebelumnya saya sudah pernah share Membuat Kalkulator Sederhana Menggunakan Visual Basic. Nah kebetulan banyak juga sobat yang minta versi Java-nya, maka pada kesempatan kali ini saya sempatkan share cara Membuat Kalkulator Sederhana Menggunakan Java. Sobat pasti sudah tahukan Bahasa Pemrograman Java ??? Kalau belum tahu, silahkan sobat search di Google, banyak kok pengertian dan Tutorial belajar Java.
Ok deh sob kita langsung aja belajarnya, sobat gak perlu repot melakukan pengeditan, tinggal meng-copy dan paste listing yang sudah saya siapkan di bawah ini. Sobat bisa menggunakan JCreator Pro yang beberapa hari lalu sudah saya posting di blog ini atau editor Java yang lainnya. Tapi sebaiknya sobat gunakan JCreator Pro, karena saya sudah mencobanya dan 100 % berhasil.

Tampilan Kalkulator :

Buat sobat yang tertarik ingin mencobanya, silahkan Copy Paste (CoPas) listing berikut ini :

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Kalkulator
extends JFrame
implements ActionListener {

// Deklarasi Variabel GUI
JTextField tampil_angka = new JTextField("0");
JPanel panalAngka = new JPanel();
JButton tombol_1 = new JButton("1");
JButton tombol_2 = new JButton("2");
JButton tombol_3 = new JButton("3");
JButton tombol_4 = new JButton("4");
JButton tombol_5 = new JButton("5");
JButton tombol_6 = new JButton("6");
JButton tombol_7 = new JButton("7");
JButton tombol_8 = new JButton("8");
JButton tombol_9 = new JButton("9");
JButton tombol_0 = new JButton("0");
JButton tombol_plusMinus = new JButton("+/-");
JButton tombol_Titik = new JButton(".");
JButton tombol_c = new JButton("C");
JButton tombol_kali = new JButton("*");
JButton tombol_kurang = new JButton("-");
JButton tombol_tambah = new JButton("+");
JButton tombol_bagi = new JButton("/");
JButton tombol_persen = new JButton("%");
JButton tombol_samaDengan = new JButton("=");
JButton tombol_ce = new JButton("CE");

// Deklarasi variabel input bukan angka
String bukan_angka = "";
// Deklarasi variabel tampung tampilan angka pertama
double bil_1 = 0;
// Deklarasi variabel angka baru jika mendapat input bukan angka
boolean angka_baru = false;

public static void main(String[] args) {
Kalkulator frame = new Kalkulator();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(310, 255);
frame.setVisible(true);
frame.setResizable(false);
} // Akhir metode main

public Kalkulator() {
// Tampilan dan Judul
this.getContentPane().setLayout(null);
this.setTitle("Kalkulator ashtho software easy");

// Mengatur Panel
panalAngka.setBackground(Color.red);
panalAngka.setBounds(new Rectangle(0, 0, 343, 225));
panalAngka.setLayout(null);

// Menambahkan Tombol-Tombol pada Panel
panalAngka.add(tombol_0, null);
panalAngka.add(tombol_1, null);
panalAngka.add(tombol_2, null);
panalAngka.add(tombol_3, null);
panalAngka.add(tombol_4, null);
panalAngka.add(tombol_5, null);
panalAngka.add(tombol_6, null);
panalAngka.add(tombol_7, null);
panalAngka.add(tombol_8, null);
panalAngka.add(tombol_9, null);
panalAngka.add(tombol_c, null);
panalAngka.add(tombol_kali, null);
panalAngka.add(tombol_kurang, null);
panalAngka.add(tombol_samaDengan, null);
panalAngka.add(tombol_tambah, null);
panalAngka.add(tombol_bagi, null);
panalAngka.add(tombol_persen, null);
panalAngka.add(tombol_ce, null);
panalAngka.add(tombol_plusMinus, null);
panalAngka.add(tombol_Titik, null);

// Menambah dan mengatur JTextField untuk menampilkan angka-angka
panalAngka.add(tampil_angka, null);
this.getContentPane().add(panalAngka, null);
tampil_angka.setBackground(Color.white);
tampil_angka.setBorder(null);
tampil_angka.setEditable(false);
tampil_angka.setText("0");
tampil_angka.setHorizontalAlignment(SwingConstants.RIGHT);
tampil_angka.setBounds(new Rectangle(7, 10, 290, 27));

/** Mengatur ukuran dan posisi Tombol-Tombol
*
* Baris d = 7 8 9 C CE
* Baris c = 4 5 6 * %
* Baris b = 1 2 3 - /
* Baris a = 0 +/- . + =
*
*/
// Baris a (0, +/-, ., +, =)
tombol_0.setBounds(new Rectangle(6, 183, 50, 33));
tombol_plusMinus.setBounds(new Rectangle(66, 183, 50, 33));
tombol_Titik.setBounds(new Rectangle(126, 183, 50, 33));
tombol_tambah.setBounds(new Rectangle(186, 183, 50, 33));
tombol_samaDengan.setBounds(new Rectangle(246, 183, 50, 33));
// Baris b (1, 2, 3, -, /)
tombol_1.setBounds(new Rectangle(7, 140, 50, 33));
tombol_2.setBounds(new Rectangle(66, 140, 50, 33));
tombol_3.setBounds(new Rectangle(126, 140, 50, 33));
tombol_kurang.setBounds(new Rectangle(186, 140, 50, 33));
tombol_bagi.setBounds(new Rectangle(246, 140, 50, 33));
// Baris c (4, 5, 6, *, %)
tombol_4.setBounds(new Rectangle(7, 97, 50, 33));
tombol_5.setBounds(new Rectangle(66, 97, 50, 33));
tombol_6.setBounds(new Rectangle(126, 97, 50, 33));
tombol_kali.setBounds(new Rectangle(186, 97, 50, 33));
tombol_persen.setBounds(new Rectangle(246, 97, 50, 33));

// Baris d (7, 8, 9, C, CE)
tombol_7.setBounds(new Rectangle(6, 54, 50, 33));
tombol_8.setBounds(new Rectangle(66, 54, 50, 33));
tombol_9.setBounds(new Rectangle(126, 54, 50, 33));
tombol_c.setBounds(new Rectangle(186, 54, 50, 33));
tombol_ce.setBounds(new Rectangle(246, 54, 50, 33));

// Menambahkan ActionListener pada Tombol-Tombol
tombol_0.addActionListener(this);
tombol_1.addActionListener(this);
tombol_2.addActionListener(this);
tombol_3.addActionListener(this);
tombol_4.addActionListener(this);
tombol_5.addActionListener(this);
tombol_6.addActionListener(this);
tombol_7.addActionListener(this);
tombol_8.addActionListener(this);
tombol_9.addActionListener(this);
tombol_plusMinus.addActionListener(this);
tombol_Titik.addActionListener(this);
tombol_c.addActionListener(this);
tombol_ce.addActionListener(this);
tombol_kali.addActionListener(this);
tombol_kurang.addActionListener(this);
tombol_persen.addActionListener(this);
tombol_bagi.addActionListener(this);
tombol_samaDengan.addActionListener(this);
tombol_tambah.addActionListener(this);
} // Akhir methode Kalkulator

/**
* Methode actionPerformed(ActionEvent e)
* Methode untuk memproses event yang diterima dari Tombol
* @param e :
*/
public void actionPerformed(ActionEvent e) {
// Mengambil nama Command dari setiap tombol
String a = e.getActionCommand();

// Jika tombol operator yang ditekan
if ( (a == "=") || (a == "-") || (a == "+") || (a == "*") || (a == "/")) {
// Panggil methode operasi dengan input a
operasi(a);
}

// Tetapi jika tombol titik yang ditekan
else if (a == ".") {
// Panggil Methode koma dengan input a
koma(a);
}

// Tetapi jika tombol persen atau “+/-“ yang ditekan
else if (a == "%" || a == "+/-") {
// Panggil methode persen_negatif dengan input a
persen_negatif(a);
}

// Tetapi jika tombol C atau CE yang ditekan
else if (a == "C" || a == "CE") {
// Panggil methode hapus dengan input a
hapus(a);
}

// Tetapi jika tombol angka yang ditekan
else {
// Panggil methode angka dengan input a
angka(a);
}
} // Akhir methode kalkulator

/**
* Methode : angka
* Keterangan : proses jika input yang didapat adalah Angka
* @param a :
*/
public void angka(String a) {
// Jika angka ditekan setelah tombol operator
if (angka_baru) {
tampil_angka.setText(a);
angka_baru = false;
}
else {
// Jika tombol angka pertama kali ditekan
if (tampil_angka.getText().equals("0")) {
// Hilangkan "0" dan diisi dengan angka yang ditekan
tampil_angka.setText(a);
}
// Tetapi jika bukan yang pertama kali ditekan
else {
// Tambahkan String angka tersebut
a = tampil_angka.getText() + a;
// Isi dengan string yang telah didapat
tampil_angka.setText(a);
}
}
} // Akhir methode angka

/**
* Methode : operasi
* Keterangan : proses jika input yang didapat adalah
* "+" "-" "*" "/" atau "="
* @param a :
*/
public void operasi(String a) {
// Mengambil nilai yang ada pada teks field
String ambil_angka = tampil_angka.getText();
// Jika tombol yang ditekan bukan tombol operator
if (angka_baru && bukan_angka != "=") {
}
// Tetapi jika tombol yang ditekan adalah tombol operator
else {
// Angka yang ditekan akan menjadi angka baru berikutnya
angka_baru = true;
// Jika Penjumlahan
if (bukan_angka == "+") {
bil_1 += Double.parseDouble(ambil_angka);
bukan_angka = a;
}
// Tetapi jika perkalian
else if (bukan_angka == "*") {
bil_1 *= Double.parseDouble(ambil_angka);
bukan_angka = a;
}
// Tetapi jika Pembagian
else if (bukan_angka == "/") {
bil_1 /= Double.parseDouble(ambil_angka);
bukan_angka = a;
}
// Tetapi jika pengurangan
else if (bukan_angka == "-") {
bil_1 -= Double.parseDouble(ambil_angka);
bukan_angka = a;
}
// Tetapi jika tombol "="
else {
bil_1 = Double.parseDouble(ambil_angka);
bukan_angka = a;
}
}
// Merubah hasil dari Double menjadi String
String koma_nol = Double.toString(bil_1);
// Apabila hasil yang didapatkan bilangan bulat
if (koma_nol.endsWith(".0")) {
// Hilangkan dua digit paling akhir (.0)
koma_nol = koma_nol.substring(0, koma_nol.trim().length() - 2);
}
// Tampilkan hasil akhir
tampil_angka.setText(koma_nol);
} // Akhir methode operasi

/**
* Methode : koma
* Keterangan : proses jika input yang didapat adalah
* "."
* @param a :
*/
public void koma(String a) {
String titik = tampil_angka.getText();
if (angka_baru) {
tampil_angka.setText("0.");
angka_baru = false;
}
else {
if (titik.indexOf(".") == -1) {
titik = titik + ".";
}
}
tampil_angka.setText(titik);
} // Akhir methode koma

/**
* Methode : persen_negatif
* Keterangan : proses jika input yang didapat adalah
* "%" atau "+/-"
* @param a :
*/
public void persen_negatif(String a) {
// Jika tombol "%" yang ditekan
if (a == "%") {
bil_1 = (Double.parseDouble(tampil_angka.getText())) / 100;
}
// Jika tombol "+/-" yang ditekan
else {
bil_1 = (Double.parseDouble(tampil_angka.getText())) * -1;
}

// Merubah hasil dari Double menjadi String
String koma_nol = Double.toString(bil_1);
// Apabila hasil yang didapatkan bilangan bulat
if (koma_nol.endsWith(".0")) {
// Hilangkan dua digit paling akhir (.0)
koma_nol = koma_nol.substring(0, koma_nol.trim().length() - 2);
}
// Tampilkan hasil akhir
tampil_angka.setText(koma_nol);
} // Akhir methode persen_negatif

/**
* Methode : hapus
* Keterangan : proses jika input yang didapat adalah
* "C" atau "CE"
* @param a :
*/
public void hapus(String a) {
if (a == "C") {
tampil_angka.setText("0");
bukan_angka = "";
bil_1 = 0;
angka_baru = true;
}
else {
tampil_angka.setText("0");
angka_baru = true;
}

Cukup mudahkan cara Membuat Kalkulator Sederhana Menggunakan Java ??? Semoga bermanfaat, salam .:: ashtho software easy ::.

beri komentar anda tentang blog ini
EmoticonEmoticon