Langsung ke konten

List di Python: Menyimpan Banyak Nilai dalam Satu Variabel

List adalah struktur data untuk menyimpan banyak nilai dalam satu variabel di Python. Artikel ini membahas cara membuat list, mengakses item, dan mengubahnya.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

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:

MethodKegunaan
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() dan extend() — append() menambah satu item, extend() menggabungkan list.
  • Memakai remove() untuk indeks — remove() memakai nilai, gunakan pop() 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(), dan len() 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.