Modul 5 — Pemrograman Berorientasi Objek (PBO / OOP)

5.1 Konsep Dasar dan Prinsip OOP

Konsep Class sebagai cetak biru (blueprint) dan Object sebagai perwujudan nyata (instance), method constructor (__init__), keyword self, serta 4 pilar utama OOP (Enkapsulasi, Pewarisan, Polimorfisme, Abstraksi).

Progres disimpan di browser ini saja.

A. Konsep Class dan Object

Pemrograman Berorientasi Objek (OOP) memodelkan sistem perangkat lunak sebagai interaksi antar-objek yang membungkus data status (*atribut*) dan perilaku tindakan (*method*):

KomponenPengertian / AnalogiContoh Kode Python
ClassCetak biru (*blueprint*) atau cetakan kue yang mendefinisikan struktur atribut dan perilaku bersama.`class Enemy:`
Object (Instance)Perwujudan nyata hasil cetakan dari sebuah class di memori komputer.`musuh1 = Enemy('Goblin', 10)`
Atribut (Field/Data)Variabel milik objek yang menyimpan keadaan status data.`self.name`, `self.damage`
MethodFungsi yang menempel di dalam class yang mendefinisikan kemampuan/perilaku objek.`def attack(self):`
Constructor (`__init__`)Method inisialisasi khusus yang otomatis dieksekusi saat objek baru diciptakan.`def __init__(self, name, hp):`
Keyword `self`Parameter referensi yang menunjuk langsung ke objek itu sendiri yang sedang aktif dipanggil.`self.name = name`

B. Implementasi Kode Class & Instansiasi Objek

class Enemy:                        # Definisi CLASS (cetak biru)
    def __init__(self, name, damage):  # Constructor otomatis
        self.name = name            # Atribut objek
        self.damage = damage        # Atribut objek

    def info(self):                 # Method objek
        return self.name + ' menyerang dengan damage ' + str(self.damage)

# Proses Instansiasi (Pembuatan Objek Nyata)
enemy1 = Enemy('Goblin', 10)        # Objek ke-1
enemy2 = Enemy('Orc', 25)           # Objek ke-2

print(enemy1.info())   # Output: Goblin menyerang dengan damage 10
print(enemy2.damage)   # Output: 25

Prinsip Inti: Satu class dapat digunakan berulang kali untuk mencetak puluhan hingga ribuan objek yang berbeda, di mana setiap objek memiliki nilai atribut independennya masing-masing.

C. Empat Pilar Utama OOP

Pilar OOPPrinsip KerjaContoh Nyata di Industri Gim
1. Encapsulation (Enkapsulasi)Membungkus data atribut dan method dalam satu wadah class serta membatasi akses langsung dari luar demi integritas data.Atribut `__health` karakter tidak bisa diubah langsung dari luar, wajib lewat method `take_damage()`.
2. Inheritance (Pewarisan)Class turunan (subclass) mewarisi seluruh atribut dan method dari class induk (superclass).Class `Mage` dan `Warrior` mewarisi atribut dasar dari class induk `Character`.
3. Polymorphism (Polimorfisme)Satu nama method yang sama mampu berperilaku berbeda-beda sesuai dengan objek spesifik yang memanggilnya.Memanggil `karakter.attack()` menghasilkan 'Tebasan Pedang' pada Warrior, namun 'Sihir Api' pada Mage.
4. Abstraction (Abstraksi)Menyembunyikan detail kerumitan implementasi internal dan hanya menyajikan antarmuka esensial bagi pengguna.Pemain cukup menekan tombol `serang()`, tanpa perlu tahu perhitungan matriks kalkulasi fisika di balik layar.

Latihan Soal

Pilih jawaban, tekan Check, lalu baca pembahasannya.

Benar 0 / 3

Soal 1mudah

Diberikan baris kode Python: hero1 = Hero('Arthur', 100). Pernyataan yang paling tepat mengenai hero1 dan Hero adalah ...

Soal 2sedang

Method khusus di dalam class Python yang secara otomatis dijalankan oleh interpreter saat sebuah objek baru diciptakan untuk menginisialisasi atribut awal adalah ...

Soal 3sedang

Dalam perancangan sistem gim RPG, pengembang menyembunyikan variabel poin nyawa (health) agar tidak dapat dimodifikasi sembarangan dari luar class, dan hanya memperbolehkan modifikasi nilai melalui method resmi take_damage(). Pilar OOP yang diterapkan dalam skenario tersebut adalah ...