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:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFLStMrW9w5yaI4QikHlmCG1UQXhiPv1OIHXomEcCjafVGqO_q_f1YIHcepVKIthLN76tipVLnj8Zi-Xf1SbawunCkC45mfQpNQ-uLwT3HSr4uL1C8NJbaeWQRqQ58DUqmgLSIQWB6YD2w/s400/66.png) |
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:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdGdKbKtCymD54M_rGjoVtUkOb6Fpdcjqa5Zfe6E6bWwFvBqKAFBNkTWxklxbcTR2rhf3WcSQmNNcgSeEWH8HWYJElXXjoZgUh7CqfKjSMihwZkckONcA_u3DHchQCHLttzcXNHcOcwTQ7/s400/1.png) |
klik kanan pada class Auction kemudian klik new Auction() |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcSL-ic9mGAOWoSw3-8W9IUxCPWPTpvGiAM0Sx8md3fMS43wmq2HL_04QRAj6wbDwGR9GR4zcVX1Q779DGw2-G8DWIVsV1dC-gBXmLohV4SiVPXx5DyeY2E2AsPFrX9p1EOwKCNGobMvHe/s400/2.png) |
Klik kanan pada Auction1 kemudian klik void enterLot(String description) |
Kemudian ketik barang lelang pertama
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcSL-ic9mGAOWoSw3-8W9IUxCPWPTpvGiAM0Sx8md3fMS43wmq2HL_04QRAj6wbDwGR9GR4zcVX1Q779DGw2-G8DWIVsV1dC-gBXmLohV4SiVPXx5DyeY2E2AsPFrX9p1EOwKCNGobMvHe/s400/2.png) |
Klik kanan pada Auction1 kemudian klik void enterLot(String description) |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjknvvAKK5U0C2MOgq0cnqmhmFhX0eMRQPucLY5PRgnyzjmC6Ka14II7NucWQe2h_Xj3ozxkKdsPxOLopY1jm_iPoUkhCngmbV6B4TpSpbivMpVtmIZy98rYcRXJoLMKtGHVFX_5S7WgICH/s400/4.png) |
Kemudian ketik barang lelang kedua |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5qSbM_KVIveKXrV4quy5EV2pa2DcB3AE2T9Dec7753Gvb4KPHQNV7gHgkqagIX7Ac-cF8z7eCtvHr94LyQDzsASxyDszoToaD_pJ2i7_kVrwqbtW4qhk7zccytcRJJtdt9sXPQwWIYPSc/s400/5.png) |
melihat list pada barang lelang |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKyDLf7elYa7zwwcjevYj0fjD57dghurpMxblkicEaJUwrz7eflAj3YiW0ZnXOKH_Bm1LvgunLetH1Fj9hyWH6jyropE_JFycZ3BtarCQoo_VTNFF1tfVtHo5aP6Kj_l_nLxI5KFuCOpDT/s400/6.png) |
klik kanan pada Class Person, klik new Person(String Name) untuk orang pertama |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdvTXZUDMt__ZmJwAuvYVktm6928OE5_acMZ_UIfkqmVaoko9EGqf85gJ7reXFPg2UwejYkZ1Telx28KaC9Pb9iJFLIfcHK74zTUeYSay4aiau1a5N4b4lDcCCnq1IB4HY_HNaOYe0VVAw/s400/7%2528person1%2529.png) |
ketikkan nama pada person1 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ1244jeKzX2fiRxwSDka_G9lDB1J3hwmrA5nhM7HV5QhO8hcVACqrMBPOQ_YTo95dHkhpTprrf54y3byHcMrkbzWiSZHYSQzAA2eoGY3tAe_FfhmQNgWS_lOG5p4kLpBAqzv8Bj-MaJ1E/s400/8%2528insert+person2%2529.png) |
klik kanan pada Class Person, klik new Person(String Name) untuk orang kedua |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP5R_vv0-3gLk1sQoLGxoWrzXYAlVdbT3di17cb1J562W2Be07K8Q-_F3hUyEvCTpz4_Gg0V3e5D6iFygezqtYef7JpHWxItJg-HE3ROWS1vYEXA_emhv4AUqjKtY_Dj2mrasJzyi_hVy0/s400/9%2528person2%2529.png) |
ketikkan nama pada person2 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI9SgFxlK9wd_ikHWVEX-WiXuA0uYdd9pRHkdOEcOowm6fXbbQ3E-QR8feAnR9UXf9isNIPsaTH6llcG1S-4JYVQkFxjaTgMbbdg5BWiifRa869BDiY3FlEUf1yuqS4mjjLb4sKSNKWdxz/s400/9.png) |
klik kanan pada auction, klik void bidFor(int Lot Number, Person Bidder, long value) |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf0RieEBtg6bnCSTcwctZdiHO6akKe3HNwkJbjavab9eyIxgSWERMyyaTXV3kUdbZZQcdqRLK897RlBBywyYoYt86fMkqotYIWaxvPI0wq2Kq6c2RYtOEbydwrir4m48f03MAyEcqbSP73/s400/10.png) |
orang pertama yang akan melelang sejumlah barang dengan harga tawar yang diinginkan |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpbA8N56gFSJcFOEZW0BGmzwLQYu66-L4-am3pVghF3zvOHowByX84_f3rsmh0kZ0r1QClOqepdQ3zh3ETbrLPTARJRr0BzUFo9wxLG4ETU1VMfv5AmA_t4vqDTnnBZOnKkqH2dsZ5xe18/s400/11.png) |
klik kanan pada auction, klik void bidFor(int Lot Number, Person Bidder, long value) |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_u2zT0GXtDsbKpdrTeO2tgv91oZFn4L1-kM658RDkfF7M8nRUplf46tiK1AhGZeNmImcYELKGVRUJu3O89d7QNmoSYjdL-vEHXNT_4-IebLgX7hCVr1R6ZXd5VNc-vVvlkXRXxuPvbb0o/s400/12.png) |
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