0
Konsep polymorphiesme di dalam OOP (Object oriented programming) di C# (CSharp)
Posted by jujur
on
9:46 AM
Banyak
yang masih membingunkan tentang konsep polymorphiesme dan susah untuk
memahami bagaimana dan apa itu polymorphiesme, sebelum itu perhatikan
tujuan dan motivasi diciptakannya bahasa pemrograman OOP, secara
sederhana OOP diciptakan untuk memudahkan programmer dalam mengembangkan
bahasa pemrograman yang semakin kompleks dan menghindari pengulangan
penulisan code program. Polymorphiesme itu sendiri intinya adalah sebuah
bentuk yang dapat berubah dari satu bentuk ke bentuk yang lain,
tentunya dengan konsep seperti ini pengulangan code/penulisan ulang code
program dapat dihindari.
Untuk
memudahkan dalam memahami konsep Polymorphieme mari membuat sebuah
project sederhana, kali ini project yang dibuat bukanlah berbasiskan
form, akan tetapi berbasiskan console. Untuk membuat projectnya silahkan
buka visual studio selanjutya klik menu file pilih new project, jika
jendela project sudah terbuka pilih "Console apllication" bukan "windows
form application". project kalai ini menggnakan console agar lebih
mudah dalam memahami konsep polymorphisme. perhatikan contoh berikut
ini, tentunya harus memahami terlebih dahulu konsep pewarisan dalam OOP.
didalam project yang akan dibuat, terdapat 4 untuk lebih detailnya
seperti pada diagram kelas dibawah ini
Dari diagram project yang akan dibuat, terlihat bahwa terdapat 4 buah kelas, pertama yaitu kelas bentuk yang terdiri dari 3 attribute dan 3 method, yang kedua adalah kelas kubus yang terdiri dari 2 method kelas yang ketiga adalah kelas balok yang terdiri dari 1 attribute dan 2 methode dan kelas terakhir adalah kelas program dimana kelas ini adalah kelas main dari project yang dibuat.
berikut code program yang akan dibuat.
code program class bentuk
public class bentuk
{
public int lebar;
public int panjang;
public double luas;
public bentuk()
{
}
public bentuk(int panjang, int lebar)
{
this.panjang = panjang;
this.lebar = lebar;
}
public virtual void hitungLuas()
{
Console.WriteLine("Luas bidang: {0}", (panjang * lebar));
}
}
code program class kubus
public class kubus : bentuk
{
public kubus(int rusuk)
{
this.lebar = rusuk;
}
public override void hitungLuas()
{
Console.WriteLine("Luas kubus: {0}",6*lebar*lebar);
}
}
Code program class balok
public class balok:bentuk
{
int tinggi;
public balok(int panjang,int tinggi, int lebar)
{
this.panjang = panjang;
this.lebar = lebar;
this.tinggi = tinggi;
}
public override void hitungLuas()
{
luas=2*panjang*lebar+2*panjang*tinggi+2*lebar*tinggi;
Console.WriteLine("Luas bidang Balok : {0}",luas);
}
}
Code class Program
class Program
{
static void Main(string[] args)
{
bentuk[] macamMacamBentuk = new bentuk[3];
macamMacamBentuk[0] = new bentuk(5,10);
macamMacamBentuk[1] = new kubus(4);
macamMacamBentuk[2] = new balok(2,6,8);
foreach(bentuk tampilkan in macamMacamBentuk)
{
tampilkan.hitungLuas();
}
Console.ReadKey();
}
}
Perhatikan lebih seksama keempat class diatas, bahwasanya diketahui bahwa kelas induk adalah bentuk kubus dan balok serta sebuah class yang tidak diturunkan dari kelas manapun yaitu kelas Program. Polymorphiesme terjadi ketika sebuah kelas yang mempunyai induk yang sama berubah-ubah ke bentuk yang lain.
bentuk[] macamMacamBentuk = new bentuk[3];
macamMacamBentuk[0] = new bentuk(5,10);
macamMacamBentuk[1] = new kubus(4);
macamMacamBentuk[2] = new balok(2,6,8);
Code diatas sama seperti code berikut ini
bentuk macamMacamBentuk1=new bentuk[5,10];
bentuk macamMacamBentuk2=new kubus[4];
bentuk macamMacamBentuk3=new balok[2,6,8];
Hanya
saja pada code sebelumnya obyek-obyek disimpan dalam sebuah array yang
bertipe bentuk. Disinilah inti dari polymorphiesme dimana sebuah obyek
bisa berubah menjadi obyek lain, misalnya obyek kubus bisa menjadi obyek
bentuk dan seterusnya. Konsep seperti ini sangat membantu dalam
menanggulangi pengulangan code program. Jika code program tersebut
dijalankan hasilnya kurang lebih seperti pada gambar dibawah ini
code program yang digunakan untuk menampilkan hasil seperti pada gambar diatas adalah sebagai berikut
foreach(bentuk tampilkan in macamMacamBentuk)
{
tampilkan.hitungLuas();
}
Jika diperhatikan lebih detail variabel tampilkan pada loop foreach diatas bertipe bentuk, dan digunakan untuk mengakses semua data yang ada di array macamMacamBentuk. Konsep seperti inilah yang disebut dengan polymorphiesme.
Untuk lebih memudahkan dalama memahami project ini silahkan download projectnya disini
sumber :http://www.csharp-indonesia.com