P. 1
TUGAS MAKALAH

TUGAS MAKALAH

|Views: 299|Likes:
Published by Ferdi Septianda

More info:

Published by: Ferdi Septianda on Jun 04, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

12/21/2014

pdf

text

original

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

kita akan menemui pesan error berikut ini.out."). public class Human extends LivingThing { public void walk(){ System.. juga subclass akan menjadi class abstract.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. atau lainnya.. Contohnya. Human. dibutuhkan untuk override method abstract walk(). oleh karena itu tidak dapat di-instantiate.* abstract method walk * Kita ingin method ini di-overridden oleh subclasses */ public abstract void walk(). } Ketika class meng-extend class abstract LivingThing. kita tulis. }} Jika class Human tidak dapat overridde method walk. public interface [InterfaceName] { //beberapa method tanpa isi } 16 .

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->