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.
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).
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
Berkas Kode Program (.py)
File: m02_katalog_perpustakaan.py
Seluruh implementasi wajib mematuhi standar konvensi PEP 8 dan type annotations PEP 484.
Audit Kode AI: Type Hinting Strict
Mengarahkan AI Coding Assistant sebagai Lead System Architect dan mengaudit kelemahan kode.
Siklus Verifikasi Mahasiswa
- AI sering membuat kode Python gaya lama tanpa type annotations.
- Perintahkan AI menyematkan type hints ketat pada seluruh parameter dan return value.
- Audit apakah AI keliru meletakkan mutable list sebagai class attribute.
Dokumentasikan seluruh proses instruksi dan koreksi di dalam berkas PROMPT_LOG.md.
Tugas In-Lab: Katalog Buku Perpustakaan
Target: Mengimplementasikan class Buku dan Anggota dengan pelacakan stok global.
- 15 Menit Koding Manual: Tulis class Buku dengan stok dan method pinjam().
- 15 Menit di Antigravity: Tambahkan class attribute total_buku_tersedia dan verifikasi aksesnya.
- 5 Menit Verifikasi: Jalankan skrip di terminal untuk verifikasi mutasi stok.
Dinilai langsung saat sesi praktikum di laboratorium.
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.
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.