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

EAS PBO: ImageEditor

Sore.... kali ini mimin mau menampilkan hasil EAS mimin. Kali ini mimin mau membuat aplikasi bernama ImageEditor. Dimana aplikasi ini dapat mengedit gambar secara sederhana. Untuk link soal:  http://fajarbaskoro.blogspot.com/2018/12/evaluasi-akhir-semester-pbo-2018.html 1. Rancangan Interface. Sederhana saja, mirip dengan yang ini: Hanya saja, untuk fungsi tambahannya ditaruh ditoolbar samping kiri dan dibawah fungsi resize (Smaller dan Larger) 2. Class diagram dari mimin: Penjelasan: ImageViewer: Bagian kelas utama untuk aplikasi editor gambar, GUI dari aplikasi, Inisialisasi semua komponen, dan untuk memulai aplikasi (atau bisa disebut juga dengan class Main) ImageFileManager: Untuk memuat dan menyimpan gambar ImagePanel: Komponen swing yang dapat menampilkan class OFImage OFImage: Kelas yang mendefinisikan gambar dalam format OF (Object First) Filter: Kelas Abstrak untuk menjalankan semua filter yang ada didalam program EdgeFilter: Membuat filter efek edge Fis

Tugas 1 APSI: System Request

System Request  Project Name: Rental Motor dan Mobil Matic “Blablabla” Project Sponsor:   Mr. X, Surabaya Business Need:   Untuk membuat penyewaan mobil yang harganya bisa terjangkau dan tentunya efektif untuk masyarakat yang ingin berpergian dengan mobil namun masyarakat tersebut tidak mau direpotkan dengan biaya perawatan mobil atau rumahnya yang tidak mendukung karena ketiadaan garasi.  Selain itu karena memang di kota tempat letak penyewaan kendaraan ini terdapat banyak wisata, dan kebanyakan orang-orang ingin menyewa mobil atau motor untuk bepergian ke wisata-wisata tersebut. Sedangkan mereka tidak memiliki kendaraan entah karena mereka berasal dari luar kota (ke kota ini untuk rekreasi dan menaiki angkutan umum) atau memang karena mereka benar-benar tidak memiliki kendaraan. Mengapa kita pilih Motor dan Mobil Matic? Dikarenakan pada saat ini lumayan sulit untuk mencari penyewaan motor matic (scooter) dan mobil yang bertransmisi otomatis namun dengan harg