Anda di halaman 1dari 12

Tugas Algoritma Pemograman

Pseudocode ATA
Import library python random, string, pickle

DEKLARASI
user_id = 0
loop = "n"
users = []
nominal_transfer = 0
nominal_masuk = 0
nominal_tarik = 0
no rektujuan = " "
nama_bank = " "
nama_penerima = " "
status_login = False
pakai_atm = "y"

fungsi login (p, d)


for user = users
if user [‘pin’] == p AND user[‘id’] == d then
return user
end if
return False

fungsi cek_user(id)
for i = 0 to length.user
if users [i] [‘id’] == string.id then
return int.i
end if
return -1

fungsi transfer_uang(uang, no_rekening)


ganti hasil function cek_user(user_id) ke dalam index1
if index1 >= 0 then
if integer.user[index1, ‘saldo’] >= integer.uang + 500 then
users [index1, ‘saldo’] = integer.users[index1, ‘saldo’] – integer.uang-500
tampilkan
====================
Transfer BERHASIL
No-rekening tujuan
nama penerima
jumlah uang
Nama bank
dengan biaya admin sebesar Rp.500,-/
======================
Sisa saldo anda
else:
tampilkan
Saldo Anda tidak cukup
end if
end if

fungsi ambil_uang(uang)
ganti hasil function cek_user(user_id) ke dalam index1
if index1 >= 0 then
if integer.users[index1, ‘saldo’] >= integer.uang then
user[index1, ‘saldo] = integer.user[index, ‘saldo’] - integer.uang
token_angkahuruf = string.ascii_uppercase + string.digits
token = "".join(random.choice(token_angkahuruf) for i = 0 to 12)
tampilkan
Anda menarik uang sebesar Rp. string.uang
Sisa saldo Anda adalah Rp.", users[index1, 'saldo'])
Nomor token Anda : token
else:
tampilkan
Saldo anda tidak cukup
endif
endif

fungsi masukan_uang(uang)
ganti hasil function cek_user(user_id) ke dalam index2
if index2 >= 0 then
users[index2, 'saldo'] = integer.users[index2, 'saldo'] + integer.uang
token_angkahuruf = string.ascii_uppercase + string.digits
token = "".join(random.choice(token_angkahuruf) for i= 0 to 12)
tampilkan
Anda memasukkan uang sebesar Rp. string.uang
Sisa saldo Anda akan bertambah menjadi Rp. users[index2, 'saldo']
Nomor token Anda : {token}
end if

//===============================
// Program utama
// ==============================
nama_file_database = "usersDB.pickle"
// load data dari file pickle
Sistem mebuka file
Users mengambil file yang telah dibuka
Jika file tidak sesuai format maka user [ ]
// ==============================
while pakai_atm = y
while not status_login
deklarasi
z=0
tampilkan
SELAMAT DATANG DI ATA (Automated Teller Apps
pilih:
1. Buat akun
2. Login
while True
meminta user untuk input integer 1 atau 2 Masukkan pilihan Anda :
z = inputan
jika input selain 1 atau 2 mohon hanya masukkan angka yang benar
looping sampai masukan benar

if z == 1 then
tampilkan
silahkan buat akun terlebih dahulu

username = meminta input, masukkan user name anda


no_rekening = ” “
while True
a = meminta input, masukkan nomor rekening anda
if length.a >= 10 AND length.a <= 16 then
no_rekening = a
else:
tampilkan
nomor rekening tidak ditemukan
looping hingga masukkan benar
end if

cek apakah masukkan integer


jika bukan tampilkan
nomor rekening yang dimasukkan harus berupa angka
looping sampai masukan benar

dafault
sampai masukan benar
break
deklarasi
saldo awal = 0
while True
b = meminta masukan integer Masukkan saldo terakhir Anda :
saldo awal = b
ketika masukan bukan angka, tampilkan
Saldo Awal yang dimasukkan harus berupa angka
looping sampai masukan benar
default
looping sampai masukan benar
break

deklarasi
pin = ‘ ’
while True
c = meminta masukan ‘Masukkan PIN Anda : ‘
if length.string.c = 6 then
pin = string.c
else:
tampilkan
PIN anda salah
looping masukan sampai benar
end if
dicek apakah c_cek = integer.c
jika bukan integer, tampilkan ‘PIN yang dimasukkan harus berupa angka’
looping sampai masukan benar

default
looping sampai masukan benar
break
deklarasi
id = ‘ ’
for i = 0 sampai 5 :
panjang_id = random.randint(48,57)
id = id + chr(panjang_id)
info user:
users = users, id, no_rekening, username, pin, saldo_awal
tampilkan
Data Diri Pengguna
User name
ID
Nomor rekening
Saldo awal
//========================================
// halaman login
// ========================================
elif z == 2 then
tampilkan
silahkan masukan pin anda

deklarasi
pin = ‘ ’
while True
meminta inputan angka masukkan PIN = cek_pin
pin = string.cek_pin
ketika masukkan bukan angka,tampilkan
PIN yang dimasukkan harus berupa angka
Looping ke masukkan PIN sampai benar
default looping ke masukkan pin sampai benar
break

deklarasi
id = ‘ ’
while True
meminta masukkan integer Masukkan ID = cek_id
id = string.cek_id
ketika masukan id bukan angka, tampilkan
ID yang dimasukkan harus berupa angka
looping masukan sampai benar

default
looping masukan sampai benar
break

deklarasi
c1 = cek_login(pin, id)
if c1 then
status login = True
tampilkan
“Selamat datang c1[user_name] c1[id]
else:
tampilkan
PIN dan/atau ID Anda salah
end if
else:
tampilkan
Mohon hanya masukkan angka 1 atau 2
looping hingga masukan benar
end if
while loop == ’ y’ AND status _login
u = users[cek_users(user_id)]
tampilkan
SELAMAT DATANG DI ATA (Automated Teller Apps)
1. Cek Saldo
2. Transfer Uang
3. Ambil Uang
4. Masukkan Uang (Isi Saldo)
5. Riwayat Pemasukkan dan Pengeluaran
6. Info Rekening
7. Logout
8. Tutup Aplikasi

deklarasi
a=0
while True
inputan = meminta masukan integer, “Silakan pilih menu :”
a = inputan
ketika masukan bukan integer, tampilkan
Mohon hanya masukkan angka
looping sampai masukan benar
default
looping sampai masukan benar
break

//=====================================================
//program transfer uang
// =====================================================

if a == 1 then
tampilkan
Sisa aldo Anda adalah Rp. “ Saldo”
looping ke menu utama

//=====================================================
//program ambil uang
// =====================================================
elif a == 2 then
deklarasi
no_rek = “ ”

tampilkan
Untuk mentransfer uang silakan masukkan nomor rekening tujuan
while True
x = meminta input "Masukan nomor rekening tujuan : "
if length.x >= 10 AND length.x <= 16:
no_rek = x
else:
tampilkan
Nomor rekening tidak ditemukan
looping masukkan sampai benar
end if

coba cek apakah x_cek = integer.x


ketika x bukan angka, tampilkan
Nomor rekening tujuan yang dimasukkan harus berupa angka
looping masukan sampai benar
default
looping masukan sampai benar
break

no_rektujuan = no_rektujuan + no_rek


if length.string.no_rek <= 16 AND length.string.no_rek >= 10
tampilkan
Nomor rekening ditemukan
nominal = meminta masukan integer “Nominal transfer : “
atasnama = meminta masukan “Masukkan nama penerima : “
nama_penerima = atasnama

tampilkan
Pilih Bank yang dituju
1. BNI
2. BNI Syariah
3. Mandiri
4. Mandiri Syariah
5. BRI
6. BCA
7. BTN
8. Bankaltimtara
9. Bank Mega
10. Danamon
11. Bank Muamalat

pilih_bank = meminta masukan integer“Masukkan pilihan Anda : “


if pilih_bank == 1 then
nama_bank = BNI
elif pilih_bank == 2 then
nama_bank = BNI Syariah
elif pilih_bank == 3 then
nama_bank = Mandiri
elif pilih_bank == 4 then
nama_bank = Mandiri Syariah
elif pilih_bank == 5 then
nama_bank = BRI
elif pilih_bank == 6 then
nama_bank = BCA
elif pilih_bank == 7 then
nama_bank = BTN
elif pilih_bank == 8 then
nama_bank = Bankaltimtara
elif pilih_bank == 9 then
nama_bank = Bank Mega
elif pilih_bank == 10 then
nama_bank = Danamon
elif pilih_bank == 11 then
nama_bank = Bank Muamalat
else:
tampilkan
Pilihan tidak tersedia
looping masukan sampai benar
end if
nominal_transfer = nominal_transfer + nominal
tranfer_uang(nominal, no_rek)

looping ke menu utama


else:
tampilkan
Nomor rekening tujuan tidak ditemukan atau tidak terdaftar
looping sampai masukan benar
end if

// =======================================================
// program ambil uang
// =======================================================
elif a == 3 then
tampilkan
Pilih minimarket tempat Anda mengambil uang
1. Indomaret
2. Alfamart
3. Alfamidi
pilih = meminta masukan bilangan, Masukkan pilihan Anda :
if pilih < 1 or pilih > 3 then
tampilkan
Mohon pilih sesuai menu yang ada

else
deklarasi
nominal = 0
while True
y = meminta masukan integer,Nominal yang akan ditarik:
nominal = y
ketika inputan bukan bilangan, tampilkan
nominal yang dimasukkan harus berupa angka
looping sampai masukan benar
default
looping sampai masukan benar
break
nominal_tarik = nominal_tarik + integer.nominal
panggil fungsi ambil_uang(nominal)
if pilih == 1 then
tampilkan
Ambil uang Anda di Indomaret terdekat dengan menunjukkan nomor
token dan ID pada kasir
elif pilih == 2 then
tampilkan
Ambil uang Anda di Alfamart terdekat dengan menunjukkan nomor token
dan ID pada kasir
elif pilih == 3 then
tampilkan
Ambil uang Anda di Alfamidi terdekat dengan menunjukkan nomor token
dan ID pada kasir
end if
tampilkan
Lakukan konfirmasi setelah mengambil uang Anda
konfirmasi = meminta masukan, Tekan tombol Y atau T
if konfirmasi = Y then
tampilkan
Terima Kasih!!
elif konfirmasi = T then
nominal_tarik = nominal_tarik – integer.nominal
u['saldo'] = integer.nominal
tampilkan
Silakan ulangi transaksi dengan kembali ke menu utama
else:
tampilkan
Mohon hanya mengetikkan huruf Y atau T
looping sampai masukan benar
end if
looping ke menu utama
// =========================================================
//program masukkan uang (isi saldo)
//==========================================================
elif a == 4 then
tampilkan
pilih minimarket tempat Anda memasukkan uang
1. Indomaret
2. Alfamart
3. Alfamidi
pilih = meminta masukan integer Masukkan pilihan Anda
if pilih < 1 or pilih > 3 then
tampilkan
Mohon pilih sesuai menu yang ada
else:
deklarasi
nominal = 0
while True
z = meminta masukan integer, Nominal yang akan dimasukkan
nominal = z
ketika masukan bukan bilangan, tampilkan
Nominal yang dimasukkan harus berupa angka
looping sampai masukan benar
default
looping sampai masukan benar
break
nominal_masuk = nominal_masuk + integer.nominal
panggil fungsi masukkan_uang(nominal)
end if
if pilih == 1 then
tampilkan
Setor uang Anda di Indomaret terdekat dengan menunjukkan nomor token
dan ID pada kasir
elif pilih == 2 then
tampilkan
Setor uang Anda di Alfamart terdekat dengan menunjukkan nomor token
dan ID pada kasir
elif pilih == 3 then
tampilkan
Setor uang Anda di Alfamidi terdekat dengan menunjukkan nomor token
dan ID pada kasir
end if

tampilkan
Lakukan konfirmasi setelah memasukkan uang Anda
konfirmasi = meminta masukan, Tekan tombol Y atau T
if konfirmasi = Y then
tampilkan
Terima Kasih!!
elif konfirmasi = T then
nominal_masuk = nominal_masuk – integer.nominal
u['saldo'] -= integer.nominal
tampilkan
Silakan ulangi transaksi dengan kembali ke menu utama
else:
tampilkan
Mohon hanya mengetikkan huruf Y atau T
end if
looping ke menu utama

//===========================================================
//riwayat pemasukan dan pengeluaran
//===========================================================
elif a == 5 then
tampilkan
Riwayat Pemasukan dan Pengeluaran Terakhir Anda
Saldo terakhir Anda sebesar Rp.{u['saldo']}
Penarikan terakhir Anda sebesar Rp.{nominal_tarik}
Pemasukkan terakhir Anda sebesar Rp.{nominal_masuk}
Terakhir kali Anda transfer uang sebesar Rp.{nominal_transfer}
ke nomor rekening {no_rektujuan}
a/n {nama_penerima}
Data di atas akan terus diperbarui ketika Anda melakukan transaksi kembali
looping ke menu utama
//==============================================================
//data diri pengguna
//==============================================================
elif a == 6 then
tampilkan
Data Diri Pengguna
Username : {u['username']}
ID : {u['id']}
Nomor rekening : {u['no_rekening']}")
Saldo : {u['saldo']}

looping ke menu utama

//==================================================
//menu logout
//==================================================
elif a == 7 then
status_login = False
//simpan data ke file
tampilkan
Harap tunggu, menyimpan data...
myFile = open file(nama_file_database, “wb”)
pickle.dump(users, myFile)
tampilkan
Berhasil menyimpan, semoga hari anda menyenangkan!
//=======================================================
//keluar dari menu utama
//=======================================================
elif a == 8 then
tampilkan
Terima Kasih!!
status_login = False
looping ke menu utama
pakai_atm =”n”
//====================================================
//pengguna memasukkan pilihan lain
//====================================================
else:
tampilkan
Pilihan tidak tersedia
end if

if status_login = True then


tekan Enter agar Kembali ke menu utama (Enter)
looping ke menu utama
end if

Anda mungkin juga menyukai