Anda di halaman 1dari 31

PEMROGRAMAN Pertemuan 4 – Syntax-

Syntax dalam Pemrograman


BERORIENTASI OBJEK (PBO) Berorientasi Objek
OUTLINE
❖ Kelas
❖ Properti
❖ Objek
❖ Metode
❖ Modifikasi Akses
Kilas Balik

❖ Python adalah bahasa pemrograman berorientasi objek


❖ Python dari awal dibuat sudah mengadopsi pemrograman
berorientasi objek
❖ Hampir semua yang ada di Python adalah sebuah objek, dengan
properti dan metodenya.
Kelas

❖ Suatu konstruktor/template/kerangka dasar/ rancangan/blueprint


dari objek yang akan dibuat
❖ Berisi dan mendefinisikan atribut/properti dan metode untuk
objeknya nanti
❖ 1 buah kelas dapat membuat banyak objek
❖ Tidak bisa langsung digunakan, harus implementasikan menjadi
sebuat objek dulu, dapat disebut Instansiasi
❖ Misal: kelas Mobil, kelas Manusia
Kelas (lanjutan)

❖ Untuk membuat kelas, gunakan kata kunci class diikuti oleh


nama kelas tersebut dan tanda titik dua. contoh kelas people.
class People:
def __init__(self, fname, lname): # method
self.fname = fname # attribute
self.lname = lname

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 <ClassName>: # => PascalCase


<statement_satu> # => snake_case
<statement_dua>
.
.
.
<statement_n>
Kelas – Membuat sebuah kelas
(lanjutan)
# kelas juga dapat didefinisikan tanpa anggota
# kelas kosong menggunakan kata kunci pass

class Student:
pass

student = Student()# => instansiasi


Kelas – Membuat sebuah kelas
(lanjutan)
class Mobil:
def __init__(self, nama, warna, bahan_bakar):
self.nama = nama
self.warna = warna
self.bahan_bakar = bahan_bakar

mobil_ku = Mobil("Innova", "Merah", "Disel")


mobil_mu = Mobil("Avanza", "Putih", "Bensin")

print(mobil_ku.nama) # ”Innova”
print(mobil_ku.warna) # “Merah”
print(mobil_ku.bahan_bakar) # “disel”
Atribut/Properti

❖ Merupakan variabel, berisi data/isi/informasi dari suatu objek


❖ Didefiniskan di kelas, atribut yang datanya dibagi ke semua objek dari kelas ini
(atribut kelas), atribut yang datanya hanya menjadi milik objek tersebut (atribut
objek)
❖ Misal: kelas Mobil, memiliki atribut warna
❖ Contoh:
⮚ class Mobil:
jumlah_mobil = 0 # atribut kelas

⮚ class Mobil:
def __init__(self, nama):
self.nama = nama # atribut objek
Atribut/Properti (lanjutan)

❖ Dapat diakses dari dalam/luar kelas dan objek, dengan


menuliskan nama kelas atau objek diikuti oleh nama atributnya
❖ Contoh akses atribut dari dalam/luar kelas:
⮚ jumlah1 = Mobil.jumlah_mobil
❖ Contoh akses atribut objek:
⮚ jumlah2 = Mobil1.jumlah_mobil
Objek

❖ Sesuatu yang diciptakan dari kelas, sehingga merupakan bentuk


“nyata” atau perwujutan dari kelas
❖ 1 buah objek terdiri dari 1 kelas
❖ Setiap objek dapat berkomunikasi/berinteraksi dengan objek
lainnya
❖ Misal: objek mobil_ku dibuat dari kelas Mobil
Objek (lanjutan)

❖ Untuk membuat objek dari sebuah kelas, kita bisa memanggil


nama kelas diikuti oleh tanda kurung
❖ Argumen di dalam tanda kurung adalah optional sesuai dengan
pendefinisian kelasnya
❖ Contoh:
⮚ mobil_ku = Mobil()
⮚ Menggunakan fungsi id() untuk mengecek ID dari objek
⮚ Contoh: print(id(mobil_ku))
Metode

❖ 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

❖ Menambahkan atribut objek dengan cara menuliskan nama


objek tersebut yang diikut dengan tanda titik serta nama atribut
yang ingin ditambahkan
❖ Hanya objek yang dituju yang bertambah atributnya, bukan
semua objek ketika membuat objek baru dengan nama kelas
yang sama
❖ Contoh:
⮚ mobil1.jumlah_lampu = 10
Tambah Atribut Objek (lanjutan)

❖ Dapat menggunakan fungsi hasattr() untuk mengecek apakah


atribut berhasil ditambahakan ke objek tersebut atau tidak –
akan menghasilkan nilai True jika ada
❖ Contoh:
⮚ print(hasattr(mobil1, ‘jumlah_lampu'))
Ubah Atribut Objek

❖ Mengubah atribut objek dengan cara menuliskan nama objek


tersebut yang diikut dengan tanda
"
titik serta nama atribut yang
ingin diubah datanya
❖ Contoh:
⮚ mobil1.nama = "Vios"
Hapus Atribut Objek

❖ Menghapus atribut objek dengan cara menggunakan kata kunci


del kemudian menuliskan nama "objek tersebut yang diikut
dengan tanda titik serta nama atribut yang ingin hapus
❖ Hanya objek yang dituju yang dihapus atributnya, bukan semua
objek ketika membuat objek baru dengan nama kelas yang sama
❖ Contoh:
⮚ del mobil1.jumlah_lampu
Hapus Atribut Objek (lanjutan)

❖ Dapat menggunakan fungsi hasattr() untuk mengecek apakah


atribut berhasil dihapuskan ke objek tersebut atau tidak – akan
menghasilkan nilai False jika tidak ada
❖ Contoh:
⮚ print(hasattr(mobil1, 'jumlah_lampu'))
Hapus Objek

❖ Menghapus objek dengan cara menggunakan kata kunci del


kemudian menuliskan nama objek
"
tersebut yang ingin hapus
❖ Contoh:
⮚ del mobil1
❖ Dapat menggunakan fungsi id() untuk mengecek apakah objek
tersebut berhasil dihapuskan atau tidak
❖ Contoh: print(id(mobil1))
Modifikasi Akses

❖ Bahasa pemrograman berorientasi objek, seperti C ++ dan Java,


mengontrol akses ke sumber daya "
kelas dengan kata kunci
public, protected, dan private . Anggota yang visibilitasnya
private pada sebuah kelas akan ditolak akses dari lingkungan di
luar kelas. Mereka hanya dapat ditangani dari dalam kelas
Modifikasi Akses - Public
Anggota public baik atribut maupun metode dapat diakses dari luar kelas

class Student:
school_name = 'Institut Teknologi Sumatera' # class attribute

def __init__(self, name, age):


self.name = name # object attribute
self.age = age # object attribute

>>> std = Student("Eko", 29) Catatan: Kita bisa mengakses


>>> std.school_name atribut public dari kelas Student,
'Institut Teknologi Sumatera‘
>>> std.name seperti name, age, dan
'Eko' school_name
Modifikasi Akses - Protected
 Anggota protected dapat diakses dari dalam kelas dan juga turunan kelasnya
 Untuk membuat atirbut atau metode objek bersifat protected dengan menambahkan awalan _ (garis
bawah tunggal) ke dalam nama tersebut

class Student: "


_school_name = 'Institut Teknologi Sumatera' # protected class attribute
def __init__(self, name, age):
self._name = name # protected instance attribute
self._age = age # protected instance attribute

>>> std = Student("Laras", 19)


Catatan: Faktanya, ini tidak
>>> std._name
Laras mencegah atribut objek mengakses
>>> std._name = 'Fatimatul‘ atau memodifikasi objek yang
>>> std._name beratribut protected
'Fatimatul'
Modifikasi Akses - Protected (lanjut)
Namun, Anda bisa mendefinisikan properti menggunakan dekorator properti dan membuatnya protected, seperti yang ditunjukkan di bawah ini:

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
Catatan: Faktanya, ini tidak
>>> std = Student("Laras", 19)
mencegah atribut objek mengakses
>>> std._name
‘Laras’ atau memodifikasi objek yang
>>> std.get_name('Fatimatul') beratribut protected
'Fatimatul‘
>>> std._name
'Fatimatul'
Modifikasi Akses - Private
❖ Anggota private hanya dapat diakses dari dalam kelasnya
❖ Atribut atau metode yang diawali dengan garis bawah ganda __ membuat atribut atau
metode menjadi private

class Student:
__school_name = 'Institut Teknologi Sumatera' # private class attribute

def __init__(self, name, age):


self.__name = name # private object attribute
self.__age = age # private object attribute
>>> student= Student("Dhifaf", 21)
>>> student.__school_name
AttributeError: 'Student' object has no attribute '__school_name‘
def __display(self): # private method >>> student.__name
AttributeError: 'Student' object has no attribute '__name‘
return 'This is private method.' >>> student.__display()
AttributeError: 'Student' object has no attribute '__display'
Modifikasi Akses - Private
Untuk dapat mengkasesnya, dapat menggunkan sintaks:
object._class__attribute atau object._class__method
Catatan: Faktanya, ini tidak
>>> student._Student__name mencegah atribut objek mengakses
'Dhifaf' atau memodifikasi objek yang
>>> student._Student__name = 'Ayu' beratribut private
>>> student._Student__name
'Ayu'
>>> student._Student__display() Python tidak memiliki mekanisme
'This is private method.' apa pun yang secara efektif
membatasi akses ke atribut atau
metode instance apa pun.
TERIMA KASIH Pertemuan 4 - Selesai

Anda mungkin juga menyukai