Jumat, 26 Desember 2025

Class Abstract dan Decorator pemrograman python

from abc import ABC, abstractmethod

class Button(ABC):

    def __init__(self, set_link):
        self.link = set_link

    @abstractmethod
    def click(self):
        pass

    @property
    @abstractmethod
    def link(self):
        pass

class PushButton(Button):

    def click(self):
        print("Go To: {}".format(self.link))

    @Button.link.setter
    def link(self, input):
        self.__link = input

    @link.getter
    def link(self):
        return self.__link

tombol1 = PushButton("datanetid.blogspot.com")
tombol1.click()


Kamis, 25 Desember 2025

Class Abstract pemrograman python

# membuat class abstract
# abc = abstract base class
from abc import ABC, abstractmethod

class Button(ABC):
    @abstractmethod
    def click(self):
        pass

class PushButton(Button):
    def click(self):
        print("push button click")

tombol2 = PushButton()
tombol2.click()


Rabu, 24 Desember 2025

Magic method pemrograman python

class Mangga:

    # magic method
    def __init__(self, nama, jumlah):
        self.nama = nama
        self.jumlah = jumlah

    def __repr__(self):
        return "Debug - Mangga: {} dengan jumlah: {}".format(self.nama, self.jumlah)

    # digunakan saat program telah selesai
    def __str__(self):
        return "Debug Mangga: {} dengan jumlah: {}".format(self.nama, self.jumlah)

    def __add__(self, objek):
        return self.jumlah + objek.jumlah

    @property
    def __dict__(self):
        return "objek ini mempunya nama dan jumlah"

belanja1 = Mangga("manggis", 100)
belanja2 = Mangga("jeruk", 50)
print(repr(belanja1))
print(belanja2)
print(belanja1 + belanja2)
print(belanja1.__dict__)


Selasa, 23 Desember 2025

Diamond Problem pemrograman python

class A:
    def show(self):
        print("ini adalah show A")

class B(A):
    def show(self):
        print("ini adalah show B")

class C(A):
    def show(self):
        print("ini adalah show C")

class D(B,C):
    pass
objek = D()
objek.show()


Senin, 22 Desember 2025

Method Resolution Order pemrograman python

class A:
    def show(self):
        print("ini adalah show A")

class B:
    def show(self):
        print("ini adalah show B")

class C(A, B):
    pass

objek = C()
objek.show()
help(objek)


Minggu, 21 Desember 2025

Multiple Inheritance pemrograman python

class Team():
    def setTeam(self, team):
        self.team = team

    def showTeam(self):
        print(self.team)

class tipe_Hero():
    def setTipe(self, tipe):
        self.tipe = tipe

    def showTipe(self):
        print(self.tipe)

class Hero(Team, tipe_Hero):
    def __init__(self, name, health):
        self.name = name
        self.health = health

archer = Hero("archer", 100)
archer.setTeam("merah")
archer.setTipe("panah")

archer.showTeam()
archer.showTipe()


Kamis, 18 Desember 2025

Override Method pemrograman python

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

    def showInfo(self):
        print("{} health {}".format(self.name, self.health))

class Hero_intelligent(Hero):
    def __init__(self, name):
        super().__init__(name, 100)

    # override method
    def showInfo(self):
        print("{} \n\tTipe: intelligent, \n\thealth: {}".format(self.name, self.health))  
   
class Hero_strength(Hero):
    def __init__(self, name):
        super().__init__(name, 97)

lina = Hero_intelligent("lina")
axe = Hero_strength("axe")

lina.showInfo()
axe.showInfo()