Skip to main content

Auction System

Membuat simulasi Auction (Exercise 4.14 Objects-First-with-Java-A-Practical-Introduction-Using-BlueJ-David-J-Barnes), dengan class sebagai berikut :

  1. Auction Class
  2. Lot Class
  3. Bid Class (Class yang harus dilengkapi)
  4. Person Class (Class yang harus dilengkapi)

Auction Class (sebagai class tempat terjadinya proses Auction)
Source Code :
import java.util.ArrayList;
/**
 * Class Utama tempat proses Auction dilakukan
 *
 * @author Satria Ade Veda Karuniawan
 * @version 1.0
 */
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;
        }
    }
}

Lot Class (sebagai class untuk mendaftarkan dan menyimpan data Lot)
Source Code :
/**
 * Class yang berfungsi untuk mendaftarkan serta menyimpan deskripsi Lot
 *
 * @author Satria Ade Veda Karuniawan
 * @version 1.0
 */
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;
    }
}

Bid Class (sebagai penyimpan nilai/informasi Bid)
Source Code :
/**
 * Class yang berfungsi sebagai penyimpan nilai/informasi Bid
 *
 * @author Satria Ade Veda Karuniawan
 * @version 1.0
 */
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;
    }
}

Person Class (sebagai penyimpan data tiap Orang)
Source Code :
/**
 * Class yang berfungsi untuk penyimpan data Orang
 *
 * @author Satria Ade Veda Karuniawan
 * @version 1.0
 */
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;
    }
}

Tampilan WorkSpace

Comments

Popular posts from this blog

House Drawing

Dalam pembuatan gambar Rumah digunakan beberapa library Java sebagai penunjang pemrograman grafis seperti : import javax.swing.* import java.awt.* import java.util.List import java.util.* Lalu class - class yang digunakan dalam pembuatan gambar Rumah ini terbagi menjadi : Shape class, digunakan untuk mengatur bentuk yang ingin ditampilkan. Terdiri atas: Circle Square Triangle Rectangles Library class, bernama Canvas, berfungsi sebagai utility yang memungkinkan untuk memunculkan gambar. Main class, bernama HousePicture, berfungsi untuk menyatukan class-class yang ada dan melakukan function serta variable control seperti ukuran, warna, dan posisi yang ingin dimunculkan pada Canvas. Tampilan workspace : Source code Class Circle import java.awt.*; import java.awt.geom.*; /**  * Write a description of class Circle here.  *  * @author Satria Ade Veda Karuniawan  * @version version 1.0  */ public class Circle {   ...

Image Viewer GUI 4.0 (Final Exam Project)

Rancangan Interface (Workspace) Project lanjutan dari Image Viewer GUI 3.0 dengan implementasi menggunakan BlueJ, hal yang telah selesai diimplementasikan adalah : Frame Panel Button Label dll Dengan daftar class utama sebagai berikut : ImageViewer : merupakan class utama yang berfungsi untuk menampilkan dan menginisialisasi GUI (main class) OFImage : merupakan class yang mendefinisikan objek dari gambar ImagePanel : merupakan class yang salah satunya bertindak sebagai canvas gambar (berbeda dengan ImageViewer, ImagePanel hanya mengatur bagian panel foto saja) ImageFileManager : merupakan class yang bertindak sebagai file handler Dengan daftar inherited class ( Filter ) sebagai berikut : DarkerFilter : class Filter yang berfungsi untuk menggelapkan foto LighterFilter : class Filter yang berfungsi untuk menerangkan foto ThresholdFilter : class Filter yang berfungsi untuk merubah warna foto menjadi 3 tingkatan warna dari grayscale InvertFilter : class Fil...

Image Viewer GUI 3.0

Implementasi Object-Oriented Programming dari Image Viewer, merupakan modifikasi dari postingan Image Viewer GUI yang sebelumnya, library yang dibutuhkan : Awt (Event, Image, Color, Event) Swing File IO Class yang diimplementasikan antara lain : ImageViewer (Sebagai main class yang melakukan display image pada aplikasi GUI) ImagePanel (Sebagai class yang menampilkan OFImage serta menambah functionality) ImageFileManager (Sebagai class utility untuk melakukan load image) OFImage (Sebagai class yang mendefinisikan image sebagai object) Abstract Class   Filter (Sebagai class yang mengatur fungsional filter yang berguna untuk memanipulasi gambar) dioverride oleh : DarkerFilter (Sebagai class yang berfungsi untuk mengubah gambar menjadi lebih gelap) LighterFilter (Sebagai class yang berfungsi untuk mengubah gambar menjadi lebih terang) ThresholdFilter (Sebagai class yang berfungsi untuk mengubah gambar dari warna menjadi gambar grayscale) FishEyeFilter (Sebagai class ...