-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathfungsiatm.py
140 lines (126 loc) · 4.91 KB
/
fungsiatm.py
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# PROGRAM fungsiatm
# Kumpulan fungsi dan prosedur yang akan dipanggil pada program main
# KAMUS
# df : pandas dataframe
# ALGORITMA
# import library pandas dan time
import pandas as pd
import time
def menu():
# Mencetak menu ke layar dan menerima input pilihan dari pengguna
# KAMUS LOKAL
# menu : int
# ALGORITMA
print('''
-----------------------------
/$$$$$$ /$$$$$$$$ /$$ /$$ /$$$$$$$ /$$
/$$__ $$|__ $$__/| $$$ /$$$ | $$__ $$ | $$
| $$ \ $$ | $$ | $$$$ /$$$$ | $$ \ $$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$ /$$ /$$$$$$ /$$$$$$/$$$$
| $$$$$$$$ | $$ | $$ $$/$$ $$ | $$$$$$$//$$__ $$| $$__ $$ /$$__ $$| $$ /$$/ /$$__ $$| $$_ $$_ $$
| $$__ $$ | $$ | $$ $$$| $$ | $$____/| $$$$$$$$| $$ \ $$| $$ \ $$| $$$$$$/ | $$ \ $$| $$ \ $$ \ $$
| $$ | $$ | $$ | $$\ $ | $$ | $$ | $$_____/| $$ | $$| $$ | $$| $$_ $$ | $$ | $$| $$ | $$ | $$
| $$ | $$ | $$ | $$ \/ | $$ | $$ | $$$$$$$| $$ | $$| $$$$$$$| $$ \ $$| $$$$$$/| $$ | $$ | $$
|__/ |__/ |__/ |__/ |__/ |__/ \_______/|__/ |__/ \____ $$|__/ \__/ \______/ |__/ |__/ |__/
/$$ \ $$
| $$$$$$/
\______/
-----------------------------
Pilih menu:
1. Cek Saldo
2. Tarik Saldo
3. Deposit Tunai
4. Transfer Saldo
5. Ganti PIN''')
menu = int(input("Pilih nomor menu: "))
return menu
def wait(t):
# Menahan waktu dengan jumlah detik sesuai argumen
# KAMUS LOKAL
# i, t : integer
# ALGORITMA
print("Silahkan tunggu...")
time.sleep(t)
def prompt():
# Memberi pilihan kepada pengguna apakah akan melanjutkan pemakaian atau tidak
# KAMUS LOKAL
# ask : string
# ALGORITMA
ask = input("Apakah anda ingin melanjutkan transaksi? (y/n) ")
if (ask == 'y'):
return 1
else:
print("Terima kasih telah menggunakan ATM Pengkom.")
return 0
def cekSaldo(rek):
# Mencetak saldo rekening pengguna
# KAMUS LOKAL
# rek, saldo : int
# ALGORITMA
saldo = df.loc[rek][1]
wait(1.1)
print("Saldo anda sekarang Rp" + str(saldo) + ".")
def tarikSaldo(rek, jumlahTarik):
# Mengurangi saldo pengguna sesuai jumlah yang ingin ditarik dan mencetak sisa saldo
# KAMUS LOKAL
# rek, jumlahTarik, saldo : int
# ALGORITMA
saldo = df.loc[rek][1]
saldo -= jumlahTarik
wait(1.1)
if (saldo < 0):
print("Gagal menarik uang. Jumlah uang yang ingin ditarik lebih besar dari saldo.")
else: # saldo > 0
print("Berhasil menarik uang sebanyak Rp" + str(jumlahTarik) + ".")
print("Sisa saldo anda sekarang Rp" + str(saldo) + ".")
df.loc[rek][1] = saldo
df.to_csv('data.csv')
def deposit(rek, jumlahDepo):
# Menambah saldo pengguna sesuai jumlah yang ingin dimasukkan
# KAMUS LOKAL
# rek, jumlahDepo, saldo : int
# ALGORITMA
saldo = df.loc[rek][1]
saldo += jumlahDepo
wait(1.1)
print("Berhasil mendeposit uang sebanyak Rp" + str(jumlahDepo) + ".")
print("Sisa saldo anda sekarang Rp" + str(saldo) + ".")
df.loc[rek][1] = saldo
df.to_csv('data.csv')
def transfer(rek, jumlahTransfer, rekTransfer):
# Mengurangi saldo pengguna
# dan menambah saldo di rekening lain yang dipilih dengan jumlah yang diinput
# KAMUS LOKAL
# rek, jumlahTransfer, rekTransfer, saldoa, saldor : int
# ALGORITMA
try:
saldor = df.loc[rekTransfer][1]
except:
print("Rekening yang anda masukkan tidak valid.")
return 0
saldoa = df.loc[rek][1]
saldoa = saldoa - jumlahTransfer - 2500
wait(1.1)
if (saldoa < 0):
print("Gagal transfer uang. Jumlah uang yang ingin ditransfer dan biaya transfer lebih besar dari saldo.")
saldoa = saldoa + jumlahTransfer + 2500
else:
print("Berhasil transfer uang sebanyak Rp" + str(jumlahTransfer) + ", dengan biaya transfer Rp2500.")
print("Sisa saldo anda sekarang Rp" + str(saldoa) + ".")
saldor += jumlahTransfer
df.loc[rek][1] = saldoa
df.loc[rekTransfer][1] = saldor
df.to_csv('data.csv')
def gantiPIN(rek, pinbaru):
# Mengganti pin ATM pengguna untuk autentikasi berikutnya
# KAMUS LOKAL
# rek, pinbaru : int
# ALGORITMA
if(len(pinbaru) == 6 and pinbaru.isnumeric()):
df.loc[rek][0] = str(pinbaru)
wait(1.1)
print("Berhasil mengubah PIN.")
df.to_csv('data.csv')
else:
print("PIN baru yang anda masukkan tidak valid.")
# inisialisasi dataframe
df = pd.read_csv("data.csv", index_col="Rekening")