LKPDPertemuan 10Bab 3Fase FSemester 1

LKPD Koding dan Kecerdasan Artifisial Kelas 11: Menerapkan Metode Pengubah Setter dengan Validasi Nilai untuk Perlindungan Data dalam Enkapsulasi

LKPD ini disusun untuk satu pertemuan Koding dan Kecerdasan Artifisial kelas 11 dengan topik "Menerapkan Metode Pengubah Setter dengan Validasi Nilai untuk Perlindungan Data dalam Enkapsulasi".

MEJAGURU.ID - DOKUMEN LKPD

LKPD Koding dan Kecerdasan Artifisial Kelas 11: Menerapkan Metode Pengubah Setter dengan Validasi Nilai untuk Perlindungan Data dalam Enkapsulasi

Koding dan Kecerdasan Artifisial - Kelas 11

Bab 3 Pertemuan 10

LEMBAR KERJA PESERTA DIDIK (LKPD)

Koding dan Kecerdasan Artifisial — Kelas 11 (Fase F)

Topik: Menerapkan Metode Pengubah Setter dengan Validasi Nilai untuk Perlindungan Data dalam Enkapsulasi

INFORMASI UMUM

Mata PelajaranKoding dan Kecerdasan Artifisial
Fase / KelasFase F / Kelas 11
TopikMenerapkan Metode Pengubah Setter dengan Validasi Nilai untuk Perlindungan Data dalam Enkapsulasi
Alokasi Waktu2 JP (2 x 45 menit = 90 menit)
Tipe Aktivitascampuran
Tahun Ajaran2026/2027
Semester1
Nama Murid.................................
Kelas.................................

TUJUAN PEMBELAJARAN

  1. Menerapkan prinsip enkapsulasi dalam pemrograman berorientasi objek untuk perlindungan data

PETUNJUK UMUM

  • Bacalah instruksi pada setiap kegiatan dengan cermat sebelum menulis kode program.
  • Bekerjalah secara mandiri atau berpasangan sesuai petunjuk guru menggunakan perangkat komputer atau lembar kerja yang disediakan.
  • Terapkan aturan sintaks Python terkait enkapsulasi (penanda atribut private dengan dua garis bawah `__`, getter, dan setter dengan validasi).
  • Ujilah kode yang dibuat untuk memastikan pembatasan akses dan perlindungan data bekerja sesuai spesifikasi.

KEGIATAN

Kegiatan 1: Menerapkan Pengubah Akses Private dan Metode Akses Dasar pada Kelas Siswa

Estimasi: 25 menit

Alat & Bahan:

  • Komputer/Laptop dengan Python 3 terpasang atau IDE daring (Google Colab / Replit / IDLE)
  • Buku catatan / lembar LKPD cetak

Petunjuk Pengerjaan:

  1. Perhatikan kode program tanpa enkapsulasi berikut: class Siswa: def __init__(self, nama, nilai): self.nama = nama self.nilai = nilai s1 = Siswa('Ayu', 80) s1.nilai = -50 # Masalah: data tidak terlindungi dan bisa diisi nilai tidak valid print(s1.nilai)
  2. Terapkan enkapsulasi dengan mengubah atribut 'nama' dan 'nilai' menjadi atribut private menggunakan penanda '__'.
  3. Terapkan metode getter (get_nama, get_nilai) agar data atribut private tetap dapat dibaca dari luar kelas secara terkendali.

Pertanyaan:

1. Tuliskan implementasi deklarasi kelas Siswa dengan atribut private __nama dan __nilai di dalam konstruktor __init__, beserta dua metode getter get_nama() dan get_nilai().

2. Tuliskan kode program untuk membuat objek s1 dengan nama 'Ayu' dan nilai 80, kemudian tampilkan isi atribut tersebut menggunakan metode getter yang telah kamu buat.

Tuliskan kode program Python lengkap pada area kode teks atau editor IDE yang tersedia.

Kegiatan 2: Menerapkan Metode Setter dengan Validasi Nilai untuk Perlindungan Data

Estimasi: 35 menit

Alat & Bahan:

  • Komputer/Laptop dengan Python 3 terpasang atau lembar LKPD

Petunjuk Pengerjaan:

  1. Lanjutkan kelas Siswa dari Kegiatan 1.
  2. Buatlah metode setter set_nilai(self, nilai_baru) untuk mengubah nilai atribut private __nilai.
  3. Terapkan logika validasi di dalam metode setter tersebut: nilai baru hanya diterima jika berada pada rentang 0 sampai dengan 100.
  4. Jika nilai baru berada di luar rentang (kurang dari 0 atau lebih dari 100), tolak perubahan nilai dan tampilkan pesan kesalahan 'Nilai tidak valid! Harus antara 0-100.'
  5. Ujilah metode setter tersebut dengan memasukkan nilai valid (misal: 95) dan nilai tidak valid (misal: -10 atau 150), lalu cetak nilai akhirnya.

Pertanyaan:

1. Tuliskan implementasi metode setter set_nilai(self, nilai_baru) yang menerapkan validasi rentang nilai 0 hingga 100 untuk melindungi atribut private __nilai.

2. Lengkapi tabel uji coba berikut dengan menuliskan status penerimaan (Diterima / Ditolak) serta nilai akhir yang tersimpan pada atribut __nilai setelah operasi setter dipanggil berurutan pada objek s1 (nilai awal = 80).

Ruang tabel jawaban

Format tabel uji coba 4 kolom: [No, Perintah Pengujian, Status Validasi (Diterima/Ditolak), Nilai Akhir get_nilai()]. Baris 1: s1.set_nilai(90), Baris 2: s1.set_nilai(-15), Baris 3: s1.set_nilai(105), Baris 4: s1.set_nilai(75).

Kegiatan 3: Menerapkan Enkapsulasi Lengkap pada Kasus Rekening Bank

Estimasi: 30 menit

Alat & Bahan:

  • Komputer/Laptop atau lembar kerja tertulis

Petunjuk Pengerjaan:

  1. Rancang dan terapkan kelas RekeningBank yang mengimplementasikan prinsip enkapsulasi secara utuh.
  2. Kelas memiliki atribut private: __nomor_rekening (string) dan __saldo (float/int).
  3. Sediakan metode getter: get_nomor_rekening() dan get_saldo().
  4. Terapkan metode setor(self, jumlah) yang memvalidasi bahwa jumlah setoran harus lebih besar dari 0 sebelum menambahkan ke saldo.
  5. Terapkan metode tarik(self, jumlah) yang memvalidasi dua syarat: jumlah penarikan harus lebih besar dari 0 dan jumlah penarikan tidak boleh melebihi saldo saat ini.
  6. Tuliskan kode program utama untuk mendemonstrasikan perlindungan data saldo dari setoran bernilai negatif dan penarikan yang melebihi saldo.
  7. Kegiatan ini mencakup penyelesaian tugas mandiri, perangkuman hasil, dan pengisian refleksi pembelajaran bersama guru.

Pertanyaan:

1. Tuliskan kode lengkap kelas RekeningBank dengan atribut private (__nomor_rekening, __saldo), metode getter, serta metode penyetor dan penarik saldo yang dilengkapi validasi nilai.

2. Tuliskan baris kode pengujian untuk: (a) membuat rekening 'rek1' dengan nomor '12345' dan saldo awal 500000, (b) melakukan setor -50000 (tidak valid), (c) melakukan tarik 700000 (saldo kurang), (d) melakukan tarik 200000 (valid), dan (e) mencetak saldo akhir menggunakan get_saldo().

Tuliskan kode kelas RekeningBank dan kode pengujian program pada lembar jawaban bergaris atau editor Python.

REFLEKSI

1. Bagaimana penerapan atribut private (__nama_atribut) dan setter dengan validasi dapat mencegah kesalahan logika atau data korup dalam program yang kamu buat?

2. Bagian mana dalam merancang logika validasi pada setter yang paling menantang bagi kamu, dan bagaimana kamu memastikannya berjalan dengan benar?

3. Menurutmu, mengapa akses langsung ke atribut data tanpa melalui getter dan setter dianggap berisiko dalam rekayasa perangkat lunak?

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.