Anda di halaman 1dari 18

MAKALAH

PEMPROGRAMAN 2B (PYTHON)

KELOMPOK 5

1. RAKA YUDHISTIRA (55419287)


2. MUHAMMAD RAIHAN ARRAFI (54419355)
3. NAUFAL PRATAMA (54419729)
4. MUHAMMAD KEVIN AZELA (54419270)
5. M. RIZZA NURARFI SALDY (54419444)
6. PARMA RIZA RAMADHAN (54419992)
1. CLASS
Class adalah salah satu cara bagaimana kita membuat sebuah kode yang
mempunyai behaviour tertentu dan lebih mudah dalam mengorganisasi berbagai fungsi
dan state-nya. Dalam sebuah class kamu dapat menyimpan sebuah state tanpa harus
membuat banyak state bila tidak menggunakan class.
Dalam hal ini, kita dapat membuat sebuah objek yang memiliki variable dan method-nya
sendiri. Dan setiap objek yang dihasilkan akan memiliki karakteristik yang berbeda
dibandingkan objek lainnya. Dalam sebuah objek tentu ada variabel yang dapat diakses
secara langsung (s) ataupun dirahasiakan (private). Dalam contoh ini kamu akan membuat
sebuah class Product dan membuat dua objek dengan atribut yang berbeda
dari class tersebut.

class Product:
__vendor_message = "Ini adalah rahasia"
name = ""
price = ""
size = ""
unit = ""

def __init__(self, name):


print "Ini adalah constructor"
self.name = name
self.unit = "ml"
self.size = 250

def get_vendor_message(self):
print self.__vendor_message

def set_price(self, price):


self.price = price

Pertama kita gunakan keyword class diikuti dengan nama class yang kita inginkan. Lebih


baik kamu gunakan kata yang diawali huruf kapital. Kemudian kita tentukan atribut apa saja
yang dimiliki oleh class. Disana ada vendor_message, name, price, size, dan unit.
Untuk atribut yang bersifat privat, kamu dapat menggunakan underscore ( _ ) dua kali di
awal nama variabel untuk membuatnya privat. Sedangkan untuk atribut publik cukup dengan
nama yang diawali huruf alfabet.
Kemudian untuk constructor kita gunakan method bawaan Python yang bernama init .
Setiap method harus memiliki parameter self yang artinya method tersebut dimiliki dan
terdaftar ke class tersebut untuk membedakan dari method atau fungsi yang ada di luar class.
Selanjutnya constructor dapat memiliki atribut tambahan sesuai kebutuhan. Dalam hal
ini, constructor Product memiliki parameter name yang harus selalu diisi saat membuat
objek. Di dalam constructor terdapat inisialisasi atribut untuk name, unit, dan size.
Kmeudian untuk mengambil suatu atribut yang bersifat privat, kita harus membuat
sebuah method yang membantu kita mengambil atribut privat tersebut. Dalam hal ini kita
ambil vendor_message dengan menggunakan method get_vendor_message(). Kemudian
kita juga dapat membuat method lain untuk melakukan aksi tertentu. Misal kita
membuat method set_price() untuk mengisi atribut price.

Di bagian berikutnya, kita buat dua buah objek yang berbeda dengan
menggunakan class Product
.

p = Product("Ultora Milek")
p.set_price(5500)

print "%s dengan ukuran %s %s harganya Rp. %d" % (p.name, p.size, p.unit, p.price)
# print p.__vendor_message

p.get_vendor_message()

p1 = Product("Indomilek")
p1.set_price(5000)

print "%s dengan ukuran %s %s harganya Rp. % d" % (p.name, p.size, p.unit, p.price)

Untuk membuat sebuah objek di Python, kamu tidak perlu


menggunakan statement new seperti di Java atau PHP. Layaknya memanggil sebuah method,
kamu tinggal membuat objek dengan memanggil nama class yang telah dibuat, dan
mengisi constructor sesuai dengan parameter yang dibutuhkan. Untuk mengambil atribut
publik, kamu cukup menggunakan dot atau titik setelah nama objek dan memanggil
atributnya. Pada kode diatas, bagian saat memanggil langsung atribut privat dikomentari
terlebih dahulu. Bila kita hapus komentarnya dan skrip dijalankan ulang, maka akan
muncul error seperti berikut:
$ python classes.py
Ini adalah constructor
Ultora Milek dengan ukuran 250 ml harganya Rp. 5500
Traceback (most recent call last):
File "classes.py", line 24, in <module>
print p.__vendor_message
AttributeError: Product instance has no attribute '__vendor_message'

Padahal kita telah membuatnya di dalam class hanya saja atribut tersebut dilindungi dari
lingkungan luar. Dan yang terakhir kita memeriksa setiap objek apakah bernilai sama:

print p == p
print p1 == p1
print p == p1

Ternyata walaupun dihasilkan dari class yang sama, namun kedua objek tersebut merupakan
objek yang berbeda yang tinggal berada di dalam memory komputer kita.
2. INHERITANCE
inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep
inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai
entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class
turunan. Pewarisan merupakan mekanisme/cara membuat kelas baru dari kelas yang sudah
ada. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Konsep
inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi
kode program. Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam
kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class),
super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut
sebagai class anak (child class), sub class, derived class atauheir class.

Kelas yang sudah ada superclass/parent class


Kelas turunan subclass

 Deklarasi inheritance

Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti
dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler
Java bahwa kita ingin melakukan perluasan class.
contoh :

public class B extends A {



}

Class A menjadi parent class


Class B menjadi child class
Class B mewarisi semua member class yang ada pada class A.

Semua class di dalam Java adalah merupakan subclass dari class super induk yang bernama
Object.
Misalnya saja terdapat sebuah class sederhana :

public class A {

}

 Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class
Object.
public class A extends Object {

}

 Kapan kita menerapkan inheritance?


Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat
diperluas dari class lain.

 Single Inheritance
Konsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance, yaitu
suatu sublass hanya dapat mempunyai satu parent class. Dengan kata lain, suatu class hanya
dapat meng-extend satu class saja.
Jika dibutuhkan adanya multiple inheritance (satu class memiliki lebih dari satu parent
class) maka solusinya dapat menggunakan interface.

 Multilevel Inheritance
Konsep inheritance yang ada di Java juga memperkenankan adanya multilevel inheritance.
Konsep multilevel inheritance memperbolehkan suatu subclass mempunyai subclass lagi.

 Konstruktor tidak diwariskan


1. Konstruktor dari parent class tidak dapat diwariskan ke subclass-nya.
2. Konsekuensinya, setiap kali kita membuat suatu subclass, maka kita harus memanggil
konstruktor
 parent class.
•Pemanggilan konstruktor parent harus dilakukan pada baris pertama dari konstruktor
subclass.

Pada saat program tersebut dikompilasi, maka kompiler Java akan menambahkan :
– Konstruktor class Parent
– Konstruktor class Child
– Pemanggilan konstruktor class Parent di kostruktor class Child

 Alur Eksekusi Constructor


1. Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student
dipanggil secara implisit untuk melakukan inisialisasi seperlunya.
2. Setelah itu, pernyataan di dalam constructor subclass baru dijalankan.

 Keuntungan inheritance:
1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan
superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source
code dari superclass yang telah ada.
2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang
disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.
3. CONSTRUCTOR

adalah method khusus yang akan dijalankan secara otomatis pada saat


sebuah objek dibuat (instansiasi), yakni ketika perintah “new” dijalankan.
Constructor biasa digunakan untuk membuat proses awal dalam mempersiapkan
objek, seperti memberi nilai awal kepada property, memanggil method internal dan
beberapa proses lain yang digunakan untuk ‘mempersiapkan’ objek.
Dalam PHP, constructor dibuat menggunakan method : __constru
(),
Sebagai contoh saya akan membuat contoh constructor yang sering digunakan
untuk membuat objek dengan nilai awal. Konsep ini sering digunakan dalam
pemrograman objek. Berikut adalah contoh penggunaannya:
1 <?php

2 // buat class laptop

class laptop {
3
  
4
   private $pemilik;
5
   private $merk;
6
  
7
   // constructor sebagai pembuat nilai awal
8
   public function __construct($pemilik, $merk) {
9      $this->pemilik = $pemilik;
10      $this->merk = $merk;
11    }

12   

13    public function hidupkan_laptop() {

14      return "Hidupkan Laptop $this->merk punya $this->pemilik";

   }
15
}
16
  
17
// buat objek dari class laptop (instansiasi)
18
$laptop_andi= new laptop("Andi", "Lenovo");
19
  
20
echo $laptop_andi->hidupkan_laptop();
21
echo "<br />";
22
  
23

24 $laptop_anto= new laptop("Anto", "Acer");

25   

26 echo $laptop_anto->hidupkan_laptop();

27 ?>

28

Pada kode diatas, saya menggunakan constructor sebagai pembuat nilai awal


dari objek. Method constructormenerima 2 buah argumen yang kemudian disimpan
kedalam propertyinternal objek.
Berikut adalah hasil yang didapat dari kode program diatas:

1 Hidupkan Laptop Lenovo punya Andi

2 Hidupkan Laptop Acer punya


4. CARA MEMBUAT OBJECT PADA PYTHON

Pemrograman berorientasi objek atau dalam bahasa inggris disebut Object Oriented
Programming (OOP) adalah paradigma atau teknik pemrograman di mana semua hal dalam
program dimodelkan seperti objek dalam dunia nyata. Objek di dunia nyata memiliki ciri atau
attribut dan juga aksi atau kelakuan (behaviour).

Kita misalkan sebuah mobil. Mobil memiliki ciri punya ban, stang, kursi, pedal gas, rem, dan
lain sebagainya. Ada juga ciri warna, atau tahun keluaran berapa. Selain punya ciri, mobil
juga punya aksi atau sesuatu yang bisa dilakukan olehnya. Misalnya, ketika pedal diinjak apa
yang terjadi. Ketika di rem apa yang terjadi, dan lain sebagainya.

Program juga demikian. Semua unit dalam program bisa dianggap sebagai objek. Objek besar
dibangun dari objek – objek yang lebih kecil. Objek yang satu berinteraksi dengan objek
yang lain, sehingga semua menjadi sebuah kesatuan yang utuh.

Python dari awal dibuat sudah mengadopsi OOP. Selain itu Python juga bisa menggunakan
paradigma pemrograman lama yaitu pemrograman terstruktur. Oleh karena itu, Python
disebut bersifat hibrid.

Ada beberapa istilah istilah dalam OOP antara lain:

Class
Protipe yang ditentukan penggunaan untuk objek yang mendifinisikan seperangkat atribut
yang menjadi ciri objek kelas apapun. Atribut adalah data anggota (variabel kelas dan
variabel contoh) dan metode, diakses melalui notasi titik.
Class variabel
Sebuah varibel yang dibagi oleh semua contoh kelas. Variabel kelas didefisikan dalam kelas
tapi di luar metode kelas manapun. Variabel kelas tidak digunakan sesering variabel contoh
Data member
Variabel kelas atau variabel contoh yang menimpan data yang terkait dengan kelas dan objek
Function overloading
Penugasan lebih dari satu perilaku ke fungsi tertentu. Operasi yang dilakukan bervariasi
menurut jenis objek atau argumen yang terlibat.
Instance variabel
Variabel yang didefinisikan di dalam sebuah metode dan hanya dimiliki oleh instance kelas
saat ini.
Inheritance
Pengalihan karakteristik kelas ke kelas lain yang berasal darinya.
Instance 
Objek individu dari kelas tertentu. Objek obj yang termasuk dalam Lingkaran kelas,
misalnya, adalah turunan dari Lingkaran kelas.
Instantiation
Penciptaan sebuah instance dari sebuah kelas.
Method
Jenis fungsi khusus yang didefinisikan dalam definisi kelas.
Object
Contoh unik dari struktur data yang didefisikan oleh kelasnya. Objek terdiri dari kedua
anggota data (varibel kelas dan variabel contoh) dan metode
Operator overloading
Penugasan lebih dari satu fungsi ke operator tertentu.

Membuat Class Pyhton


Statement class digunakan untuk membuat definisi kelas baru. Nama kelas segera mengikuti
kelas kata kunci diikuti oleh titik dua sebagai berikut.
Class slassName:
‘Optional class documentation string’
Class_suite

Dibawah ini adalah contoh cara membuat class dan penggunaanya :

Class Employee :

‘Common base class for all employees’

empCount = 0

def _init_(self, name, salary) :

self.name = name

self.salary = salary

Employee.empCount += 1

Def displayCount (self) :

Print “total Employee %d” % Employee.empCount

Print “Name : “, self.name, “, Salary : “,


self.salary

Membuat Instance Objects


To create instances of a class, you call the class using class name and pass in whatever
arguments its _init_ method accepts untuk membuat instaces kelas, Anda memanggil class
menggunakan nama class dan meneruskan argumen apa pun yang metode _init_ terima.

This would create first object of Employee class


Emp1 = Employee (“Zara”, 2000)
This would create second object of Employee class
Emp2 = Employee (“Manni”, 5000)
Mengakses Atribut
Anda mengakses atribut objek menggunakan dot operator dengan objek. Variabel kelas akan
diakses dengan menggunakan nama kelas sebagai berikut :

Emp1.displayEmployee()
Emp2.displayEmplayee()
Print (“Total Employee %d” % Employee.empCount)

Conth lengkapnya silakan lihat kode dibawah ini :

Class Employee :

‘Common Base Class For All Employees’

Empcount = 0

Def _Init_ (Self, Name, Salary) :

Self.Name = Name

Self.Salary = Salary

Employee.Empcount += 1

Def Displaycount (Self) :

Print (“Total Employee %d” % Employee.Empcout)

Def Displayemployee (Self) :

Print (“Name : “, Self.Name, “, Salary : “,


Self.Salary)

#This would create first object of Employee class”

Emp1 = Employee (“zara”, 2000)

#This would create second object of Employee class”

Emp2 = Employee (“mani”, 5000)

Emp1.displayEmployee()

Emp2.displayEmployee()
Print (“Total Employee %d” % Employee.empCount)
5. Parameter Masukan
Parameter adalah variabel yang menampung nilai untuk diproses di dalam fungsi.
Fungsinya untuk menampung nilai data yang akan dijadikan sebagai masukan ke dalam
fungsi, itu artinya sebuah fungsi dapat menghasilkan nilai yang berbeda tergantung dari nilai
paramter yang dimasukan pada saat pemanggilan fungsi tersebut.

Contoh Parameter :

Outputnya
Contoh ke-2

Outputnya

Jadi, Parameter itu variabel untuk memperoses fungsi yang nanti kita masukkan.
6. FUNGSI PADA OBJECT

Deskripsi

Objek adalah dasar dari semua hal di Python. Fungsi object()  mengembalikan


objek tanpa embel – embel atau fitur apapun.

Sintaks

Fungsi object() memiliki sintaks seperti berikut

o = object()

Parameter

Fungsi object() tidak menerima parameter apapun

Nilai Kembalian

Fungsi object() mengembalikan object tanpa fitur apapun.

Contoh

Contoh dari penggunaan fungsi object()  adalah seperti berikut:

Script.py IPython Shell

1. obj = object()

2.

3. Print (type(obj))

4. Print (dir(obj))

5.
Output

Output dari program di atas adalah seperti berikut:

<class 'object'>

['__class__', '__delattr__', '__dir__', '__doc__', '__eq__',


'__format__', '__ge__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__le__', '__lt__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__']
7. PROGRAM OOP PADA PYTHON

Class karyawan:
“Dasar Kelas untuk semua Karyawan”
Jumlah_mahasiswa = 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)

#membuat objek pertama dari kelas karyawan

Karyawan1 = karyawan(“sarah”,1000000)

#membuat objek kedua dari kelas karyawan

Karyawan2 = karyawan(“budi”, 2000000)

Karyawan1.tampilkan_profil()
Karyawan2.tampilkan_profil()
Print(“Total karyawan:”, karyawan.jumlah_karyawan)

Output:
(‘Nama:’, ‘sarah’)
(‘Gaji:’, 1000000)
(‘Nama :’, ‘Budi’)
(‘Gaji :’, 2000000)
(‘Total Karyawan :’, 2)
DAFTAR PUSTAKA

https://www.codepolitan.com/membuat-class-di-python-589528b4d558d
http://shodiqfarhan24.blogspot.com/2015/11/pengertian-inheritance.html
https://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-constructor-dan-destructor/
https://www.pythonindo.com/fungsi-object/
https://www.petanikode.com/python-fungsi/
https://www.programiz.com/python-programming/function-argument
https://pythopemula.blogspot.com/2018/06/objek-dan-class-python.html

Anda mungkin juga menyukai