Auction System


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.
  1. Berikut ini adalah tampilan pada Blue J:
    gambar untuk tampilan blue J
  2. 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;  
           }  
         }  
       }   
  3. 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;  
       }  
     }  
  4. 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;  
       }  
     }  
  5. 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 diinginka
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

Popular posts from this blog

Database Akademik

Implementasi Rumah dan Pemandangan dengan menggunakan Blue J

The Foxes and Rabbits Simulator