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.

4 Pilar yang Menopang OOP
Struktur dasarclass / atribut / methodPewarisan & Polimorfismeclass Anak(Induk) + overrideSpecial method__init__ / __str__menyatu dengan sintaks PythonEncapsulation & Type hints_x / @property / : int
Mulai dari struktur dasar sebuah class, lalu kembangkan ke empat arah: pewarisan dan polimorfisme untuk menghubungkan class, special method agar class menyatu dengan sintaks Python, serta encapsulation dan type hints untuk hasil yang lebih aman dan mudah dibaca.

Dasar Class — Definisi, Atribut, Method

Sebuah class disusun dari empat bagian berikut:

  • Keyword class mendefinisikan tipe (= cetak biru)
  • __init__ menginisialisasi setiap instance (= wujud nyata)
  • self membawa 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.

KategoriKonsepDi mana dipakai
DefinisiClass dan InstanceMenyatukan data + perilaku; menelurkan banyak wujud nyata dari satu cetak biru
InisialisasiConstructor __init__ / Destructor __del__Menetapkan atribut wajib saat pembuatan; melakukan cleanup saat objek dihancurkan
AtributVariabel Class vs InstanceMembedakan nilai yang dibagikan semua instance dengan nilai yang dipegang per-instance
MethodInstance / Class / StaticMemisahkan 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.

Mewarisi dari Induk, Override per Anak untuk Polimorfisme
Animal (induk)speak()Dog (anak)speak() = WoofCat (anak)speak() = MeowBird (anak)speak() = Tweetwariskanwariskanwariskan
Tiap class anak meng-override antarmuka bersama (mis. method speak) yang didefinisikan di induk. Pemanggil tidak perlu tahu anak konkretnya — memanggil nama method yang sama memicu perilaku berbeda per tipe.
KategoriKonsepDi mana dipakai
Pewarisanclass Anak(Induk) dan super()Memakai ulang atribut dan method induk di anak; override untuk menyesuaikan per kasus
Multiple inheritanceBeberapa induk dan MROMenggabungkan fitur dari beberapa induk (pola mixin). Method bernama sama mengikuti prioritas MRO
PolimorfismePolimorfismeNama 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.

KategoriKonsepDi mana dipakai
Special method__add__ / __str__ / __eq__ dll.Mengajari `+`, `print`, dan `==` cara class-mu berperilaku; menyatu dengan sintaks Python
Encapsulation_x dan __x, @property / @setterMempersempit apa yang bisa diakses dari luar; validasi di dalam setter
Context managerwith dan __enter__ / __exit__Membangun pola acquire/release yang andal untuk resource (file, DB, lock) ke dalam class-mu
with dalam aksiFile I/O dengan open()Penggunaan klasik with — mencegah kebocoran close() dan kasus tepi exception
Type hintsNotasi : int -> strMenuliskan 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.

Peta Jalan Belajar Python Sekilas
Dasar PythonMemilih tipeSintaks PythonMembangun logikaPython OOPData + perilakudalam satu tempatProyek nyataPenggunaan framework← Kamu di siniBerikutnyadibangun di atasdibangun di atasdibangun di atas
Tumpuk lapisan-lapisan — Dasar → Sintaks → OOP dari atas ke bawah. Seri ini membahas lapisan paling bawah, OOP. Berikutnya adalah memanfaatkan fondasi ini di proyek dan framework nyata.
QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Mana yang paling tepat menggambarkan masalah yang diselesaikan class OOP?

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:?