Minggu, 07 Oktober 2018

Tugas 6 PBO-A Lelang

Berikut source codenya :



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

a
w
a
z
o
N
a
n
e
R
Batman Begins - Help Select