Senin, 14 Desember 2015

Membuat Kalkulator Sederhana

  No comments    
categories: 
Mesin hitung atau Kalkulator adalah alat untuk menghitung dari perhitungan sederhana seperti penjumlahan, pengurangan, perkalian dan pembagian sampai kepada kalkulator sains yang dapat menghitung rumus matematika tertentu. Pada perkembangannya sekarang ini, kalkulator sering dimasukkan sebagai fungsi tambahan daripada komputer, handphone, bahkan sampai jam tangan.
Pada postingan saya kali ini saya akan membahas tentang pembuatan kalkulator. Kalkulator sebenarnya dapat dibuat mengunakan sofware adobe flash,netbeens,eclipse,dan lain lain. Dan  kali ini saya akan menunjukkan cara pembuatan kalkulator sederhana menggunakan eclipse dan berbasis GUI.


Berikut adalah sourcecode pembuatan kalkulator:



package tugas;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class calculator extends JFrame implements ActionListener {
   
   JPanel[] row = new JPanel[5];
   JButton[] button = new JButton[19];
   String[] buttonString = {"7", "8", "9", "+",
                            "4", "5", "6", "-",
                            "1", "2", "3", "*",
                            ".", "/", "C", "√",
                            "+/-", "=", "0"};
   int[] dimW = {300,45,100,90};
   int[] dimH = {35, 40};
   Dimension displayDimension = new Dimension(dimW[0], dimH[0]);
   Dimension regularDimension = new Dimension(dimW[1], dimH[1]);
   Dimension rColumnDimension = new Dimension(dimW[2], dimH[1]);
   Dimension zeroButDimension = new Dimension(dimW[3], dimH[1]);
   boolean[] function = new boolean[4];
   double[] temporary = {0, 0};
   JTextArea display = new JTextArea(1,20);
   Font font = new Font("Times new Roman", Font.BOLD, 14);
 
   calculator() {
       super("calculator");
       setDesign();
       setSize(380, 250);
       setResizable(false);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       GridLayout grid = new GridLayout(5,5);
        setLayout(grid);
       
       for(int i = 0; i < 4; i++)
           function[i] = false;
       
       FlowLayout f1 = new FlowLayout(FlowLayout.CENTER);
       FlowLayout f2 = new FlowLayout(FlowLayout.CENTER,1,1);
       for(int i = 0; i < 5; i++)
           row[i] = new JPanel();
       row[0].setLayout(f1);
       for(int i = 1; i < 5; i++)
           row[i].setLayout(f2);
       
       for(int i = 0; i < 19; i++) {
           button[i] = new JButton();
           button[i].setText(buttonString[i]);
           button[i].setFont(font);
           button[i].addActionListener(this);
       }
       
       display.setFont(font);
       display.setEditable(false);
       display.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
       display.setPreferredSize(displayDimension);
       for(int i = 0; i < 14; i++)
           button[i].setPreferredSize(regularDimension);
       for(int i = 14; i < 18; i++)
           button[i].setPreferredSize(rColumnDimension);
       button[18].setPreferredSize(zeroButDimension);
       
       row[0].add(display);
       add(row[0]);
       
       for(int i = 0; i < 4; i++)
           row[1].add(button[i]);
       row[1].add(button[14]);
       add(row[1]);
       
       for(int i = 4; i < 8; i++)
           row[2].add(button[i]);
       row[2].add(button[15]);
       add(row[2]);
       
       for(int i = 8; i < 12; i++)
           row[3].add(button[i]);
       row[3].add(button[16]);
       add(row[3]);
       
       row[4].add(button[18]);
       for(int i = 12; i < 14; i++)
           row[4].add(button[i]);
       row[4].add(button[17]);
       add(row[4]);
       
       setVisible(true);
   }
   
   public void clear() {
       try {
           display.setText("");
           for(int i = 0; i < 4; i++)
               function[i] = false;
           for(int i = 0; i < 2; i++)
               temporary[i] = 0;
       } catch(NullPointerException e) {
       }
   }
   
   public void getSqrt() {
       try {
           double value = Math.sqrt(Double.parseDouble(display.getText()));
           display.setText(Double.toString(value));
       } catch(NumberFormatException e) {
       }
   }
   
   public void getPosNeg() {
        try {
           double value = Double.parseDouble(display.getText());
           if(value != 0) {
               value = value * (-1);
                display.setText(Double.toString(value));
           }
           else {
           }
       } catch(NumberFormatException e) {
       }
   }
   
   public void getResult() {
       double result = 0;
       temporary[1] = Double.parseDouble(display.getText());
       String temp0 = Double.toString(temporary[0]);
       String temp1 = Double.toString(temporary[1]);
       try {
           if(temp0.contains("-")) {
               String[] temp00 = temp0.split("-", 2);
               temporary[0] = (Double.parseDouble(temp00[1]) * -1);
           }
           if(temp1.contains("-")) {
               String[] temp11 = temp1.split("-", 2);
               temporary[1] = (Double.parseDouble(temp11[1]) * -1);
           }
       } catch(ArrayIndexOutOfBoundsException e) {
       }
       try {
           if(function[2] == true)
               result = temporary[0] * temporary[1];
           else if(function[3] == true)
               result = temporary[0] / temporary[1];
           else if(function[0] == true)
               result = temporary[0] + temporary[1];
           else if(function[1] == true)
               result = temporary[0] - temporary[1];
           display.setText(Double.toString(result));
           for(int i = 0; i < 4; i++)
               function[i] = false;
       } catch(NumberFormatException e) {
       }
   }
   
   public final void setDesign() {
       try {
           UIManager.setLookAndFeel(
                   "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
       } catch(Exception e) {
       }
   }
   
   @Override
   public void actionPerformed(ActionEvent ae) {
       if(ae.getSource() == button[0])
           display.append("7");
        if(ae.getSource() == button[1])
           display.append("8");
       if(ae.getSource() == button[2])
           display.append("9");
       if(ae.getSource() == button[3]) {
           //add function[0]
           temporary[0] = Double.parseDouble(display.getText());
           function[0] = true;
           display.setText("");
       }
       if(ae.getSource() == button[4])
           display.append("4");
       if(ae.getSource() == button[5])
           display.append("5");
       if(ae.getSource() == button[6])
           display.append("6");
       if(ae.getSource() == button[7]) {
           //subtract function[1]
           temporary[0] = Double.parseDouble(display.getText());
           function[1] = true;
           display.setText("");
       }
       if(ae.getSource() == button[8])
           display.append("1");
       if(ae.getSource() == button[9])
           display.append("2");
       if(ae.getSource() == button[10])
           display.append("3");
       if(ae.getSource() == button[11]) {
           //multiply function[2]
           temporary[0] = Double.parseDouble(display.getText());
           function[2] = true;
           display.setText("");
       }
       if(ae.getSource() == button[12])
           display.append(".");
       if(ae.getSource() == button[13]) {
           //divide function[3]
           temporary[0] = Double.parseDouble(display.getText());
           function[3] = true;
           display.setText("");
       }
       if(ae.getSource() == button[14])
           clear();
       if(ae.getSource() == button[15])
           getSqrt();
       if(ae.getSource() == button[16])
           getPosNeg();
       if(ae.getSource() == button[17])
           getResult();
       if(ae.getSource() == button[18])
           display.append("0");
   }
   
   public static void main(String[] arguments) {
       calculator c = new calculator();
   }
}


Dan ini adalah hasil akhir atau output dari coding kalkulator yang sudah dibuat pada eclipse tadi:



Semoga bermanfaat :)

Minggu, 13 Desember 2015

UML PERPUSTAKAAN

  No comments    
categories: 

Berikut saya sajikan UML yang saya buat dengan nama UML PERPUSTAKAAN

Pada postingan sebelumnya sudah saya bahas mengenai apa yang di mkasud dengan uml. Kali ini saya akan menunjukkan UML buatan saya yang bernama Perpustakaan
Pada UML ini yang bertindak sebagai SUper Class adalah Perpustakaan dan Sub Class adalah Peminjama,Pengembalian,dan Denda.





Semoga Bermanfaat :)




Rabu, 25 November 2015

Contoh Penerapan UML

  No comments    
categories: 

Pengertian UML

Unified Modeling Language merupakan salah satu alat bantu yang dapat digunakan dalam bahasa pemograman yang berorientasi objek, saat ini UML akan mulai menjadi standar masa depan bagi industri pengembangan sistem/perangkat lunak yang berorientasi objek sebab pada dasarnya UML digunakan oleh banyak perusahaan raksasa seperti IBM, Microsoft, dan sebagainya
Pada UML ini akan membahas tentang Tabungan Pelajar .dan ini adalah contohnya:

Pada UML ini Tabungan Pelajar bertindak sebagai Super class dan class yang lain(Rekening ,Pelajar,Orang ) sebagai Subclass nya.

Selanjutnya adalah penerapan sourcecode kedalam eclipse
Untuk kelas pertama, bernama TabunganPelajar, berikut source code-nya :

public class TabunganPelajar {
    public Rekening Rekeningku;
    public Pelajar Nasabah;
    
    void Daftar(Rekening RekeningNasabah, Pelajar NasabahBaru)
    {
        Rekeningku=RekeningNasabah;
        Nasabah=NasabahBaru;
        }
    double CekSaldo()
    {
        return Rekeningku.CekSaldo();
    }
    
    void TampilanData()
    {
        System.out.println("DATA NASABAH");
        System.out.println("Nama :" +Nasabah.getNamaOrang());
        System.out.println("Alamat :" +Nasabah.getAlamatOrang());
        System.out.println("NoKTP : " +Nasabah.getNoKTPOrang());
        System.out.println("NIM :" +Nasabah.getNIM());
        
        System.out.println("DATA TABUNGAN");
        System.out.println("NoRekening: "+Rekeningku.getRekening());
        System.out.println("Saldo Tabungan :"+Rekeningku.CekSaldo());
    }
}




Untuk kelas kedua bernama Orang, berikut source code-nya :
public class Orang {

    String NamaOrang;
    String AlamatOrang;
    String NoKTPOrang;
    
    void setNamaOrang(String Nama)
    {
        this.NamaOrang= Nama;
    }
    String getNamaOrang()
    {
        return NamaOrang;
    }
    void setAlamatOrang(String Alamat)
    {
        this.AlamatOrang = Alamat;
        }
    String getAlamatOrang()
    {
        return AlamatOrang;
    }
    void NoKTPOrang(String NoKTP)
    {
        this.NoKTPOrang = NoKTP;
    }
    String getNoKTPOrang()
    {
        return NoKTPOrang;
    }
}

Untuk kelas ketiga bernama Rekening, berikut ini adalah source code-nya : 

public class Rekening {
    public double Saldo=250000;
    public String NoRekening;
    
    void setRekening(String Rekening)
    {
        NoRekening=Rekening;
    }
    String getRekening()
    {
        return NoRekening;
    }
    double Debet(double Jumlah)
    {
        Saldo+=Jumlah;
        return Saldo;
    }
    double Kredit(double Jumlah)
    {
        Saldo-=Jumlah;
        return Saldo;
    }
    double CekSaldo()
    {
        return Saldo;
        
    }

}

Untuk kelas selanjutnya adalah bernama Pelajar dengan source code sebagai berikut :

public class Pelajar extends Orang {
public String NIM;
void setNIM(String Nomor)
{
    NIM=Nomor;
}
String getNIM()
{
    return NIM;
    
}
    
}

Dan kelas terakhir bernama bebas, pada kali ini diberi nama Main dengan source code berikut : 

public class Main {

    public static void main(String[] args)
    {
        Pelajar Mahasiswa = new Pelajar();
        Rekening NoRek = new Rekening();
        TabunganPelajar Tabung = new TabunganPelajar();
                
        Mahasiswa.setNamaOrang("Ulya Nafiah");
        Mahasiswa.setAlamatOrang("Rembang");
        Mahasiswa.setNoKTPOrang("22462347");
        Mahasiswa.setNIM("5302414079");
        
        NoRek.setRekening("1223");
        NoRek.Debet(1000);
        Tabung.Daftar(NoRek, Mahasiswa);
        Tabung.TampilanData();
        
        System.out.println("\n");
        NoRek.Kredit(50000);
        Tabung.Daftar(NoRek,Mahasiswa);
        Tabung.TampilanData();
        
    }

}

Lalu setelah selesai menulis sourcecode-nya run program.

Semoga Bermanfaat :)

ENCAPSULASI

  No comments    
categories: 

Pengertian Enkapsulasi (Encapsulation)
Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur struktur class dengan cara menyembunyikan alur kerja dari class tersebut.
Struktur class yang dimaksud adalah property dan method. Dengan enkapsulasi, kita bisa membuat pembatasan akses kepada property dan method, sehingga hanya property dan methodtertentu saja yang bisa diakses dari luar class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’.
            Dalam Pemrograman Berbasis Objek, encapsulasi diwujudkan dalam bentuk class . Dalam sebuah class tersebut terdapat sebuah property dan method yang mempunyai hak akses tertentu dalam lingkupnya. Hak akses tersebut dapat dibuat access modifier, yang mana akses tersebut terdiri dari private, protected, dan public. 

  • ·         Private  Memberikan akses hanya kepada anggota classnya tersebut untuk menggunakan dan/atau mengubah nilai dari method atau property tersebut.
  • ·         Protected  Memberikan hak akses kepada anggota classnya dan anggota class hasil inheritence (penurunan sifat) dari class tersebut. 
  • ·         Public  Memberikan akses kepada property dan method agar dapat digunakan diluar class tersebut.



Contoh dalam program
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi publicyang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

Semoga bermanfaat :)