Tugas 14 - Alpro 2 - Si Unipdu
<h1>Polymorphisme</h1>
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 Polymorphisme
Dibawah ini ada program polymorphisme yang bisa temen temen coba;
#Class Mahasiswa
- package contohpolimorfisme;
- /**
- *
- * @author HP
- */
- public class Mahasiswa {
- String name;
- private String hobby;
- private final int age;
- public Siswa(String name, String hobby, int age){
- System.out.println("Welcome..");
- this.name = name;
- this.hobby = hobby;
- this.age = age;
- }
- public void result(){
- System.out.println("Nama"+this.name+"Hobi"+this.hobby+"Umur"+this.age);
- }
- @Override
- public String toString(){
- return name + " " + hobby + " " + age;
- }
- public String getName() {
- return name;
- }
- public String getHobby() {
- return hobby;
- }
- public void setHobby(String newHobby) {
- this.hobby = newHobby;
- }
- public int getAge() {
- return age;
- }
- }
#Class Score
- package contohpolimorfisme;
- /**
- *
- * @author HP
- */
- public final class Score extends Mahasiswa {
- private double score;
- public Score(String name, String hobby, int age, double score ){
- super (name, hobby, age);
- setScore(score);
- }
- public double getScore() {
- return score;
- }
- public void setScore(double newScore) {
- if (newScore >= 0.0){
- score = newScore;
- }
- }
- public double message(){
- System.out.println("Selamat" +getName());
- return score/10;
- }
- }
#Class Main
- package contohpolimorfisme;
- import java.util.Scanner;
- /**
- *
- * @author HP
- */
- public class Main {
- public static void main (String [] args){
- Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
- System.out.print("Masukan Jumlah Mahasiswa : ");
- int n = input.nextInt();
- System.out.println();
- String name[]=new String[n];
- String hobby[]=new String[n];
- String status[]=new String[n];
- int score[]=new int[n];
- int age[]=new int[n];
- for (int i=0;i<n;i++){
- System.out.println("Mahasiswa Ke : "+(i+1));
- System.out.print("Masukkan Nama : ");
- name[i]=input1.next();
- System.out.print("Masukkan Umur : ");
- age[i] = input.nextInt();
- System.out.print("Masukkan Hobi : ");
- hobby[i] = input1.next();
- System.out.print("Nilai Rata - Rata : ");
- score[i] = input.nextInt();
- System.out.println();
- if (score[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 : "+name[i]);
- System.out.println(" Umur : "+age[i]);
- System.out.println(" Hobi : "+hobby[i]);
- System.out.println(" Nilai Rata - Rata : "+score[i]);
- System.out.println(" Keterangan : "+status[i]);
- System.out.println();
- }
- }
- }
#Output

Komentar
Posting Komentar