0% menganggap dokumen ini bermanfaat (0 suara)
193 tayangan31 halaman

04 - Syntax-Syntax Dalam Pemrograman Berorientasi Objek

Dokumen tersebut membahas tentang konsep dasar pemrograman berorientasi objek dalam bahasa Python, meliputi penjelasan mengenai kelas, objek, atribut, metode, dan modifikasi akses."

Diunggah oleh

ama
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
193 tayangan31 halaman

04 - Syntax-Syntax Dalam Pemrograman Berorientasi Objek

Dokumen tersebut membahas tentang konsep dasar pemrograman berorientasi objek dalam bahasa Python, meliputi penjelasan mengenai kelas, objek, atribut, metode, dan modifikasi akses."

Diunggah oleh

ama
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 31

PEMROGRAMAN BERORIENTASI Pertemuan 3 – Syntax-Syntax

dalam Pemrograman
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 (umumnya metode yang dideklarasikan di kelas) dapat diakses dari luar kelas.

class Student:
school_name = 'Institut Teknologi Sumatera' # class attribute
def __init__(self, name, age):
self.name = name # instance attribute
self.age = age # instance attribute

>>> std = Student("Eko", 29)


>>> std.school_name Catatan: Anda bisa mengakses
'Institut Teknologi Sumatera' atribut public dari kelas Student,
>>> std.name
seperti name, age, dan
'Eko'
school_name.
Modifikasi Akses - Protected
- Anggota protected dapat diakses dari dalam kelas dan juga tersedia untuk sub-kelasnya.
- Python untuk membuat variabel instance dilindungi adalah dengan menambahkan awalan _ (garis bawah
tunggal) ke dalamnya.

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)


>>> std._name Catatan: Faktanya, ini tidak
Laras
>>> std._name = 'Fatimatul' mencegah variabel instance
>>> std._name mengakses atau memodifikasi
'Fatimatul'
instance yang beratribut protected.
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

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


>>> std._name Catatan: Faktanya, ini tidak
‘Laras’
>>> std.get_name('Fatimatul') mencegah variabel instance
'Fatimatul'
>>> std._name mengakses atau memodifikasi
'Fatimatul'
instance yang beratribut protected.
Modifikasi Akses - Private
❖ Python tidak memiliki mekanisme apa pun yang secara efektif membatasi akses ke variabel atau metode
instance apa pun.
❖ Garis bawah ganda __ yang diawali dengan variabel membuat atribut atau fungsi menjadi private.

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

def __init__(self, name, age):


>>> student= Student("Dhifaf", 21)
self.__name = name # private instance attribute >>> student.__school_name
self.__age = age # private instance attribute AttributeError: 'Student' object has no attribute '__school_name'
>>> student.__name
AttributeError: 'Student' object has no attribute '__name'
def __display(self): # private method >>> student.__display()
return 'This is private method.' AttributeError: 'Student' object has no attribute '__display'
Modifikasi Akses - Private
Setiap anggota dengan garis bawah ganda akan diubah menjadi _object._class__variable

>>> student._Student__name
'Dhifaf'
>>> student._Student__name = ‘Ayu’
>>> student._Student__name
'Ayu'
>>> student._Student__display()
'This is private method.'

Catatan: Faktanya, ini tidak


mencegah variabel instance
mengakses atau memodifikasi
instance yang beratribut private.
TERIMA KASIH Pertemuan 4 - Selesai

Anda mungkin juga menyukai