Membuat program ATM sederhana dengan python

kali ini kita akan membuat sebuah program sederhana sistem ATM

versi python yang di gunakan adalah 3.7

dan saya menggunakan text editor/IDE spyder

ok silahkan buka spydernya lalu buat new file/project dan simpan

pertama kita akan membuat/mendeklarasikan variable utama untuk program ini

user_id untuk menyimpan id dari user yang login

loop untuk menyimpan kondisi while saat memilih menu ATM ( dimana kita tahu untuk memakai program berulang-ulang di python kita menggunakan while untuk perulangannya )

user karena ini program sederhana kita hanya akan menggunakan array statis untuk menyimpan data usernya,untuk lebih lanjut kalian bisa menggunakan database

status_login menyimpan status apakah user berhasil login atau tidak

pakai_atm menyimpan kondisi apakah kita masih menggunakan ATM atau tidak

*ingat bahwa penamaan variable diatas itu tergantung selera kalian tidak harus sama persi seperti apa yang saya tulis

kemudia kita akan membuat fungsi-fungsi untuk ATM-nya

pertama fungsi cek_login

for disini untuk melakukan perulangan dan mengecek apakah parameter p(pin) yang kita masukan saat pertama kali menggunakan ATM sama/ada di dalam variable user(array)

kemudia fungsi cek_user

nah karena setelah login di cek_login kita akan selalu mengecek saat user melakukan transaki,kita perlu mengecek apakah user itu bener-bener user yang login tadi,ini berguna untuk keamanan (walaupun ini program sederhana tidak ada salahnya untuk mengimplementasikan sistem keamaananya :D).oh ya kenapa returnnya -1? karena setalah mengcek user kita akan me-return/mengembalikan nilai dari index variable user karena tipenya array kita perlu index untuk mengaksesnya

kemudian fungsi cek_rekening

sama seperti cek_user namun disini kita mengceknya menggunakan no_rekening

terakhir fungsi untuk transfer uang dan ambil uang

untuk fungsi transfer uang kita perlu parameter nominal(uang) yang akan di transfer dan no rekening(ni_rekening) tujuan

sedangkan fungsi ambil uang hanya perlu paramerter nominal(uang)

*apasih paramater itu? ituloh variable di dalam tanda kurung dalam suatu fungsi

nah sekarang kita akan memanggil fungsi2 diatas agar ATM-nya bisa di pakai

pertama kita buat perulangan while agar atm ini bisa di pakai berulang-ulang sampai si user memilih menu keluar

*oh ya 72 itu jangan di ikutin ya itu cuma nomor baris line hehe

kita juga akan membuat perulangan untuk loginnya,kenapa? ya bisa kita bisa logout dan login ke user lainnya kan kita mau transfer uang antar user

nah disini kita memanggil fungsi cek_login tadi dan memasukan inputan kita ke parameternya

duh capek ya? yaudah untuk kali ini saya kasih codenya biar bisa di copas

berikut ini merupakan perulangan yang akan menampilkan menu-menu di atmnya serta pemanggilan setiap fungsi yang kita buat tadi

while loop == "y" and status_login == True:
        u = user[cek_user(user_id)]
        print("SELAMAT DATANG DI ATM BANK BAGOOD")
        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"

pastikan kalian mengcopy kode di atas tadi setelah while untuk login

nih saya kasih full codenya aja deh

user_id = 0
loop = "n"
user =  [
            {   
                "id":"1234",
                "no_rekening":"1234567890",
                "username":"test",
                "pin":"4321",
                "saldo":0
            },
            {   
                "id":"4321",
                "no_rekening":"0987654321",
                "username":"test2",
                "pin":"1234",
                "saldo":25000000
            }
        ]
status_login = False
pakai_atm = "y"

def cek_login(p):
    for us in user:
        if us['pin'] == p:
            return us
    return False        
    
def cek_user(id):
    for i in range(len(user)):
        if user[i]['id'] == str(id):
            return int(i)
    return -1

def cek_rekening(no):
    for i in range(len(user)):
        if str(user[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 user[index1]['saldo'] >= int(uang):
            user[index1]['saldo'] =user[index1]['saldo'] - int(uang)
            user[index2]['saldo'] =user[index2]['saldo'] + int(uang)
            print("Anda berhasil mentransfer uang Rp."+str(uang)+" ke Rekening "+no_rekening)
            print("sisa saldo anda adalah Rp.",user[index1]['saldo'])
        else:
            print("Ops saldo anda tidak cukup")
            
def ambil_uang(uang):
    index1 = cek_user(user_id)
    if index1 >= 0:
        if user[index1]['saldo'] >= int(uang):
            user[index1]['saldo'] =user[index1]['saldo'] - int(uang) 
            print("Anda berhasil menarik uang Rp."+str(uang))
            print("sisa saldo anda adalah Rp.",user[index1]['saldo'])
        else:
            print("Ops saldo anda tidak cukup")


while pakai_atm == "y":
    while status_login == False:
        print("SELAMAT DATANG DI ATM BANK BAGOOD")
        print("Silahkan masukan pin anda")
        pin = input("Masukan PIN : ")
    
        cl = cek_login(pin)
        if cl != False:
            print("selamat data "+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 == True:
        u = user[cek_user(user_id)]
        print("SELAMAT DATANG DI ATM BANK BAGOOD")
        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"

    


nah tinggal di run dan di pakai aja deh

kalau ada eror ya baiki aja sendiri hehe

11 thoughts on “Membuat program ATM sederhana dengan python

    1. menjalankan programnya? karena ini program berbentuk CLI makda di jalankan lewat terminal/cmd jika menggunakan text editor menggunakan spyder/jetbrains sudah tersedia terminalnya sendiri jadi tinggal klik run di menunya

      Like

    1. loop cuma variable yang fungsinya untuk pengecekan perulangan untuk menu setelah berhasil masuk ke atmnya, jadi misal setelah selesai transaksi masih bisa milih menu yang lain.penamaannya ‘loop’ juga bisa di ganti sesuai kita

      Like

  1. Alhamdulillah, makasih ya kak, semoga kebaikannnya dibalas oleh tuhan yg maha esa.. semangat kakak semoga segala urusannya dimudahkan dan dilancarkan aamiin

    Like

Leave a reply to syah Cancel reply