TUGAS PBO-B (SISTEM AUCTION)

Tugas mata kuliah Pemrograman Berbasis Objek minggu ke-5 ini adalah membuat sistem Auction


Gambar class untuk tugas kali ini:



source code class Auction

import java.util.ArrayList;   
/**
 * Write a description of class Auction here.
 *
 * @author (Faizal Mabrury)
 * @version (a version number or a date)
 */
public class Auction  
{  
    private ArrayList<Lot> lots;  
    private int nextLotNumber;  
    //Constructor  
    public Auction()  
    {  
        lots = new ArrayList<Lot>();  
        nextLotNumber = 1;  
    }  
    //Mendaftarkan lot baru  
    public void enterLot(String description)  
    {  
        lots.add(new Lot(nextLotNumber, description));  
        nextLotNumber++;  
    }  
    //Print Semua Lot  
    public void showLots()  
    {  
        for(Lot lot : lots) 
        {  
            System.out.println(lot.toString());  
        }  
    }  
    //Melakukan Bid pada suatu Lot  
    public void makeABid(int lotNumber, Person bidder, long value)  
    {  
        Lot selectedLot = getLot(lotNumber);  
        if(selectedLot != null) {  
            Bid bid = new Bid(bidder, value);  
            boolean successful = selectedLot.bidFor(bid);  
            if(successful) 
            {  
                System.out.println("Bid untuk Lot pada urutan " + lotNumber + " sukses didaftarkan.");  
            }  
            else 
            {  
                Bid highestBid = selectedLot.getHighestBid();  
                System.out.println("Lot urutan ke: " + lotNumber + " memiliki Bid sebesar: " + highestBid.getValue());  
            }  
        }  
    }  
    //Mencari Lot yang terdaftar  
    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 urutan ke " +selectedLot.getNumber() + " dimunculkan, sebagai ganti dari " +lotNumber);  
                selectedLot = null;  
            }  
            return selectedLot;  
        }  
        else 
        {  
            System.out.println("Lot urutan ke: " + lotNumber +" tidak ditemukan.");  
            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());    
            }    
        }    
    }     
}  


source code class Lot


/**
 * Write a description of class Lot here.
 *
 * @author (Faizal Mabrury)
 * @version (a version number or a date)
 */
public class Lot  
{  
    //ID Lot  
    private final int number;  
    //Deskripsi dari sebuah Lot  
    private String description;  
    //Bid tertinggi dari Lot  
    private Bid highestBid;  
    //Constructor  
    public Lot(int number, String description)  
    {  
        this.number = number;  
        this.description = description;  
        this.highestBid = null;  
    }  
    public boolean bidFor(Bid bid)  
    {  
        if(highestBid == null) 
        {  
            //Bid belum ada  
            highestBid = bid;  
            return true;  
        }  
        else if(bid.getValue() > highestBid.getValue()) 
        {  
            //Bid lebih besar dari nilai Bid sebelumnya  
            highestBid = bid;  
            return true;  
        }  
        else 
        {  
            //Bid lebih kecil dari nilai Bid sebelumnya  
            return false;  
        }  
    }  
    //Deskripsi rincian Lot  
    public String toString()  
    {  
        String details = number + ": " + description;  
        if(highestBid != null) 
        {  
            details += "  Bid: " +  
             highestBid.getValue();  
            }  
            else 
            {  
           details += "  (No bid)";  
        }  
        return details;  
    }  
    //Return ID Lot  
    public int getNumber()  
    {  
        return number;  
    }  
    //Return Deskripsi Lot  
    public String getDescription()  
    {  
        return description;  
    }  
    //Return Bid tertinggi  
    public Bid getHighestBid()  
    {  
        return highestBid;  
    }  
} 


source code class


/**
 * Write a description of class Bid here.
 *
 * @author (Faizal Mabrury)
 * @version (a version number or a date)
 */
public class Bid  
{  
    //variable yang hanya bisa diinisialisasi 1 kali  
    private final Person biddername;  
    private final long value;  
    public Bid(Person name, long v)  
    {  
        this.biddername = name;  
        this.value = v;  
    }  
    //value nama bidder  
    public Person getBidder()  
    {  
        return biddername;  
    }  
    //value berupa nilai bid  
    public long getValue()  
    {  
        return value;  
    }  
} 


source code class Person


/**
 * Write a description of class Person here.
 *
 * @author (Faizal Mabrury)
 * @version (a version number or a date)
 */
public class Person  
{  
    //variable final untuk nama orang (1 kali inisialisasi)  
    private final String personname;  
    //constructor  
    public Person(String name)  
    {  
        this.personname = name;  
    }  
    //value berupa nama orang  
    public String getName()  
    {  
         return personname;  
    }  
}  

Komentar