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 bertipeArrayListyang menyimpan daftar objekLot. SetiapAuctionmemiliki beberapaLot, dan daftar ini digunakan untuk melacakLotyang ada di dalam lelang.
Method:
public Auction(): Konstruktor untuk kelasAuction. Saat objekAuctiondibuat, sebuahArrayListkosong dariLotdiinisialisasi.public void addLot(Lot lot): Method ini menambahkan objekLotke dalam daftarlots. Setiap kali adaLotbaru yang ingin dilelang, method ini akan digunakan.public void showLots(): Method ini mencetak daftarLotyang ada dalamAuctionke konsol. SetiapLotyang ada dalam daftar akan dipanggiltoString()-nya untuk ditampilkan.public Lot getLot(int lotNumber): Method ini mencariLotberdasarkan nomorLot. Melalui iterasi padaArrayList<Lot>, method ini membandingkan nomor lot yang diberikan dengangetLotNumber()dari setiapLotdalam daftar. Jika ditemukan, objekLottersebut dikembalikan. Jika tidak ditemukan,nulldikembalikan.
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 setiapLot. Setiap lot yang dilelang memiliki nomor unik.private String description: Deskripsi dariLot, yang memberikan informasi tentang apa yang dilelang.private Bid highestBid: Menyimpan bid tertinggi yang telah dilakukan untukLotini. Jika belum ada yang menawar, nilainya adalahnull.
Method:
public Lot(int lotNumber, String description): Konstruktor yang menerima nomor lot dan deskripsi, lalu menginisialisasi nilai-nilai ini untuk objekLot.public int getLotNumber(): Method ini mengembalikan nilailotNumber, digunakan untuk mencari atau membandingkan lot berdasarkan nomornya.public String getDescription(): Mengembalikan deskripsi lot.public Bid getHighestBid(): Mengembalikan objekBidyang 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 nilaitrue. Jika tidak, tawaran ditolak danfalsedikembalikan.public String toString(): Method ini mengembalikan representasi string dariLot, 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 objekPersonyang 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. Atributbidderdanamountdiinisialisasi berdasarkan nilai yang diterima.public Person getBidder(): Mengembalikan objekPersonyang 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 atributnamediinisialisasi 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
Auction: Objek utama yang mengelola lot-lot lelang. Anda bisa menambah lot, mencari lot berdasarkan nomor, dan menampilkan daftar lot yang ada.
Lot: Setiap lot memiliki deskripsi dan dapat menerima tawaran (bid). Jika ada tawaran baru yang lebih tinggi dari tawaran sebelumnya,
Lotakan menyimpan tawaran tertinggi tersebut.Bid: Menyimpan informasi tentang tawaran, seperti siapa yang memberikan penawaran dan berapa jumlah yang ditawarkan.
Person: Mewakili seseorang yang terlibat dalam penawaran. Orang ini dikaitkan dengan bid yang mereka ajukan.
Comments
Post a Comment