Materi Pemrograman berorientasi Objek
Pemrograman Berorientasi Objek
Membangun Fondasi Sistem Inventaris Sekolah dengan Konsep PBO
Pengantar Pemrograman Berorientasi Objek (PBO)
PBO adalah paradigma pemrograman yang berpusat pada ‘objek’. Mengorganisir kode dengan data dan fungsi terbungkus bersama.
Manfaat Kunci PBO: Meningkatkan modularitas, reusabilitas kode, dan kemudahan pemeliharaan proyek perangkat lunak kompleks.
Blueprint PBO
Kelas (Class)
Cetak biru atau templat untuk membuat objek.
Objek (Object)
Instans nyata dari sebuah kelas, entitas dengan atribut dan perilaku.
“PBO membantu kita memodelkan dunia nyata ke dalam kode, menjadikan pengembangan lebih intuitif dan terstruktur.”
Memahami Kelas dan Objek
Kelas (Class)
Cetakan atau blueprint untuk membuat objek, mendefinisikan struktur dan perilaku.
- Struktur Data – Mendefinisikan data yang akan disimpan
- Fungsi/Metode – Mendefinisikan perilaku objek
- Template – Pola untuk membuat banyak objek serupa
Objek (Object)
Instansiasi dari sebuah kelas, memiliki nilai spesifik untuk atributnya.
- Entitas Nyata – Representasi konkret dalam program
- Nilai Unik – Setiap objek memiliki state sendiri
- Interaktif – Dapat berinteraksi dengan objek lain
Atribut (Properties)
Karakteristik atau data yang dimiliki oleh suatu objek.
- Warna – Properti visual objek
- Ukuran – Dimensi fisik atau kapasitas
- Nama – Identifikasi unik objek
- Harga – Nilai ekonomi objek
Metode (Behaviors)
Aksi atau fungsi yang dapat dilakukan oleh objek.
- berjalan() – Perubahan posisi objek
- makan() – Konsumsi sumber daya
- bernyanyi() – Produksi suara/keluaran
Studi Kasus: Representasi Dunia Nyata ke Objek
Memodelkan entitas fisik atau konseptual menjadi kelas dan objek dalam program.
Objek Mobil
Atribut: warna, merek
Metode: menyetir()
Objek Produk
Atribut: nama, harga
Metode: tambahStok()
Objek Siswa
Atribut: nama, kelas
Metode: belajar()
Contoh Kode: Kelas ‘BarangInventaris’
Berikut adalah implementasi kelas sederhana untuk sistem inventaris sekolah:
public class BarangInventaris {
private String kodeBarang;
private String namaBarang;
private int jumlah;
private String kondisi; // Baik, Rusak, Perbaikan
// Constructor
public BarangInventaris(String kode, String nama, int qty) {
this.kodeBarang = kode;
this.namaBarang = nama;
this.jumlah = qty;
this.kondisi = "Baik";
}
// Methods
public void tambahJumlah(int qty) {
if (qty > 0) {
this.jumlah += qty;
System.out.println("Jumlah barang berhasil ditambah: " + qty);
}
}
public void updateKondisi(String newKondisi) {
this.kondisi = newKondisi;
System.out.println("Kondisi barang diperbarui: " + newKondisi);
}
public String getInfoBarang() {
return "Kode: " + kodeBarang +
", Nama: " + namaBarang +
", Jumlah: " + jumlah +
", Kondisi: " + kondisi;
}
}
Instansiasi Objek BarangInventaris
// Membuat objek dari kelas BarangInventaris
BarangInventaris buku = new BarangInventaris("BK001", "Buku PBO", 50);
BarangInventaris laptop = new BarangInventaris("LP002", "Laptop Seri X", 15);
BarangInventaris proyektor = new BarangInventaris("PJ003", "Proyektor Model Y", 8);
// Memanggil metode pada objek
buku.tambahJumlah(10);
laptop.updateKondisi("Baik");
// Menampilkan informasi barang
System.out.println(buku.getInfoBarang());
Konsep Pewarisan (Inheritance)
Pewarisan adalah konsep fundamental dalam PBO yang memungkinkan kelas (child/subclass) mewarisi atribut & metode dari kelas lain (parent/superclass).
Manfaat Pewarisan: Reusabilitas kode, kemudahan pemeliharaan, modularitas, dan ekstensibilitas.
Contoh Pewarisan: Hewan dan Ikan
// Kelas Induk (Parent Class)
class Hewan {
String nama;
String habitat;
void bergerak() {
System.out.println("Hewan bergerak...");
}
}
// Kelas Anak (Child Class) - mewarisi dari Hewan
class Ikan extends Hewan {
String jenisSirip;
void berenang() {
System.out.println("Ikan berenang dengan sirip: " + jenisSirip);
}
// Override metode dari kelas induk
@Override
void bergerak() {
System.out.println("Ikan berenang di air.");
}
}
Implementasi Pewarisan
// Membuat objek dari kelas turunan
Ikan ikanMas = new Ikan();
ikanMas.nama = "Ikan Mas";
ikanMas.habitat = "Air Tawar";
ikanMas.jenisSirip = "Sirip Ekor Ganda";
// Memanggil metode yang diwarisi dan metode baru
ikanMas.bergerak(); // Memanggil metode yang di-override
ikanMas.berenang(); // Memanggil metode spesifik Ikan
Demo Interaktif: Objek BarangInventaris
Buku ‘PBO Lanjut’
Status Inventaris: Stok Awal: 50, Harga: Rp 150.000
Aksi: Panggil kurangiStok(5)
Stok Akhir: 45
Laptop ‘Seri X’
Status Inventaris: Stok Awal: 15, Harga: Rp 12.000.000
Aksi: Panggil tambahStok(3)
Stok Akhir: 18
Proyektor ‘Model Y’
Status Inventaris: Stok Awal: 8, Harga: Rp 7.500.000
Aksi: Panggil kurangiStok(2)
Stok Akhir: 6
Konsep PBO yang Terlihat: Instansiasi Objek, Pemanggilan Metode, Perubahan State Internal, Enkapsulasi Data
Kuis Singkat: Konsep Dasar PBO
Uji pemahaman Anda tentang konsep dasar Pemrograman Berorientasi Objek:
1. Konsep PBO yang memungkinkan kelas mewarisi properti dari kelas lain adalah…
Jawaban: D. Pewarisan
Pewarisan (Inheritance) adalah konsep yang memungkinkan kelas mewarisi atribut dan metode dari kelas lain, mengurangi duplikasi kode.
2. Blueprint untuk membuat objek PBO disebut…
Jawaban: C. Kelas
Kelas (Class) adalah blueprint atau cetakan untuk membuat objek, mendefinisikan struktur dan perilaku objek.
3. Metode khusus untuk inisialisasi objek saat dibuat adalah…
Jawaban: B. Konstruktor
Konstruktor (Constructor) adalah metode khusus yang dipanggil otomatis saat objek dibuat dengan keyword new.
Praktik Terbaik Desain Kelas
Prinsip SOLID
Single Responsibility
Satu kelas, satu tanggung jawab
Open/Closed
Terbuka untuk ekstensi, tertutup untuk modifikasi
Liskov Substitution
Subkelas bisa menggantikan superkelas
Interface Segregation
Klien tak dipaksa pakai antarmuka tak relevan
Dependency Inversion
Bergantung pada abstraksi, bukan detail
Naming Convention yang Baik
- Kelas: Gunakan CamelCase dan kata benda (contoh: BarangInventaris)
- Metode: Gunakan camelCase dan kata kerja (contoh: tambahJumlah)
- Variabel: Gunakan camelCase yang deskriptif (contoh: jumlahStok)
- Konstanta: Gunakan SCREAMING_SNAKE_CASE (contoh: MAX_STOK)
Enkapsulasi yang Baik
Mengelompokkan data (atribut) dan perilaku (metode) dalam satu unit, sambil menyembunyikan detail implementasi internal.
Enkapsulasi yang baik meningkatkan fleksibilitas, mempermudah pemeliharaan, mendorong reusabilitas kode, dan meningkatkan modularitas sistem.
Langkah Selanjutnya dalam Pembelajaran PBO
- Latih Implementasi Prinsip SOLID dalam proyek nyata
- Eksplorasi Pola Desain (Design Patterns) seperti Factory, Singleton, Observer
- Pelajari PBO Tingkat Lanjut: Generic, Collections, Multithreading
- Terapkan PBO dalam Proyek Nyata: Sistem inventaris, aplikasi toko online, manajemen perpustakaan
Pentingnya Kelas (Class): Blueprint untuk objek, mendefinisikan struktur dan perilaku. Fondasi modularitas kode.
Pentingnya Pewarisan (Inheritance): Menghemat waktu dengan penggunaan kembali kode, membentuk hierarki objek yang logis.
0 Komentar