Auction System with BlueJ

Class yang dibutuhkan

Auction
Bid
Bidder
Lot




















Sourcecodes

Class Auction
/**    
 * @version XY    
 */   
 import java.util.ArrayList;  
 import java.util.Iterator;    
 public class Auction  // Suatu Metode yang bertujuan untuk ngelist barang dalam suatu auction  
 {    
   private ArrayList<Lot> lots;    
   private int nextLotNumber;     
   public Auction()  //Sebuah metode yang bertujuan untuk membuat auction baru  
   {    
     lots = new ArrayList<Lot>();    
     nextLotNumber = 1;  //Dimulai dari angka 1  
   }    
   public void enterLot(String description)    
   {    
     //Suatu metode yang bertujuan untuk menambahkan suatu barang yang baru dalam aution itu  
     lots.add(new Lot(nextLotNumber, description));    
     nextLotNumber++;    
   }    
   public void showLots()    
   {    
     //Sebuah method yang bertujuan untuk menampilkan seluruh barang yang dilelang dalam auction  
     for(Lot lot : lots)  
     {System.out.println(lot.toString());}    
   }    
   public void bidFor(int lotNumber, Bidder bidder, long value)    
   {    
     Lot selectedLot = getLot(lotNumber);    
     if(selectedLot != null)  
     {boolean successful = selectedLot.bidFor(new Bid(bidder,value));    
      if (successful)   
      {System.out.println("Bid untuk Nomor Lot " + lotNumber +" Telah berhasil.");}    
      else   
      {     
        //Jika bid gagal, maka akan memberitahukan bid sekarang   
        Bid highestBid = selectedLot.getHighestBid();    
        System.out.println("Nomor Lot: " + lotNumber + " Nilai bid sudah mencapai: " + highestBid.getValue());    
      }    
     }    
   }    
   public void close()    
   {    
     System.out.println("Pelelangan telah selesai.");    
     for(Lot lot : lots)   
     {    
       System.out.println(lot.getNumber() + ": " +lot.getDescription());    
       Bid bid = lot.getHighestBid();    
       if (bid==null)  
       {System.out.println("(Belum ada tawaran.)");  }    
       else   
       {System.out.println( "Terjual Kepada " + bid.getBidder().getName() + " Senilai "+ bid.getValue()); }    
     }    
   }    
   public Lot getLot(int lotNumber)    
   {    
     if((lotNumber >= 1) && (lotNumber < nextLotNumber))   
     {     
       Lot selectedLot = lots.get(lotNumber - 1);    
       if(selectedLot.getNumber() != lotNumber)   
       {    
         System.out.println("Internal error: Nomor Lot " + selectedLot.getNumber() + " Dikembalikkan kepada " + lotNumber);   
         selectedLot = null;    
       }    
       return selectedLot;    
     }    
     else   
     {    
       System.out.println("Nomor Lot: " + lotNumber + " Tidak Tersedia.");    
       return null;    
     }    
   }    
   }

Class Bidder
/**    
 * @version XY    
 */   
 public class Bidder 
 {     
   private final String name;  //sebuah variabel string yang bertujuan untuk meyimpan nama orang    
   public Bidder(String name)  //sebuah metode untuk membuat nama orang yang baru  
   {this.name = name;}    
   public String getName()  //untuk mengembalikkan nama orang yang baru saja dibua  
   {return name;}    
 }

Class Bid
/**    
 * @version XY    
 */   
 public class Bid    
 {     
   private final Bidder bidder;  //Bertujuan untuk menyimpan nama penawarnya  
   private final long value;   //Bertujuan untuk menyimpan harga tawaran   
   public Bid(Bidder bidder, long value) //Sebuah Method yang bertujuan untuk membuat penawar baru dengan menyertai nama dan jumlah tawarannya   
   {    
     this.bidder = bidder;    
     this.value = value;    
   }    
   public Bidder getBidder()  //bertujuan untuk mengambalikkan nama penawarannya  
   {return bidder;}    
   public long getValue()  //bertujuan untuk mengambalikkan harga tawarannya  
   {return value;}    
 }

Class Lot
/**    
 * Kodingan Lot  
 *    
 * @author (M Thalut Nadhil Q)    
 * @version (TGO 6 Tanggal 8 Oktober 2018)    
 */   
 public class Lot    
 {     
   private final int number;   // Sebuah variabel yang bertujuan untuk menyimpan nomor barang   
   private String description;  // Sebuah variabel yang bertujuan untuk menyimpan deskripsi barang   
   private Bid highestBid;  // Sebuah variabel yang bertujuan untuk menyimpan nilai tawaran tertinggi  
   public Lot(int number, String description)  //Sebuah metode yang bertujuan untuk membuat lot baru beserta nama dan deskripsinya  
   {    
     this.number = number;    
     this.description = description;    
   }   
   public boolean bidFor(Bid bid)  //Sebuah metode yang bertujuan untuk mengecek apakah tawaran ini lebih besar dari tawaran yang lebih tinggi  
   {    
     if((highestBid == null)||(bid.getValue() > highestBid.getValue()))    
     {    
       highestBid = bid;    
       return true;    
     }    
     else  
     { return false;}    
   }    
   public String toString()  //metode untuk mengembalikkan detail lot  
   {    
     String details = number + ": " + description;    
     if(highestBid!=null)   
     {details+= " Bid: " +highestBid.getValue();}    
     else   
     {details += " (Belum ada bid)";}    
     return details;    
   }    
   public int getNumber()  //metode untuk mengembalikkan nomor lot  
   {return number;}    
   public String getDescription()  //metode untuk mengembalikkan deskripsi dari lot  
   {return description;}    
   public Bid getHighestBid()  //metode untuk mengembalikkan nilai dari tawaran tertinggi   
   {return highestBid;}    
  }

Komentar

Postingan Populer