Auction Aplication                    PBO TUGAS 3

oleh : Ichsanul aulia
05111840007001


pada kesempatan kali ini saya ingin menulis tentang program lelang sederhana.



1. auction

/**
 * Write a description of class Auction here.
 *
 * @author Ichsanul_aulia
 * @version 1026
 */
import java.util.ArrayList; 
public class Auction
{
 // List barang yang akan dilelang
    private ArrayList<Lot> lots;
    // Nomor barang yang akan dilelang
    private int nextLotNumber;
   
    // Mengadakan pelelangan baru
    public Auction()
    {
        lots = new ArrayList<Lot>();
        nextLotNumber = 1;
    }
   
    // Masukkan barang yang akan dilelang
    public void enterLot(String description)
    {
        lots.add(new Lot(nextLotNumber, description));
        nextLotNumber++;
    }
   
    // Menampilkan barang yang akan dilelang
    public void showLots()
    {
        for (Lot lot: lots)
        {
            System.out.println(lot.toString());
        }
    }
   
    /**
     * Membuat penawaran
     * @param lotNumber = nomor barang yang akan dilelang
     * @param bidder = nama penawar
     * @param value = harga yang ditawarkan
    */
    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("Penawaran untuk barang nomor " + lotNumber + " berhasil.");
            }
           
            else
            {
                // Memberi tahu tawaran mana yang lebih tinggi
                Bid highestBid = selectedLot.getHighestBid();
                System.out.println("Nomor barang: " + lotNumber + " telah menerima tawaran: " + highestBid.getBid());
            }
        }
    }
   
    /**
     * Return barang yang sudah diberi nomor
     * Return NULL jika barang dengan nomor tersebut tidak ada
     * @param lotNumber = nomor barang yang di-return
     */
    public Lot getLot(int lotNumber)
    {
        if ((lotNumber >= 1) && (lotNumber < nextLotNumber))
        {
            // Nomor harus valid
            Lot selectedLot = lots.get(lotNumber - 1);
            // Cek apakah barang benar
            if (selectedLot.getNumber() != lotNumber)
            {
                System.out.println("Error internal: Nomor barang " + selectedLot.getNumber() + " was returned instead of " + lotNumber);
                // Tidak me-return barang invalid
                selectedLot = null;
            }
           
            return selectedLot;
        }
       
        else
        {
            System.out.println("Nomor barang: " + lotNumber + " tidak ada.");
            return null;
        }
    }
   
    // Menutup pelelangan dan mencetak hasilnya
    public void close()
    {
        System.out.println("Lelang ditutup.");
        for (Lot lot: lots)
        {
            System.out.print(lot.getNumber() + ": " + lot.getDescription());
           
            if (lot.getHighestBid() == null)
            {
                System.out.println("(Tidak ada penawaran)");
            }
           
            else
            {
                Bid highestBid = lot.getHighestBid();
                System.out.println(" terjual kepada " + highestBid.getBidder().getName() + " seharga " + highestBid.getBid());
            }
        }
    } 
}

2. person

/**
 * Write a description of class Person here.
 *
 * @author Ichsanul_aulia
 * @version 1026
 */
public class Person
{
  
    // Nama penawar
    private final String name;
   
    /**
     * Menambahkan "person" baru sesuai data penawar
     * @param name = nama penawar
     */
    public Person(String name)
    {
        this.name = name;
    }
   
    /**
     * @return Nama penawar
     */
    public String getName()
    {
        return name;
    }
}

3. Bid

 /**
 * Write a description of class Bid here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Bid
{
    private final Person bidder;  //penawar  
   private final long value;  //menyimpan harga tawaran   
   public Bid(Person bidder, long value) //menginisiasi penawar baru dengan nama dan jumlah tawaran
   {  
       this.bidder = bidder;   
       this.value = value;   
   }   
   public Person getBidder()   
   {   
       return bidder;   
   }   
   public long getBid()   
   {   
       return value;   
   }   
}

4.Lot


/**
 * Write a description of class Lot here.
 *
 * @author Ichsanul_aulia
 * @version 1026
 */
public class Lot
{
  // Nomor "unik" barang untuk identifikasi
    private final int number;
    // Deskripsi barang
    private String description;
    // Penawaran tertinggi sementara
    private Bid highestBid;
   
    /**
     * Mengatur nomor dan deskripsi barang
     * @param number = nomor barang
     * @param description = deskripsi barang
     */
    public Lot(int number, String description)
    {
        this.number = number;
        this.description = description;
        this.highestBid = null;
    }
   
    /**
     * Percobaan penawaran barang
     * Penawaran dianggap berhasil apabila harga yang ditawarkan lebih tinggi dari penawaran lain
     * @param bid = penawaran baru
     * @return true jika berhasil, false jika gagal
     */
    public boolean bidFor(Bid bid)
    {
        if (highestBid == null) {
            // Belum ada penawaran
            highestBid = bid;
            return true;
        }
       
        else if (bid.getBid() > highestBid.getBid())
        {
            // Penawaran lebih tinggi dari penawaran sebelumnya
            highestBid = bid;
            return true;
        }
       
        else
        {
            // Penawaran lebih rendah dari penawaran sebelumnya
            return false;
        }
    }
   
    /**
     * @return Detail barang lelang
     */
    public String toString()
    {
        String details = number + ": " + description;
       
        if (highestBid != null)
        {
            details += "    Bid: " + highestBid.getBid();
        }
       
        else
        {
            details += "    (No bid)";
        }
       
        return details;
    }
   
    /**
     * @return Nomor barang
     */
    public int getNumber()
    {
        return number;
    }
   
    /**
     * @return Deskripsi barang
     */
    public String getDescription()
    {
        return description;
    }
   
    /**
     * @return Penawaran tertinggi. Bernilai null jika belum ada tawaran.
     */
    public Bid getHighestBid()
    {
        return highestBid;
    }
}

mari kita jalankan

1. pertama kita compile dulu class Aucion java, kemudian klik kanan dan pilih new Auction(). disini saya memberi nama auction 3.

2.klik kanan pada auction 3, dan pilih enter lot() untuk memasukkan nama barang dalam string. ingat untuk memakai tanda petik. disini saya memakai "gucci" untuk ditambahkan. untuk melihat barang yang sudah dimasukkan klik kanan pada auction dan pilih  showlots().


3. untuk melakukan penawaran perlu diinisiasi kelas person. klik kananpada person dan pilih new person(String name). disini saya memberikan person3 bernama slamet. jangan lupa menggunakan "".
maka akan terbentuk person3 di sebelah auction.



4. kemudian melakukan penawaran. klik kanan pada auction3 dan pilih makeBid().
masukkan nomor barang. gucci nomor 1. urutan person, slamet person3. dan jumlah tawaran.


maka tawaran selesai. tampilkan pada auction klik kanan dan pilih showlots().


kemidian dapat close dimenu auction pilih close().




dan begitulah pengimplikasian applikasi lelang sederhana. sampai jumpa, dan terimakasih.





Komentar

Postingan populer dari blog ini

Aplikasi Support System