Senin, 19 November 2012

Inheritance

di Java, cara membuat turunan dari sebuah kelas adalah dengan kata “extends”, misalnya anda punya Kelas “Bentuk2D” lalu anda ingin memecah lagi menjadi yang lebih spesifik menjadi “Persegi panjang” lalu anda ingin memecah lagi menjadi yang lebih spesifik menjadi "Balok" 
kelas Parent 1

public abstract class Bentuk2D {
   
    // state
    int panjang = 1;
    int lebar = 1;
   
    // behaviour
    public abstract double hitungLuas();
    public abstract String getBentuk();
   
}
 
 
Turunan pertama Persegi Panjang,

public class persegiPanjang extends Bentuk2D {

 //method void tanpa nilai kembali disini mengatur sisi dengan tipe int
    public void setPanjangLebar(int panjang, int lebarr){
        this.panjang = panjang;
        lebar = lebarr;
    }

    @Override
//method hitungluas dengan type double
    public double hitungLuas() {
        return panjang*lebar;
    }

    @Override
//method getBentuk dengan type String
    public String getBentuk() {
        return "Persegi Panjang";
    }

}

Turunan kedua Balok
 
public class Balok extends persegiPanjang {

//method hitungVolume dengan type double
    public double hitungVolume(){
 
// 1. return panjang*panjang*panjang;
        return hitungLuas()*panjang;
    }

}
 
 -:-

Senin, 15 Oktober 2012

Program menghitung Luas PersegiPanjang (Overloading)


Program menghitung Luas PersegiPanjang (Overloading)
1.  Class Pertama
public class PersegiPanjangOverloading  //mendeklarasikan kelas dengan nama PersegiPanjangOverloading
{ //Awal dari sebuah class
    private double panjang ; //menginisialisasi nilai panjang dengan tipe double yang hanya bisa diakses oleh panjang dan turunannya
    private double lebar ; //menginisialisasi nilai lebar dengan tipe double yang hanya bisa diakses oleh lebar dan turunannya
   
    PersegiPanjangOverloading(){ //memanggil nama kelas PersegiPanjangOverloading dengan fungsi Overloading (satu nama memiliki akses yang berbeda)
        panjang = 10; //menginisialisai nilai panjang yaitu 10
        lebar = 2; //menginisialisasi nilai lebar yaitu 2
    }
   
    PersegiPanjangOverloading (double panjang, double lebar){ //kelas yg didalamnya mendklarasikan panjang dan lebar dengan tipe data double
        this.panjang = panjang ; //memanggil variabel panjang
        this.lebar = lebar; //memanggil variabel lebar
    }
   
    public void setpanjang (double panjang){
        this.panjang = panjang ;
    }
   
    public void setlebar (double lebar) {
        this.lebar = lebar ;
    }
   
    public double getpanjang (){ //memanggil nilai panjang dengan tipe data double
        return panjang ; //kembali ke nilai panjang
    }  
    public double getlebar (){ //memanggil nilai lebar dengan tipe data double
        return lebar ; //kembali ke nilai lebar
    }
   
   
    public void hitungluas (){ //perintah untuk menghitung luas
    System.out.println (panjang*lebar); //mencetak hasil menghitung luas yaitu dengan rumus panjang kali lebar
    }
   
    public void hitungluas (double panjang, double lebar) //perintah menghitung luas dengan nilai panjang dan lebar bertipe double
{//Awal dari sebuah method
        setpanjang (panjang); //menginputkan panjang dengan nilai panjang
        setlebar (lebar); //menginputkan lebar dengan nilai lebar
        hitungluas (); //menghitung luas
    }
}
2.  Class Kedua
public class methodPPOverloading //mendeklarasikan kelas, dengan nama methodPPOverloading
{
    public static void main (String []args)  //method utama untuk mengeksekusi program dibawahnya
    {
        PersegiPanjangOverloading A = new PersegiPanjangOverloading(); //merupakan objek baru A dari kelas PersepiPanjangOverloading
        A.hitungluas (); //perintah untuk menghitung luas pada objek A dengan nilai yg sudah ditentukan dari kelas PersepiPanjangOverloading
        A.hitungluas (5,3); //menghitung luas dengan panjang dan lebar yang sudah ditentukan program pada objek A
    PersegiPanjangOverloading B = new PersegiPanjangOverloading(); //merupakan objek baru B dari kelas PersepiPanjangOverloading
        B.hitungluas(); //perintah untuk menghitung luas pada objek B dengan nilai yg sudah ditentukan dari kelas PersepiPanjangOverloading
    PersegiPanjangOverloading C = new PersegiPanjangOverloading (); //merupakan objek baru C dari kelas PersepiPanjangOverloading
        C.setpanjang(8); //menginputkan panjang dengan nilai 8
        C.setlebar (4); //menginputkan lebar dengan nilai 4
        C.hitungluas (); //perintah menghitung luas pada objek c dengan memanggil nilai yg ada pada objek C yaitu 8 dan 4
        C.hitungluas(A.getpanjang(), B.getlebar()); //menghitung luas dari objek C dengan memanggil panjang dari objek A dan lebar dari objek B
    }
}
3.  Penjelasan Program
Program tersebut mempunyai class yang bernama PersegiPanjangOverloading dan memiliki method yaitu pada class MethodPPOverloading. Yang berisi beberapa fungsi yaitu sebagai berikut :
PersegiPanjangOverloading (double panjang, double lebar){ //kelas yg didalamnya mendklarasikan panjang dan lebar dengan tipe data double public void setpanjang (double panjang) digunakan untuk mengisi variable panjang dengan tipe data double.
public void setlebar (double lebar)untuk mengisi variable lebar dengan tipe data double.
public double getpanjang ()untuk mengambil data dari variable panjang dengan tipe data double
public double getlebar ()untuk mengambil data dari variable lebar  dengan tipe data double.
public void hitungluas (double panjang, double lebar)untuk menghitung variable luas.

public static void main (String []args)  //method utama untuk mengeksekusi program dibawahnya (class main pada MethodPPOverloading
PersegiPanjangOverloading A = new PersegiPanjangOverloading //merupakan objek baru A dari kelas PersepiPanjangOverloading
Dalam program tersebut ada 3 kali perintah tersebut, namaun objek baru pada setiap perintah yang dipanggil berbeda-beda. Yaitu menggunakan objek A, B dan C. nama objek tersebut bersifat bebas tetapi harus mempunyai implementasi dari overloading (new overloading).
Program tersebut menggunakan perintah overloading yaitu satu nama yang sama tapi menghasilkan suatu aksi yang berbeda.
Perintahnya sebagai berikut :
PersegiPanjangOverloading()
Penggunaannya hampir sama dengan constrktor, yaitu menggunakan perintah dengan nama sesuai dengan nama classnya yaitu PersegiPanjangOverloading. Overloading method dapat digunakan ketika kita mempunyai operasi yang sama namun berbeda implementasinya.
Dan saat kita menggunakan Overloading, hal yang harus diiperhatikan yaitu :
a.    Nama method sama
b.    Parameter berbeda (baik tipe maupun jumlahnya)
c.    Tipe data nilai kembalian dapat berbeda atau sama
Output Program

Program Menghitung Luas Bujur Sangkar


Program menghitung Luas BujurSangkar (Construktor)
1.  Class Pertama
public class cobaBujurSangkar //mendeklarasikan kelas dengan nama cobaBujurSangkar
{ //awal dari sebuah class
    private double sisi ;//menginisialisasi nilai sisi dengan tipe double yang hanya bisa diakses oleh sisi dan turunannya
    cobaBujurSangkar(){ //perintah construktur
        System.out.println("Construktor dijalankan");//mencetak hasil yaitu Construktor dijalankan
        sisi = 1;//agar jika user tidak menginputkan nilai, maka program akan mengeluarkan hasil 1
    }
    public void setsisi (double sisi){
        if (sisi>0){ //perintah agar sisi harus bernilai lebih dari 0
            this.sisi = sisi ;//untuk memanggil variabel sisi
        }
    }
    public void hitungluas() { //Perintah menghitung luas
         System.out.println (sisi*sisi); //mencetak hasil yaitu dengan sisi kali sisi
    }

    void hitunghasil() {
    }
} //akhir dari sebuah class
2.  Class Kedua

public class methodcobabujursangkar //mendeklarasikan kelas, dengan nama methodcobabujursangkar
{ //awal dari sebuah blok baru
    public static void main (String []args) { //method utama untuk mengeksekusi program dibawahnya
    cobaBujurSangkar jklm = new cobaBujurSangkar(); //merupakan objek baru jklm dari kelas cobaBujurSangkar
    jklm.setsisi(4); //menginputkan sisi dengan nilai 4
    jklm.hitunghasil();//perintah untuk menghitung luas pada objek jklm
    }
}//akhir dari sebuah class

3.  Penjelasan Program
Program tersebut mempunyai class yang bernama cobaBujurSangkar dan memiliki method yaitu pada class methodcobabujursangkar. Yang berisi beberapa fungsi yaitu sebagai berikut :
  
   public void setsisi (double sisi) //untuk mengisi variable sisi dengan tipe data double
   public void hitungluas() //untuk menghitung variable luas
   public static void main (String []args) //class main pada methodcobabujursangkar
jklm.setsisi(4); //memanggil class cobabujursangkar dengan nama bujursangkar jklm  dengan menjalankan method setsisi(4), yang berisi nilai 4 yg bertipe data integer

jklm adalah sebuah nama bujur sangkar yang bersifat bebas (jadi dapat digantikan dengan nama lain). Tapu harus mempunyai pernyataan bahwa jklm adalah sebuah implementasi dari cobabujursangkar (new cobapersegipanjang).
Dalam program ini menggunakan perintah Construktor yaitu perintahnya sebagai berikut :
cobaBujurSangkar(){ //perintah construktur
System.out.println("Construktor dijalankan");//mencetak hasil yaitu Construktor dijalankan

Pada perintah constructor tersebut harus menggunakan nama sesuai dengan nama class yang telah dibuat. Dalam program ini yaitu cobaBujurSangkar. Lalu diikuti dengan perintah mencetak hasil yaitu “Construktor dijalankan”

Output Program

Minggu, 30 September 2012

PBO 2


MENGHITUNG MATRIKS DALAM JAVA

Berikut koding dalam bahasa java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class matrix {
    static int[][] matrixA = new int[2][2];
    static int[][] matrixB = new int[2][3];
    static int[][] matrixHasil = new int[2][3];
    static int ukuran;
    public static void main(String[] args){
        System.out.println("Masukkan ukuran matrix : ");
        ukuran = inputData();
        bacaMatrix();
        KalikanMatrix();
        tulisHasil();
    }

    private static int inputData() {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        String angkaInput = null;
        try{
            angkaInput = bfr.readLine();
        }
        catch(IOException e){
            e.printStackTrace();
        }
        int Data=Integer.valueOf(angkaInput).intValue();
        return Data;
    }

    private static void bacaMatrix() {
        System.out.println("Masukkan data MatrixA :");
        for(int i=0; i<ukuran; i++){
            for(int j=0; j<ukuran; j++){
                System.out.println("Matrix["+(i+1)+"]["+(j+1)+"]");
                matrixA[i][j] = inputData();
            }
        }
        System.out.println("Masukkan data MatrixB :");
        for(int i=0; i<ukuran; i++){
            for(int j=0; j<ukuran; j++){
                System.out.println("Matrix["+(i+1)+"]["+(j+1)+"]");
                matrixB[i][j] = inputData();
            }
        }
    }

    private static void KalikanMatrix() {
        for(int i=0; i<ukuran; i++){
            for(int j=0; j<ukuran; j++){
                matrixHasil[i][j] = matrixA[i][j]*matrixB[i][j];
            }
        }
    }

    private static void tulisHasil() {
        System.out.println("\n\nMatrix Hasil Perkalian");
        System.out.println("");
        for(int i=0; i<ukuran; i++){
            for(int j=0; j<ukuran; j++){
                System.out.print(matrixHasil[i][j]+"\t");
            }
            System.out.println("");
        }
    }

}


INILAH HASILX.....