Learn
← Previous Next →

Hari 8: List — Struktur Data Paling Serbaguna

65 min Last updated 26 Mar 2026

Apa itu List?

List adalah koleksi data yang terurut dan dapat diubah (mutable). Elemen bisa berbeda tipe.

angka  = [1, 2, 3, 4, 5]
campuran = [1, "dua", 3.0, True, None]
kosong = []
nested = [[1,2], [3,4], [5,6]]  # list of list

Akses & Slicing

buah = ["apel", "mangga", "jeruk", "pisang", "melon"]

print(buah[0])      # apel
print(buah[-1])     # melon
print(buah[1:3])    # ['mangga', 'jeruk']
print(buah[:3])     # ['apel', 'mangga', 'jeruk']
print(buah[2:])     # ['jeruk', 'pisang', 'melon']
print(buah[::2])    # ['apel', 'jeruk', 'melon'] (step 2)
print(buah[::-1])   # balik urutan

Modifikasi List

nilai = [75, 88, 60, 92, 71]

nilai[2]    = 65           # ubah elemen
nilai.append(85)           # tambah di akhir
nilai.insert(0, 100)       # tambah di indeks tertentu
nilai.extend([70, 80])     # gabung dengan list lain
nilai += [95]              # sama dengan extend

dihapus = nilai.pop()      # hapus & ambil elemen terakhir
dihapus = nilai.pop(2)     # hapus & ambil indeks ke-2
nilai.remove(88)           # hapus nilai pertama yang cocok
del nilai[0]               # hapus berdasarkan indeks
del nilai[1:3]             # hapus range
nilai.clear()              # kosongkan list

Pencarian & Informasi

angka = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]

print(len(angka))          # 10 — jumlah elemen
print(angka.count(1))      # 2  — berapa kali muncul
print(angka.index(5))      # 4  — indeks pertama
print(5 in angka)          # True
print(max(angka))          # 9
print(min(angka))          # 1
print(sum(angka))          # 39

Pengurutan

data = [3, 1, 4, 1, 5, 9, 2, 6]

data.sort()               # urutkan di tempat (ascending)
data.sort(reverse=True)   # descending

# sorted() — tidak mengubah list asli
asli    = [3, 1, 4, 1, 5]
terurut = sorted(asli)
print(asli)     # [3, 1, 4, 1, 5] — tidak berubah
print(terurut)  # [1, 1, 3, 4, 5]

# Urutkan berdasarkan panjang string
kata = ["pisang", "apel", "mangga", "kiwi"]
kata.sort(key=len)
print(kata)  # ['apel', 'kiwi', 'pisang', 'mangga']

Copy List

a = [1, 2, 3]
b = a           # BUKAN copy! b dan a adalah objek yang sama

b.append(4)
print(a)  # [1, 2, 3, 4] — a ikut berubah!

# Cara copy yang benar
c = a.copy()
d = a[:]
e = list(a)

import copy
f = copy.deepcopy(a)  # untuk nested list

Assignment

Diberikan list nilai ujian 10 siswa. Buat program yang menampilkan: nilai tertinggi & terendah, rata-rata, nilai di atas rata-rata, dan nilai yang sudah diurutkan descending.

Expected output:

Tertinggi : 95
Terendah : 60
Rata-rata : 79.9
Di atas rata-rata: [83, 88, 90, 92, 95]
Urutan turun: [95, 92, 90, 88, 83, 78, 77, 71, 65, 60]
PY main.py
Solution
Output