Music Organizer
&
Auction Program
Untuk program pada music organizer saya menggunakan 3 class, yakni main, music, dan player
Berikut contoh output program
main :
import java.util.Scanner;
public class main{
public static void main(){
Music music = new Music();
Scanner scan = new Scanner(System.in);
int c;
while(true){
c = scan.nextInt();
switch(c){
case 1:
scan.nextLine();
String lagu = scan.nextLine();
music.tambah(lagu);
break;
case 2:
music.daftar();
break;
case 3:
int nomor = scan.nextInt();
music.mulai(nomor);
break;
case 4:
nomor = scan.nextInt();
music.stop(nomor);
break;
case 5:
nomor = scan.nextInt();
music.hapus(nomor);
break;
}
}
}
}
music:
import java.util.ArrayList;
public class Music {
private ArrayList<String> playlist;
private Player play;
private int now,state;
public Music() {
playlist = new ArrayList<String>();
play = new Player();
now = -1;
state = 0;
}
public int jumlah() {
return playlist.size();
}
public void daftar() {
if(playlist.size()>0) {
for(int i=0;i<playlist.size();i++){
String filename = playlist.get(i);
System.out.println((i+1)+". "+filename);
}
}
else System.out.println("Tidak ada");
}
public void hapus(int index) {
if(index-1 >= 0 && index-1 < playlist.size()) {
playlist.remove(index);
}
}
public void tambah(String lagu) {
playlist.add(lagu);
}
public void mulai(int index){
now = index-1;
if(playlist.size()>0){
play.start(playlist.get(now));
state=1;
}
else System.out.println("Belum ada lagu");
}
public void stop(int index){
if(now == index-1 && state == 1){
play.stop(playlist.get(now));
state=0;
}
else System.out.println("Lagu belum berputar");
}
}
player:
public class Player
{
private int index;
public void start(String lagu){
System.out.println("Playing: "+lagu);
}
public void stop(String lagu){
System.out.println(lagu+" has stopped ");
}
}
2. Auction Program
Pada program auction ini saya menggunakan 4 class, yakni, auction, person, bid, dan lot
auction:
import java.util.ArrayList;
public class Auction
{
private ArrayList<Lot> barang; //daftar barang yang dilelang
private int nextBarang; //untuk pengkodean barang
public Auction() //inisiasi pelelangan baru
{
barang = new ArrayList<>();
nextBarang = 1;
}
public void masukkanBarang(String nama) //memasukkan barang ke daftar barang yang dilelang
{
barang.add(new Lot(nextBarang, nama));
nextBarang++;
}
public void tampilkanBarang() //menampilkan seluruh barang yang dilelang
{
for(Lot lot : barang) {
System.out.println(lot.toString());
}
}
public void buatPenawaran(int kode, Person penawar, long harga)
{
Lot selectedLot = getBarang(kode);
if(selectedLot != null) { //hanya bisa jika kode barang telah terdaftar
Bid bid = new Bid(penawar, harga);
boolean successful = selectedLot.bidFor(bid);
if(successful) {
System.out.println("Tawaran untuk nomor barang" +
kode + " telah sukses.");
}
else {
Bid maksTawaran = selectedLot.getTertinggi(); //hanya bisa menawar dengan harga yang lebih tinggi daripada penawar sebelumnya
System.out.println("Nomor barang: " + kode +
" sudah memiliki tawaran: " +
maksTawaran.getHarga());
}
}
}
public Lot getBarang(int kode)
{
if((kode >= 1) && (kode < nextBarang)) {
Lot selectedLot = barang.get(kode - 1);
if(selectedLot.getKode() != kode) {
System.out.println("Eror internal: nomor lot " +
selectedLot.getKode() +
" telah diganti " +
kode);
// Don't return an invalid lot.
selectedLot = null;
}
return selectedLot;
}
else {
System.out.println("Nomor barang: " + kode +
" tidak tersedia.");
return null;
}
}
public void hentikan()
{
System.out.println("Pelelangan telah dihentikan.");
for(Lot lot : barang)
{
System.out.println(lot.getKode() + ": " +lot.getNama());
Bid bid = lot.getTertinggi();
if (bid==null)
{
System.out.println("Tidak ada tawaran untuk barang ini");
}
else
{
System.out.println("Barang ini telah dijual kepada " +
bid.getNama().getNama() + " dengan harga :\t"
+ bid.getHarga());
}
}
}
}
bid:
public class Bid
{
private final Person penawar;
private final long harga;
public Bid(Person penawar, long harga)
{
this.penawar = penawar;
this.harga = harga;
}
public Person getNama()
{
return penawar;
}
public long getHarga()
{
return harga;
}
}
person:
public class Person
{
private final String Nama;
public Person(String Nama)
{
this.Nama = Nama;
}
public String getNama()
{
return Nama;
}
}
lot:
public class Lot
{
private final int kodeBarang;
private String namaBarang;
private Bid maksTawaran;
public Lot(int kodeBarang, String namaBarang)
{
this.kodeBarang = kodeBarang;
this.namaBarang = namaBarang;
this.maksTawaran = null;
}
public boolean bidFor(Bid tawaran)
{
if(maksTawaran == null) {
maksTawaran = tawaran; //jika tidak ada tawaran sebelumnya
return true;
}
else if(tawaran.getHarga() > maksTawaran.getHarga()) {
maksTawaran = tawaran; //jika tawaran lebih tinggi daripada tawaran sebelumnya
return true;
}
else {
return false; //jika tawaran tidak lebih tinggi daripada tawaran sebelumnya
}
}
public String toString()
{
String details = kodeBarang + ": " + namaBarang;
if(maksTawaran != null) {
details += " Tawaran: " +
maksTawaran.getHarga();
}
else {
details += " (Tidak ada tawaran)";
}
return details;
}
public int getKode()
{
return kodeBarang;
}
public String getNama()
{
return namaBarang;
}
public Bid getTertinggi()
{
return maksTawaran;
}
}
Tidak ada komentar:
Posting Komentar