A. Polymorphism
Polymorphism merupakan kemampuan suatu method untuk
bekerja dengan lebih dari satu tipe argumen. Pada bahasa lain (khususnya
C++), konsep ini sering disebut dengan method overloading. Pada
dasarnya, Python tidak menangani hal ini secara khusus. Hal ini
disebabkan karena Python merupakan suatu bahasa pemrograman yang
bersifat dynamic typing yaitu tidak memerlukan deklarasi tipe.
Polymorphism adalah suatu object dapat memiliki berbagai bentuk, sebagai object dari class sendiri atau object dari superclassnya
- Overloading : Penggunaan satu nama untuk beberapa method yang berbeda (beda parameter)
- Overriding : terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya.
Polymorphism berasal dari bahasa Yunani yang berarti banyak
bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface
yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang
mungkin secara prinsip sama namun secara proses berbeda.
Keuntungan Pemograman dengan menggunakan Polymorphism adalah :
• Kita dapat menggunakan kelas-kelas yang kita buat (sebagai super
kelas) dan membuat kelas kelas baru berdasar superkelas tersebut dengan
karakteristik yang lebih khusus dari behaviour umum yang dimiliki
superkelas.
• kita dapat membuat super kelas yang hanya mendefinisikan behaviuor
namun tidak memberikan implementasidari metode-metode yang ada.Hal ini
berguna jika kita ingin membuat semacam template kelas,kelas semacam ini
disebut kelas abstrak karena behaviournya masih abstrak dan belum
diimplementasikan.subkelas-subkelas dari kelas semacam ini yang disebut
kelas konkret,mengimplementasikan behaviuor abstrak tersebut sesuai
dengan kebutuhan masing-masing.
• Menghindari duplikasi object,kita dapat menciptakan class baru dari
class yang sudah ada,sehingga tidak perlu menuliskan code dari nol
ataupun mengulangnya, namun tetap bisa menambahkan attribute dan atau
method unik dari class itu sendiri. Dalam konsep yang lebih umum sering
kali polymorphism disebut dalam istilah satu interface banyak aksi.
Polymorphism 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.
Pada dasarnya ada 2 tipe polymorphism, yaitu:
Pada dasarnya ada 2 tipe polymorphism, yaitu:
1. Static atau trivial merupakan, function
overloading (penggunaan kembali nama fungi yang sama tapi dgn argumen
yang berbeda) yang terbagi dalam 3 signature yaitu:
- Jenis Array
– Letak Array
– Type Array
– Letak Array
– Type Array
Contoh function overloading :
void tambah (int a, int b);
void tambah(float d, float c);
void tambah (int a, int b);
void tambah(float d, float c);
2. Dynamic atau true Merupakan function overriding
(sebuah fungsi dalam class turunan yang memiliki nama, return type
argumen function yang sama dengan fungsi dalam class induk). Menggunakan
virtual method.
Pure Virtual Method (tanpa function body)
contoh : virtual void jalan() = 0;
contoh : virtual void jalan() = 0;
Squasi Virtual Method (ada function body)
contoh : virtual void info() {;}
contoh : virtual void info() {;}
Contoh Program Polymorphism :
class mencetakdata { // membuat method dengan nama sama tapi berbeda tipe data public void cobacetak(String Mencetak) { System.out.println(Mencetak); } public void cobacetak(int Mencetak) { System.out.println(Mencetak); } public void cobacetak(double Mencetak) { System.out.println(Mencetak); } public void cobacetak(char Mencetak) { System.out.println(Mencetak); } }
public class cobapolymor { public static void main(String[] args) { mencetakdata data = new mencetakdata(); System.out.print("Cetak Data Tipe String : "); data.cobacetak("DKI Jakarta"); System.out.print("Cetak Data Tipe Integer : "); data.cobacetak(1992); System.out.print("Cetak Data Tipe Double : "); data.cobacetak(16.5 / 2); System.out.print("Cetak Data Tipe Char : "); data.cobacetak('N'); } }
B. Object dan Class
Object
adalah sesuatu yang bisa dianalogikan dengan benda, orang, tempat,
kejadian atau konsep-konsep yang ada di dunia nyata yang digunakan pada
perangkat lunak atau sistem informasi. Contohnya kampus, gedung,
mahasiswa, kuliah, registrasi, pembayaran dan yang lainnya.Disamping itu
Object juga merupakan realisasi dari sebuah class. Ketika kita membuat
sebuah class, tidak berarti kita membuat sebuah object. Bayangkan jika
kita menjadi seorang dewa. Lalu kita menentukan bahwa ada jenis makhluk
bernama Sapi di bumi. Hal ini dapat disamakan dengan kita membuat sebuah
class bernama sapi. Ketika kita menciptakan seekor sapi, seekor sapi
itulah yang disebut object.
Objek
dalam konsep OOP masih memiliki keadaan dan sifat seperti halnya objek
di dunia nyata, karena pada dasarnya objek dalam OOP merupakan
representasi dari dunia nyata. Objek dalam OOP merepresentasikan keadaan
melalui variabel, sedangkan sifatnya direpresentasikan menjadi method.
Method merupakan suatu fungsi (sub-routine) yang berhubungan dengan
objek.Definisi: “objek merupakan penggabungan variabel-variabel dan
method-method yang berhubungan dengannya.”Setiap objek bisa dibedakan
antara satu dengan yang lainnya. Misalnya, objek mobil bisa dibedakan
berdasarkan merknya. Objek hewan bisa dibedakan berdasarkan jenis dan
ciri fisiknya. Walaupun objek tersebut bernama sama, tetapi masih tetap
bisa dibedakan. Misalnya, objek mobil Kijang bisa dibedakan berdasarkan
nomor rangka, warna, tahun keluaran, tipe, nomor polisi, dan sebagainya.
Objek kucing bisa dibedakan dari warna dan corak bulunya. Bahkan dua
orang yang kembar pun masih bisa dibedakan satu sama lainnya, misalnya
dengan nama atau ciri tertentu yang spesifik dan juga sifatnya. Konsep
“pembedaan” ini disebut dengan konsep identitas.
Sedangkan
class adalah kumpulan/himpunan objek dengan atribut/properti yang
mirip, prilaku yang mirip, serta hubungan dengan object yang lain dengan
cara yang mirip. Class hampir serupa dengan structure, namun bedanya
adalah class dapat memiliki fungsi di dalamnya. Jadi, class adalah
beberapa variabel dan fungsi/method yang dikelompokkan di dalam sebuah
nama. Variabel-variabel tersebut biasa disebut field dan biasanya
merupakan atribut dari class tersebut. Fungsi/method adalah aksi yang
dapat dilakukan oleh class tersebut. Class juga merupakan suatu konsep
yang lebih tinggi lagi hierarkinya dari objek yang dihasilkan dari
proses generalisasi objek-objek yang memiliki beberapa ciri yang sama.
Dalam OOP, kelas merupakan suatu hasil pemodelan fakta-fakta dari suatu
objek yang berguna bagi suatu aplikasi yang diprogram. Proses pemodelan
fakta-fakta tersebut disebut dengan abstraksi.
Jadi,
dari penjelasan itu dapat disimpulkan perbedaan antara objek dengan
class yaitu Kelas adalah sesuatu yang menjelaskan ciri-ciri secara umum
dari suatu objek, termasuk apa-apa yang bisa dilakukan objek tersebut.
Sedangkan objek adalah keadaan tertentu dari suatu kelas, atau sering
juga disebut dengan instans dari kelas.
Untuk lebih jelasnya perbedaan antara objek dan class dapat dicontohkan sebagai berikut:
“Seekor kucing Persia memiliki empat ekor anak.”
Kalimat tersebut mengisyaratkan bahwa kucing Persia merupakan kelasnya, sedangkan anak-anaknya merupakan objek. Dengan kata lain, jika seekor kucing Persia tersebut memiliki empat anak, berarti dia telah membuat empat buah objek (instans) dari kelas kucing Persia. Setiap anak kucing memiliki cirinya tersendiri. Ada yang berbulu putih, kuning hitam, atau campuran hitam kuning. Selain itu ada yang memiliki ekor panjang sempurna, panjang bengkok, pendek, ekor “keriting”, dan sebagainya. Dan jenis kelaminnya juga ada beberapa yang jantan dan ada juga yang betina. Tetapi walaupun berbeda dalam hal ciri-ciri fisiknya, harus diingat bahwa semuanya tetaplah kucing Persia.
C. Inheritance
Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar
OOP, Inheritance merupakan penurunan sifat super class(induk) kepada
subclass(anak). Konsep inheritance ini mengadopsi dunia riil dimana
suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep
inheritance, sebuah class dapat mempunyai class turunan. Suatu class
yang mempunyai class turunan dinamakan parent class atau base class.
Sedangkan class turunan itu sendiri seringkali disebut subclass atau
child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh
parent class.
Contoh Inheritance :
public class Mamalia {
public void sifat(){
System.out.println(“Menyusui dan Beranak”);
}
public void tempatHidup(){
System.out.println(“?????”);
}
}
public class Karnivora extends Mamalia {
public void makanan(){
System.out.println(“Makanan Daging”);
}
public void suara(){
System.out.println(“?????”);
}
}
public class harimau extends Karnivora {
private int Kaki=4;
private String Suara = “aungaung”;
public void jumlahKaki(){
System.out.println(“Jumlah Kaki = “+this.Kaki);
}
//Override Mamalia
public void tempatHidup(){
System.out.println(“Tempat Hidup di Darat”);
}
//Override Karnivora
public void suara(){
System.out.println(“Suara harimau “+this.Suara);
}
public void suara(int keadaan){
if(keadaan == 1){
System.out.println(“Suara harimau = “+this.Suara);
}else if(keadaan ==2){
System.out.println(“Suara harimau = ZZZZzzzzzzz…zzzzz”);
}else if(keadaan == 3){
System.out.println(“Suara harimau = Kaing…kaing”);
}
}
}
Dari Kode diatas dapat dijelaskan
Mamalia adalah super class dari Class Karnivora
Mamalia adalah super class dari Class harimau
Karnivora adalah subclass dari Class Mamalia
Karnivora adalah superclass dari class harimau
harimau adalah subclass dari class Karnivora
harimau adalah subclass dari Class Mamalia
D. Instance
E. referensi
http://harrach.wordpress.com/pemograman-java/inheritance/
http://sangwidy.wordpress.com/
http://oc-onecreative.blogspot.com/2011/11/perbedaan-class-dengan-objek.html/
Contoh Inheritance :
public class Mamalia {
public void sifat(){
System.out.println(“Menyusui dan Beranak”);
}
public void tempatHidup(){
System.out.println(“?????”);
}
}
public class Karnivora extends Mamalia {
public void makanan(){
System.out.println(“Makanan Daging”);
}
public void suara(){
System.out.println(“?????”);
}
}
public class harimau extends Karnivora {
private int Kaki=4;
private String Suara = “aungaung”;
public void jumlahKaki(){
System.out.println(“Jumlah Kaki = “+this.Kaki);
}
//Override Mamalia
public void tempatHidup(){
System.out.println(“Tempat Hidup di Darat”);
}
//Override Karnivora
public void suara(){
System.out.println(“Suara harimau “+this.Suara);
}
public void suara(int keadaan){
if(keadaan == 1){
System.out.println(“Suara harimau = “+this.Suara);
}else if(keadaan ==2){
System.out.println(“Suara harimau = ZZZZzzzzzzz…zzzzz”);
}else if(keadaan == 3){
System.out.println(“Suara harimau = Kaing…kaing”);
}
}
}
Dari Kode diatas dapat dijelaskan
Mamalia adalah super class dari Class Karnivora
Mamalia adalah super class dari Class harimau
Karnivora adalah subclass dari Class Mamalia
Karnivora adalah superclass dari class harimau
harimau adalah subclass dari class Karnivora
harimau adalah subclass dari Class Mamalia
D. Instance
Seperti dikatakan tadi, object adalah instance dari class. Jadi, instantiate adalah proses penciptaan objek. Untuk membuat objek atau instance dari sebuah class yaitu dengan menggunakan operator new.
Contohnya seperti dibawah ini, membuat instance dari class Laptop.
public static void main(String[]args){
Laptop dell = new Laptop(); instantiation
dell.dengar_musik(); }
Instance variable
Instance variable adalah pendefinisian atribut atau variable dari suatu class. Contoh:
public class belajar {
private String nama;
private String matkul;
private int nilai;
}
Instance Method
Method dapat didefinisikan lebih dari satu, dan dapat dipanggil dari method yang berbeda.
Contoh program:
public class Belajar{
public String baca;
public String tulis;
public void cetak(){
System.out.println(“bacaan diatas adalah”+baca);
Public void cetak1(){
System.out.println(“tulisan diatas adalah”+tulis); }
}
Keterangan: Method dari class belajar adalah cetak() dan cetak1()
Static member variable
Selain
dari variable instance, kita juga dapat mendefinisikan variable dari
class. Variable ini dapat memiliki nilai yang sama untuk semua objek
pada class yang sama. Kita hanya tinggal menambahkan kata ‘static’
sebelum pndefinisian variable. Contoh:
public class Belajar {
private static int hitung;
public static void main(String[] args)
{ System.out.println(hitung);
}E. referensi
http://harrach.wordpress.com/pemograman-java/inheritance/
http://sangwidy.wordpress.com/
http://oc-onecreative.blogspot.com/2011/11/perbedaan-class-dengan-objek.html/
Tidak ada komentar:
Posting Komentar