fork download
  1. import csv
  2. ########################################################################
  3. #fungsi impor
  4. def impor():
  5. print('Terimpor {} baris'.format(len(f1)))
  6. #funsi untuk mencari nama warisan budaya
  7. def carinama():
  8. if len(masuk)==2:
  9. if masuk[1] in data_nama:print (data_nama[masuk[1]])
  10. else:print('{} tidak ditemukan'.format(masuk[1]))
  11. elif len(masuk)==3:
  12. if masuk[1]+' '+masuk[2]in data_nama:print (data_nama[masuk[1]+' '+masuk[2]])
  13. else:print('{} tidak ditemukan'.format(masuk[1]+' '+masuk[2]))
  14. else:print('data tidak ditemukan, tunggu BudayaKB Versi 2.0')
  15. #fungsi mencari provinsi
  16. def cariprov():
  17. count=0
  18. if len(masuk)==2:
  19. for i in data_nama.values():
  20. if masuk[1] in i:
  21. count+=1
  22. print(i)
  23. elif len(masuk)==3:
  24. for i in data_nama.values():
  25. if masuk[1]+' '+ masuk[2]in i:
  26. count+=1
  27. print(i)
  28. if count!=0:
  29. print('*Ditemukan {} warisan budaya*'.format(count))
  30. else:
  31. print('data tidak ditemukan')
  32. #fungsi untuk mencari tipe
  33. def caritipe():
  34. count=0
  35. for i in data_nama.values():
  36. if len(masuk)==2:
  37. if masuk[1] in i:
  38. count+=1
  39. print(i)
  40. if count!=0:
  41. print('*Ditemukan {} {}*'.format(count,masuk[1]))
  42. else:
  43. print('{} tidak ditemukan'.format(masuk[1]))
  44. #fungsi untuk mengupdate data warisan budaya
  45. def update():
  46. if len(masuk)==2:data_nama[masuk[1].split(';;;')[0]]=masuk[1].replace(';;;',',')
  47. elif len(masuk)==3:data_nama[masuk[1]+' '+masuk[2].split(';;;')[0]]=masuk[1]+' '+masuk[2].replace(';;;',',')
  48. return data_nama
  49. #fungsi untuk menambah warisan budaya
  50. def tambah():
  51. if len(masuk)==2:data_nama[masuk[1].split(';;;')[0]]=masuk[1].replace(';;;',',')
  52. elif len(masuk)==3:data_nama[masuk[1]+' '+masuk[2].split(';;;')[0]]=masuk[1]+' '+masuk[2].replace(';;;',',')
  53. return data_nama
  54. #fungsi untuk menghapus warisan budaya
  55. def hapus():
  56. del data_nama[masuk[1]]
  57. return data_nama
  58. #fungsi menampilkan jumlah warisan budaya
  59. def stat():
  60. print('Terdapat {} warisan budaya'.format(len(data_nama.keys())))
  61. #fungsi menampilkan jumlah setiap tipe warisan budaya
  62. def statipe():
  63. tipe={i.split(',')[1] for i in data_nama.values()}
  64. data_tipe={}
  65. for i in tipe:
  66. for j in data_nama.values():
  67. if i in j:
  68. if i in data_tipe.keys():
  69. data_tipe[i]+=1
  70. else:
  71. data_tipe[i]=1
  72. print([(i,j) for i,j in data_tipe.items()])
  73. #fungsi menampilkan jumlah warisan budaya setiap provinsi
  74. def statprov():
  75. tipe={i.split(',')[2] for i in data_nama.values()}
  76. data_tipe={}
  77. for i in tipe:
  78. for j in data_nama.values():
  79. if i in j:
  80. if i in data_tipe.keys():
  81. data_tipe[i]+=1
  82. else:
  83. data_tipe[i]=1
  84. print([(i,j) for i,j in data_tipe.items()])
  85. #membuat file csv baru
  86. def ekspor():
  87. f=open(masuk[1], 'w')
  88. for val in data_nama.values():
  89. f.write(val+'\n')
  90. print('Terekspor {} baris'.format(len(data_nama)))
  91. ###############################################################
  92. print(5*'#')
  93. print('BudayaKB Lite v1.0')
  94. print('''~Budaya bukanlah sesuatu yang diwariskan melalui gen -Paulo Coelho-
  95. Ayo kenali budaya kita!''')
  96. print(5*'#')
  97. masuk=input('masukkan perintah:').split()
  98. while 'KELUAR' not in masuk:
  99. #case ketika input IMPOR
  100. if masuk[0]=='IMPOR':
  101. f=open(masuk[1],"r")
  102. f1=[i.strip('\n') for i in f.readlines()]
  103. impor()
  104. data_nama={i.split(',')[0]:i for i in f1}
  105. #case ketika input CARINAMA
  106. elif masuk[0]=='CARINAMA':
  107. carinama()
  108. #case ketika input CARIPROV
  109. elif masuk[0]=='CARIPROV':
  110. cariprov()
  111. #case ketika input CARITIPE
  112. elif masuk[0]=='CARITIPE':
  113. caritipe()
  114. #case ketika input TAMBAH
  115. elif masuk[0]=='TAMBAH':
  116. data_nama=tambah()
  117. if len(masuk)==2:
  118. print('{} ditambahkan'.format(masuk[1].split(';;;')[0]))
  119. elif len(masuk)==3:
  120. print('{} ditambahkan'.format(masuk[1]+' '+masuk[2].split(';;;')[0]))
  121. #case ketika input UPDATE
  122. elif masuk[0]=='UPDATE':
  123. data_nama=update()
  124. if len(masuk)==2:
  125. print('{} diupdate'.format(masuk[1]).split(';;;')[0])
  126. elif len(masuk)==3:
  127. print('{} diupdate'.format(masuk[1]+' '+masuk[2].split(';;;')[0]))
  128. #case ketika input HAPUS
  129. elif masuk[0]=='HAPUS':
  130. hapus()
  131. if len(masuk)==2:
  132. print('{} dihapus'.format(masuk[1].split(';;;')[0]))
  133. elif len(masuk)==3:
  134. print('{} dihapus'.format(masuk[1]+' '+masuk[2].split(';;;')[0]))
  135. #case ketika input STAT
  136. elif masuk[0]=='STAT':
  137. stat()
  138. #case ketika input STATIPE
  139. elif masuk[0]=='STATIPE':
  140. statipe()
  141. #case ketika input STATPROV
  142. elif masuk[0]=='STATPROV':
  143. statprov()
  144. #case ketika input EKSPOR
  145. elif masuk[0]=='EKSPOR':
  146. ekspor()
  147. print(5*'#')
  148. masuk=input('masukkan perintah:').split()
  149.  
Runtime error #stdin #stdout #stderr 0.16s 23540KB
stdin
Standard input is empty
stdout
#####
BudayaKB Lite v1.0
~Budaya bukanlah sesuatu yang diwariskan melalui gen -Paulo Coelho-
Ayo kenali budaya kita!
#####
masukkan perintah:
stderr
Traceback (most recent call last):
  File "./prog.py", line 97, in <module>
EOFError: EOF when reading a line