Mg05 - Enkapsulasi
Mg05 - Enkapsulasi
Karakterisitik PBO
Encapsulation (fokus kita pada pertemuan ini)
Inheritance
Polymorphysm
Enkapsulasi
Ciri-ciri:
Public: tanpa garis bawah
Protected: dengan garis bawah tunggal ( _ )
Private: dengan garis bawah ganda ( __ )
Misal: atribut nomor_seri pada kelas Mobil dibuat privat
sehingga objek lainnya tidak bisa mengakses atribut tersebut
Acces Modifier – Public
Objek berjenis public baik atribut maupun metode dapat
diakses dari luar
Secara default, semua objek berjenis public
Bentuknya sama dengan kita membuat objek biasa
Acces Modifier – Public –(lanjutan)
Contoh:
class Student:
school_name = 'Institut Teknologi Sumatera'
Student1.age = 25
Acces Modifier – Protected
Objek berjenis public baik atribut maupun metode hanya dapat
diakses dari dalam kelas dan turunan kelasnya
Untuk membuat atribut atau metode objek berjenis protected
dapat dilakukan dengan cara menambahkan awalan garis bawah
tunggal ( _ ) ke dalam nama tersebut
Efek: tidak ada lingkungan lain yang diizinkan mengaksesnya,
ini secara efektif mencegahnya dari diakses atribut maupun
metode kecuali dari dalam kelas dan turunannya
Acces Modifier – Protected –
(lanjutan)
Contoh:
class Student:
_school_name = 'Institut Teknologi Sumatera'
print(Studen1.getName())
print(Studen1.getAge())
Antarmuka – setter (Mutator)
Metode yang digunakan untuk mengubah atribut dari sebuah objek, contoh:
class Student:
_school_name = 'Institut Teknologi Sumatera'
print(Student1._Student__name)
Studen1.setName("Dwi")
Antarmuka – setter dan getter
Metode yang digunakan untuk mengubah atribut dari sebuah objek, contoh:
class Student:
_school_name = 'Institut Teknologi Sumatera'
print(Student1.getName())
Studen1.setName("Dwi")
Antarmuka – Dekorator
Dalam Python, suatu fungsi dapat dikirimkan sebagai argumen
ke fungsi lain atau dimungkinkan juga untuk mendefinisikan
fungsi di dalam fungsi lain, serta fungsi dapat mengembalikan
fungsi lain
Merupakan tanggung jawab tambahan / fungsi tambahan ke
suatu fungsi secara dinamis tanpa mengubah fungsi atau
dengan kata lain fungsi yang menerima fungsi lain sebagai
argumen
Antarmuka – Dekorator – (lanjutan)
Perilaku fungsi argumen diperluas oleh dekorator tanpa benar-benar
memodifikasinya
Dekorator dapat diterapkan di atas fungsi untuk memperluas fungsionalitas
fungsi yang mendasarinya
Ciri khas: @
Tiga dekorator bawaan:
property
staticmethod
classmethod
Antarmuka – property (Dekorator)
Dekorator bawaan Python
Mendeklarasikan sebagai metode getter, setter, dan deleter atribut
Gunakan dekorator ini pada metode apa pun di kelas untuk menggunakan
metode tersebut sebagai atribut
Tiga dekorator properti:
@property -> mendeklarasikan metode sebagai atribut
@<property-name>.setter -> dekorator properti untuk mengubah nilai
@<property-name>.deleter -> dekorator properti untuk menghapus nilai
Antarmuka – property (Dekorator) –
property
Bentuk: @property, metode harus mengembalikan nilai atribut
Contoh:
class Student:
def __init__(self, full_name):
self.__name = full_name
@property
def mName(self): # metode mName() sekarang sebagai atribut
return self.__name
Student1 = Student("Eko")
print(Student1.mName)
Antarmuka – property (Dekorator) –
Setter
Bentuk: @<property-name>.setter, contoh:
class Student:
def __init__(self, full_name):
self.__name = full_name
@property
def mName(self): # metode mName() sekarang sebagai atribut
return self.__name
@mName.setter
def mName(self, value): # metode atribut untuk ubah nilai
self.__name = value
Student1 = Student("Eko")
print(Studen1.mName)
Studen1.mName = "Dwi"
Antarmuka – property (Dekorator) –
Deleter
Bentuk: @<property-name>.deleter, contoh:
class Student:
def __init__(self, full_name):
self.__name = full_name
@property
def mName(self): # metode mName() sekarang sebagai atribut
return self.__name
@mName.deleter
def mName(self, value): # metode atribut untuk ubah nilai
del self.__name
Student1 = Student("Eko")
print(Student1.mName)
del Student1.mName
Antarmuka – staticmethod
(Dekorator)
Dekorator bawaan Python
Mendeklarasikan metode statis, artinya tidak menerima argumen
referensi apa pun baik itu dipanggil oleh objek atau oleh kelas itu
sendiri
Tidak dapat menggunakan argumen self, sehingga tidak dapat
mengakses atribut objek
Bentuk pemanggilan: ClassName.MethodName() atau
object.MethodName()
Antarmuka – staticmethod
(Dekorator) – (lanjutan)
Contoh:
class Student:
__school_name = 'Institut Teknologi Sumatera'
@staticmethod
def mName():
return Student.__school_name
Student1 = Student("Eko")
print(Student1.mName())
print(Student.mName())
Antarmuka – classmethod
(Dekorator)
Dekorator bawaan Python
Untuk mendeklarasikan metode di kelas sebagai metode kelas,
sehingga dapat dipanggil menggunakan ClassName.MethodName ()
Menggunakan argumen cls (dapat diubah namanya) sebagai argumen
pertama (pengganti self), namun tidak dapat mengakses atribut objek
Bentuk pemanggilan: ClassName.MethodName() atau
object.MethodName()
Antarmuka – classmethod
(Dekorator) – (lanjutan)
Contoh:
class Student:
__school_name = 'Institut Teknologi Sumatera'
@classmethod
def mName(cls):
return Student.__school_name #dapat menggunakan Student atau cls
Student1 = Student("Eko")
print(Student1.mName())
Antarmuka – classmethod
(Dekorator) – (lanjutan)
Dapat sebagai metode pabrik yang digunakan untuk membuat objek dari metode tersebut, contoh:
class Student:
@classmethod
def mName(cls):
return cls("Dwi")
Student1 = Student("Eko")
print(Student1.name())
Student2 = Student.mName()
TERIMA KASIH Pertemuan 5 - Selesai