Auction :
/**
* Tugas 6 PBO-A Lelang
* author M. Fatih
* 07/10/2018
*/
import java.util.ArrayList;
public class Auction
{
private ArrayList<Lot> lots;
private int LotNumber;
public Auction()
{
lots = new ArrayList<Lot>();
LotNumber = 1;
}
public void enterLot(String deskripsi)
{
lots.add(new Lot(LotNumber, deskripsi));
LotNumber++;
}
public void MakeBid(int CurrentlotNumber, Person bidder, long value)
{
Lot selectedLot = getLot(CurrentlotNumber);
if(selectedLot != null)
{
boolean check = selectedLot.bidFor(new Bid(bidder, value));
if(check)
{
System.out.println("Penawar dengan nomor Lot :" +
CurrentlotNumber + " telah berhasil dilakukan."
+ " Penawaran dilakukan oleh " +bidder.getName());
}
else
{
Bid highestBid = selectedLot.getHighestBid();
System.out.println("Penawaran dengan nomor lot " + CurrentlotNumber +
" telah ditawar sebesar : " +
highestBid.getBid());
}
}
}
public void showLots()
{
for(Lot lot : lots)
{
System.out.println(lot.detail());
}
}
public Lot getLot(int CurrentlotNumber)
{
if((CurrentlotNumber >= 1) && (CurrentlotNumber < LotNumber))
{
Lot selectedLot = lots.get(CurrentlotNumber - 1);
if(selectedLot.getId() != CurrentlotNumber)
{
System.out.println("Error : Nomor Lot " +
selectedLot.getId() +
" yang ditampilkan semestinya " +
CurrentlotNumber);
selectedLot = null;
}
return selectedLot;
}
else
{
System.out.println("Nomor Lot : " + CurrentlotNumber +
" tidak ditemukan.");
return null;
}
}
public void close()
{
System.out.println("Pelelangan telah ditutup.");
for(Lot lot : lots)
{
System.out.println(lot.getId() + ": " +lot.getDescription());
Bid bid = lot.getHighestBid();
if (bid==null)
{
System.out.println("(Tidak ada penawaran untuk lot ini.)");
}
else
{
System.out.println( "Telah berhasil dilelang kepada " +
bid.getBidder().getName() + " dengan harga akhir "
+ bid.getBid());
}
}
}
}
Lot :
/**
* Tugas 6 PBO-A Lelang
* author M. Fatih
* 07/10/2018
*/
public class Lot
{
private final int Id;
private String deskripsi;
private Bid highestBid;
public Lot(int number, String deskripsi)
{
this.Id = number;
this.deskripsi = deskripsi;
}
public String detail()
{
String details = Id + ": " + deskripsi;
if(highestBid != null) {
details += " Penawar tertinggi : " +
highestBid.getBid();
}
else {
details += " tidak ada penawaran.";
}
return details;
}
public int getId()
{
return Id;
}
public boolean bidFor(Bid bid)
{
if((highestBid == null) || (bid.getBid() > highestBid.getBid()))
{
highestBid = bid;
return true;
}
else
{
return false;
}
}
public String getDescription()
{
return deskripsi;
}
public Bid getHighestBid()
{
return highestBid;
}
}
Person :
/**
* Tugas 6 PBO-A Lelang
* author M. Fatih
* 07/10/2018
*/
public class Person
{
private final String name;
public Person(String newName)
{
this.name = newName;
}
public String getName()
{
return name;
}
}
Bid :
/**
* Tugas 6 PBO-A Lelang
* author M. Fatih
* 07/10/2018
*/
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 getBid()
{
return value;
}
}
Berikut adalah Outputnya :
Barang yang dilelang adalah :
1. Poster Sagiri
2. Poster Rem
Orang yang menawar adalah :
1. tomi
2. bukan tomi
Sekian Terimakasih :)
Tidak ada komentar:
Posting Komentar