Fakultas Ilmu Komputer UI

Commit aa13b242 authored by Ahmad Dzikrul Fikri's avatar Ahmad Dzikrul Fikri
Browse files

Tugas Pemrograman 9 - Soal 1

parent 8e1d5dec
import kvdb
def simpan_db():
try:
import kvdb
result_f = open("input_order2.txt")
for line in result_f:
line = line.replace('\n','')
name, jumlah = line.split()
kvdb.db_set('UhHzASg8tRdxHtYqiQxrQ3',name,jumlah)
result_f.close()
except FileNotFoundError:
print('\nFile tidak ditemukan')
print('Pastikan file pembeli.txt berada dalam folder yang sama dengan script ini')
print('Pastikan juga terminal anda terhubung dengan folder ini\n')
print('keluar dari program')
except :
print('koneksi internet hilang')
import urllib.request
def simpan_db():
try:
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"
result_f = open("TP9_2_1806196806.txt")
for line in result_f:
line = line.replace('\n','')
key,value = line.split('=')
kvdb.db_set('UhHzASg8tRdxHtYqiQxrQ3',key,value)
result_f.close()
except FileNotFoundError:
print('\nFile tidak ditemukan')
print('Pastikan file pembeli.txt berada dalam folder yang sama dengan script ini')
print('Pastikan juga terminal anda terhubung dengan folder ini\n')
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])
for i in range(len(list_id)):
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':
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
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