Object-oriented programming adalah paradigma utama untuk memodelkan domain yang kompleks. Section ini membahas class dan object secara bertahap, lalu naik ke inheritance, polymorphism, composition, sampai multiple inheritance dan MRO.
Pahami class sebagai cetak biru dan object sebagai wujud nyatanya, lengkap dengan attribute dan behavior.
Buka → # Constructor dan __init__Pelajari cara __init__ mengisi object baru saat dibuat, peran self, dan pembuatan banyak instance sekaligus.
Buka → # Instance AttributesBedah data milik tiap object: penyimpanan per-instance, urutan lookup attribute, dan isi __dict__ yang sebenarnya.
Buka → # Class AttributesKenali data bersama di level class, fallback lookup, jebakan mutable attribute, dan konstanta class.
Buka → # Instance MethodsPelajari cara method bekerja lewat self, pemanggilan lewat class, dan __repr__ untuk output yang mudah dibaca.
Buka → # classmethod dan staticmethodBandingkan classmethod dengan staticmethod: alternative constructor, utility function, dan kapan memakainya.
Buka → # EncapsulationPahami konvensi _protected, name mangling dengan __private, dan pratinjau property pada class Python.
Buka → # InheritanceBangun hierarki class dengan inheritance: reuse method, override, extend lewat super(), dan relasi is-a.
Buka → # PolymorphismLihat satu interface menghasilkan banyak perilaku: method override, duck typing, dan protokol seperti len().
Buka → # CompositionKenali relasi has-a lewat composition dan delegation, serta kapan komposisi lebih baik daripada inheritance.
Buka → # Multiple InheritancePelajari sintaks multiple inheritance, diamond problem, dan pola mixin lewat contoh LogMixin yang bekerja.
Buka → # Method Resolution OrderBongkar urutan pencarian method (MRO) dengan __mro__, algoritma C3, dan alasan urutan class parent penting.
Buka → # super()Kuasai super() pada single inheritance dan cooperative __init__, termasuk mekanisme bentuk tanpa argumen.
Buka → # Kapan Menggunakan OOPKenali sinyal kapan OOP layak dipakai, kapan fungsi biasa atau dataclasses lebih tepat, dan bahaya over-engineering.
Buka →