# --- Proyek: Pengelola Daftar Belanja Sederhana --- daftar_belanja = [] # Ini adalah LIST kosong untuk menyimpan item belanja kita def tampilkan_menu(): """Menampilkan opsi menu untuk pengguna.""" print("\n--- PENGELOLA DAFTAR BELANJA ---") print("1. Tambah Item") print("2. Lihat Daftar Belanja") print("3. Hapus Item") print("4. Keluar") print("---------------------------------") def tambah_item(daftar): """Menambahkan item baru ke daftar belanja.""" item_baru = input("Masukkan nama item yang ingin ditambahkan: ").strip() # .strip() untuk hapus spasi di awal/akhir if item_baru: # Cek jika input tidak kosong daftar.append(item_baru) print(f"'{item_baru}' berhasil ditambahkan ke daftar.") else: print("Nama item tidak boleh kosong.") def lihat_daftar(daftar): """Menampilkan semua item dalam daftar belanja.""" if not daftar: # Cek jika daftar kosong print("Daftar belanja Anda kosong.") else: print("\n--- DAFTAR BELANJA ANDA ---") for i, item in enumerate(daftar): # enumerate() memberi nomor urut otomatis print(f"{i+1}. {item}") # i+1 agar nomor mulai dari 1 print("---------------------------") def hapus_item(daftar): """Menghapus item dari daftar belanja.""" if not daftar: print("Daftar belanja Anda kosong, tidak ada yang bisa dihapus.") return # Keluar dari fungsi jika daftar kosong lihat_daftar(daftar) # Tampilkan dulu daftar agar pengguna tahu apa yang mau dihapus try: pilihan_hapus_str = input("Masukkan nomor item yang ingin dihapus (atau nama item): ").strip() # Coba sebagai nomor (indeks) if pilihan_hapus_str.isdigit(): # Cek apakah input adalah angka nomor_item = int(pilihan_hapus_str) if 1 <= nomor_item <= len(daftar): item_yang_dihapus = daftar.pop(nomor_item - 1) # .pop() menghapus berdasarkan indeks print(f"'{item_yang_dihapus}' berhasil dihapus.") else: print("Nomor item tidak valid.") # Jika bukan nomor, coba sebagai nama item else: if pilihan_hapus_str in daftar: # Cek apakah nama item ada di daftar daftar.remove(pilihan_hapus_str) # .remove() menghapus berdasarkan nilai print(f"'{pilihan_hapus_str}' berhasil dihapus.") else: print(f"'{pilihan_hapus_str}' tidak ditemukan di daftar.") except ValueError: print("Input tidak valid. Harap masukkan nomor item atau nama item yang benar.") except Exception as e: print(f"Terjadi kesalahan tak terduga saat menghapus: {e}") # --- BAGIAN UTAMA PROGRAM --- while True: # Loop utama untuk menampilkan menu dan menerima pilihan tampilkan_menu() pilihan_menu_str = input("Pilih opsi (1-4): ").strip() try: pilihan_menu = int(pilihan_menu_str) if pilihan_menu == 1: tambah_item(daftar_belanja) elif pilihan_menu == 2: lihat_daftar(daftar_belanja) elif pilihan_menu == 3: hapus_item(daftar_belanja) elif pilihan_menu == 4: print("Terima kasih! Sampai jumpa.") break # Keluar dari loop utama else: print("Pilihan tidak valid. Silakan pilih antara 1 dan 4.") except ValueError: print("Input tidak valid. Harap masukkan angka untuk pilihan menu.") except Exception as e: print(f"Terjadi kesalahan umum: {e}")