LKPDPertemuan 14Bab 3Fase FSemester 1

LKPD Koding dan Kecerdasan Artifisial Kelas 11: Menerapkan Polimorfisme Melalui Penimpaan Metode (Method Overriding) pada Struktur Hierarki Kelas

LKPD ini disusun untuk satu pertemuan Koding dan Kecerdasan Artifisial kelas 11 dengan topik "Menerapkan Polimorfisme Melalui Penimpaan Metode (Method Overriding) pada Struktur Hierarki Kelas".

MEJAGURU.ID - DOKUMEN LKPD

LKPD Koding dan Kecerdasan Artifisial Kelas 11: Menerapkan Polimorfisme Melalui Penimpaan Metode (Method Overriding) pada Struktur Hierarki Kelas

Koding dan Kecerdasan Artifisial - Kelas 11

Bab 3 Pertemuan 14

LEMBAR KERJA PESERTA DIDIK (LKPD)

Koding dan Kecerdasan Artifisial — Kelas 11 (Fase F)

Topik: Menerapkan Polimorfisme Melalui Penimpaan Metode (Method Overriding) pada Struktur Hierarki Kelas

INFORMASI UMUM

Mata PelajaranKoding dan Kecerdasan Artifisial
Fase / KelasFase F / Kelas 11
TopikMenerapkan Polimorfisme Melalui Penimpaan Metode (Method Overriding) pada Struktur Hierarki Kelas
Alokasi Waktu2 JP (2 x 45 menit = 90 menit)
Tipe Aktivitascampuran
Tahun Ajaran2026/2027
Semester1
Nama Murid.................................
Kelas.................................

TUJUAN PEMBELAJARAN

  1. Menerapkan pewarisan dan polimorfisme dalam pemrograman berorientasi objek untuk mengoptimalkan hierarki struktur kode

PETUNJUK UMUM

  • Bacalah pengantar kasus dan petunjuk di setiap kegiatan secara seksama.
  • Kerjakan secara berpasangan atau mandiri sesuai instruksi guru.
  • Gunakan lingkungan pengembangan Python (IDE seperti VS Code, PyCharm, atau Google Colab) atau tuliskan kode secara terstruktur pada lembar kerja yang tersedia.
  • Fokuskan perhatian pada penerapan relasi pewarisan (inheritance) dan teknik penimpaan metode (method overriding) untuk menghasilkan perilaku polimorfik yang efisien.

KEGIATAN

Kegiatan 1: Eksplorasi Penerapan Overriding Sederhana pada Struktur Kelas Turunan

Estimasi: 25 menit

Alat & Bahan:

  • Perangkat komputer/laptop dengan Python 3 terpasang atau lembar kerja cetak
  • Teks pengantar kode kelas dasar

Petunjuk Pengerjaan:

  1. Perhatikan potongan kode kelas induk 'Notifikasi' yang memiliki metode 'kirim(pesan)'.
  2. Tuliskan kode untuk membuat kelas turunan 'EmailNotifikasi' dan 'SMSNotifikasi' yang mewarisi kelas 'Notifikasi'.
  3. Terapkan method overriding pada metode 'kirim(pesan)' di kedua kelas turunan tersebut agar menghasilkan format output pengiriman yang spesifik untuk masing-masing saluran.
  4. Tuliskan sintaks instansiasi dan pemanggilan metode untuk membuktikan perilaku polimorfisme berjalan.

Pertanyaan:

1. Lengkapi rancangan kode Python berikut dengan menerapkan pewarisan dan penimpaan metode (method overriding):

class Notifikasi:
def kirim(self, pesan):
print(f"Mengirim notifikasi umum: {pesan}")

# Tuliskan kelas EmailNotifikasi dan SMSNotifikasi yang menimpa metode kirim() di bawah ini!

2. Tuliskan baris kode untuk membuat objek daftar (list) yang memuat satu objek EmailNotifikasi dan satu objek SMSNotifikasi, lalu lakukan perulangan (loop) untuk menerapkan pemanggilan metode kirim("Halo") secara polimorfis!

Tuliskan kode implementasi Python secara lengkap pada area editor atau blok kode bergaris yang disediakan.

Kegiatan 2: Menerapkan Hierarki Polimorfisme pada Sistem Penggajian Karyawan

Estimasi: 35 menit

Alat & Bahan:

  • Komputer/IDE Python atau lembar kerja kode
  • Spesifikasi perhitungan gaji

Petunjuk Pengerjaan:

  1. Cermati skenario sistem SDM: Terdapat kelas induk 'Karyawan' dengan atribut nama dan gaji_pokok, serta metode 'hitung_gaji_total()'.
  2. Dua kelas turunan harus dibuat: 'KaryawanTetap' (menerima tunjangan) dan 'KaryawanKontrak' (dipotong biaya administrasi).
  3. Terapkan pewarisan dan override metode 'hitung_gaji_total()' pada masing-masing kelas turunan untuk menghitung formula yang sesuai.
  4. Uji hierarki tersebut dengan memproses sekumpulan objek dalam struktur list polimorfik.

Pertanyaan:

1. Implementasikan kelas induk 'Karyawan' beserta dua kelas turunannya ('KaryawanTetap' dan 'KaryawanKontrak') dalam Python dengan menerapkan pewarisan konstruktor (__init__) dan overriding metode 'hitung_gaji_total()' sesuai formula:

  • Karyawan: return gaji_pokok
  • KaryawanTetap: return gaji_pokok + tunjangan
  • KaryawanKontrak: return gaji_pokok - potongan

2. Tuliskan fungsi independen bernama 'proses_gaji(daftar_karyawan)' yang menerima list kumpulan objek turunan Karyawan dan mencetak nama serta hasil pemanggilan 'hitung_gaji_total()' secara dinamis tanpa memeriksa tipe kelas secara manual!

Tuliskan definisi kelas lengkap, pemanggilan super(), penimpaan metode, dan fungsi pemroses pada lembar kode yang disediakan.

Kegiatan 3: Optimalisasi dan Refaktorisasi Kode Menggunakan Hierarki Polimorfisme

Estimasi: 30 menit

Alat & Bahan:

  • IDE Python / lembar kerja penulisan refaktorisasi kode
  • Lembar perbandingan kode

Petunjuk Pengerjaan:

  1. Diberikan kode prosedural dengan banyak percabangan if-elif-else untuk menangani kalkulasi diskon pelanggan ('Reguler', 'Member', 'VIP').
  2. Rancang ulang struktur kode tersebut menjadi struktur berorientasi objek yang menerapkan kelas induk 'Pelanggan' dan kelas turunan untuk tiap jenis pelanggan.
  3. Terapkan method overriding pada metode 'hitung_total_bayar(tagihan)' di masing-masing kelas turunan agar menghilangkan struktur percabangan kompleks.
  4. Diskusikan bagaimana polimorfisme mengoptimalkan kode saat ada jenis pelanggan baru yang ditambahkan.
  5. Lengkapi refleksi belajar dan bersiap mengikuti evaluasi penutup pembelajaran (10 menit terakhir).

Pertanyaan:

1. Refaktorisasi kode bersyarat berikut ke dalam OOP berbasis pewarisan dan method overriding:

# Kode Awal:
# if tipe == 'Reguler': bayar = tagihan
# elif tipe == 'Member': bayar = tagihan * 0.9
# elif tipe == 'VIP': bayar = tagihan * 0.8

Tuliskan hierarki kelas (Pelanggan, PelangganMember, PelangganVIP) dengan metode hitung_total_bayar(tagihan) yang dioverride!

2. Diskusikan bersama rekanmu: Jika di masa depan toko ingin menambah tipe 'PelangganSuperVIP' dengan diskon 30%, bagaimanakah cara menerapkannya dalam struktur hierarki kelas yang sudah dibuat tanpa mengubah fungsi atau perulangan pemroses transaksi yang sudah ada?

Format tabel perbandingan kode lama vs kode baru hasil refaktorisasi berorientasi objek, disertai kotak catatan simpulan diskusi.

REFLEKSI

1. Bagian mana dari penulisan sintaks method overriding yang paling menantang bagimu saat menghubungkan kelas turunan dengan kelas induk?

2. Bagaimana penerapan polimorfisme membantu merapikan kode program yang sebelumnya dipenuhi banyak percabangan if-else?

3. Pada skenario dunia nyata apa lagi kamu dapat menerapkan pola pewarisan dan polimorfisme untuk mempermudah pengelolaan sistem?

Lihat & unduh lengkap

Masuk pakai Google untuk membuka lkpd pertemuan ini secara penuh.

Apa isi pertemuan ini?

Dokumen mencakup tujuan pembelajaran terpilih, urutan kegiatan inti yang sudah disesuaikan dengan alokasi JP, serta pertanyaan pemantik dan asesmen formatif singkat. Cocok dipakai sebagai bahan persiapan tatap muka maupun lampiran supervisi.

Cara pakai pertemuan ini

Unduh DOCX, lalu sesuaikan nama sekolah, kepala sekolah, dan NIP. Bagian kegiatan inti bisa Bapak/Ibu kurangi atau tambah sesuai karakter siswa di kelas; tujuan pembelajaran sebaiknya tetap selaras dengan ATP induk.