Nama : Isnaini Nurul KurniaSari
NRP : 05111740000010
Kelas : PBO-B
Auction System
Hallo teman-teman, kali ini saya membuat sistem perlelangan.
Pada sistem yang saya buat, kita harus membuat sebuah object auction, kemudian
menambahkan item apa yang akan dilelangkan. Dengan menambahkan
person/orang yang ingin melakukan bid (penawaran) terhadap item yang
dilelangkan.Orang tersebut akan terdaftar dalam sistem perlelangan sehingga dapat melakukan bid terhadap item yang dilelangkan.
Berikut adalah Class yang dibutuhkan :
- Class Auction yaitu class utama tempat proses auction (perlelangan) dilakukan.
- Class Bid yaitu class yang digunakan untuk menangani tawaran yang masuk dari seseorang/person terhadap suatu barang lelang.
- Class Lot yaitu class yang menangani barang lelang yang berisi nama barang dan nomor barang.
- Class Person yaitu class yang berisi identitas berupa nama dari orang yang melakukan pelelangan.
- Berikut ini adalah tampilan pada Blue J:
|
gambar untuk tampilan blue J |
- Berikut ini adalah source code untuk Class Auction:
/**
* Model lelang sederhana.
* Pelalangan mempertahankan daftar dari barang lelang.
*
* @Author (Isnaini Nurul KurniaSari)
* @NRP (05111740000010)
* @Class (PBO B)
* @Version(Surabaya, 08 Oktober 2018)
*/
import java.util.ArrayList;
import java.util.Iterator;
public class Auction
{
// Daftar barang lelang pada pelelangan.
private ArrayList<Lot> lots;
// Nomor yang akan diberikan ke barang lelang berikutnya dimasukkan.
// masuk ke dalam pelelangan.
private int nextLotNumber;
/**
* Membuat pelelangan baru
*/
public Auction()
{
lots = new ArrayList<Lot>();
nextLotNumber = 1;
}
/**
* Memasukkan barang lelang baru ke dalam pelelangan.
* @param description A (deksripsi dari barang lelang)
*/
public void enterLot(String description)
{
lots.add(new Lot(nextLotNumber, description));
nextLotNumber++;
}
/***
* Menunjukkan daftar dari barang lelang pada pelelalangan
*/
public void showLots()
{
for(Lot lot : lots){
System.out.println(lot.toString());
}
}
/**
* Menawar barang lelang.
* Pesan yang menunjukkan apakah tawaran berhasil atau tidak dicetak.
* @param number (Jumlah barang lelaan yang sedang ditawar).
* @param bidder (Orang yang menawar barang lelaan).
* param value (Nilai dari suatu tawaran)
*/
public void bidFor(int lotNumber, Person bidder, long value)
{
Lot selectedLot = getLot(lotNumber);
if(selectedLot!=null){
boolean successful = selectedLot.bidFor(new Bid(bidder,value));
if (successful) {
System.out.println("The bid for lot number " + lotNumber +
" was successful.");
}
else {
//Report which bid is higher.
Bid highestBid = selectedLot.getHighestBid();
System.out.println("Lot number: " + lotNumber +
" already has a bid of: " + highestBid.getValue());
}
}
}
/**
* Return (daftar barang lelaan yang tidak terjual).
*/
public void close()
{
System.out.println("The auction is closed.");
for(Lot lot : lots) {
System.out.println(lot.getNumber() + ": " +lot.getDescription());
Bid bid = lot.getHighestBid();
if (bid==null){
System.out.println("(No Bids for this lot.)");
}
else {
System.out.println( "sold to " +
bid.getBidder().getName() + " for "
+ bid.getValue());
}
}
}
/**
* Return barang lelaan dengan nomer yang telah diberikan.
* Return null (batal) jika barang lelaan dengan nomor ini tidak ada.
* @param lotNumber (jumlah barang lelaan untuk kembali).
*/
public Lot getLot(int lotNumber)
{
if((lotNumber >= 1) && (lotNumber < nextLotNumber)) {
// jumlahnya kelihatan realistis
Lot selectedLot = lots.get(lotNumber - 1);
// Percayakan untuk mengecek dengan baik barang lelaan.
if(selectedLot.getNumber() != lotNumber) {
System.out.println("Internal error: lot number " +
selectedLot.getNumber() + " was returned instead of " +
lotNumber);
// jangan mengembalikan barang lelaan yang tidak valid.
selectedLot = null;
}
return selectedLot;
}
else {
System.out.println("lot number: " + lotNumber + " does not exist.");
return null;
}
}
}
- Berikut ini adalah source code untuk Class Bid:
/**
* Kelas yang memodelkan tawaran lelang
* Ini berisi referensi ke Orang yang menawar dan jumlah tawaran
*
* @Author (Isnaini Nurul KurniaSari)
* @NRP (05111740000010)
* @Class (PBO B)
* @Version(Surabaya, 08 Oktober 2018)
*/
public class Bid
{
// Orang yang membuat penawaran
private final Person bidder;
// Nilai tawaran.
//Ini bisa menjadi jumlah yang besar sehingga tipe long telah digunakan
private final long value;
/**
* Membuat tawaran
* @param bidder (Siapa yang menawar lot/barang lelang itu)
* @param value (nilai dari suatu penawaran)
*/
public Bid(Person bidder, long value)
{
this.bidder = bidder;
this.value = value;
}
/**
*@return mengembalikan bidder
*/
public Person getBidder()
{
return bidder;
}
/**
* @return The value of the bid.
*/
public long getValue()
{
return value;
}
}
- Berikut ini adalah source code untuk Class Lot:
/**
* Kelas untuk memodelkan item item (atau serangkaian item)
* Dalam lelang: banyak.
*
* @Author (Isnaini Nurul KurniaSari)
* @NRP (05111740000010)
* @Class (PBO B)
* @Version(Surabaya, 08 Oktober 2018)
*/
public class Lot
{
// Nomor identifikasi unik.
private final int number;
// Dekskripsi barang yang dilelang.
private String description;
// Tawaran tertinggi saat ini untuk barang yang dilelang.
private Bid highestBid;
/**
* Membangun barang yang dilelang.
* Mengatur jumlah dan deskripsinya.
* @param number (jumlah dari barang yang dilelang).
* @param description (dekskripsi dari barang yang dilelang).
*/
public Lot(int number, String description)
{
this.number = number;
this.description = description;
}
/**
* Berusahalah menawar untuk barang lelang ini.
* Tawaran yang sukses.
* Harus memiliki nilai lebih tinggi daripada tawaran yang ada.
* @param bid (tawaran yang baru).
* @return true (jika berhasil), false (jika sebaliknya).
*/
public boolean bidFor(Bid bid)
{
if((highestBid == null)||(bid.getValue() > highestBid.getValue()))
{
// Sejauh ini, tawaran ini adalah yang terbaik.
highestBid = bid;
return true;
}
else{
return false;
}
}
/**
* @return A string (representasi dari rincian barang lelang).
*/
public String toString()
{
String details = number + ": " + description;
if(highestBid!=null) {
details+= " Bid: " +highestBid.getValue();
}
else {
details += " (No bid)";
}
return details;
}
/**
* @return number (jumlah dari barang lelang).
*/
public int getNumber()
{
return number;
}
/**
* @return description (dekskripsi barang lelang)
*/
public String getDescription()
{
return description;
}
/**
* @return The highest bid (penawaran tertinggi untuk barang lelang)
* Ini bisa batal(null), jika tidak ada tawaran saat ini.
*/
public Bid getHighestBid()
{
return highestBid;
}
}
- Berikut ini adalah source code untuk Class Person:/** * class Bid
/**
* Mempertahankan detail seseorang yang berpartisipasi dalam lelang
*
* @Author (Isnaini Nurul KurniaSari)
* @NRP (05111740000010)
* @Class (PBO B)
* @Version(Surabaya, 08 Oktober 2018)
*/
public class Person
{
// Nama orang
private final String name;
/**
* Membuat orang baru dengan nama yang diberikan
* @param name (Nama orang)
*/
public Person(String name)
{
this.name = name;
}
/**
* @return (Nama orangnya)*
*/
public String getName()
{
return name;
}
}
Berikut adalah langkah-langkah untuk membuat Auction System pada Blue J:
|
klik kanan pada class Auction kemudian klik new Auction() |
|
Klik kanan pada Auction1 kemudian klik void enterLot(String description) |
Kemudian ketik barang lelang pertama
|
Klik kanan pada Auction1 kemudian klik void enterLot(String description) |
|
Kemudian ketik barang lelang kedua |
|
melihat list pada barang lelang |
|
klik kanan pada Class Person, klik new Person(String Name) untuk orang pertama |
|
ketikkan nama pada person1 |
|
klik kanan pada Class Person, klik new Person(String Name) untuk orang kedua |
|
ketikkan nama pada person2 |
|
klik kanan pada auction, klik void bidFor(int Lot Number, Person Bidder, long value) |
|
orang pertama yang akan melelang sejumlah barang dengan harga tawar yang diinginkan |
|
klik kanan pada auction, klik void bidFor(int Lot Number, Person Bidder, long value) |
|
orang kedua yang akan melelang sejumlah barang dengan harga tawar yang diinginkan
klik kanan pada auction, klik void showLots()
klik kanan auction, klik void close()
Sistem Perlelangan telah berhasil :)
Terimakasih Teman-teman.
SEMOGA BERMANFAAT :)
|
Comments
Post a Comment