python object oriented programming | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: python object oriented programming

Sunday, April 26, 2026

python object oriented programming

Python OOP Pemula Artikel #13 dari 16
Seri Belajar Python: From Zero to Zorro

Pemrograman Berorientasi Objek (OOP): Cara Python Pikir Layaknya Dunia Nyata

Kamu pernah bingung kenapa programmer sering bilang "bikin class dulu"? Di artikel ini, kamu akan paham kenapa OOP Python bukan sekadar gaya-gayaan — tapi cara berpikir yang bikin kode kamu lebih rapi, reusable, dan powerful.

12
Menit Baca
Pemula
Level
2026
Diperbarui

Bayangkan kamu diminta membangun sebuah kota. Kamu bisa bangun satu per satu bata tanpa rencana — atau kamu bisa bikin cetak biru (blueprint) untuk tiap jenis bangunan, lalu tinggal "cetak" sebanyak yang kamu butuhkan. OOP Python (Pemrograman Berorientasi Objek) bekerja persis seperti itu. Daripada nulis kode yang acak-acakan, kamu mendefinisikan "blueprint" yang disebut class, lalu buat banyak object dari situ. Hasilnya? Kode yang bersih, terstruktur, dan bisa dipakai ulang — persis kayak kota yang direncanakan dengan baik.

Di artikel ke-13 dari seri "Python from Zero to Zorro" ini, kamu akan belajar konsep dasar pemrograman berorientasi objek dengan cara yang paling masuk akal: lewat analogi kehidupan nyata dan contoh kode yang bisa langsung kamu coba.

📌 Definisi Kunci
OOP (Object-Oriented Programming)
Paradigma pemrograman yang mengorganisir kode dalam bentuk objek — kumpulan data (atribut) dan fungsi (method) yang saling terkait. OOP Python memungkinkan kamu membuat kode yang modular, reusable, dan mudah dikelola dalam proyek besar.

🏗️ Apa Itu OOP Python dan Kenapa Kamu Butuh Ini?

Sebelum OOP Python ada, programmer nulis kode secara prosedural — dari atas ke bawah, satu langkah demi satu langkah. Ini oke untuk program kecil. Tapi bayangkan kamu bikin game RPG dengan ratusan karakter, masing-masing punya nama, HP, serangan berbeda... Kodenya bakal jadi mimpi buruk.

OOP hadir sebagai solusi: kamu mendefinisikan satu "cetakan" karakter, lalu buat ribuan karakter berbeda dari cetakan itu. Di Python, cetakan ini disebut class, dan setiap karakter yang dibuat disebut object (atau instance).

💡 Analogi Kehidupan Nyata
Class = Cetakan kue 🍪 | Object = Kue yang sudah jadi
Satu cetakan bisa bikin ribuan kue. Setiap kue punya ukuran dan rasa yang bisa berbeda, tapi semua dibuat dari cetakan yang sama. Class di Python bekerja persis begitu!

Ada 4 pilar utama OOP yang perlu kamu kenal — dan semuanya ada di Python:

Pilar OOP Artinya Analogi
Encapsulation Membungkus data & fungsi dalam satu unit Dompet — isinya tersimpan rapi di dalam
Inheritance Class anak mewarisi sifat class induk Anak mewarisi sifat orang tua
Polymorphism Satu nama, banyak bentuk/perilaku Tombol "play" di Spotify vs YouTube — sama tapi beda
Abstraction Sembunyikan kompleksitas, tampilkan yang penting Setir mobil — kamu gak perlu tahu cara kerja mesinnya

🐍 Cara Membuat Class dan Object di Python OOP

Oke, cukup teorinya. Mari kita masuk ke kode! Kita akan buat class Mobil sebagai contoh pertama — sesuatu yang familiar dan mudah dibayangkan.

1
Definisikan Class dengan keyword class
Class adalah blueprint-nya. Nama class biasanya diawali huruf kapital (PascalCase).
mobil.py
class Mobil:
    # Method __init__ dipanggil otomatis saat object dibuat
    def __init__(self, merk, warna, tahun):
        self.merk  = merk
        self.warna = warna
        self.tahun = tahun

    def info(self):
        print(f"Mobil {self.merk} warna {self.warna}, tahun {self.tahun}")

    def klakson(self):
        print("Beep beep! 🚗")
2
Buat Object dari Class
Sekarang kita "cetak" beberapa mobil dari blueprint yang sudah dibuat. Setiap object punya data yang berbeda!
main.py
# Membuat object dari class Mobil
mobil1 = Mobil("Toyota", "Merah", 2022)
mobil2 = Mobil("Honda", "Putih", 2020)

mobil1.info()    # Mobil Toyota warna Merah, tahun 2022
mobil2.info()    # Mobil Honda warna Putih, tahun 2020
mobil1.klakson() # Beep beep! 🚗

# Akses atribut langsung
print(mobil1.merk)  # Toyota
3
Pahami Peran self
Parameter self adalah cara Python merujuk ke object itu sendiri. Ketika kamu panggil mobil1.info(), Python otomatis mengisi self dengan mobil1. Jadi self.merk = data merk milik mobil1 itu sendiri.
⚡ Insight Penting: Apa itu __init__?
Method __init__ (dibaca: dunder init) adalah constructor — fungsi yang otomatis dijalankan ketika object baru dibuat. Di sinilah kamu set data awal (atribut) object. Dua underscore di depan dan belakang menandakan ini adalah "method spesial" bawaan Python.

🧬 Inheritance: Sifat Turun-Temurun di OOP Python

Salah satu fitur paling powerful di pemrograman berorientasi objek Python adalah inheritance (pewarisan). Konsepnya sederhana: class anak bisa "mewarisi" semua atribut dan method dari class induk, lalu menambahkan atau mengubah sesuai kebutuhan.

Bayangkan kamu sudah punya class Hewan. Sekarang kamu mau buat class Anjing dan Kucing. Daripada nulis ulang dari nol, kamu cukup warisi class Hewan dan tambahkan keunikan masing-masing:

inheritance.py
# Class Induk (Parent Class)
class Hewan:
    def __init__(self, nama, umur):
        self.nama = nama
        self.umur = umur

    def makan(self):
        print(f"{self.nama} sedang makan 🍖")

    def info(self):
        print(f"Nama: {self.nama}, Umur: {self.umur} tahun")

# Class Anak — Mewarisi Hewan
class Anjing(Hewan):  # ← ini sintaks pewarisan!
    def __init__(self, nama, umur, ras):
        super().__init__(nama, umur)  # panggil __init__ induk
        self.ras = ras

    def suara(self):
        print(f"{self.nama} berkata: Guk guk! 🐶")

class Kucing(Hewan):
    def suara(self):
        print(f"{self.nama} berkata: Meong! 🐱")

# Penggunaan
rex  = Anjing("Rex", 3, "Golden Retriever")
mimi = Kucing("Mimi", 2)

rex.info()   # Warisan dari Hewan: Nama: Rex, Umur: 3 tahun
rex.makan()  # Warisan dari Hewan: Rex sedang makan 🍖
rex.suara()  # Milik Anjing: Rex berkata: Guk guk! 🐶
mimi.suara() # Milik Kucing: Mimi berkata: Meong! 🐱
🔥 Fakta Menarik: Semua di Python adalah Object!
Di Python, segalanya adalah object. Integer, string, list, function — semuanya adalah instance dari class tertentu. Coba ketik type(42) di Python — kamu akan dapat <class 'int'>. Berarti angka 42 pun adalah object dari class int!
🔍 Prosedural vs OOP: Kapan Pakai Yang Mana?
📝 Prosedural
  • Program kecil & sederhana
  • Script sekali pakai
  • Kode dari atas ke bawah
  • Mudah dipelajari pertama kali
🏗️ OOP Python
  • Proyek besar & kompleks
  • Kode yang reusable
  • Kerja dalam tim
  • Aplikasi, game, sistem nyata

🎭 Polymorphism & Encapsulation: Dua Pilar OOP yang Sering Dilupakan

Kita sudah lihat inheritance. Sekarang mari sentuh dua pilar OOP Python lainnya yang bikin kode kamu makin profesional.

🎭 Polymorphism — Satu Nama, Banyak Perilaku
Perhatikan contoh sebelumnya — Anjing dan Kucing keduanya punya method suara(), tapi hasilnya berbeda. Ini polymorphism! Satu antarmuka (suara()), perilaku yang berbeda tergantung objectnya.
# Polymorphism dalam aksi
hewan_hewan = [
    Anjing("Buddy", 4, "Labrador"),
    Kucing("Luna", 2),
    Anjing("Max", 5, "Poodle"),
]

# Satu loop, tapi tiap object bersuara berbeda!
for hewan in hewan_hewan:
    hewan.suara()

# Output:
# Buddy berkata: Guk guk! 🐶
# Luna berkata: Meong! 🐱
# Max berkata: Guk guk! 🐶
🔒 Encapsulation — Jaga Data Tetap Aman
Di Python, kamu bisa "sembunyikan" atribut dari luar class dengan awalan __ (double underscore). Ini disebut atribut private.
class RekeningBank:
    def __init__(self, pemilik, saldo_awal):
        self.pemilik  = pemilik
        self.__saldo  = saldo_awal  # private! tidak bisa diakses langsung

    def lihat_saldo(self):
        print(f"Saldo {self.pemilik}: Rp{self.__saldo:,}")

    def setor(self, jumlah):
        if jumlah > 0:
            self.__saldo += jumlah
            print(f"Berhasil setor Rp{jumlah:,}")

rekening = RekeningBank("Budi", 1000000)
rekening.lihat_saldo()        # Saldo Budi: Rp1,000,000
rekening.setor(500000)        # Berhasil setor Rp500,000
rekening.lihat_saldo()        # Saldo Budi: Rp1,500,000

# rekening.__saldo  ← ERROR! Tidak bisa diakses langsung
⚠️ Perhatian: Python dan "Private"
Di Python, atribut private dengan __ sebenarnya tidak benar-benar tersembunyi seperti di Java atau C++. Ini lebih sebagai konvensi — sinyal ke programmer lain "jangan langsung akses ini". Python percaya programmer dewasa untuk patuhi aturan ini 😄
💡 Tips Pro: Kapan Mulai Pakai OOP?
Mulai pakai OOP Python ketika kamu punya beberapa fungsi yang berbagi data yang sama, atau ketika kamu ingin membuat banyak "variasi" dari sesuatu yang mirip. Kalau kamu cuma butuh satu fungsi sederhana, tidak perlu memaksakan pakai class!
✅ Kesimpulan

OOP Python: Kamu Sudah Selangkah Lebih Maju!

Di artikel ini, kamu sudah belajar bahwa OOP Python (pemrograman berorientasi objek) adalah cara mengorganisir kode dengan menggunakan class dan object — layaknya blueprint dan produk jadinya. Kita telah menjelajahi:

  • Class & Object — blueprint dan hasil cetakannya
  • Method & Atribut — fungsi dan data yang dimiliki object
  • Inheritance — class anak mewarisi sifat class induk
  • Polymorphism — satu antarmuka, banyak perilaku
  • Encapsulation — melindungi data dengan atribut private
OOP adalah paradigma yang dipakai di hampir semua framework Python modern — Django, Flask, FastAPI, dan masih banyak lagi. Dengan memahami konsep ini sekarang, kamu sudah meletakkan fondasi yang kuat untuk proyek Python yang lebih besar! 🚀
💬 Punya pertanyaan tentang OOP? Atau mau share pengalaman pertama kamu pakai class di Python? Tulis di kolom komentar di bawah — siapa tahu bisa bantu teman-teman lain yang lagi berjuang dengan konsep yang sama! Dan jangan lupa share artikel ini ke teman kamu yang juga lagi belajar Python 🐍
#BelajarPython #Python #OOPPython #PemrogramanBerorientasiObjek #PythonFromZeroToZorro #PemulaPython
📚 Bagian dari Seri
Seri Belajar Python: Python from Zero to Zorro
16 artikel lengkap membawa kamu dari nol sampai bisa bikin project Python sendiri. Tersusun rapi, dari dasar sampai topik lanjutan.
🗂️ Lihat Daftar Isi Lengkap →
Navigasi Artikel

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux