ETS PBO G
Nathanael Valen Susilo
Kelas Book memiliki 5 atribut yang berisikan judul, penulis, tahun_terbit, penerbit, dan kategori. Konstruktor di kelas ini digunakan untuk menginisialisasikan value pada saat kelas dibuat ke dalam atribut kelas tersebut dengan meminta input berupa string dan integer untuk kelima atribut yang ada. Kemudian, method printDetails() digunakan untuk menampilkan semua atribut dalam objek yang sebelumnya sudah diisi oleh konstruktor ke dalam terminal.
Sementara untuk method yang tersedia, antara lain :
Pada contoh di atas, saya membuat instance FoodOrder dengan nama Order1, dan 3 instance MenuItem degan nama ayam, bebek, dan lele. Kemudian saya coba untuk memanggil method displayOrder tetapi pesanan masih kosong, lalu saya gunakan method addMenuItem dan menambahkan menu ayam dan bebek. Setelahnya saya coba tampilkan detail pesanan dengan displayOrder lagi, kemudian saya tambahkan menu lele dan hapus menu ayam dengan method removeMenuItem. Terakhir saya panggil method payOrder dan displayOrder, sehingga terlihat bahwa status pesanan sudah dibayar.
5025231099
Source code : https://github.com/Kirytsu/PBO-G/tree/main/ETS
Penjelasan : https://youtu.be/lfXKli0abNw
ETS PBO - G / 2024
1. Inheritance adalah konsep berupa pewarisan method atau atribut dalam satu kelas di pemrograman berorientasi objek. Satu kelas bisa memiliki child class, yang dapat mengakses dan menggunakan atribut atau method yang ada pada parent classnya. Contohnya kelas kendaraan dapat memiliki beberapa child class misalnya kelas mobil, kapal, pesawat. Karena kendaraan itu masih sangat luas cakupannya dan banyak kendaraan yang memiliki karakteristik yang berbeda-beda, maka perlu dibuat child class masing-masing. Namun child class ini umumnya tetap menggunakan atribut dan method yang sudah didefinisikan di class parentnya, misalnya ukuran, kecepatan, kapasitas, dan lain sebagainya.
2. Fungsi konstruktor adalah method yang selalu dijalankan saat membuat suatu object pada kelas tersebut. Biasanya konstruktor digunakan untuk menginisialisasikan nilai dari atribut yang ada pada sebuah kelas atau object.
Contoh Penggunaan Konstruktor pada Kelas Book
3. Implementasi Kelas ParkingTicketMachine
Kelas ParkingTicketMachine terdiri dari atribut balance (Saldo), ticketPrice (Harga parkir per jam), dan ticketTime (Lama parkir terhitung dalam jam). Pada konstruktor, kita harus menyertakan harga per jamnya yang mau dimasukkan ke dalam mesin, sementara atribut lain diset 0 secara default.
Untuk method yang tersedia, antara lain:
- insertMoney(long money) untuk menambahkan saldo.
- setTimePurchase(long time) untuk memilih lama waktu parkir yang akan dibayar.
- getTimePurchased() untuk mengambil lama parkir pada atribut ticketTime.
- getPrice untuk mengambil harga tiket pada atribut ticketPrice.
- getBalance() untuk mengambil saldo pada atribut balance.
- retrieveBalance() untuk mengambil semua saldo yang tersisa di mesin.
- issueTicket() untuk membeli dan memprint informasi mengenai tiket parkir.
Contoh pada gambar di atas adalah saat pembuatan instance ParkingTicketMachine dengan harga diset 1000. Kemudian saya gunakan method setTimePurchase ke 10 dan memanggil method issueTicket. Namun terminal menampilkan pesan "Saldo anda tidak cukup" karena sebelumnya saya belum menambahkan saldo ke dalam mesin. Lalu saya tambahkan saldo sebesar 20000 dan memanggil method issueTicket lagi untuk membeli dan menampilkan informasi tiket parkir. Setelah itu saya menggunakan method retrieveBalance untuk mengosongkan saldo pada mesin.
4. Diagram Kelas untuk Aplikasi Food Order
Secara desain, untuk aplikasi pemesanan makanan sederhana yang saya buat, terdiri dari dua kelas yaitu kelas FoodOrder dan MenuItem. Kelas menuItem ini akan berisi detail dari menu (objek) yang tersedia, sementara kelas FoodOrder berisi detail dari satu pesanan yang mana dapat berisi dari beberapa objek yang ada di kelas MenuItem.
Kelas MenuItem
Kelas MenuItem berisi atribut name (nama menu) dan price (harga menu). Konstruktor dari kelas ini yang akan mengisikan seluruh atribut berdasarkan parameter yang dimasukkan. Kemudian untuk mengambil nilai atribut pada kelas, maka ditambahkan method getName() dan getPrice().
Kelas FoodOrder
Kelas FoodOrder terdiri dari atribut totalPrice (total harga pesanan), isPaid (Status pembayaran pesanan), dan array list MenuItems yang berisikan objek-objek MenuItem yang nantinya akan ditambahkan ke pesanan. Konstruktor di kelas ini akan menginisialisasikan semua atribut yang ada menjadi kosong.
- addMenuItem(MenuItem item) untuk menambahkan menu (objek) ke pesanan.
- removeMenuItem(MenuItem item) untuk menghapus menu dari pesanan.
- getTotalPrice() untuk mengambil nilai total harga pesanan dari atribut totalPrice.
- payOrder() untuk membayar pesanan.
- isPaid() untuk mengecek apakah pesanan sudah dibayar atau belum.
- displayOrder() untuk menampilkan informasi daftar pesanan
Contoh Penggunaan :
Pada contoh di atas, saya membuat instance FoodOrder dengan nama Order1, dan 3 instance MenuItem degan nama ayam, bebek, dan lele. Kemudian saya coba untuk memanggil method displayOrder tetapi pesanan masih kosong, lalu saya gunakan method addMenuItem dan menambahkan menu ayam dan bebek. Setelahnya saya coba tampilkan detail pesanan dengan displayOrder lagi, kemudian saya tambahkan menu lele dan hapus menu ayam dengan method removeMenuItem. Terakhir saya panggil method payOrder dan displayOrder, sehingga terlihat bahwa status pesanan sudah dibayar.
Komentar
Posting Komentar