Dasar-Dasar Pemrograman Berorientasi Objek

Aug 20, 2024

Catatan Kuliah: Pemrograman Berorientasi Objek dengan Python

Pendahuluan

  • Fokus pada Pemrograman Berorientasi Objek (OOP) menggunakan Python.
  • Melalui studi kasus sederhana dengan dua objek: Player (pemain) dan Enemy (musuh).
  • Tujuan: Interaksi antara Player dan Enemy dalam konteks game sederhana.

Konsep Dasar OOP

  • OOP menggambarkan sesuatu melalui objek.
  • Atribut untuk Player:
    • name (nama)
    • health (kesehatan)
    • energy (energi)
  • Atribut untuk Enemy:
    • name (nama)
    • health (kesehatan)
  • Enemy tidak memiliki energi.

Kelas dan Metode

Definisi Kelas

  • Membuat kelas Player dan Enemy.
  • Masing-masing kelas memiliki metode yang berbeda:
    • Player:
      • attack (menyerang)
      • move (bergerak)
    • Enemy:
      • attack (menyerang) hanya ketika diserang oleh Player.

Atribut dan Metode

  • Player memiliki atribut:
    • name
    • health
    • energy
  • Enemy memiliki atribut:
    • name
    • health

Implementasi Kelas Player

Struktur Kelas

class Player:
    def __init__(self, name, health=100, energy=100):
        self.name = name
        self.health = health
        self.energy = energy

Metode attack

  • Mengurangi energy berdasarkan nilai damage yang diberikan.
  • Contoh implementasi:
def attack(self, damage=1):
    if self.energy >= damage:
        self.energy -= damage
        print(f'{self.name} attacking with {damage} damage')

Implementasi Kelas Enemy

Struktur Kelas

class Enemy:
    def __init__(self, name, health=500):
        self.name = name
        self.health = health

Metode attack

  • Enemy menyerang kembali jika diserang:
def attack(self, damage):
    self.health -= damage
    if self.health < initial_health:
        print(f'{self.name} is attacking back!')

Interaksi Antara Player dan Enemy

  • Player melakukan attack ke Enemy dan Enemy membalas serangan jika health berkurang.
  • Contoh penggunaan:
player1 = Player('Balmond')
monster = Enemy('Dragon')
player1.attack(80)
monster.attack(10)

Penanganan Atribut Privasi

  • Atribut yang bersifat private dapat dilindungi dengan menambahkan underscore (_).
  • Metode untuk mengakses atribut private (getter) yang bersifat publik dapat membantu mengontrol akses ke data.

Kesimpulan dan Pemahaman Lebih Lanjut

  • Memahami dasar-dasar OOP melalui implementasi sederhana di Python.
  • Menggunakan kelas, objek, dan interaksi antar objek untuk menciptakan simulasi sederhana.
  • Mempelajari penggunaan atribut dan metode untuk memanipulasi data dalam konteks OOP.