Selasa, 20 September 2011

Resume PBO pertemuan 2

CLASS

Dalam dunia nyata, kita sering berinteraksi dengan banyak object.
Kita tinggal di rumah, rumah adalah suatu object, dalam terminology OOP rumah kita adalah instance dari suatu class rumah. Misal kita tinggal dalam suatu komplek perumahan, sebelum membangun rumah, developer akan berpanduan pada rancang bangun rumah (blue print) yang telah dibuat seorang arsitek. Blue print dari rumah adalah class, sedang rumah yang kita tinggal (rumah-rumah dalam komplek) disebut Instance.
Manusia adalah sebuah class ; anda, saya, kita adalah instance dari class manusia. 
Contoh pembuatan class:
Persyaratan :
1.Settingan JDK dikomputer udah jalan dengan benar
2. Editor favorit, klo saya pake JCreator
Ketik script berikut dieditor kamu, jangan protes..ketik dulu ja..
class Binatang {
    private String suara;
    private String makanan;
    private int kaki;
    
    public Binatang() {
        this.suara = "Suara Binatang";
        this.makanan = "Makanan Binatang";
        this.kaki = 4; //misalkan kakinya 4
    }
    
    public Binatang(String suaranya, String makanannya, int kakinya) {
        suara = suaranya;
        makanan = makanannya;
        kaki = kakinya;
    }
    
    public void setSuara(String suaranya) {
        suara = suaranya;
    }
    
    public void setMakanan(String makanannya) {
        makanan = makanannya;
    }
    
    public void setKaki(int kakinya) {
        kaki = kakinya;
    }
    
    public String getSuara() {
        return suara;
    }
    
    public String getMakanan() {
        return makanan;
    }
    
    public int getkaki() {
        return kaki;
    }
    
    public void infoBinatang() {
        System.out.println("Makanan = " + makanan);
        System.out.println("Suara = " + suara);
        System.out.println("Kaki = " + String.valueOf(kaki));
        System.out.println(" "); //dikosongkan untuk jarak
    }
    
    public static void main(String[] args) {
        System.out.println("<= membuat Objek kuda secara default =>");
        Binatang kuda = new Binatang();
        kuda.infoBinatang();
        
        System.out.println("<= membuat Objek Singa dengan parameter =>");
        Binatang singa = new Binatang("Mengaum","Daging",4);
        singa.infoBinatang();
        
        System.out.println("<= membuat Objek ayam tapi melalui setter =>");
        Binatang ayam = new Binatang();
        ayam.setSuara("Kukuruyuk");
        ayam.setMakanan("Biji-bijian");
        ayam.setKaki(2);
        ayam.infoBinatang();
    }
}

Begini penjelasannya, class Binatang ini mempunyai 3 properti yaitu suara, makanan, dan kaki. Nilai dari properti tadi diisi secara default pada saat construktor dijalankan, lalu kapan construktor dijalankan? yaitu pada saat membuat objek dengan menggunakan new, berikut :

Binatang kuda = new Binatang();
Dan dibawah ini adalah construktor yang dimaksud :

public Binatang() {
        this.suara = "Suara Binatang";
        this.makanan = "Makanan Binatang";
        this.kaki = 4; //misalkan kakinya 4
    }

Penggunaan this artinya menunjukan objek kelas Binatang itu sendiri, boleh digunakan dan bisa saja tidak..sama ja ko. Selain itu ada Construktor yang mempunyai parameter, maka dalam contoh membuat objek singa seperti ini :


Binatang singa = new Binatang("Mengaum","Daging",4);

Objek singa menggunakan construktor dibawah ini :


public Binatang(String suaranya, String makanannya, int kakinya) {
        suara = suaranya;
        makanan = makanannya;
        kaki = kakinya;
    }

Selain itu class Binatang ini juga mempunyai beberapa metode yaitu :


public void setSuara(String suaranya) {
        suara = suaranya;
    }

Metode diatas berguna untuk memberikan nilai properti suara. Begitu juga dengan setMakanan dan setKaki berguna untuk memberikan nilai properti makanan dan kaki. Berbeda dengan 3 metode diatas, class ini juga memiliki metode lain yaitu :


public String getSuara() {
        return suara;
    }

Metode diatas bukan untuk memberikan nilai properti suara, tetapi memperoleh/mengambil nilai properti suara dari metode setSuara() diatas. Untuk perintah return suara, artinya nilai properti suara tersebut akan diberikan apabila metode getSuara() ini dipanggil. lanjuut…


public void infoBinatang() {
        System.out.println("Makanan = " + makanan);
        System.out.println("Suara = " + suara);
        System.out.println("Kaki = " + String.valueOf(kaki));
        System.out.println(" "); //dikosongkan untuk jarak,
 klo di HTML mah
    }

Perhatikan public void infoBinatang(), terdapat kata void yang berarti metode tidak untuk menghasilkan sebuah nilai tertentu, tetapi hanya untuk mengerjakan sesuatu. Klo dipaskal sama seperti procedure, ingat dalam JAVA tidak ada procedure tapi hanya ada fungsi. Metode ini mengerjakan/ menampilkan semua atribut class ini.

Terakhir..

public static void main(String[] args) {
        System.out.println("<= membuat Objek kuda secara default =>");
        Binatang kuda = new Binatang();
        kuda.infoBinatang();
        
        System.out.println("<= membuat Objek Singa dengan parameter =>");
        Binatang singa = new Binatang("Mengaum","Daging",4);
        singa.infoBinatang();
        
        System.out.println("<= membuat Objek ayam tapi melalui setter =>");
        Binatang ayam = new Binatang();
        ayam.setSuara("Kukuruyuk");
        ayam.setMakanan("Biji-bijian");
        ayam.setKaki(2);
        ayam.infoBinatang();
    }

Metode ini tidak harus dimiliki sebuah class, metode main diperlukan apabila class ini ingin dijalankan. Ayo kita gali script diatas, pertama-tama mencetak <= membuat Objek kuda secara default => fungsinya hanya untuk penjelas bahwa ini adalah objek kuda, baris berikutnya adalah membuat objek kuda : Binatang kuda = new Binatang(); baris berikutnya kuda.infoBinatang(); memanggil objek kuda dengan metode infoBinatang(), karena tidak mempunyai parameter maka memanggil construktor Binatang().

Untuk bait selanjutnya (beuh bait kek puisi ja). Hampir sama dengan Objek kuda, mencetak <= membuat Objek Singa dengan parameter => lalu membuat objek singa Binatang singa = new Binatang(“Mengaum”,”Daging”,4); karena memiliki parameter Binatang(“Mengaum”,”Daging”,4); maka yang dipanggil construktor public Binatang(String suaranya, String makanannya, int kakinya). baris singa.infoBoinatang(); untuk memanggil objek kuda dengan metode infoBinatang().

Naah ada yang beda dengan objek ayam yaitu menggunakan metode set..pertama objek ayam dibuat, terus diset dengan metode setSuara untuk dapet nilai properti suara, setMakanan untuk ambil nilai properti makanan dan seterusnya. Lalu metode infoBinatang() dipanggil dengan mendapatkan parameter dari ketiga metode set tadi.
Program diatas kalo dijalankan maka hasilnya :
<=== membuat Objek kuda secara default===>
Makanan = Makanan Binatang
Suara = Suara Binatang
Kaki = 4

<=== membuat Objek Singa dengan parameter ===>
Makanan = Daging
Suara = Mengaum
Kaki = 4
<=== membuat Objek ayam tapi melalui setter ===>
Makanan = Biji-bijian
Suara = Kukuruyuk
Kaki = 2
Semoga bermanfaat…
 
CONSTRUCTOR
Pada prinsipnya constructor adalah method yang tidak memiliki return value (secara implisit adalah instant dari kelasnya), hanya saja namanya sama dengan nama kelas, dan dapat diberi modifier akses (public, protected, default, private).
Bentuk umum pendefinisian constructor :
[modifier] namaConstructor(tipe namaparameter) {
    constructorBody;
}
Tujuan constructor dibuat adalah untuk melakukan inisialisasi yang diperlukan objek baru.



Contoh constructor dan overloadingnya :
class PersonToy {
    String name;
    String addressLine1;
    String addressLine2;
    String city;
    int age;
    public PersonToy() {
        name = ” ”;
        addressLine1 = ” ”;
        addressLine2 = ” ”;
        city = ” ”;
        age = 0;
    }
    public PersonToy(String newName,
                                  String newAddress1,
                                  String newAddress2;
                                  String newCity;
                                  int newAge) {

       name = newName;
       addressLine1 = newAddressLine1;
       addressLine2 = newAddressLine2;
       city = newCity;
       age = newAge;
    }
}
 
OBJEK
Pada prinsipnya objek adalah sebuah pointer. Selama tidak bersifat static, programmer dapat melakukan sesuatu hanya terhadap objek tertentu dari kelas.

1.1.   Siklus Hidup Objek
Suatu objek di java, terlebih dahulu harus dideklarasikan, setelah itu mengalami pembuatan, penggunaan, kemudian penghancuran.

1.2.   Deklarasi dan Pembuatan/Instansiasi Objek
Ilustrasi :
MyClass mc;                                        MyClass

Ditentukan variabel mc dengan tipe MyClass, dalam deklarasi mc masih berupa pointer dan belum menunjuk alokasi memori. Keyword new diperlukan untuk membentuk objek tsb sekaligus memanggil constructor.
MyClass
~var1 : int
~var2 : String

+method1:int
+method2:void
 
mc = new MyClass()                  MyClass        











 


Ada 4 cara untuk melakukan deklarasi dan pembuatan objek (ingat NamaKelas = NamaConstructor)
Cara1 :
NamaKelas namaObjek;  // deklarasi
namaObjek = new NamaConstructor(); // pembuatan
Deklarasi dan pembuatan objek boleh jadi satu dalam suatu kelas. Deklarasi dan pembuatan objek boleh dipisah di kelas yang berbeda, misalnya deklarasi objek di method main() pada kelas1, sedangkan pembuatan/instansiasi  objek berada pada kelas2.
Cara2 :
NamaKelas namaObjek = new NamaConstructor();
Artinya dua proses deklarasi dan pembuatan dijadikan satu.
Cara3 :
new NamaConstructor();
Cara ini objek diinstansiasi tanpa nama, tujuannya hanya untuk menjalankan constructor.
Cara4 :
New NamaKelas(”…..”).namaMethod();

1.3.   Penggunaan Objek
Penggunaan objek sebenarnya untuk memanggil method yang merupakan sifat objek tersebut.
Bentuk umum :
namaObjek.namaMethod([daftarNilaiParameter]);
namaObjek.namaAttribute;

1.4.   Penghancuran Objek
Teknik yang digunakan java untuk menangani objek yang sudah tidak diperlukan lagi disebut garbage collection. Objek yang sudah tidak diperlukan lagi akan terdeteksi oleh JVM, sehingga secara otomatis dihancurkan oleh garbage collector (bukan oleh programmer).

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More