TUGAS 4 AUCTION PROJECT

Tugas yang diberikan pada pertemuan 4 kali ini ialah mengenai Auction Project atau dapat disebut dengan proses pelelangan barang. Auction project ini merupakan penerapan dari grouping objects dalam java.

Berikut merupakan dokumentasi dari Auction Project yang telah dibuat :

Source Code

1. Class Auction
/**
* Making a class called Auction.
*
* @author FAIS RAFII
* @version 27/10/2020
*/
import java.util.ArrayList;
public class Auction
{
private final ArrayList<Lot> lots; //list barang
private int nextLotNumber; //angka yg akan diberikan untuk barang yang selanjutnya akan dimasukkan pada sistem auction.
//Membuat auction baru
public Auction()
{
lots = new ArrayList<Lot>();
nextLotNumber = 1;
}
public void enterLot(String description)
{
lots.add(new Lot(nextLotNumber, description));
nextLotNumber++;
}
//menunjukkan seluruh list barang pada sistem auction.
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 successful = selectedLot.bidFor(new Bid(bidder, value));
if(successful)
{
System.out.println("The bid for lot number " + lotNumber + " was successful.");
}
else
{
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))
{
Lot selectedLot = lots.get(lotNumber-1);
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 hasil_lelang()
{
System.out.println("Hasil lelang : ");
for(Lot lot : lots)
{
System.out.println(lot.getNumber() + ": " + lot.getDescription());
Bid bid = lot.getHighestBid();
if(bid==null)
{
System.out.println("Tidak ada penawaran");
}
else
{
System.out.println("Lelang jatuh kepada : " + bid.getBidder().getName() +
"\n dengan harga :\t" + bid.getValue());
}
}
}
}

2. Class Bid
/**
* Making a class called Bid.
*
* @author FAIS RAFII
* @version 28/10/2020
*/
public class Bid
{
private final Person bidder; //Orang yang melakukan penawaran harga
private final long value;
public Bid(Person bidder, long value) //membuat penawaran harga
{
this.bidder = bidder;
this.value = value;
}
public Person getBidder()
{
return bidder;
}
public long getValue()
{
return value;
}
}

3. Class Lot
/**
* Make a class called Lot.
*
* @author FAIS RAFII
* @version 27/10/2020
*/
public class Lot
{
private final int number;
private final 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;
}
}

4. Class Person
/**
* Write a description of class Person here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Person
{
private static String name;
public Person(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}




SETELAH MEMASUKKAN DATA YANG DIPERLUKAN,OUTPUTNYA DEMIKIAN