Satu nama pegang banyak nilai — keranjang, bukan satu kotak. Dari sini lahir semua program data nyata.
[1:3]append · remove · len · infor e in list & rekap n nilai → rata-rata-1, slicing [1:3]append, remove, insert, cek in, hitung lenfor e in list & menghitung rata-rata sum/lenSesi 10 kamu bisa mengulang cetakan pola — hari ini datanya jadi banyak, dan satu list mengendalikan semuanya.
for + pola akumulasi dari Sesi 09 — minggu ini mereka naik wadah.
"*" * n vs "*" * (i+1) — beda 1 angka, beda bentukn-i-1 + bintang ganjil 2*i+1str(i) * i → 1 / 22 / 333Satu loop = kamu bisa mengulang satu cetakan. Hari ini yang diulang bukan cetakan — tapi data yang beneran beda-beda: nilai, nama, barang.
Nge-print berapa? Kalau kamu jawab "3" — kamu sudah setengah paham list, tinggal dibikin resmi hari ini.
Posisimu: 11 dari 17 — 65% perjalanan. Menuju Functions, String & Mini Project 2!
# Variabel tunggal — 1 nilai 1 nama
nilai1 = 85
nilai2 = 90
nilai3 = 78
# ... masih ada 27 lagi. Capek.
# List — 1 nama pegang 3 nilai
nilai = [85, 90, 78]
print(nilai) # [85, 90, 78]
print(len(nilai)) # 3
Pergi ke warung: tangan cuma bisa pegang satu-dua barang (variabel tunggal). Bawa keranjang — satu wadah, isinya banyak, bisa ditambah, bisa dibuang.
1 kotak = 1 nilai
1 keranjang = 3 sekat bernomor
Aturan tulis: kurung siku [ ] + koma. Kosong = []. Rekap nilai, daftar tugas, keranjang game — semuanya berdiri di atas list.
nilai = [85, 92, 78, 88]
print(nilai[0]) # 85 — yang PERTAMA
print(nilai[3]) # 88 — yang TERAKHIR
nilai[1] = 95 # ganti isi sekat 1
print(nilai) # [85, 95, 78, 88]
nilai[0] — sekat pertama, bukan yang keduanilai[3] — indeks terakhir = len - 1nilai[1] = 95 — isi sekat bisa diganti (list itu fleksibel)4 isi, nomornya 0–3. Hitungan mulai nol — sama seperti range().
Kenapa mulai 0? Itu konvensi developer sedunia — dan cocok dengan range() yang sudah kamu kuasai di Sesi 09.
nilai = [85, 92, 78, 88]
print(nilai[-1]) # 88 — terakhir
print(nilai[-2]) # 78 — kedua dari belakang
# nilai[-1] itu jalan pintas elegan:
# tanpa negatif → nilai[len(nilai) - 1]
Angka negatif = mundur dari belakang. -1 satu langkah dari ujung, -2 dua langkah — seperti loker dihitung mundur.
Satu keranjang, dua penomoran: maju dari 0, mundur dari -1.
Coba tebak dulu sebelum di-run: nilai[-4] keluar apa? Kalau kamu jawab 85 — kamu siap buat slicing.
nilai = [85, 92, 78, 88]
print(nilai[1:3]) # [92, 78] — indeks 3 TIDAK ikut
print(nilai[:2]) # [85, 92] — dari awal
print(nilai[2:]) # [78, 88] — sampai habis
Ini persis pola range(start, stop) dari Sesi 09 — berhenti SEBELUM stop. Angka 3 cuma garis finis, tidak diinjak.
Hasilnya [92, 78] — dua sekat tengah saja.
Kuis: nilai[1:3] isinya 2 elemen. Berapa elemen nilai[0:3]? Hitung: 3 dikurangi 0 = 3 elemen — stop dikurangi start.
Versi lengkap: [start:stop]. Bolongin start = dari awal. Bolongin stop = sampai habis.
nilai = [85, 92, 78, 88]. Tebak dulu: nilai[0], nilai[-1], nilai[1:3] — baru run & buktikan.95 di akhir pakai append, cetak list. Hapus 78 pakai remove, cetak lagi.90 in nilai dan 95 in nilai. Amati hasilnya: True/False, bukan isinya.print(len(nilai)) setiap langkah — awasi ukuran keranjang berubah: 4 → 5 → 4. Ukuran yang kamu pegang = senjata anti IndexError.
Urutan langkah 1 → 3. Ukuran naik lalu turun — keranjang yang hidup.
Waktu: 15 menit. Selesai duluan? Coba nilai.insert(1, 70) — sisip di tengah, lihat sekat lain geser.
for di atas list — mesin pencetak keranjangnilai = [85, 70, 92]
for angka in nilai: # angka = 85, lalu 70, lalu 92
print(angka)
# POLA WADAH — mirror pola akumulasi Sesi 09:
rekap = [] # wadah kosong, SEBELUM loop
for i in range(3):
rekap.append(i * 10) # diisi DI DALAM loop
print(rekap) # [0, 10, 20] — di LUAR loop
for angka in nilai: — Python antre tiap isi, tanpa indeks. Inilah for e in list.rekap = [] di luar, append di dalam, olah di luar — tiga posisi wajib.for x in nilai: vs for i in range(len(nilai)): — dua-duanya sah; yang pertama lebih enak dibaca.Pola wadah ini kanal jalan buat tugas 2: masukkan n nilai dari user ke satu list. Keranjang menunggu.
n = int(input(...))rekap = [] — wadah kosong, di luar loopn kali: tanya tiap nilai → rekap.append(skor) — isi di dalam loopsum(rekap) / len(rekap) — di luar loopPurata-rataan beda kalau datanya beda — yang penting rumusnya: sum / len.
Waktu: 20 menit. Ini tugas penilaian sesi 11 — tiga posisi (wadah / isi / hitung) adalah kuncinya.
Bikin teman = ["Budi", "Ani", "Cici", "Dodi"] — loop dan cetak satu per satu bernomor: 1 Budi, 2 Ani, … Petunjuk: pakai variabel nomor yang di-+= 1 tiap putaran.
Hapus satu nama dari list — tapi cek dulu pakai in sebelum remove. Yang tidak ada di keranjang tidak bisa dibuang — dan Python akan berteriak kalau kamu maksa.
for, in, remove — semua alat lama, dirakit jadi satu.
teman = ["Budi", "Ani", "Cici", "Dodi"]
nomor = 1
for nama in teman:
print(nomor, nama)
nomor += 1 # maju tiap putaran
Output: 1 Budi … 4 Dodi. Variabel nomor hidup di luar loop dan bertambah di dalam — pola akumulasi versi penghitung.
cari = "Ani"
if cari in teman:
teman.remove(cari)
print("List sekarang:", teman)
else:
print(cari, "tidak ada")
Tanpa if cari in teman:, menghapus nama yang memang tidak ada → ValueError. Pola "cek dulu baru hapus" — jadikan kebiasaan, bukan tambalan.
Yang cepat selesai: hitung berapa nama yang berawalan "C" — petunjuk: nama[0] == "C" di dalam loop. Kamu menggabung list + string + kondisi sekaligus!
nilai = [85, 92, 78, 88]
print(nilai[4])
# IndexError: list index out of range
List ada 4 isi, indeksnya 0–3. Kamu tanya loker nomor 5 padahal cuma ada 4. Kebiasaan penyelamat: cek len(nilai) dulu sebelum akses indeks hasil hitungan.
nilai = [85, 92, 78]
nilai.remove(99)
# ValueError: 99 not in list
Membuang barang yang tidak ada di keranjang. Obatnya satu kalimat: if 99 in nilai: dulu, baru remove. Cek dulu, baru hapus.
rekap = []
for i in range(3):
skor = int(input("nilai: "))
print(sum(rekap) / len(rekap))
# ZeroDivisionError — rekap kosong!
Lupa rekap.append(skor) di dalam loop, atau rekap = [] ditulis di dalam loop (ter-reset terus). Cek tiga posisi wajib.
Error itu alarm, bukan aib — dan IndexError pasti nongol hari ini. Kalau ada yang kena: berhenti, bacakan pesannya bareng, hitung len(nilai) — "list ada 4, indeks terakhir 3, kamu minta nomor berapa?"
nilai1, nilai2, …len(list) - 1[1:3] ambil rentang — stop itu garis finis, sama persis dengan range()append · remove · insert · len · in — hapus selalu lewat gerbang if x in list:rekap = [] di luar · append di dalam · sum/len di luar → rata-rata jalanHari ini hitung rata-rata tulis sekali jalan —
minggu depan bungkus jadi mesin: def rata_rata(daftar):
Panggil berkali-kali tanpa copy-paste — kode rata-ratamu jadi mesin mini yang siap dipakai di tiga tempat program.
belanja.py — list 5 barang, tambah 1, hapus 1, cetak pakai forsum/len