import csv
########################################################################
#fungsi impor
def impor():
print('Terimpor {} baris'.format(len(f1)))
#funsi untuk mencari nama warisan budaya
def carinama():
if len(masuk)==2:
if masuk[1] in data_nama:print (data_nama[masuk[1]])
else:print('{} tidak ditemukan'.format(masuk[1]))
elif len(masuk)==3:
if masuk[1]+' '+masuk[2]in data_nama:print (data_nama[masuk[1]+' '+masuk[2]])
else:print('{} tidak ditemukan'.format(masuk[1]+' '+masuk[2]))
else:print('data tidak ditemukan, tunggu BudayaKB Versi 2.0')
#fungsi mencari provinsi
def cariprov():
count=0
if len(masuk)==2:
for i in data_nama.values():
if masuk[1] in i:
count+=1
print(i)
elif len(masuk)==3:
for i in data_nama.values():
if masuk[1]+' '+ masuk[2]in i:
count+=1
print(i)
if count!=0:
print('*Ditemukan {} warisan budaya*'.format(count))
else:
print('data tidak ditemukan')
#fungsi untuk mencari tipe
def caritipe():
count=0
for i in data_nama.values():
if len(masuk)==2:
if masuk[1] in i:
count+=1
print(i)
if count!=0:
print('*Ditemukan {} {}*'.format(count,masuk[1]))
else:
print('{} tidak ditemukan'.format(masuk[1]))
#fungsi untuk mengupdate data warisan budaya
def update():
if len(masuk)==2:data_nama[masuk[1].split(';;;')[0]]=masuk[1].replace(';;;',',')
elif len(masuk)==3:data_nama[masuk[1]+' '+masuk[2].split(';;;')[0]]=masuk[1]+' '+masuk[2].replace(';;;',',')
return data_nama
#fungsi untuk menambah warisan budaya
def tambah():
if len(masuk)==2:data_nama[masuk[1].split(';;;')[0]]=masuk[1].replace(';;;',',')
elif len(masuk)==3:data_nama[masuk[1]+' '+masuk[2].split(';;;')[0]]=masuk[1]+' '+masuk[2].replace(';;;',',')
return data_nama
#fungsi untuk menghapus warisan budaya
def hapus():
del data_nama[masuk[1]]
return data_nama
#fungsi menampilkan jumlah warisan budaya
def stat():
print('Terdapat {} warisan budaya'.format(len(data_nama.keys())))
#fungsi menampilkan jumlah setiap tipe warisan budaya
def statipe():
tipe={i.split(',')[1] for i in data_nama.values()}
data_tipe={}
for i in tipe:
for j in data_nama.values():
if i in j:
if i in data_tipe.keys():
data_tipe[i]+=1
else:
data_tipe[i]=1
print([(i,j) for i,j in data_tipe.items()])
#fungsi menampilkan jumlah warisan budaya setiap provinsi
def statprov():
tipe={i.split(',')[2] for i in data_nama.values()}
data_tipe={}
for i in tipe:
for j in data_nama.values():
if i in j:
if i in data_tipe.keys():
data_tipe[i]+=1
else:
data_tipe[i]=1
print([(i,j) for i,j in data_tipe.items()])
#membuat file csv baru
def ekspor():
f=open(masuk[1], 'w')
for val in data_nama.values():
f.write(val+'\n')
print('Terekspor {} baris'.format(len(data_nama)))
###############################################################
print(5*'#')
print('BudayaKB Lite v1.0')
print('''~Budaya bukanlah sesuatu yang diwariskan melalui gen -Paulo Coelho-
Ayo kenali budaya kita!''')
print(5*'#')
masuk=input('masukkan perintah:').split()
while 'KELUAR' not in masuk:
#case ketika input IMPOR
if masuk[0]=='IMPOR':
f=open(masuk[1],"r")
f1=[i.strip('\n') for i in f.readlines()]
impor()
data_nama={i.split(',')[0]:i for i in f1}
#case ketika input CARINAMA
elif masuk[0]=='CARINAMA':
carinama()
#case ketika input CARIPROV
elif masuk[0]=='CARIPROV':
cariprov()
#case ketika input CARITIPE
elif masuk[0]=='CARITIPE':
caritipe()
#case ketika input TAMBAH
elif masuk[0]=='TAMBAH':
data_nama=tambah()
if len(masuk)==2:
print('{} ditambahkan'.format(masuk[1].split(';;;')[0]))
elif len(masuk)==3:
print('{} ditambahkan'.format(masuk[1]+' '+masuk[2].split(';;;')[0]))
#case ketika input UPDATE
elif masuk[0]=='UPDATE':
data_nama=update()
if len(masuk)==2:
print('{} diupdate'.format(masuk[1]).split(';;;')[0])
elif len(masuk)==3:
print('{} diupdate'.format(masuk[1]+' '+masuk[2].split(';;;')[0]))
#case ketika input HAPUS
elif masuk[0]=='HAPUS':
hapus()
if len(masuk)==2:
print('{} dihapus'.format(masuk[1].split(';;;')[0]))
elif len(masuk)==3:
print('{} dihapus'.format(masuk[1]+' '+masuk[2].split(';;;')[0]))
#case ketika input STAT
elif masuk[0]=='STAT':
stat()
#case ketika input STATIPE
elif masuk[0]=='STATIPE':
statipe()
#case ketika input STATPROV
elif masuk[0]=='STATPROV':
statprov()
#case ketika input EKSPOR
elif masuk[0]=='EKSPOR':
ekspor()
print(5*'#')
masuk=input('masukkan perintah:').split()