Music Organizer & Auction Machine

Hallo semuanya, kali ini saya akan membuat music organizer dan sistem lelang. Langsung saja kita menuju ke cara membuat music organizer.


MUSIC ORGANIZER

1. Class Music Organizer

 /**  
  * Write a description of class MusicOrganizer here.  
  *  
  * @author (Lutfiyanti)  
  * @version (8-10-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();   
   }   
   //menambah file   
   public void addFile(String filename)   
   {   
    files.add(filename);   
   }   
   // input jumlah file pada koleksi   
   public int numberFile()   
   {   
    return files.size();   
   }   
   // list file pada koleksi   
   public void listFile(int index)   
   {   
    if(index >= 0 && index < files.size())   
    {   
     String filename = files.get(index);   
     System.out.println("Lagu ke-" + index + ": " +filename);   
    }   
   }   
   // hapus file dari koleksi   
   public void deleteFile(int index)   
   {   
    if(index >= 0 && index < files.size())   
    {   
     files.remove(index);   
    }   
   }   
   public void startPlaying(int index)   
   {   
    String filename = files.get(index);   
    player.startPlaying(filename);    
   }   
   public void stopPlaying()   
   {   
    player.stopPlaying();   
   }   
  }   



2. Class MusicPlayer

 /**  
  * Write a description of class MusicPlayer here.  
  *  
  * @author (Lutfiyanti)  
  * @version (8-10-2018)  
  */  
 public class MusicPlayer   
  {   
   private String lagu;   
   public MusicPlayer()   
   {   
    lagu = null;   
   }   
   public void startPlaying(String filename)   
   {   
    lagu = filename;   
    System.out.println(lagu+ " IS NOW ON PLAYING");   
   }   
   public void stopPlaying()   
   {   
    System.out.println("THE MUSIC STOPS PLAYING.");   
   }   
  }   

2. Class MusicPlayer


 /**  
  * Write a description of class MusicPlayer here.  
  *  
  * @author (Lutfiyanti)  
  * @version (8-10-2018)  
  */  
 public class MusicPlayer   
  {   
   private String lagu;   
   public MusicPlayer()   
   {   
    lagu = null;   
   }   
   public void startPlaying(String filename)   
   {   
    lagu = filename;   
    System.out.println(lagu+ " IS NOW ON PLAYING");   
   }   
   public void stopPlaying()   
   {   
    System.out.println("THE MUSIC STOPS PLAYING.");   
   }   
  }   


Cara kerjanya adalah

1. Tambahkan musik kedalam playlist


2. Untuk mengecek list bisa memanggil fungsi void listFile



3. Untuk memulai lagu bisa memanggil fungsi startPlaying dan menginput list lagu yang ingin di mainkan



4. Untuk menghentikan lagu bisa emanggil fungsi stopPlaying





AUCTION

Yang kedua kita akan emmbuat sistem lelang yang terdiri dari beberapa class yaitu

1. Class Bid
Class ini digunakan untuk menangani tawaran yang masuk dari seseorang (person) terhadap suatu barang.  

 /**  
  * Write a description of class bid here.  
  *  
  * @author (Lutfiyanti)  
  * @version (08-10-2018)  
  */  
  public class Bid   
  {   
   private final Person bidder; //orang yang akan melakukan tawaran   
   private final long value;  //untuk menyimpan harga tawaran   
   //fungsi untuk membuat penawar baru dengan nama beserta jumlah tawarannya   
   public Bid(Person bidder, long value)   
   {   
    this.bidder = bidder;   
    this.value = value;   
   }   
   //fungsi untuk mengembalikan nama penawar   
   public Person getBidder()   
   {   
    return bidder;   
   }   
   //fungsi untuk mengembalikan harga tawar   
   public long getBid()   
   {   
    return value;   
   }   
  }   

2. Class Lot
Class ini menangani barang yang dilelang. Berisi nomor barang dan nama barang.

 /**  
  * Write a description of class Lot here.  
  *  
  * @author (your name)  
  * @version (a version number or a date)  
  */  
 //fungsi untuk membuat sebuah Lot(list barang dalam pelelangan)   
  public class Lot   
  {   
   private final int Id;   //id barang   
   private String deskripsi;  //deskripsi barang   
   private Bid highestBid;   //tawaran tertinggi untuk barang tersebut   
   public Lot(int number, String deskripsi)   
   {//buat lot baru dengan id dan deskripsi   
    this.Id = number;   
    this.deskripsi = deskripsi;   
   }   
   //fungsi untuk mengembalikan nilai dari lot (id beserta tawaran tertinggi)   
   public String detail()   
   {   
    String details = Id + ": " + deskripsi;   
    if(highestBid != null) {   
     details += " Penawar tertinggi : " +    
        highestBid.getBid();   
    }   
    else {   
     details += " tidak ada penawaran.";   
    }   
    return details;   
   }   
   //fungsi untuk mengembalikan id lot   
   public int getId()   
   {   
    return Id;   
   }   
   //parameter nya merupakan bid untuk cek harga bid sebelumnya   
   //fungsi untuk memeriksa apakah tawaran sekarang lebih besar daripada tawaran tertinggi   
   public boolean bidFor(Bid bid)   
   {   
    if((highestBid == null) || (bid.getBid() > highestBid.getBid()))    
    {   
     //jika benar, maka tawaran ini merupakan tawaran tertinggi   
     highestBid = bid;   
     return true;   
    }   
    else    
    {   
     return false;   
    }   
   }   
   //fungsi untuk mengembalikan deskripsi dari lot   
   public String getDescription()   
   {   
    return deskripsi;   
   }   
   //fungsi untuk mengembalikan nilai tawaran tertinggi dari lot   
   public Bid getHighestBid()   
   {   
    return highestBid;   
   }   
  }   

3. Class Person
Class ini berisi identitas berupa nama dari orang yang mengikuti lelang.

 /**  
  * Write a description of class Person here.  
  *  
  * @author (your name)  
  * @version (a version number or a date)  
  */  
  public class Person   
  {   
   //variabel berbentuk string untuk menyimpan nama orang   
   private final String name;   
   //fungsi untuk membuat nama orang baru   
   public Person(String newName)   
   {   
    this.name = newName;   
   }   
   //fungsi untuk mengembalikan nama orang yang sudah dibuat   
   public String getName()   
   {   
    return name;   
   }   
  }  


4. Class Auction
Di Class ini sistem dirangkai menjadi satu.

 /**  
  * Write a description of class Auction here.  
  *  
  * @author (Lutfiyanti)  
  * @version (8-10-2018)  
  */  
  import java.util.ArrayList;   
  public class Auction   
  {   
   private ArrayList<Lot> lots;  //membuat sebuah list barang dalam suatu auction   
   private int LotNumber;   
   //fungsi untuk membuat Auction yang baru   
   public Auction()   
   {   
    lots = new ArrayList<Lot>(); //membuat list barang   
    LotNumber = 1;    //nomor barang dimulai dari 1   
   }   
   //fungsi untuk menambahkan barang baru ke dalam Auction   
   public void enterLot(String deskripsi)   
   {   
    lots.add(new Lot(LotNumber, deskripsi));   
    LotNumber++;   
   }   
   //fungsi untuk melakukan penawaran (bid)   
   public void MakeBid(int CurrentlotNumber, Person bidder, long value)   
   {   
    Lot selectedLot = getLot(CurrentlotNumber);   
    if(selectedLot != null)    
    {   
     //boolean untuk memeriksa apakan penawaran berhasil dilakukan atau tidak.   
     boolean periksa = selectedLot.bidFor(new Bid(bidder, value));   
     //memeriksa dengan penawaran sebelumnya, lebih besar atau tidak.   
     if(periksa)    
     {   
      System.out.println("Penawar dengan nomor Lot :" +   
           CurrentlotNumber + " telah berhasil dilakukan."   
           + " Penawaran dilakukan oleh " +bidder.getName());   
     }   
     //memerika jika penawar sebelumnya lebih besar, maka penawaran gagal dilakukan.   
     else   
     {   
      Bid highestBid = selectedLot.getHighestBid();   
      System.out.println("Penawaran dengan nomor lot " + CurrentlotNumber +   
           " sudah ditawar sebesar : " +   
           highestBid.getBid());   
     }   
    }   
   }   
   //fungsi untuk menampilkan semua barang yang akan dilelang   
   public void showLots()   
   {   
    for(Lot lot : lots)    
    {   
     System.out.println(lot.detail());   
    }   
   }   
   //fungsi untuk mengambil nilai ID Lot yang dibutuhkan.   
   public Lot getLot(int CurrentlotNumber)   
   {   
    //periksa apakah LotNumber ada atau tidak   
    if((CurrentlotNumber >= 1) && (CurrentlotNumber < LotNumber))    
    {   
     Lot selectedLot = lots.get(CurrentlotNumber - 1);   
     //jika Id Lot berbeda dengan CurrentlotNumber   
     if(selectedLot.getId() != CurrentlotNumber)   
     {   
      System.out.println("Error : Nomor Lot " +   
           selectedLot.getId() +   
           " yang ditampilkan semestinya " +   
           CurrentlotNumber);   
      selectedLot = null;   
     }   
     return selectedLot;   
    }   
    else    
    {   
     //apabila LotNumber tidak ditemukan   
     System.out.println("Nomor Lot : " + CurrentlotNumber +   
          " tidak ditemukan.");   
     return null;   
    }   
   }   
   //fungsi untuk menutup atau menyelesaikan program.   
   public void close()    
   {    
    System.out.println("Pelelangan sudah ditutup.");    
    for(Lot lot : lots)    
    {    
    System.out.println(lot.getId() + ": " +lot.getDescription());    
    Bid bid = lot.getHighestBid();    
    if (bid==null)   
    {    
     System.out.println("(Tidak ada penawaran untuk lot ini.)");    
    }    
    else    
    {    
     System.out.println( "Telah dijual kepada " +    
     bid.getBidder().getName() + " dengan harga "    
     + bid.getBid());    
    }    
    }    
   }   
  }   


Cara Kerjanya adalah

1. Buat sistem auction dan nama orang yang mengikuti lelang.





2. Dari auction yang sudah dibuat, masukkan string nama barang yang dilelang dengan menggunakan fungsi  enterLot



 3. Buat penawaran orang pertama terhadap barang lelang yang telah dimasukkan tadi, dengan menggunakan fungsi MakeBid

 4. Buat penawaran lain dengan nilai yang berbeda. Penawaran bisa berasal dari orang yang sama maupun orang baru. Disini saya menggunakan nama baru.




Sekian dan terimaksih.



Nama : Lutfiyanti
NRP: 05111740000036
Kelas : PBO-B

Komentar

Postingan populer dari blog ini

Indonesia Modern di Era Digital dengan Penerapan Teknologi Berbasis Internet

Game Pong Menggunakan Java

TUGAS 4 PBO- B -- REMOTE TV