Files
Perkuliahan/Tugas/crud2.py
Chizuui 1795fa1c2f First
2025-11-27 00:38:38 +07:00

121 lines
3.5 KiB
Python
Executable File

# Variabel global untuk menyimpan data
# Ini adalah 'state' program, terpisah dari fungsi.
# Berbeda dengan 'self.data_mahasiswa' yang terikat pada objek.
data_mahasiswa = []
def tampilkan_data():
print("\n--- Daftar Data Tersimpan ---")
# Langsung mengakses variabel GLOBAL 'data_mahasiswa'
if not data_mahasiswa:
print("Belum ada data yang tersimpan.")
else:
# Menampilkan data sesuai format
for i, data in enumerate(data_mahasiswa, start=1):
print(f"{i}. {data['nama']}, {data['alamat']}")
print("-----------------------------")
# Ini juga FUNGSI biasa
def tambah_data():
print("\n--- Menu 1: Tambah Data ---")
nama = input("Masukkan data nama: ")
alamat = input("Masukkan data alamat: ")
# Langsung memodifikasi variabel GLOBAL
data_mahasiswa.append({"nama": nama, "alamat": alamat})
print("\nData baru berhasil ditambahkan!")
# FUNGSI biasa
def ubah_data():
print("\n--- Menu 2: Ubah Data ---")
# Memanggil FUNGSI global lainnya
tampilkan_data()
if not data_mahasiswa:
print("Data kosong, tidak ada yang bisa diubah.")
return
try:
pilihan_str = input("Pilih data yang akan dirubah : ")
pilihan = int(pilihan_str)
index = pilihan - 1
if 0 <= index < len(data_mahasiswa):
print(
f"Anda akan mengubah data ke-{pilihan}: {data_mahasiswa[index]['nama']}"
)
nama_baru = input("Masukkan nama baru: ")
alamat_baru = input("Masukkan alamat baru: ")
# Langsung memodifikasi variabel GLOBAL
data_mahasiswa[index] = {"nama": nama_baru, "alamat": alamat_baru}
print("\nData berhasil diubah!")
else:
print("Nomor data invalid.")
except ValueError:
print("Input Invalid. Masukkan Angka.")
# FUNGSI biasa
def hapus_data():
print("\n--- Menu 3: Hapus Data ---")
tampilkan_data()
if not data_mahasiswa:
print("Data kosong, tidak ada yang bisa dihapus.")
return
try:
pilihan_str = input("Pilih data no data yang akan dihapus : ")
pilihan = int(pilihan_str)
index = pilihan - 1
if 0 <= index < len(data_mahasiswa):
# Langsung memodifikasi variabel GLOBAL
data_yang_dihapus = data_mahasiswa.pop(index)
print(f"\nData '{data_yang_dihapus['nama']}' berhasil dihapus.")
else:
print("Nomor data invalid.")
except ValueError:
print("Input Invalid. Masukkan Angka.")
# FUNGSI utama untuk menjalankan program
def jalankan_program():
while True:
print("\nMenu")
print("1. Tambah data")
print("2. Ubah data")
print("3. Hapus data")
print("4. Tampil data")
print("5. Keluar") # Tambahan kecil
pilihan = input("Pilihlah no menu diatas: ")
# Memanggil FUNGSI global, bukan method objek
if pilihan == "1":
tambah_data() # Bukan app.tambah_data()
elif pilihan == "2":
ubah_data() # Bukan app.ubah_data()
elif pilihan == "3":
hapus_data() # Bukan app.hapus_data()
elif pilihan == "4":
tampilkan_data() # Bukan app.tampilkan_data()
input("\nTekan Enter untuk kembali ke menu...")
elif pilihan == "5":
print("Program selesai.")
break # Keluar dari loop
else:
print("Pilihan invalid. Pilih nomor 1-5.")
# Langsung panggil FUNGSI global untuk memulai program
jalankan_program()