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  

 

0 Comments

Copyright Jujur Soaloon Sitangang Lipan All rights reserved. Theme by Sitanggang. | Bloggerized by Soalparna.