Tugas PBO B Auction

Berikut adalah tugas untuk membuat skema Auction (lelang) sederhana. Kali ini saya membuat 4 class yaitu: Auction, Lot, Person, Bid. Beberapa class tersebut digunakan untuk mencatat harga lelang beserta person/ orang yang melakukan bidding dari harga suatu barang lelang.
Dibawah ini akan disajikan source code beserta screenshot hasil

Person Class
  /**  
  * Person Class.  
  *  
  * @author (Vinsensius Yuda P)  
  * @version (1.0.0)  
  */  
 public class Person  
 {  
   private String name;//nama orang yang mengikuti lelang  
   public Person(String name)  
   {  
     this.name = name;  
   }  
   public String getName()  
   {  
     return name;  
   }  
 }  

Lot Class
 /**  
  * Lot Class;  
  *  
  * @author (Vinsensius Yuda P)  
  * @version (1.0.0)  
  */  
 public class Lot  
 {  
   private int lotNumber;//id barang lelang  
   private Bid highestBid;//harga lelang tertinggi  
   private String desc;//deskripsi/nama barang  
   public Lot(int lotNumber, String desc)  
   {  
     highestBid = null;  
     this.lotNumber = lotNumber;  
     this.desc = desc;  
   }  
   public boolean bidFor(Bid bid)  
   {  
     if (highestBid == null)  
     {  
       highestBid = bid;  
       return true;  
     }  
     else if (highestBid.getValue() < bid.getValue())  
     {  
       highestBid = bid;  
       return true;  
     }  
     else  
     {  
       return false;  
     }  
   }  
   public Bid getHighestBid()  
   {  
     return highestBid;  
   }  
   public int getNumber()  
   {  
     return lotNumber;  
   }  
   public String toString()  
   {  
     return "Nomer Lot" + lotNumber + " Barang yang dilelang " + desc;  
   }  
 }  

Auction Class
  /**  
  * Auction Class.  
  *  
  * @author (Vinsensius Yuda P)  
  * @version (1.0.0)  
  */  
 import java.util.ArrayList;  
 public class Auction  
 {  
   private ArrayList<Lot> lots;//membuat array list u/ daftar barang lelang  
   private int nextLotNumber;  
   public Auction()  
   {  
     lots = new ArrayList<Lot>();  
     nextLotNumber = 1;  
   }  
   public void enterLot(String desc)  
   {  
     lots.add(new Lot(nextLotNumber, desc));  
     nextLotNumber++;  
   }  
   public void showLot()  
   {  
     for (Lot lot : lots)  
     {  
       System.out.println(lot.toString());  
     }  
   }  
   public void makeABid(int lotNum, Person bidder, long value)  
   {  
     Lot selectedLot = getLot(lotNum);  
     if (selectedLot != null)  
     {  
       Bid bid = new Bid(bidder, value);  
       boolean success = selectedLot.bidFor(bid);  
       if (success)  
       {  
         System.out.println("Penawaran untuk nomor Lot" + lotNum + " sudah berhasil ");  
       }  
       else  
       {  
         Bid highestBid = selectedLot.getHighestBid();  
         System.out.println("Nomor Lot: " + lotNum + " ditawar seharga " + highestBid.getValue());  
       }  
     }  
   }  
   public Lot getLot(int lotNum)  
   {  
     if (lotNum >= 1 && lotNum < nextLotNumber)  
     {  
       Lot selectedLot = lots.get(lotNum - 1);  
       if (selectedLot.getNumber() != lotNum)  
       {  
         System.out.println("Kesalahan nomor Lot " + selectedLot.getNumber() + " Dikembalikan Lot " + lotNum);  
         selectedLot = null;  
       }  
       return selectedLot;  
     }  
     else  
     {  
       System.out.println("Lot nomor: " + lotNum + " tidak ada");  
       return null;  
     }  
   }  
   public void stop()  
   {  
     System.out.println("Auction telah ditutup");  
     for (Lot lot : lots)  
     {  
       if (lot.getHighestBid() != null)  
       {  
         System.out.println("Lot Nomor: " + lot.getNumber() + " terjual seharga " + lot.getHighestBid().getValue() + " oleh " + lot.getHighestBid().getBidder().getName());  
       }  
       else  
       {  
         System.out.println("Lot Nomor: " + lot.getNumber() + " tidak terjual");  
       }  
     }  
   }  
 }  

Bid Class
 /**  
  * Bid Class.  
  *  
  * @author (Vinsensius Yuda P)  
  * @version (1.0.0)  
  */  
 public class Bid  
 {  
   private long value;//harga lelang  
   private Person bidder;//pelaku lelang  
   public Bid(Person bidder, long value)  
   {  
     this.bidder = bidder;  
     this.value = value;  
   }  
   public long getValue()  
   {  
     return value;  
   }  
   public Person getBidder()  
   {  
     return bidder;  
   }  
 }  

Screenshot hasil




Fungsi pada Auction class


Masukan barang lelang dengan method enterLot()

Masukkan orang yang menawar pada person class.


Input Value harga penawaran setiap orang, lalu ketika auction ditutup menggunakan  void stop() maka hasil penawaran auction akan tampak.



Komentar

Postingan populer dari blog ini

Tugas PBO B Membuat DataBase Mahasiswa Sederhana

PBO B : Game PONG

Tugas melukis pemandangan