- Back to Home »
- Computer , Technology »
- Konsep dasar Object Oriented Programing (OOP)
Posted by : Unknown
27 Mar 2016
SEJARAH OOP
Konsep OOP dimulai pertengahan
1960-an dengan sebuah bahasa program SIMULASMALLTALK. Meskipun developer
software tidak secara intensif mengembangkan OOP, tetapi metodologi
object-oriented tetap digunakan sampai sekarang. kemudian dilanjutkan di era
70-an dengan Pada pertengahan 80-an, bahasa OOP seperti C++ dan Eifle menjadi
popular diantara programmer komputer. Popularitas OOP berlanjut pada tahun
90-an, banyak pengembang perangkat lunak menggunakan konsep OOP seperti yang
dilakukan pada Java dan kemudian PHP yang menjadi popular sekarang. Di tahun
2002, versi terakhir dari Visual Studio, Microsoft-pun ikut memperkenalkan
bahasa OOP baru yaitu C# (dibaca C-sharp) serta penyempurnaan Visual Basic 6.0
yang tidak mendukung OOP menjadi VB.NET sebagai bahasa pemrograman berorientasi
objek.
PENGERTIAN
OOP (Object Oriented Programming) adalah suatu
metode pemrograman yang berorientasi kepada objek. Objek ini menggabungkan data dan
fungsi sebagai satu kesatuan, hal ini membedakan dengan pemrograman yang tidak
berorientasi objek (terstruktur) dimana fungsilah yang menjadi perhatian utama.
Fungsi adalah subprogram atau sekumpulan kode yang diberi suatu nama
tersendiri. Java adalah salah satu dari bahasa pemrograman berorientasi objek,
karena dalam pemrograman java kita dapat mengetahui dan membedakan.
Tujuan dari OOP diciptakan adalah untuk
mempermudah pengembangan program dengan cara mengikuti model yang telah ada di
kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek,
nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil
lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu
sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin,
roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari
objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi
dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan
program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil,
objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek
yang lain.
Konsep
OOP
1.
CLASS
Kelas adalah sekumpulan obyek yang memiliki method-method dan jenis
data yang sama. Dengan kata lain kelas dapat dikatakan sebagai suatu struktur
dalam program yang berisi satu atau beberapa metode (dapat berupa fungsi dan
prosedur). Kelas dapat juga dikatakan sebagai bentuk logika dimana seluruh
bahasa berorientasi objek dibangun. kelas mendefinisikan bentuk dan
sifat/kelakuan/perilaku objek. Semua konsep/abstraksi yang kita implementasikan
di java harus dikapsulkan/dikemas dalam kelas.
Sebagai contoh adalah pengambaran
yang real dalam kehidupan kita adalah tentang dunia transportasi. Tentunya kita
semua mengetahui bahwa sangatlah banyak jenis alat transportasi yang ada
seperti motor, mobil,pesawat terbang,kapal laut, dan lain sebagainya.Kemudian
marilah kita anggap berbagai alat transportasi tersebut sebagai suatu
class. Maka motor tentunya mempunyai nomor
polisi,tahun pembuatan,merk dll demikian juga dengan alat transportasi yang
lainnya, oleh karenanya hal ini bisa disebut sebagai properties. Selanjutnya
motor itu sendiri bisa berjalan maju, berjalan mundur,belok kiri, belok kanan
yang mana kegiatan ini disebut method.
Contoh
:
public class ApaMotormu {
public static void main(String[]
args){
Motor punyaku=new Motor();
punyaku.motorku();
}
}
2.
OBJECT
Object dapat dikatakan sebagai sebuah entitas yang memiliki kumpulan
dari data serta method-method yang bekerja pada data tersebut. Data dan
method-method suatu kelas mendefinisikan isi dan sifat tersebut. Baik dalam
dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik,
yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti
mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang
behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju,
membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau
lebih variabel, dan mengimplement.
Kalau
kita mengikuti analogi di atas, maka object dari class HEWAN adalah Burung,
KAMBING, AYAM, KUDA. Mereka adalah CONTOH dari class HEWAN. Semua dari mereka
adalah HEWAN yang mempunyai nama, kaki, Jenis makanan dst. Dan bisa berlari,
bersuara, berkembang biak dll.
Contoh
:
public class Peliharaanmu{
public static void main(String[]
args){
Hewan punyaku=new Hewan();
punyaku.hewanku();
}
}
3.
ABSTRACTION
Ketika membangun objects dalam aplikasi OOP, adalah
penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun
aplikasi shipping, kamu harus membangun object produk dengan atribut seperti
ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan
harus dibuang. Tetapi ketika kamu membangun order-entry application, warna
menjadi
Contoh : pada
Televisi. Dalam Televisi terdapat bermacam macam subsistem, antara lain :
sistem antena dan channel, sistem playback, sistem pewarnaan, sistem
on, sistem off dan lain sebagainya. Semua objek ( sub sistem ) yang
terdapat dalam sistem televisi tersebut saling berinteraksi satu sama
lain. Interaksi disini berupa “pesan” yang dapat disebut juga sebagai
parameter. Contoh penerapan Abstraction dapat dilihat dibawah ini :
class Televisi
{
int volume = 0;
void naikkanvolume(int volume)
{
this.volume = this.volume + volume;
System.out.println(“Volume Televisi : ” + this.volume);
}
}
public class TelevisiBeraksi
{
public static void main (String[] args)
{
Televisi televisiku = new Televisi();
televisiku.naikkanvolume(5);
}
}
Dari contoh diatas, dapat dilihat terjadinya interaksi antar objek didalam system Televisi, saya mengambil contoh volume televisi. Dari public class TelevisiBeraksi berinteraksi dengan class Televisi dengan mengirimkan pesan informasi yang berupa parameter –> naikkanvolume(5).
{
int volume = 0;
void naikkanvolume(int volume)
{
this.volume = this.volume + volume;
System.out.println(“Volume Televisi : ” + this.volume);
}
}
public class TelevisiBeraksi
{
public static void main (String[] args)
{
Televisi televisiku = new Televisi();
televisiku.naikkanvolume(5);
}
}
Dari contoh diatas, dapat dilihat terjadinya interaksi antar objek didalam system Televisi, saya mengambil contoh volume televisi. Dari public class TelevisiBeraksi berinteraksi dengan class Televisi dengan mengirimkan pesan informasi yang berupa parameter –> naikkanvolume(5).
4.
METHOD
Menurut ini Method adalah fungsi atau
prosedur yang dibuat oleh seorang programmer didalam suatu Class. Dengan kata
lain, method pada sebuah kelas hampir sama dengan fungsi atau prosedur pada
pemrograman prosedural. Pada sebuah method di dalam sebuah kelas juga memiliki
izin akses seperti halnya atribut pada kelas, izin akses itu antara lain
private, public dan protected yang memiliki arti sama pada izin akses atribut
yang telah dibahas sebelumnya. Sebuah kelas boleh memiliki lebih dari satu
method dengan nama yang sama asalkan memiliki parameter masukan yang berbeda
sehingga kompiler atau interpreter dapat mengenali method mana yang dipanggil.
Hal ini dinamakan
overloading. Di dalam sebuah kelas, terdapat juga yang disebut sebagai method
atau atribut statis yang memiliki kata kunci static. Maksud dari statis di sini
adalah method yang dapat diakses secara berbagi dengan semua objek lain tanpa
harus membuat objek yang memiliki method statis tadi (tanpa proses new), tapi
sebuah method statis mempunyai keterbatasan yaitu hanya dapat mengakses atribut
atau method lain di dalam kelas yang membungkusnya yang juga bersifat statis.
Method statis biasanya diimplementasikan untuk method main.
Sedangkan karakteristik
method seperti didalam suatu class, behavior disimpan dalam bentuk Method.
Method merupakan serangkaian statemen / perintah (perintah = baris program)
dalam suatu class yang menghandle task tertentu. Method merupakan hal-hal yang
bisa dilakukan oleh object dari suatu class.
Method didefinisikan pada class akan tetapi dipanggil melalui object. Method memiliki peranan diantaranya :
- merubah nilai atribut dari suatu object,
- menerima informasi dari object lain, dan
- mengirim informasi ke obyek lain untuk melakukan suatu task (cara obyek berkomunikasi dengan obyek lain adalah dengan menggunakan method).
5.
FIELD
Adalah
informasi atau atribut yang terdapat dalam suatu object. Bentuk field mirip
dengan variabel yaitu dapat dibaca dan diset langsung.
Contoh: suatu class Anak yang
memiliki field Nama_Anak dan usia anak, juga memiliki subrutin(method)
kegiatan_Anak.
6.
EVENT
Event merupakan sebuah function yang dipanggil
untuk merespon kejadian/event tertentu, seperti klik mouse, penekanan tombol
keyboard, perubahan nilai field pada database, dan lain-lain. Umumnya event
mengirimkan dua parameter, yaitu object yang mengindikasikan sender/pengirim
event, dan object yang menyediakan informasi pada event tersebut.
Pada sebuah class, Anda dapat melakukan modifikasi pada method dengan cara overriding maupun overloading. Overriding berarti Anda mengubah implementasi dari sebuah method, sementara overloading berarti menambahkan method baru dengan nama yang sama, tetapi dengan pengenal yang berbeda. Overloading mengizinkan Anda memiliki dua atau lebih method dengan nama yang sama. Dua method tersebut akan muncul pada fasilitas IntelliSense sehingga pengguna dapat memilih method yang diinginkan. Bagaimanapun, salah memilih method dapat menyebabkan runtime-error, Anda dapat menghilangkan method yang tidak diinginkan untuk tampil dengan menggunakan keyword Shadows.
7.
ATTRIBUTE / PROPERTIES
Properti adalah atribut-atribut
yang melekat pada sebuah kontrol (objek) yang biasanya merupakan karakteristik
penampilannya seperti warna, jenis huruf, ukuran dan sebagainya. Properti
sebuah kontrol (objek) dapat diubah pada saat memprogram (menggunakan jendela
properti) atau pada saat program dijalankan (menggunakan kode-kode program pada
jendela kode).
8.
ENCAPSULATION
Ciri penting lainnya dari OOP
adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses
langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data,
kamu harus berinteraksi dengan object yang bertanggung jawab atas dara
tersebut.
Contoh : Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus
listrik pada generator, dan sistem perputaran generator untuk
menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja
dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam
arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja
sistem perputaran generator, apakah generator berputar kebelakang atau
ke depan atau bahkan serong. Begitu pula dalam sistem perputaran
generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala
atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh dalam program
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi publicyang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.
Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.
Cara Penggunaan Inheritance dalam PHP
Di dalam PHP, inheritance / penurunan dari sebuah class kepada class lain menggunakan kata kunci: ‘extends’, dengan penulisan dasar sebagai berikut:
class induk {
//…isi class induk
}
class anak extends induk
{
//… class anak bisa mengakses
//… property dan method class induk
}
Agar lebih mudah dipahami, kita akan langsung masuk kedalam contoh program penggunaaninheritance/penurunan di dalam PHP:
<?php
// buat class induk: komputer
class komputer {
public $merk;
public $processor;
public $memory;
public function beli_komputer() {
return “Beli komputer baru”;
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public function lihat_spec() {
return “merk: $this->merk, processor: $this->processor,
memory: $this->memory”;
}
}
// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();
// isi property objek
$laptop_baru->merk = “acer”;
$laptop_baru->processor =”intel core i5″;
$laptop_baru->memory = “2 GB”;
//panggil method objek
echo $laptop_baru->beli_komputer();
echo “<br />”;
echo $laptop_baru->lihat_spec();
?>
Dalam contoh kode diatas, saya membuat class komputer dengan beberapa property dan sebuahmethod. Property class komputer belum berisi nilai apa-apa.
Dibawah class komputer, saya membuat class laptop extends class komputer. Disini saya menurunkanclass komputer kedalam class laptop. Di dalam class laptop, kita bisa mengakses seluruh property danmethod apapun dari class komputer selama memiliki hak akses public atau protected.
Untuk membuktikan hal tersebut, saya membuat objek $laptop_baru dari class laptop. Perhatikan bahwa kita bisa mengakses property $merk, $processor, dan$memory yang semuanya adalah milikclass komputer, bukan class laptop. Method beli_komputer() juga sukses diakses dari objek $laptop baru. Inilah yang dimaksud dengan inheritance/penurunan class dalam OOP.
PHP tidak membatasi berapa banyak ‘penurunan objek’ yang bisa dilakukan, dalam contoh berikut, saya membuat 3 buah class yang saling ‘menurunkan’:
<?php
// buat class komputer
class komputer {
protected function beli_komputer() {
return “Beli komputer baru”;
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
protected function beli_laptop() {
return “Beli laptop baru”;
}
}
// turunkan class laptop ke chromebook
class chromebook extends laptop {
protected function beli_chromebook() {
return “Beli chromebook baru”;
}
public function beli_semua(){
$a = $this->beli_komputer();
$b = $this->beli_laptop();
$c = $this->beli_chromebook();
return “$a <br /> $b <br /> $c”;
}
}
// buat objek dari class laptop (instansiasi)
$gadget_baru = new chromebook();
//panggil method objek
echo $gadget_baru->beli_semua();
// $gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>
Dalam contoh diatas, saya membuat class komputer yang diturunkan kepada class laptop, dan kemudian diturunkan lagi kepada class chromebook. Dari dalam class chromebook ini kemudian saya memanggil method dari class diatasnya.
Jika anda perhatikan, setiap method selain method beli_semua(), memiliki hak akses protected. Hak akses protected ini ‘menghalangi’ kode program lain untuk mengaksesnya, selain class turunan.
Pada baris terakhir, saya menyisipkan kode program untuk mencoba mengakses methodbeli_komputer() . Kode ini sengaja saya beri tanda komentar. Jika anda menghapus tanda komentar, PHP akan mengeluarkan error yang menyatakan kita tidak bisa mengakses method dengan hak akses protected:
<?
$gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>
Inilah yang dimaksud dengan enkapsulasi dalam OOP. Membatasi method yang tidak boleh diakses akan membuat kode program menjadi lebih terstruktur.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh dalam program
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi publicyang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
9. INHERITANCE
Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.
Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.
Cara Penggunaan Inheritance dalam PHP
Di dalam PHP, inheritance / penurunan dari sebuah class kepada class lain menggunakan kata kunci: ‘extends’, dengan penulisan dasar sebagai berikut:
class induk {
//…isi class induk
}
class anak extends induk
{
//… class anak bisa mengakses
//… property dan method class induk
}
Agar lebih mudah dipahami, kita akan langsung masuk kedalam contoh program penggunaaninheritance/penurunan di dalam PHP:
<?php
// buat class induk: komputer
class komputer {
public $merk;
public $processor;
public $memory;
public function beli_komputer() {
return “Beli komputer baru”;
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public function lihat_spec() {
return “merk: $this->merk, processor: $this->processor,
memory: $this->memory”;
}
}
// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();
// isi property objek
$laptop_baru->merk = “acer”;
$laptop_baru->processor =”intel core i5″;
$laptop_baru->memory = “2 GB”;
//panggil method objek
echo $laptop_baru->beli_komputer();
echo “<br />”;
echo $laptop_baru->lihat_spec();
?>
Dalam contoh kode diatas, saya membuat class komputer dengan beberapa property dan sebuahmethod. Property class komputer belum berisi nilai apa-apa.
Dibawah class komputer, saya membuat class laptop extends class komputer. Disini saya menurunkanclass komputer kedalam class laptop. Di dalam class laptop, kita bisa mengakses seluruh property danmethod apapun dari class komputer selama memiliki hak akses public atau protected.
Untuk membuktikan hal tersebut, saya membuat objek $laptop_baru dari class laptop. Perhatikan bahwa kita bisa mengakses property $merk, $processor, dan$memory yang semuanya adalah milikclass komputer, bukan class laptop. Method beli_komputer() juga sukses diakses dari objek $laptop baru. Inilah yang dimaksud dengan inheritance/penurunan class dalam OOP.
PHP tidak membatasi berapa banyak ‘penurunan objek’ yang bisa dilakukan, dalam contoh berikut, saya membuat 3 buah class yang saling ‘menurunkan’:
<?php
// buat class komputer
class komputer {
protected function beli_komputer() {
return “Beli komputer baru”;
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
protected function beli_laptop() {
return “Beli laptop baru”;
}
}
// turunkan class laptop ke chromebook
class chromebook extends laptop {
protected function beli_chromebook() {
return “Beli chromebook baru”;
}
public function beli_semua(){
$a = $this->beli_komputer();
$b = $this->beli_laptop();
$c = $this->beli_chromebook();
return “$a <br /> $b <br /> $c”;
}
}
// buat objek dari class laptop (instansiasi)
$gadget_baru = new chromebook();
//panggil method objek
echo $gadget_baru->beli_semua();
// $gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>
Dalam contoh diatas, saya membuat class komputer yang diturunkan kepada class laptop, dan kemudian diturunkan lagi kepada class chromebook. Dari dalam class chromebook ini kemudian saya memanggil method dari class diatasnya.
Jika anda perhatikan, setiap method selain method beli_semua(), memiliki hak akses protected. Hak akses protected ini ‘menghalangi’ kode program lain untuk mengaksesnya, selain class turunan.
Pada baris terakhir, saya menyisipkan kode program untuk mencoba mengakses methodbeli_komputer() . Kode ini sengaja saya beri tanda komentar. Jika anda menghapus tanda komentar, PHP akan mengeluarkan error yang menyatakan kita tidak bisa mengakses method dengan hak akses protected:
<?
$gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>
Inilah yang dimaksud dengan enkapsulasi dalam OOP. Membatasi method yang tidak boleh diakses akan membuat kode program menjadi lebih terstruktur.
10.
POLYMORPHISM
Polimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari
satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin.
Metode tertentu yang berhubungan dengan sebuah pengiriman pesan
tergantung kepada objek tertentu di mana pesan tersebut dikirim.
Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Sebagai Ilustrasiya :
Sebagai contoh adalah sebuah obyek wanita, beberapa peran yang mungkin dimiliki adalah:
Bagi suami maka dia berperan sebagai seorang istri.
Buat anak-anak berperan sebagai ibu.
Di tempat kerja maka dia akan berperan sebagai seorang karyawan.
Di tempat kuliah berperan sebagai mahasiswi.
Di tempat arisan berperan sebagai ketua arisan.
Dari contoh diatas bisa kita lihat bahwa wanita tersebut adalah orang yang sama, tetapi memiliki peran yang berbeda bagi orang yang berinteraksi dengannya.
Contoh Source C0de Polymorphism
/* Disimpan dalam file “sopir.java” */

Dedi adalah seorang sopir keturunan manusia, untuk menginstantiasi objek dedi
ditunjukkan dalam kode berikut.
/* Disimpan dalam file “dedi.java” */

Kemudian Andi sang programmer, Badu sang tentara dan Dedi sang sopir diperintahkan untuk bekerja, apa reaksinya?
Untuk melihat reaksi masing-masing, perhatikan kode java berikut!
/* Disimpan dalam file “pekerja.java” */

Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Sebagai Ilustrasiya :
Sebagai contoh adalah sebuah obyek wanita, beberapa peran yang mungkin dimiliki adalah:
Bagi suami maka dia berperan sebagai seorang istri.
Buat anak-anak berperan sebagai ibu.
Di tempat kerja maka dia akan berperan sebagai seorang karyawan.
Di tempat kuliah berperan sebagai mahasiswi.
Di tempat arisan berperan sebagai ketua arisan.
Dari contoh diatas bisa kita lihat bahwa wanita tersebut adalah orang yang sama, tetapi memiliki peran yang berbeda bagi orang yang berinteraksi dengannya.
Contoh Source C0de Polymorphism
/* Disimpan dalam file “sopir.java” */

Dedi adalah seorang sopir keturunan manusia, untuk menginstantiasi objek dedi
ditunjukkan dalam kode berikut.
/* Disimpan dalam file “dedi.java” */

Kemudian Andi sang programmer, Badu sang tentara dan Dedi sang sopir diperintahkan untuk bekerja, apa reaksinya?
Untuk melihat reaksi masing-masing, perhatikan kode java berikut!
/* Disimpan dalam file “pekerja.java” */

Sumber :
http://wikipedia.com/