DAFTAR ISI

Halaman Judul ................................................................................................. 1 Kata Pengantar .................................................................................................. 2 Daftar Isi .......................................................................................................... 3 Bab I Pendahuluan ........................................................................................... 4 Bab II Pembahasan .......................................................................................... 6 Mendefinisikan Superclass dan Subclass ............................................. 6 Kata Kunci Super ................................................................................. 9 Overidding Method ............................................................................... 10 Method Final and class final ................................................................ 11 Polimorfisme ........................................................................................ 12 Abstract Class ...................................................................................... 14 Membuat Interface ................................................................................ 16 Bab III Penutup ................................................................................................ 18 Daftar Pustaka ................................................................................................... 19

1

saya sangat mengharapkan adanya kritik dan saran dari berbagai pihak agar laporan ini lebih baik dan bermanfaaat. 02 April 2012 Juju Nurul Utami 2 . terselesaikannya makalah ini tentu saja bukan karena kemampuan saya semata-mata. Namun karena adanya dukungan dan bantuan dari pihak-pihak yang terkait. Oleh karena itu. Oleh karena itu. berbagai hambatan telah saya alami. Bengkulu. Dalam penulisan makalah ini.KATA PENGANTAR Puji syukur saya panjatkan kehadirat Allah SWT. Saya juga berterima kasih kepada teman-teman saya sehingga laporan ini dapat diselesaikan. sehingga Makalah Pemrograman Berorientasi Objek mengenai Polimorfisme telah dapat saya selesaikan. perlu kiranya saya dengan ketulusan hati mengucapkan terima kasih kepada Asisten Dosen yang telah membimbing saya dalam menyelesaikan laporan ini. Sehubungan dengan hal tersebut. Dalam penyusunan laporan ini. Adapun penulisan tugas ini bertujuan untuk tugas teori Pemrograman Berorientasi Objek. saya menyadari pengetahuan dan pengalaman saya masih sangat terbatas. atas segala kebesaran dan limpahan nikmat yang diberikan-Nya.

Anda harus mendefinisikan method yang akan dipanggil ini dalam kelas.Tipe yang dikembalikan juga harus sama.Method dari kelas tutunan yang akan dieksekusi. .Method ini harus merupakan member dari kelas induk. dipanggil oleh objek dari kelas induk.Atribut akses dari method di kelas turunan tidak boleh lebih terbatas 10 dari yang ada di kelas induk. Hal inilah yang kita sebut sebagai Polimorfisme . akan tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class tersebut. method ini harus merupakan member dari kelas induk. Dimana ketiga class tersebut adalah turunan dari class “Kendaraan”. langkah – langkah untuk membuat polymorphism adalah : . Untuk mendapatkan operasi polymorphism dari suatu method. .Nama method di kelas induk harus sama dengan yang ada di kelas tutunan. “Mobil” dan “Pesawat”. Dengan kata lain. jika pada class “Mobil” akan menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan 300Km. Beberapa syarat yang harus dipenuhi agar operasi polymorphism dapat berlangsung adalah : . yaitu suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”. yaitu penggunaan method yang sama.Deklarasi method yang akan di-polymorphism-kan dalam body kelas induk 3 . Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”. . Oleh karena itu.BAB I PENDAHULUAN Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu “ Polimorfisme ”. Dimana jika method “Move()” dipanggil pada class “Motor” akan menghasilkan perpindahan 30Km. yang akan menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut. .

Dalam tiap kelas turunan dari kelas induk. sifat ini secara otomatis diwariskan dari semua subclasses. Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass.Definisikan method ini dalam kelas induk sebagai method yang tidak melakukan apapun (hanya terdiridari „{„ dan „}‟ ). definisikan ulang method tadi dengan memastikan atribut aksesnya tidak lebih terbatas dari atributnya yang ada di kelas induk.Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa 4 . Jadi. semua class. Subclass hanya perlu mengimplementasikan perbedaannya sendiri dan induknya. Contoh hirarki class diperlihatkan di bawah ini. termasuk class yang membangun Java API. dan tidak berlaku untuk field data. Interface Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant). Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Pewarisan Dalam Java.Sementara beberapa class di bawah class pokok dalam hirarki lass dikenal sebagai subclass dari class tersebut.. . Satu hal yang penting lainnya yang harus di ingat adalah polymorphism hanya berlaku untuk method. adalah subclassesdari superclass Object.

Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class. Dengan catatan bahwainterface-interface juga menunjukkan polimorfisme. untuk mengimplementasikan sifat-sifat yang umum. dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung daritipe object yang melewati pemanggil method interface. tanpa memperhatikan lokasinya dalam hirarki class. BAB II 5 .tubuh.

out. pewarisan dan interface  Mendefinisikan Superclass dan Subclass Untuk memperoleh suatu class. kita akan membuat contoh class induk.PEMBAHASAN Pada pembahasan ini. public class Person { protected String name. this. terdapat analisis kode pada beberapa program yang menggunakan polimorfisme . } /** * Constructor dengan dua parameter */ public Person( String name. address = "". Untuk mengilustrasikan ini. String address ){ this.address = address. Dimisalkan kita mempunyai class induk yang dinamakan Person. name = "".println(“Inside Person:Constructor”).name = name. 6 . kita menggunakan kata kunci extend. protected String address /** * Default constructor */ public Person(){ System.

address = add. } public void setAddress( String add ){ this. Alasannyakita melakukan ini yaitu. Sekarang. kita ingin membuat class lain bernama Student. kita tulis. protected dan default dapat diakses oleh subclasses-nya. Untuk melakukan ini. subclasses tidak dapat menggunakannya.} /** * Method accessor */ public String getName(){ return name. kita inginkan atribut-atribut ini untuk bisa diakses oleh subclassesdari superclassess. public class Student extends Person 7 .name = name. } } Perhatikan bahwa atribut name dan address dideklarasikan sebagai protected. sehingga kita dapat mewariskan semua properti dan method dari setiap class Person yang ada. Karena Student juga sebagai Person. } public void setName( String name ){ this. } public String getAddress(){ return address. Catatan bahwa semua properti dari superclass yang dideklarasikan sebagai public. Jika kita mendeklarasikannya sebagai private. kita putuskan hanya meng-extend class Person.

} Dalam kode ini. Keluaran dari program adalah. Setelah itu.out. Untuk mengilustrasikannya. default constructor dari superclass secara mutlak meminta untuk melakukan inisialisasi yang seharusnya. perhatikan kode berikut : public static void main( String[] args ){ Student anna = new Student(). pernyataan di dalam subclass dieksekusi. //beberapa kode di sini } // beberapa kode di sini } Ketika object Student di-instantiate. kita membuat sebuah object dari class Student. Inside Person:Constructor Inside Student:Constructor 8 .println(“Inside Student:Constructor”).{ public Student(){ System.

9 . kita tunjukkan contoh dari pemanggil constructor super. Kata Kunci Super Subclass juga dapat memanggil constructor secara eksplisit dari superclass terdekat.Sebagai contoh.println("Inside Student:Constructor"). System. "SomeAddress" ). } Kode ini memanggil constructor kedua dari superclass terdekat (yaitu Person) dan mengeksekusinya. public Student(){ super( "SomeName". berdasar dari argumen sebelumnya. Pemanggil constructor super dalam constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan.out. Hal ini dilakukan dengan pemanggil construktor super. Diberikan kode berikut untuk Student. Contoh kode lain ditunjukkan sebagai berikut. public Student(){ super(). Person dan Student.println("Inside Student:Constructor").out. pada contoh class sebelumnya. System.

Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass(seperti reference this). method overriding digunakan. public class Person { 10 . Oleh karena itulah. Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super: 1. Termasuk constructor this() dan pemanggil super() TIDAK BOLEH TERJADI DALAM constructor YANG SAMA. Sebagai contoh. Misalnya kita mempunyai implementasi berikut untuk method getName dalam superclass Person. Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut. Pemanggil super() hanya dapat digunakan dalam definisi constructor. terkadang class asal perlu mempunyai implementasiberbeda dari method yang khusus dari superclass tersebut. }  Overriding Method Untuk beberapa pertimbangan. super. 2.} Kode ini memanggil default constructor dari superclass terdekat (yaitu Person) dan mengeksekusinya.name = “somename”. Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM constructor.address = “some address”. 3. public Student() { super.

println("Student: getName"). methodoverriddeakan dipanggil. jika kita ingin class Person untuk dideklarasikan final. } :} Jadi.Student: getName  Method final dan class final Dalam Java. Sebagai contoh.: : public String getName(){ System.println("Parent: getName").out. public final class Person { 11 . return name.out. public class Student extends Person { : : public String getName(){ System. Untuk mendeklarasikan class untuk menjadi final kita hanya menambahkan kata kunci final dalam deklarasi class. juga memungkinkan untuk mendeklarasikan class-class yang tidak lama menjadi subclass. kita tulis. method getName dalam subclass Student. kita tulis. ketika kita meminta method getName dari object class Student. } : } Untuk override. keluarannya akan menjadi. return name. Class ini dinamakan class final.

Double. public static main( String[] args ) 12 . Sebagai contohnya. kita dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Di bawah ini adalah hierarkinya. Contoh-contoh dari class ini adalah Integer. Untuk mendeklarasikan method untuk menjadi final.//area kode } Beberapa class dalam Java API dideklarasikan secara final untuk memastikan sifatnya tidak dapat di-override. kita tambahkan kata kunci final ke dalam deklarasi method. } Method static juga secara otomatis final. dan String. Contohnya. kitatambahkan subclass lain dari Person yaitu Employee. Ini memungkinkan dalam Java membuat method yang tidak dapat di-override. Ini artinya Anda tidak dapat membuatnya override. class induk Person dan subclass Student dari contoh sebelumnya. kita tulis. Dalam Java. Method inidapat kita panggil method final. jika kita ingin method getName dalam class Person untuk dideklarasikan final.  Polimorfisme Sekarang. public final String getName(){ return name.

return name.println(“Person Name:” + name). public class Person { public String getName(){ System.out. } } public class Employee extends Person { public String getName(){ 13 . Employee employeeObject = new Employee(). //Person menunjuk kepada // object Student //beberapa kode di sini } Sekarang dimisalkan kita punya method getName dalam superclass Person kita. dan kita override method ini dalam kedua subclasses Student dan Employee.{ Person ref. return name. } } public class Student extends Person { public String getName(){ System. Student studentObject = new Student().out.println(“Student Name:” + name). ref = studentObject.

//getName dari Employee //class dipanggil System. ref = employeeObject. //Person menunjuk kepada // object Student String temp = ref. method getName dari Employee akan dipanggil. ref = studentObject.out.println(“Employee Name:” + name).System. //getName dari Student //class dipanggil System.getName().println( temp ).  Abstract Class 14 . } Kembali ke method utama kita.out. Sekarang. ketika kita mencoba memanggil method getName dari reference Person ref.println( temp ). jika kita berikan ref ke object Employee. return name. method getName dari object Student akan dipanggil. Employee employeeObject = new Employee(). public static main( String[] args ) { Person ref. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal.getName(). Student studentObject = new Student(). //Person menunjuk kepada // object Employee String temp = ref. secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.out. } Kemampuan dari reference untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme.

beberapa ciri umum dalam kehidupan sudah biasa. Sebagai contoh. kita akan membuat superclass bernama LivingThing. Akan tetapi..out. kita manusia berjalan dengan dua kaki. } /** 15 . Sekarang mari membuat contoh class abstract. eat. public abstract class LivingThing { public void breath(){ System. method walk.Misalnya kita ingin membuat superclass yang mempunyai method tertentu yang berisiimplementasi. Ambil manusia sebagai misal.. Akan tetapi. dan juga beberapa method yang akan di-overridden oleh subclasses nya.").. dan walk.. class ini mempunyai method tertentu seperti breath.out.").println("Living Thing breathing. Kita ambil contoh. dimana kehidupan lainnya seperti anjing berjalan dengan empat kaki.println("Living Thing eating. itulah kenapa kita inginkan membuat superclass umum dalam hal ini. sleep. Tidak semua kehidupan berjalan(walk) dalam cara yang sama. } public void eat(){ System. ada beberapa method di dalam superclass yang sifatnya tidak dapat digeneralisasi.

println("Human walks.java:1: Human is not abstract and does not override abstract method walk() in LivingThing public class Human extends LivingThing ^ 1 error  Membuat Interface Untuk membuat interface. juga subclass akan menjadi class abstract."). }} Jika class Human tidak dapat overridde method walk. kita akan menemui pesan error berikut ini. dibutuhkan untuk override method abstract walk().* abstract method walk * Kita ingin method ini di-overridden oleh subclasses */ public abstract void walk(). Human..out. kita tulis. atau lainnya. } Ketika class meng-extend class abstract LivingThing. public interface [InterfaceName] { //beberapa method tanpa isi } 16 .. oleh karena itu tidak dapat di-instantiate. Contohnya. public class Human extends LivingThing { public void walk(){ System.

} 17 . public boolean isLess( Object a.Sebagai contoh. Object b). Object b). mari kita membuat sebuah interface yang mendefinisikan hubungan antara dua object menurut urutan asli dari object. Object b). public boolean isEqual( Object a. public interface Relation { public boolean isGreater( Object a.

Ketika objek tersebut menunjuk kelas dasar . tergantung pada saat itu kelas mana yang ditunjuk. tidak dapat objek turunan menunjuk kelas dasar.Dalam hal ini objek dapat memiliki beberapa bentuk . tetapi ketika objek tersebut menunjuk kelas turunan objek tersebut berperilaku seperti kelas turunan . objek tersebut berperilaku seperti kelas dasar . dan dihubungkan dengan garis penghubung dengan tanda segitiga yang diletakkan di dekat kelas supernya. Jika kelas B adalah kelas turunan dari kelas A. bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan . Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan. Kelas turunan bisa memiliki struktur atau perilaku tambahan dari kelas supernya. 18 . Hubungan antara kelas turunan dan kelas super sering dilukiskan dalam bentuk diagram di mana kelas turunan digambarkan di bawah kelas supernya. maka kita bisa juga menyebut kelas A adalah kelas super dari kelas B.BAB III PENUTUP Polimorfisme erat kaitannya dengan pewarisan . Yang perlu menjadi catatan. Atau bahkan kelas turunan bisa mengubah atau mengganti perilaku kelas supernya. Istilah pewarisan berarti suatu kelas bisa mewariskan sebagian atau keseluruhan struktur dan perilaku kelas lain.

DAFTAR PUSTAKA www.com www.com www. 19 .lyracc.wikipedia.scribd.com .com www.google.

Sign up to vote on this title
UsefulNot useful