Konsep OOP Polymorphism

Sunday, February 28, 2016

Polymorphism dalam konsep Object Oriented Programming adalah kemampuan suatu objek untuk membuat banyak bentuk melalui satu cara yang sama. Banyak bentuk maksudnya bahwa objek yang pada dasarnya sama tapi bertindak/bertingkah laku yang berbeda-beda.

Kemampuan polimorfisme diantaranya :
- Penerapan Polimorfisme pada Overload dan Override (baik melalui inheritance maupun interface)
- Penggunaan Superclass sebagai referensi dari object Subclass

Overload : method/konstruktur yang memiliki nama yang sama namun dengan parameter yang berbeda. Override : proses pendeklarasian ulang nama method pada kelas utama kepada kelas turunannnya. Dalam pembuatan overriding method, nama dan tipe data method harus sama dengan kelas induknya guna pembuatan polymorphism.

Berikut adalah contoh polymorphism di java. Pada super kelas sistem akademik terdapat method IsiData() yang akan diimplementasikan berbagai bentuk di sub-subclass nya.





Kelas siakad
/**
 *
 * @author Wim Sonevel
 */
public class siakad {
    int nim;
    String nama;
    String matkul;
    int sks;
    String dosen;
    double uts;
    double uas;

    public siakad(){}
   
    public siakad(int nim, String nama){
        this.nim = nim;
        this.nama = nama;
    }
    public siakad(String matkul, int sks){
        this.matkul = matkul;
        this.sks = sks;
    }
    public siakad(String dosen){
        this.dosen = dosen;
    }
    public siakad(double uts, double uas){
        this.uts = uts;
        this.uas = uas;
    }
    public void isiData(){
        System.out.println("Sistem Akademik");
        System.out.println("----------------------------");
    }
}


Kelas dosen
/**
 *
 * @author Wim Sonevel
 */
public class dosen extends siakad{
    public dosen(String dosen){
        super(dosen);
    }
    @Override
    public void isiData(){
        System.out.println("Dosen : "+dosen);
    }
}

Kelas mahasiswa
/**
 *
 * @author Wim Sonevel
 */
public class mahasiswa extends siakad{
    public mahasiswa(int nim, String nama){
        super(nim, nama);
    }
    @Override
    public void isiData(){
        System.out.println("Nim : "+nim);
        System.out.println("Nama : "+nama);
    }
}


Kelas matkul
/**
 *
 * @author Wim Sonevel
 */
public class matkul extends siakad{
    public matkul(String matkul, int sks){
        super(matkul, sks);
    }
    @Override
    public void isiData(){
        System.out.println("Mata Kuliah : "+matkul);
        System.out.println("SKS : "+sks);
    }
}


Kelas nilai
/**
 *
 * @author Wim Sonevel
 */
public class nilai extends siakad{
    double nilaiAkhir = 0.0;
    char angka;
    
    public nilai(double uts, double uas){
        super(uts, uas);
    }

    public void hitungNilai(){
        nilaiAkhir = (uts+uas)/2;
        
        if(nilaiAkhir>80)
            angka = 'A';
        else if(nilaiAkhir>70)
            angka = 'B';
        else if(nilaiAkhir>60)
            angka = 'C';
        else
            angka = 'D';
    }
    @Override
    public void isiData(){
        System.out.println("Nilai UTS : "+uts);
        System.out.println("Nilai UAS : "+uas);
        System.out.println("Nilai Akhir : "+nilaiAkhir);
        System.out.println("Angka Mutu : "+angka);
    }
}


kelas main
/**
 *
 * @author Wim Sonevel
 */
public class tesSiakad {
    public static void main(String[]args){
        siakad si = new siakad();
        mahasiswa mhs = new mahasiswa(11650053, "Wim Sonevel");
        matkul mat = new matkul("Pemrograman Berorientasi Objek",3);
        dosen dos = new dosen("Shoffin");
        nilai ni = new nilai(85, 70);
        ni.hitungNilai();

        si.isiData();
        si = mhs;
        si.isiData();
        si = mat;
        si.isiData();
        si = dos;
        si.isiData();
        si = ni;
        si.isiData();

    }
}


Lalu jalankan kelas tesSiakad maka outputnya akan seperti berikut :

Sistem Akademik
----------------------------
Nim : 11650053
Nama : Wim Sonevel
Mata Kuliah : Pemrograman Berorientasi Objek
SKS : 3
Dosen : Shoffin
Nilai UTS : 85.0
Nilai UAS : 70.0
Nilai Akhir : 77.5
Angka Mutu : B

Sekian dan semoga bermanfaat
Happy Coding :)

Share this :

Previous
Next Post »
1 Komentar

Penulisan markup di komentar
  • Silakan tinggalkan komentar sesuai topik. Komentar yang menyertakan link aktif, iklan, atau sejenisnya akan dihapus.
  • Untuk menyisipkan kode gunakan <i rel="code"> kode yang akan disisipkan </i>
  • Untuk menyisipkan kode panjang gunakan <i rel="pre"> kode yang akan disisipkan </i>
  • Untuk menyisipkan quote gunakan <i rel="quote"> catatan anda </i>
  • Untuk menyisipkan gambar gunakan <i rel="image"> URL gambar </i>
  • Untuk menyisipkan video gunakan [iframe] URL embed video [/iframe]
  • Kemudian parse kode tersebut pada kotak di bawah ini
  • © 2015 Simple SEO ✔

Ads