ETS PBO G

Nathanael Valen Susilo
5025231099

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





    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.


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.

Sementara untuk method yang tersedia, antara lain :
  • 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

Postingan populer dari blog ini

Final Project PBO (Sudoku Game)

Tugas PBO Pertemuan 11

Tugas PBO Pertemuan 5