mbah_bejo

Auction

Oct 24th, 2020
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.60 KB | None | 0 0
  1. /**
  2.  * tes model untuk auction (lelang)
  3.  * auction yang berisi daftar lot
  4.  *
  5.  * @author Thomasdwi.a
  6.  * @version 20201025
  7.  */
  8.  
  9.  
  10. import java.util.ArrayList;
  11.  
  12. public class Auction {
  13.     // list dari penawaran
  14.     private final ArrayList<Lot> lots;
  15.     // nilai akan dimasukkan ke lot berikutnya
  16.     //pada penawaran ini
  17.     private int nextLotNumber;
  18.  
  19.     //membuat penawaran baru
  20.     public Auction(){
  21.         lots = new ArrayList<>();
  22.         nextLotNumber = 1;
  23.     }
  24.  
  25.     /** memasukan lot baru pada penawaran
  26.      * @param description = deskripsi dari lot
  27.      */
  28.  
  29.     public void enterLot(String description){
  30.         lots.add( new Lot( nextLotNumber, description));
  31.         nextLotNumber++;
  32.     }
  33.  
  34.     public void showLots()
  35.     {
  36.         for(Lot lots : lots){
  37.             System.out.println(lots.toString());
  38.         }
  39.         System.out.println();
  40.     }
  41.  
  42.     /**
  43.      * membuat penawaran untuk lot.
  44.      * Sebuah pesan akan dicetak jika penawaran
  45.      * berhasil atau tidak.
  46.      *
  47.      * @param lotNumber = lot yang ditawarkan.
  48.      * @param bidder = orang yang melakukan penawaran.
  49.      * @param value = nilai yang ditawarkan.
  50.      */
  51.  
  52.     public void makeABid( int lotNumber, Person bidder, long value)
  53.     {
  54.         Lot selectedLot = getLot(lotNumber);
  55.         if(selectedLot != null){
  56.             Bid bid =new Bid(bidder,value);
  57.             boolean successful = selectedLot.bidFor(bid);
  58.                     if(successful){
  59.                         System.out.println("Penawaran pada nomor lot " +
  60.                                 lotNumber + " telah berhasil");
  61.                     } else {
  62.                         // melaporkan nilai penawaran tertinggi
  63.                         Bid highestBid = selectedLot.getHighestBid();
  64.                         System.out.println("Nomor lot: " + lotNumber +
  65.                                 " telah ditawar dengan jumlah:" +
  66.                                 highestBid.getValue() ) ;
  67.                     }
  68.         }
  69.     }
  70.  
  71.     /**
  72.      * Return lot yang sudah diberi nomor. Return null
  73.      * jika lot dengan nomor tersebut tidak ada.
  74.      * @param lotNumber nomor lot yang return.
  75.      */
  76.     public Lot getLot(int lotNumber){
  77.         if((lotNumber >= 1) && (lotNumber < nextLotNumber)){
  78.             // angkanya terlihat masuk akal
  79.             Lot selectedLot = lots.get(lotNumber - 1);
  80.             // Sertakan uji kebenaran untuk memastikan
  81.             // kita mendapatkan lot yang tepat
  82.             if(selectedLot.getNumber() != lotNumber){
  83.                 System.out.println("Internal error: Lot number " +
  84.                         selectedLot.getNumber() +
  85.                         " was returned instead of "+
  86.                         lotNumber);
  87.                 selectedLot = null;
  88.             }
  89.             return selectedLot;
  90.         }
  91.         else{
  92.             System.out.println("Nomor lot: "+ lotNumber +
  93.                     " tidak ada");
  94.             return null;
  95.         }
  96.     }
  97.  
  98.     /**
  99.      * Menutup penawaran & menunjukkan hasil lelang
  100.      */
  101.     public void close() {
  102.         System.out.println("Lelang ditutup.");
  103.         for(Lot lot : lots) {
  104.             System.out.print(lot.getNumber() + ": " + lot.getDescription());
  105.             if ( lot.getHighestBid() == null ) {
  106.                 System.out.println(" (Belum ada penawaran)");
  107.             }
  108.             else {
  109.                 Bid highestBid = lot.getHighestBid();
  110.                 System.out.println(" terjual kepada " +
  111.                         highestBid.getBidder().getName() + " sejumlah " + highestBid.getValue());
  112.             }
  113.         }
  114.     }
  115. }
  116.  
Advertisement
Add Comment
Please, Sign In to add comment