Modul 02: Pertemuan 02

Objek, Class, State & Behavior, Type Hints

Constructor __init__, Parameter self, dan PEP 484

Mata kuliah Pemrograman Berorientasi Objek berbasis Python 3.10+ dan metode Vibe Coding terkontrol.

Pemateri: Aditya Pratama

Program Studi Sistem Informasi

Gunakan tombol Selanjutnya atau Panah Kanan
Fondasi Arsitektur

Anatomi Class & Peran self

Parameter self

  • Merujuk ke instance objek yang sedang aktif.
  • Wajib pada setiap instance method di Python.
  • Python mengeksekusi obj.method() sebagai Class.method(obj).

Type Hints (PEP 484)

  • Menegaskan tipe data parameter dan return value.
  • Mencegah bug tipe data sebelum program dijalankan.
  • Membantu autocomplete IDE dan memandu AI Assistant.

Referensi: Python Object-Oriented Programming (4th Edition).

Implementasi Teknis

Instance Attribute vs Class Attribute

Instance Attribute

  • Dideklarasikan di dalam __init__ dengan self.
  • Spesifik untuk objek individual.
  • Contoh: self.judul, self.harga

Class Attribute

  • Dideklarasikan langsung di badan class.
  • Dimiliki bersama oleh seluruh instance class.
  • Contoh: Buku.total_koleksi_buku

Seluruh implementasi wajib mematuhi standar konvensi PEP 8 dan type annotations PEP 484.

Metodologi Vibe Coding

Audit Kode AI: Type Hinting Strict

Mengarahkan AI Coding Assistant sebagai Lead System Architect dan mengaudit kelemahan kode.

Siklus Verifikasi Mahasiswa

  1. AI sering membuat kode Python gaya lama tanpa type annotations.
  2. Perintahkan AI menyematkan type hints ketat pada seluruh parameter dan return value.
  3. Audit apakah AI keliru meletakkan mutable list sebagai class attribute.

Dokumentasikan seluruh proses instruksi dan koreksi di dalam berkas PROMPT_LOG.md.

Praktikum Kelas: In-Lab (35 Menit)

Tugas In-Lab: Katalog Buku Perpustakaan

Target: Mengimplementasikan class Buku dan Anggota dengan pelacakan stok global.

  1. 15 Menit Koding Manual: Tulis class Buku dengan stok dan method pinjam().
  2. 15 Menit di Antigravity: Tambahkan class attribute total_buku_tersedia dan verifikasi aksesnya.
  3. 5 Menit Verifikasi: Jalankan skrip di terminal untuk verifikasi mutasi stok.

Dinilai langsung saat sesi praktikum di laboratorium.

Tugas Mandiri: Take-Home

Tugas Take-Home: Sistem Rental Kendaraan Kampus

Target: Membangun transaksi rental mobil dengan type hints ketat.

  • Spesifikasi Kebutuhan:
    • Kendaraan (plat_nomor: str, merk: str, harga_per_hari: float)
    • Pelanggan (nim: str, nama: str, sewaan_aktif: list[Kendaraan])
    • Method: sewa_kendaraan() dan kembalikan_kendaraan()
  • Berkas Pengumpulan:
    • rental_app.py
    • PROMPT_LOG.md (log penambahan type hints)
  • Tenggat Waktu: H-1 sebelum pertemuan berikutnya melalui portal LMS.

Kriteria penilaian: kebenaran pilar PBO, kelengkapan PROMPT_LOG.md, dan kebersihan kode.

Kesimpulan

Rangkuman Pertemuan 02

Poin Kunci Konseptual

Anatomi Class & Peran self: Kuasai pemodelan objek dan batasan hak akses agar integritas arsitektur software terjaga.

Poin Kunci Vibe Coding

Gunakan AI untuk mempercepat penulisan kerangka, tetapi kendalikan logika dan validasi melalui audit kritis mahasiswa.

Sesi Diskusi & Tanya Jawab

Silakan ajukan pertanyaan sebelum memulai pengerjaan tugas In-Lab di kelas.