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.
1. Class Music Organizer
2. Class MusicPlayer
2. Class MusicPlayer
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
2. Class Lot
Class ini menangani barang yang dilelang. Berisi nomor barang dan nama barang.
3. Class Person
Class ini berisi identitas berupa nama dari orang yang mengikuti lelang.
4. Class Auction
Di Class ini sistem dirangkai menjadi satu.
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
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.
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
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