Skip to content

Faudzan10/POST_TEST3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistem Reservasi Lapangan Mini Soccer Deskripsi Program Program ini adalah Sistem Reservasi Lapangan Mini Soccer berbasis console menggunakan bahasa Java. Fungsinya untuk mencatat, melihat, mengubah, dan menghapus data reservasi lapangan yang dilakukan oleh pengguna. Data reservasi tidak disimpan di database, tetapi sementara ditampung dalam ArrayList selama program berjalan. Struktur program sudah dipisahkan dengan menggunakan packages (main, model, service) sehingga lebih rapih sesuai konsep MVC sederhana.

Alur Program

  1. Program dijalankan → menampilkan menu utama:
  • Tambah Reservasi
  • Lihat Reservasi
  • Ubah Reservasi
  • Hapus Reservasi
  • Keluar
  1. Tambah Reservasi

User memasukkan: nama, tanggal, jam, dan durasi. Ada validasi input (tidak boleh kosong, durasi harus angka lebih dari 0). Data tersimpan ke dalam daftar reservasi.

  1. Lihat Reservasi

Menampilkan semua reservasi yang sudah tersimpan. Jika kosong → muncul pesan "Belum ada data reservasi".

  1. Ubah Reservasi

User memilih nomor reservasi dari daftar. Program menampilkan data lama → user bisa isi data baru (atau enter kosong jika tidak ingin diubah). Data diperbarui sesuai input.

  1. Hapus Reservasi

User memilih nomor reservasi dari daftar. Program menghapus data tersebut dari daftar.

  1. Keluar

User memilih menu keluar. Program menampilkan pesan perpisahan → program berhenti.

Jadi alurnya sederhana: program jalan → tampilkan menu → user pilih → program proses → kembali ke menu, sampai user memilih keluar.

=========================================================== PENJELASAN KODE PROGRAM

1. Class Reservasi.java (Superclass)

image image image
  • Penjelasan:

    • Private attributes: Menerapkan encapsulation untuk melindungi data
    • Constructor: Inisialisasi objek dengan parameter yang diperlukan
    • Getter/Setter: Akses aman ke data dengan validasi di setter
    • Method dasar: hitungTotalBiaya() dan infoReservasi() yang akan di-override

2. Class ReservasiReguler.java (Subclass)

image image
  • Penjelasan:

    • extends Reservasi: Inheritance, mewarisi semua property dan method parent
    • super(): Memanggil constructor parent class
    • @Override: Method overriding untuk memberikan implementasi khusus
    • Additional property: fasilitas khusus untuk reservasi reguler

3. Class ReservasiVIP.java (Subclass)

image image
  • Penjelasan:

    • Additional properties: fasilitasVIP dan biayaTambahanVIP
    • Override hitungTotalBiaya(): Perhitungan berbeda dengan biaya tambahan VIP
    • Method khusus: hitungDiskonMember() hanya ada di VIP
    • Polymorphism: Method yang sama tapi behavior berbeda

4. Class ReservasiService.java (Business Logic)

image image image
  • Penjelasan:

    • ArrayList: Collection untuk menyimpan multiple objek Reservasi
    • Input validation: Loop sampai input valid
    • Polymorphism: Satu variabel Reservasi bisa hold berbagai subclass
    • instanceof: Runtime type checking
    • Method overriding: infoReservasi() akan call implementasi yang tepat

5. Class Main.java (Entry Point)

image image
  • Penjelasan:

    • Entry point: Method main() sebagai starting point program
    • Object instantiation: Membuat objek service untuk handle business logic
    • Menu loop: while(true) untuk menu yang terus berulang
    • Switch-case: Control flow untuk pilihan menu

===========================================================

ALUR PROGRAM

1. Tambah Reservasi

image

Penjelasan Output:

  • Menu Utama User diberikan pilihan 1–5 (Tambah, Lihat, Ubah, Hapus, Keluar). Pada contoh ini, user memilih 1 (Tambah Reservasi).

  • Form Input Reservasi

    • Nama Pemesan: janod

    • Tanggal: 22-09-2025

    • Jam Mulai: 23:00

    • Durasi: 3 jam

    • Jenis Reservasi: Reguler (Rp 50.000/jam)

  • Informasi Keuntungan Karena memilih Reguler, program menampilkan keuntungan reservasi reguler:

    • Harga lebih terjangkau (Rp 50.000/jam)

    • Fasilitas: Lapangan standar & air mineral

    • Cocok untuk bermain santai

  • Konfirmasi Reservasi Berhasil Program menampilkan detail reservasi:

    • [REGULER] Nama: janod

    • Tanggal: 22-09-2025

    • Jam: 23:00

    • Durasi: 3 jam

    • Total biaya: Rp 150.000

    • Fasilitas: Lapangan standar, Air mineral

Contoh jika mengisi dengan jawaban kosong

image

2.Lihat Reservasi image

Penjelasan Output:

  • Menu Utama User memilih 2 (Lihat Reservasi).

  • Daftar Reservasi Program menampilkan semua data reservasi yang sudah tersimpan:

    • Reservasi 1 (Reguler) Nama: janod | Tanggal: 22-09-2025 | Jam: 23:00 | Durasi: 3 jam | Total Rp 150.000 Fasilitas: Lapangan standar, Air mineral

    • Reservasi 2 (VIP) Nama: ojan | Tanggal: 23-10-2025 | Jam: 22:00 | Durasi: 2 jam | Total Rp 200.000 Fasilitas VIP: Lapangan premium, AC, Sound system, Snack & minuman, Handuk Biaya tambahan: Rp 50.000

  • Statistik Reservasi Program otomatis menghitung ringkasan:

    • Total Reservasi: 2

    • Jumlah Reguler: 1

    • Jumlah VIP: 1

    • Total Pendapatan: Rp 350.000

3.Ubah Reservasi

image

Penjelasan Output:

  • Menu Utama User memilih 3 (Ubah Reservasi).

  • Daftar Reservasi Program menampilkan semua data reservasi yang ada (sama seperti menu lihat reservasi), lengkap dengan detail reguler dan VIP, serta statistik total.

  • Pilih Data yang Akan Diubah

    • User memilih reservasi nomor 1 (atas nama janod).

    • Program menampilkan data lama untuk memastikan.

  • Pilih Bagian yang Ingin Diubah Opsi yang tersedia: Nama, Tanggal, Jam, atau Durasi.

    • User memilih 1 (Nama Pemesan).

    • Nama diubah dari janod → ZANOD.

  • Konfirmasi Perubahan Program menampilkan pesan “Reservasi berhasil diubah!” dan memperlihatkan data terbaru dengan nama pemesan yang sudah diperbarui.

4.Hapus Reservasi

image
  • Penjelasan Output:

  • Daftar Reservasi Ditampilkan Program menampilkan semua data reservasi yang ada, lengkap dengan detail Reguler dan VIP, serta ringkasan statistik.

  • Pilih Reservasi yang Akan Dihapus

    • User memilih nomor 1 (atas nama ZANOD).
  • Konfirmasi Hapus Program menampilkan pesan “Reservasi berhasil dihapus!” dan menampilkan detail data yang telah dihapus agar user tahu reservasi mana yang dihapus.

5.Keluar

image
  • Penjelasan Output:

    • Menu Utama User memilih opsi 5 (Keluar).

    • Program Selesai Program menampilkan pesan “Terima kasih!” sebagai penutup, lalu menghentikan proses.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages