Python OOP

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

KonsepDeskripsi
ClassBlueprint untuk membuat objek yang mendefinisikan atribut dan metode yang dimiliki oleh semua instance
ObjectInstance dari sebuah class yang memiliki state dan behavior
InheritanceKemampuan class untuk mewarisi atribut dan metode dari class lain
EncapsulationMenyembunyikan detail implementasi dan membatasi akses langsung ke atribut class
PolymorphismKemampuan objek yang berbeda untuk merespons metode dengan nama yang sama
AbstractionMenyederhanakan 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

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 LibraryItem yang menjadi dasar untuk semua item di perpustakaan
  • Implementasikan minimal 2 subclass (contoh: Book dan Magazine) yang mewarisi dari LibraryItem
  • Setiap subclass harus mengimplementasikan minimal satu method abstract dari parent class
  • Buatlah class Library untuk 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

AspekBobot
Penggunaan Abstract Class dan Inheritance30%
Implementasi Encapsulation25%
Penerapan Polymorphism20%
Fungsionalitas Program15%
Dokumentasi Kode10%

Dokumentasi yang Diperlukan di Readme

  • Penjelasan singkat tentang fungsi program dan fitur-fiturnya
  • Screenshot hasil running program
  • Diagram class (opsional, nilai tambah)

Submit Tugas

Submit Tugas Praktikum 5