Sabtu, 19 Mei 2012

OOP 2 Modul 4


Polimorphism, Overload dan Overiding

Polymorphism merupakan salah satu pilar dari Pemrograman Berorientasi Object yaitu kemampuan object untuk mempunyai tipe yang sama dengan aksi yang berbeda terhadap pesan yang sama.
Polymorphism dari struktur katanya dapat diartikan “memiliki banyak bentuk”. Dalam arti luasnya adalah suatu object yang dapat memiliki berbagai bentuk, sebagai object dari Class sendiri atau object dari superclass (induk class) nya. Subclass dapat mendefinisikan perilaku yang akan dilakukannya dengan sendiri tanpa harus murni dari superclass.
Dalam Polymorphism ada dua method yang biasa digunakan yaitu :
1.      Overloading, dimana beberapa method yang memiliki nama yang sama tetapi beda fungsi. Overloading sendiri memiliki ciri nama method harus sama, daftar parameter harus berbeda dan return type yang boleh sama boleh juga tidak.
2.      Overriding, menyatakan keadaan dimana method pada subclass menolak method pada superclass-nya. Ciri dari Overriding adalah nama method, daftar parameter, dan return type yang harus sama.

Polymorphisme - Override
  • Program C#

using System;

namespace oopm4c_
{
    class Program  
    {  
        public static void Main(string[] args)  
        {  
            Over over1 = new Over();  
    
            over1.Header();  
            over1.set_input(10, 10);  
            over1.show();  
            over1 = new Ride();  
            over1.set_input(10, 10);  
            over1.show();  
     
            Console.ReadKey(true);  
        }  
    }
    class Over   
    {  
        public int satu,dua;  
   
        public void set_input(int X,int Y)  
        {  
            satu = X;  dua = Y;  
        }     
        public void Header()  
        { 
            Console.WriteLine();
             Console.WriteLine("   !!===========================!!");  
            Console.WriteLine("   !!    Tugas OOP 2 Modul 4    !!");  
             Console.WriteLine("   !!===========================!!");
             Console.WriteLine();
             Console.WriteLine();
            Console.WriteLine("   !!========= OVERRIDE ========!!");
             Console.WriteLine(); 
             Console.WriteLine();
        }  
        
        public virtual void show()  
        {  
            Console.WriteLine(" Ini Over : ");  
            Console.WriteLine(" Hasil perkalian {0} dan {1} = {2}",satu,dua,satu*dua);
            Console.WriteLine();
        }  
    }  
  
    class Ride : Over  
    {  
        public override void show()  
        {  
            Console.WriteLine(" Ini Ride : ");  
            Console.WriteLine(" Hasil penjumlahan {0} dan {1} = {2}",satu,dua,satu+dua);
            Console.WriteLine();
        }  
    }
}



Hasil seperti dibawah ini :
  • Program C++
#include <cstdlib>
#include <iostream>

using namespace std;  
class over    
{    
public : int satu,dua;    
public : void set_input(int a,int b)    
{    
satu = a;    dua = b;    
}    
void Header()    
{    
    cout<<" ============================="<<endl;    
    cout<<" =          Override         ="<<endl;    
    cout<<" ============================="<<endl;    
cout<<endl;    
}    
virtual void show()    
{    
cout<<" Ini Over "<<endl;    
cout<<" Hasil perkalian "<<satu<<" dan "<<dua<<" = "<<satu*dua<<endl;    
}    
};    
class ride : public over    
{    
public : void show()    
{    
cout<<" Ini Ride "<<endl;    
cout<<" Hasil penjumlahan "<<satu<<" dan "<<dua<<" = "<<satu+dua<<endl;    
}    
};   
int main(int argc, char *argv[])  
{  
    over *o = new over();
    o->Header();
    o->set_input(10,10);  
    o->show();   
    o = new ride();       
    o->set_input(10,10);  
    o->show();    
    cout<<endl<<endl;  
    system("PAUSE");  
    return EXIT_SUCCESS;  
}

Hasil seperti dibawah ini :

  • Program Java

package override;

public class Main
{
    public static void main(String[] args)
    {
        Over over1 = new Over();
        over1.Header();
        over1.set_input(10, 10);
        over1.show();
        over1 = new Ride();
        over1.set_input(10, 10);
        over1.show();
    }
}
class Over
{
   public int satu,dua;
   public void set_input(int a,int b)
{
   satu = a;
   dua = b;
}
public void Header()
{
    System.out.println("===================");
    System.out.println("=    Override     =");
    System.out.println("===================");
}
public void show()
{
   System.out.println();
   System.out.println(" Ini Over : ");
   System.out.println();
   System.out.println(" Hasil perkalian "+satu+" dan "+dua+" = "+satu*dua);
   System.out.println();
}
}
class Ride extends Over
{
  @Override
  public void show()
 {
  System.out.println(" Ini Ride : ");
  System.out.println();
  System.out.println(" Hasil penjumlahan "+satu+" dan "+dua+" = "+(satu+dua));
  System.out.println();
 }
}


Hasil seperti dibawah ini :


Polymorphisme – Overloading
  • Program C#

using System;

namespace oop2m4C_overloading
{
    class Program  
    {  
        public static void Main(string[] args)  
        {  
            over pro = new over();  
     
            byte banyak;  
            const int harga = 45000;  
            int total;  
     
            pro.OperLoad(); // overload method void tanpa parameter  
            Console.Write(" Masukkan Banyaknya Kaos = ");  
            banyak = Convert.ToByte(Console.ReadLine());  
            Console.WriteLine();  
            pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter  
            total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai  
     
            Console.WriteLine(" Anda harus membayar = {0}",total);  
            
              Console.WriteLine();
            Console.Write(" Press any key to continue . . . ");  
            Console.ReadKey(true);  
        }  
    }  
    
    class over  
    {  
        public void OperLoad()  
        {  
        Console.WriteLine();
          Console.WriteLine("   !!==================================!!");  
          Console.WriteLine("   !!=      Tugas OOP 2 Modul 4       =!!");  
          Console.WriteLine("   !!==================================!!");  
          Console.WriteLine();
          Console.WriteLine();
          Console.WriteLine("   !!========= Overloading ============!!");
          Console.WriteLine();
          Console.WriteLine();
          
          Console.WriteLine(" Harga Kaos Telah ditentukan dengan harga sebesar Rp. 45.000 ");
          Console.WriteLine();
        }  
        
        public void OperLoad(byte banyak,int harga)  
        {  
            Console.WriteLine(" Harga perKaos = {0}",harga);
            Console.WriteLine();
            Console.WriteLine(" Anda membeli  = {0} Biji",banyak);
            Console.WriteLine();
        }  
        
        public int OperLoad(int harga,byte banyak)  
        {  
            return banyak*harga;  
        }  
    }
}


Hasil seperti dibawah ini :

  • Program C++

#include <cstdlib>
#include <iostream>

using namespace std;

class over  
{  
public : void OperLoad()  
{  
     cout<<"   =================================="<<endl;  
     cout<<"   =         Overload Method        ="<<endl;  
     cout<<"   =================================="<<endl;
     cout<<endl;
}  
    public : void OperLoad(long banyak,int harga)  
    {  
        cout<<" Harga per Kaos = "<<harga<<endl;
        cout<<endl; 
        cout<<" Anda membeli = "<<banyak<<" biji"<<endl; 
        cout<<endl; 
    }  
    public : int OperLoad(int harga,long banyak)  
    {  
        return harga*banyak;  
    }  
};  
int main(int argc, char *argv[])  
{  
    over pro;      
    long banyak;  
    const int harga = 45000;  
    int total;  
        
    pro.OperLoad(); // overload method void tanpa parameter  
    cout<<" Banyak Beli Kaos = ";  
    cin>>banyak;  
    cout<<"\n\n";  
    pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter  
    total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai  
    cout<<"\n Anda harus membayar = "<<total;  
    cout<<endl<<endl;  
    system("PAUSE");  
    return EXIT_SUCCESS;  
}


Hasil Seperti Dibawah ini :

  • Program Java

package overload;

import java.util.*;

public class Main
{
    public static Scanner baca = new Scanner(System.in);

    public static void main(String[] args)
    {
      over pro = new over();
      byte banyak;   final int harga = 45000;   int total;
      pro.OperLoad(); // overload method void tanpa parameter
      System.out.print(" Banyak Beli Kaos = ");
      banyak = baca.nextByte();
      System.out.println();
      pro.OperLoad(banyak,harga); // overload method void dengan 2 parameter
      total = pro.OperLoad(harga,banyak); //overload method yang mengembalikan nilai
      System.out.println("\n Anda harus membayar = "+"Rp."+total);
      System.out.println();
      System.out.print(" Press any key to continue . . . ");
          System.out.println();
    }
}
class over
{

 public void OperLoad()

 {
      System.out.println("==================================");
      System.out.println("=         Overload Method        =");
      System.out.println("==================================");
          System.out.println();
          System.out.println(" Harga Kaos telah ditentukan dengan harga sebesar Rp. 45.000 ");
          System.out.println();
 }
 public void OperLoad(byte banyak,int harga)
 {
  System.out.println(" Harga per Kaos = "+"Rp."+harga);
  System.out.println();
  System.out.println(" Anda membeli = "+banyak+" biji");
 }

 public int OperLoad(int harga,byte banyak)
 {
    return banyak*harga;
 }
}


Hasil seperti dibawah ini :


Tidak ada komentar:

Posting Komentar