Tugas PBO Pertemuan 11

Nathanael Valen Susilo

5025231099

Tugas PBO Pertemuan 11

1. Penjelasan Program "Network" Sederhana

Untuk program ini, sebenarnya terdiri dari 3 kelas utama yaitu kelas User, Post, dan Network. Untuk kelas User ini dibagi menjadi 2 yaitu kelas AdminUser dan RegularUser, dan juga pada kelas User dibuat sebagai abstract yang berarti saat pembuatan objek harus dispesifikasikan kelasnya berdasarkan subclass yang ada pada user. Sementara untuk kelas main berfungsi untuk menjalankan program secara keseluruhan.

Inheritance pada diagram tersebut digambarkan pada relasi extend pada AdminUser dan RegularUser ke class User. Relasi tersebut menjelaskan bahwa kedua subclass tersebut menggunakan method yang sudah ada pada class User.


Penggunaan Konsep Inheritance pada Class User


Kelas User seperti yang dijelaskan sebelumnya adalah abstract, yang berarti harus digunakan dengan subclassnya yaitu AdminUser atau RegularUser. Bisa dibilang seluruh method yang nantinya digunakan oleh user biasa ataupun admin sudah didefinisikan pada class User, seperti menambah dan menghapus post, melakukan comment, like, menampilkan profile dan lain sebagainya. Walaupun class User tidak digunakan secara langsung, tetapi dengan adanya class ini, dapat mengurangi redudansi pada penulisan program. 



Kedua subclass melakukan override pada method displayRole yang sebelumnya sudah didefinisikan sehingga hasil dari method tersebut bisa menampilkan role yang sesuai dengan subclass. Sementara pada subclass AdminUser ada tambahan method deletePost yang menggunakan parameter tambahan yaitu object User. Dengan adanya tambahan parameter ini maka admin dapat menghapus post yang dengan mengecek berdasarkan parameter user yang diinput.


        Class Post


Secara keseluruhan class Post berisi data postingan yang berupa isi post, author, comment, dan jumlah like dari post tersebut.



        Class Network



Class Network berfungsi untuk menyimpan user yang ada, sehingga bisa dimanfaatkan untuk penggunaan method displayAllUsers ataupun displayAllProfiles untuk menampilkan semua data terkait user yang ada.


        Class Main



Contoh Hasil Program Main


Tambahan Penjelasan :
Pada output terminal di atas, kita bisa lihat ada satu pesan yang menunjukkan bahwa Bob gagal menghapus sebuah post. Hal ini dikarenakan Bob mencoba menghapus post1 yang mana tidak terdapat pada list posts yang disimpan oleh akunnya, sehingga tidak dapat dihapus. Sedangkan saat Charlie mencoba menghapus post1, post tersebut dapat dihapus dikarenakan pada pengecekkan method deletePost oleh admin, ada tambahan parameter user yang menspesifikan post milik siapa yang akan dihapus.


2. Penjelasan Program Rental Kendaraan


Secara keseluruhan program terdiri dari 2 class utama yaitu, class RentalSystem untuk mengurus penyewaan kendaraan serta menampilkan informasi ke terminal, dan juga class Vehicle yang terdiri lagi menjadi 3 subclass yaitu: Car, Motorcycle, dan Bicycle.

Untuk kelas main, sama seperti program sebelumnya, berfungsi untuk melakukan inisialisasi instance dan pengetesan pada program.


Class Vehicle



Pada class Vehicle terdapat beberapa atribut yaitu:  brand, model, year, status, renterName. Sementara untuk method yang ada hanya berfungsi untuk mengambil dan mengubah nilai pada atribut yang ada.


Subclass Car


Subclass Motorcycle



Subclass Bicycle


Perubahan pada subclass umumnya ada penambahan atribut dan override untuk display info, sehingga tampilan pada terminal disesuaikan dengan subclassnya. Untuk atribut tambahan; subclass Car dan Motorcycle menambahkan atribut numWheels untuk jumlah roda, sementara subclass Bicycle menambahkan atribut bicycleType untuk tipe sepedanya.


Class RentalSystem


Class ini berfungsi untuk mengatur semua kendaraan yang ada, seperti untuk menambah kendaraan ke sistem, melakukan penyewaan dan pengembalian, ataupun menampilkan semua kendaraan yang ada beserta statusnya.


Class Main


Pada pengetesan di class main, saya mencoba menambahkan tiga kendaraan, satu ke masing-masing jenis, kemudian saya coba tampilkan semua kendaraan yang ada. Lalu, dicoba untuk melakukan penyewaan dan pengembalian kendaraan, kemudian ditampilkan lagi status dari semua kendaraan.


Hasil Program



Pada penyewaan, kendaraan akan dicek statusnya, dan jika tersedia maka statusnya akan diubah ke "rented" dan "renterName" diset sesuai dengan penyewanya. Lalu, jika statusnya disewa, maka akan ditampilkan juga siapa penyewanya.
















Komentar

Postingan populer dari blog ini

Tugas PBO Pertemuan 12

ETS PBO G