Langsung ke konten utama

Tugas 4 PBO: Auction System

Apa itu auction system? Yap, system tersebut adalah kalau di bahasa kita adalah lelang. Kali ini, kita mau membahas pelelangan tanah



Langsung saja, ini dia kodingannya:

Class Bid:
 public class Bid  
 {  
   private final Person bidder;  
   private final long value;  
   public Bid(Person bidder, long value)  
   {  
     this.bidder = bidder;  
     this.value = value;  
   }  
   public Person getBidder()  
   {  
     return bidder;  
   }  
   public long getValue()  
   {  
     return value;  
   }  
 }  
Class Person:
 public class Person  
 {  
   private final String name;  
   public Person(String name)  
   {  
     this.name = name;  
   }  
   public String getName()  
   {  
     return name;  
   }  
 }  
Class Lot:
 public class Lot  
 {  
   private final int number;  
   private String description;  
   private Bid highestBid;  
   public Lot(int number, String description)  
   {  
     this.number = number;  
     this.description = description;  
   }  
   public boolean bidFor(Bid bid)  
   {  
     if((highestBid == null) ||  
         (bid.getValue() > highestBid.getValue())) {  
       highestBid = bid;  
       return true;  
     }  
     else {  
       return false;  
     }  
   }  
   public String toString()  
   {  
     String details = number + ": " + description;  
     if(highestBid != null) {  
       details += "  Penawaran: " +   
             highestBid.getValue();  
     }  
     else {  
       details += "  (Tidak ada penawaran)";  
     }  
     return details;  
   }  
   public int getNumber()  
   {  
     return number;  
   }  
   public String getDescription()  
   {  
     return description;  
   }  
   public Bid getHighestBid()  
   {  
     return highestBid;  
   }  
 }  
Class Auction:
 import java.util.ArrayList;  
 public class Auction  
 {  
   private ArrayList<Lot> lots;  
   private int nextLotNumber;  
   public Auction()  
   {  
     lots = new ArrayList<Lot>();  
     nextLotNumber = 1;  
   }  
   public void enterLot(String description)  
   {  
     lots.add(new Lot(nextLotNumber, description));  
     nextLotNumber++;  
   }  
   public void showLots()  
   {  
     for(Lot lot : lots) {  
       System.out.println(lot.toString());  
     }  
   }  
   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("Penawaran untuk tanah nomor " +  
                   lotNumber + " sukses.");  
       }  
       else {  
         Bid highestBid = selectedLot.getHighestBid();  
         System.out.println("Tanah nomor: " + lotNumber +  
                   " sudah ditawar dengan harga: " +  
                   highestBid.getValue());  
       }  
     }  
   }  
   public Lot getLot(int lotNumber)  
   {  
     if((lotNumber >= 1) && (lotNumber < nextLotNumber)) {  
       Lot selectedLot = lots.get(lotNumber - 1);  
       if(selectedLot.getNumber() != lotNumber) {  
         System.out.println("Kesalahan internal: Tanah nomor: " +  
                   selectedLot.getNumber() +  
                   " dikembalikan dari " +  
                   lotNumber);  
         selectedLot = null;  
       }  
       return selectedLot;  
     }  
     else {  
       System.out.println("Tanah nomor: " + lotNumber +  
                 " tidak ada.");  
       return null;  
     }  
   }  
 }  

Dokumentasi pada saat berjalan:


Itu saja dari mimin, semoga bermanfaat....

Komentar

Postingan populer dari blog ini

Tugas 2 APSI: ERD dan DFD Sistem Ticketing Kereta Api

Tugas 2 APSI: ERD dan DFD Sistem Ticketing Kereta Api DFD Level 0 DFD Level 1 DFD Level 2 ERD

RK 5: Sistematika Sintaks Requirement

Metode Dokumentasi - Rekayasa Kebutuhan: Requirement Engineering: Requirement Engineering atau juga bisa disebut Requirement Analysis merupakan suatu cara untuk menentukan kebutuhan user yang kemudian bisa digunakan sebagai input dalam proses analisis desain sebuah produk. Requirement/Kebutuhan yang dihasilkan dari kegiatan ini haruslah bisa di hitung (quantifiable), detail, dan relevan. Requirement Engineering melibatkan proses komunikasi yang intensif dengan pengguna sistem yang bertujuan untuk menjelas/detaikan spesifikasi kebutuhannya . Komunikasi Intensi ini dilakukan dengan tujuan agar kebutuhan usernya tidak ambigu dan sesuai dengan keinginannya, serta juga menghindarkan project creep (penambahan fitur baru saat implementasi), dan sebagai tolok ukur hasil implementasi produk (menentukan objective saat proses testing dilakukan). Dan karena RE ini berhubungan denga orang (user) maka sangat dianjurkan agar tim yang melakukan RE ini memilki kemampuan komunikasi dan mana...

Tugas 7 PBO: Fox & Rabbit Simulator

Class Location: public class Location { private int row; private int col; public Location(int row, int col) { this.row = row; this.col = col; } public boolean equals(Object obj) { if(obj instanceof Location) { Location other = (Location) obj; return row == other.getRow() && col == other.getCol(); } else { return false; } } public String toString() { return row + "," + col; } public int hashCode() { return (row << 16) + col; } public int getRow() { return row; } public int getCol() { return col; } } Class Field: import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Random; public class Field { private static final Random rand = Randomizer.getRandom(); priva...