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 listAssignment
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