Tampilkan postingan dengan label TUGAS UAS PBO. Tampilkan semua postingan
Tampilkan postingan dengan label TUGAS UAS PBO. Tampilkan semua postingan

Jumat, 09 Juli 2010

Kalkulator Lombok Pake' JAVA 6.7.1


package coba_coba;

/**
*
* @author INOE
*/
//deklarasi GUI component
import java.awt.*; //mengimport semua package awt yang tersedia dari library
import java.awt.event.*;//mengimport semua package event pada package awt dari library
import javax.swing.*; //mengimport semua package swing yang tersedia dari library
class kalkulator3 extends JFrame implements ActionListener {//kelas kalkulator mawarisi kelas JFrame untuk diimplementasikan ke interface
//extends=mewariskan sifat-sifat dari kelas JFrame ke kelas kalkulator3
//implements=menginputkan interface
JTextField layar = new JTextField();//membuat kelas objek baru dari object class JTextField bervariabel layar dengan parameter ""
JPanel panelb = new JPanel();//membuat kelas objek baru dari object class JPanel bervariabel panelb dengan parameter ""
JButton btn1 = new JButton("1"); //membuat kelas objek baru dari object class JButton bervariabel btn1 dengan parameter "1"
JButton btn2 = new JButton("2"); //membuat kelas objek baru dari object class JButton bervariabel btn2 dengan parameter "2"
JButton btn3 = new JButton("3"); //membuat kelas objek baru dari object class JButton bervariabel btn3 dengan parameter "3"
JButton btn4 = new JButton("4"); //membuat kelas objek baru dari object class JButton bervariabel btn4 dengan parameter "4"
JButton btn5 = new JButton("5"); //membuat kelas objek baru dari object class JButton bervariabel btn5 dengan parameter "5"
JButton btn6 = new JButton("6"); //membuat kelas objek baru dari object class JButton bervariabel btn6 dengan parameter "6"
JButton btn7 = new JButton("7"); //membuat kelas objek baru dari object class JButton bervariabel btn7 dengan parameter "7"
JButton btn8 = new JButton("8"); //membuat kelas objek baru dari object class JButton bervariabel btn8 dengan parameter "8"
JButton btn9 = new JButton("9"); //membuat kelas objek baru dari object class JButton bervariabel btn9 dengan parameter "9"
JButton btn0 = new JButton("0"); //membuat kelas objek baru dari object class JButton bervariabel btn0 dengan parameter "0"
JButton btnTitik = new JButton("."); //membuat kelas objek baru dari object class JButton bervariabel btnTitik dengan parameter "."
JButton btnplusMinus = new JButton("+/-"); //membuat kelas objek baru dari object class JButton bervariabel btnplusMinus dengan parameter "+/-"
JButton btnkali = new JButton("*"); //membuat kelas objek baru dari object class JButton bervariabel btnkali dengan parameter "*"
JButton btnkurang = new JButton("-"); //membuat kelas objek baru dari object class JButton bervariabel btnkurang dengan parameter "-"
JButton btntambah = new JButton("+"); //membuat kelas objek baru dari object class JButton bervariabel btntambah dengan parameter "+"
JButton btnbagi = new JButton("/"); //membuat kelas objek baru dari object class JButton bervariabel btnbagi dengan parameter "/"
JButton btnpersen = new JButton("%"); //membuat kelas objek baru dari object class JButton bervariabel btnpersen dengan parameter "%"
JButton btnsamaDengan = new JButton("="); //membuat kelas objek baru dari object class JButton bervariabel btnsamaDengan dengan parameter "="
JButton btnc = new JButton("C"); //membuat kelas objek baru dari object class JButton bervariabel btnc dengan parameter "C"

String bukan_angka = "";// deklarasi variabel fungsi bukan_angka bertipe string

double bil_1 = 0; // deklarasi variabel fungsi bil_1 bertipe double dengan nilai awal 0

boolean angka_baru = false; // deklarasi variabel fungsi angka_baru bertipe boolean dengan nilai awal=T

public static void main(String[] args) {//method main
kalkulator3 frame = new kalkulator3();//mengubah sebuah variabel(frame)menjdi objek pada kelas kalkulator3
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//menghidupkan fungsi tobol exit pada kelas objek frame
frame.setSize(300, 245);// menentukan besarnya ukuran interface
frame.setVisible(true);//kelas objek frame dapat terlihat ketika di-run
frame.setResizable(false);//kelas objek frame tidak dapat dirubah ukurannya
}

public kalkulator3() { //method class konstruktor kalkulator3

this.getContentPane().setLayout(null);//pada kelas ini pengatran layout adalah null
this.setTitle("KALKULATOR LOMBOK");//caption dari kelas objek (frame0 yang telah dibuat

panelb.setBackground(Color.gray);//mengatur warna pada objek panelb
panelb.setBounds(new Rectangle(0, 0, 343, 225));//menentukan posisi awal dari objek panelb dan besarnya objek tersebut
panelb.setLayout(null);//setting layout dibuat null

panelb.add(btn0, null);//menambahkan kelas objek btn0 dengan pengaturan null
panelb.add(btn1, null);//menambahkan kelas objek btn1 dengan pengaturan null
panelb.add(btn2, null);//menambahkan kelas objek btn2 dengan pengaturan null
panelb.add(btn3, null);//menambahkan kelas objek btn3 dengan pengaturan null
panelb.add(btn4, null);//menambahkan kelas objek btn4 dengan pengaturan null
panelb.add(btn5, null);//menambahkan kelas objek btn5 dengan pengaturan null
panelb.add(btn6, null);//menambahkan kelas objek btn6 dengan pengaturan null
panelb.add(btn7, null);//menambahkan kelas objek btn7 dengan pengaturan null
panelb.add(btn8, null);//menambahkan kelas objek btn8 dengan pengaturan null
panelb.add(btn9, null);//menambahkan kelas objek btn9 dengan pengaturan null
panelb.add(btnplusMinus, null);//menambahkan kelas objek btnplusminus dengan pengaturan null
panelb.add(btnkali, null);//menambahkan kelas objek btnkali dengan pengaturan null
panelb.add(btnkurang, null);//menambahkan kelas objek btnkurang dengan pengaturan null
panelb.add(btnsamaDengan, null);//menambahkan kelas objek btnsamadengan dengan pengaturan null
panelb.add(btntambah, null);//menambahkan kelas objek btntambah dengan pengaturan null
panelb.add(btnbagi, null);//menambahkan kelas objek btnbagi dengan pengaturan null
panelb.add(btnpersen, null);//menambahkan kelas objek btnpersen dengan pengaturan null
panelb.add(btnc, null);//menambahkan kelas objek btnc dengan pengaturan null
panelb.add(btnTitik, null);//menambahkan kelas objek btntitik dengan pengaturan null

panelb.add(layar, null);//menambahkan kelas objek layar dengan pengaturan null
this.getContentPane().add(panelb, null);//menambahkan kelas objek panelb dengan pengaturan null pada kelas ini
layar.setBackground(Color.white);//pengaturan warna untuk kelas objek layar
layar.setBorder(null);//pengaturan pemakaian border
layar.setEditable(false);//pengaturan fungsi pengubahan
layar.setText("0");//input text pada objek kelas layar
layar.setHorizontalAlignment(SwingConstants.RIGHT);//pengaturan alligment
layar.setBounds(new Rectangle(7, 10, 278, 27));//pengaturan posisi awal objek kelas layar


btn0.setBounds(new Rectangle(6, 164, 53, 35));//pengaturan posisi awal dan besar objet class btn0 berbentuk rectangle
btnplusMinus.setBounds(new Rectangle(63, 164, 53, 35));//pengaturan posisi awal dan besar objet class btnplusMinus berbentuk rectangle
btnTitik.setBounds(new Rectangle(120, 164, 53, 35));//pengaturan posisi awal dan besar objet class btnTitik berbentuk rectangle
btntambah.setBounds(new Rectangle(176, 164, 53, 36));//pengaturan posisi awal dan besar objet class btntambah berbentuk rectangle
btnsamaDengan.setBounds(new Rectangle(232, 164, 53, 36));//pengaturan posisi awal dan besar objet class btnsamaDengan berbentuk rectangle

btn1.setBounds(new Rectangle(6, 125, 53, 35));//pengaturan posisi awal dan besar objet class btn1 berbentuk rectangle
btn2.setBounds(new Rectangle(63, 125, 53, 35));//pengaturan posisi awal dan besar objet class btn2 berbentuk rectangle
btn3.setBounds(new Rectangle(120, 125, 53, 36));//pengaturan posisi awal dan besar objet class btn3 berbentuk rectangle
btnkurang.setBounds(new Rectangle(176, 125, 53, 36));//pengaturan posisi awal dan besar objet class btnkurang berbentuk rectangle
btnbagi.setBounds(new Rectangle(232, 125, 53, 36));//pengaturan posisi awal dan besar objet class btnbagi berbentuk rectangle

btn4.setBounds(new Rectangle(6, 85, 53, 36));//pengaturan posisi awal dan besar objet class btn4 berbentuk rectangle
btn5.setBounds(new Rectangle(63, 85, 53, 36));//pengaturan posisi awal dan besar objet class btn5 berbentuk rectangle
btn6.setBounds(new Rectangle(120, 85, 53, 36));//pengaturan posisi awal dan besar objet class btn6 berbentuk rectangle
btnkali.setBounds(new Rectangle(176, 85, 53, 36));//pengaturan posisi awal dan besar objet class btnkali berbentuk rectangle
btnpersen.setBounds(new Rectangle(232, 85, 53, 36));//pengaturan posisi awal dan besar objet class btnpersen berbentuk rectangle

btn7.setBounds(new Rectangle(6, 45, 53, 36));//pengaturan posisi awal dan besar objet class btn7 berbentuk rectangle
btn8.setBounds(new Rectangle(63, 45, 53, 36));//pengaturan posisi awal dan besar objet class btn8 berbentuk rectangle
btn9.setBounds(new Rectangle(120, 45, 53, 36));//pengaturan posisi awal dan besar objet class btn9 berbentuk rectangle
btnc.setBounds(new Rectangle(176, 45, 110, 36));//pengaturan posisi awal dan besar objet class btnc berbentuk rectangle


btn0.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn0
btn1.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn1
btn2.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn2
btn3.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn3
btn4.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn4
btn5.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn5
btn6.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn6
btn7.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn7
btn8.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn8
btn9.addActionListener(this);//untuk memberikan event ke tiap kelas objek btn9
btnTitik.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnTitik
btnplusMinus.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnplusMinus
btnc.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnc
btnkali.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnkali
btnkurang.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnkurang
btnpersen.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnpersen
btnbagi.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnbagi
btnsamaDengan.addActionListener(this);//untuk memberikan event ke tiap kelas objek btnsamaDengan
btntambah.addActionListener(this);//untuk memberikan event ke tiap kelas objek btntambah

}
//deklarasi kelas event
public void actionPerformed(ActionEvent e) {

String a = e.getActionCommand();//nilai event dimasukkan ke a

if ( (a == "=") || (a == "-") || (a == "+") || (a == "*") || (a == "/")) {//membandingankan apakah nilai a=parameter atau tidak
operasi(a);//jika sama lakukan perintah operasi
}
else if (a == ".") {//jika tidak membandingankan apakah nilai a=parameter(.)atau tidak
koma(a);//jika sama lakukan perintah koma
}
else if (a == "%" || a == "+/-") {//jika tidak membandingankan apakah nilai a=parameter atau tidak
persen_negatif(a);//jika sama lakukan perintah fungsi persen_negatif
}
else if (a == "C" ) {//jika tidak membandingankan apakah nilai a=parameter(C)atau tidak

hapus(a);//jika sama lakukan fungsi hapus
}

else {//Jika tidak

angka(a); //lakukan fungsi angka
}
}

public void angka(String a) {//method class jika input berupa angka

if (angka_baru) {//jika penginputan nilai_baru dilakukan
layar.setText(a);//input nilai di objek kelas sesuai dengan a
angka_baru = false;//soalnya inputnya kan 1 kali dimasukan ke layar
}
else {//jika tidak

if (layar.getText().equals("0")) {//jika nilai di objek kelas layar dibandingkan dengan 0

layar.setText(a);//masukkan nilai a pada objek kelas layar
}

else {//jika tidak

a = layar.getText() + a;//untuk nilai inputan ke2,ke3,ke4,dll

layar.setText(a);//masukkan nilai a pada objek kelas laya
}
}
}

public void operasi(String a) {//method class operasi

String ambil_angka = layar.getText();//menjadikan nilai yang diinputkan ke objek kelas layar menjadi nilai objek fungsi kelas ambil_angka

if (angka_baru && bukan_angka != "=") {//membandingkan variabel objek kelas angka_baru apakah bernilai =
}

else {//jika tidak

angka_baru = true;//nilai angka_baru adalah benar

if (bukan_angka == "+") {//jika nilai kelas fungsi objek sama dengan parameter +
bil_1 += Double.parseDouble(ambil_angka);//menyimpan bilangan sebelumnya
bukan_angka = a;//memasukkan nilai fungsi bukan_angka ke a
}

else if (bukan_angka == "*") {//jika nilai kelas fungsi objek sama dengan parameter *
bil_1 *= Double.parseDouble(ambil_angka);//menyimpan bilangan sebelumnya
bukan_angka = a;//memasukkan nilai fungsi bukan_angka ke a
}

else if (bukan_angka == "/") {//jika nilai kelas fungsi objek sama dengan parameter /
bil_1 /= Double.parseDouble(ambil_angka);//menyimpan bilangan sebelumnya
bukan_angka = a;//memasukkan nilai fungsi bukan_angka ke a
}

else if (bukan_angka == "-") {//jika nilai kelas fungsi objek sama dengan parameter -
bil_1 -= Double.parseDouble(ambil_angka);//menyimpan bilangan sebelumnya
bukan_angka = a;//memasukkan nilai fungsi bukan_angka ke a
}

else {
bil_1 = Double.parseDouble(ambil_angka);//menyimpan bilangan sebelumnya
bukan_angka = a;//memasukkan nilai fungsi bukan_angka ke a
}
}

String koma_nol = Double.toString(bil_1);//deklarasi nilai variabel fungsi koma_nol=konversi nilai variabel fungsi bil_1 dari tipe double ke tipe string

if (koma_nol.endsWith(".0")) {//jika nilai variabel fungsi koma_nol diakhiri dengan parameter .0

koma_nol = koma_nol.substring(0, koma_nol.trim().length() - 2); //nilai variabel fungsi koma_nol=nilai koma_nol deangan mengabaikan spasi dan digit desimal adalah 2
}

layar.setText(koma_nol);//memasukkan nilai variabel koma_nol ke objek kelas layar
}


public void koma(String a) { //method class koma dengan parameter a bertipe string
String titik = layar.getText(); //nilai variabel tiik diinputkan ke objek kelas layar
if (angka_baru) { //pengandaian untuk nilai variable fungsi angka_baru
layar.setText("0."); //menginputkan parameter 0. ke objek kelas layar
angka_baru = false; //angka_baru bernilai false
}
else { //pilihan lain
if (titik.indexOf(".") == -1) { //jika nilai variabel fungsi titik mempunyai indeks parameter . bernilai =1
titik = titik + ".";//nilai fungsi variabel titik ditambahkan dengan parameter .
}
}
layar.setText(titik); //memasukkan nilai variabel fungsi titik ke kelas objek layar
}
//jika tombol % atau +/- ditekan
public void persen_negatif(String a) { //method class persen_negatif dengan parameter a bertipe string

if (a == "%") { //jika nilai a=parameter %
bil_1 = (Double.parseDouble(layar.getText())) / 100;// bil pertama dikalikan bilangan baru dibagi 100
}

else {
bil_1 = (Double.parseDouble(layar.getText())) * -1; // bilangan di layar dikalian -1
}


String koma_nol = Double.toString(bil_1); //nilai parameter string koma_nol adala hasil konversi nilai bil_1 ke tipe string dari tipe double

if (koma_nol.endsWith(".0")) { //jika nilai variabel fungsi koma_nol diakhiri dengan indeks parameter .0

koma_nol = koma_nol.substring(0, koma_nol.trim().length() - 2); //nilai variabel fungsi koma_nol=nilai koma_nol deangan mengabaikan spasi dan digit desimal adalah 2
}

layar.setText(koma_nol); //memasukkan nilai variabel fungsi koma_nol ke objek kelas layar
}

// jika tombol C / CE di tekan
public void hapus(String a) { //method class hapus dengan parameter a bertipe string
if (a == "C") { // Maka bil_1 dan bilangan di layar dihapus
layar.setText("0"); //menginputkan nilai parameter 0 di objek kelas layar
bukan_angka = ""; //nilai parameter variabel fungsi bukan_angka adalah null
bil_1 = 0; //nilai parameter fungsi bil_1=benar
angka_baru = true; //dapat menginputkan nilai baru
}
else {// Bilangan di layar saja yang di hapus
layar.setText("0"); //menginputkan nilai parameter 0 di objek kelas layar
angka_baru = true; //dapat menginputkan nilai baru
}
}
}