Pemrograman berorientasi objek Part 3 Polimorfisme

Apa itu Polimorfisme
Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku berbeda. Istilah ini sendiri berasal dari bahasa Yunani, yang berarti “Mempunyai banyak bentuk”.
Overloading
Overloading berarti Menuliskan kembali method dengan nama yang sama pada suatu class. tujuannya adalah memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang mirip.
Tujuan overloading adalah untuk memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang mirip.

Aturan Pendeklarasian Method Overloading
  • Nama method harus sama.
  • Daftar parameter harus berbeda.
  • Return type boleh sama, juga boleh berbeda
Daftar Parameter Pada Overloading
  • Perbedaan daftar parameter bukan hanya terjadi pada perbedaan kebanyakan parameter, tetapi juga urutan dari parameter tersebut.
  • misal saja duah buah parameter sebagai berikut :

  1. function_member(int x, string n)
  2. function_member(string n,int x)

  • Dua parameter tersebut juga dianggap berbeda daftar parameternya
  • Daftar parameter tidak terkait dengan penamaan variabel yang ada dalam parameter.
  • misal saja 2 daftar parameter berikut :

  1. function_member(int x)
  2. function_member(int y)

  • Dua daftar parameter diatas dianggap sama karena yang berbeda hanya penamaan variabel parameternya.

Overriding

Overriding digunakan oleh Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuannya adalah supaya  subclass memiliki tingkah laku yang lebih spesifik. Ini dilakukan dengan  cara mendeklarasikan kembali method milik parent class di subclass.

  • Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass.
  • tujuan : subclass memiliki tingkah laku yang lebih spesifik.
  • dilakukan dengan cara mendeklarasikan kembali method milik parent class di subclass.
  • Deklarasi method pada subclass harus sama dengan yang terdapat di super class.  kesamaan pada :

  1. nama
  2. return type (untuk return type : class A atau merupakan subclass dari A)
  3. daftar marameter (jumlah, type, dan urutan)

  • method pada parent class disebut overriden method
  • method pada subclass disebut overriding method

Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimarfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
contoh program Bentukwajah.java
import java.*;
import java.io.*;
/*class induk dengan nama Bentukwajah*/
class Bentukwajah
{
    /*Membuat sebuah method respons pada class induk dimana mengembalikan 
     *sebuah nilai String*/
    public String respons()
    {
        return(“Perhatikan reaksi wajah saya\n”);    
    }
}
/*Membuat class-class lain dengan turunan dari class Bentukwajah*/
class Senyum extends Bentukwajah
{
    public String respons()
    {
        return(“Senyum karena senang\n”);
    }
}
class Tertawa extends Bentukwajah
{
    public String respons()
    {
        return(“Tertawa karena gembira\n”);
    }
}
class Marah extends Bentukwajah
{
    public String respons()
    {
        return(“kemarahan disebabkan bertangkar\n”);
    }
}    
class Sedih extends Bentukwajah
{
    public String respons()
    {
        return(“Sedih disebabkan cemburu\n”);
    }
}
program Programpolimorphis.java
//program utama
public class Programpolimorphis
{
    /**Main method*/
    public static void main(String []args)
    {
        System.out.println(“\n Program Polimorphis”);
        System.out.println(“======================”);
        //membuat objek-objek raut(ekspresi) dari wajah
        Bentukwajah objbentuk=new Bentukwajah();
        Senyum objsenyum=new Senyum();
        Tertawa objtertawa=new Tertawa();
        Marah objmarah=new Marah();
        Sedih objsedih=new Sedih();
        //polimorphis dari bentuk wajah ada 5 dimulai dari 0-4
        Bentukwajah []Bentuk=new Bentukwajah[5];
        Bentuk[0]=objbentuk;
        Bentuk[1]=objsenyum;
        Bentuk[2]=objtertawa;
        Bentuk[3]=objmarah;
        Bentuk[4]=objsedih;
        System.out.println(“Bentuk[0]:”+Bentuk[0].respons());
        System.out.println(“Bentuk[1]:”+Bentuk[1].respons());
        System.out.println(“Bentuk[2]:”+Bentuk[2].respons());
        System.out.println(“Bentuk[3]:”+Bentuk[3].respons());
        System.out.println(“Bentuk[4]:”+Bentuk[4].respons());
    }
}
hasil program:











sumber : doniavira.wordpress.com

Lihat Part 4

Rivanis

Phasellus facilisis convallis metus, ut imperdiet augue auctor nec. Duis at velit id augue lobortis porta. Sed varius, enim accumsan aliquam tincidunt, tortor urna vulputate quam, eget finibus urna est in augue.

No comments:

Post a Comment