Advertisement
Guest User

mantab_duy

a guest
Nov 15th, 2019
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.82 KB | None | 0 0
  1. """
  2. TUGAS POSTTEST 6
  3. 1915036114_YUDA_PRATAMA_POSTTEST6
  4.  
  5. JAWABAN SOAL TUGAS:
  6. 1. MENAMPILKAN ISI DICTIONARY BERADA DI SEMUA FUNCTION KECUAL HOME DAN LOGIN
  7. 2. PENAMBAHAN DATA KE DICT ADA PADA FUNCTION bookingMobil()
  8. 3. PENGUBAHAN DATA BERADA PADA FUNCTION ubahDataPenyewa()
  9. 4. PENGHAPUSAN DATA BERADA PADA FUNCTION kembalikanMobil()
  10. """
  11.  
  12. import datetime
  13. import time
  14.  
  15. tanggalSekarang = datetime.datetime.now()
  16.  
  17. daftar_penyewa = {} # TEMPAT PENYIMPANAN DATA PENYEWA
  18.  
  19. # VARIABEL DIBAWAH INI BERFUNGSI UNTUK PENYIMPANAN DATA MOBIL
  20. daftar_mobil = {
  21. "AVANZA" : {'hargaSewa' : '400000', 'status' : 'Tersedia'},
  22. "TERIOS" : {'hargaSewa' : '550000', 'status' : 'Tersedia'},
  23. "AYLA" : {'hargaSewa' : '380000', 'status' : 'Tersedia'},
  24. "XENIA" : {'hargaSewa' : '650000', 'status' : 'Tersedia'},
  25. "PICK UP" : {'hargaSewa' : '350000', 'status' : 'Tersedia'}
  26. }
  27.  
  28. # VARIABEL DIBAWAH INI BERFUNGSI UNTUK PENYIMPANAN DATA AKUN
  29. daftar_akun = {
  30. "aduy1" : {'nama' : 'Aduy Ganteng', 'password' : 'aduy1'},
  31. "aduy2" : {'nama' : 'Aduy Mantab','password' : 'aduy2'},
  32. "aduy3" : {'nama' : 'Aduy Mantul','password' : 'aduy3'}
  33. }
  34.  
  35. # FUNCTION DIBAWAH INI BERFUNGSI UNTUK LOGIN ATAU MASUK KE SISTEM
  36. def login():
  37. username = input("\nSilahkan masukan username anda : ")
  38. if daftar_akun.get(username) != None:
  39. password = input("\nSilahkan masukan password anda : ")
  40. if daftar_akun[username]['password'] == password:
  41. print('\n========= MOHON TUNGGU SEBENTAR ========')
  42. time.sleep(1)
  43. print('\n==== LOGIN BERHASIL, SELAMAT DATANG '+daftar_akun[username]['nama']+' ====')
  44. time.sleep(1.4)
  45. home()
  46. else:
  47. print('\n======== PASSWORD SALAH ! ========')
  48. login()
  49. else:
  50. print('\n===== DATA TIDAK DITEMUKAN ! =====')
  51. login()
  52.  
  53. # FUNCTION DIBAWAH INI BERFUNGSI UNTUK MENAMPILKAN DAFTAR MENU YANG TERDAPAT PADA PROGRAM
  54. def home():
  55. menu = """
  56. [=============================================]
  57. [----- WELCOME TO E-BOOKING RENTAL MOBIL -----]
  58. [------ SILAHKAN PILIH MENU DIBAWAH INI ------]
  59. [=============================================]
  60. [ 1. BOOKING MOBIL ---------------------------]
  61. [ 2. PENGEMBALIAN MOBIL ----------------------]
  62. [ 3. LIHAT DAFTAR PENYEWA --------------------]
  63. [ 4. UBAH DATA PENYEWA -----------------------]
  64. [ 5. KELUAR ----------------------------------]
  65. [=============================================]
  66. """
  67. print(menu)
  68.  
  69. pilihan = int(input("Silahkan pilih menu [1/2/3/4] : "))
  70. if pilihan == 1:
  71. time.sleep(1)
  72. bookingMobil()
  73. elif pilihan == 2:
  74. kembalikanMobil()
  75. elif pilihan == 3:
  76. lihatDaftarPenyewa()
  77. elif pilihan == 4:
  78. ubahDataPenyewa()
  79. elif pilihan == 5:
  80. print('\n============== MOHON TUNGGU SEBENTAR ==============')
  81. time.sleep(1)
  82. print('=============== ANDA BERHASIL KELUAR ==============')
  83. login()
  84. else:
  85. print('\n======= MOHON MAAF, MENU YANG ANDA PILIH TIDAK TERSEDIA =======')
  86. time.sleep(3)
  87. home()
  88.  
  89. # FUNCTION DIBAWAH INI BERFUNGSI UNTUK PROSES PEMESANAN SEWA MOBIL
  90. def bookingMobil():
  91. global tanggalSekarang
  92. global daftar_penyewa
  93. print('\n=========== DAFTAR MOBIL ===========\n')
  94. no = 1
  95. for mobil, dataMobil in daftar_mobil.items():
  96. print(str(no) +". "+ mobil +" - "+dataMobil['hargaSewa'] +"/hari - "+ dataMobil['status'])
  97. no += 1
  98. print('\n====================================\n')
  99. mobilPilihan = input("Silahkan pilih mobil yang ingin anda booking : ")
  100. for mobil, dataMobil in daftar_mobil.items():
  101. if mobil == mobilPilihan.upper():
  102. if dataMobil['status'] == "Tersedia":
  103. namaPenyewa = input("Silahkan masukan nama anda : ")
  104. ponselPenyewa = int(input("Silahkan masukan nomor ponsel anda : "))
  105. lamaSewa = int(input('Silahkan masukan berapa hari penyewaan : '))
  106. mobilPilihan = mobil
  107. biayaSewa = lamaSewa * int(dataMobil['hargaSewa'])
  108. tanggalSewa = tanggalSekarang.day
  109. bulanSewa = tanggalSekarang.month
  110. tahunSewa = tanggalSekarang.year
  111. # Input data penyewa ke buku penyewa
  112. daftar_penyewa[namaPenyewa.upper()] = {
  113. 'nama' : namaPenyewa.upper(),
  114. 'ponsel' : ponselPenyewa,
  115. 'mobil' : mobilPilihan,
  116. 'tanggalSewa' : tanggalSewa,
  117. 'bulanSewa' : bulanSewa,
  118. 'tahunSewa' : tahunSewa,
  119. 'lamaSewa' : lamaSewa,
  120. 'biayaSewa' : biayaSewa
  121. }
  122. # Ubah status mobil yang disewa dari tersedia menjadi tidak tersedia
  123. dataMobil['status'] = "Tidak tersedia"
  124. print('\n============== MOHON TUNGGU, DATA BOOKING SEDANG DIPROSES ==============')
  125. time.sleep(1.7)
  126. pesan = """
  127. =========================== BOOKING BERHASIL ===========================
  128. SILAHKAN DP NOMINAL UANG SEBESAR Rp.100000 KE REKENING DIBAWAH INI
  129. ===================== 1915036114 a/n YUDA PRATAMA ======================
  130. """
  131. print(pesan)
  132. input('Tekan tombol enter untuk melanjutkan ...')
  133. home()
  134. else:
  135. print("\n========== MOHON MAAF, MOBIL YANG ANDA PILIH SEDANG TIDAK TERSEDIA ==========")
  136. input('Tekan tombol enter untuk melanjutkan ...')
  137. bookingMobil()
  138. if mobil == list(daftar_mobil.keys())[-1] and mobil != mobilPilihan.upper():
  139. print("\n============= MOHON MAAF, MOBIL YANG ANDA PILIH TIDAK TERSEDIA =============")
  140. input('Tekan tombol enter untuk melanjutkan ...')
  141. bookingMobil()
  142. break
  143.  
  144. # FUNCTION DIBAWAH INI BERFUNGSI UNTUK PROSES PENGEMBALIAN MOBIL SETELAH DISEWA
  145. def kembalikanMobil():
  146. global daftar_penyewa
  147. global daftar_mobil
  148. print(daftar_penyewa)
  149. exit
  150. print('\n=============== MOHON TUNGGU SEBENTAR ===============\n')
  151. if len(daftar_penyewa) > 0:
  152. time.sleep(1.7)
  153. print('=============== DAFTAR PENYEWA MOBIL ================')
  154. no = 1
  155. for data, nilai in daftar_penyewa.items():
  156. dataPenyewa = f"""
  157. {no}. NAMA : {nilai['nama']}
  158. MOBIL : {nilai['mobil']}
  159. TANGGAL SEWA : {nilai['tanggalSewa']}-{nilai['bulanSewa']}-{nilai['tahunSewa']}
  160. """
  161. print(dataPenyewa)
  162. no += 1
  163. print('=====================================================\n')
  164. namaPenyewa = input('Masukan nama penyewa mobil : ')
  165. for nama, dataPenyewa in daftar_penyewa.items():
  166. if nama == namaPenyewa.upper():
  167. dataPengembali = f"""
  168. NAMA : {dataPenyewa['nama']}
  169. PONSEL : {dataPenyewa['ponsel']}
  170. MOBIL : {dataPenyewa['mobil']}
  171. TANGGAL SEWA : {dataPenyewa['tanggalSewa']}-{dataPenyewa['bulanSewa']}-{dataPenyewa['tahunSewa']}
  172. LAMA SEWA : {dataPenyewa['lamaSewa']} hari
  173. BIAYA SEWA : Rp.{dataPenyewa['biayaSewa']}
  174. """
  175. print('\n=============== MOHON TUNGGU SEBENTAR ===============')
  176. time.sleep(1.2)
  177. print(dataPengembali)
  178. input('Tekan tombol enter untuk melanjutkan proses pengembalian mobil...')
  179. daftar_mobil[dataPenyewa['mobil']]['status'] = "Tersedia"
  180. del daftar_penyewa[nama]
  181. time.sleep(0.6)
  182. print('\nProses pengembalian mobil berhasil. Trima Kasih')
  183. time.sleep(1)
  184. home()
  185. elif nama == list(daftar_penyewa.keys())[-1] and nama != namaPenyewa.upper():
  186. print("\n===== MOHON MAAF, NAMA YANG ANDA INPUT TIDAK DITEMUKAN =====")
  187. input('Tekan tombol enter untuk melanjutkan ...')
  188. home()
  189. else:
  190. time.sleep(1)
  191. print('\n=========== BELUM ADA DATA PENYEWAAN MOBIL ==========')
  192. time.sleep(2.2)
  193. home()
  194.  
  195. # FUNCTION DIBAWAH INI BERFUNGSI UNTUK MENAMPILKAN DAFTAR PENYEWA MOBIL
  196. def lihatDaftarPenyewa():
  197. global daftar_penyewa
  198. print('\n=============== MOHON TUNGGU SEBENTAR ===============\n')
  199. if len(daftar_penyewa) > 0:
  200. time.sleep(1.7)
  201. print('=============== DAFTAR PENYEWA MOBIL ================')
  202. no = 1
  203. for data, nilai in daftar_penyewa.items():
  204. dataPenyewa = f"""
  205. {no}. NAMA : {nilai['nama']}
  206. PONSEL : {nilai['ponsel']}
  207. MOBIL : {nilai['mobil']}
  208. TANGGAL SEWA : {nilai['tanggalSewa']}-{nilai['bulanSewa']}-{nilai['tahunSewa']}
  209. LAMA SEWA : {nilai['lamaSewa']} hari
  210. BIAYA SEWA : Rp.{nilai['biayaSewa']}
  211. """
  212. print(dataPenyewa)
  213. no += 1
  214. print('=====================================================\n')
  215. input('Tekan tombol enter untuk melanjutkan ...')
  216. home()
  217. else:
  218. time.sleep(1)
  219. print('\n=========== BELUM ADA DATA PENYEWAAN MOBIL ==========')
  220. time.sleep(2.5)
  221. home()
  222.  
  223. def ubahDataPenyewa():
  224. global daftar_penyewa, tanggalSekarang, daftar_mobil
  225. print('\n=============== MOHON TUNGGU SEBENTAR ===============\n')
  226. if len(daftar_penyewa) > 0:
  227. time.sleep(1.7)
  228. print('=============== DAFTAR PENYEWA MOBIL ================')
  229. no = 1
  230. for data, nilai in daftar_penyewa.items():
  231. dataPenyewa = f"""
  232. {no}. NAMA : {nilai['nama']}
  233. PONSEL : {nilai['ponsel']}
  234. MOBIL : {nilai['mobil']}
  235. TANGGAL SEWA : {nilai['tanggalSewa']}-{nilai['bulanSewa']}-{nilai['tahunSewa']}
  236. LAMA SEWA : {nilai['lamaSewa']} hari
  237. BIAYA SEWA : Rp.{nilai['biayaSewa']}
  238. """
  239. print(dataPenyewa)
  240. no += 1
  241. print('=====================================================\n')
  242. pilihPenyewa = input('Masukan nama penyewa yang ingin diubah : ')
  243. if daftar_penyewa.get(pilihPenyewa.upper()) != None:
  244. namaBaru = input('Masukan perubahan nama penyewa : ')
  245. ponselBaru = input('Masukan perubahan ponsel penyewa : ')
  246. lamaSewaBaru = int(input('Masukan perubahan lama sewa : '))
  247. biayaSewaBaru = lamaSewaBaru * int(daftar_mobil[daftar_penyewa[pilihPenyewa.upper()]['mobil']]['hargaSewa'])
  248. tanggalSewa = tanggalSekarang.day
  249. bulanSewa = tanggalSekarang.month
  250. tahunSewa = tanggalSekarang.year
  251. # LANGKAH - LANGKAH UBAH DATA
  252. daftar_penyewa[namaBaru.upper()] = daftar_penyewa.pop(pilihPenyewa.upper())
  253. daftar_penyewa[namaBaru.upper()] = {
  254. 'nama' : namaBaru.upper(),
  255. 'ponsel' : ponselBaru,
  256. 'mobil' : daftar_penyewa[namaBaru.upper()]['mobil'],
  257. 'tanggalSewa' : tanggalSewa,
  258. 'bulanSewa' : bulanSewa,
  259. 'tahunSewa' : tahunSewa,
  260. 'lamaSewa' : lamaSewaBaru,
  261. 'biayaSewa' : biayaSewaBaru
  262. }
  263. print('\n============== MOHON TUNGGU, PERUBAHAN DATA SEDANG BERJALAN ==============')
  264. time.sleep(1.7)
  265. pesan = """
  266. =========================== UBAH DATA PENYEWA BERHASIL ===========================
  267. """
  268. print(pesan)
  269. input('Tekan tombol enter untuk melanjutkan ...')
  270. home()
  271. else:
  272. print("\n===== MOHON MAAF, NAMA YANG ANDA INPUT TIDAK DITEMUKAN =====")
  273. input('Tekan tombol enter untuk melanjutkan ...')
  274. home()
  275. else:
  276. time.sleep(1)
  277. print('\n=========== BELUM ADA DATA PENYEWA MOBIL ==========')
  278. time.sleep(2.5)
  279. home()
  280.  
  281.  
  282. login() # Mulai program
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement