02. pemrograman berbasis objek-ok

15
Algoritma dan Pemrograman 3 PEMROGRAMAN BERBASIS OBJEK A. Konsep Pemrograman Berbasis Objek 1. Desain Berorientasi object Desain berorientasi object adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software. 2. Class Class mengizinkan dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint, dimana model dari object yang dibuat berdasarkan pada tipe data baru ini. 3. Object Sebuah object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari sebuah class. Ini juga dikenal sebagai instance. Instance dibuat sewaktu meng-instantiate class menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah object yaitu entiti Student. 4. Atribut Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data. Kembali lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor siswa. 5. Method Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti siswa adalah method register. 6. Konstruktor Konstruktor adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi sebuah object baru. Ingat bahwa konstruktor bukan member (yaitu atribut, method atau inner class dari sebuah object). 7. Package Package menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya dapat disamakan dengan direktorinya. 8. Enkapsulasi Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada. 9. Abstraksi Sementara enkapsulasi menyembunyikan detail, abstraksi mengabaikan aspek dari subyek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak mengkonsentrasikan yang ada. 10. Inheritance atau Pewarisan Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 1

Upload: iqbal-ardiansyah

Post on 03-Feb-2016

247 views

Category:

Documents


0 download

DESCRIPTION

Artikel yang bagus. check aja

TRANSCRIPT

Page 1: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

PEMROGRAMAN BERBASIS OBJEK

A. Konsep Pemrograman Berbasis Objek1. Desain Berorientasi object

Desain berorientasi object adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan (state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software.

2. ClassClass mengizinkan dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint, dimana model dari object yang dibuat berdasarkan pada tipe data baru ini.

3. ObjectSebuah object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari sebuah class. Ini juga dikenal sebagai instance. Instance dibuat sewaktu meng-instantiate class menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah object yaitu entiti Student.

4. AtributAtribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data. Kembali lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor siswa.

5. MethodSebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti siswa adalah method register.

6. KonstruktorKonstruktor adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi sebuah object baru. Ingat bahwa konstruktor bukan member (yaitu atribut, method atau inner class dari sebuah object).

7. PackagePackage menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya dapat disamakan dengan direktorinya.

8. EnkapsulasiEnkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada.

9. AbstraksiSementara enkapsulasi menyembunyikan detail, abstraksi mengabaikan aspek dari subyek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak mengkonsentrasikan yang ada.

10.Inheritance atau PewarisanPewarisan adalah hubungan antara class dimana dalam satu class ada superclass atau class induk dari class yang lain. Pewarisan menunjuk pada properti dan behaviour yang diterima dari nenek moyang dari class. Ini dikenal juga sebagai hubungan “is-a”. Perhatikan pada hirarki berikut.

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 1

Page 2: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

SuperHero adalah superclass dari class FlyingSuperHero dan UnderwaterSuperHero. Catatan bahwa FlyingSuperHero “is-a” SuperHero. Sebagaimana juga UnderwaterSuperHero “is-a” SuperHero

11.PolimorfismePolimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti bentuk. Menunjuk pada contoh sebelumnya pada pewarisan, dapat dilihat bahwa object SuperHero dapat juga menjadi object FlyingSuperHero atau object UnderwaterSuperHero.

12.InterfaceSebuah interface adalah sebuah contract dalam bentuk kumpulan method dan deklarasi konstanta. Ketika sebuah class implements sebuah interface, ini mengimplementasikan semua method yang dideklarasikan dalam interface.

B. EncapsulationEncapsulation yang terkadang disebut juga dengan information hiding pada dasarnya adalah kombinasi antara data dan method pada sebuah class yang ditujukan untuk menyembunyikan detail dari user (pengakses class) terhadap suatu object. Jika diambil contoh, maaf, yang agak sedikit vulgar tentang bagaimana orang lain “mengakses data” milik kita. Anggaplah orang ingin tahu apakah kita mempunyai penyakit panu yang merupakan suatu “data” pada diri kita. Sudah barang tentu, secara umum, kita tidak akan mengijinkan orang lain melihat langsung kulit kita karena itu adalah bagian “pribadi”. Akan tetapi orang lain dapat mengetahuinya menggunakan “metode” penyampaian yang kita berikan: “Saya tidak panuan”. Jadi ada bagian “publik” dan juga ada bagian “pribadi”. Di dalam OOP, encapsulation dapat dilakukan dengan terlebih dahulu memahami access modifier yang mendefiniskan bagaimana suatu data atau method dapat diakses. Ada empat macam access modifier pada OOP, yaitu:1. Private : hanya diakses class itu sendiri2. Public : dapat diakses dari manapun3. Protected : hanya dapat diakses dari package (satu folder) dan subclass4. Default : tanpa modifier, hanya bisa diakses dari package dan class itu sendiri.

Dengan menggunakan encapsulation kita dapat membatasi akses langsung suatu class atau program kecuali melalui suatu method yang sudah diberikan. Perhatikan class Mahasiswa dan class MahasiswaTest berikut ini. Perhatikan pula cara deklarasi atribut dan method-method yang terdapat dalam class Mahasiswa.

Public class Mahasiswa{ //deklarasi private attribute

private String nama; private String nim; private String alamat;

public Mahasiswa() { }

//Constructor dengan dua input parameter public Mahasiswa(String nama, String nim) {

this.nama = nama; this.nim = nim;

} //Constructor dengan tiga input parameter

public Mahasiswa(String nama, String nim, String alamat) { this.nama = nama; this.nim = nim;

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 2

Page 3: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

this.alamat = alamat; }

//mengakses atribut alamat public String getAlamat() {

return alamat; }

//mengakses atribut nama public String getNama() {

return nama; }

//mengakses attribut nim public String getNim() {

return nim; }

//mengisi atribut alamat public void setAlamat(String alamat) {

this.alamat = alamat; }

}

Class MahasiswaTest class MahasiswaTest{

public static void main(String[] args){ Mahasiswa objMhs; String localNama, localNim; objMhs=new Mahasiswa("Andriani","123456"); objMhs.setAlamat("Watugong 212 Malang"); localNama=objMhs.getNama(); localNim=objMhs.getNim();

} }

Bukankah lebih sederhana jika pada class Mahasiswa kita deklarasikan data nama, nim, dan alamat dengan acces modifier public daripada harus membuat method-method khusus untuk mengaksesnya. Demikian pula cara penggunaannya class MahasiswaTest, mengambil dan mengubah isi data akan lebih sederhana.

class Mahasiswa{ //deklarasi private attribute

public String nama; public String nim; public String alamat;

}

class MahasiswaTest{ public static void main(String[] args){

Mahasiswa objMhs; String localNama, localNim; objMhs=new Mahasiswa("Andriani","123456");

objMhs.alamat="Watugong 212 Malang"; localNama=objMhs.nama; localNim=objMhs.nim;

} }

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 3

Page 4: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

Saat membuat object objMhs yang bisa dianggap sebagai proses “membuat seorang mahasiswa”, maka data nama dan nim tidak boleh diubah selama mahasiswa tersebut ada sehingga kita harus membuat data nama dan nim sebagai data read only. Jika data-data ini dibuat tidak read only yang dapat memberikan peluang akses penuh, maka kemungkinan akan terdapat masalah tersendiri. Dengan demikian diperlukan melindungi data nama dan nim dari perubahan-perubahan dari luar class, sehingga perlu diberikan modifier private. Kita akan buktikan pada kasus-kasus berikutnya. Method getNama, getNim, dan getAlamat disebut sebagi accesor method karena method tersebut memberikan kembalian nilai data yang sederhana. Sedangkan setAlamat disebut sebagai mutator method karena digunakan untuk memberikan suatu nilai yang sederhana.

Langkah-langkah di atas selanjutnya dapat digunakan untuk menerapkan sifat encapsulation atau information hiding. Jadi pada dasarnya encapsulation dapat dilakukan dengan:1. Mendeklarasikan data atau attribut dengan modifier private2. Memberikan accessor method (getter) untuk mengakses data3. Memberikan mutator method (setter) untuk memberikan nilai ke suatu data.

C. Inheritance (Pewarisan)Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan pada gambar di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut.

Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya sendiri dan induknya.

Istilah-istilah yang terkait dengan inheritance adalah1. Superclass atau parentClass yaitu Class yang mewariskan data dan methodnya

kepada class lain2. Subclass atau childClass yaitu Class yang mewarisi data dan method dari Superclass Sifat hierarki suatu inheritance pada class diagram adalah semakin ke atas semakin generic. Pada bahasa pemrograman Java, inheritance ditandai dengan keyword extends pada saat deklarasi child class.

1. Mendefinisikan Superclass dan Subclass Untuk memperoleh suatu class, digunakan kata kunci extend (keyword extends). Untuk mengilustrasikan ini, akan dibuat contoh class induk. Dimisalkan mempunyai class induk yang dinamakan Person.

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 4

Page 5: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

public class Person {

protected String name; protected String address;

/** * Default constructor */

public Person(){ System.out.println(“Inside Person:Constructor”); name = ""; address = "";

}

/** * Constructor dengan dua parameter */

public Person( String name, String address ){ this.name = name; this.address = address;

}

/** * Method accessor */

public String getName(){ return name;

}

public String getAddress(){ return address;

}

public void setName( String name ){ this.name = name;

}

public void setAddress( String add ){ this.address = add;

} }

Perhatikan bahwa atribut name dan address dideklarasikan sebagai protected. Alasannya dilakukan ini yaitu, diinginkan atribut-atribut ini untuk bisa diakses oleh subclasses dari superclassess. Jika mendeklarasikan sebagai private, subclasses tidak dapat menggunakannya. Catatan bahwa semua properti dari superclass yang dideklarasikan sebagai public, protected dan default dapat diakses oleh subclasses-nya. Sekarang, akan dibuat class lain bernama Student. Karena Student juga sebagai Person, maka diputuskan hanya meng-extend class Person, sehingga dapat mewariskan semua properti dan method dari setiap class Person yang ada. Untuk melakukan ini, maka ditulis,

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 5

Page 6: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

public class Student extends Person {

public Student(){ System.out.println(“Inside Student:Constructor”); //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. Setelah itu, pernyataan di dalam subclass dieksekusi. Untuk mengilustrasikannya, perhatikan kode berikut,

public static void main( String[] args ){ Student anna = new Student();

}

Dalam kode ini, dibuat sebuah object dari class Student. Keluaran dari program adalah,

Inside Person:Constructor Inside Student:Constructor

Alur program ditunjukkan sebagai berikut:

2. Keyword super dan this Keyword super digunakan untuk merefer ke class parent, sedangkan this digunakan untuk ke kelas itu sendiri. Contoh: super.getNama() yaitu mengakses method getNama() yang dimiliki oleh parent class super.gajiPokok yaitu mengakses data publik gajiPokok yang dimiliki oleh parent class this.getNama() yaitu mengakses method getNama() yang dimiliki kelas ini sendiri this.gajiPokok mengakses data member (public ataupun privat) yang dimiliki kelas

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 6

Page 7: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

Jika terdapat suatu method sbb: void gantiNilai(String nilai){

this.nilai=nilai; }

Perhatikan pada this.nilai=nilai;

Variable nilai di kanan tanda “=” adalah variabel lokal yang dimiliki oleh method gantiNilai() sedangkan variable nilai pada this.nilai mengacu pada data member yang dimiliki oleh suatu class. Pada saat melakukan inheritance, semua method dan data member yang tidak privat akan diwariskan kepada child class. Akan tetapi hal tersebut tidak berlaku pada method constructor. Method constructor tidak dapat diwariskan, sehingga child class harus membuat constructor sendiri. Lalu bagaimana menjaga agar contstructor dapat identik dengan constructor pada parent class? Caranya adalah dengan memberikan akses ke constructor parent class pada constructor child class dengan menggunakan method super()

super() yaitu mengakses constructor parent class

3. Overload dan override Overload adalah membuat lebih dari satu method dengan nama sama pada suatu class (Lihat contoh pada materi sebelumnya). Sedangkan Override adalah proses implementasi yang memodifikasi method yang lebih spesifik pada child class, method hasil modifikasi tetap menggunakan nama dan parameter input yang sama seperti yang digunakan oleh parent class.

Pada kasus inheritance child class sering memerlukan method yang lebih spesifik dibanding method dengan nama sama pada parent class. Perhatikan suatu contoh inheritance dan penggunaan super berikut:

Pada suatu perkuliahan, Assisten laboratorium adalah seorang Mahasiswa. Maka semua sifat mahasiswa akan diwarisi oleh asisten. Akan tetapi Assisten akan mempunyai sifat yang lebih khusus yaitu asisten memiliki laboratorium (sebagai tempat memberi asistensi).

Implementasi dengan java Class Mahasiswa sebagai parent class sudah dibuat pada contoh sebelumnya

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 7

Page 8: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

//Class assisten mewarisi sifat Mahasiswa class Assisten extends Mahasiswa{

private String laboratorium; //Attribut khusus yang dimiliki Assisten

//Constructor public Assisten(){

super(); // super(), memanggil contrucor milik parent class (Mahasiswa).

String nama=”Tidak ada nama”; String nim=”Tida ada nim”; super(nama,nim);

}

//Constructor dua input public Assisten(String nama, String nim) {

super(nama, nim); }

//constructor 3 input, dengan input ketiga dikhususkan untuk data milik Child

public Assisten(String nama, String nim, String laboratorium) { super(nama, nim); this.laboratorium = laboratorium;

} }

Contoh lain:Jumlah waktu maksimum perminggu yang diperlukan seorang mahasiswa dan asisten berbeda. Mahasiswa biasa hanya perlu kira-kira 40 jam hanya terkait dengan tugas kuliahnya. Asisten adalah seoarang mahasiswa, oleh karena itu asisten juga memiliki 40 jam per minggu terkait kuliahnya. Akan tetapi asisten mempunyai tanggungan tambahan terkait jam belajar untuk asistensi, asisten akan memerlukan waktu 15 jam lebih banyak dari mahasiswa biasa sebagai waktu asistensi. Sehingga total jam terkait tugas kuliah seorang asisten adalah jam belajar mahasiswa ditambah jam belajar laboratorium. Masing-masing akan memberitahukan jam belajar. Bagaimana mewujudkannya dalam OOP?

Obyek: Mahasiswa, Asisten Proses:

Mahasiswa: Menghitung jam belajar. Asisten: Menghitung jam belajar

Relasi antar object/class: Mahasiswa memiliki jam belajar Asisten memiliki jam Asistensi Asisten adalah Mahasiswa.

Class diagram (hanya digambarkan bagian penting)

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 8

Page 9: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

class Mahasiswa{ private String nama; private String nim; private int jamBelajar=40;

Mahasiswa(){ } public Mahasiswa(String nama, String nim) {

this.nama = nama; this.nim = nim;

}

public int getJamBelajar() { return jamBelajar;

}

public String getNama() { return nama;

}

public String getNim() { return nim;

} }

class Assisten extends Mahasiswa{ private int JamAsistensi=15;

public Assisten(String nama, String nim) {super(nama, nim);

}

public Assisten() { }

@Override public int getJamBelajar() { //mengubah method getJamBelajar

return super.getJamBelajar()+this.JamAsistensi; }

}

4. Mencegah Inheritance Dari Sebuah Class (final Class)

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 9

Page 10: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

Ada kalanya diperlukan suatu class yang tidak boleh diwariskan lagi menjadi class baru. Class yang seperti ini Jika misalnya seorang eksekutif manajer merupakan ujung dari organisasi maka di organisasi tersebut sudah tidak ada lagi variasi atau kekhasan suatu jabatan yang merupakan turunan dari eksekutif manajer. Dengan demikian perlu dilakukan pencegahan pewarisan dari class eksekutif manajer. Untuk mencegah suatu kelas diwariskan digunakan keyword final pada saat deklarasi kelas.

Contoh: final class EksekutifManajer extend Manajer {

. . . . }

Contoh lain: final class ClassTerakhir {

. . . . }

5. Mencegah Override oleh Child Class (final method) Keyword final juga dapat diterapkan pada method. Jika keyword final diterapkan pada method maka method tersebut tidak dapat di-override oleh child class. Child class masih mewarisi method tersebut hanya saja tidak dapat melakukan override.

Contoh deklarasi pada parent class public final String getNama(){

. . . . }

6. Mencegah Pembuatan Object dari Sebuah Class (Abstract Class) Pada suatu hierarki inheritance, grand parent tertinggi selalu mempunyai sifat yang lebih umum dibandingkan dengan sub class-nya. Misalnya, class Civitas adalah (dapat dianggap) class tertinggi pada model struktur kampus. Yang termasuk civitas antara lain Mahasiswa, Dosen, Karyawan, StakeHolder. Jika dinyatakan bahwa setiap orang yang merupakan bagian dari civitas harus berada pada kelompok tersebut, maka tidak boleh ada orang yang hanya menyebut diri sebagai civitas tetapi tidak bisa menyebutkan kelompoknya. Disini terlihat bahwa, tidak boleh membuat object dari class Civitas. Class yang dicegah untuk diwujudkan menjadi sebuah object disebut sebagai abstract Class. Untuk membuatnya, cukup diberikan keyword abstract pada saat deklarasi class.

Contoh:abstract class Civitas{

private String nama; private String jenisKelamin;

public getNama(){ return nama

} }

Java akan menganggap error jika kita instance class tersebut, misal: Civitas myCiv; myCiv= new Civitas(); //error

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 10

Page 11: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

Inherintance diperlukan ketika ingin membuat class baru yang merupakan jenis dari class yang sudah ada. Jika dibuat kalimatnya akan berbunyi “Class baru adalah class lama” “Mahasiswa adalah civitas” “Asisten termasuk Mahasiswa”

D. PolymorphismAdalah kemampuan dari sebuah objek untuk membolehkan mengambil beberapa bentuk yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti bentuk. Sekarang, class induk Person dan subclass Student dari contoh sebelumnya, ditambahkan subclass lain dari Person yaitu Employee. Di bawah ini adalah hierarkinya,

Dalam Java, dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Sebagai contohnya:

public static main( String[] args ) {

Person ref;

Student studentObject = new Student(); Employee employeeObject = new Employee();

ref = studentObject; //Person menunjuk kepada // object Student

//beberapa kode di sini }

Sekarang dimisalkan mempunyai method getName dalam superclass Person dan override method ini dalam kedua subclasses Student dan Employee,

public class Person {

public String getName(){ System.out.println(“Person Name:” + name); return name;

} } public class Student extends Person {

public String getName(){ System.out.println(“Student Name:” + name); return name;

} } public class Employee extends Person {

public String getName(){ System.out.println(“Employee Name:” + name);

return name; }

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 11

Page 12: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

Kembali ke method utama, ketika mencoba memanggil method getName dari referensi Person ref, method getName dari object Student akan dipanggil. Sekarang, jika diberikan ref ke object Employee, method getName dari Employee akan dipanggil.

public static main( String[] args ) {

Person ref;

Student studentObject = new Student(); Employee employeeObject = new Employee();

ref = studentObject; //Person menunjuk kepada // object Student

String temp = ref.getName(); //getName dari Student //class dipanggil

System.out.println( temp );

ref = employeeObject; //Person menunjuk kepada // object Employee

String temp = ref.getName(); //getName dari Employee //class dipanggil

System.out.println( temp ); }

Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya. Contoh lain yang menunjukkan properti polimorfisme adalah ketika mencoba melalui referensi ke method. Misalkan mempunyai method statis printInformation yang mengakibatkan object Person sebagai referensi, maka dapat me-referensi dari tipe Employee dan tipe Student ke method ini selama itu masih subclass dari class Person.

public static main( String[] args ) {

Student studentObject = new Student(); Employee employeeObject = new Employee();

printInformation( studentObject ); printInformation( employeeObject );

}

public static printInformation( Person p ){ . . . .

}

Daftar pustaka:

http://dahlan.web.id/files/java1

http://dahlan.web.id/files/java2

http://rodiah.staff.gunadarma.ac.id

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 12

Page 13: 02. Pemrograman Berbasis Objek-OK

Algoritma dan Pemrograman 3

Pertemuan 2 - Jeje, SKom, MMSI – Universitas Gunadarma 13