Soal 1Mana yang paling tepat menggambarkan masalah yang diselesaikan class OOP?
Rangkuman Python OOP — Menyatukan Data dan Perilaku ke dalam Class
Rangkuman Python OOP. Mencakup dasar class, pewarisan dan polimorfisme, special method (dunder), statement with, encapsulation, dan type hints di seluruh seri.
OOP Menyatukan Data dan Perilaku dalam Satu Unit
Di Sintaks Python kamu sudah belajar blok dasar seperti if, for, dan def. Python OOP menambahkan lapisan di atasnya dengan menyatukan data (atribut) dan perilaku (method) ke dalam satu class.
Dibanding kode prosedural yang menyimpan variabel dan fungsi secara terpisah, menyatukan data dengan logika yang mengoperasikannya membuat kodemu tetap mudah dibaca seiring sistem berkembang.
Dasar Class — Definisi, Atribut, Method
Sebuah class disusun dari empat bagian berikut:
- Keyword
classmendefinisikan tipe (= cetak biru) __init__menginisialisasi setiap instance (= wujud nyata)selfmembawa state per-instance (atribut)- Jenis method (instance / class / static) memisahkan perilaku
Pegang baik-baik pemetaan class = cetak biru, instance = wujud nyata dan sisanya akan terasa pas.
| Kategori | Konsep | Di mana dipakai |
|---|---|---|
| Definisi | Class dan Instance | Menyatukan data + perilaku; menelurkan banyak wujud nyata dari satu cetak biru |
| Inisialisasi | Constructor __init__ / Destructor __del__ | Menetapkan atribut wajib saat pembuatan; melakukan cleanup saat objek dihancurkan |
| Atribut | Variabel Class vs Instance | Membedakan nilai yang dibagikan semua instance dengan nilai yang dipegang per-instance |
| Method | Instance / Class / Static | Memisahkan tanggung jawab (operasi instance / operasi tipe / fungsi murni) berdasarkan self / cls / tanpa argumen |
Menghubungkan Class — Pewarisan dan Polimorfisme
Gabungkan pewarisan (memakai ulang class induk), multiple inheritance (mencampur beberapa induk), dan polimorfisme (satu antarmuka, perilaku berbeda) maka kamu bisa memangkas duplikasi sambil menjaga desain tetap fleksibel. Saat cabang if type(...) mulai menumpuk di kode pemanggil, raih polimorfisme.
| Kategori | Konsep | Di mana dipakai |
|---|---|---|
| Pewarisan | class Anak(Induk) dan super() | Memakai ulang atribut dan method induk di anak; override untuk menyesuaikan per kasus |
| Multiple inheritance | Beberapa induk dan MRO | Menggabungkan fitur dari beberapa induk (pola mixin). Method bernama sama mengikuti prioritas MRO |
| Polimorfisme | Polimorfisme | Nama method sama, perilaku berbeda per tipe — menghapus cabang `if type(...)` di pemanggil |
Desain Class yang Pythonic — Special Method, with, dan Type Hints
Dengan mengimplementasikan dunder method (special method bernama __seperti_ini__), class-mu menyatu langsung dengan fitur bahasa Python seperti operator +, print(), dan statement with. Tambahkan konvensi encapsulation (_x / __x / @property) dan type hints maka maintainability serta keterbacaan meningkat tajam.
| Kategori | Konsep | Di mana dipakai |
|---|---|---|
| Special method | __add__ / __str__ / __eq__ dll. | Mengajari `+`, `print`, dan `==` cara class-mu berperilaku; menyatu dengan sintaks Python |
| Encapsulation | _x dan __x, @property / @setter | Mempersempit apa yang bisa diakses dari luar; validasi di dalam setter |
| Context manager | with dan __enter__ / __exit__ | Membangun pola acquire/release yang andal untuk resource (file, DB, lock) ke dalam class-mu |
| with dalam aksi | File I/O dengan open() | Penggunaan klasik with — mencegah kebocoran close() dan kasus tepi exception |
| Type hints | Notasi : int -> str | Menuliskan tipe argumen / kembalian / atribut; mendapat pemeriksaan statis dari IDE dan mypy |
Berikutnya — Proyek Nyata
Selanjutnya, hadapi setup proyek nyata yang dibangun dari beberapa file dan modul, dan ambil library berguna untuk diandalkan.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Mana masalah klasik yang diselesaikan polimorfisme?
Soal 3Method mana yang kamu implementasikan untuk membuat class-mu bisa dipakai dengan statement with, seperti with my_obj:?