Python Lanjutan | #1 Pengenalan OOP (Object-Oriented Programming)

Pengenalan OOP (Object-Oriented Programming) di Python

Object-Oriented Programming (OOP) adalah paradigma pemrograman yang menggunakan konsep "objek" untuk merepresentasikan data dan fungsi. OOP memudahkan pengelolaan kode, memungkinkan kita untuk membuat struktur program yang lebih modular dan reusable. Python adalah bahasa pemrograman yang mendukung OOP sepenuhnya.

1. Apa itu OOP?

Dalam OOP, kita memodelkan program dengan menggunakan class dan objek. Objek adalah representasi nyata dari sebuah entitas yang memiliki atribut (data) dan metode (fungsi). Class, di sisi lain, adalah cetak biru atau template untuk membuat objek.

Empat prinsip utama OOP adalah:

  • Encapsulation: Proses menyembunyikan detail implementasi dan menampilkan hanya antarmuka yang diperlukan.
  • Abstraction: Menyembunyikan kompleksitas dan hanya menampilkan informasi penting.
  • Inheritance: Pewarisan sifat atau metode dari satu class ke class lain.
  • Polymorphism: Kemampuan untuk menggunakan metode yang sama dengan cara yang berbeda, tergantung pada objek yang memanggilnya.

2. Class dan Objek

Sebuah class adalah cetak biru untuk membuat objek. Setiap objek yang dibuat dari class disebut sebagai instance dari class tersebut. Objek memiliki atribut (variabel) dan metode (fungsi) yang didefinisikan di dalam class.


# Definisi class
class Mobil:
    def __init__(self, merk, warna):
        self.merk = merk  # Atribut
        self.warna = warna

    def info(self):  # Metode
        print(f"Mobil {self.merk} berwarna {self.warna}")

# Membuat objek
mobil1 = Mobil("Toyota", "Merah")
mobil1.info()  # Output: Mobil Toyota berwarna Merah

Pada contoh di atas, kita mendefinisikan class Mobil dengan dua atribut merk dan warna. Fungsi __init__ adalah konstruktor yang digunakan untuk menginisialisasi objek baru. Metode info() menampilkan informasi tentang mobil. Kita kemudian membuat objek mobil1 dan memanggil metode info().

3. Inheritance dan Polymorphism

Inheritance atau pewarisan memungkinkan satu class untuk mewarisi atribut dan metode dari class lain. Hal ini memungkinkan kita untuk membuat class yang lebih spesifik tanpa harus menulis ulang kode yang sama. Sementara itu, polymorphism adalah kemampuan objek untuk menggunakan metode yang sama dengan cara yang berbeda tergantung pada class yang memanggilnya.

Inheritance


# Class induk (parent class)
class Hewan:
    def __init__(self, nama):
        self.nama = nama
    
    def suara(self):
        return "Suara tidak diketahui"

# Class anak (child class) mewarisi class Hewan
class Kucing(Hewan):
    def suara(self):
        return "Meong"

class Anjing(Hewan):
    def suara(self):
        return "Guk"

# Membuat objek dari class turunan
kucing1 = Kucing("Kitty")
anjing1 = Anjing("Buddy")

print(kucing1.nama, ":", kucing1.suara())  # Output: Kitty : Meong
print(anjing1.nama, ":", anjing1.suara())  # Output: Buddy : Guk

Pada contoh di atas, class Kucing dan Anjing mewarisi class Hewan. Mereka memiliki metode suara() yang berbeda, meskipun nama metode sama, inilah contoh polymorphism. Dengan inheritance, kita dapat menggunakan kembali atribut dan metode dari class induk.

Polymorphism

Polymorphism di Python memungkinkan kita untuk mendefinisikan metode yang sama pada class yang berbeda, tetapi dengan implementasi yang berbeda.


def cetak_suara(hewan):
    print(hewan.suara())

# Menggunakan fungsi dengan objek dari class berbeda
cetak_suara(kucing1)  # Output: Meong
cetak_suara(anjing1)  # Output: Guk

Fungsi cetak_suara() menerima parameter hewan, dan bisa digunakan untuk objek dari class Kucing maupun Anjing. Hasil suara akan berbeda tergantung pada class yang memanggilnya, itulah yang disebut polymorphism.

Kesimpulan

Object-Oriented Programming (OOP) adalah pendekatan yang kuat dalam pemrograman untuk membangun struktur kode yang modular dan mudah dipelihara. Dengan memahami konsep seperti class, objek, inheritance, dan polymorphism, kita dapat menulis program yang lebih efisien dan fleksibel.

Komentar