-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathabstraksi_data.cpp
More file actions
48 lines (41 loc) · 1.12 KB
/
abstraksi_data.cpp
File metadata and controls
48 lines (41 loc) · 1.12 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
// 1. mengurangi kompleksitas
// 2. keamanan
// 3. penyerderhanaan
//
// 1. abstraksi melalui kelas
// 2. abstraksi melalui kelas abstrak dan fungsi virtual
#include <iostream>
class AkunBank {
protected:
double saldo;
public:
AkunBank(double saldo) : saldo(saldo) {}
virtual void tabung(double jumlah) = 0;
void tarik_uang(double jumlah) {
if (jumlah <= saldo) {
saldo -= jumlah;
std::cout << "penarikan berhasil, silahkan ambil uang anda " << std::endl;
} else {
std::cout << "tidak ada saldo pada atm kamu" << std::endl;
}
}
double lihatSaldo() const {
return saldo;
}
};
class TabungAkun : public AkunBank {
public:
TabungAkun(double saldo) : AkunBank(saldo) {}
void tabung(double jumlah) override {
saldo += jumlah;
std::cout << "jumlah deposit uang adalah " << jumlah << std::endl;
std::cout << "jumlah uang sekarang adalah: Rp." << saldo << std::endl;
}
};
int main() {
TabungAkun akunSaya(250000.00);
akunSaya.tabung(20000.00);
akunSaya.tarik_uang(50000.00);
std::cout << "saldo kita sekarang adalah: " << akunSaya.lihatSaldo() << std::endl;
return 0;
}