Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * tes model untuk auction (lelang)
- * auction yang berisi daftar lot
- *
- * @author Thomasdwi.a
- * @version 20201025
- */
- import java.util.ArrayList;
- public class Auction {
- // list dari penawaran
- private final ArrayList<Lot> lots;
- // nilai akan dimasukkan ke lot berikutnya
- //pada penawaran ini
- private int nextLotNumber;
- //membuat penawaran baru
- public Auction(){
- lots = new ArrayList<>();
- nextLotNumber = 1;
- }
- /** memasukan lot baru pada penawaran
- * @param description = deskripsi dari lot
- */
- public void enterLot(String description){
- lots.add( new Lot( nextLotNumber, description));
- nextLotNumber++;
- }
- public void showLots()
- {
- for(Lot lots : lots){
- System.out.println(lots.toString());
- }
- System.out.println();
- }
- /**
- * membuat penawaran untuk lot.
- * Sebuah pesan akan dicetak jika penawaran
- * berhasil atau tidak.
- *
- * @param lotNumber = lot yang ditawarkan.
- * @param bidder = orang yang melakukan penawaran.
- * @param value = nilai yang ditawarkan.
- */
- public void makeABid( int lotNumber, Person bidder, long value)
- {
- Lot selectedLot = getLot(lotNumber);
- if(selectedLot != null){
- Bid bid =new Bid(bidder,value);
- boolean successful = selectedLot.bidFor(bid);
- if(successful){
- System.out.println("Penawaran pada nomor lot " +
- lotNumber + " telah berhasil");
- } else {
- // melaporkan nilai penawaran tertinggi
- Bid highestBid = selectedLot.getHighestBid();
- System.out.println("Nomor lot: " + lotNumber +
- " telah ditawar dengan jumlah:" +
- highestBid.getValue() ) ;
- }
- }
- }
- /**
- * Return lot yang sudah diberi nomor. Return null
- * jika lot dengan nomor tersebut tidak ada.
- * @param lotNumber nomor lot yang return.
- */
- public Lot getLot(int lotNumber){
- if((lotNumber >= 1) && (lotNumber < nextLotNumber)){
- // angkanya terlihat masuk akal
- Lot selectedLot = lots.get(lotNumber - 1);
- // Sertakan uji kebenaran untuk memastikan
- // kita mendapatkan lot yang tepat
- if(selectedLot.getNumber() != lotNumber){
- System.out.println("Internal error: Lot number " +
- selectedLot.getNumber() +
- " was returned instead of "+
- lotNumber);
- selectedLot = null;
- }
- return selectedLot;
- }
- else{
- System.out.println("Nomor lot: "+ lotNumber +
- " tidak ada");
- return null;
- }
- }
- /**
- * Menutup penawaran & menunjukkan hasil lelang
- */
- public void close() {
- System.out.println("Lelang ditutup.");
- for(Lot lot : lots) {
- System.out.print(lot.getNumber() + ": " + lot.getDescription());
- if ( lot.getHighestBid() == null ) {
- System.out.println(" (Belum ada penawaran)");
- }
- else {
- Bid highestBid = lot.getHighestBid();
- System.out.println(" terjual kepada " +
- highestBid.getBidder().getName() + " sejumlah " + highestBid.getValue());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment