Fakultas Ilmu Komputer UI

Commit 62c1f8aa authored by Ahmad Dzikrul Fikri's avatar Ahmad Dzikrul Fikri
Browse files

Tugas Pemrograman 10 - Soal 2

parent 18da5e25
from random import randint
def nomor_atm(berkas = "nasabah_awal.txt"):
try:
data = open(berkas)
s = {}
for line in data:
line = line.replace('\n','')
line = line.replace('','')
nama, kota, level = line.split()
if kota.lower() == 'jakarta':
kode_kota = '01'
elif kota.lower() == 'bekasi':
kode_kota = '02'
else:
kode_kota = '03'
if level.lower() == 'emas':
kode_level = '01'
elif level.lower() == 'perak':
kode_level = '02'
else:
kode_level = '03'
kode_acak = str(randint(10000,99999))
value = kode_kota+kode_level+kode_acak
s[nama] = value
data.close()
except KeyError:
print('Value hanya boleh terdiri dari satu tipe data (tidak boleh campuran)\n')
except SyntaxError:
print('Key hanya boleh terdiri dari satu tipe data (tidak boleh campuran)\n')
except FileNotFoundError:
print('File tidak ditemukan\nPastikan file berada di foldder yang sama\nPastikan terminal terhubung dengan folder file\n')
return s
\ No newline at end of file
from TP10_1_1806196806 import *
hash_atm = nomor_atm()
s={}
hash_riwayat = {}
keluar = False
while keluar == False:
print('Pilih menu:\n1. Transfer\n2. Cek riwayat\n3. Keluar')
pilihan = input('\nSilahkan masukkan pilihan sesuai nomor: ')
if pilihan == '1':
try:
perintah = input('Masukan perintah transfer: ').lower()
kode, pengirim, penerima, nominal = perintah.split()
if int(nominal) <= 9000000 :
nominal = '%07d' % (int(nominal))
value = hash_atm[penerima.upper()]+nominal
s.setdefault(pengirim.upper()+';'+hash_atm[pengirim.upper()],[]).append(value)
hash_riwayat.setdefault(pengirim.upper(),[]).append(penerima.upper()+' '+str(int(nominal)))
print('Transfer berhasil!\n')
else:
print('\nNominal transaksi maksimum adalah Rp 9.000.000')
print('Silahkan masukkan nominal yang lebih rendah\n')
except KeyError:
print('Value hanya boleh terdiri dari satu tipe data (tidak boleh campuran)\n')
except SyntaxError:
print('Key hanya boleh terdiri dari satu tipe data (tidak boleh campuran)\n')
except ValueError:
print('\ninput yang anda masukkan salah')
print('format input yang benar : transfer [nama nasabah pengirim] [nama nasabah penerima] [nominal transfer]')
print('Contoh input: \'transfer Alsi Airam 20000\'\n')
elif pilihan == '2':
nama = input('Masukan nama nasabah: ').upper()
try:
hash_atm[nama]
print('Riwayat '+nama+':')
try:
for i in hash_riwayat[nama]:
tujuan,jumlah = i.split()
print('Transfer ke '+tujuan+' sebesar '+jumlah+'\n')
except:
print(nama+' belum melakukan transaksi\n')
except:
print(nama+' tidak terdaftar dalam sistem ATM\n')
elif pilihan == '3':
print('Terimakasih')
keluar = True
else:
print('\nInput anda salah!\nSilahkan masukkan input berupa nomor pada pilihan\n')
data_baru = open('1806196806_transaction_log.txt','w')
for nama in hash_atm.keys():
try:
s[nama.upper()+';'+hash_atm[nama]]
for nama_dan_atm in s.keys():
data_baru.write(nama_dan_atm+':\n')
for transaksi in s[nama_dan_atm]:
data_baru.write(transaksi+'\n')
except:
data_baru.write(nama+';'+hash_atm[nama]+':\n')
data_baru.write('\nBelum pernah melakukan transaksi.\n')
data_baru.close()
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment