0% menganggap dokumen ini bermanfaat (0 suara)
6 tayangan17 halaman

OOP Python: Konsep dan Implementasi

Dokumen ini membahas konsep dasar Pemrograman Berorientasi Objek (OOP) dalam Python, termasuk class, object, inheritance, encapsulation, dan hubungan antar class. Terdapat contoh implementasi dan latihan untuk menerapkan prinsip-prinsip OOP dalam pembuatan program sederhana. Tugas akhir meminta pembuatan struktur class yang melibatkan mahasiswa, dosen, dan kelas dengan penerapan relasi aggregation dan encapsulation.

Diunggah oleh

komarudin.s
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)
6 tayangan17 halaman

OOP Python: Konsep dan Implementasi

Dokumen ini membahas konsep dasar Pemrograman Berorientasi Objek (OOP) dalam Python, termasuk class, object, inheritance, encapsulation, dan hubungan antar class. Terdapat contoh implementasi dan latihan untuk menerapkan prinsip-prinsip OOP dalam pembuatan program sederhana. Tugas akhir meminta pembuatan struktur class yang melibatkan mahasiswa, dosen, dan kelas dengan penerapan relasi aggregation dan encapsulation.

Diunggah oleh

komarudin.s
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

Topik 07:

Pemrograman OOP Python


Makul : Algoritma & Pemrograman
Pengampu : Khamarudin Syarif
Tujuan

• Memahami konsep dasar OOP seperti class, object,


inheritance, encapsulation, dan relationship antar class.
• Menerapkan OOP dalam Python melalui pembuatan class,
object, method, serta penggunaan instance variable dan
pewarisan (inheritance).
• Mengembangkan program Python sederhana berbasis OOP
untuk menyelesaikan masalah secara terstruktur dan
modular.
Class
Class adalah cetak biru (blueprint) untuk Contoh:
membuat objek yang mendefinisikan atribut
class Mahasiswa:
(data) dan metode (fungsi) yang dimiliki objek
tersebut. def __init__(self, nama, nim):
[Link] = nama
Sintaks: [Link] = nim
class NamaClass:
# Atribut dan metode
Object
Objek adalah instansi dari sebuah class, yaitu representasi konkret dari class tersebut.

Contoh:
mhs = Mahasiswa("Budi", "12345") # Objek mhs adalah instansi dari class Mahasiswa
print([Link]) # Output: Budi
Relationship (Antar Class)
Hubungan antar class menjelaskan bagaimana
class-class berinteraksi. Jenis hubungan meliputi
dependence, aggregation, composition, dan
inheritance.
Dependence
Dependence adalah hubungan di mana satu class menggunakan class lain sebagai bagian dari
operasinya, tetapi tidak memiliki kepemilikan.

Contoh: Sebuah class Kalkulator menggunakan class Matematika untuk melakukan operasi.
class Matematika:
def tambah(self, a, b):
return a + b

class Kalkulator:
def hitung(self, x, y):
mat = Matematika()
return [Link](x, y)
Aggregation
Aggregation adalah hubungan "has-a" di mana satu class memiliki class lain, tetapi class yang dimiliki dapat berdiri
sendiri.
Contoh: Class Kelas memiliki daftar objek Mahasiswa, tetapi Mahasiswa tetap ada meskipun Kelas dihapus.
class Mahasiswa:
def __init__(self, nama):
[Link] = nama

class Kelas:
def __init__(self):
self.daftar_mahasiswa = []

def tambah_mahasiswa(self, mhs):


self.daftar_mahasiswa.append(mhs)
Inheritance
Inheritance adalah hubungan "is-a" di Contoh:

mana class turunan (subclass) mewarisi class Kendaraan:

atribut dan metode dari class induk def __init__(self, merk):

(superclass). [Link] = merk

def info(self):

Sintaks: return f"Merk: {[Link]}"

class SubClass(SuperClass):
class Mobil(Kendaraan):
# Atribut dan metode tambahan def __init__(self, merk, model):

super().__init__(merk)

[Link] = model

def info(self):

return f"{super().info()}, Model: {[Link]}"


Encapsulation
Encapsulation adalah mekanisme untuk Contoh:
menyembunyikan detail implementasi dengan
class BankAccount:
membatasi akses ke atribut atau metode
menggunakan pengubah akses (conventionally def __init__(self, pemilik, saldo):
dengan _ atau __). [Link] = pemilik
Atribut Privat: Menggunakan __ di awal nama atribut. self.__saldo = saldo # Atribut privat

def cek_saldo(self):
return self.__saldo

def deposit(self, jumlah):


if jumlah > 0:
self.__saldo += jumlah
Instantiation & Instance Variable
Instantiation: Proses membuat objek dari class menggunakan konstruktor.
Instance Variable: Atribut yang unik untuk setiap objek (didefinisikan dalam __init__).

Contoh:
class Mahasiswa:
def __init__(self, nama, nim):
[Link] = nama # Instance variable
[Link] = nim # Instance variable

mhs1 = Mahasiswa("Budi", "12345") # Instantiation


mhs2 = Mahasiswa("Ani", "67890") # Instantiation
Contoh:

class Mahasiswa:

Method jumlah_mahasiswa = 0 # Class variable

def __init__(self, nama):


Method adalah fungsi yang didefinisikan dalam
class untuk menentukan perilaku objek. [Link] = nama

Mahasiswa.jumlah_mahasiswa += 1

Jenis Method: def info(self): # Instance method

• Instance Method: Beroperasi pada instance return f"Nama: {[Link]}"


(menggunakan self).
• Class Method: Beroperasi pada class itu @classmethod

sendiri (menggunakan @classmethod dan cls). def get_jumlah_mahasiswa(cls): # Class method

return cls.jumlah_mahasiswa
• Static Method: Tidak bergantung pada
instance atau class (menggunakan
@staticmethod). @staticmethod

def is_valid_nama(nama): # Static method

return len(nama) > 0


Latihan Latihan 2: Inheritance
class Kendaraan:
def __init__(self, merk):
Latihan 1: Membuat Class dan Object
[Link] = merk
class Mahasiswa:
def __init__(self, nama, nim):
def jalan(self):
[Link] = nama
print(f"{[Link]} sedang berjalan")
[Link] = nim

class Mobil(Kendaraan):
def sapa(self): def klakson(self):
print(f"Halo, nama saya {[Link]} dengan NIM print("Klakson mobil: Beep Beep!")
{[Link]}")

m = Mobil("Toyota")
mhs1 = Mahasiswa("Budi", "12345") [Link]()
[Link]() [Link]()
Latihan 4: Aggregation dan Dependensi

class Buku:

Latihan
def __init__(self, judul):

[Link] = judul

Latihan 3: Encapsulation
class Perpustakaan:
class Bank:
def __init__(self):
def __init__(self):
self.daftar_buku = []
self.__saldo = 0

def tambah_buku(self, buku):


def set_saldo(self, nominal):
self.daftar_buku.append(buku)
self.__saldo += nominal

def tampilkan_buku(self):
def get_saldo(self):
for buku in self.daftar_buku:
return self.__saldo
print([Link])

b = Bank()
b1 = Buku("Python Dasar")
b.set_saldo(1000)
perpus = Perpustakaan()
print(b.get_saldo())
perpus.tambah_buku(b1)

perpus.tampilkan_buku()
Tugas dan Praktek

Pemrograman OOP Python


Tugas 1
• Buatlah struktur class berikut:
• Mahasiswa (nama, nim, jurusan)
• Dosen (nama, nip, matkul)
• Kelas yang memiliki banyak Mahasiswa dan satu Dosen
• Implementasikan relasi aggregation dan gunakan method
dalam masing-masing class untuk menampilkan informasi.
• Gunakan prinsip encapsulation dan inheritance bila
diperlukan.

Keluaran Program:
• Daftar mahasiswa dalam kelas tertentu
• Data dosen pengampu
• Informasi kelas secara keseluruhan
Tugas 2
• Buat class Mahasiswa dengan atribut nama, nim, __ipk (privat),
dan daftar nilai (list).
• Tambahkan method untuk menghitung IPK (rata-rata nilai) dan
menyimpannya di __ipk.
• Buat class Kelas yang mengelola daftar Mahasiswa (aggregation).
• Tambahkan method di Kelas untuk:
• Menambah mahasiswa.
• Menampilkan daftar mahasiswa dengan IPK di atas 3.0.
• Menghitung rata-rata IPK kelas.
• Buat class turunan MahasiswaS2 yang mewarisi Mahasiswa dan
menambahkan atribut tesis.
• Uji program dengan membuat beberapa objek Mahasiswa dan
MahasiswaS2, menambahkannya ke Kelas, dan menampilkan
daftar mahasiswa dengan IPK di atas 3.0.
Terima Kasih

Anda mungkin juga menyukai