Tugas 11 - Impelemtasi Inheritance Network dan Rental Mobil
Source Code : https://github.com/ItsPong/Tugas11
nama : Muhammad Shafa Narariya
NRP : 50525231016
Explanation:
Network
1. Kelas Post
Kelas ini mewakili sebuah postingan di jaringan sosial.
Atribut:
User author: Penyusun atau pembuat postingan.String content: Isi atau konten dari postingan.List<User> likes: Daftar pengguna yang menyukai postingan ini.
Konstruktor:
Post(User author, String content): Membuat sebuah postingan dengan penulis tertentu dan konten yang diberikan. Daftar like awalnya kosong.
Metode:
getContent(): Mengembalikan konten dari postingan.getAuthor(): Mengembalikan penulis postingan.getLikes(): Mengembalikan daftar pengguna yang menyukai postingan.addLike(User user): Menambahkan pengguna ke daftar like jika pengguna belum menyukai postingan tersebut. Jika berhasil, mencetak pesan tentang siapa yang menyukai postingan.getLikeCount(): Mengembalikan jumlah pengguna yang telah menyukai postingan.
2. Kelas User
Kelas ini mewakili seorang pengguna di jaringan sosial.
Atribut:
String username: Nama pengguna.List<Post> posts: Daftar postingan yang dibuat oleh pengguna.
Konstruktor:
User(String username): Membuat pengguna baru dengan nama pengguna yang diberikan dan daftar postingan kosong.
Metode:
getUsername(): Mengembalikan nama pengguna.addPost(String content): Membuat postingan baru dengan konten tertentu, menambahkannya ke daftar postingan pengguna, dan mencetak pesan.likePost(Post post): Menyukai postingan yang diberikan.getPosts(): Mengembalikan daftar postingan yang dibuat oleh pengguna.
3. Kelas Network
Kelas ini bertindak sebagai jaringan sosial yang mengelola pengguna dan postingan.
Atribut:
List<User> users: Daftar semua pengguna di jaringan.List<Post> posts: Daftar semua postingan di jaringan.
Konstruktor:
Network(): Membuat jaringan baru dengan daftar pengguna dan postingan kosong.
Metode:
addUser(String username): Menambahkan pengguna baru ke jaringan dengan nama yang diberikan dan mencetak pesan.addPost(Post post): Menambahkan postingan ke daftar postingan di jaringan.showAllPosts(): Menampilkan semua postingan di jaringan, termasuk nama penulis, konten, dan jumlah like yang dimiliki oleh setiap postingan.
4. Kelas Main
Kelas ini berisi metode main untuk menjalankan program.
- Alur Program:
- Membuat objek
Network. - Menambahkan pengguna
Alice,Bob, danBoke jaringan. AlicedanBobmembuat postingan.- Menambahkan postingan
AlicedanBobke jaringan. AlicedanBomenyukai postingan pertamaBob, danBobmenyukai postingan pertamaAlice.- Menampilkan semua postingan beserta jumlah like.
- Membuat objek
1. Kelas Mobil
Kelas ini adalah kelas induk yang mewakili entitas mobil secara umum, dengan atribut dasar nama dan tipe, serta metode tampilkanInfo() untuk menampilkan informasi mobil.
Atribut:
String nama: Nama mobil, seperti "Toyota Avanza".String tipe: Tipe mobil, seperti "MPV" atau "SUV".
Konstruktor:
Mobil(String nama, String tipe): Menginisialisasi mobil dengan nama dan tipe tertentu.
Metode:
tampilkanInfo(): Menampilkan informasi nama dan tipe mobil.

2. Kelas MobilTersedia
Kelas ini adalah subclass dari Mobil dan digunakan untuk merepresentasikan mobil yang tersedia di rental. Tidak ada atribut atau metode tambahan di kelas ini, tetapi penggunaannya membantu membedakan jenis mobil yang tersedia dari yang disewa.
- Konstruktor:
MobilTersedia(String nama, String tipe): Memanggil konstruktor kelas induk (Mobil) untuk menginisialisasi nama dan tipe mobil.
3. Kelas MobilDisewa
Kelas ini adalah subclass dari Mobil dan digunakan untuk merepresentasikan mobil yang disewa. Kelas ini memiliki atribut tambahan penyewa dan metode tampilkanInfo() yang diturunkan dari kelas induk, namun di-override untuk menampilkan nama penyewa.
Atribut:
String penyewa: Nama penyewa mobil.
Konstruktor:
MobilDisewa(String nama, String tipe, String penyewa): Memanggil konstruktor kelas induk (Mobil) untuk menginisialisasi nama dan tipe mobil, serta mengatur nama penyewa.
Metode:
tampilkanInfo(): Di-override untuk menampilkan informasi mobil beserta nama penyewa.
4. Kelas RentalMobil
Kelas ini berisi metode main untuk menjalankan program.
- Alur Program:
- Membuat daftar
ArrayListuntuk menyimpan objekMobil. - Menambahkan beberapa mobil yang tersedia menggunakan kelas
MobilTersedia. - Menambahkan beberapa mobil yang disewa menggunakan kelas
MobilDisewa. - Menampilkan daftar mobil yang tersedia dengan memeriksa apakah objek adalah instansi
MobilTersedia. - Menampilkan daftar mobil yang disewa dengan memeriksa apakah objek adalah instansi
MobilDisewa.
- Membuat daftar
Komentar
Posting Komentar