Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas break, continue, dan pass. Sekarang kita simpan banyak nilai sekaligus, bukan satu per satu.
Sampai sekarang, satu variabel hanya menampung satu nilai. Padahal program sering butuh menyimpan daftar: nama siswa, harga barang, atau skor pertandingan. Menulis nama1, nama2, nama3 jelas tidak praktis. Di sinilah list berguna.
Apa itu List?
List adalah kumpulan nilai yang tersusun berurutan dan bisa diubah. List dibuat dengan tanda kurung siku [], dan setiap item dipisahkan koma:
buah = ["apel", "jeruk", "mangga"]
angka = [1, 2, 3, 4, 5]
campuran = ["Budi", 25, 170.5, True]
Satu list bisa menampung tipe data berbeda, termasuk list lain di dalamnya. Tapi agar mudah dibaca, biasanya isinya sejenis.
List kosong dibuat dengan []:
keranjang = []
print(type(keranjang)) # <class 'list'>
Mengakses Item dengan Indeks
Setiap item punya posisi yang disebut indeks, dimulai dari 0:
buah = ["apel", "jeruk", "mangga"]
print(buah[0]) # apel
print(buah[1]) # jeruk
print(buah[2]) # mangga
Indeks negatif dihitung dari belakang. -1 berarti item terakhir:
print(buah[-1]) # mangga
print(buah[-2]) # jeruk
Kalau indeksnya di luar jangkauan, Python memberi IndexError:
print(buah[5]) # IndexError: list index out of range
Jumlah item bisa dicek dengan len():
print(len(buah)) # 3
Slicing
Slicing mengambil sebagian list dengan rentang indeks [mulai:selesai]. Item pada indeks selesai tidak ikut:
angka = [10, 20, 30, 40, 50]
print(angka[1:4]) # [20, 30, 40]
print(angka[:3]) # [10, 20, 30]
print(angka[2:]) # [30, 40, 50]
print(angka[:]) # [10, 20, 30, 40, 50]
Slicing selalu menghasilkan list baru, jadi list aslinya tidak berubah.
Mengubah Item
List bersifat mutable, artinya isinya bisa diubah setelah dibuat:
buah = ["apel", "jeruk", "mangga"]
buah[1] = "pisang"
print(buah) # ['apel', 'pisang', 'mangga']
Kamu juga bisa mengganti beberapa item sekaligus dengan slicing:
angka = [1, 2, 3, 4, 5]
angka[1:3] = [20, 30]
print(angka) # [1, 20, 30, 4, 5]
Menambah Item
Ada beberapa cara menambah item, tergantung posisinya:
buah = ["apel", "jeruk"]
buah.append("mangga") # tambah di akhir
print(buah) # ['apel', 'jeruk', 'mangga']
buah.insert(1, "pisang") # tambah di indeks tertentu
print(buah) # ['apel', 'pisang', 'jeruk', 'mangga']
append() menambah satu item di akhir, sedangkan insert() menyisipkan item pada posisi yang ditentukan.
Untuk menggabungkan dua list, gunakan extend():
angka = [1, 2]
angka.extend([3, 4])
print(angka) # [1, 2, 3, 4]
Menghapus Item
Beberapa cara menghapus item:
buah = ["apel", "jeruk", "mangga", "jeruk"]
buah.remove("jeruk") # hapus item pertama yang cocok
print(buah) # ['apel', 'mangga', 'jeruk']
buah.pop() # hapus item terakhir
print(buah) # ['apel', 'mangga']
buah.pop(0) # hapus item pada indeks 0
print(buah) # ['mangga']
del buah[0] # hapus berdasarkan indeks
print(buah) # []
remove() menghapus berdasarkan nilainya, sedangkan pop() dan del berdasarkan indeksnya. pop() mengembalikan item yang dihapus, sehingga bisa disimpan ke variabel:
buah = ["apel", "jeruk"]
terakhir = buah.pop()
print(terakhir) # jeruk
Method List Umum
Beberapa method yang paling sering dipakai:
| Method | Kegunaan |
|---|---|
append(x) | Menambah x di akhir |
insert(i, x) | Menyisipkan x di indeks i |
remove(x) | Menghapus item pertama yang bernilai x |
pop(i) | Menghapus dan mengembalikan item di indeks i |
sort() | Mengurutkan list |
reverse() | Membalik urutan list |
index(x) | Mencari indeks item x |
count(x) | Menghitung berapa kali x muncul |
clear() | Mengosongkan list |
Contoh pemakaiannya:
angka = [3, 1, 4, 1, 5]
angka.sort()
print(angka) # [1, 1, 3, 4, 5]
angka.reverse()
print(angka) # [5, 4, 3, 1, 1]
print(angka.count(1)) # 2
print(angka.index(3)) # 2
Menelusuri List
Karena list berurutan, ia cocok ditelusuri dengan for:
buah = ["apel", "jeruk", "mangga"]
for nama in buah:
print(nama)
Kalau butuh indeks sekaligus, gunakan enumerate():
for nomor, nama in enumerate(buah, start=1):
print(f"{nomor}. {nama}")
Contoh Program: Daftar Belanja
Mari buat program sederhana untuk mencatat dan menghitung total belanjaan:
# daftar_belanja.py
harga = [15000, 12000, 20000, 8000]
total = 0
for i, h in enumerate(harga, start=1):
print(f"Item {i}: Rp{h}")
total += h
print(f"Total: Rp{total}")
print(f"Item termahal: Rp{max(harga)}")
print(f"Item termurah: Rp{min(harga)}")
Output:
Item 1: Rp15000
Item 2: Rp12000
Item 3: Rp20000
Item 4: Rp8000
Total: Rp55000
Item termahal: Rp20000
Item termurah: Rp8000
Fungsi bawaan max() dan min() bekerja langsung pada list.
Kesalahan Umum Pemula
- Mengira indeks mulai dari 1 — item pertama ada di indeks 0.
- Mengakses indeks di luar jangkauan — memicu
IndexError. - Tertukar
append()danextend()—append()menambah satu item,extend()menggabungkan list. - Memakai
remove()untuk indeks —remove()memakai nilai, gunakanpop()untuk indeks. - Mengira slicing mengubah list asli — slicing menghasilkan list baru.
Ringkasan
- List menyimpan banyak nilai berurutan dalam satu variabel
- Item diakses dengan indeks yang dimulai dari 0, indeks negatif dari belakang
- Slicing
[mulai:selesai]mengambil sebagian list - List bersifat mutable, isinya bisa diubah, ditambah, dan dihapus
- Method umum:
append(),insert(),remove(),pop(),sort(),reverse() max(),min(), danlen()bekerja langsung pada list
Langkah Selanjutnya
List sangat fleksibel karena isinya bisa diubah. Tapi kadang kamu butuh kumpulan nilai yang justru tidak boleh berubah setelah dibuat, misalnya koordinat atau data konfigurasi.
Artikel selanjutnya membahas Tuple di Python, struktur data berurutan yang isinya tidak bisa diubah.
