PBO Modul3
PBO Modul3
MODUL 1
Oleh:
NIM : 2211110023
KELAS : S1-SD03A
S1 SAINS DATA
2024
I. DASAR TEORI
1. Abstraksi
2. Ekapsulasi
a. Penyembunyian Data
b. Modularitas
3. Pewarisan (Inheritance)
Pewarisan adalah proses di mana kelas baru (disebut subclass atau kelas
turunan) dibuat dengan mewarisi karakteristik dari kelas yang sudah ada
(superclass atau kelas induk), serta menambahkan karakteristik unik dari
kelas baru tersebut. Karakteristik unik ini bisa berupa perluasan atau
spesialisasi dari superclass. Kelas turunan akan mewarisi anggota-anggota
kelas, termasuk data (atribut) dan fungsi (operasi), dan juga dapat
menambahkan data serta fungsi baru. Dalam praktiknya, jika superclass
telah mendefinisikan perilaku yang kita butuhkan, kita tidak perlu
mendefinisikan ulang perilaku tersebut; kita hanya perlu membuat kelas
yang merupakan subclass dari superclass yang bersangkutan.
4. Polymorphisms
Kelas
Kelas adalah cetak biru atau rancangan untuk objek, yang memungkinkan
kita untuk membuat banyak objek dari satu jenis kelas. Kelas
mendefinisikan tipe objek tertentu. Di dalam kelas, kita dapat
mendeklarasikan variabel dan melakukan instansiasi objek. Sebuah kelas
memiliki anggota yang terdiri dari atribut dan metode. Atribut adalah
semua field identitas yang diberikan pada suatu kelas; contohnya, kelas
manusia memiliki atribut berupa nama dan umur. Sementara itu, metode
dapat dipahami sebagai semua fungsi atau prosedur yang mencerminkan
perilaku suatu kelas. Sebuah metode disebut fungsi jika ia melakukan suatu
proses dan mengembalikan nilai (return value), sedangkan disebut prosedur
jika metode tersebut hanya menjalankan suatu proses tanpa mengembalikan
nilai (void).
Object
Field
Field adalah sebuah atribut. Field bisa berupa sebuah variabel kelas,
variabel objek, variabel Method objek atau parameter dari sebuah fungsi.
Field merupakan anggota dari kelas yang digunakan untuk menyimpan
data.
Method
Metode, yang juga dikenal sebagai fungsi dan prosedur, digunakan dalam
pemrograman berorientasi objek (OOP) untuk memodularisasi program
dengan memisahkan tugas-tugas dalam suatu kelas. Pemanggilan metode
melibatkan penyebutan nama metode dan menyediakan informasi
(parameter) yang diperlukan untuk menjalankan tugas tersebut.
Keyword “this”
Dalam Java terdapat suatu besaran referensi khusus, disebut this, yang
digunakan dalam method yang dirujuk untuk objek yang sedang berlaku.
Nilai this merujuk pada objek di mana method yang sedang berjalan
dipanggil.
II. GUIDED
a. Guided 1
Kelas Vehicle adalah kelas dasar yang merepresentasikan kendaraan secara umum,
dengan atribut untuk merek (brand) dan jumlah roda (wheels). Metode getBrand()
dan getwheels() menyediakan akses ke nilai-nilai atribut tersebut, sedangkan
metode tampilinfo() menampilkan informasi kendaraan dalam format teks. Kelas
ini dapat digunakan sebagai superclass untuk kendaraan lain seperti Car dan Bike,
yang dapat memperluas fungsionalitas dengan menambahkan atribut dan metode
spesifik.
Output:
b. Guided 2
Kelas Cat merupakan turunan dari kelas Animal dan meng-override metode
sound(). Alih-alih mencetak "Suara Hewan" seperti pada kelas Animal, metode
sound() di kelas Cat mencetak "Kucing Mengeong" untuk memberikan suara yang
lebih spesifik dari kucing. Ini merupakan contoh polymorphism di mana metode
yang sama dapat memiliki implementasi berbeda pada kelas turunan.
Kelas Dog merupakan turunan dari kelas Animal dan meng-override metode
sound() untuk mencetak suara yang spesifik dari anjing, yaitu "Anjing
Menggonggong:". Ini adalah contoh polymorphism di mana metode yang sama,
yaitu sound(), dapat berperilaku berbeda tergantung pada jenis objek (Dog atau
Animal).
Gambar Kode Main
Kode ini menunjukkan konsep polymorphism, di mana metode yang sama, yaitu
sound(), dapat dipanggil dari objek dengan tipe induk Animal, tetapi menghasilkan
perilaku yang berbeda tergantung pada instance sebenarnya (apakah itu Animal,
Dog, atau Cat). Ini karena metode sound() di-override dalam kelas turunan (Dog
dan Cat), sehingga implementasi yang spesifik pada kelas turunanlah yang
dipanggil saat metode tersebut dieksekusi.
Output:
III. UNGUIDED
1. Soal 1 : Sistem Pembayaran (Inheritance & Polymorphism)
Deskripsi:
Petunjuk:
Jawab :
Output:
Penjelasan Output:
Kode ini menunjukkan penggunaan polymorphism di mana objek dari subclass
(CashPayment dan CreditCardPayment) diperlakukan sebagai objek dari kelas
induk (payment). Dengan memanfaatkan metode pay() yang telah di-override di
masing-masing subclass, hasil yang berbeda dicetak tergantung pada tipe objek
yang sebenarnya, meskipun objek-objek tersebut direferensikan sebagai tipe
payment. Hal ini menunjukkan fleksibilitas polymorphism dalam pemrograman
berorientasi objek.
Kelas Vehicle merupakan kelas dasar yang mendefinisikan atribut umum dan
metode untuk kendaraan. Ini menyediakan struktur dasar yang dapat diperluas oleh
kelas-kelas turunan (misalnya, Car, Bike, dll.) untuk menambahkan perilaku atau
atribut tambahan yang lebih spesifik. Dengan menggunakan konsep inheritance,
kelas ini memungkinkan pembuatan hierarki kelas yang mencakup berbagai jenis
kendaraan yang dapat memiliki keunikan masing-masing, tetapi tetap berbagi
perilaku dasar yang didefinisikan dalam kelas Vehicle.
Kelas Bike adalah subclass dari Vehicle yang menambahkan spesifikasi untuk
kendaraan bertipe sepeda. Dengan menggunakan inheritance, kelas ini mewarisi
atribut dan metode dasar dari Vehicle. Dengan meng-override metode move(), kelas
Bike dapat memberikan deskripsi yang lebih spesifik tentang perilaku sepeda saat
bergerak. Ini merupakan contoh dari penerapan konsep polymorphism, di mana
metode move() berperilaku berbeda tergantung pada jenis objek yang
memanggilnya, dalam hal ini antara mobil dan sepeda.
Gambar Kode Truck
Kelas Truck adalah subclass dari Vehicle yang menambahkan spesifikasi untuk
kendaraan bertipe truk. Dengan menggunakan inheritance, kelas ini mewarisi
atribut dan metode dasar dari Vehicle. Dengan meng-override metode move(), kelas
Truck dapat memberikan deskripsi yang lebih spesifik tentang perilaku truk saat
bergerak. Ini merupakan contoh penerapan konsep polymorphism, di mana metode
move() berperilaku berbeda tergantung pada jenis objek yang memanggilnya,
dalam hal ini antara mobil, sepeda, dan truk.
Gambar Kode Main
Output: