Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- TUGAS POSTTEST 6
- 1915036114_YUDA_PRATAMA_POSTTEST6
- JAWABAN SOAL TUGAS:
- 1. MENAMPILKAN ISI DICTIONARY BERADA DI SEMUA FUNCTION KECUAL HOME DAN LOGIN
- 2. PENAMBAHAN DATA KE DICT ADA PADA FUNCTION bookingMobil()
- 3. PENGUBAHAN DATA BERADA PADA FUNCTION ubahDataPenyewa()
- 4. PENGHAPUSAN DATA BERADA PADA FUNCTION kembalikanMobil()
- """
- import datetime
- import time
- tanggalSekarang = datetime.datetime.now()
- daftar_penyewa = {} # TEMPAT PENYIMPANAN DATA PENYEWA
- # VARIABEL DIBAWAH INI BERFUNGSI UNTUK PENYIMPANAN DATA MOBIL
- daftar_mobil = {
- "AVANZA" : {'hargaSewa' : '400000', 'status' : 'Tersedia'},
- "TERIOS" : {'hargaSewa' : '550000', 'status' : 'Tersedia'},
- "AYLA" : {'hargaSewa' : '380000', 'status' : 'Tersedia'},
- "XENIA" : {'hargaSewa' : '650000', 'status' : 'Tersedia'},
- "PICK UP" : {'hargaSewa' : '350000', 'status' : 'Tersedia'}
- }
- # VARIABEL DIBAWAH INI BERFUNGSI UNTUK PENYIMPANAN DATA AKUN
- daftar_akun = {
- "aduy1" : {'nama' : 'Aduy Ganteng', 'password' : 'aduy1'},
- "aduy2" : {'nama' : 'Aduy Mantab','password' : 'aduy2'},
- "aduy3" : {'nama' : 'Aduy Mantul','password' : 'aduy3'}
- }
- # FUNCTION DIBAWAH INI BERFUNGSI UNTUK LOGIN ATAU MASUK KE SISTEM
- def login():
- username = input("\nSilahkan masukan username anda : ")
- if daftar_akun.get(username) != None:
- password = input("\nSilahkan masukan password anda : ")
- if daftar_akun[username]['password'] == password:
- print('\n========= MOHON TUNGGU SEBENTAR ========')
- time.sleep(1)
- print('\n==== LOGIN BERHASIL, SELAMAT DATANG '+daftar_akun[username]['nama']+' ====')
- time.sleep(1.4)
- home()
- else:
- print('\n======== PASSWORD SALAH ! ========')
- login()
- else:
- print('\n===== DATA TIDAK DITEMUKAN ! =====')
- login()
- # FUNCTION DIBAWAH INI BERFUNGSI UNTUK MENAMPILKAN DAFTAR MENU YANG TERDAPAT PADA PROGRAM
- def home():
- menu = """
- [=============================================]
- [----- WELCOME TO E-BOOKING RENTAL MOBIL -----]
- [------ SILAHKAN PILIH MENU DIBAWAH INI ------]
- [=============================================]
- [ 1. BOOKING MOBIL ---------------------------]
- [ 2. PENGEMBALIAN MOBIL ----------------------]
- [ 3. LIHAT DAFTAR PENYEWA --------------------]
- [ 4. UBAH DATA PENYEWA -----------------------]
- [ 5. KELUAR ----------------------------------]
- [=============================================]
- """
- print(menu)
- pilihan = int(input("Silahkan pilih menu [1/2/3/4] : "))
- if pilihan == 1:
- time.sleep(1)
- bookingMobil()
- elif pilihan == 2:
- kembalikanMobil()
- elif pilihan == 3:
- lihatDaftarPenyewa()
- elif pilihan == 4:
- ubahDataPenyewa()
- elif pilihan == 5:
- print('\n============== MOHON TUNGGU SEBENTAR ==============')
- time.sleep(1)
- print('=============== ANDA BERHASIL KELUAR ==============')
- login()
- else:
- print('\n======= MOHON MAAF, MENU YANG ANDA PILIH TIDAK TERSEDIA =======')
- time.sleep(3)
- home()
- # FUNCTION DIBAWAH INI BERFUNGSI UNTUK PROSES PEMESANAN SEWA MOBIL
- def bookingMobil():
- global tanggalSekarang
- global daftar_penyewa
- print('\n=========== DAFTAR MOBIL ===========\n')
- no = 1
- for mobil, dataMobil in daftar_mobil.items():
- print(str(no) +". "+ mobil +" - "+dataMobil['hargaSewa'] +"/hari - "+ dataMobil['status'])
- no += 1
- print('\n====================================\n')
- mobilPilihan = input("Silahkan pilih mobil yang ingin anda booking : ")
- for mobil, dataMobil in daftar_mobil.items():
- if mobil == mobilPilihan.upper():
- if dataMobil['status'] == "Tersedia":
- namaPenyewa = input("Silahkan masukan nama anda : ")
- ponselPenyewa = int(input("Silahkan masukan nomor ponsel anda : "))
- lamaSewa = int(input('Silahkan masukan berapa hari penyewaan : '))
- mobilPilihan = mobil
- biayaSewa = lamaSewa * int(dataMobil['hargaSewa'])
- tanggalSewa = tanggalSekarang.day
- bulanSewa = tanggalSekarang.month
- tahunSewa = tanggalSekarang.year
- # Input data penyewa ke buku penyewa
- daftar_penyewa[namaPenyewa.upper()] = {
- 'nama' : namaPenyewa.upper(),
- 'ponsel' : ponselPenyewa,
- 'mobil' : mobilPilihan,
- 'tanggalSewa' : tanggalSewa,
- 'bulanSewa' : bulanSewa,
- 'tahunSewa' : tahunSewa,
- 'lamaSewa' : lamaSewa,
- 'biayaSewa' : biayaSewa
- }
- # Ubah status mobil yang disewa dari tersedia menjadi tidak tersedia
- dataMobil['status'] = "Tidak tersedia"
- print('\n============== MOHON TUNGGU, DATA BOOKING SEDANG DIPROSES ==============')
- time.sleep(1.7)
- pesan = """
- =========================== BOOKING BERHASIL ===========================
- SILAHKAN DP NOMINAL UANG SEBESAR Rp.100000 KE REKENING DIBAWAH INI
- ===================== 1915036114 a/n YUDA PRATAMA ======================
- """
- print(pesan)
- input('Tekan tombol enter untuk melanjutkan ...')
- home()
- else:
- print("\n========== MOHON MAAF, MOBIL YANG ANDA PILIH SEDANG TIDAK TERSEDIA ==========")
- input('Tekan tombol enter untuk melanjutkan ...')
- bookingMobil()
- if mobil == list(daftar_mobil.keys())[-1] and mobil != mobilPilihan.upper():
- print("\n============= MOHON MAAF, MOBIL YANG ANDA PILIH TIDAK TERSEDIA =============")
- input('Tekan tombol enter untuk melanjutkan ...')
- bookingMobil()
- break
- # FUNCTION DIBAWAH INI BERFUNGSI UNTUK PROSES PENGEMBALIAN MOBIL SETELAH DISEWA
- def kembalikanMobil():
- global daftar_penyewa
- global daftar_mobil
- print(daftar_penyewa)
- exit
- print('\n=============== MOHON TUNGGU SEBENTAR ===============\n')
- if len(daftar_penyewa) > 0:
- time.sleep(1.7)
- print('=============== DAFTAR PENYEWA MOBIL ================')
- no = 1
- for data, nilai in daftar_penyewa.items():
- dataPenyewa = f"""
- {no}. NAMA : {nilai['nama']}
- MOBIL : {nilai['mobil']}
- TANGGAL SEWA : {nilai['tanggalSewa']}-{nilai['bulanSewa']}-{nilai['tahunSewa']}
- """
- print(dataPenyewa)
- no += 1
- print('=====================================================\n')
- namaPenyewa = input('Masukan nama penyewa mobil : ')
- for nama, dataPenyewa in daftar_penyewa.items():
- if nama == namaPenyewa.upper():
- dataPengembali = f"""
- NAMA : {dataPenyewa['nama']}
- PONSEL : {dataPenyewa['ponsel']}
- MOBIL : {dataPenyewa['mobil']}
- TANGGAL SEWA : {dataPenyewa['tanggalSewa']}-{dataPenyewa['bulanSewa']}-{dataPenyewa['tahunSewa']}
- LAMA SEWA : {dataPenyewa['lamaSewa']} hari
- BIAYA SEWA : Rp.{dataPenyewa['biayaSewa']}
- """
- print('\n=============== MOHON TUNGGU SEBENTAR ===============')
- time.sleep(1.2)
- print(dataPengembali)
- input('Tekan tombol enter untuk melanjutkan proses pengembalian mobil...')
- daftar_mobil[dataPenyewa['mobil']]['status'] = "Tersedia"
- del daftar_penyewa[nama]
- time.sleep(0.6)
- print('\nProses pengembalian mobil berhasil. Trima Kasih')
- time.sleep(1)
- home()
- elif nama == list(daftar_penyewa.keys())[-1] and nama != namaPenyewa.upper():
- print("\n===== MOHON MAAF, NAMA YANG ANDA INPUT TIDAK DITEMUKAN =====")
- input('Tekan tombol enter untuk melanjutkan ...')
- home()
- else:
- time.sleep(1)
- print('\n=========== BELUM ADA DATA PENYEWAAN MOBIL ==========')
- time.sleep(2.2)
- home()
- # FUNCTION DIBAWAH INI BERFUNGSI UNTUK MENAMPILKAN DAFTAR PENYEWA MOBIL
- def lihatDaftarPenyewa():
- global daftar_penyewa
- print('\n=============== MOHON TUNGGU SEBENTAR ===============\n')
- if len(daftar_penyewa) > 0:
- time.sleep(1.7)
- print('=============== DAFTAR PENYEWA MOBIL ================')
- no = 1
- for data, nilai in daftar_penyewa.items():
- dataPenyewa = f"""
- {no}. NAMA : {nilai['nama']}
- PONSEL : {nilai['ponsel']}
- MOBIL : {nilai['mobil']}
- TANGGAL SEWA : {nilai['tanggalSewa']}-{nilai['bulanSewa']}-{nilai['tahunSewa']}
- LAMA SEWA : {nilai['lamaSewa']} hari
- BIAYA SEWA : Rp.{nilai['biayaSewa']}
- """
- print(dataPenyewa)
- no += 1
- print('=====================================================\n')
- input('Tekan tombol enter untuk melanjutkan ...')
- home()
- else:
- time.sleep(1)
- print('\n=========== BELUM ADA DATA PENYEWAAN MOBIL ==========')
- time.sleep(2.5)
- home()
- def ubahDataPenyewa():
- global daftar_penyewa, tanggalSekarang, daftar_mobil
- print('\n=============== MOHON TUNGGU SEBENTAR ===============\n')
- if len(daftar_penyewa) > 0:
- time.sleep(1.7)
- print('=============== DAFTAR PENYEWA MOBIL ================')
- no = 1
- for data, nilai in daftar_penyewa.items():
- dataPenyewa = f"""
- {no}. NAMA : {nilai['nama']}
- PONSEL : {nilai['ponsel']}
- MOBIL : {nilai['mobil']}
- TANGGAL SEWA : {nilai['tanggalSewa']}-{nilai['bulanSewa']}-{nilai['tahunSewa']}
- LAMA SEWA : {nilai['lamaSewa']} hari
- BIAYA SEWA : Rp.{nilai['biayaSewa']}
- """
- print(dataPenyewa)
- no += 1
- print('=====================================================\n')
- pilihPenyewa = input('Masukan nama penyewa yang ingin diubah : ')
- if daftar_penyewa.get(pilihPenyewa.upper()) != None:
- namaBaru = input('Masukan perubahan nama penyewa : ')
- ponselBaru = input('Masukan perubahan ponsel penyewa : ')
- lamaSewaBaru = int(input('Masukan perubahan lama sewa : '))
- biayaSewaBaru = lamaSewaBaru * int(daftar_mobil[daftar_penyewa[pilihPenyewa.upper()]['mobil']]['hargaSewa'])
- tanggalSewa = tanggalSekarang.day
- bulanSewa = tanggalSekarang.month
- tahunSewa = tanggalSekarang.year
- # LANGKAH - LANGKAH UBAH DATA
- daftar_penyewa[namaBaru.upper()] = daftar_penyewa.pop(pilihPenyewa.upper())
- daftar_penyewa[namaBaru.upper()] = {
- 'nama' : namaBaru.upper(),
- 'ponsel' : ponselBaru,
- 'mobil' : daftar_penyewa[namaBaru.upper()]['mobil'],
- 'tanggalSewa' : tanggalSewa,
- 'bulanSewa' : bulanSewa,
- 'tahunSewa' : tahunSewa,
- 'lamaSewa' : lamaSewaBaru,
- 'biayaSewa' : biayaSewaBaru
- }
- print('\n============== MOHON TUNGGU, PERUBAHAN DATA SEDANG BERJALAN ==============')
- time.sleep(1.7)
- pesan = """
- =========================== UBAH DATA PENYEWA BERHASIL ===========================
- """
- print(pesan)
- input('Tekan tombol enter untuk melanjutkan ...')
- home()
- else:
- print("\n===== MOHON MAAF, NAMA YANG ANDA INPUT TIDAK DITEMUKAN =====")
- input('Tekan tombol enter untuk melanjutkan ...')
- home()
- else:
- time.sleep(1)
- print('\n=========== BELUM ADA DATA PENYEWA MOBIL ==========')
- time.sleep(2.5)
- home()
- login() # Mulai program
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement