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
Lot Class
Auction Class
Bid Class
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.
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
Posting Komentar