Praktikum Python OOP
Pemrograman Berorientasi Objek dengan Python
Tujuan Praktikum
Setelah menyelesaikan praktikum ini, Kalian diharapkan mampu:
- Memahami konsep dasar Object-Oriented Programming (OOP)
- Mengimplementasikan Class dan Object dalam Python
- Menerapkan Atribut dan Metode dalam Class
- Menggunakan Constructor dan Self dalam Python
- Implementasi Inheritance (Pewarisan) antar Class
- Menerapkan Encapsulation dan Access Modifiers
- Memahami Polymorphism dan Method Overriding
- Implementasi Abstract Class dan Interface
Pengenalan Python OOP
Apa itu OOP?
Object-Oriented Programming (OOP) adalah paradigma pemrograman yang menggunakan konsep "objek" yang memiliki atribut dan metode. Python sepenuhnya mendukung OOP, dan memungkinkan kita untuk mendefinisikan class, membuat objek, dan menerapkan konsep inheritance, encapsulation, dan polymorphism.
Konsep Utama OOP
| Konsep | Deskripsi |
|---|---|
| Class | Blueprint untuk membuat objek yang mendefinisikan atribut dan metode yang dimiliki oleh semua instance |
| Object | Instance dari sebuah class yang memiliki state dan behavior |
| Inheritance | Kemampuan class untuk mewarisi atribut dan metode dari class lain |
| Encapsulation | Menyembunyikan detail implementasi dan membatasi akses langsung ke atribut class |
| Polymorphism | Kemampuan objek yang berbeda untuk merespons metode dengan nama yang sama |
| Abstraction | Menyederhanakan kompleksitas dengan menyembunyikan detail yang tidak perlu |
Tips Memahami OOP
Bayangkan class seperti cetakan kue dan objek adalah kue yang dihasilkan. Setiap kue memiliki bentuk yang sama (metode) tapi bisa memiliki isian berbeda (atribut). Inheritance seperti membuat cetakan kue baru berdasarkan cetakan yang sudah ada, dengan tambahan fitur baru.
Alat dan Bahan
Untuk mengikuti praktikum ini, Kalian memerlukan:
- Python 3.x: Pastikan Python sudah terpasang
- Code Editor: Visual Studio Code, PyCharm, atau editor teks lainnya
- Terminal: Untuk menjalankan program Python
Rekomendasi
Kami menyarankan menggunakan Visual Studio Code dengan ekstensi Python. Pastikan untuk menggunakan virtual environment jika ingin menginstal package tambahan.
Materi Praktikum
Pengenalan OOP
Konsep dasar dan filosofi OOP
Class dan Object
Membuat class, object, atribut, dan method
Inheritance
Pewarisan class dan method overriding
Encapsulation
Access modifiers dan property decorators
Polymorphism
Method overriding dan duck typing
Abstract Class
Abstract base classes dan interface
Format Pengumpulan
Direktori GitHub
- Pakai repository yang sudah ada dengan format:
pemrograman_python_itera_[NIM] - Contoh:
pemrograman_python_itera_119140001
Struktur Folder
- Buat folder per pertemuan dengan format:
[NAMA]_[NIM]_pertemuan5 - Contoh:
johndoe_119140001_pertemuan5 - Setiap folder berisi semua file praktikum dan tugas untuk pertemuan tersebut
Deadline Pengumpulan
- Deadline: Rabu, 7 Mei 2025, pukul 23:59 WIB
- Keterlambatan pengumpulan akan dikenakan pengurangan nilai sebesar 10% per hari
Tugas Praktikum
Sistem Manajemen Perpustakaan Sederhana
Buatlah sistem manajemen perpustakaan sederhana menggunakan konsep OOP Python yang telah dipelajari. Fokus pada implementasi konsep class, inheritance, encapsulation, dan polymorphism.
Persyaratan
- Buatlah abstract class
LibraryItemyang menjadi dasar untuk semua item di perpustakaan - Implementasikan minimal 2 subclass (contoh:
BookdanMagazine) yang mewarisi dariLibraryItem - Setiap subclass harus mengimplementasikan minimal satu method abstract dari parent class
- Buatlah class
Libraryuntuk menyimpan dan mengelola koleksi item perpustakaan - Terapkan encapsulation menggunakan access modifiers (protected/private) untuk melindungi data penting
- Gunakan property decorator untuk minimal satu atribut di salah satu class
- Sistem minimal harus dapat:
- Menambahkan item ke perpustakaan
- Menampilkan daftar item yang tersedia
- Mencari item berdasarkan judul atau id
Tips Pengerjaan
Buatlah struktur program yang sederhana namun menerapkan konsep OOP dengan benar. Pastikan untuk membuat dokumentasi berupa komentar di setiap class dan method penting untuk menjelaskan fungsinya.
Kriteria Penilaian
| Aspek | Bobot |
|---|---|
| Penggunaan Abstract Class dan Inheritance | 30% |
| Implementasi Encapsulation | 25% |
| Penerapan Polymorphism | 20% |
| Fungsionalitas Program | 15% |
| Dokumentasi Kode | 10% |
Dokumentasi yang Diperlukan di Readme
- Penjelasan singkat tentang fungsi program dan fitur-fiturnya
- Screenshot hasil running program
- Diagram class (opsional, nilai tambah)
