Anda di halaman 1dari 20

MAKALAH

Object Orientend Programming (OOP) pada Python

Disusun untuk memenuhi tugas

Mata Kuliah : Algoritma & Pemrograman 2 B

Dosen Pengampu : Ratri Purwaningtyas, S.Kom., MMSI

Disusun oleh :
Kelompok 5
Azizah Raihan Rahmat (51421641)
Baihaki Febrian (50421261)
Daffa Maulana (50421315)
Devi Fitriani (50421354)
Dicky Wijaya Saputra (51421187)
Erick Yodha Satria (50421421)

KELAS 1IA09
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS GUNADARMA
2022
KATA PENGANTAR

Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga
kami dapat menyelesaikan tugas makalah yang berjudul “Object Orientend Programming
(OOP) pada Python ” ini tepat pada waktunya.

Adapun tujuan dari penulisan dari makalah ini adalah untuk memenuhi tugas pada mata
kuliah Algoritma & Pemrograman 2 B. Selain itu, makalah ini juga bertujuan untuk
menambah wawasan tentang Object Orientend Programming (OOP) pada Python bagi para
pembaca dan juga bagi penulis.

Kami mengucapkan terima kasih kepada Ratri Purwaningtyas, S.Kom., MMSI., dosen
Algoritma & Pemrograman 2 B telah memberikan tugas ini sehingga dapat menambah
pengetahuan dan wawasan sesuai dengan bidang studi yang kami tekuni.

Kami juga mengucapkan terima kasih kepada semua pihak yang telah membagi sebagian
pengetahuannya sehingga kami dapat menyelesaikan makalah ini.

Kami menyadari, makalah yang saya tulis ini masih jauh dari kata sempurna. Oleh karena itu,
kritik dan saran yang membangun akan kami nantikan demi kesempurnaan makalah ini.

Depok, 23 Maret 2022

Penulis

i
DAFTAR ISI

KATA PENGANTAR..................................................................................i

DAFTAR ISI.................................................................................................ii

BAB I PENDAHULUAN

1.1 Latar Belakang...................................................................................1

1.2 Rumusan Masalah..............................................................................1

1.3 Tujuan dan Manfaat...........................................................................2

BAB II PEMBAHASAN

2.1 Pengertian Pemrograman Berorientasi Pada Objek...........................3

2.2 Kelebihan dan Kekurangan Pemrograman Berorientasi Objek.........3

2.3 Bahasa Pemrograman yang Mendukung OOP..................................4

2.4 Class...................................................................................................4

2.5 Inheritance..........................................................................................7

2.6 Constructor.........................................................................................9

2.7 Parameter Masukan.........................................................................10

2.8 Fungsi pada Object..........................................................................10

2.9 Contoh Program OOP......................................................................13

BAB III PENUTUP

3.1 Kesimpulan......................................................................................15

3.2 Saran................................................................................................16

DAFTAR PUSTAKA.................................................................................17

ii
BAB I

PENDAHULUAN

1.1. Latar Belakang

Pemrograman Berorientasi Objek (Object Oriented Programming atau OOP)


merupakan paradigma pemrograman yang terkini. Dimana objek adalah struktur data
yang terdiri dari bidang data dan metode bersama dengan interaksi mereka untuk
merancang aplikasi dan program komputer. Semua data dan fungsi di dalam paradigma
ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika
pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan
mengirim pesan ke objek lainnya. Pada jaman sekarang, banyak bahasa pemrograman
yang mendukung OOP. OOP adalah paradigma pemrograman yang cukup dominan saat
ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian,
bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi. OOP diciptakan
karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional.
Konsep dari OOP sendiri adalah semua pemecahan masalah dibagi ke dalam objek.
Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi
satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam
suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului,
yaitu analisis dan proses yang mengikutinya. Model data berorientasi objek dikatakan
dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan
luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim
bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan
sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

1.2. Rumusan Masalah


Dengan memperhatikan latar belakang mengemukakan beberapa rumusan
masalah. tersebut, Maka penulis rumusan masalah tersebut diantaranya adalah :
1. Pengertian OOP (Object Oriented Programming) ?
2. Apa kelebihan dan kekurangan OOP ?
3. Bahasa apa saja yang mendukung OOP ?
4. Apa itu Class dan Object ?
5. Apa itu Inheritance dan Constructor OOP pada Python ?
6. Apa itu Parameter masukan ?
7. Bagaimana fungsi pada Object ?
8. Bagaimana cara membuat program OOP pada Python ?

1.3. Tujuan dan Manfaat


Tujuan dan Manfaat Tujuan dari pembuatan makalah ini adalah selain untuk
memenuhi tugas mata kuliah Algorithma dan Pemrograman 2 B, juga untuk mengetahui
lebih jauh mengenai Pemrograman Berorientasi Objek (Object Oriented Programming
atau OOP) pada Python.

2
BAB II

PEMBAHASAN

2.1 Pengertian Pemograman Berorientasi Pada Objek (OOP)

Object-oriented programming atau OOP diartikan sebagai pemrograman yang

berorientasi pada objek yang merupakan model pemrograman komputer dengan pengaturan

desain perangkat lunak di sekitar data atau objek. Berbeda dengan pemrograman lain yang

berfokus pada fungsi dan logika, OOP lebih menaruh fokus pada objek atau bidang data yang

memiliki atribut atau perilaku teknis unik. Fokus OOP pada objek ini memungkinkan adanya

manipulasi yang dilakukan pengembang dan cocok untuk pemrograman besar dan kompleks.

Pendekatan OOP ini lebih mudah untuk perihal pembaruan dan pemeliharaan.

OOP juga dapat didefinisikan sebagai paradigma pemrograman yang mengandalkan

konsep kelas dan objek. Paradigma ini digunakan untuk menyusun program perangkat lunak

menjadi potongan-potongan kode cetak biru yang sederhana dan dapat digunakan kembali

atau kelas-kelas kode. Kelas-kelas ini nantinya digunakan untuk membuat objek individual

dalam pemrograman.

2.2 Kelebihan Pemrograman Berorientasi Objek (OOP)

 Parallel development, tim pemrograman dapat bekerja masing-masing secara


independen setelah diselesaikannya kelas modular dalam pemrograman. Dengan
metode ini OOP dapat menyingkat waktu pengembangan kelas (class) secara satu
kesatuan dan tidak dibuat satu per satu.
 Reusable, setelah kelas modular dibuat, pengembang dapat menggunakannya lagi
dalam aplikasi atau proyek pengembangan lainnya. Hal ini membuat OOP menjadi
reusable dan fleksibel bahkan hanya memerlukan sedikit atau tidak ada modifikasi
sama sekali.
 Scalability, OOP memungkinkan pengembang dapat mengembangkan program
dengan menambahkan beberapa fungsi, kelas, dan objek dengan mudah. Prosedur
pembuatan kode dalam OOP juga dapat dipelihara dan dijaga dengan meningkatkan
keamanan pemrograman. Hal ini disebabkan adanya validasi tingkat tinggi saat
dilakukan akses terhadap kode prosedur OOP.

3
Kekurangan Pemrograman Berorientasi Objek (OOP)

 Tidak efisien, bisa dikatakan OOP memang kurang efisien karena lebih banyak
menggunakan beban pada prosesor komputer. Hal ini membuat OOP menjadi pilihan
yang kurang efisien ketika ada batasan teknis pada perangkat pengembang.
 Manajemen ketat, karena kelebihannya yang scalable secara umum OOP mungkin
menyebabkan kondisi kelebihan kapasitas dan lepas kendali. Hal ini terjadi ketika
terjadi pembuatan kode dalam jumlah besar dan membengkak dan menaikkan biaya
overhead pada saat pengembangan perangkat lunak.
 Rawan duplikasi, meski dapat diakses dengan tingkat validitas tinggi, namun OOP
rentan terhadap replikasi karena sifatnya yang mudah dirancang tapi lebih sulit
diimplementasikan. Hal ini disebabkan pula oleh kelas modular yang amat fleksibel
dalam sebuah aplikasi. Pengembang mungkin bisa menerapkan hal tersebut dalam
proyek baru tanpa sengaja dan menyadari bahwa tindakan itu merupakan duplikasi.

2.3 Berikut ini adalah Bahasa pemrograman yang mendukung OOP antara lain
seperti:

1. Visual Foxpro
2. Java
3. C++
4. Pascal (Bahasa pemograman)
5. SIMULA
6. Smalltalk
7. Ruby
8. Python
9. PHP
10. C#
11. Delphi
12. Eiffel
13. Perl
14. Adobe Flash AS 3.0

2.4 Class
Class adalah ‘cetakan’, ‘template’ atau ‘blueprint’ untuk membuat sebuah
object. Class hanya sebagai kerangka dasar dari object. Sehingga nanti cetakan (class)
tersebut dapat membuat berbagai macam objek untuk kebutuhan yang berbeda - beda.
Pembuatan Kelas :
Kita mendefinisikan sebuah kelas dengan menggunakan kata kunci class
diikuti oleh nama kelas tersebut. Berikut adalah sintaks pembuatan kelas di Python.
class ClassName:
'''class docstring'''

4
class_body
Kelas memiliki docstring atau string dokumentasi yang bersifat opsional
artinya bisa ada atau tidak. Docstring bisa diakses menggunakan format
ClassName.__doc__
class_body terdiri dari semua pernyataan berupa attribut, fungsi, dan data dari
kelas. Berikut adalah contoh kelas yang sederhana:

class Karyawan:

'''Dasar kelas untuk semua karyawan'''

jumlah_karyawan = 0

def __init__(self, nama, gaji):

self.nama = nama

self.gaji = gaji

Karyawan.jumlah_karyawan += 1

def tampilkan_jumlah(self):

print("Total karyawan:", Karyawan.jumlah_karyawan)

def tampilkan_profil(self):

print("Nama :", self.nama)

print("Gaji :", self.gaji)

print()

5
Variabel jumlah_karyawan adalah variabel kelas yang dibagi ke semua
instance/objek dari kelas ini. Variabel ini bisa diakses dari dalam atau luar kelas
dengan menggunakan notasi titik, Karyawan.jumlah_karyawan.
Metode __init__() adalah metode konstruktor, yaitu metode khusus yang
digunakan Python untuk menginisialisasi pembuatan objek dari kelas tersebut.
Fungsi – fungsi di dalam kelas (disebut metode) pendefinisiannya sama
dengan fungsi pada umumnya. Hanya saja, harus ada argumen pertama bernama self.
Pada saat pemanggilan fungsi, argumen ini otomatis ditambahkan oleh Python. Anda
tidak perlu menambahkannya pada saat memanggil fungsi.

Object
Object adalah instance atau representasi dari sebuah class. Jika class adalah
sebuah cetakan, maka object adalah hasil dari cetakan tersebut. Kita dapat membuat
berbagai object dengan class mobil yang tadi kita buat. Cara mendeklarasikan object
dari sebuah class pada python adalah dengan memanggil nama class beserta dengan
parameter yang diberikan pada fungsi constructor (__init__).
Untuk membuat objek dari sebuah kelas, kita bisa memanggil nama kelas
dengan argumen sesuai dengan fungsi __init__() pada saat kita mendefinisikannya.

# Membuat objek pertama dari kelas Karyawan

karyawan1 = Karyawan("Sarah", 1000000)

# Membuat objek kedua dari kelas Karyawan

karyawan2 = Karyawan("Budi", 2000000)

Mengakses Attribut Objek


Kita bisa mengakses atribut objek dengan menggunakan operator titik.
Variabel kelas bisa diakses dengan menggunakan nama kelasnya.

karyawan1.tampilkan_profil()

karyawan2.tampilkan_profil()

6
print("Total karyawan :", Karyawan.jumlah_karyawan)

Pada saat program di atas dijalankan, outputnya adalah seperti berikut:

Nama : Sarah

Gaji : 1000000

Nama : Budi

Gaji : 2000000

Total karyawan : 2

2.5 Apa itu Inheritance?


Inheritance (Konsep pewarisan ) adalah konsep di mana sebuah kelas atau
objek mewariskan sifat dan perilaku kepada kelas lainnya. Kelas yang menjadi
“pemberi waris” dinamakan kelas induk atau kelas basis Sedangkan kelas yang
menjadi “ahli waris” dinamakan sebagai kelas turunan
Untuk mempermudah pemahaman, mari kita buat contoh kasus sederhana yang akan
kita selesaikan dengan konsep pewarisan.

Kita akan membuat 3 buah objek:

 Orang
 Pelajar
 Pekerja

Masing-masing dari 3 objek tersebut memiliki beberapa sifat dan perilaku yang sama,
misalkan:

 nama
 asal
 dan kemampuan memperkenalkan diri

Tetapi, sebagian objek tetap memliki ciri khasnya masing-masing, misalkan:

Objek Pelajar memiliki atribut sekolah.

Objek Pekerja memiliki atribut tempat kerja.

7
Untuk menyelesaikan kasus di atas, kita perlu menarik sebuah premis bahwa ketiganya
memiliki hubungan “waris”.

Hubungannya adalah:

Objek Pelajar sebenarnya adalah objek Orang juga, hanya saja objek Pelajar memiliki atribut
tambahan yang tidak dimiliki objek Orang. Begitu pula objek Pekerja, ia sebenarnya adalah
objek Orang juga, hanya saja ia memiliki atribut tambahan yang tidak dimiliki objek Orang.

Definisikan Kelas Basis dan Kelas Turunan Setelah mengetahui gambaran hubungan “waris”
antar ketiga keelas tersebut, kita bisa simpulkan bahwa:

Objek Pelajar dan objek Pekerja adalah kelas turunan dari objek Orang. Setelah berhasil
menentukan mana objek induk dan mana objek turunan, mari kita tuangkan hal tersebut
kedalam kode program

Membuat Objek Induk (Parent)

class Orang:

def __init__ (self, nama, asal):


self.nama = nama
self.asal = asal

def perkenalan (self):


print(f'Perkenalkan nama saya {self.nama} dari {self.asal}')

Kita bisa membuat instance dari kelas Orang seperti biasanya:

andi = Orang('Andi', 'Surabaya')


andi.perkenalan()

Output:

Perkenalkan nama saya Andi dari Surabaya

Membuat Objek Turunan (Child)

Membuat objek turunan dari kelas Orang. Sesuai dengan skenario yang telah kita
bahas di atas, kita akan membuat dua buah objek baru yaitu objek Pelajar dan Pekerja, yang
mana keduanya akan mewarisi objek Orang.

Perhatikan contoh berikut :

class Pelajar (Orang):


pass

8
class Pekerja (Orang):
pass

Kita telah membuat dua buah kelas yang keduanya sama-sama memiliki setiap atribut dan
fungsi dari kelas Orang,lalu meletakkan perintah pass karena kita hanya ingin melakukan
pewarisan apa adanya tanpa menambahkan apa pun lagi. Sehingga, kita bisa membuat
instance dari kelas Pelajar dan Pekerjaan, serta memanggil fungsi perkenalan() dengan cara
yang benar-benar identik dengan kelas Orang:

andi = Orang('Andi', 'Surabaya')


andi.perkenalan()

deni = Pelajar('Deni', 'Makassar')


deni.perkenalan()

budi = Pekerja('Budi', 'Pontianak')


budi.perkenalan()

Outputnya :

Perkenalkan nama saya Andi dari Surabaya


Perkenalkan nama saya Deni dari Makassar
Perkenalkan nama saya Budi dari Pontianak

2.6 Constructor
Method Constructor merupakan sebuah method yang akan otomatis dipanggil
ketika objek di instantiasi. Constructor umumnya digunakan untuk melakukan
inisialisasi terhadap suatu variabel atau method. Constructor pada kelas turunan
memiliki perilaku yang sedikit berbeda dengan Constructor yang terdapat pada kelas
induk. Apa yang terjadi ketika kelas turunan memiliki Constructor sendiri?

Ia akan menimpa konstruktor dari kelas induk sehingga konstruktor kelas induk tidak
akan pernah dieksekusi.
Coba kita ubah konstruktor pada kelas Orang menjadi seperti berikut:

class Orang:

def __init__ (self, nama, asal):


self.nama = nama
self.asal = asal
print('fungsi Orang.__init__() dieksekusi')
Jalankan kembali program kita, kita akan mendapatkan output seperti berikut:
fungsi Orang.__init__() dieksekusi

9
Perkenalkan nama saya Andi dari Surabaya
fungsi Orang.__init__() dieksekusi
Perkenalkan nama saya Deni dari Makassar
fungsi Orang.__init__() dieksekusi
Perkenalkan nama saya Budi dari Pontianak
Sekarang, kita tambahkan konstruktor pada masing-masing kelas Pelajar dan Pekerja.
def __init__ (self, nama, asal):
self.nama = nama
self.asal = asal
Jalankan kembali kode program kita, dan kita akan mendapatkan output yang berbeda:

Sangat jelas dari output di atas, bahwa konstruktor kelas Orang tidak lagi dieksekusi
ketika kita membuat instance dari kelas Pelajar dan Pekerja. Hal itu terjadi karena sekarang
kedua kelas tersebut telah memiliki konstruktor sendiri

2.7 Parameter masukan


Parameter merupakan sebuah sebutan nilai untuk inputan fungsi pada saat
fungsi tersebut di definisikan, sedangan Argument adalah sebutan untuk nilai inputan
fungsi pada saat fungsi tersebut di panggil. Biasanya saat membuat sebuah fungsi,
fungsi tersebut dapat menerima sebuah nilai masukan atau inputan, Nilai itulah yang
di sebut dengan parameter atau argument.

Digunakan ketika kita ingin memasukan atau memberi input pada fungsi yang ingin
kita buat, dengan memanfaatkan Parameter, Parameter itu sendiri adalah variabel
yang menampung nilai untuk diproses di dalam fungsi. Berikut contohnya :

Apa yang disebut Parameter itu yang berada di dalam tanda kurung ( ), diatas nama
Parameter yang di definisikan adalah ucapan.

2.8 Fungsi pada Object


Terdapat beberapa fungsi spesifik untuk fungsi Python.

type PyFunctionObject
Struktur C yang digunakan untuk fungsi.

10
PyTypeObject PyFunction_Type
Ini adalah instance dari PyTypeObject dan mewakili jenis fungsi Python. Itu diekspos
ke programmer Python sebagai types.FunctionType.

int PyFunction_Check(PyObject *o)


Mengembalikan nilai true jika o adalah objek fungsi (memiliki tipe
PyFunction_Type). Parameter tidak boleh NULL. Fungsi ini selalu sukses.

PyObject *PyFunction_New(PyObject *code, PyObject *globals)


Return value: New reference.
Mengembalikan objek fungsi baru yang terkait dengan objek kode code. global harus
berupa dictionary dengan variabel global yang dapat diakses oleh fungsi tersebut.

Docstring dan nama fungsi diambil dari objek kode. __module__ diambil dari global.
Default argumen, anotasi dan penutupan diatur ke NULL. __qualname__ diatur ke
nilai yang sama dengan nama fungsi.

PyObject *PyFunction_NewWithQualName(PyObject *code, PyObject *globals,


PyObject *qualname)
Return value: New reference.
Seperti PyFunction_New(), tetapi juga memungkinkan pengaturan atribut
__qualname__ pada objek fungsi. qualname harus berupa objek unicode atau NULL;
jika NULL, atribut __qualname__ diatur ke nilai yang sama dengan atribut
__name__.

Baru pada versi 3.3.

PyObject *PyFunction_GetCode(PyObject *op)


Return value: Borrowed reference.
Mengembalikan objek kode yang terkait dengan objek fungsi op.

PyObject *PyFunction_GetGlobals(PyObject *op)


Return value: Borrowed reference.
Mengembalikan dictionary global yang terkait dengan objek fungsi op.
11
PyObject *PyFunction_GetModule(PyObject *op)
Return value: Borrowed reference.
Return a borrowed reference to the __module__ attribute of the function object op. It
can be NULL.

This is normally a string containing the module name, but can be set to any other
object by Python code.

PyObject *PyFunction_GetDefaults(PyObject *op)


Return value: Borrowed reference.
Mengembalikan nilai argumen default dari objek fungsi op. Ini bisa berupa argumen
tuple atau NULL.

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)


Menetapkan nilai argumen default untuk objek fungsi op. default harus Py_None atau
tuple.
Menimbulkan SystemError dan mengembalikan -1 jika gagal.

PyObject *PyFunction_GetClosure(PyObject *op)


Return value: Borrowed reference.
Mengembalikan penutupan yang terkait dengan objek fungsi op. Ini bisa berupa
NULL atau tuple objek sel.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)


Mengatur penutupan yang terkait dengan objek fungsi op. closure harus berupa
Py_None atau tuple objek sel.

Menimbulkan SystemError dan mengembalikan -1 jika gagal.

PyObject *PyFunction_GetAnnotations(PyObject *op)


Return value: Borrowed reference.
Kembalikan anotasi objek fungsi op. Ini bisa berupa dictionary yang bisa berubah
atau NULL.
12
int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)
Mengatur anotasi untuk objek fungsi op. annotations harus berupa dictionary atau
Py_None.

Menimbulkan SystemError dan mengembalikan -1 jika gagal.

2.9 Contoh Program OOP


3 class AnggotaSekolah:
4 "representasi anggota sekolah"
5 def __init__(self, nama, umur):
6 self.nama = nama
7 self.umur = umur
8
9 print ('membuat anggota sekolah baru: %s' % self.nama)
10
11 def info(self):
12 "cetak info"
13 print ('Nama: %s, Umur: %s' % (self.nama, self.umur))
14
15 # subclass
16 class Guru(AnggotaSekolah):
17 "representasi guru"
18 def __init__(self, nama, umur, gaji):
19 AnggotaSekolah.__init__(self, nama, umur)
20 self.gaji = gaji
21
22 print ('membuat guru: %s' % self.nama)
23
24 def info(self):
25 AnggotaSekolah.info(self)
26 print ('Gaji: %s' % self.gaji)
27
28 # subclass
29 class Siswa(AnggotaSekolah):
30 "representasi siswa"
31 def __init__(self, nama, umur, nilai):
32 AnggotaSekolah.__init__(self, nama, umur)
33 self.nilai = nilai
34
35 print ('membuat siswa: %s' % self.nama)
36
37 def info(self):
38 AnggotaSekolah.info(self)
39 print ('Nilai: %s' % self.nilai)

13
40
41 guru = Guru('RATRI PURWANINGTYAS', 40, 8000000)
42 siswa = Siswa('DICKY WIJAYA SAPUTRA', 20, 100)
43
44 # cetak baris kosong
45 print
46
47 anggota = [guru, siswa]
48
49 for orang in anggota:
50 orang.info()

Hasil outputnya :

14
KESIMPULAN

Dalam pembuatan makalah ini penulis dapat menarik beberapa kesimpulan antara lain:

1. Pemrograman berorientasi objek merupakan paradigma pemrogramanyang berorientasikan

kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas

atau objek-objek. Bandingkandengan logika pemrograman terstruktur. Setiap objek dapat

menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.2.

2. Bahasa pemrograman yang bisa digunakan antara lain :

 Visual Foxpro
 Java
 C++
 Pascal (Bahasa pemograman)
 SIMULA
 Smalltalk
 Ruby
 Python
 PHP
 C#
 Delphi
 Eiffel
 Perl
 Adobe Flash AS 3.0

15
SARAN

Setelah mengetahui konsep penerapan Object Oriented Programming (OOP), begitu

banyak kesulitan dalam mengerjakan sebuah program yang belum terpahami dengan baik.

16
DAFTAR PUSTAKA

https://ichi.pro/id/pahami-oop-dengan-python-dengan-satu-artikel-210725846623372
http://aldhymahardika16.blogspot.com/2016/12/oop-pada-python.html
https://pdfcoffee.com/oop-object-oriented-programming-pemrograman-berorientasi
https://docplayer.info/40944279-Pertemuan4-konsep-object-oriented-programming-pada
https://medium.com/@denihhandoko/object-oriented-programming-oop-dengan-python
https://jagongoding.com/python/menengah/oop/konsep/
https://www.pythonindo.com/pemrograman-berorientasi-objek-di-python/

17

Anda mungkin juga menyukai