Selasa, 09 Oktober 2018

PBO-B AUCTION

Membuat lelang dengan pemrograman berorientasi objek

Pada jurnal kali ini, saya ingin menampilkan sebuah hasil latihan saya mengenai penggunaan array dengan merekayasa sebuah sistem pelelangan dengan blue j

Relasi Antar Kelas :

Cuplikan lelang :

Jadi, ketika dibuat objek sebuah tempat lelang dan dimasukkan barang pada enterLot(), barang akan teridentifikasi. Selanjutnya dilakukan bid, dengan menyertakan nama orang yang sudah diisi pada class person. Kemudian close() dijalankan untuk menutup lelang.

Class AuctionPlace (Tempat lelang)
  import java.util.ArrayList;   
 /**  
  * Auction  
  *   
  * @author Carwima  
  * @version 1.0Beta   
  */   
 public class AuctionPlace  
 {   
   private ArrayList<Lot> lots;   
   private int nextLotNumber;   
   public AuctionPlace()   
   {   
    lots = new ArrayList<Lot>();   
    nextLotNumber = 1;   
   }   
   public void enterLot(String description)   
   {   
    lots.add(new Lot(nextLotNumber, description));   
    nextLotNumber++;   
   }   
   public void showLots()   
   {   
    for(Lot lot : lots)   
    {   
     System.out.println(lot.toString());   
    }   
   }   
   public void makeABid(int lotNumber, Person bidder, long value)   
   {   
    Lot selectedLot = getLot(lotNumber);   
    if (selectedLot != null)   
    {   
     boolean succesful = selectedLot.bidFor(new Bid(bidder, value));   
     if (succesful)   
     {   
      System.out.println("The bid for lot number " + lotNumber + " was succesful.");   
     }   
     else   
     {   
      //Report which bid is higher   
      Bid highestBid = selectedLot.getHighestBid();   
      System.out.println("Lot number: " + lotNumber + " already has a bid of: " + highestBid.getValue());   
     }   
    }   
   }   
   public Lot getLot(int lotNumber)   
   {   
    if((lotNumber >= 1) && (lotNumber < nextLotNumber))   
    {   
     //The number seems to be reasonable   
     Lot selectedLot = lots.get(lotNumber-1);   
     //Include a confidence check to be sure we have the right lot   
     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("Lot number: " + lotNumber + " does not exist.");   
     return null;   
    }   
   }   
   public void close()   
   {   
    System.out.println("Closing auction.");   
    for (Lot lot : lots)   
    {   
     System.out.println(lot.getNumber() + ": " + lot.getDescription());   
     if (lot.getHighestBid() == null)   
     {   
      System.out.println (" (No bids) ");   
     }   
     else   
     {   
      Bid highestBid = lot.getHighestBid();   
      System.out.println(" sold to " + highestBid.getBidder().getName() + " for " + highestBid.getValue());   
     }   
    }   
   }   
  }   

Class Lot (barang yang di lelang)
 /**  
  * Maintain Lots  
  *   
  * @author Carwima  
  * @version 1.0Beta   
  */   
 public class Lot   
  {    
   private final int number;   
   private String description;   
   private Bid highestBid;   
   public Lot (int number, String description)   
   {   
    this.number = number;   
    this.description = description;   
    this.highestBid = null;   
   }   
   public boolean bidFor(Bid bid)   
   {   
    if (highestBid==null)   
    {   
     highestBid=bid;   
     return true;   
    }   
    else if (bid.getValue() > highestBid.getValue())   
    {   
     highestBid = bid;   
     return true;   
    }   
    else   
    {   
     return false;   
    }   
   }   
   public String toString()   
   {   
    String details = number + ": " + description;   
    if (highestBid != null)   
    {   
     details += " Bid: " + highestBid.getValue();   
    }   
    else   
    {   
     details += " (No bid))";   
    }   
    return details;   
   }   
   public int getNumber()   
   {   
    return number;   
   }   
   public String getDescription()   
   {   
    return description;   
   }   
   public Bid getHighestBid()   
   {   
    return highestBid;   
   }   
  }   

Class Bid (harga lelang)
  /**   
  * A class that models an auction bid   
  *   
  * @author Carwima  
  * @version 1.0Beta   
  */   
  public class Bid   
  {   
   private final Person bidder;   
   private final long value;   
   public Bid(Person bidder, long value)   
   {   
    this.bidder = bidder;   
    this.value = value;   
   }   
   public Person getBidder()   
   {   
    return bidder;   
   }   
   public long getValue()   
   {   
    return value;   
   }   
  }   

Class Person (partisipan)
  /**   
  * Participant  
  *   
  * @author Carwima  
  * @version 1.0Beta   
  */   
  public class Person   
  {   
   private final String name;   
   public Person (String name)   
   {   
    this.name = name;   
   }   
   public String getName()   
   {   
    return name;   
   }   
  }   

Tidak ada komentar:

Posting Komentar