0% menganggap dokumen ini bermanfaat (0 suara)
171 tayangan20 halaman

Pemahaman Konsep OOP Dalam Python

belajar oop

Diunggah oleh

Lani Ab'efendi
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 PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
171 tayangan20 halaman

Pemahaman Konsep OOP Dalam Python

belajar oop

Diunggah oleh

Lani Ab'efendi
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 PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 20

Pemahaman

Konsep OOP
dalam Python
Object-Oriented Programming (OOP) adalah paradigma
pemrograman yang populer dalam Python. OOP
memungkinkan pengembang untuk membuat kode yang
terstruktur dan dapat digunakan kembali. Konsep ini
sangat penting untuk dipahami oleh programmer Python.

ss LN
2 Contributors
Apa itu Object-Oriented Programm
OOP adalah pendekatan pemrograman yang berfokus pada objek. Objek ini mewakili
entitas dunia nyata dengan atribut dan perilaku tertentu. OOP memungkinkan
pengembang untuk mengorganisir kode dengan lebih baik.

Encapsulation
Menyembunyikan detail implementasi internal objek dari dunia luar.

Inheritance
Memungkinkan kelas baru untuk mewarisi properti dan metode dari kelas yang ada.

Polymorphism
Kemampuan objek untuk mengambil berbagai bentuk dan berperilaku secara berbeda.

Abstraction
Menyederhanakan kompleksitas dengan menyembunyikan detail yang tidak perlu.
Kelas dalam Python
Kelas adalah cetak biru untuk membuat objek. Kelas mendefinisikan atribut dan metode yang akan dimiliki
oleh objek. Dalam Python, kelas didefinisikan menggunakan kata kunci 'class'.

Definisi Kelas 1
Gunakan kata kunci 'class' diikuti nama kelas.

2 Atribut Kelas
Tentukan variabel yang akan dimiliki oleh
setiap instance kelas.
Metode Kelas 3
Definisikan fungsi yang dapat dijalankan
pada objek kelas.
4 Instantiasi
Buat objek baru dari kelas yang telah
didefinisikan.
Membuat Kelas dalam Python
Untuk membuat kelas dalam Python, gunakan kata kunci 'class' diikuti nama
kelas. Metode __init__() digunakan sebagai konstruktor untuk menginisialisasi
atribut objek.

1 Sintaks Dasar
class NamaKelas: # definisi kelas

2 Konstruktor
def __init__(self, parameter1, parameter2): # inisialisasi atribut

3 Metode
def nama_metode(self): # definisi metode

4 Self
'self' merujuk pada instance objek saat ini.
Contoh Kode: Kelas Sederhana
Berikut adalah contoh kode untuk kelas sederhana dalam Python. Kelas ini merepresentasikan sebuah
mobil dengan atribut merk dan tahun, serta metode untuk menampilkan informasi.

Definisi Kelas Konstruktor Metode Penggunaan


class Mobil: def __init__(self, merk, def tampilkan_info(self): mobil1 =
tahun): Mobil("Toyota", 2020)
Atribut dalam OOP Python
Atribut adalah variabel yang terkait dengan objek. Dalam Python, atribut dapat didefinisikan di dalam
metode __init__() atau di luar metode apa pun di dalam kelas.

Atribut Instance Atribut Kelas Atribut Privat

Unik untuk setiap objek. Dibagi oleh semua instance Diawali dengan dua
Didefinisikan menggunakan kelas. Didefinisikan di luar underscore (__). Tidak dapat
self.nama_atribut dalam metode apa pun. diakses langsung dari luar
__init__(). kelas.
Metode dalam OOP Python
Metode adalah fungsi yang didefinisikan di dalam kelas. Metode dapat mengakses dan
memodifikasi atribut objek. Setiap metode menerima 'self' sebagai parameter pertama.

Definisi Metode
Tulis fungsi di dalam kelas dengan parameter self.

Akses Atribut
Gunakan self.nama_atribut untuk mengakses atribut objek.

Pemanggilan Metode
Panggil metode pada objek: objek.nama_metode()

Metode Khusus
Metode dengan nama khusus seperti __str__() untuk representasi string.
Inheritance (Pewarisan) dalam Python
Inheritance memungkinkan kelas baru (subclass) untuk mewarisi atribut dan metode dari kelas yang
sudah ada (superclass). Ini memungkinkan penggunaan kembali kode dan hierarki kelas.

Definisi Subclass 1
class SubClass(SuperClass): # definisi subclass

2 Pewarisan Atribut
Subclass mewarisi semua atribut dari
superclass.
Overriding Metode 3
Subclass dapat mendefinisikan ulang
metode yang diwarisi.
4 super()
Gunakan super() untuk memanggil
metode superclass.
Contoh Kode: Inheritance
Berikut adalah contoh kode yang menunjukkan inheritance dalam Python.
Kelas 'Mobil' adalah superclass, dan 'MobilSport' adalah subclass yang
mewarisi dari 'Mobil'.

Superclass
class Mobil: # definisi kelas Mobil

Subclass
class MobilSport(Mobil): # MobilSport mewarisi dari Mobil

Overriding
def tampilkan_info(self): # override metode superclass

super()
super().tampilkan_info() # panggil metode superclass
Encapsulation dalam Python
Encapsulation adalah konsep menyembunyikan detail internal objek dan hanya
mengekspos fungsionalitas yang diperlukan. Python menggunakan konvensi penamaan
untuk encapsulation.

Atribut Privat
Diawali dengan dua underscore: __nama_atribut

Getter
Metode untuk mengakses atribut privat

Setter
Metode untuk mengubah nilai atribut privat

Property
Polymorphism dalam Python
Polymorphism memungkinkan objek dari kelas berbeda untuk merespons metode dengan nama yang
sama secara berbeda. Ini memberikan fleksibilitas dalam penggunaan objek.

Overriding Duck Typing Operator Overloading

Subclass mendefinisikan Python tidak memerlukan Mendefinisikan ulang


ulang metode dari tipe objek yang eksplisit. Jika operator untuk kelas kustom.
superclass. Metode yang objek memiliki metode yang Misalnya, __add__() untuk
sama memiliki implementasi diperlukan, itu bisa operator +.
berbeda. digunakan.
Abstraction dalam Python
Abstraction adalah konsep menyembunyikan kompleksitas implementasi dan
hanya menampilkan fungsionalitas yang diperlukan. Python menggunakan abstract
base classes untuk abstraksi.

1 Abstract Base Class


Gunakan modul abc untuk membuat abstract base class.

2 @abstractmethod
Dekorator untuk menandai metode abstrak yang harus diimplementasikan.

3 Implementasi
Kelas turunan harus mengimplementasikan semua metode abstrak.

4 Keuntungan
Memastikan konsistensi implementasi di seluruh kelas turunan.
Contoh Kode: Abstraction
Berikut adalah contoh kode yang menunjukkan penggunaan abstraction dalam
Python. Kita akan membuat abstract base class 'Kendaraan' dengan metode
abstrak 'bergerak'.

1 Import ABC
from abc import ABC, abstractmethod

2 Abstract Class
class Kendaraan(ABC):

3 Abstract Method
@abstractmethod def bergerak(self): pass

4 Implementasi
class Mobil(Kendaraan): def bergerak(self): print("Mobil bergerak")
Magic Methods dalam Python
Magic methods, juga dikenal sebagai dunder methods, adalah metode khusus dengan
nama yang diawali dan diakhiri dengan dua underscore. Mereka memungkinkan
customisasi perilaku objek.

__init__()
Konstruktor untuk inisialisasi objek

__str__()
Representasi string dari objek

__eq__()
Membandingkan kesetaraan objek

__lt__()
Property Decorators dalam Python
Property decorators memungkinkan penggunaan metode sebagai atribut. Ini memberikan kontrol lebih
besar atas akses dan modifikasi atribut objek.

@property
Mengubah metode menjadi atribut yang hanya-baca.

@nama.setter
Mendefinisikan metode untuk mengatur nilai atribut.

@nama.deleter
Mendefinisikan metode untuk menghapus atribut.
Static Methods dan Class Methods
Python menyediakan dekorator untuk membuat metode statis dan metode kelas. Metode ini tidak
memerlukan instance objek untuk dipanggil.

Static Method Class Method Penggunaan

Menggunakan Menggunakan @classmethod. Metode statis dan kelas dapat


@staticmethod. Tidak Menerima cls sebagai dipanggil pada kelas
menerima self atau cls. parameter pertama. Dapat langsung tanpa membuat
Berguna untuk fungsi yang mengakses dan memodifikasi instance.
terkait dengan kelas tapi atribut kelas.
tidak mengakses atribut
instance atau kelas.
Multiple Inheritance dalam Python
Python mendukung multiple inheritance, di mana sebuah kelas dapat mewarisi dari
beberapa kelas induk. Ini memberikan fleksibilitas dalam desain kelas.

1 Sintaks
class Anak(Induk1, Induk2, Induk3): # definisi kelas

2 Method Resolution Order (MRO)


Python menggunakan algoritma C3 linearization untuk menentukan urutan
pewarisan.

3 super()
Gunakan super() dengan hati-hati dalam multiple inheritance.

4 Mixin
Kelas kecil yang menyediakan metode tambahan untuk digunakan oleh kelas lain.
Composition vs Inheritance
Composition dan inheritance adalah dua cara untuk menstruktur kode dalam
OOP. Masing-masing memiliki kelebihan dan digunakan dalam situasi yang
berbeda.

Inheritance
Menekankan hubungan "is-a". Mobil adalah kendaraan.

Composition
Menekankan hubungan "has-a". Mobil memiliki mesin.

Fleksibilitas
Composition sering lebih fleksibel dan mudah diubah.

Penggunaan
Pilih berdasarkan hubungan antar objek dan kebutuhan desain.
Best Practices dalam OOP Python
Mengikuti best practices dalam OOP Python dapat meningkatkan kualitas dan
maintainability kode. Berikut beberapa praktik terbaik yang perlu diperhatikan.

1 SOLID Principles
Ikuti prinsip-prinsip SOLID untuk desain yang lebih baik.

2 DRY (Don't Repeat Yourself)


Hindari duplikasi kode dengan menggunakan inheritance dan composition.

3 Naming Conventions
Gunakan PascalCase untuk nama kelas dan snake_case untuk metode dan atribut.

4 Dokumentasi
Gunakan docstrings untuk mendokumentasikan kelas dan metode.
Kesimpulan: OOP dalam Python
OOP dalam Python menyediakan cara powerful untuk mengorganisir dan menstruktur
kode. Dengan memahami konsep-konsep dasar dan lanjutan, programmer dapat
membuat aplikasi yang lebih modular dan maintainable.

Modularitas
OOP memungkinkan pembuatan kode yang modular dan dapat digunakan kembali.

Hierarki
Inheritance dan polymorphism menciptakan struktur kode yang terorganisir.

Enkapsulasi
Menyembunyikan kompleksitas dan melindungi integritas data.

Anda mungkin juga menyukai