Main Menu

Belajar Python Dasar #15: Abstraction


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Python Dasar #15: Abstraction

Halo teman-teman semuanya, pada artikel kali ini kita akan membahas tentang Abstraction di Python. Abstraction adalah salah satu pilar utama dalam Pemrograman Berorientasi Objek (OOP).

Secara sederhana, Abstraction adalah proses menyembunyikan detail implementasi dan hanya menampilkan fungsionalitas penting kepada pengguna.

Dengan abstraction, kita bisa fokus pada apa yang dilakukan daripada bagaimana cara melakukannya.

Contoh di kehidupan nyata:

Ketika kita menyalakan televisi dengan menekan tombol power, kita tidak perlu tahu bagaimana listrik dialirkan atau bagaimana rangkaian elektronik bekerja. Kita hanya peduli bahwa televisi menyala.

Abstraction dengan Abstract Class

Di Python, abstraction biasanya dilakukan dengan abstract class menggunakan modul abc (Abstract Base Class).

Abstract class adalah class yang tidak bisa diinstansiasi secara langsung, melainkan hanya digunakan sebagai blueprint untuk class lain.

from abc import ABC, abstractmethod

# Abstract class
class Hewan(ABC):
    @abstractmethod
    def suara(self):
        pass

# Subclass yang mengimplementasikan abstract method
class Kucing(Hewan):
    def suara(self):
        return "Meow"

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

# Tidak bisa langsung membuat object dari class abstract
# h = Hewan()  # Error!

# Hanya bisa dari subclass
k = Kucing()
a = Anjing()

print(k.suara())
print(a.suara())

Output:

Meow
Guk guk
  • Class Hewan hanya mendefinisikan kontrak method suara(), tanpa implementasi.
  • Subclass (Kucing, Anjing) wajib mengimplementasikan method tersebut.

Abstraction di Dunia Nyata

Misalnya kita membuat sistem pembayaran. Kita hanya ingin mendefinisikan "setiap metode pembayaran harus punya fungsi bayar()", tapi detail implementasinya bisa berbeda.

from abc import ABC, abstractmethod

class Pembayaran(ABC):
    @abstractmethod
    def bayar(self, jumlah):
        pass

class Gopay(Pembayaran):
    def bayar(self, jumlah):
        print(f"Bayar {jumlah} menggunakan GoPay")

class Dana(Pembayaran):
    def bayar(self, jumlah):
        print(f"Bayar {jumlah} menggunakan Dana")

# Menggunakan abstraction
def proses_pembayaran(pembayaran, jumlah):
    pembayaran.bayar(jumlah)

# Memanggil dengan berbagai metode
proses_pembayaran(Gopay(), 50000)
proses_pembayaran(Dana(), 75000)

Output:

Bayar 50000 menggunakan GoPay
Bayar 75000 menggunakan Dana

Dengan abstraction, kita bisa membuat kode yang fleksibel. Jika nanti ada metode pembayaran baru (misalnya OVO, ShopeePay), cukup buat class baru yang mewarisi Pembayaran dan implementasikan bayar().

Kesimpulan

Pada artikel ini kita sudah belajar tentang Abstraction di Python. Abstraction membantu kita menyembunyikan detail implementasi yang tidak perlu dan hanya menampilkan interface penting kepada pengguna.

Dengan abstraction, kode kita menjadi lebih sederhana, fleksibel, dan mudah diperluas. Sekarang kita sudah mempelajari semua pilar utama OOP di Python:

  • Encapsulation
  • Inheritance
  • Polymorphism
  • Abstraction

Dengan menguasai keempat pilar ini, kita memiliki fondasi kuat untuk membangun program Python yang lebih kompleks, modular, dan profesional.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami