-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReservasiVIP.java
More file actions
70 lines (60 loc) · 2.33 KB
/
ReservasiVIP.java
File metadata and controls
70 lines (60 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.mycompany.reservasi_lapangan_minisoccer.model;
/**
* Subclass ReservasiVIP - extends Reservasi
* Menerapkan Inheritance dan Method Overriding
* @author [Nama Anda]
*/
public class ReservasiVIP extends Reservasi {
private String fasilitasVIP;
private double biayaTambahanVIP;
// Constructor menggunakan super
public ReservasiVIP(String namaPemesan, String tanggal, String jam, int durasi) {
super(namaPemesan, tanggal, jam, durasi); // Keyword super
this.fasilitasVIP = "Lapangan premium, AC, Sound system, Snack & minuman, Handuk";
this.biayaTambahanVIP = 25000;
setHargaPerJam(75000); // Harga dasar VIP
}
// Getter dan Setter
public String getFasilitasVIP() {
return fasilitasVIP;
}
public void setFasilitasVIP(String fasilitasVIP) {
// Keyword this
if (fasilitasVIP != null && !fasilitasVIP.trim().isEmpty()) {
this.fasilitasVIP = fasilitasVIP;
}
}
public double getBiayaTambahanVIP() {
return biayaTambahanVIP;
}
public void setBiayaTambahanVIP(double biayaTambahanVIP) {
if (biayaTambahanVIP >= 0) {
this.biayaTambahanVIP = biayaTambahanVIP;
}
}
// Override method hitungTotalBiaya dengan biaya tambahan
@Override
public double hitungTotalBiaya() {
return super.hitungTotalBiaya() + (getDurasi() * biayaTambahanVIP);
}
// Override method infoReservasi
@Override
public String infoReservasi() {
return String.format("[VIP] %s | Fasilitas VIP: %s | Biaya tambahan: Rp %.0f",
super.infoReservasi(), fasilitasVIP, getDurasi() * biayaTambahanVIP);
}
// Method khusus untuk reservasi VIP
public void tampilkanKeuntungan() {
System.out.println("⭐ Keuntungan Reservasi VIP:");
System.out.println(" - Fasilitas premium: " + fasilitasVIP);
System.out.println(" - Harga: Rp " + (getHargaPerJam() + biayaTambahanVIP) + "/jam");
System.out.println(" - Pengalaman bermain yang eksklusif");
}
// Method tambahan untuk diskon member
public double hitungDiskonMember(boolean isMember) {
if (isMember) {
return hitungTotalBiaya() * 0.1; // Diskon 10%
}
return 0;
}
}