DDK RPL - BAB 7 Pemrograman Berorientasi Objek (OOP)
BAB 7
Pemrograman Berorientasi Objek (OOP)
Kompetensi Dasar
Pada akhir Fase E, peserta didik mampu:
Melakukan pemrograman berorientasi objek dengan menerapkan class, object, method, dan package.
Membedakan berbagai macam access modifier.
Menunjukkan enkapsulasi, interface, pewarisan (inheritance), dan polimorfisme (polymorphism) pada proyek pengembangan perangkat lunak sederhana.
Pendahuluan
Setelah Anda menguasai pemrograman terstruktur, saatnya Anda melangkah ke paradigma pemrograman yang lebih kuat dan fleksibel: Pemrograman Berorientasi Objek (OOP). OOP adalah cara berpikir dalam membuat program dengan memodelkan dunia nyata menjadi objek-objek yang saling berinteraksi. Dengan OOP, Anda akan mampu membuat kode yang lebih terorganisir, dapat digunakan kembali (reusable), dan mudah dikelola. Bab ini akan memandu Anda memahami konsep-konsep kunci OOP dan cara menerapkannya dalam proyek nyata.
A. Konsep Dasar OOP: Class, Object, Method, dan Package
1. Class
Class adalah cetak biru (blueprint) atau template untuk membuat objek. Class mendefinisikan sifat (properti atau atribut) dan perilaku (method atau fungsi) yang dimiliki oleh objek. Misalnya, Class Mobil bisa memiliki atribut warna, merek, kecepatan dan method nyalakanMesin(), maju(), rem().
2. Object
Object adalah hasil instansiasi (pembentukan) dari sebuah class. Setiap objek memiliki atribut dan method yang didefinisikan oleh class-nya. Contohnya, dari Class Mobil, Anda dapat membuat dua objek: mobilA dengan warna = "merah" dan mobilB dengan warna = "biru".
3. Method
Method adalah blok kode di dalam sebuah class yang mendefinisikan perilaku dari objek. Method dapat menerima parameter dan mengembalikan nilai. Dalam Class Mobil, method nyalakanMesin() akan melakukan serangkaian instruksi untuk mengubah status mesin mobil menjadi hidup.
4. Package
Package adalah cara untuk mengorganisasi class dan interface yang terkait menjadi satu grup. Package berfungsi untuk menghindari konflik penamaan dan mempermudah pengelolaan kode. Anda dapat membayangkan package sebagai folder yang berisi file-file (class) yang saling berhubungan.
B. Empat Pilar OOP
Empat pilar ini adalah fondasi utama yang membedakan OOP dengan paradigma pemrograman lainnya.
1. Enkapsulasi (Encapsulation)
Enkapsulasi adalah prinsip menyatukan data (atribut) dan method yang mengelola data tersebut dalam satu unit, yaitu class. Enkapsulasi juga berkaitan dengan penyembunyian data (data hiding), di mana atribut sebuah objek hanya bisa diakses atau diubah melalui method yang disediakan di dalam class itu sendiri. Tujuannya adalah untuk melindungi data dari akses yang tidak sah.
2. Pewarisan (Inheritance)
Pewarisan memungkinkan sebuah class baru (subclass atau child class) untuk mewarisi sifat dan perilaku dari class yang sudah ada (superclass atau parent class). Ini memungkinkan Anda menggunakan kembali kode yang sudah ada, menghindari duplikasi, dan membangun hierarki class. Misalnya, Class MobilListrik dapat mewarisi atribut dan method dari Class Mobil dan menambahkan atributnya sendiri, seperti kapasitasBaterai.
3. Polimorfisme (Polymorphism)
Polimorfisme berarti "banyak bentuk". Ini adalah kemampuan objek untuk merespons method yang sama dengan cara yang berbeda-beda, tergantung pada class objek tersebut. Misalnya, method bunyikanSuara() bisa memiliki perilaku yang berbeda untuk Class Kucing, Class Anjing, atau Class Ayam.
4. Interface
Interface adalah sebuah kerangka atau kontrak yang mendefinisikan sekumpulan method yang harus diimplementasikan oleh sebuah class. Interface tidak memiliki implementasi (isi) dari method-method tersebut, hanya deklarasinya. Interface memastikan bahwa setiap class yang mengimplementasikannya akan memiliki method-method yang sama, sehingga mereka dapat diproses dengan cara yang sama.
C. Access Modifier
Access modifier adalah kata kunci yang digunakan untuk mengatur tingkat akses terhadap class, method, atau atribut. Tujuannya adalah untuk mengimplementasikan enkapsulasi.
public: Anggota dapat diakses dari mana saja.
private: Anggota hanya dapat diakses di dalam class itu sendiri.
protected: Anggota dapat diakses di dalam class itu sendiri dan oleh class turunannya (subclass).
default (tanpa modifier): Anggota dapat diakses di dalam package yang sama.
D. Implementasi dalam Proyek Sederhana
Anda dapat menerapkan konsep-konsep di atas untuk membangun sebuah aplikasi manajemen sederhana.
Class & Objek: Anda bisa membuat Class Pegawai dengan atribut nama, posisi, gaji, dan method tambahGaji(). Dari class ini, Anda membuat objek-objek pegawai1, pegawai2, dan seterusnya.
Pewarisan: Buat Class Manajer yang mewarisi Class Pegawai. Class Manajer akan memiliki atribut tambahan seperti departemen dan method baru seperti promosiPegawai().
Enkapsulasi: Pastikan atribut gaji pada Class Pegawai bersifat private, sehingga hanya bisa diubah melalui method tambahGaji() untuk menghindari perubahan data yang tidak sah.
Polimorfisme: Jika ada Class PegawaiKontrak yang juga mewarisi Class Pegawai, method tambahGaji() dapat diimplementasikan secara berbeda (misalnya, gajinya tetap) dari Class Pegawai biasa.
Zona Aktivitas
A. Uji Pengetahuan (Nilai Pengetahuan I)
Jawablah pertanyaan-pertanyaan berikut dengan benar.
Jelaskan perbedaan mendasar antara class dan objek.
Mengapa enkapsulasi dianggap penting dalam pemrograman berorientasi objek?
Berikan contoh sederhana penerapan pewarisan dalam kehidupan nyata.
Jelaskan apa yang dimaksud dengan polimorfisme dan bagaimana konsep ini bisa membuat kode lebih fleksibel.
Apa perbedaan antara access modifier public dan private?
B. Praktikum (Nilai Praktik 1)
Rancang sebuah Class Hewan menggunakan bahasa pemrograman pilihan Anda. Class ini harus memiliki:
Atribut: nama, jenis, dan suara (semua dengan private access modifier).
Method: bunyikanSuara() yang mencetak suara hewan.
Method setter dan getter untuk mengakses dan mengubah atribut tersebut.
C. Eksperimen (Nilai Proyek 1)
Buatlah kelompok dengan maksimal tiga siswa. Rancanglah sebuah proyek aplikasi Manajemen Perpustakaan Sederhana yang menerapkan:
Class Buku dengan atribut judul, pengarang, dan statusKetersediaan.
Class Anggota dengan atribut nama dan idAnggota.
Class Pustakawan yang mewarisi Class Anggota dan memiliki method tambahan untuk mengelola buku.
Terapkan konsep enkapsulasi pada atribut-atribut penting.
Rangkuman
OOP adalah paradigma pemrograman yang berpusat pada objek, yang dibuat dari class.
Class adalah blueprint, sedangkan objek adalah instansinya yang memiliki atribut dan method.
Package digunakan untuk mengorganisasi class-class terkait.
Empat pilar OOP adalah Enkapsulasi, Pewarisan, Polimorfisme, dan Interface.
Access modifier (public, private, protected) mengatur tingkat akses data untuk mengimplementasikan enkapsulasi.
Ulangan Akhir Bab 11
A. Pilihlah salah satu jawaban yang tepat.
Cetakan biru (blueprint) untuk membuat objek dalam OOP disebut...
a. Objek
b. Method
c. Class
d. Package
e. InheritanceManakah dari berikut ini yang merupakan contoh dari objek?
a. Class Mobil
b. Method maju()
c. Sebuah mobil berwarna merah
d. Atribut warna
e. Package kendaraanPrinsip menyatukan data dan method dalam satu kesatuan serta menyembunyikan data dari akses luar disebut...
a. Polimorfisme
b. Pewarisan
c. Enkapsulasi
d. Interface
e. InstansiasiKemampuan sebuah class baru untuk mewarisi sifat dan perilaku dari class yang sudah ada disebut...
a. Pewarisan
b. Polimorfisme
c. Enkapsulasi
d. Method
e. ClassAccess modifier yang hanya mengizinkan akses dari dalam class itu sendiri adalah...
a. public
b. protected
c. private
d. default
e. staticJika sebuah Class Kucing dan Class Anjing memiliki method bunyikanSuara() dengan implementasi yang berbeda, ini adalah contoh dari...
a. Pewarisan
b. Enkapsulasi
c. Polimorfisme
d. Class
e. InterfaceTujuan utama dari penggunaan package adalah...
a. Mengurangi jumlah kode yang ditulis.
b. Mengorganisasi class-class yang terkait.
c. Menyembunyikan atribut dari akses luar.
d. Mewarisi method dari class lain.
e. Membuat objek lebih cepat.Sebuah kontrak yang mendefinisikan method-method tanpa implementasinya disebut...
a. Class
b. Interface
c. Object
d. Package
e. MethodManakah dari berikut ini yang merupakan contoh penerapan method?
a. nama_pegawai = "Budi"
b. Class Karyawan
c. pegawai1 = new Karyawan()
d. public void hitungGaji()
e. package perusahaanJika Class MobilListrik mewarisi Class Mobil, maka Class MobilListrik disebut...
a. Superclass
b. Parent class
c. Subclass
d. Package
e. Atribut
B. Jawablah pertanyaan-pertanyaan berikut dengan benar.
Jelaskan mengapa enkapsulasi dan access modifier sangat berkaitan dalam OOP.
Berikan contoh penerapan polimorfisme pada gim sederhana (misalnya, Class KarakterPemain dan Class Musuh memiliki method serang() yang berbeda).
Jelaskan manfaat utama dari menggunakan pewarisan dalam pengembangan perangkat lunak.
Apa yang dimaksud dengan interface dan mengapa hal itu penting dalam membuat program yang terstruktur?
Dalam pengembangan sebuah aplikasi kasir, berikan contoh penerapan class, object, method, dan package yang relevan.
0 komentar: