Tugas Rumah PBO - B : Membuat Program Music Organizer dan Auction

Nama : Putri Endah Puspitasari
NRP   : 05111740000039
Kelas : PBO - B


Pada pertemuan minggu lalu, kelas kami diberi Tugas Rumah yaitu yang pertama Membuat Program Music Organizer yang terdiri dari Class Music Organizer dan Music Player dan tugas rumah kedua yaitu Membuat Program Auction (Pelelangan) yang terdiri dari Class Auction, Class Lot, Class Bid, dan ClassPerson. 



1. Berikut ini merupakan class-class yang saya gunakan.untuk membuat Program Music Organizer



Berikut ini merupakan Program dari Class Music Organizer

  /**   
  * Class of Music Organizer  
  * Nama : Putri Endah Puspitasari  
  * NRP : 05111740000039  
  * Kelas: PBO - B  
  * Senin,8 Oktober 2018   
  */   
  import java.util.ArrayList;   
  public class MusicOrganizer   
  {   
   private ArrayList<String> files;   
   private MusicPlayer player;   
   // membuat music organizer   
   public MusicOrganizer()   
   {   
    files = new ArrayList<String>();   
    player = new MusicPlayer();   
   }   
   //nambah file   
   public void tambahFile(String namafile)   
   {   
    files.add(namafile);   
   }   
   // input jumlah file pada koleksi   
   public int jumlahFile()   
   {   
    return files.size();   
   }   
   // list file pada koleksi   
   public void listFile(int index)   
   {   
    if(index >= 0 && index < files.size())   
    {   
     String namafile = files.get(index);   
     System.out.println("Music ke-" + index + ": " +namafile);   
    }   
   }   
   // hapus file dari koleksi   
   public void hapusFile(int index)   
   {   
    if(index >= 0 && index < files.size())   
    {   
     files.remove(index);   
    }   
   }   
   public void startPlaying(int index)   
   {   
    String namafile = files.get(index);   
    player.startPlaying(namafile);    
   }   
   public void stopPlaying()   
   {   
    player.stopPlaying();   
   }   
  }   

Berikut ini merupakan Program dari Class Music Player

 /**  
  * Provide basic playing of MP3 files via the javazoom library.  
  * See http://www.javazoom.net/  
  *   
  * @author David J. Barnes and Michael Kölling.  
  * @version 2016.02.29  
  */  
 /**   
  * Playing MP3 files already registered    
  * Nama : Putri Endah Puspitasari  
  * NRP : 05111740000039  
  * Kelas: PBO - B  
  * Selasa,9 Oktober 2018  
  */   
  public class MusicPlayer   
  {   
   private String music;   
   public MusicPlayer()   
   {   
    music = null;   
   }   
   public void startPlaying(String namafile)   
   {   
    music = namafile;   
    System.out.println(music+ " This Music Now Playing");   
   }   
   public void stopPlaying()   
   {   
    System.out.println("This Music Now Stop Playing.");   
   }   
  }   

Berikut ini merupakan contoh output dari program ini :

Pertama tama masukkan dulu file atau music yang akan di masukkan ke daftar music :




Kemudian apabila kita ingin memanggil file music kita, klik button merah di sebelah kanan kemudian pilih fungsi void listFile, file pertama dimulai dari 0, sehingga jika kita memasukkan 0 maka yang terdeteksi adalah music berjudul "Girls Like You" seperti gamabr dibawah ini dan seterusnya : 





Jika ingin memulai suatu lagu, maka pilih fungsi vois startPlaying, kemudian masukkan nomer list lagu yang ingin di putar.


Kemudian akan muncul tampilan seperti ini yang menandakan bahwa lagu Because of You on playing.


Selanjutnya jika kita ingin mematikan lagu yang sedang kita putar, maka pilih fungsi void stopPlaying, sehingga akan muncul tampilan seperti dibawah ini.


2. Berikut ini merupakan class-class yang saya gunakan untuk membuat Program Auction


Berikut ini merupakan program dari Class Auction


 import java.util.ArrayList;  
 /**  
  * A simple model of an auction.  
  * Nama : Putri Endah Puspitasari  
  * NRP : 05111740000039  
  * Kelas: PBO - B  
  * Senin,8 Oktober 2018  
  */  
 public class Auction  
 {  
   // The list of Lots in this auction.  
   private ArrayList<Lot> lots;  
   // The number that will be given to the next lot entered  
   // into this auction.  
   private int nextLotNumber;  
   /**  
    * Create a new auction.  
    */  
   public Auction()  
   {  
     lots = new ArrayList<>();  
     nextLotNumber = 1;  
   }  
   /**  
    * Enter a new lot into the auction.  
    * @param description A description of the lot.  
    */  
   public void enterLot(String description)  
   {  
     lots.add(new Lot(nextLotNumber, description));  
     nextLotNumber++;  
   }  
   /**  
    * Show the full list of lots in this auction.  
    */  
   public void showLots()  
   {  
     for(Lot lot : lots) {  
       System.out.println(lot.toString());  
     }  
   }  
   /**  
    * Make a bid for a lot.  
    * A message is printed indicating whether the bid is  
    * successful or not.  
    *   
    * @param lotNumber The lot being bid for.  
    * @param bidder The person bidding for the lot.  
    * @param value The value of the bid.  
    */  
   public void makeABid(int lotNumber, Person bidder, long value)  
   {  
     Lot selectedLot = getLot(lotNumber);  
     if(selectedLot != null) {  
       Bid bid = new Bid(bidder, value);  
       boolean successful = selectedLot.bidFor(bid);  
       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 the lot with the given number. Return null  
    * if a lot with this number does not exist.  
    * @param lotNumber The number of the lot to return.  
    */  
   public Lot getLot(int lotNumber)  
   {  
     if((lotNumber >= 1) && (lotNumber < nextLotNumber)) {  
       // The number seems to be reasonable.  
       Lot selectedLot = lots.get(lotNumber - 1);  
       // Include a confidence check to be sure we have the  
       // right lot.  
       if(selectedLot.getNumber() != lotNumber) {  
         System.out.println("Internal error: Lot number " +  
                   selectedLot.getNumber() +  
                   " was returned instead of " +  
                   lotNumber);  
         // Don't return an invalid lot.  
         selectedLot = null;  
       }  
       return selectedLot;  
     }  
     else {  
       System.out.println("Lot number: " + lotNumber +  
                 " does not exist.");  
       return null;  
     }  
   }  
 }  

Berikut ini merupakan program dari Class Lot


 /**  
  * A class to model an item (or set of items) in an  
  * auction: a lot.  
  * Nama : Putri Endah Puspitasari  
  * NRP : 05111740000039  
  * Kelas: PBO - B  
  * Senin,8 Oktober 2018  
  */  
 public class Lot  
 {  
   // A unique identifying number.  
   private final int number;  
   // A description of the lot.  
   private String description;  
   // The current highest bid for this lot.  
   private Bid highestBid;  
   /**  
    * Construct a Lot, setting its number and description.  
    * @param number The lot number.  
    * @param description A description of this lot.  
    */  
   public Lot(int number, String description)  
   {  
     this.number = number;  
     this.description = description;  
     this.highestBid = null;  
   }  
   /**  
    * Attempt to bid for this lot. A successful bid  
    * must have a value higher than any existing bid.  
    * @param bid A new bid.  
    * @return true if successful, false otherwise  
    */  
   public boolean bidFor(Bid bid)  
   {  
     if(highestBid == null) {  
       // There is no previous bid.  
       highestBid = bid;  
       return true;  
     }  
     else if(bid.getValue() > highestBid.getValue()) {  
       // The bid is better than the previous one.  
       highestBid = bid;  
       return true;  
     }  
     else {  
       // The bid is not better.  
       return false;  
     }  
   }  
   /**  
    * @return A string representation of this lot's details.  
    */  
   public String toString()  
   {  
     String details = number + ": " + description;  
     if(highestBid != null) {  
       details += "  Bid: " +   
             highestBid.getValue();  
     }  
     else {  
       details += "  (No bid)";  
     }  
     return details;  
   }  
   /**  
    * @return The lot's number.  
    */  
   public int getNumber()  
   {  
     return number;  
   }  
   /**  
    * @return The lot's description.  
    */  
   public String getDescription()  
   {  
     return description;  
   }  
   /**  
    * @return The highest bid for this lot.  
    *     This could be null if there is  
    *     no current bid.  
    */  
   public Bid getHighestBid()  
   {  
     return highestBid;  
   }  
 }  

Berikut ini merupakan program dari Class Bid


 /**  
  * A class that models an auction bid.  
  * Nama : Putri Endah Puspitasari  
  * NRP : 05111740000039  
  * Kelas: PBO - B  
  * Senin,8 Oktober 2018  
  */  
 public class Bid  
 {  
   // The person making the bid.  
   private final Person bidder;  
   // The value of the bid. This could be a large number so  
   // the long type has been used.  
   private final long value;  
   /**  
    * Create a bid.  
    * @param bidder Who is bidding for the lot.  
    * @param value The value of the bid.  
    */  
   public Bid(Person bidder, long value)  
   {  
     this.bidder = bidder;  
     this.value = value;  
   }  
   /**  
    * @return The bidder.  
    */  
   public Person getBidder()  
   {  
     return bidder;  
   }  
   /**  
    * @return The value of the bid.  
    */  
   public long getValue()  
   {  
     return value;  
   }  
 }  

Berikut ini merupakan program dari Class Person


 /**  
  * Maintain details of someone who participates in an auction.  
  * Nama : Putri Endah Puspitasari  
  * NRP : 05111740000039  
  * Kelas: PBO - B  
  * Senin,8 Oktober 2018  
  */  
 public class Person  
 {  
   // The name of this person.  
   private final String name;  
   /**  
    * Create a new person with the given name.  
    * @param name The person's name.  
    */  
   public Person(String name)  
   {  
     this.name = name;  
   }  
   /**  
    * @return The person's name.  
    */  
   public String getName()  
   {  
     return name;  
   }  
 }  

Dan berikut ini merupakan contoh output dari Program Auction ini

Pertama tama, klik class Auction -> new action kemudian beri nama action nya, Kemudian di merah merah action klik kanan kemudian pilih Void enterLot sehingga akan muncul tampilan seperti berikut ini :



langkah selanjtnya yaitu klik Class Person untuk memberi nama orang pertama, sehingga seperti inilah tampilannya :


Setelah selesai menuliskan nama orang pertama kemudian klik button merah action lalu pilih voidmakeABid, sehingga tampilan nya yaitu seperti berikut ini :


Jika sudah kemudian masukkan kembali nama orang kedua yang akan menawar, sehingga tampilannya seperti berikut ini :


Kemudian masukkan nominal yang ditawarkan oleh orang kedua :


Pada akhirnya akan muncul tampilan di bawah ini bahwa tawaran telah selesai, dan yang dipilih adalah tawaran dengan harga tertinggi spserti tertera pada gambar berikut ini :






Komentar

Postingan populer dari blog ini

Tugas Rumah Database Akademik

Foxes and Rabbits Project

PB0-B Class dan Object studi kasus Ticket Machine