Tugas Alpro2 – Minggu 14 – 4121053 – Erlangga JayaWardhana

 

POLIMORFISME

Polymorphism (Polimorfisme)

Polimorfisme dalam PBO Java adalah konsep di mana sebuah method memiliki nama yang sama, namun parameter atau implementasi yang berbeda. Polimorfisme artinya "banyak bentuk".

Terdapat 2 jenis polimorfisme, yaitu polimorfisme statis dan dinamis. Polimorfisme statis adalah polimorfisme yang diketahui saat waktu kompilasi (compile-time), sedangkan polimorfisme dinamis adalah polimorfisme yang diketahui saat waktu jalannya aplikasi (run-time). Polimorfisme statis biasanya mengacu pada method overloading, dan dinamis mengacu pada method overriding.

Method Overloading dan Overriding

Method overloading adalah method yang memiliki nama sama, namun tipe parameter yang berbeda. Contohnya:

void print(String teks) {
    System.out.println("Print string: " + teks);
}
void print(double angka) {
    System.out.println("Print double: " + angka);
}

Method overriding (penggantian method) adalah method yang memiliki nama dan tipe parameter yang sama, namun implementasi yang berbeda. Method overriding biasanya dilakukan oleh kelas turunan pada kelas induknya. Dalam Java, kita bisa menambahkan anotasi '@Override' untuk menunjukkan method tersebut adalah method overriding. Contohnya method overriding:

class A {
    void print() {
        System.out.println("Kelas A");
    }
}

class B extends A {
    @Override
    void print() {
        System.out.println("Kelas B");
    }
}

Apabila kita membuat objek dari kelas A, saat kita memanggil method 'print()', kita akan memanggil method 'print()' dari kelas A. Sedangkan, jika kita membuat objek dari kelas B, maka method 'print()' yang digunakan adalah method 'print()' dari kelas B, menggantikan 'print()' dari kelas A.


Contoh Program Polimorfisme

#Siswa.java

package contohpolimorfisme;
/**
 *
 * @author Lenovo
 */
public class Siswa {
    String nama;
    private String hobi;
    private int umur;
   
    public Siswa(String nama, String hobi, int umur){
        System.out.println("Selamat Datang ^_^");
        this.nama = nama;
        this.hobi = hobi;
        this.umur = umur;
    }
    public void hasil(){
        System.out.println("Nama"+this.nama + "Hobi"+this.hobi+"Umur"+this.umur);
    }
   
    public String toString(){
        return nama + " " + hobi + " " + umur;
       
    }

    public String getNama() {
        return nama;
    }

    public String getHobi() {
        return hobi;
    }

    public void setHobi(String newHobi) {
        this.hobi = newHobi;
    }

    public int getUmur() {
        return umur;
    }

}

#Nilai.java

package contohpolimorfisme;

/**
 *
 * @author Lenovo
 */
public class Nilai extends Siswa {
    private double Nilai;
   
    public Nilai (String nama, String hobi, int umur, double Nilai ){
        super (nama, hobi, umur);
        setNilai (Nilai);
    }

    public double getNilai() {
        return Nilai;
    }

    public void setNilai(double newNilai) {
        if (newNilai >= 0.0){
            Nilai = newNilai;
        }
    }
   
    public double pesan(){
        System.out.println("Selamat" +getNama());
        return Nilai/10;
    }

   
}

#Run.java

package contohpolimorfisme;
import java.util.Scanner;
/**
 *
 * @author Lenovo
 */
public class RUN {
   
   
    public static void main (String [] args){
        Scanner input = new Scanner(System.in);
       
        System.out.print("Masukan Jumlah Mahasiswa : ");
        int n=input.nextInt();
        System.out.println();
       
        String nama[]=new String[n];
        String hobi[]=new String[n];
        String status[]=new String[n];
        int Nilai[]=new int[n];
        int umur[]=new int[n];
       
         for (int i=0;i<n;i++){
         System.out.println("Mahasiswa Ke : "+(i+1));
        System.out.print("Masukkan Nama : ");
        nama[i]=input.next();
       
        System.out.print("Masukkan Umur : ");
        umur[i] = input.nextInt();
       
        System.out.print("Masukkan Hobi : ");
        hobi[i]=input.next();

        System.out.print("Nilai Rata - Rata : ");
        Nilai[i]=input.nextInt();
        System.out.println();
       
         if (Nilai[i]<=50) {
                status[i]="Tidak Lulus";
            } else {
                status[i]="Lulus";
            }
    }
       System.out.println(" Dari referensi Nilai ");
       System.out.println("======================");
       System.out.println();
   
        for (int i=0; i<n;i++) {
            System.out.println("No :"+(i+1)+"    "+"Nama : "+nama[i]);
            System.out.println("         Umur : "+umur[i]);
            System.out.println("         Hobi : "+hobi[i]);
            System.out.println("         Nilai Rata - Rata : "+Nilai[i]);
            System.out.println("         Keterangan : "+status[i]);
            System.out.println();
        }
    }
}

#Output.java



Sumber :

n.(d) Modul 12 - Polimorfisme

Posting Komentar

Lebih baru Lebih lama

نموذج الاتصال