Fakultas Ilmu Komputer UI

Commit 1c24aeff authored by Ahmad Dzikrul Fikri's avatar Ahmad Dzikrul Fikri
Browse files

Tugas Pemrograman 9 - Soal 3

parent d39a3db1
def simpan_file(): import urllib.request
def simpan_db():
try: try:
result_f = open("pembeli.txt") import kvdb #library kvdb di import di dalam fungsi karena library ini membutuhkan koneksi internet dan saat koneksi internet terputus, akan muncul pesan "koneksi internet terputus"
data_baru = open('TP9_2_1806196806.txt', 'w') result_f = open("TP9_2_1806196806.txt")
for line in result_f: for line in result_f:
s = {}
line = line.replace('\n','') line = line.replace('\n','')
(id_pelanggan, s['nama_depan'], s['nama_belakang'], s['tempat_tinggal'], s['jumlah_pembelian'], s['level_keanggotaan']) = line.split() key,value = line.split('=')
for keys in s: kvdb.db_set('UhHzASg8tRdxHtYqiQxrQ3',key,value)
data_baru.write('pembeli:'+id_pelanggan+':'+keys+'='+s[keys]+'\n') result_f.close()
data_baru.close()
except TypeError:
print('input ke dalam file harus berupa string')
except FileNotFoundError: except FileNotFoundError:
print('\nFile tidak ditemukan') print('\nFile tidak ditemukan')
print('Pastikan file pembeli.txt berada dalam folder yang sama dengan script ini') print('Pastikan file pembeli.txt berada dalam folder yang sama dengan script ini')
print('Pastikan juga terminal anda terhubung dengan folder ini\n') print('Pastikan juga terminal anda terhubung dengan folder ini\n')
print('keluar dari program') print('keluar dari program')
except :
print('koneksi internet terputus')
def select_data(nama_atribut,nama_tabel,token='UhHzASg8tRdxHtYqiQxrQ3'):
try:
import kvdb
list_id = []
id_fix = []
data = kvdb.db_get_key_list(token)
for item in range(len(data)):
if data[item].startswith(nama_tabel):
id_data = data[item].split(':')
list_id.append(id_data[1])
simpan_file() for i in range(len(list_id)):
\ No newline at end of file if list_id[i] != list_id[i-1]:
id_fix.append(int(list_id[i]))
id_fix.sort()
hash_file = kvdb.db_get(token)
keluaran = ''
for id_input in id_fix:
key = nama_tabel+':'+str(id_input)+':'+nama_atribut
result = hash_file[key]
keluaran = keluaran + str(result) + '\n'
return keluaran
except KeyError:
print('data tidak ditemukan')
except :
print('Koneksi internet terputus')
def select_top(jumlah,nama_tabel):
data = select_data('jumlah_pembelian',nama_tabel)
data = data.split('\n')
data[-1:] = []
for index in range(len(data)):
data[index] = int(data[index])
data.sort(reverse=True)
for i in range(jumlah):
print(data[i])
atribut = ['nama_depan','nama_belakang','tempat_tinggal','jumlah_pembelian','level_keanggotaan']
print('pilihan atribut: ')
print(atribut)
print('\nformat input:\nSELECT [nama_atribut] FROM [nama_tabel]\nSELECT TOP [n_atribut_teratas] jumlah pembelian from [nama_tabel]\n')
pilihan = input('masukkan input (jika ingin keluar dari program, ketik \'keluar\'):').lower()
input_eror = True
while input_eror == True:
try:
if pilihan.startswith('select top'):
pilihan = pilihan.split()
if pilihan[2].isdecimal() == True and \
pilihan[3] == 'jumlah' and \
pilihan[4] == 'pembelian' and \
pilihan[5] == 'from' and \
pilihan[-1] == 'pembeli' :
select_top(int(pilihan[2]),pilihan[-1])
input_eror = False
else:
print('input anda salah\n')
pilihan = input('masukkan input:').lower()
elif pilihan.startswith('select'):
pilihan = pilihan.split()
atribut_ditemukan = pilihan[1] in atribut
if atribut_ditemukan == True and pilihan[2] == 'from' and pilihan[-1] == 'pembeli':
print(select_data(pilihan[1],pilihan[3]))
input_eror = False
else:
print('input anda salah\n')
pilihan = input('masukkan input:').lower()
elif pilihan == 'keluar':
print('Terimakasih')
input_eror = False
else:
print('input anda salah\n')
pilihan = input('masukkan input:').lower()
except :
print('input anda salah\n')
pilihan = input('masukkan input:').lower()
\ No newline at end of file
This diff is collapsed.
Supports Markdown
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