an 8: Konsep Polymorphism dan Implementasinya
Memahami konsep polymorphism dalam pemrograman berorientasi objek dan cara
mengimplementasikannya dalam pengembangan aplikasi dengan studi kasus sistem informasi
akademik.
Mata Kuliah: Pemrograman Berorientasi Objek
Kode MK: IF-KK3003 | Bobot: 3 SKS
Compile-Time
Method Overloading
Runtime
Method Overriding
Studi Kasus
Sistem Informasi Akademik
Tugas
Praktikum & Lanjutan
Konsep Dasar Polymorphism
Memahami prinsip dasar polymorphism dalam pemrograman berorientasi objek
Definisi Polymorphism
Kemampuan objek untuk merespons pesan yang sama dengan cara
yang berbeda tergantung pada tipe objek tersebut.
Pentingnya Polymorphism
• Meningkatkan fleksibilitas kode
• Memudahkan perluasan program
• Mengurangi duplikasi kode
• Memungkinkan abstraksi yang lebih baik
Polymorphism dalam Aksi
"Satu interface, banyak implementasi"
Metode yang sama dapat berperilaku berbeda pada objek yang berbeda
Jenis-jenis Polymorphism
Memahami dua bentuk utama polymorphism dalam pemrograman berorientasi objek
Compile-Time Polymorphism
Method Overloading - beberapa metode dengan nama sama tetapi
parameter berbeda
Diputuskan saat kompilasi program
Tidak memerlukan inheritance
// Contoh Method Overloading
public class Calculator {
int add(int a, int b) { return a+b; }
double add(double a, double b) { return a+b; }
int add(int a, int b, int c) { return a+b+c; }
}
Runtime Polymorphism
Method Overriding - metode di subclass menggantikan metode di
superclass
Diputuskan saat runtime program
Memerlukan inheritance dan interface
// Contoh Method Overriding
class Animal { void sound() { System.out.println("Animal makes sound"); } }
class Dog extends Animal {
@Override
void sound() { System.out.println("Dog barks"); }
}
Implementasi Polymorphism (Bagian 1)
Method Overloading dalam Pemrograman Berorientasi Objek
Method Overloading
Method overloading adalah kemampuan untuk membuat beberapa
metode dengan nama yang sama tetapi dengan parameter yang berbeda
dalam satu kelas.
Aturan Method Overloading
Nama metode harus sama
Parameter harus berbeda (jumlah atau tipe data)
Tipe return boleh sama atau berbeda
Access modifier boleh sama atau berbeda
Contoh Kode Method Overloading
public class Calculator { // Metode dengan 2 parameter int public int add(int a, int
b) { return a + b; } // Metode dengan 3 parameter int (overload) public int add(int
a, int b, int c) { return a + b + c; } // Metode dengan 2 parameter double (overload)
public double add(double a, double b) { return a + b; } // Metode dengan
parameter string (overload) public String add(String a, String b) { return a + b; } }
Contoh Penggunaan
Implementasi Polymorphism (Bagian 2)
Method Overriding dalam Pemrograman Berorientasi Objek
Method Overriding
Method overriding adalah kemampuan subclass untuk
mengimplementasikan ulang metode yang sudah ada di superclass
dengan implementasi yang berbeda.
Aturan Method Overriding
Nama metode harus sama
Parameter harus sama
Tipe return harus sama atau covariant
Access modifier tidak boleh lebih restriktif
Contoh Kode Method Overriding
// Superclass public class Employee { protected String name; protected double
baseSalary; public Employee(String name, double baseSalary) { this.name = name;
this.baseSalary = baseSalary; } public double calculateSalary() { return baseSalary; } } //
Subclass yang meng-override method public class Manager extends Employee { private
double bonus; public Manager(String name, double baseSalary, double bonus)
{ super(name, baseSalary); this.bonus = bonus; } // Method overriding @Override public
double calculateSalary() { return baseSalary + bonus; } }
Studi Kasus Sistem Informasi Akademik
Penerapan Polymorphism dalam Sistem Informasi Akademik
Polymorphism dalam SIA
Class hierarchy untuk entitas akademik (Mahasiswa, Dosen, Staf)
Method overriding untuk proses evaluasi berbeda per jenis mata
kuliah
Method overloading untuk fungsi registrasi dengan parameter
berbeda
Interface untuk berbagai jenis laporan akademik
Hierarki Class SIA
Contoh Implementasi
// Abstract class untuk semua mata kuliah public abstract class MataKuliah
{ protected String kode; protected String nama; protected int sks; public abstract
double hitungNilaiAkhir(); // Method overloading untuk registrasi public void
registrasi(Mahasiswa mhs) { ... } public void registrasi(Mahasiswa mhs, String kelas)
{ ... } } // Implementasi untuk mata kuliah teori public class MataKuliahTeori
extends MataKuliah { private double nilaiUTS, nilaiUAS; @Override public double
hitungNilaiAkhir() { return (nilaiUTS * 0.4) + (nilaiUAS * 0.6); } } // Implementasi
untuk mata kuliah praktikum public class MataKuliahPraktikum extends
MataKuliah { private double nilaiPraktikum, nilaiLaporan; @Override public double
hitungNilaiAkhir() { return (nilaiPraktikum * 0.7) + (nilaiLaporan * 0.3); } }
Tugas Praktikum
Menerapkan Polymorphism pada Sistem Informasi Akademik Sederhana
Instruksi Praktikum
1
Buat class abstract Person dengan atribut dasar (nama, NIK)
2
Buat class Mahasiswa dan Dosen yang mewarisi dari class Person
3 Implementasikan method overriding untuk menampilkan
informasi masing-masing
4 Buat class MataKuliah dengan method overloading untuk
registrasi
5
Buat class Main untuk mendemonstrasikan polymorphism
Contoh Kode Awal
// Abstract class Person public abstract class Person { protected String nama;
protected String NIK; public Person(String nama, String NIK) { this.nama = nama;
this.NIK = NIK; } public abstract void tampilkanInfo(); } // Class Mahasiswa
(lengkapi implementasinya) public class Mahasiswa extends Person { private String
NIM; public Mahasiswa(String nama, String NIK, String NIM) { super(nama, NIK);
this.NIM = NIM; } // Implementasi method overriding @Override public void
tampilkanInfo() { // Implementasikan method ini } }
Tips Praktikum
Tugas Lanjutan
Penerapan Polymorphism Tingkat Lanjut pada Sistem Informasi Akademik
Deskripsi Tugas
1
Buat interface Penilaian dengan method hitungNilaiAkhir()
2 Implementasikan interface pada class MataKuliahTeori dan
MataKuliahPraktikum
3 Buat class KRS yang menggunakan polymorphism untuk
mengelola berbagai mata kuliah
4 Implementasikan method overriding untuk menghitung IPK
berdasarkan jenis mata kuliah
5
Buat GUI sederhana untuk menampilkan hasil polymorphism
Contoh Implementasi Interface
// Interface untuk penilaian public interface Penilaian { double hitungNilaiAkhir();
void inputNilai(); String getGrade(); } // Implementasi untuk mata kuliah teori
public class MataKuliahTeori implements Penilaian { private double nilaiUTS,
nilaiUAS; @Override public double hitungNilaiAkhir() { return (nilaiUTS * 0.4) +
(nilaiUAS * 0.6); } // Implementasi method lainnya... }
Kriteria Penilaian
Implementasi polymorphism (40%)
Struktur kode yang baik (20%)

Pertemuan 8_ Konsep Polymorphism dan Implementasinya.pptx

  • 1.
    an 8: KonsepPolymorphism dan Implementasinya Memahami konsep polymorphism dalam pemrograman berorientasi objek dan cara mengimplementasikannya dalam pengembangan aplikasi dengan studi kasus sistem informasi akademik. Mata Kuliah: Pemrograman Berorientasi Objek Kode MK: IF-KK3003 | Bobot: 3 SKS Compile-Time Method Overloading Runtime Method Overriding Studi Kasus Sistem Informasi Akademik Tugas Praktikum & Lanjutan
  • 2.
    Konsep Dasar Polymorphism Memahamiprinsip dasar polymorphism dalam pemrograman berorientasi objek Definisi Polymorphism Kemampuan objek untuk merespons pesan yang sama dengan cara yang berbeda tergantung pada tipe objek tersebut. Pentingnya Polymorphism • Meningkatkan fleksibilitas kode • Memudahkan perluasan program • Mengurangi duplikasi kode • Memungkinkan abstraksi yang lebih baik Polymorphism dalam Aksi "Satu interface, banyak implementasi" Metode yang sama dapat berperilaku berbeda pada objek yang berbeda
  • 3.
    Jenis-jenis Polymorphism Memahami duabentuk utama polymorphism dalam pemrograman berorientasi objek Compile-Time Polymorphism Method Overloading - beberapa metode dengan nama sama tetapi parameter berbeda Diputuskan saat kompilasi program Tidak memerlukan inheritance // Contoh Method Overloading public class Calculator { int add(int a, int b) { return a+b; } double add(double a, double b) { return a+b; } int add(int a, int b, int c) { return a+b+c; } } Runtime Polymorphism Method Overriding - metode di subclass menggantikan metode di superclass Diputuskan saat runtime program Memerlukan inheritance dan interface // Contoh Method Overriding class Animal { void sound() { System.out.println("Animal makes sound"); } } class Dog extends Animal { @Override void sound() { System.out.println("Dog barks"); } }
  • 4.
    Implementasi Polymorphism (Bagian1) Method Overloading dalam Pemrograman Berorientasi Objek Method Overloading Method overloading adalah kemampuan untuk membuat beberapa metode dengan nama yang sama tetapi dengan parameter yang berbeda dalam satu kelas. Aturan Method Overloading Nama metode harus sama Parameter harus berbeda (jumlah atau tipe data) Tipe return boleh sama atau berbeda Access modifier boleh sama atau berbeda Contoh Kode Method Overloading public class Calculator { // Metode dengan 2 parameter int public int add(int a, int b) { return a + b; } // Metode dengan 3 parameter int (overload) public int add(int a, int b, int c) { return a + b + c; } // Metode dengan 2 parameter double (overload) public double add(double a, double b) { return a + b; } // Metode dengan parameter string (overload) public String add(String a, String b) { return a + b; } } Contoh Penggunaan
  • 5.
    Implementasi Polymorphism (Bagian2) Method Overriding dalam Pemrograman Berorientasi Objek Method Overriding Method overriding adalah kemampuan subclass untuk mengimplementasikan ulang metode yang sudah ada di superclass dengan implementasi yang berbeda. Aturan Method Overriding Nama metode harus sama Parameter harus sama Tipe return harus sama atau covariant Access modifier tidak boleh lebih restriktif Contoh Kode Method Overriding // Superclass public class Employee { protected String name; protected double baseSalary; public Employee(String name, double baseSalary) { this.name = name; this.baseSalary = baseSalary; } public double calculateSalary() { return baseSalary; } } // Subclass yang meng-override method public class Manager extends Employee { private double bonus; public Manager(String name, double baseSalary, double bonus) { super(name, baseSalary); this.bonus = bonus; } // Method overriding @Override public double calculateSalary() { return baseSalary + bonus; } }
  • 6.
    Studi Kasus SistemInformasi Akademik Penerapan Polymorphism dalam Sistem Informasi Akademik Polymorphism dalam SIA Class hierarchy untuk entitas akademik (Mahasiswa, Dosen, Staf) Method overriding untuk proses evaluasi berbeda per jenis mata kuliah Method overloading untuk fungsi registrasi dengan parameter berbeda Interface untuk berbagai jenis laporan akademik Hierarki Class SIA Contoh Implementasi // Abstract class untuk semua mata kuliah public abstract class MataKuliah { protected String kode; protected String nama; protected int sks; public abstract double hitungNilaiAkhir(); // Method overloading untuk registrasi public void registrasi(Mahasiswa mhs) { ... } public void registrasi(Mahasiswa mhs, String kelas) { ... } } // Implementasi untuk mata kuliah teori public class MataKuliahTeori extends MataKuliah { private double nilaiUTS, nilaiUAS; @Override public double hitungNilaiAkhir() { return (nilaiUTS * 0.4) + (nilaiUAS * 0.6); } } // Implementasi untuk mata kuliah praktikum public class MataKuliahPraktikum extends MataKuliah { private double nilaiPraktikum, nilaiLaporan; @Override public double hitungNilaiAkhir() { return (nilaiPraktikum * 0.7) + (nilaiLaporan * 0.3); } }
  • 7.
    Tugas Praktikum Menerapkan Polymorphismpada Sistem Informasi Akademik Sederhana Instruksi Praktikum 1 Buat class abstract Person dengan atribut dasar (nama, NIK) 2 Buat class Mahasiswa dan Dosen yang mewarisi dari class Person 3 Implementasikan method overriding untuk menampilkan informasi masing-masing 4 Buat class MataKuliah dengan method overloading untuk registrasi 5 Buat class Main untuk mendemonstrasikan polymorphism Contoh Kode Awal // Abstract class Person public abstract class Person { protected String nama; protected String NIK; public Person(String nama, String NIK) { this.nama = nama; this.NIK = NIK; } public abstract void tampilkanInfo(); } // Class Mahasiswa (lengkapi implementasinya) public class Mahasiswa extends Person { private String NIM; public Mahasiswa(String nama, String NIK, String NIM) { super(nama, NIK); this.NIM = NIM; } // Implementasi method overriding @Override public void tampilkanInfo() { // Implementasikan method ini } } Tips Praktikum
  • 8.
    Tugas Lanjutan Penerapan PolymorphismTingkat Lanjut pada Sistem Informasi Akademik Deskripsi Tugas 1 Buat interface Penilaian dengan method hitungNilaiAkhir() 2 Implementasikan interface pada class MataKuliahTeori dan MataKuliahPraktikum 3 Buat class KRS yang menggunakan polymorphism untuk mengelola berbagai mata kuliah 4 Implementasikan method overriding untuk menghitung IPK berdasarkan jenis mata kuliah 5 Buat GUI sederhana untuk menampilkan hasil polymorphism Contoh Implementasi Interface // Interface untuk penilaian public interface Penilaian { double hitungNilaiAkhir(); void inputNilai(); String getGrade(); } // Implementasi untuk mata kuliah teori public class MataKuliahTeori implements Penilaian { private double nilaiUTS, nilaiUAS; @Override public double hitungNilaiAkhir() { return (nilaiUTS * 0.4) + (nilaiUAS * 0.6); } // Implementasi method lainnya... } Kriteria Penilaian Implementasi polymorphism (40%) Struktur kode yang baik (20%)