Membuat Program ATM Sederhana Menggunakan Python – pesonainformatika.com, update lagi nih studi kasus tentang python, pada kesempatan kali ini kita akan membahan tentang ATM, kamu pasti pernah menggunakan ATM, untuk mengecek saldo atau mengambil uang dan transaksi lainya.
pada studi kasus kali ini kita akan membuat program berdasarkan cara kerja ATM menggunakan python
Bentuk Dasar
dalam membuat program perlu adanya bentuk dasar agar kita tahu secara garis besar program yang kita buat, begitu juga program yang akan kita buat akan mempunyai fitur dan bentuk dasar seperti ini
- Tempat Untuk Menyimpan Data Username dan Password
- Tempat Untuk Menyimpan Nomor Rekening
- Fungsi Trasfer Uang
- Fungsi Cek Saldo
- Fungsi Ambil Uang
- Login
Membuat Program
disini saya menggunakan python versi 3, pada studi kasus kali ini buat file bernama main.py lalu kita buat data username dan password beserta nomor rekening, dan deklarasikan beberapa variabel untuk menyimpan nilai awal seperti ini
user_id = 0
loop = "n"
users = [
{
"id": "1234",
"no_rekening": "1234567890",
"username": "pery",
"pin": "4321",
"saldo": 0
},
{
"id": "4321",
"no_rekening": "0987654321",
"username": "tono",
"pin": "1234",
"saldo": 25000000
}
]
status_login = False
pakai_atm = "y"
kita membuat dictionary untuk menyimpan data para pengguna, nah disini ada variabel user_id untuk menyimpan id dari user, status login sebagai dan pakai_atm menjadi counter.
selanjutnya kita membuat fungsi untuk mengecek login berdasarkan pin yang dimasukan oleh si user dengan data yang sudah kita deklarasikan diawal
def cek_login(p):
for user in users:
if user['pin'] == p:
return user
return False
selanjutnya kita buat fungsi untuk mem validasi user dengan user_id yang sudah kita deklarasikan
def cek_user(id):
for i in range(len(users)):
if users[i]['id'] == str(id):
return int(i)
return -1
nah setelah selesai validasi baru kita membuat fitur untuk Program ATM kita, pertama buat fungsi untuk cek rekening
def cek_rekening(no):
for i in range(len(users)):
if str(users[i]['no_rekening']) == str(no):
return int(i)
return -1
lanjut ke fitur berikutnya yaitu fungsi transfer uang
def tranfer_uang(uang, no_rekening):
index1 = cek_user(user_id)
index2 = cek_rekening(no_rekening)
if index1 >= 0:
if users[index1]['saldo'] >= int(uang):
users[index1]['saldo'] = users[index1]['saldo'] - int(uang)
users[index2]['saldo'] = users[index2]['saldo'] + int(uang)
print("Anda berhasil mentransfer uang Rp." + str(uang) + " ke Rekening " + no_rekening)
print("sisa saldo anda adalah Rp.", users[index1]['saldo'])
else:
print("Ops saldo anda tidak cukup")
selanjutnya fungsi untuk mengambil uang
def ambil_uang(uang):
index1 = cek_user(user_id)
if index1 >= 0:
if users[index1]['saldo'] >= int(uang):
users[index1]['saldo'] = users[index1]['saldo'] - int(uang)
print("Anda berhasil menarik uang Rp." + str(uang))
print("sisa saldo anda adalah Rp.", users[index1]['saldo'])
else:
print("Ops saldo anda tidak cukup")
ada yang menarik, dari program ini yaitu kita buat dua menu yaitu menu ATM dan Main Menu Utama.
while pakai_atm == "y":
while not status_login:
print("SELAMAT DATANG DI ATM BANK Pesonainformatika")
print("Silahkan masukan pin anda")
pin = input("Masukan PIN : ")
cl = cek_login(pin)
if cl:
print("selamat datang " + cl['username'])
user_id = cl['id']
status_login = True
loop = "y"
else:
print("")
print("Ops PIN anda salah")
print("")
print("")
while loop == "y" and status_login:
u = users[cek_user(user_id)]
print("SELAMAT DATANG DI ATM Pesonainformatika")
print("1.Cek Saldo")
print("2.Transfer Uang")
print("3.Ambil Uang")
print("4.Logout")
print("5.Keluar ATM")
a = int(input("Silahkan pilih menu : "))
if a == 1:
print("")
print("Sisa Saldo anda adalah Rp.", u['saldo'])
print("")
print("")
loop = "n"
elif a == 2:
print("Untuk Mentransfer Uang Silahkan Masukan No Rekening Tujuan")
no_rek = input("Masukan No Rekening Tujuan : ")
cnk = cek_rekening(no_rek)
if cnk >= 0:
print("Nomor rekening ditemukan,silahkan masukan nominal yang yang akan di transfer")
nominal = input("Nominal Yang Akan Di Transfer : ")
tranfer_uang(nominal, no_rek)
print("")
loop = "n"
else:
print("")
print("Nomor Rekening Tujuan Tidak ditemukan atau tidak terdaftar")
print("")
loop = "n"
elif a == 3:
nominal = input("Nominal Yang Akan Di Tarik : ")
ambil_uang(nominal)
print("")
loop = "n"
elif a == 4:
status_login = False
elif a == 5:
status_login = False
loop = "n"
pakai_atm = "n"
else:
print("pilihan tidak tersedia")
if status_login == True:
input("kembali Ke menu (Enter) ")
print("")
loop = "y"
kemudian jalankan programnya contoh hasilnya sperti ini
Final Code
berikut adalah final code pada studi kasus kali ini
user_id = 0
loop = "n"
users = [
{
"id": "1234",
"no_rekening": "1234567890",
"username": "pery",
"pin": "4321",
"saldo": 0
},
{
"id": "4321",
"no_rekening": "0987654321",
"username": "tono",
"pin": "1234",
"saldo": 25000000
}
]
status_login = False
pakai_atm = "y"
def cek_login(p):
for user in users:
if user['pin'] == p:
return user
return False
def cek_user(id):
for i in range(len(users)):
if users[i]['id'] == str(id):
return int(i)
return -1
def cek_rekening(no):
for i in range(len(users)):
if str(users[i]['no_rekening']) == str(no):
return int(i)
return -1
def tranfer_uang(uang, no_rekening):
index1 = cek_user(user_id)
index2 = cek_rekening(no_rekening)
if index1 >= 0:
if users[index1]['saldo'] >= int(uang):
users[index1]['saldo'] = users[index1]['saldo'] - int(uang)
users[index2]['saldo'] = users[index2]['saldo'] + int(uang)
print("Anda berhasil mentransfer uang Rp." + str(uang) + " ke Rekening " + no_rekening)
print("sisa saldo anda adalah Rp.", users[index1]['saldo'])
else:
print("Ops saldo anda tidak cukup")
def ambil_uang(uang):
index1 = cek_user(user_id)
if index1 >= 0:
if users[index1]['saldo'] >= int(uang):
users[index1]['saldo'] = users[index1]['saldo'] - int(uang)
print("Anda berhasil menarik uang Rp." + str(uang))
print("sisa saldo anda adalah Rp.", users[index1]['saldo'])
else:
print("Ops saldo anda tidak cukup")
while pakai_atm == "y":
while not status_login:
print("SELAMAT DATANG DI ATM BANK Pesonainformatika")
print("Silahkan masukan pin anda")
pin = input("Masukan PIN : ")
cl = cek_login(pin)
if cl:
print("selamat datang " + cl['username'])
user_id = cl['id']
status_login = True
loop = "y"
else:
print("")
print("Ops PIN anda salah")
print("")
print("")
while loop == "y" and status_login:
u = users[cek_user(user_id)]
print("SELAMAT DATANG DI ATM Pesonainformatika")
print("1.Cek Saldo")
print("2.Transfer Uang")
print("3.Ambil Uang")
print("4.Logout")
print("5.Keluar ATM")
a = int(input("Silahkan pilih menu : "))
if a == 1:
print("")
print("Sisa Saldo anda adalah Rp.", u['saldo'])
print("")
print("")
loop = "n"
elif a == 2:
print("Untuk Mentransfer Uang Silahkan Masukan No Rekening Tujuan")
no_rek = input("Masukan No Rekening Tujuan : ")
cnk = cek_rekening(no_rek)
if cnk >= 0:
print("Nomor rekening ditemukan,silahkan masukan nominal yang yang akan di transfer")
nominal = input("Nominal Yang Akan Di Transfer : ")
tranfer_uang(nominal, no_rek)
print("")
loop = "n"
else:
print("")
print("Nomor Rekening Tujuan Tidak ditemukan atau tidak terdaftar")
print("")
loop = "n"
elif a == 3:
nominal = input("Nominal Yang Akan Di Tarik : ")
ambil_uang(nominal)
print("")
loop = "n"
elif a == 4:
status_login = False
elif a == 5:
status_login = False
loop = "n"
pakai_atm = "n"
else:
print("pilihan tidak tersedia")
if status_login == True:
input("kembali Ke menu (Enter) ")
print("")
loop = "y"
semoga bermanfaat dan mencoba, ikuti studi kasus lainya di pesonainformatika ada beberapa bahasa pemrograman lainya seperti Java, Python C++
people who use linux and people who are friendly