Cara menggunakan python oop

Bismillah…

Berikut saya tuliskan tutorial python OOP (Object-Oriented Programming) untuk pemula yang saya ambil dari youtube. Karena kebetulan penulis juga masih ‘buta’ tentang OOP 🙂
Mudah-mudahan bisa bermanfaat untuk penulis dan teman-teman pembaca sekalian.
Check this out!

  1. Pengenalan OOP
    Menampilkan class sederhana bernama “Hero”. Perlu diperhatikan code pada contoh berikut masih kurang rapi, untuk code yang lebih rapi bisa cek tutorial selanjutnya (Contoh penggunaan __init() ).
    Code :

class Hero:
    pass


hero1 = Hero()  # object / instance (instantiate)
hero2 = Hero()
hero3 = Hero()

hero1.name = "sniper"
hero1.health = 100

hero2.name = "sven"
hero2.health = 200

hero3.name = "ucup"
hero3.health = 1000

print(hero1)
print(hero1.name)
print(hero1.health)
print(hero1.__dict__)

Output :

Cara menggunakan python oop
Gambar 1. Tampilan output program di terminal ubuntu


2. Contoh Penggunaan __init__()
Berikut merupakan contoh program sederhana untuk menggunaan __init() pada class “Hero”. Atribut yang terdapat pada class dapat dipanggil dengan syntax __dict__ .
Code :

class Hero:
    def __init__(self, inputName, inputHealth, inputPower, inputArmor):
        self.name = inputName
        self.health = inputHealth
        self.power = inputPower
        self.armor = inputArmor

hero1 = Hero("sniper", 100, 10, 4)
hero2 = Hero("mirana", 100, 15, 1)
hero3 = Hero("ucup", 1000, 100, 0)

# menampilkan 1 per 1 atribut dari class Hero
print(hero1.name)
print(hero1.health)
print(hero1.armor)

# menampilkan semua atribut sekaligus dari class Hero
print(hero1.__dict__)
print(hero2.__dict__)
print(hero3.__dict__)

Output :

Cara menggunakan python oop
Gambar 2. Penggunaan __init__()


3. Contoh penggunaan Instance variables
Berikut merupakan contoh penggunaan Instance variable (variabel yang ada di dalam class). Catatan penting, ketika akan memanggil variabel ini di program utama, kita perlu menambahkan nama class di depannya, misal pada contoh di bawah ini: “Hero.jumlah”
Hero : nama class
jumlah : nama instance variable-nya.
Code :

# instance variable: variabel yang ada di dalam class

class Hero: # template
    #class variabel
    jumlah = 0

    def __init__(self, inputName, inputHealth, inputPower, inputArmor):
        # instance variabel
        self.name = inputName
        self.health = inputHealth
        self.power = inputPower
        self.armor = inputArmor
        Hero.jumlah += 1
        print("membuat Hero dengan nama " + inputName)

hero1 = Hero("sniper", 100, 10, 4)
print(Hero.jumlah)      # kalo mau manggil class variable, depannya harus dikasih nama class-nya!
hero2 = Hero("mirana", 100, 15, 1)
print(Hero.jumlah)
hero3 = Hero("ucup", 1000, 100, 0)
print(Hero.jumlah)

Output :

Cara menggunakan python oop
Gambar 3. Penggunaan instance variabel yang terdapat di dalam class

4. Pengenalan methods
Berikut merupakan contoh sederhana penggunaan methods yang terdapat di dalam class. Catatan: nama class harus disebutkan terlebih dahulu sebelum memanggil methods. Untuk lebih jelasnya, perhatikan contoh di bawah 🙂

Code :

class Hero:
    # class variable
    jumlah_hero = 0

    def __init__(self, inputName, inputHealth, inputPower, inputArmor):
        # instance variable
        self.name = inputName
        self.health = inputHealth
        self.power = inputPower
        self.armor = inputArmor
        Hero.jumlah_hero += 1

    # void function, method tanpa return, tanpa argumen
    def siapa(self):
        print("namaku adalah " + self.name)

    # method dengan argumen, tanpa return
    def healthUp(self, up):
        self.health += up

    # method dengan return
    def getHealth(self):
        return self.health

hero1 = Hero('sniper', 100, 10, 5)
hero2 = Hero('mario bros', 90, 5, 10)

hero1.siapa()
hero1.healthUp(10)

print(hero1.getHealth())

Output :

Cara menggunakan python oop
Gambar 4. Contoh penggunaan methods yang ada di dalam class.


5. Latihan OOP sederhana
Berikut merupakan contoh penggunaan OOP sederhana pada python, silahkan temen-temen pahami pelan-pelan, karena ini merupakan dasar yang penting 🙂
Code :

class Hero:

    def __init__(self,name,health,attackPower,armorNumber):
        self.name = name
        self.health = health
        self.attackPower = attackPower
        self.armorNumber = armorNumber

    def serang(self, lawan):
        print(self.name + ' menyerang ' + lawan.name)
        lawan.diserang(self, self.attackPower)
    
    def diserang(self, lawan, attackPower_lawan):
        print(self.name + ' diserang ' + lawan.name)
        attack_diterima = attackPower_lawan/self.armorNumber
        print('serangan terasa : ' + str(attack_diterima))
        self.health -= attack_diterima
        print('darah ' + self.name + ' tersisa ' + str(self.health))

sniper = Hero('sniper',100,10,5)
rikimaru = Hero('rikimaru',100,20,10)

sniper.serang(rikimaru)
print("\n")
rikimaru.serang(sniper)
print("\n")
rikimaru.serang(sniper)
print("\n")
rikimaru.serang(sniper)
print("\n")
rikimaru.serang(sniper)
print("\n")
rikimaru.serang(sniper)
print("\n")

Output :

Cara menggunakan python oop
Gambar 5. Latihan membuat game sederhana dengan OOP di python.


6. Latihan OOP Tkinter sederhana
Pada code di bawah, kita dapat melihat penggunaan konsep OOP pada Tkinter.
Note: Class ditulis huruf besar, misal Tk(), Label(), Button().
Sedangkan method ditulis huruf kecil, misal : pack(), mainloop().
Pastikan menggunakan python3 ketika akan running Tkinter!!
Code :

import tkinter

main_window = tkinter.Tk()

label1 = tkinter.Label(main_window, text = "label1")
label2 = tkinter.Label(main_window, text = "label2")

tombol1 = tkinter.Button(main_window, text = "tombol1")
tombol2 = tkinter.Button(main_window, text = "tombol2")

# method positioning
label1.pack()
label2.pack()
tombol1.pack()
tombol2.pack()

# method menampilkan GUI
main_window.mainloop()

Output :

Cara menggunakan python oop
Gambar 6. Contoh penggunaan konsep OOP pada Tkinter.

7. Pengenalan Private Variable
Pada bagian ini, penulis sarankan untuk melihat video tutorial pada link ini, agar lebih jelas dan paham. Yang penulis pahami, private variable penulisannya diawali tanda double underscore “__” (misal: __privateJumlah, self.__private). Sedangkan untuk protected variable diawali dengan single underscore “_” (misal: self._protected).
Code :

# variabel private : ada di dalam class,TAPI TIDAK BISA DIAKSES di program utama, misal: tinggi badan hero.
# variabel public  : ada di dalam class, dan BISA DIAKSES di program utama, misal: name dan health dari hero.

class Hero:

    # class variabel
    jumlah = 0
    __privateJumlah = 0

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

        # variabel instance private (penulisannya diawali dengan double underscore "__")
        self.__private = "private"
        # variabel instance protected
        self._protected = "protected" # variabel protected bukan variabel private!

lina = Hero("lina",100)

print(lina.__dict__)
print(Hero.__dict__)
print(Hero.__privateJumlah) # uncomment untuk melihat bahwa Hero.__privateJumlah termasuk variabel private!

Output :

Cara menggunakan python oop
Gambar 7. contoh penulisan private variable


8. Pengenalan Encapsulasi
Code :

class Hero:

    def __init__(self, name, health, attackPower):
        self.__name = name
        self.__health = health
        self.__attPower = attackPower

    # getter
    def getName(self):
        return self.__name

    def getHealth(self):
        return self.__health

    # setter
    def diserang(self, serangPower):
        self.__health -= serangPower

    def setAttPower(self, nilaibaru):
        self.__attPower = nilaibaru

# awal dari game
earthshaker = Hero("earthshaker", 50, 5)

# game berjalan

print(earthshaker.getName())
print(earthshaker.getHealth())
earthshaker.diserang(5)
print(earthshaker.getHealth())

Output :

Cara menggunakan python oop
Gambar 8. Encapsulasi


9. Pengenalan Staticmethod dan Classmethod
Code :

class Hero:

    # private class variable
    __jumlah = 0

    def __init__(self,name):
        self.__name = name
        Hero.__jumlah += 1

    # method ini hanya berlaku untuk objek
    def getJumlah(self):
        return Hero.__jumlah

    # method ini tidak berlaku untuk objek tapi berlaku untuk class
    def getJumlah2():
        return Hero.__jumlah

    # method static (decorator) nempel ke objek dan class
    @staticmethod
    def getJumlah2():
        return Hero.__jumlah

    @classmethod
    def getJumlah3(cls):
        return cls.__jumlah

sniper = Hero('sniper')
print(Hero.getJumlah2())
rikimaru = Hero('rikimaru')
print(sniper.getJumlah2())
drowranger = Hero('drowranger')
print(Hero.getJumlah3())

Output :

Cara menggunakan python oop
Gambar 9. Static method dan Class method


10. Pengenalan Getter dan Setter
Note: Harus python3!
Code :

class Hero:

    def __init__(self, name, health, armor):
        self.name = name
        self.__health = health
        self.__armor = armor
        #self.info = "name {} : \n\thealth: {}".format(self.name,self.__health)

    @property
    def info(self):
        return "name {} : \n\thealth: {}".format(self.name,self.__health)
    
    @property
    def armor(self):
        pass

    @armor.getter
    def armor(self):
        return self.__armor

    @armor.setter
    def armor(self, input):
        self.__armor = input

    @armor.deleter
    def armor(self):
        print('armor di delet')
        self.__armor = None

sniper = Hero('sniper',100,10)

print('merubah info')
print(sniper.info)
sniper.name = 'dadang'
print(sniper.info)

print('getter dan setter untuk __armor:')
print(sniper.armor)
sniper.armor = 50
print(sniper.armor)

print('delete armor')
del sniper.armor
print(sniper.__dict__)

Output :

Cara menggunakan python oop
Gambar 10. Getter dan Setter

Update Penting: 14 november 2020 (penambahan code python2 untuk getter and setter!!)
Code :

# getter and setter
# untuk python2 !!
# source: https://streetkoders.medium.com/property-python-sebuah-idiomatik-untuk-membuat-setter-dan-getter-d3a3a13be0b2

class Hero(object):
    def __init__(self, name,health,armor,*args, **kwargs):
        self.name = kwargs.get('name', name)
        self.__health = kwargs.get('health', health)
        self.__armor = kwargs.get('armor', armor)

    @property
    def info(self):
        return "name {} :\n\thealth: {}".format(self.name,self.__health)
        
    @property
    def armor(self):
        return self.__armor

    @armor.getter
    def armor(self):
        return self.__armor

    @armor.setter
    def armor(self, armor):
        self.__armor = armor

    @armor.deleter
    def armor(self):
        print('armor di delet')
        self.__armor = None

sniper = Hero("sniper",100,10)

print("merubah info")
print(sniper.info)
sniper.name = "dadang"
print(sniper.info)

print("getter and setter untuk __armor : ")
print(sniper.armor)
sniper.armor = 50
print(sniper.armor)

print("delete armor")
del sniper.armor
print(sniper.__dict__)

Output :

Cara menggunakan python oop

11. Latihan Encapsulasi
Note : Harus python3 !!

Cara menggunakan python oop
Gambar 11. Gambaran umum tentang program yang akan dibuat

Code :

# Latihan Encapsulasi
# source: https://www.youtube.com/watch?v=rakQ1ji9XRM&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=11

class Hero:

    # private class variabel
    __jumlah = 0

    def __init__(self,name,health,attPower,armor):
        self.__name = name
        self.__healthStandar = health
        self.__attPowerStandar = attPower
        self.__armorStandar = armor
        self.__level = 1
        self.__exp = 0

        self.__healthMax = self.__healthStandar * self.__level
        self.__attPower = self.__attPowerStandar * self.__level
        self.__armor = self.__armorStandar * self.__level

        self.__health = self.__healthMax

        Hero.__jumlah += 1

    @property
    def info(self):
        return "{} level {}: \n\thealth = {}/{} \n\tattack = {} \n\tarmor = {}".format(
            self.__name,
            self.__level,
            self.__health,
            self.__healthMax,
            self.__attPower,
            self.__armor)

    @property
    def gainExp(self):
        pass

    @gainExp.setter
    def gainExp(self,addExp):
        self.__exp += addExp
        if (self.__exp >= 100):
            print(self.__name, 'level up')
            self.__level += 1
            self.__exp -= 100

            self.__healthMax = self.__healthStandar * self.__level
            self.__attPower = self.__attPowerStandar * self.__level
            self.__armor = self.__armorStandar * self.__level

    def attack(self,musuh):
        self.gainExp = 50

slardar = Hero('slardar',100,5,10)
axe = Hero('axe',100,5,10)
print(slardar.info)

slardar.attack(axe)
slardar.attack(axe)
slardar.attack(axe)

print(slardar.gainExp)

Output :

Cara menggunakan python oop
Gambar 12. Output program Latihan encapsulasi

Update Penting: 14 november 2020 (penambahan code python2 untuk latihan encapsulasi !!)
Code :

# Latihan Encapsulasi
# untuk python2 !!
# source: https://www.youtube.com/watch?v=rakQ1ji9XRM&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=11
#         https://streetkoders.medium.com/property-python-sebuah-idiomatik-untuk-membuat-setter-dan-getter-d3a3a13be0b2

class Hero(object):

    # private class variabel
    __jumlah = 0

    def __init__(self,name,health,attPower,armor,*args,**kwargs):
        self.__name = kwargs.get('name',name)
        self.__healthStandar = kwargs.get('health',health)
        self.__attPowerStandar = kwargs.get('attPower',attPower)
        self.__armorStandar = kwargs.get('armor',armor)
        self.__level = 1
        self.__exp = 0

        self.__healthMax = self.__healthStandar * self.__level
        self.__attPower = self.__attPowerStandar * self.__level
        self.__armor = self.__armorStandar * self.__level

        self.__health = self.__healthMax

        Hero.__jumlah += 1

    @property
    def info(self):
        return "{} level {}: \n\thealth = {}/{} \n\tattack = {} \n\tarmor = {}".format(
            self.__name,
            self.__level,
            self.__health,
            self.__healthMax,
            self.__attPower,
            self.__armor
        )

    @property
    def gainExp(self):
        pass

    @gainExp.setter
    def gainExp(self,addExp):
        self.__exp += addExp
        if (self.__exp >= 100):
            print(self.__name,'level up')
            self.__level += 1
            self.__exp -= 100

            self.__healthMax = self.__healthStandar * self.__level
            self.__attPower = self.__attPowerStandar * self.__level
            self.__armor = self.__armorStandar * self.__level

    def attack(self,musuh):
        self.gainExp = 50
        print("\n{} menyerang {}".format(
            self.__name,
            musuh.__name
        ))

slardar = Hero("slardar",100,5,10)
axe = Hero("axe",100,5,10)
print(slardar.info)

slardar.attack(axe)
print(slardar.info)
slardar.attack(axe)
print(slardar.info)
slardar.attack(axe)
print(slardar.info)
slardar.attack(axe)
print(slardar.info)

print(slardar.gainExp)

Output :

Cara menggunakan python oop


12. Pengenalan Inheritance

Cara menggunakan python oop
Gambar 13. Sekilas tentang Inheritance dan contoh sederhana

Cara menggunakan python oop
Gambar 14. Contoh inheritance untuk pembuatan tombol (button)

Code :

class Hero:

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

class Hero_intelligent(Hero):
    pass

class Hero_strength(Hero):
    pass

lina = Hero('lina',100)
techies = Hero_intelligent('techies',50)
axe = Hero_strength('axe',200)

print(lina.name)
print(techies.name)
print(axe.name)

Output :

Cara menggunakan python oop
Gambar 15. Output Program Pengenalan Inheritance


13. Pengenalan Super
Note: Harus menggunakan python3 !!
Code :

# wajib pake python3 !!

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

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

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

class Hero_strength(Hero):
    def __init__(self,name):
        super().__init__(name, 200)
        super().showInfo()

lina = Hero_intelligent('lina')
axe = Hero_strength('axe')

Output :

Cara menggunakan python oop


14. Pengenalan Override Method
Note: Harus menggunakan python3 !!
Code :

# wajib pake python3 !!!
# source : https://www.youtube.com/watch?v=sYKhxqcDu3w&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=14

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

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

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

    # override
    def showInfo(self):
        print("showInfo di subclass Hero_intelligent")
        print("{} \n\tTipe: intelligent, \n\thealth: {}".format(
            self.name,
            self.health
            )
        )


class Hero_strength(Hero):
    def __init__(self,name):
        super().__init__(name,200)

lina = Hero_intelligent('lina')
axe = Hero_strength('axe')

axe.showInfo()

Output :

Cara menggunakan python oop


15. Latihan Inheritance
Note : Wajib menggunakan python3 !
Code : Simpan dengan nama Hero.py !

# simpan dengan nama Hero.py
# wajib menggunakan python3 !
# source : https://www.youtube.com/watch?v=sSgKKLzxqS0&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=15

from Hero import HeroIntelligent,HeroStrength

lina = HeroIntelligent('lina')
slardar = HeroStrength('slardar')

lina.show_info()
slardar.show_info()

lina.gainExp = 200
slardar.gainExp = 250

lina.show_info()
slardar.show_info()

class Hero:

    def __init__(self,name):
        self.health_pool = [0,100,200,300,400,500]
        self.attPower_pool = [0,10,20,30,40,50]
        self.armor_pool = [0,1,2,3,4,5]
        self.__name = name
        self.__exp = 0
        self.__level = 0

    def show_info(self):
        print("{} \n\tlevel: {}\n\thealth: {} \n\tattPower: {} \n\tarmor: {}".format(
            self.__name,
            self.__level,
            self.__health,
            self.__attPower,
            self.__armor
            )
        )

    @property
    def health_pool(self):
        pass

    @property
    def attPower_pool(self):
        pass

    @property
    def armor_pool(self):
        pass

    @property
    def levelUp(self):
        pass

    @property
    def gainExp(self):
        pass

    @health_pool.setter
    def health_pool(self,input):
        self.__health_pool = input

    @attPower_pool.setter
    def attPower_pool(self,input):
        self.__attPower_pool = input

    @armor_pool.setter
    def armor_pool(self,input):
        self.__armor_pool = input

    @gainExp.setter
    def gainExp(self,input):
        self.__exp += input
        if(self.__exp >= 100):
            self.levelUp = self.__exp//100
            self.__exp %= 100

    @levelUp.setter
    def levelUp(self,input):
        self.__level += input
        self.__health = self.__health_pool[self.__level]
        self.__attPower = self.__attPower_pool[self.__level]
        self.__armor = self.__armor_pool[self.__level]


class HeroIntelligent(Hero):
    
    def __init__(self,name):
        super().__init__(name)
        self.health_pool = [0,50,100,150,200,250]
        self.attPower_pool = [0,20,40,60,80,100]
        self.armor_pool = [0,0.5,1,1.5,2,2.5]
        self.levelUp = 1


class HeroStrength(Hero):

    def __init__(self,name):
        super().__init__(name)
        self.health_pool = [0,200,300,400,500,600]
        self.attPower_pool = [0,20,40,60,80,100]
        self.armor_pool = [0,2,4,6,8,10]
        self.levelUp = 1

Main code :

# simpan dengan nama Hero.py
# wajib menggunakan python3 !
# source : https://www.youtube.com/watch?v=sSgKKLzxqS0&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=15

from Hero import HeroIntelligent,HeroStrength

lina = HeroIntelligent('lina')
slardar = HeroStrength('slardar')

lina.show_info()
slardar.show_info()

lina.gainExp = 200
slardar.gainExp = 250

lina.show_info()
slardar.show_info()
from Hero import HeroIntelligent,HeroStrength

lina = HeroIntelligent('lina')
slardar = HeroStrength('slardar')

lina.show_info()
slardar.show_info()

lina.gainExp = 200
slardar.gainExp = 250

lina.show_info()
slardar.show_info()

Output :

Cara menggunakan python oop


16. Multiple Inheritance
Code : Contoh 1

# source : https://www.youtube.com/watch?v=dhIAsMkQeGo&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=16

class A:

    def method_A(self):
        print("ini adalah method A")


class B:

    def method_B(self):
        print("ini adalah method B")

# multiple inheritance
class C(A,B):
    pass


objek = C()

objek.method_A()
objek.method_B()

Output :

Cara menggunakan python oop

Code : Contoh 2

# source : https://www.youtube.com/watch?v=dhIAsMkQeGo&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=16

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


Ucup = Hero('Ucup',100)
Ucup.setTeam("merah")
Ucup.setTipe("cundang")

Ucup.showTeam()
Ucup.showTipe()

Output :

Cara menggunakan python oop


17. Method Resolution Order
Code :

# method resolution order // multiple inheritance
# source : https://www.youtube.com/watch?v=bn88uOxuUdc&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=17

class A:

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

class B:

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

# coba ini juga!:
# class C(A,B), maka urutan eksekusinya C,A,B
# class C(B,A), maka urutan eksekusinya C,B,A
class C(B,A):
    pass


objek = C()
objek.show()
# uncomment code di bawah, kemudian pencet 'q' setelah running program, untuk mengakhiri running program !
#help(objek)

Output : tanpa help(objek)

Cara menggunakan python oop
Gambar 17. Tanpa help(objek)

Output : dengan help(objek)

Cara menggunakan python oop
Gambar 18. Dengan help(objek), pencet ‘q’ untuk mengakhiri running program. Dapat melihat urutan eksekusi class (C, B, A)

Referensi:
– https://www.youtube.com/watch?v=1PjHsUnOkes
– https://www.youtube.com/watch?v=w9emRmkbeps
– https://www.youtube.com/watch?v=upngNSC9FU8
– https://www.youtube.com/watch?v=6F0T4IEzke4
– https://www.youtube.com/watch?v=k9ANKapvMKo
– https://www.youtube.com/watch?v=6fIc2jV6HfY&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=7
– https://www.youtube.com/watch?v=NDjX-8kak2g&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=8
– https://www.youtube.com/watch?v=ZPU1X5C0DaE&list=PLZS-MHyEIRo7ab0-EveSvf4CLdyOECMm0&index=10

Apakah python mendukung OOP?

Bahasa Pemrograman Python merupakan bahasa yang mendukung 100% Object Oriented Programming (OOP).

Apa itu OOP pada python?

Object Oriented Programming (OOP) adalah suatu paradigma pemrograman yang berorientasi pada konsep class (kelas) dan object (objek). Konsep ini sering kali digunakan dalam menyusun aplikasi menjadi kode yang sederhana dan dapat digunakan kembali (reuseable).

Apa saja konsep OOP?

4 Prinsip OOP.
Encapsulation. Prinsip enkapsulasi atau kapsulisasi dalam OOP dilakukan ketika setiap objek dalam pemrograman dapat mempertahankan keadaan privat di dalam sebuah kelas-kelas cetak biru. ... .
2. Abstraction. Abstraction atau abstraksi merupakan perpanjangan tangan enkapsulasi. ... .
3. Inheritance. ... .
Polymorphism..

Apa itu atribut di python?

Atribut adalah data anggota (variabel kelas dan variabel contoh) dan metode, diakses melalui notasi titik. Sebuah variabel yang dibagi oleh semua contoh kelas. Variabel kelas didefinisikan dalam kelas tapi di luar metode kelas manapun.