welcome To My Blog..

This is my Blog,,,and this is my Story,,

Sabtu, 30 Maret 2013

Penggunaan Inheritance dan Polymorphism pada Java

Inheritance dan Polymorphism pada Java

1. Inheritance

Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya.
Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. 
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.


Contoh implementasi inheritance :
public class Pegawai {
public String nama;
public double gaji;
}

public class Manajer extends Pegawai {
public String departemen;
}
Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut:
super.data_member -> merujuk pada data member pada parent class
super.function_member() -> merujuk pada function member pada parent class
super() -> merujuk pada konstruktor pada parent class



Contoh Program Java Inheritance
___________________________________________________________________________________________


class Parent {
public int x = 5;
}

class Child extends Parent {
public int x = 10;
public void Info(int x) {
System.out.println("Nilai x sebagai parameter = " + x);
System.out.println("Data member x di class Child = " + this.x);
System.out.println("Data member x di class Parent = " +
super.x);
}

}
public class NilaiX {
public static void main(String args[]) {
Child tes = new Child();
tes.Info(20);
}
}


2. Polymorphism

Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
olymorphism adalah salah satu dari tiga kemampuan yang mendasar yang dimiliki oleh OOP, setelah data abstraction dan inheritance.Polymorphism menyediakan cara yang berbeda pada pemisahan interface dari implementasinya, untuk memasangkan ulang apa dari bagaimana. Polymorphism memberikan organisasi kode yang lebih baik dan kode menjadi lebih mudah dibaca, juga memberikan suatu kemampuan pada program untuk berkembang secara terus menerus baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan kemampuan-kemampuan yang baru.
Dalam pembahasan ini kita akan menjelaskan tentang polymorphism (juga disebut sebagai dynamic binding atau late binding atau run-time binding) mulai dari yang paling dasar, dengan contoh yang membeberkan tentang pengaruh polymophism dalam program yang akan dibuat.Sebelumnya kita mengetahui kalau sebuah object dapat digunakan sebagai tipenya sendiri atau sebagai object dari tipe asalnya. Mengambil handle sebuah object dan memperlakukannya sebagai handle dari tipe asal disebut sebagai upcastingkarena urutan dari cabang-cabang inheritance digambarkan class asal terletak yang paling atas.



Contoh program sederhana Polymorphism
__________________________________________________________________________________

class A
{
    void x()
    {
        System.out.println("A.x()");
    }
   
   
    void y()
    {
        System.out.println("A.y()");
    }
}
class B extends A
{
    /*
     *Kelas B akan memiliki 3 buah method, yaitu x,y dan z
     */
   
    //Method y di overriding
    void y()
    {
        System.out.println("B.y()");
    }
   
    //method z yang hanya ada di B
    void z()
    {
        System.out.println("B.z()");
    }
}
class MyInheritance03
{
    public static void main(String[] args)
    {
        A a = new A();  //bukan polymorphisme
        A ab = new B(); //POLYMORPHISME !!!
        B b = new B();  //bukan polymorphisme
       
        System.out.println("\nA a = new A()");
        a.x();
        a.y();
       
        /*
         *Method-method yang dapat dipanggil dari variabel
         *reference ab hanyalah method x dan y sebab type
         *dari ab adalah A.
         */
        System.out.println("\nA ab = new B()");
        ab.x(); //x yang dijalankan adalah x dari A
        ab.y(); //y yang dijalankan adalah y dari B
        //ab.z()    //tidak ada !!!
       
        System.out.println("\nB b = new B()");
        b.x();
        b.y();
        b.z();
    }
}
 
 

Penggunaan Inheritance dan Polymorphism pada Java

Inheritance dan Polymorphism pada Java

1. Inheritance

Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya.
Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. 
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.


Contoh implementasi inheritance :
public class Pegawai {
public String nama;
public double gaji;
}

public class Manajer extends Pegawai {
public String departemen;
}
Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut:
super.data_member -> merujuk pada data member pada parent class
super.function_member() -> merujuk pada function member pada parent class
super() -> merujuk pada konstruktor pada parent class



Contoh Program Java Inheritance
___________________________________________________________________________________________


class Parent {
public int x = 5;
}

class Child extends Parent {
public int x = 10;
public void Info(int x) {
System.out.println("Nilai x sebagai parameter = " + x);
System.out.println("Data member x di class Child = " + this.x);
System.out.println("Data member x di class Parent = " +
super.x);
}

}
public class NilaiX {
public static void main(String args[]) {
Child tes = new Child();
tes.Info(20);
}
}


2. Polymorphism

Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
olymorphism adalah salah satu dari tiga kemampuan yang mendasar yang dimiliki oleh OOP, setelah data abstraction dan inheritance.Polymorphism menyediakan cara yang berbeda pada pemisahan interface dari implementasinya, untuk memasangkan ulang apa dari bagaimana. Polymorphism memberikan organisasi kode yang lebih baik dan kode menjadi lebih mudah dibaca, juga memberikan suatu kemampuan pada program untuk berkembang secara terus menerus baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan kemampuan-kemampuan yang baru.
Dalam pembahasan ini kita akan menjelaskan tentang polymorphism (juga disebut sebagai dynamic binding atau late binding atau run-time binding) mulai dari yang paling dasar, dengan contoh yang membeberkan tentang pengaruh polymophism dalam program yang akan dibuat.Sebelumnya kita mengetahui kalau sebuah object dapat digunakan sebagai tipenya sendiri atau sebagai object dari tipe asalnya. Mengambil handle sebuah object dan memperlakukannya sebagai handle dari tipe asal disebut sebagai upcastingkarena urutan dari cabang-cabang inheritance digambarkan class asal terletak yang paling atas.



Contoh program sederhana Polymorphism
__________________________________________________________________________________

class A
{
    void x()
    {
        System.out.println("A.x()");
    }
   
   
    void y()
    {
        System.out.println("A.y()");
    }
}
class B extends A
{
    /*
     *Kelas B akan memiliki 3 buah method, yaitu x,y dan z
     */
   
    //Method y di overriding
    void y()
    {
        System.out.println("B.y()");
    }
   
    //method z yang hanya ada di B
    void z()
    {
        System.out.println("B.z()");
    }
}
class MyInheritance03
{
    public static void main(String[] args)
    {
        A a = new A();  //bukan polymorphisme
        A ab = new B(); //POLYMORPHISME !!!
        B b = new B();  //bukan polymorphisme
       
        System.out.println("\nA a = new A()");
        a.x();
        a.y();
       
        /*
         *Method-method yang dapat dipanggil dari variabel
         *reference ab hanyalah method x dan y sebab type
         *dari ab adalah A.
         */
        System.out.println("\nA ab = new B()");
        ab.x(); //x yang dijalankan adalah x dari A
        ab.y(); //y yang dijalankan adalah y dari B
        //ab.z()    //tidak ada !!!
       
        System.out.println("\nB b = new B()");
        b.x();
        b.y();
        b.z();
    }
}
 
 

Sabtu, 04 Juni 2011

Twilight movie

Twilight adalah sebuah seri novel karya Stephenie Meyer. Seri ini menggambarkan tentang tokoh utamanya, yaitu Isabella "Bella" Swan, seorang remaja yang pindah ke kota Forks, Washington yang kehidupannya berubah ketika ia bertemu dengan Edward Cullen, seorang vampir 'vegetarian'(tidak minum darah manusia). Seluruh isi seri Twilight itu diceritakan melalui sudut pandang Bella Swan dengan pengecualian epilognya Eclipse dan novel Breaking Dawn.

Twilight

Bella Swan baru saja pindah dari Phoenix, Arizona yang mayoritas bercuaca panas ke Forks, Washington yang mayoritas cuacanya hujan untuk tinggal bersama ayahnya, Charlie, setelah ibunya, Renée, menikah dan tinggal bersama suami barunya, Phil, seorang pemain bisbol. Setelah pindah ke Forks, Bella akhirnya tertarik pada seorang pemuda misterius yang tampan, yang merupakan teman sekelasnya di pelajaran Biologi, Edward Cullen, yang ternyata merupakan seorang vampir vegetarian (vampir yang meminum darah hewan, bukan manusia). Edward mempunyai kemampuan seperti halnya vampir yang lain (kuat, cepat, apabila terkena matahari langsung maka tubuhnya berkilauan dan pada saat tertentu matanya dapat berubah warna)selain itu edward juga mempunyai sebuah bakat untuk dapat membaca pikiran orang lain.tapi dia tak mampu membaca pikiran bella. Pada awalnya, Edward berusaha menjauhi Bella karena Edward selalu merasa tergoda jika menghirup aroma darah Bella. Akan tetapi lama kelamaan akhirnya Edward dapat mengatasi masalah tersebut dan kemudian mereka pun jatuh cinta satu sama lain, yang membuat sekolah membicarakan mereka. Suatu ketika, Bella diajak untuk melihat keluarga Cullen bermain bisbol. Tanpa disangka, tiba-tiba datanglah sekelompok vampir nomaden yang terdiri dari James (vampir dengan bakat melacak), Victoria (vampir dengan insting melarikan diri yang luar biasa hebat dan merupakan pasangan dari James), serta Laurent. Begitu bertemu dengan Bella, James sudah mulai mengincar darah Bella. Semua anggota keluarga Cullen bersatu untuk menyelamatkan Bella. Bella melarikan diri ke Phoenix, Arizona bersama Alice (vampir dengan bakat melihat masa depan) dan Jasper (vampir dengan bakat mengendalikan perasaan di sekitarnya dan merupakan pasangan dari Alice). Saat kabur ke Phoenix, Bella dijebak oleh James. Untungnya Edward dan keluarganya segera menyadari hilangnya Bella dan segera bergegas untuk pergi menyelamatkan Bella. Edward tiba tepat pada waktunya dan berhasil menyelamatkan Bella, setelah itu mereka segera kembali ke Forks dan mengikuti acara prom yang diselenggrakan oleh sekolah mereka.

New Moon

Edward dan keluarganya meninggalkan Forks karena Edward percaya bahwa mereka dapat menempatkan Bella dalam bahaya.Edward memberi alasan bahwa dia tidak mencintai bella lagi dan berharap agar gadis itu melupakan cintanya pada edward. Bella jatuh dalam depresi berat, sampai akhirnya ia menemukan sahabat baru yang merupakan seorang werewolf, Jacob Black. Jacob dan werewolf lain dari sukunya harus melindungi Bella dari Victoria, vampir yang berusaha membalas dendam akibat kematian pasangannya, James, dengan berusaha membunuh Bella, yang merupakan pasangan Edward Cullen yang telah membunuh pasangannya. Akibat suatu kesalah pahaman, Edward menyangka Bella sudah meninggal karena bunuh diri(Bella terjun dari tebing untuk mencari kesenangan). Edward pun memutuskan untuk menyusul Bella(edward pernah berkata bahwa dia tak bisa hidup jika bella tak ada) dengan meminta agar dirinya dibunuh oleh keluarga Voltury yang merupakan hakim di dunia vampir, tapi kemudian dihentikan oleh Bella dan Alice yang menyusul Edward ke Voltera, Italy. Mereka dipaksa menghadap klan voltury (Aro, Marcus, Caius), Voltury marah karena Bella terlalu banyak tahu tentang kehidupan vampir sedangkan dia sendiri adalah makanan yang sangat menggoda bagi para vampir. Berkat bakat Alice yang melihat bahwa Bella akan menjadi seperti mereka di masa depan, mereka pun bisa dibebaskan. Tetapi Voltury akan secepatnya mengecek keberadaan Bella sebagai vampir, kalau tidak seluruh keluarga Cullen pun terancam dihukum.Bella (yang sejak pacaran dengan Edward berharap diubah menjadi vampir)pun menyanggupinya dengan voting meminta persetujuan dari keluarga Cullen (yang telah kembali ke Forks).

Eclipse

Victoria, vampir yang dendam terhadap Bella pun berkeliaran di Forks untuk mencari celah membunuh Bella. Dia pun membuat suatu pasukan "vampir baru" untuk membantunya melawan Keluarga Cullen dan membunuh Bella. Sementara itu, Bella harus memilih antara hubungannya dengan Edward atau persahabatannya dengan Jacob(karna ternyata jacob cinta juga pada bella). Keluarga cullen dan Geng werewolf Jacob terpaksa bekerja sama untuk memusnakan vampir-vampir baru buatan victoria.Sehingga mereka sukses membasmi Victoria beserta pasukkannya. Jacob pun marah mengetahui pilihan Bella yang memutuskan menjadi vampir.Dia berusaha menyakinkan bella bahwa Bella itu juga mencintainya meskipun tidak sebesar cintanya kepada edward.namun bella menyadarkannya bahwa bella tidak akan sanggup hidup tanpa edward disisinya. akhirnya dengan berat hati ia merelakan hubungan Edward dengan Bella dan untuk beberapa saat dia pergi jauh dari hidupnya bella.

Breaking Dawn

Bella dan Edward menikah, tapi bulan madu mereka terpotong setelah Bella mengetahui bahwa dirinya hamil. Kehamilannya berjalan amat cepat dan membuat Bella menjadi lemah. Ia hampir meninggal saat melahirkan putrinya yang setengah manusia dan setengah vampir, Renesmee(diambil dari nama Renee dan Esme), tetapi Edward menyuntikkan racunnya langsung ke jantung Bella sehingga berubah menjadi seorang vampir. Irina, vampir dari clan Denali tanpa sengaja melihat Renesmee dan Jacob saat dia berada di Forks. Lalu ia pun menyangka Renesmee sebagai "immortal child"--anak yang diciptakan oleh vampir.( Dalam dunia vampir, penciptaan anak-anak vampir sangat dilarang demi menjaga kerahasiaan mereka ). Kemudian Irina melaporkan hal tersebut langsung kepada Klan Volturi. Merasa was-was, Keluarga Cullen pun mengumpulkan vampir-vampir yang dapat menjadi saksi bahwa Reneesme bukan "immortal child". Berkat daya tarik Renesmee yang membuat semua vampir terpikat dan didukung dengan kemampuannya memperlihatkan semua yang ia alami hanya dengan menyentuh, maka mereka (para saksi) pun mengerti dan mau mendukung keluarga Cullen. Selain itu, sebagian dari mereka rela bertarung di pihak Cullen kalau diperlukan. Alice yang pergi bersama dengan Jasper pun kembali tepat pada saat Klan Volturi mulai menyerang Keluarga Cullen dan saksi-saksinya. Ia membawa bukti hidup keberadaan vampir sejenis Renesmee. Disaat yang sama, kekuatan Bella sebagai perisai adalah penolong kelompok Cullen karena menangkis segala serangan yang dilancarkan oleh Jane dan Alec. Dengan bukti hidup itulah keluarga Cullen dibebaskan dan hidup tenteram selama-lamanya.
Dalam novel ini sudut pandang sempat beralih kepada sudut pandang Jacob, yang menceritakan bagaimana kehidupan Jacob saat menemani Bella yang sedang sekarat dan bagaimana dia bernafsu membunuh Renesmee yang menurut Jacob telah membunuh Bella tetapi akhirnya Jacob malah mencintai Renesmee dan melindunginya mati-matian.

Tokoh Utama

Bella Swan—Adalah tokoh protagonis dari seri ini, Bella digambarkan sebagai gadis ceroboh dan "Magnet Bahaya". Ia juga diceritakan selalu memiliki rasa percaya diri yang rendah dan selalu merasa tak pantas di sisi Edward. Bella memiliki mata berwarna coklat, kulit pucat dan rambut hitam dengan semburat merah kalau terkena cahaya matahari. Ia imun terhadap kekuatan supernatural yang berkaitan dengan pikirannya, seperti kemampuan Edward untuk membaca pikiran. Setelah ia bertransformasi menjadi vampir di buku keempat, Bella mendapat kekuatan yang dapat membuat perlindungan bagi dirnya sendiri maupun orang di sekitarnya menjadi imun terhadap berbagai kekuatan supernatural lainnya.

Edward Cullen—Edward adalah vampir pertama yang diciptakan oleh Carlisle Cullen, dalam cara hidupnya mereka menyebut diri mereka sebagai vampir "vegetarian". Edward digambarkan memiliki rasa benci yang luar biasa pada Jacob Black yang juga mencintai Bella. Tetapi dalam Breaking Dawn, ia menganggap Jacob sebagai saudara dan juga teman bahkan sebagai keluarga alias menantu karena Jacob yang terimprit dengan Renesmee anaknya. Lebih vampir lainnya, Edward memiliki kemampuan khusus diatas rata-rata; ia dapat membaca pikiran orang/vampi lain dalam jarak bermil-mil sekalipun, selain itu ia adalah yang tercepat dari anggota keluarganya. Bella imun terhadap kekuatannya ini, namun setelah berubah menjadi vampir, Bella dapat meruntuhkan pertahannannya tersebut jika ia suka.

Jacob Black—Adalah karakter pendukung di dalam novel pertama, Jacob diperkenalkan sebagai anggota dari suku Quileute. Ia muncul kembali dalam New Moon dengan peranan lebih besar, menjadi werewolf dan sahabat baik Bella yang dimana saat itu sedang mengalami depresi akibat ditinggalkan Edward. Meskipun ia jatuh cinta pada Bella, Bella mengangapnya hanya sebatas kawan baik dan ia pun memendam rasa yang sangat besar terhadap Bella. Di dalam Eclipse Bella sadar bahwa ia juga mencintai Jacob meskipun tak sebesar rasa cintanya pada Edward. Dalam Breaking Dawn, Jacob akhirnya menemukan belahan jiwanya yaitu putri dari Bella dan Edward, Renesmee, hal ini yang membuat Bella sempat menyerang/mencoba menggigit Jacob karena terkejut akan imprit yang dialami Jacob kepada anaknya.