Nama : Nadin Nabil Hafizh Ayyasy
NRP : 5025231061
Git : https://github.com/Happpizh/PBO/tree/main/5025231061_Nadin%20Nabil%20H.A_TugasLelang
AUCTION
Penjelasan Code
Kelas Person:
Kelas ini mewakili individu yang berpartisipasi dalam proses lelang, yaitu sebagai penawar (bidder). Setiap objek dari kelas ini menyimpan nama dari penawar.
- Atribut: name (nama penawar).
- Konstruktor: Menginisialisasi nama penawar saat objek Person dibuat.
- Metode: getName(): Mengembalikan nama penawar.
Kelas Bid:
Kelas ini digunakan untuk merepresentasikan sebuah penawaran (bid) pada suatu lot. Setiap penawaran memiliki dua informasi utama: siapa yang melakukan penawaran (bidder) dan nilai penawaran tersebut (value).
- Atribut: bidder (objek Person yang melakukan penawaran), value (nilai penawaran).
- Konstruktor: Menginisialisasi penawar dan nilai penawaran saat objek Bid dibuat.
- Metode: getBidder(): Mengembalikan objek Person yang melakukan penawaran, getValue(): Mengembalikan nilai penawaran.
Kelas Lot:
Kelas ini mewakili item yang akan dilelang. Setiap lot memiliki nomor unik, deskripsi, dan penawaran tertinggi yang mungkin ada.
- Atribut: number (nomor unik untuk mengidentifikasi lot), description (deskripsi dari lot yang dilelang), highestBid (menyimpan penawaran tertinggi untuk lot tersebut, jika ada).
- Konstruktor: Menginisialisasi nomor dan deskripsi lot saat objek Lot dibuat. Awalnya, belum ada penawaran untuk lot, sehingga highestBid bernilai null.
- Metode: getNumber(): Mengembalikan nomor lot, getDescription(): Mengembalikan deskripsi lot, getHighestBid(): Mengembalikan penawaran tertinggi untuk lot tersebut (jika ada), bidFor(Bid bid): Menerima penawaran baru untuk lot tersebut. Jika penawaran baru lebih tinggi dari penawaran sebelumnya, penawaran baru menjadi penawaran tertinggi. Mengembalikan true jika penawaran berhasil, atau false jika tidak.
Kelas Auction:
Kelas ini mengelola seluruh proses lelang. Kelas ini berisi daftar lot yang dilelang dan menangani penawaran yang dilakukan oleh para penawar.
- Atribut: lots (daftar lot yang dilelang), nextLotNumber (menyimpan nomor lot berikutnya yang akan diberikan ketika lot baru ditambahkan).
- Konstruktor: Membuat objek Auction baru dengan daftar lot yang kosong dan menetapkan nomor lot pertama sebagai 1.
- Metode: enterLot(String description): Memasukkan lot baru ke dalam lelang dengan memberikan deskripsi dan nomor unik secara otomatis, showLots(): Menampilkan semua lot yang ada beserta informasi penawaran tertinggi (jika ada), makeABid(int lotNumber, Person bidder, long value): Menerima penawaran dari seorang penawar pada lot tertentu. Jika penawaran berhasil, informasi akan ditampilkan, jika tidak, penawaran tertinggi saat ini ditampilkan, getLot(int lotNumber): Mengembalikan lot berdasarkan nomor yang diberikan. Jika lot dengan nomor tersebut tidak ada, mengembalikan null.
Kelas Test:
Kelas ini berfungsi sebagai pengujian dan simulasi untuk kelas-kelas di atas. Di sini, Anda melakukan:
- Membuat objek Auction dan memasukkan beberapa lot.
- Membuat beberapa objek Person sebagai penawar.
- Melakukan penawaran pada lot tertentu.
- Menampilkan daftar lot sebelum dan sesudah penawaran.
Cara Eksekusi
- Pastikan semua class ter grouping dengan sempurna
- Klik kanan lalu tekan 'new Test()'
- Klik kanan lagi lalu tekan pilihan 'void main(string[] args)'
- Lalu akan muncul output dari proses pelelangan










Comments
Post a Comment