Tugas 3 Pemograman Berorentasi Objek

 Grouping Object dan Auction System

Grouping Object

    Grouping Object merupakan pengelompokan object dengan Collection. Collection adalah sebuah ad hoc class yang disediakan oleh Java (biasa disebut Java Collection) untuk membantu pengguna bahasa Java dalam melakukan penyimpanan data atau objek serta memanipulasinya.
    Secara mudahnya, kelas ini mempermudah kita dalam melakukan operasi struktur data seperti linked list,arraylist,dan struktur data lainnya dalam bahasa Java.
Adapun jenis-jenis operasinya adalah sebagai berikut:

Array List

Array list merupakan contoh implementasi dari interface list. Berikut ini contoh program Collection ArrayList

1. ArrayList dengan iterasi While

Ouput:


2. ArrayList dengan iterasi For


Output:

3.ArrayList dan ClassData


 Ouput:

4. Menggabungkan ArrayList dengan menggunakan addAll

   Output:

5. Menghapus data pada ArrayList dengan menggunakan removeAll

    Ouput:
                                
                              


6.Menggunakan retainAll pada ArrayList

   Output:

LinkedList

Ouput :
    

Hashset

Output:

Linked Hashset

Ouput : 

 HashMap

Output :
              

HashTable

Output:

Auction System (Sistem Perlelangan)

Pada kali ini,saya akan membuat sebuah sistem perlelangan.Pada sistem ini, kita harus membuat object auction,kemudian menambahkan item apa saja yang akan dilelangkan.Pada sistem perlelangan ini, orang yang menawar dengan harga lebih tinggi dia yang akan mendapatkan barangnya. Dalam sistem perlelangan ini terdapat 4 class yaitu Auction,Lot,Person,dan Bid yang selanjutnya akan kita bahas.

Gambar Auction System

1.  Class Auction

Proses dimana perlelangan terjadi.

/**
* Auction
*
* @author Zelda Elma Sibuea
* @version 26/10/2020
*/
import java.util.ArrayList;
public class Auction
{
private ArrayList<Lot> lots;//list barang dalam suatu auction
private int LotNumber;
public Auction()// membuat Auction baru
{
lots = new ArrayList<Lot>();//list barang
LotNumber = 1;//nomor barang awal adalah 1
}
public void enterLot(String description)
{//untuk menambahkan barang baru dalam auction
lots.add(new Lot(LotNumber, description));
LotNumber++;
}
public void showLots()
{//menampilkan seluruh barang yang dilelang
for(Lot lot : lots) {
System.out.println(lot.detail());
}
}
/**
* Method untuk melakukan bid/tawaran.
* Jika berhasil melakukan bid akan muncul Success Message.
* CurrentlotNumber = id lot yang akan di Bid.
* bidder = orang yang akan menawar.
* value = harga tawaran.
*/
public void MakeBid(int CurrentlotNumber, Person bidder, long value)
{
Lot selectedLot = getLot(CurrentlotNumber);
if(selectedLot != null) {
boolean check = selectedLot.bidFor(new Bid(bidder, value));
if(check) {//check dengan bid sebelumnya, apakah lebih besar atau tidak
System.out.println("Penawaran untuk lot nomor " +
CurrentlotNumber + " berhasil dilakukan" + " Penawaran dilakukan oleh " +bidder.getName()+ "dengan harga " +value+ "$");
}
else {//apabila bid sebelumnya lebih besar, maka bid ini akan gagal
Bid highestBid = selectedLot.getHighestBid();
System.out.println("Lot nomor : " + CurrentlotNumber +
" dengan penawaran tertinggi: " +
highestBid.getBid());
}
}
}
/**
* Return id lot jika ada, jika tidak return null
* CurrentlotNumber = id lot yang perlu di return
*/
public Lot getLot(int CurrentlotNumber)
{
if((CurrentlotNumber >= 1) && (CurrentlotNumber < LotNumber)) {//cek apabila lot number ada atau tidak
Lot selectedLot = lots.get(CurrentlotNumber - 1);
if(selectedLot.getId() != CurrentlotNumber) {
System.out.println("Internal error : Lot nomor " +
selectedLot.getId() +
"telah dikembalikan, bukan lot nomor " +
CurrentlotNumber);
selectedLot = null;
}
return selectedLot;
}
else {//apabila tidak ada print tidak ada
System.out.println("Lot nomor : " + CurrentlotNumber +
" tidak ada.");
return null;
}
}
public void close()
{
System.out.println("pelelangan berakhir.");
for(Lot lot : lots)
{
System.out.println(lot.getId() + ": " +lot.getDescription());
Bid bid = lot.getHighestBid();
if (bid==null)
{
System.out.println("Tidak ada bid untuk lot ini");
}
else
{
System.out.println("Item ini terjual kepada" +
bid.getBidder().getName() + " dengan harga : "
+ bid.getBid());
}
}
}
}
view raw Auction hosted with ❤ by GitHub

2.Class Lot

Class Lot merupakan class untuk menampung barang apa saja yang akan dilelang.
/**
*Lot
*
* @author Zelda Elma Sibuea
* @version 26/10/2020 */
public class Lot//method untuk membuat Lot
{
private final int Id;//id barang
private String description;//deskripsi barang
private Bid highestBid;//tawaran tertinggi untuk barang tersebut
public Lot(int number, String description)
{
//buat lot baru dengan id dan deskripsi
this.Id = number;
this.description = description;
}
public boolean bidFor(Bid bid)
{
//Method untuk mengecek apakah tawaran saat ini lebih besar dari tawaran tertinggi
if((highestBid == null) ||
(bid.getBid() > highestBid.getBid())) {
highestBid = bid;//jika ya maka tawaran ini adalah tawaran tertinggi yang baru
return true;
}
else {
return false;
}
}
public String detail()
{
String details = Id + ": " + description;
if(highestBid != null) {
details += " Terjual dengan harga " +
highestBid.getBid();
}
else {
details += " (Belum ada Penawaran)";
}
return details;
}
public int getId()
{
//Method untuk return id lot
return Id;
}
public String getDescription()
{
//Method untuk return deskripsi dari lot
return description;
}
public Bid getHighestBid()
{
//Method untuk return tawaran tertinggi dari lot
return highestBid;
}
}
view raw Lot hosted with ❤ by GitHub

3.Class Bid

Class Bid merupakan class untuk melelang
/**
* Bid here.
*
* @author Zelda Elma Sibuea
* @version 26/10/2020
*/
public class Bid
{
private final Person bidder;//orang yang akan melakukan tawaran
private final long value;//untuk menyimpan harga tawaran
public Bid(Person bidder, long value)
{ //untuk membuat penawar baru dengan nama dan jumlah tawaran nya
this.bidder = bidder;
this.value = value;
}
public Person getBidder()
{
//untuk return nama penawar
return bidder;
}
public long getBid()
{//untuk return harga tawaran nya
return value;
}
}
view raw Bid hosted with ❤ by GitHub


4. Class Person

Class Person merupakan class untuk memasukkan nama siapa saja yang ikut dalam perlelangan
/**
* Bid here.
*
* @author Zelda Elma Sibuea
* @version 26/10/2020
*/
public class Bid
{
private final Person bidder;//orang yang akan melakukan tawaran
private final long value;//untuk menyimpan harga tawaran
public Bid(Person bidder, long value)
{ //untuk membuat penawar baru dengan nama dan jumlah tawaran nya
this.bidder = bidder;
this.value = value;
}
public Person getBidder()
{
//untuk return nama penawar
return bidder;
}
public long getBid()
{//untuk return harga tawaran nya
return value;
}
}
view raw Person hosted with ❤ by GitHub


Cara untuk menjalankan program-program tersebut adalah sebagai berikut:

  • Pertama, beri nama pada sistem pelelangan pada Class Auction
  • Setelah itu, masukkan nama barang yang akan dilelang di Class Lot. Disini saya akan memasukkan dua barang yaitu Rumah dan Mobil.                                                                                                                                                                                                                                                                                                                                                                                             
     
        
  • Lalu,cek apakah item yang dimasukkan tadi sudah terdaftar
                                                            
  • Setelah itu masukkan nama pelelang di Class Person. Disini saya akan memasukkan dua nama.
                                                        

   
  • Setelah itu, kita akan melakuan pelelangan dengan memasukkan nama pelelang, barang yang dipilih, dan juga memasukkan harganya. 


  • Maka akan tampil seperti berikut ini

Nama : Zelda Elma Sibuea
NRP   : 05111940000038
PBO A

Komentar

Postingan Populer