MATERI POLYMORPHISM & PRAKTIKUM

Nama: Widya Shafitri
Prodi: Teknik Informatika A1
NPM: 20251310024

Polymorphism

Pengertian Polymorphism
Polymorphism berasal dari kata poly (banyak) dan morph (bentuk). Artinya, satu method bisa memiliki banyak bentuk atau perilaku. Dalam Java, polymorphism adalah konsep OOP yang memungkinkan nama method sama, tapi perilakunya berbeda.

Konsep OOP
Encapsulation
Inheritance
Polymorphism
Abstraction

Contoh Sederhana
void jumlah()
void jumlah(int a)
void jumlah(int a, int b)
void jumlah(double c)

Jenis Polymorphism
1. Compile-time (Overloading)
2. Runtime (Overriding)


1. Polymorphism Overloading
Overloading terjadi saat method memiliki nama yang sama, tetapi parameter berbeda (jumlah atau tipe).

Ciri-ciri:
Nama method sama
Parameter berbeda
Dalam satu class

Contoh:
class Hitung {
    int tambah(int a, int b) {
        return a + b;
    }

    int tambah(int a, int b, int c) {
        return a + b + c;
    }
}

Penjelasan:
Method dipanggil sesuai jumlah parameter
Contoh:
tambah(2,5)
tambah(2,3,4)

Kelebihan:
Lebih fleksibel
Mempermudah penggunaan method

Kapan digunakan:
Saat operasi sama, tapi jumlah/tipe input berbeda

2. Polymorphism Overriding
Overriding terjadi saat subclass mengubah method dari superclass.

Ciri-ciri:
Harus ada inheritance
Nama & parameter sama
Behavior berbeda

Contoh:
class Hewan {
    void suara() {
        System.out.println("Hewan bersuara");
    }
}

class Kucing extends Hewan {
    void suara() {
        System.out.println("Meong");
    }
}

Main Program:
public class Main {
    public static void main(String[] args) {
        Hewan h = new Kucing();
        h.suara();
    }
}

Penjelasan:
Method yang dijalankan tergantung object saat runtime.

Perbedaan Overloading & Overriding
Overloading - compile time
Overriding - runtime

Binding:
Static Binding - Overloading
Dynamic Binding - Overriding

Polymorphism pada Constructor
Polymorphism juga bisa terjadi pada constructor dengan parameter berbeda.

Contoh:
class Data {
    Data() {
        System.out.println("tanpa argumen");
    }

    Data(int a) {
        System.out.println("1 argumen " + a);
    }

    Data(int a, double b) {
        System.out.println("2 argumen " + a + " dan " + b);
    }

    Data(int a, double b, String c) {
        System.out.println("3 argumen " + a + ", " + b + ", " + c);
    }
}

Pemanggilan:
Data d1 = new Data();
Data d2 = new Data(5, 6.5);
Data d3 = new Data(1, 2.3, "Empat");

Keyword this
Digunakan untuk mengakses atribut atau method dalam class yang sama.

Contoh:
class Mahasiswa {
    String nama;

    Mahasiswa(String nama){
        this.nama = nama;
    }
}

this.nama membedakan antara parameter dan atribut.

Keyword super
Digunakan untuk mengakses atribut atau method dari parent class.

Contoh atribut:
class Hewan {
    String nama = "Hewan";
}

class Kucing extends Hewan {
    String nama = "Kucing";

    void tampil(){
        System.out.println(super.nama);
    }
}

Contoh method:
class Hewan {
    void suara(){
        System.out.println("Hewan bersuara");
    }
}

class Kucing extends Hewan {
    void suara(){
        super.suara();
        System.out.println("Meong");
    }
}

Kapan menggunakan this dan super
this - untuk akses dalam class sendiri
super - untuk akses parent class

Keuntungan Polymorphism
Kode bisa digunakan ulang (reusable)
Lebih fleksibel
Mudah dikembangkan

Kesimpulan
Polymorphism adalah konsep penting dalam OOP yang memungkinkan satu method memiliki banyak bentuk, baik melalui overloading maupun overriding, sehingga program menjadi lebih fleksibel dan efisien.

PRAKTIKUM

1.) Pemrograman Objek runah sakit (Perawat)
Program ini digunakan untuk menyimpan dan menampilkan data perawat.
Data perawat (nama, nomor pegawai, ruang tugas, jadwal jaga) disimpan dalam class Perawat dengan akses private, lalu diisi menggunakan setter.
Di main, dibuat object p1, lalu datanya diisi dan ditampilkan dengan method tampil().
Selain itu, ada method merawatPasien() dan cekKondisi() untuk menampilkan aktivitas perawat.



Komentar

Postingan populer dari blog ini

Tugas 4 C++

Tugas 1 C++

Materi Fungsi dan Prosedur