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.
Penulis
i
DAFTAR ISI
KATA PENGANTAR..................................................................................i
DAFTAR ISI.................................................................................................ii
BAB I PENDAHULUAN
BAB II PEMBAHASAN
2.4 Class...................................................................................................4
2.5 Inheritance..........................................................................................7
2.6 Constructor.........................................................................................9
3.1 Kesimpulan......................................................................................15
3.2 Saran................................................................................................16
DAFTAR PUSTAKA.................................................................................17
ii
BAB I
PENDAHULUAN
2
BAB II
PEMBAHASAN
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.
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.
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:
jumlah_karyawan = 0
self.nama = nama
self.gaji = gaji
Karyawan.jumlah_karyawan += 1
def tampilkan_jumlah(self):
def tampilkan_profil(self):
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.
karyawan1.tampilkan_profil()
karyawan2.tampilkan_profil()
6
print("Total karyawan :", Karyawan.jumlah_karyawan)
Nama : Sarah
Gaji : 1000000
Nama : Budi
Gaji : 2000000
Total karyawan : 2
Orang
Pelajar
Pekerja
Masing-masing dari 3 objek tersebut memiliki beberapa sifat dan perilaku yang sama,
misalkan:
nama
asal
dan kemampuan memperkenalkan diri
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
class Orang:
Output:
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.
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:
Outputnya :
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:
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
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.
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.
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.
This is normally a string containing the module name, but can be set to any other
object by Python code.
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:
kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas
Visual Foxpro
Java
C++
Pascal (Bahasa pemograman)
SIMULA
Smalltalk
Ruby
Python
PHP
C#
Delphi
Eiffel
Perl
Adobe Flash AS 3.0
15
SARAN
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