Latihan PBO Grouping Object dan Sifat Object

 Link Github: https://github.com/killervaps/pbo-auction

1. Auction.java

Atribut:

  • private ArrayList<Lot> lots: Ini adalah atribut bertipe ArrayList yang menyimpan daftar objek Lot. Setiap Auction memiliki beberapa Lot, dan daftar ini digunakan untuk melacak Lot yang ada di dalam lelang.

Method:

  • public Auction(): Konstruktor untuk kelas Auction. Saat objek Auction dibuat, sebuah ArrayList kosong dari Lot diinisialisasi.

  • public void addLot(Lot lot): Method ini menambahkan objek Lot ke dalam daftar lots. Setiap kali ada Lot baru yang ingin dilelang, method ini akan digunakan.

  • public void showLots(): Method ini mencetak daftar Lot yang ada dalam Auction ke konsol. Setiap Lot yang ada dalam daftar akan dipanggil toString()-nya untuk ditampilkan.

  • public Lot getLot(int lotNumber): Method ini mencari Lot berdasarkan nomor Lot. Melalui iterasi pada ArrayList<Lot>, method ini membandingkan nomor lot yang diberikan dengan getLotNumber() dari setiap Lot dalam daftar. Jika ditemukan, objek Lot tersebut dikembalikan. Jika tidak ditemukan, null dikembalikan.

Cara kerja: Kelas ini mengelola lelang, menyimpan lot-lot yang ditawarkan, dan menampilkan lot-lot tersebut. Auction bertindak sebagai pengelola utama yang menambahkan Lot baru ke dalam lelang dan mencari lot berdasarkan nomor.

2. Lot.java

Atribut:

  • private int lotNumber: Nomor identifikasi unik untuk setiap Lot. Setiap lot yang dilelang memiliki nomor unik.

  • private String description: Deskripsi dari Lot, yang memberikan informasi tentang apa yang dilelang.

  • private Bid highestBid: Menyimpan bid tertinggi yang telah dilakukan untuk Lot ini. Jika belum ada yang menawar, nilainya adalah null.

Method:

  • public Lot(int lotNumber, String description): Konstruktor yang menerima nomor lot dan deskripsi, lalu menginisialisasi nilai-nilai ini untuk objek Lot.

  • public int getLotNumber(): Method ini mengembalikan nilai lotNumber, digunakan untuk mencari atau membandingkan lot berdasarkan nomornya.

  • public String getDescription(): Mengembalikan deskripsi lot.

  • public Bid getHighestBid(): Mengembalikan objek Bid yang mewakili tawaran tertinggi saat ini untuk lot ini.

  • public boolean bidFor(Bid bid): Method ini mengecek apakah tawaran baru lebih tinggi dari tawaran tertinggi yang sudah ada. Jika tawaran baru lebih tinggi, maka tawaran tersebut menjadi tawaran tertinggi, dan method ini mengembalikan nilai true. Jika tidak, tawaran ditolak dan false dikembalikan.

  • public String toString(): Method ini mengembalikan representasi string dari Lot, yang mencakup nomor lot, deskripsi, dan tawaran tertinggi (jika ada). Ini digunakan ketika daftar lot ingin dicetak.

Cara kerja: Lot mewakili barang yang dilelang dalam Auction. Setiap Lot memiliki nomor unik, deskripsi, dan menyimpan informasi tentang bid tertinggi. Kelas ini juga menangani penawaran baru, dengan memutuskan apakah tawaran tersebut layak menjadi yang tertinggi.

3. Bid.java

Atribut:

  • private Person bidder: Merupakan referensi ke objek Person yang mewakili orang yang memberikan penawaran (bidder).

  • private double amount: Jumlah uang yang ditawarkan dalam bid ini.

Method:

  • public Bid(Person bidder, double amount): Konstruktor yang menerima orang (bidder) dan jumlah uang yang ditawarkan. Atribut bidder dan amount diinisialisasi berdasarkan nilai yang diterima.

  • public Person getBidder(): Mengembalikan objek Person yang memberikan penawaran.

  • public double getAmount(): Mengembalikan jumlah uang yang ditawarkan.

Cara kerja: Bid menyimpan informasi tentang tawaran yang diberikan seseorang untuk suatu lot. Kelas ini sederhana, hanya menyimpan dua data utama: siapa yang menawar (Person) dan berapa yang ditawar (amount).

4. Person.java

Atribut:

  • private String name: Nama orang yang memberikan penawaran.

Method:

  • public Person(String name): Konstruktor yang menerima nama seseorang, dan atribut name diinisialisasi berdasarkan nilai yang diterima.

  • public String getName(): Method ini mengembalikan nama orang tersebut.

Cara kerja: Person hanya menyimpan informasi tentang nama orang yang terlibat dalam lelang. Dalam konteks bid, objek ini mewakili orang yang memberikan penawaran. Kelas ini sangat sederhana dan bertindak sebagai model untuk orang yang terlibat.

Gambaran Cara Kerja Keseluruhan

  1. Auction: Objek utama yang mengelola lot-lot lelang. Anda bisa menambah lot, mencari lot berdasarkan nomor, dan menampilkan daftar lot yang ada.

  2. Lot: Setiap lot memiliki deskripsi dan dapat menerima tawaran (bid). Jika ada tawaran baru yang lebih tinggi dari tawaran sebelumnya, Lot akan menyimpan tawaran tertinggi tersebut.

  3. Bid: Menyimpan informasi tentang tawaran, seperti siapa yang memberikan penawaran dan berapa jumlah yang ditawarkan.

  4. Person: Mewakili seseorang yang terlibat dalam penawaran. Orang ini dikaitkan dengan bid yang mereka ajukan.

Comments

Popular posts from this blog

Implementasi Rental Kendaraan

Latihan Ticket Machine