Auction System with BlueJ
Class yang dibutuhkan
Auction
Bid
Bidder
Lot


Sourcecodes
Class Auction
Class Bidder
Class Bid
Class Lot
Auction
Bid
Bidder
Lot


Sourcecodes
Class Auction
/** * @version XY */ import java.util.ArrayList; import java.util.Iterator; public class Auction // Suatu Metode yang bertujuan untuk ngelist barang dalam suatu auction { private ArrayList<Lot> lots; private int nextLotNumber; public Auction() //Sebuah metode yang bertujuan untuk membuat auction baru { lots = new ArrayList<Lot>(); nextLotNumber = 1; //Dimulai dari angka 1 } public void enterLot(String description) { //Suatu metode yang bertujuan untuk menambahkan suatu barang yang baru dalam aution itu lots.add(new Lot(nextLotNumber, description)); nextLotNumber++; } public void showLots() { //Sebuah method yang bertujuan untuk menampilkan seluruh barang yang dilelang dalam auction for(Lot lot : lots) {System.out.println(lot.toString());} } public void bidFor(int lotNumber, Bidder bidder, long value) { Lot selectedLot = getLot(lotNumber); if(selectedLot != null) {boolean successful = selectedLot.bidFor(new Bid(bidder,value)); if (successful) {System.out.println("Bid untuk Nomor Lot " + lotNumber +" Telah berhasil.");} else { //Jika bid gagal, maka akan memberitahukan bid sekarang Bid highestBid = selectedLot.getHighestBid(); System.out.println("Nomor Lot: " + lotNumber + " Nilai bid sudah mencapai: " + highestBid.getValue()); } } } public void close() { System.out.println("Pelelangan telah selesai."); for(Lot lot : lots) { System.out.println(lot.getNumber() + ": " +lot.getDescription()); Bid bid = lot.getHighestBid(); if (bid==null) {System.out.println("(Belum ada tawaran.)"); } else {System.out.println( "Terjual Kepada " + bid.getBidder().getName() + " Senilai "+ bid.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: Nomor Lot " + selectedLot.getNumber() + " Dikembalikkan kepada " + lotNumber); selectedLot = null; } return selectedLot; } else { System.out.println("Nomor Lot: " + lotNumber + " Tidak Tersedia."); return null; } } }
Class Bidder
/** * @version XY */ public class Bidder { private final String name; //sebuah variabel string yang bertujuan untuk meyimpan nama orang public Bidder(String name) //sebuah metode untuk membuat nama orang yang baru {this.name = name;} public String getName() //untuk mengembalikkan nama orang yang baru saja dibua {return name;} }
Class Bid
/** * @version XY */ public class Bid { private final Bidder bidder; //Bertujuan untuk menyimpan nama penawarnya private final long value; //Bertujuan untuk menyimpan harga tawaran public Bid(Bidder bidder, long value) //Sebuah Method yang bertujuan untuk membuat penawar baru dengan menyertai nama dan jumlah tawarannya { this.bidder = bidder; this.value = value; } public Bidder getBidder() //bertujuan untuk mengambalikkan nama penawarannya {return bidder;} public long getValue() //bertujuan untuk mengambalikkan harga tawarannya {return value;} }
Class Lot
/** * Kodingan Lot * * @author (M Thalut Nadhil Q) * @version (TGO 6 Tanggal 8 Oktober 2018) */ public class Lot { private final int number; // Sebuah variabel yang bertujuan untuk menyimpan nomor barang private String description; // Sebuah variabel yang bertujuan untuk menyimpan deskripsi barang private Bid highestBid; // Sebuah variabel yang bertujuan untuk menyimpan nilai tawaran tertinggi public Lot(int number, String description) //Sebuah metode yang bertujuan untuk membuat lot baru beserta nama dan deskripsinya { this.number = number; this.description = description; } public boolean bidFor(Bid bid) //Sebuah metode yang bertujuan untuk mengecek apakah tawaran ini lebih besar dari tawaran yang lebih tinggi { if((highestBid == null)||(bid.getValue() > highestBid.getValue())) { highestBid = bid; return true; } else { return false;} } public String toString() //metode untuk mengembalikkan detail lot { String details = number + ": " + description; if(highestBid!=null) {details+= " Bid: " +highestBid.getValue();} else {details += " (Belum ada bid)";} return details; } public int getNumber() //metode untuk mengembalikkan nomor lot {return number;} public String getDescription() //metode untuk mengembalikkan deskripsi dari lot {return description;} public Bid getHighestBid() //metode untuk mengembalikkan nilai dari tawaran tertinggi {return highestBid;} }
Komentar
Posting Komentar