04 - Syntax-Syntax Dalam Pemrograman Berorientasi Objek
04 - Syntax-Syntax Dalam Pemrograman Berorientasi Objek
dalam Pemrograman
OBJEK (PBO) Berorientasi Objek
OUTLINE
❖ Kelas
❖ Properti
❖ Objek
❖ Metode
❖ Modifikasi Akses
Kilas Balik
def get_full_name(self):
return self.fname + self.lname
Kelas – Membuat sebuah kelas
# struktur kelas
# body class, berisi atribut dan metode dari kelas
class Student:
pass
❖ Merupakan fungsi
❖ Menyatakan proses-proses apa saja yang bisa dilakukan oleh
objek
❖ Dapat dikatakan sebagai aksi atau tindakan yang bisa
dilakukan oleh suatu objek (sifat/perilaku dari objek)
❖ Didefiniskan di kelas
Metode – __init__()
❖ Merupakan metode konstruktor, metode khusus yang digunakan
Python untuk menginisialisasi pembuatan objek dari kelas tersebut
❖ Semua kelas memiliki metode tersebut, yang selalu dijalankan saat
kelas sedang dimulai
❖ Gunakan metode tersebut untuk menetapkan data (nilai) ke atribut
objek atau operasi lain saat pembuatan objek
❖ Metode tersebut dipanggil secara otomatis setiap kali kelas
digunakan untuk membuat objek baru
Metode – __init__() (lanjutan)
❖ Untuk membuat objek dari sebuah kelas, kita bisa memanggil
nama kelas diikuti oleh tanda kurung dengan argumen sesuai
dengan metode __init__() pada saat kita mendefinisikannya
Metode – Argumen self
❖ Argumen pertama yang mereferensi ke kelas yang sedang
dipakai atau saat ini dan dapat digunakan untuk mengakses
atribut milik kelas tersebut
❖ Pada saat pemanggilan metode, argumen ini otomatis
ditambahkan oleh Python. Kita tidak perlu menambahkannya
pada saat memanggil metode
❖ Tidak harus dinamai self, kita dapat menamainya sesuka kita,
tetapi harus menjadi argumen pertama dari metode apa pun di
dalam kelas
Metode – Motode Lain
❖ Kita dapat menambahkan metode lain
❖ Metode-metode tersebut pendefinisiannya sama dengan
metode __init__() atau fungsi pada umumnya
❖ Tetap menggunakan argumen self
Metode – Contoh
class Mobil:
jumlah_mobil = 0
def __init__(self, nama, warna, bahan_bakar):
self.nama = nama
self.warna = warna
self.bahan_bakar = bahan_bakar
Mobil.jumlah_mobil += 1
def ambil_jumlah_mobil(self):
return Mobil.jumlah_mobil
def ambil_profil(self):
return “””
Nama: {}
Warna: {}
Bahan Bakar: {}
”””.format(self.nama, self.warna, self.bahan_bakar)
avanza = Mobil(“Avanza”, “Putih”, “Bensin”)
innova = Mobil(“Innova”, “Abu-Abu”, “Solar”)
print(“Total mobil: “, Mobil.jumlah_mobil)
print(avanza.ambil_profil())
print(innova.ambil_profil())
Tambah Atribut Objek
class Student:
school_name = 'Institut Teknologi Sumatera' # class attribute
def __init__(self, name, age):
self.name = name # instance attribute
self.age = age # instance attribute
class Student:
_school_name = 'Institut Teknologi Sumatera' # protected class" attribute
class Student:
def __init__(self, name):
self._name = name
@property
def get_name(self):
return self._name
@get_name.setter
def get_name(self, newname):
self._name = newname
class Student:
__school_name = 'Institut Teknologi Sumatera' # private class attribute
>>> student._Student__name
'Dhifaf'
>>> student._Student__name = ‘Ayu’
>>> student._Student__name
'Ayu'
>>> student._Student__display()
'This is private method.'