Minggu, 26 Maret 2017

Displaying Account in a Dialog Box

3.13 | Account class with a constructor to validate and initialize instance variable balance of type double.
/**
 * Write a description of class Account here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
public class Account
{
   private double balance;
   
   public Account(double initialBalance){
       if(initialBalance > 0.0)
           balance = initialBalance;
   }
   public void credit(double amount){
       balance = balance + amount;
   }
   public double getBalance(){
       return balance;
   }
}

3.14 | Inputting and outputting floating-point numbers with Account objects.
/**
 * Write a description of class AccountTest here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
import java.util.Scanner;
public class AccountTest
{
   public static void main(String[] args){
       Account account1 = new Account(50.00);
       Account account2 = new Account(-7.53);
       
       System.out.printf("account1 balance: $%.2f\n", account1.getBalance());
       System.out.printf("account2 balance: $%.2f\n", account2.getBalance());
              
       Scanner input = new Scanner(System.in);
       double depositAmount;
       
       System.out.print("Enter deposit amount for account1: ");
       depositAmount = input.nextDouble();
       System.out.printf("\nadding %.2f to account1 balance\n\n", depositAmount);
       account1.credit(depositAmount);
       
       System.out.printf("account1 balance: $%.2f\n", account1.getBalance());
       System.out.printf("account2 balance: $%.2f\n", account2.getBalance());
       
       System.out.print("Enter deposit amount for account2: ");
       depositAmount = input.nextDouble();
       System.out.printf("\nadding %.2f to account2 balance\n\n", depositAmount);
       account2.credit(depositAmount);
       
       System.out.printf("account1 balance: $%.2f\n", account1.getBalance());
       System.out.printf("account2 balance: $%.2f\n", account2.getBalance());
   }
}


3.* | Using JOptionPane to display Account in a dialog box.
/**
 * Write a description of class AccountTest here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
import javax.swing.JOptionPane;
public class AccountTestWithDialogBox
{
   public static void main(String[] args){
       Account account1 = new Account(50.00);
       Account account2 = new Account(-7.53);

       String message0 = String.format("account1 balance: $%.2f\naccount2 balance: $%.2f", account1.getBalance(), account2.getBalance());
       JOptionPane.showMessageDialog(null, message0);
       
       String depositAmount0 = JOptionPane.showInputDialog("Enter deposit amount for account1: ");
       
       double double1 = Double.parseDouble(depositAmount0);
       account1.credit(double1);
       
       String message1 = String.format("\nadding %s to account1 balance\n\n", depositAmount0);
       JOptionPane.showMessageDialog(null, message1);
       String message2 = String.format("account1 balance: $%.2f\naccount2 balance: $%.2f", account1.getBalance(), account2.getBalance());
       JOptionPane.showMessageDialog(null, message2);
       
       String depositAmount1 = JOptionPane.showInputDialog("Enter deposit amount for account1: ");
       
       double double2 = Double.parseDouble(depositAmount1);
       account2.credit(double2);
       
       String message3 = String.format("\nadding %s to account2 balance\n\n", depositAmount1);
       JOptionPane.showMessageDialog(null, message3);
       String message4 = String.format("account1 balance: $%.2f\naccount2 balance: $%.2f", account1.getBalance(), account2.getBalance());
       JOptionPane.showMessageDialog(null, message4);
   }
}








~

Senin, 20 Maret 2017

Overloading dan Overriding

Mengenal Overloading
Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.
Pada method overloading perbedaan parameter mencakup :
  1. Jumlah parameter
  2. Tipe data dari parameter
  3. Urutan dari tipe data parameter

Mengenal Overriding
Method overriding merupakan method yang parrent class yang ditulis kembali oleh subclass. Aturan dari method overriding pada Java :
  1. Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter yang terdapat pada parent class.
  2. Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di bandingkan dengan hak akses method pada parent class.

Berikut adalah contohnya..

Source code: BangunDatar
/**
 * Write a description of class BangunDatar here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
public class BangunDatar
{
   public void hitungLuas(){
       System.out.println("belum terdefinisi luas apa yang di hitung");
   }
   public void hitungKeliling(){
       System.out.println("belum terdefinisi keliling apa yang di hitung\n");
   }
}

Source code: Lingkaran
/**
 * Write a description of class Lingkaran here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
public class Lingkaran extends BangunDatar
{
   public final double phi = 22.7;
   double r;
   public Lingkaran(){
       r = 7;
   }
   public Lingkaran(double inputR){
       this.r = inputR;
   }
   public double getR(){
       return r;
   }
   public void setR(double inputR){
       this.r = inputR;
   }
   
   public void hitungLuas(){
       double luas;
       luas = phi * this.r * this.r;
       System.out.println("luas Lingkaran dengan r: "+r+" cm adalah "+luas+" cm kuadrat.");
   }
   public void hitungKeliling(){
       double keliling; //deklarasi variabel lokal
       keliling = 2 * phi * this.r;
       System.out.println("keliling Lingkaran dengan r: "+r+" cm adalah "+keliling+" cm.\n");
   }
}

Source code: Segitiga
/**
 * Write a description of class Segitiga here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
public class Segitiga extends BangunDatar
{
   double alas, tinggi, hipotenusa;
   public Segitiga(){
       alas = 6;
       tinggi = 8;
       hipotenusa = 10;
   }
   public Segitiga(double inputAlas){
       this.alas = inputAlas;
       tinggi = 10;
       hipotenusa = 21;
   }
   public Segitiga(double inputAlas, double inputTinggi){
       this.alas = inputAlas;
       this.tinggi = inputTinggi;
       hipotenusa = 15;
   }
   public Segitiga(double inputAlas, double inputTinggi, double inputHipotenusa){
       this.alas = inputAlas;
       this.tinggi = inputTinggi;
       this.hipotenusa = inputHipotenusa;
   }
   public double getAlas(){
       return alas;
   }
   public void setAlas(double inputAlas){
       this.alas = inputAlas;
   }
   public double getTinggi(){
       return tinggi;
   }
   public void setTinggi(double inputTinggi){
       this.tinggi = inputTinggi;
   }
   public double getHipotenusa(){
       return hipotenusa;
   }
   public void setHipotenusa(double inputHipotenusa){
       this.hipotenusa = inputHipotenusa;
   }
   
   public void hitungLuas(){
       double luas;
       luas = 0.5 * this.alas * this.tinggi;
       System.out.println("luas Segitiga dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan sisi miring: "+hipotenusa+" cm adalah "+luas+" cm kuadrat.");
   }
   public void hitungKeliling(){
       double keliling; //deklarasi variabel lokal
       keliling = alas + tinggi + hipotenusa;
       System.out.println("keliling Segitiga dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan sisi miring: "+hipotenusa+" cm adalah "+keliling+" cm.\n");
   }
}

Source code: BujurSangkar
/**
 * Write a description of class BujurSangkar here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
public class BujurSangkar extends BangunDatar
{
   double alas, tinggi, hipotenusa;
   public BujurSangkar(){
       alas = 3;
       tinggi = 4;
       hipotenusa = 5;
   }
   public BujurSangkar(double inputAlas){
       this.alas = inputAlas;
       tinggi = 12;
       hipotenusa = 27;
   }
   public BujurSangkar(double inputAlas, double inputTinggi){
       this.alas = inputAlas;
       this.tinggi = inputTinggi;
       hipotenusa = 14;
   }
   public BujurSangkar(double inputAlas, double inputTinggi, double inputHipotenusa){
       this.alas = inputAlas;
       this.tinggi = inputTinggi;
       this.hipotenusa = inputHipotenusa;
   }
   public double getAlas(){
       return alas;
   }
   public void setAlas(double inputAlas){
       this.alas = inputAlas;
   }
   public double getTinggi(){
       return tinggi;
   }
   public void setTinggi(double inputTinggi){
       this.tinggi = inputTinggi;
   }
   public double getHipotenusa(){
       return hipotenusa;
   }
   public void setHipotenusa(double inputHipotenusa){
       this.hipotenusa = inputHipotenusa;
   }
   
   public void hitungLuas(){
       double luas;
       luas = this.alas * this.tinggi;
       System.out.println("luas Bujur Sangkar dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan hipotenusa: "+hipotenusa+" cm adalah "+luas+" cm kuadrat.");
   }
   public void hitungKeliling(){
       double keliling; //deklarasi variabel lokal
       keliling = 2 * (alas + hipotenusa);
       System.out.println("keliling Bujur Sangkar dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan hipotenusa: "+hipotenusa+" cm adalah "+keliling+" cm.\n");
   }
}

Source code: PersegiPanjang
/**
 * Write a description of class PersegiPanjang here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
public class PersegiPanjang extends BangunDatar
{
   double panjang, lebar;
   public PersegiPanjang(){
       panjang = 10;
       lebar = 14;
   }
   public PersegiPanjang(double inputPanjang){
       this.panjang = inputPanjang;
       lebar = 11;
   }
   public PersegiPanjang(double inputPanjang, double inputLebar){
       this.panjang = inputPanjang;
       this.lebar = inputLebar;
   }
   public double getPanjang(){
       return panjang;
   }
   public void setPanjang(double inputPanjang){
       this.panjang = inputPanjang;
   }
   public double getLebar(){
       return lebar;
   }
   public void setLebar(double inputLebar){
       this.lebar = inputLebar;
   }
   
   public void hitungLuas(){
       double luas;
       luas = this.panjang * this.lebar;
       System.out.println("luas Persegi Panjang dengan panjang: "+panjang+" cm dan lebar: "+lebar+" cm adalah "+luas+" cm kuadrat.");
   }
   public void hitungKeliling(){
       double keliling; //deklarasi variabel lokal
       keliling = 2 * (panjang + lebar);
       System.out.println("keliling Persegi Panjang dengan panjang: "+panjang+" cm dan lebar: "+lebar+" cm adalah "+keliling+" cm.\n");
   }
}

Source code: BangunDatarTest
/**
 * Write a description of class BangunDatarTest here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
public class BangunDatarTest
{
   public static void main(String[] args){
       BangunDatar bd = new BangunDatar();
       bd.hitungLuas();
       bd.hitungKeliling();

       Lingkaran l = new Lingkaran();
       l.hitungLuas();
       l.hitungKeliling();
       Lingkaran l1 = new Lingkaran(9);
       l1.hitungLuas();
       l1.hitungKeliling();
       
       Segitiga s = new Segitiga();
       s.hitungLuas();
       s.hitungKeliling();
       Segitiga s1 = new Segitiga(15);
       s1.hitungLuas();
       s1.hitungKeliling();
       Segitiga s2 = new Segitiga(7, 9);
       s2.hitungLuas();
       s2.hitungKeliling();
       Segitiga s3 = new Segitiga(3, 4, 5);
       s3.hitungLuas();
       s3.hitungKeliling();
       
       BujurSangkar bs = new BujurSangkar();
       bs.hitungLuas();
       bs.hitungKeliling();
       BujurSangkar bs1 = new BujurSangkar(15);
       bs1.hitungLuas();
       bs1.hitungKeliling();
       BujurSangkar bs2 = new BujurSangkar(7, 11);
       bs2.hitungLuas();
       bs2.hitungKeliling();
       BujurSangkar bs3 = new BujurSangkar(6, 8, 10);
       bs3.hitungLuas();
       bs3.hitungKeliling();
       
       PersegiPanjang pp = new PersegiPanjang();
       pp.hitungLuas();
       pp.hitungKeliling();
       PersegiPanjang pp1 = new PersegiPanjang(7);
       pp1.hitungLuas();
       pp1.hitungKeliling();
       PersegiPanjang pp2 = new PersegiPanjang(4, 5);
       pp2.hitungLuas();
       pp2.hitungKeliling();
   }
}

Hasil



Implementasi Aplikasi Manajemen Surat