
# Belajar Python Tahap 4: Mengenal Struktur Data (List & Dictionary) serta Cara Menangani Error
Di artikel sebelumnya, kita sudah berhasil membuat aplikasi kasir sederhana menggunakan variabel, percabangan `if-else`, dan fungsi. Namun, pernahkah Anda berpikir: bagaimana jika kita harus menyimpan daftar nama 100 pelanggan atau 500 produk sekaligus? Tentu sangat melelahkan jika harus membuat `pelanggan_1`, `pelanggan_2`, dan seterusnya satu per satu.
Untuk mengatasi hal tersebut, Python menyediakan fitur **Struktur Data** yang memungkinkan kita menyimpan banyak informasi di dalam satu wadah. Selain itu, kita juga akan mempelajari **Error Handling** agar program yang kita buat tidak langsung mati (*crash*) saat pengguna salah memasukkan data. Mari kita pelajari bersama!
---
## 1. List (Menyimpan Banyak Data Secara Berurutan)
**List** adalah tipe data di Python yang berfungsi seperti daftar belanjaan. Anda bisa memasukkan banyak nilai (teks, angka, atau campuran keduanya) ke dalam satu variabel menggunakan tanda kurung siku `[ ]`.
Hal unik di dalam pemrograman adalah urutan item (disebut **Indeks**) selalu dimulai dari angka **0**, bukan 1.
### Contoh Penggunaan List:
Buat file baru bernama `struktur_data.py` di VS Code Anda, lalu ketikkan kode berikut:
```python
# Membuat List daftar buah
daftar_buah = ["Apel", "Jeruk", "Mangga", "Pisang"]
# Menampilkan seluruh isi List
print("Semua buah:", daftar_buah)
# Mengambil data berdasarkan indeks (Ingat: dimulai dari 0)
print("Buah pertama:", daftar_buah[0]) # Hasilnya: Apel
print("Buah ketiga:", daftar_buah[2]) # Hasilnya: Mangga
# Menambahkan item baru ke akhir List menggunakan .append()
daftar_buah.append("Semangka")
print("Setelah ditambah:", daftar_buah)
# Menghapus item dari List menggunakan .remove()
daftar_buah.remove("Jeruk")
print("Setelah Jeruk dihapus:", daftar_buah)
```
Anda juga bisa menggabungkan **List** dengan perulangan `for` untuk menampilkan isinya satu per satu secara rapi:
```python
print("\nDaftar stok buah hari ini:")
for buah in daftar_buah:
print("- " + buah)
```
---
## 2. Dictionary (Menyimpan Data Berpasangan)
Jika List menggunakan nomor urut (indeks) untuk mengakses data, **Dictionary** menggunakan sistem **Kunci dan Nilai (*Key-Value Pair*)**. Bayangkan seperti buku kamus atau KTP, di mana ada label (`Key`) seperti "Nama", dan ada isinya (`Value`) seperti "Budi".
Dictionary dibuat menggunakan tanda kurung kurawal `{ }`.
### Contoh Penggunaan Dictionary:
```python
# Membuat Dictionary untuk menyimpan profil pelanggan
profil_pelanggan = {
"nama": "Siti Aminah",
"umur": 28,
"kota": "Bandung",
"member_aktif": True
}
# Mengakses data menggunakan Key (Kunci)
print("Nama Pelanggan:", profil_pelanggan["nama"])
print("Asal Kota:", profil_pelanggan["kota"])
# Mengubah nilai yang sudah ada
profil_pelanggan["kota"] = "Jakarta"
# Menambahkan data baru ke dalam Dictionary
profil_pelanggan["poin_belanja"] = 1500
print("Data terbaru:", profil_pelanggan)
```
---
## 3. Error Handling / Try-Except (Mencegah Program Berhenti Mendadak)
Saat membuat aplikasi nyata, pengguna sering kali melakukan kesalahan yang tidak terduga. Misalnya, program meminta pengguna memasukkan **angka umur**, tetapi pengguna justru mengetik huruf `"dua puluh"`.
Jika tidak ditangani, Python akan menampilkan pesan *error* merah yang panjang dan program langsung berhenti. Untuk mencegahnya, gunakan blok **`try` dan `except`**.
* **`try`:** Berisi kode utama yang ingin dijalankan oleh program.
* **`except`:** Berisi tindakan penyelamatan jika terjadi *error* pada bagian `try`.
### Contoh Penggunaan Try-Except:
```python
print("=== KALKULATOR PEMBAGIAN AMAN ===")
try:
angka_1 = int(input("Masukkan angka pertama: "))
angka_2 = int(input("Masukkan angka pembagi: "))
hasil = angka_1 / angka_2
print(f"Hasil pembagian adalah: {hasil}")
except ValueError:
# Menangani error jika pengguna memasukkan huruf, bukan angka
print("Error: Mohon masukkan angka bulat, bukan huruf atau simbol!")
except ZeroDivisionError:
# Menangani error jika pengguna membagi angka dengan nol (0)
print("Error: Angka tidak bisa dibagi dengan nol (0)!")
print("Program selesai dijalankan tanpa crash.")
```
---
## 4. Proyek Praktik: Aplikasi Daftar Tugas (To-Do List) Sederhana
Mari gabungkan **List, Perulangan, Percabangan, dan Error Handling** menjadi sebuah aplikasi pencatat tugas harian yang berjalan terus-menerus di terminal Anda!
Buat file baru bernama `aplikasi_tugas.py` dan jalankan kode di bawah ini:
```python
daftar_tugas = []
while True:
print("\n=== APLIKASI CATATAN TUGAS ===")
print("1. Lihat Daftar Tugas")
print("2. Tambah Tugas Baru")
print("3. Hapus Tugas")
print("4. Keluar")
try:
pilihan = int(input("Pilih menu (1/2/3/4): "))
if pilihan == 1:
if len(daftar_tugas) == 0:
print("Belum ada tugas yang dicatat.")
else:
print("\nDaftar Tugas Anda:")
for indeks, tugas in enumerate(daftar_tugas, start=1):
print(f"{indeks}. {tugas}")
elif pilihan == 2:
tugas_baru = input("Masukkan nama tugas baru: ")
daftar_tugas.append(tugas_baru)
print("Berhasil! Tugas telah ditambahkan.")
elif pilihan == 3:
nomor_hapus = int(input("Masukkan nomor tugas yang ingin dihapus: "))
tugas_terhapus = daftar_tugas.pop(nomor_hapus - 1)
print(f"Tugas '{tugas_terhapus}' berhasil dihapus.")
elif pilihan == 4:
print("Terima kasih telah menggunakan aplikasi ini. Sampai jumpa!")
break
else:
print("Pilihan tidak tersedia. Silakan pilih angka 1 sampai 4.")
except ValueError:
print("Peringatan: Masukkan input berupa angka saja!")
except IndexError:
print("Peringatan: Nomor tugas yang Anda masukkan tidak ditemukan!")
```
---
## Penutup
Selamat! Sekarang Anda sudah mampu mengelola banyak data sekaligus menggunakan **List** dan **Dictionary**, serta membuat program yang tangguh dan tahan terhadap kesalahan input berkat **Try-Except**.
Di panduan tahap selanjutnya, kita akan belajar tentang cara **Membaca dan Menyimpan File Eksternal (File I/O)** agar data yang Anda masukkan ke dalam program tidak hilang saat aplikasi ditutup, serta pengenalan tentang **Library / Modul Python**. Teruslah berlatih dan bereksperimen dengan kode Anda!
Diskusi artikel
Tinggalkan komentar atau pertanyaan seputar artikel ini.
Belum ada komentar
Jadilah yang pertama memberi komentar di artikel ini.