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

  1. Pastikan semua class ter grouping dengan sempurna

  2. Klik kanan lalu tekan 'new Test()'

  3. Klik kanan lagi lalu tekan pilihan 'void main(string[] args)'

  4. Lalu akan muncul output dari proses pelelangan


Kesimpulan 

Program ini merupakan sistem lelang yang terdiri dari beberapa kelas untuk mengelola proses lelang. Kelas Person merepresentasikan penawar dengan atribut nama. Kelas Bid digunakan untuk merepresentasikan penawaran yang mencakup penawar dan nilai penawaran. Kelas Lot menggambarkan item yang dilelang, dengan nomor unik, deskripsi, dan penawaran tertinggi. Kelas Auction mengelola seluruh proses lelang, termasuk memasukkan lot, menerima penawaran, dan menampilkan informasi lot. Terakhir, kelas Test berfungsi untuk menguji dan mensimulasikan interaksi antara kelas-kelas tersebut. Program ini secara keseluruhan memodelkan proses lelang dengan menangani penawaran dan memastikan penawaran tertinggi dicatat.

Comments

Popular posts from this blog

Otomata Church Turing oleh Nadin Nabil Hafizh Ayyasy