Auction System

 Auction system merupakan suatu sistem pelelangan, dimana akan ada barang yang dilelang dan juga penawar yang menawar barang tersebut. Seperti pelelangan pada umumnya, akan terjadi proses tawar-menawar, dimana para penawar akan menawar barang dengan harga yang berbeda-beda, dan nantinya  barang akan terjual pada penawar yang menawar dengan harga tertinggi.


1. Auction

Berisi sistem pelelangan (auction system).

  1. /**
  2. * Write a description of class Auction here.
  3. *
  4. * @author Sabrina Lydia S
  5. * @version 26/10/20
  6. */
  7. import java.util.ArrayList;
  8.  
  9. public class Auction
  10. {
  11. private ArrayList<Lot> lots;
  12. private int nextLotNumber;
  13.  
  14. public Auction()
  15. {
  16. lots = new ArrayList<Lot>();
  17. nextLotNumber = 1;
  18. }
  19.  
  20. public void enterLot(String description)
  21. {
  22. lots.add(new Lot(nextLotNumber, description));
  23. nextLotNumber++;
  24. }
  25.  
  26. public void showLots()
  27. {
  28. for(Lot lot : lots)
  29. {
  30. System.out.println(lot.toString());
  31. }
  32. }
  33.  
  34. public void makeABid(int lotNumber, Person bidder, long value)
  35. {
  36. Lot selectedLot = getLot(lotNumber);
  37. if (selectedLot != null)
  38. {
  39. boolean succesful = selectedLot.bidFor(new Bid(bidder, value));
  40. if (succesful)
  41. {
  42. System.out.println("The bid for lot number " + lotNumber + " was succesful.");
  43. }
  44. else
  45. {
  46. Bid highestBid = selectedLot.getHighestBid();
  47. System.out.println("Lot number: " + lotNumber + " already has a bid of: " + highestBid.getValue());
  48. }
  49. }
  50. }
  51.  
  52. public Lot getLot(int lotNumber)
  53. {
  54. if((lotNumber >= 1) && (lotNumber < nextLotNumber))
  55. {
  56. Lot selectedLot = lots.get(lotNumber-1);
  57. if (selectedLot.getNumber() != lotNumber)
  58. {
  59. System.out.println("Internal error: Lot number " + selectedLot.getNumber() + " was returned instead of " + lotNumber);
  60. selectedLot = null;
  61. }
  62. return selectedLot;
  63. }
  64. else
  65. {
  66. System.out.println("Lot number: " + lotNumber + " does not exist.");
  67. return null;
  68. }
  69. }
  70.  
  71. public void close()
  72. {
  73. System.out.println("Closing auction.");
  74. for (Lot lot : lots)
  75. {
  76. System.out.println(lot.getNumber() + ": " + lot.getDescription());
  77. if (lot.getHighestBid() == null)
  78. {
  79. System.out.println (" (No bids) ");
  80. }
  81. else
  82. {
  83. Bid highestBid = lot.getHighestBid();
  84. System.out.println(" sold to " + highestBid.getBidder().getName() + " for " + highestBid.getValue());
  85. }
  86. }
  87. }
  88. }

2. Bid

Berisikian tawaran-tawaran dari penawar (class person).

  1. /**
  2. * Write a description of class Bid here.
  3. *
  4. * @author Sabrina Lydia S
  5. * @version 26/10/20
  6. */
  7. public class Bid
  8. {
  9. private final Person bidder;
  10. private final long value;
  11.  
  12. public Bid(Person bidder, long value)
  13. {
  14. this.bidder = bidder;
  15. this.value = value;
  16. }
  17.  
  18. public Person getBidder()
  19. {
  20. return bidder;
  21. }
  22.  
  23. public long getValue()
  24. {
  25. return value;
  26. }
  27. }

3. Lot

Berisikan item yang dilelang.

  1.  
  2. /**
  3. * Write a description of class Lot here.
  4. *
  5. * @author Sabrina Lydia S
  6. * @version 26/10/20
  7. */
  8. public class Lot
  9. {
  10. private final int number;
  11. private String description;
  12. private Bid highestBid;
  13.  
  14. public Lot (int number, String description)
  15. {
  16. this.number = number;
  17. this.description = description;
  18. this.highestBid = null;
  19. }
  20.  
  21. public boolean bidFor(Bid bid)
  22. {
  23. if (highestBid==null)
  24. {
  25. highestBid = bid;
  26. return true;
  27. }
  28. else if (bid.getValue() > highestBid.getValue())
  29. {
  30. highestBid = bid;
  31. return true;
  32. }
  33. else
  34. {
  35. return false;
  36. }
  37. }
  38.  
  39. public String toString()
  40. {
  41. String details = number + ": " + description;
  42. if (highestBid != null)
  43. {
  44. details += " Bid: " + highestBid.getValue();
  45. }
  46. else
  47. {
  48. details += " (No Bid)";
  49. }
  50. return details;
  51. }
  52.  
  53. public int getNumber()
  54. {
  55. return number;
  56. }
  57.  
  58. public String getDescription()
  59. {
  60. return description;
  61. }
  62.  
  63. public Bid getHighestBid()
  64. {
  65. return highestBid;
  66. }
  67. }

4. Person

Berisikan orang yang menawar barang.

  1.  
  2. /**
  3. * Write a description of class Person here.
  4. *
  5. * @author Sabrina Lydia S
  6. * @version 26/10/20
  7. */
  8. public class Person
  9. {
  10. private final String name;
  11.  
  12. public Person (String name)
  13. {
  14. this.name = name;
  15. }
  16.  
  17. public String getName()
  18. {
  19. return name;
  20. }
  21. }


Langkah-Langkah Menjalankan Program Auction System

1. Membuat objek dengan cara klik kanan pada class Auction lalu memilih new Auction(), di sini saya memberi nama lelang_barang.


2. Memasukan barang yang akan dilelang dengan klik kanan pada object lelang_barang, lalu memilih enterLot, di sini saya memasukan Lukisan , Jam antik.


3. Untuk melihat barang beserta nomor barang tersebut, klik kanan pada object lelang_barang, lalu pilih showLots().


4. Untuk memasukkan para penawar barang, terlebih dahulu harus  membuat objek dengan cara klik kanan pada class Person lalu memilih new Person(), lalu memasukkan nama penawar.


5. Melakukan penawaran barang dengan klik kanan pada object lelang_barang, lalu memilih makeABit, lalu memasukkan nomor barang yang ingin dilelang, nama object dari class person sesuai dengan orang yang melelang, beserta harga yang ditawarkan.


6. Jika pelelangan telah selesai, tutup pelelangan dengan cara klik kanan pada object lelang_barang, lalu pilih close(). Maka akan ditampilkan para pemenang lelang dari masing-masing barang.


Komentar

Postingan populer dari blog ini

Ticket Machine

ETS PWEB-A

Tugas 10 PBKK