def sorting(data): return data[1] def get_koperasi(minimal_pesan,huruf_beruntung): # TODO hash_result = {} try: result_f = open('TP8_1_1806196806.txt') jumlah_cashback = 0 for line in result_f: (nama, jumlah) = line.split() lower_nama = nama.lower() if lower_nama.startswith(huruf_beruntung) == True and int(jumlah) > minimal_pesan: diskon_pelanggan_setia = 16000*int(jumlah)*0.2 diskon_huruf_beruntung = (16000*int(jumlah) - diskon_pelanggan_setia)*0.1 cashback = diskon_pelanggan_setia + diskon_huruf_beruntung jumlah_cashback+=cashback harga = 16000*int(jumlah) - cashback elif lower_nama.startswith(huruf_beruntung) == True: cashback = 16000*int(jumlah)*0.1 jumlah_cashback+=cashback harga = 16000*int(jumlah) - cashback elif int(jumlah) > minimal_pesan: cashback = 16000*int(jumlah)*0.2 jumlah_cashback+=cashback harga = 16000*int(jumlah) - cashback else: harga = int(jumlah)*16000 hash_result[nama+' '+jumlah] = int(harga) result_f.close() sorted_items = sorted(hash_result.items(), key=sorting, reverse = True) hash_result = dict(sorted_items) data_baru = open('TP8_2_1806196806.txt', 'w') for keys in hash_result.keys(): data_baru.write(keys+' '+str(hash_result[keys])+'\n') data_baru.close() print('Jumlah uang yang dibutuhkan untuk cashback:', int(jumlah_cashback)) except TypeError: print('input ke dalam file harus berupa string') except FileNotFoundError: print('\nFile tidak ditemukan') print('Pastikan file input_order2.txt berada dalam folder yang sama dengan script ini') print('Pastikan juga terminal anda terhubung dengan folder ini\n') print('keluar dari program') def cek_huruf_eror(): input_huruf_eror = True while input_huruf_eror == True: huruf_input = input('masukkan huruf depan dari nama pelanggan yang beruntung: ').lower() if huruf_input.isalpha() == True: input_huruf_eror = False else: print('\ninput huruf harus berupa huruf tanpa angka\n') return huruf_input def cek_input_angka_eror(): input_pembelian_eror = True while input_pembelian_eror == True: try: angka = int(input('masukkan minimal pembelian untuk menjadi pelanggan tetap: ')) input_pembelian_eror = False except: print('\ninput harus berupa angka tanpa huruf\n') return angka batas_pelanggan_tetap = cek_input_angka_eror() pelanggan_beruntung = cek_huruf_eror() get_koperasi(batas_pelanggan_tetap,pelanggan_beruntung)