stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-07
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 7: List dan Tuple
FEB UNDIP · Algoritma dan Pemrograman

Algoritma dan Pemrograman

Pertemuan 7 · List dan Tuple

Menyimpan, mengurutkan, dan mengolah kumpulan data — dari daftar produk toko online sampai data pelanggan UMKM — dengan dua struktur data paling dasar di Python.

RPS minggu 7 · 2x50 menit

Tujuan Pembelajaran Hari Ini

Setelah pertemuan ini, Anda diharapkan mampu menggunakan list dan tuple untuk menyimpan, mengakses, dan mengolah kumpulan data dalam program Python.

Capaian 1 — Konsep
[ ]
List Dasar
Membuat list, memahami sifatnya (ordered, mutable), lalu mengakses elemen lewat indexing dan slicing.
Capaian 2 — Perubahan
± x
Method & Operasi
Menggunakan append, insert, remove, pop, sort serta operasi gabung (+) dan ulang (*) pada list.
Capaian 3 — Tuple
( )
Struktur Tetap
Membedakan tuple immutable dari list, serta melakukan tuple unpacking.
Capaian 4 — Aplikasi
🛒
Studi Kasus
Menerapkan list & tuple pada kasus keranjang belanja dan data pelanggan UMKM.

Kenapa Butuh List? Bayangkan Struk Belanja

Sebuah keranjang belanja Tokopedia berisi 5 produk. Tanpa list, Anda harus membuat 5 variabel terpisah — merepotkan dan tidak bisa diproses dengan perulangan.

Tanpa List — Tidak Praktis
produk1 = "Kaos"
produk2 = "Celana"
produk3 = "Sepatu"
produk4 = "Tas"
produk5 = "Topi"
5 variabel terpisah — bagaimana kalau 100 produk?
Dengan List — Satu Wadah
produk = ["Kaos", "Celana",
  "Sepatu", "Tas", "Topi"]
1 variabel, 5 nilai — bisa diulang, diurutkan, dihitung.
Inti list: satu variabel, banyak nilai, berurutan. Inilah struktur data yang akan Anda pakai di hampir setiap program bisnis digital — dari daftar produk sampai data transaksi.
Blok 1 dari 3
Mengenal List — Struktur Data Berurutan
Cara membuat list, karakteristiknya, lalu mengakses elemen tunggal lewat indexing dan sekumpulan elemen lewat slicing.

Apa Itu List?

Definisi: List adalah kumpulan nilai yang berurutan (ordered), ditulis dalam tanda kurung siku [ ], dipisah koma. Setiap nilai punya posisi (index) yang dimulai dari 0.
harga = [15000, 25000, 8000, 12000, 20000]
Sifat 1 & 2
  • Ordered — urutan elemen dijaga, tidak diacak
  • Mutable — isinya bisa diubah setelah dibuat
Sifat 3 & 4
  • Boleh duplikat — nilai sama boleh muncul berkali-kali
  • Boleh campur tipe — angka, teks, bahkan list lain

Mengakses Elemen: Indexing

Setiap elemen list punya index positif (dari kiri, mulai 0) dan index negatif (dari kanan, mulai -1).

produk = ["Kaos", "Celana", "Sepatu", "Tas"]"Kaos""Celana""Sepatu""Tas"0123-4-3-2-1index positif ↑ (dari kiri)   ·   index negatif ↓ (dari kanan)
produk[0] → "Kaos"   |   produk[-1] → "Tas"

Mengambil Sekumpulan Elemen: Slicing

Format: list[start:stop:step] — mulai dari start, berhenti sebelum stop (tidak termasuk), lompat sebanyak step.

produk[1:3]
index 1–2
["Celana", "Sepatu"]
produk[:2]
awal–index 1
["Kaos", "Celana"]
produk[::2]
step 2
["Kaos", "Sepatu"]
Awas miskonsepsi: nilai stop tidak pernah ikut disertakan. produk[1:3] mengambil index 1 dan 2 saja — bukan sampai index 3.

Hitung dari Nol — HDN-1: Indexing & Slicing Daftar Harga

Sebuah toko online punya daftar harga 5 produk: harga = [15000, 25000, 8000, 12000, 20000]. Telusuri hasil tiap operasi.

LangkahPerhitunganNilai
harga[0]index 0 = elemen pertama15000
harga[-1]index -1 = elemen terakhir (posisi ke-5)20000
harga[1:3]ambil index 1 s.d. 2 (stop=3 tak termasuk)[25000, 8000]
harga[::2]mulai index 0, lompat 2 → index 0, 2, 4[15000, 8000, 20000]
len(harga)hitung total elemen dalam list5
Kesimpulan
5 produk
termurah 8000 · termahal 25000
Blok 2 dari 3
Mengubah Isi List — Mutability, Method & Operasi
List bisa diubah setelah dibuat. Pelajari method bawaan untuk menambah/menghapus/mengurutkan, serta operasi gabung dan ulang.

List Itu Mutable — Bisa Diubah

Berbeda dari string (Pertemuan 4) yang immutable, isi list bisa diganti langsung lewat index-nya tanpa membuat list baru.

harga[0] = 17000   # ubah elemen pertama
Sebelum
[15000, 25000, ...]
harga[0] = 15000
Sesudah
[17000, 25000, ...]
harga[0] = 17000 — list sama, isi berubah
List mutable = elemen tunggal bisa diganti tanpa membuat variabel baru. Sifat inilah yang akan berbeda total pada tuple (Blok 3).

Method Bawaan List yang Paling Sering Dipakai

MethodFungsiContoh
append(x)tambah 1 elemen di akhirkeranjang.append("Topi")
insert(i, x)sisipkan elemen di posisi ikeranjang.insert(0, "Jaket")
remove(x)hapus elemen pertama bernilai xkeranjang.remove("Topi")
pop(i)hapus & kembalikan elemen di posisi ikeranjang.pop()
sort()urutkan elemen (ascending)harga.sort()
reverse()balik urutan elemenharga.reverse()
Semua method ini mengubah list aslinya langsung (efek dari mutable) — tidak mengembalikan list baru.

Operasi Gabung, Ulang, dan Pengecekan Isi

Gabung (+)
a + b menyambung dua list menjadi satu list baru.
["Kaos"]+["Tas"] → ["Kaos","Tas"]
Ulang (*)
[0] * 5 menduplikasi elemen sebanyak n kali.
[0]*3 → [0, 0, 0]
Cek Isi (in)
x in list mengembalikan True/False.
"Kaos" in produk → True
kuadrat = [x**2 for x in range(5)]  →  [0, 1, 4, 9, 16]

List comprehension — cara ringkas membuat list baru dari perulangan dalam satu baris.

Hitung dari Nol — HDN-2: Total & Rata-rata Belanja UMKM

Struk belanja warung UMKM: belanja = [45000, 120000, 75000, 30000]. Hitung ringkasan transaksinya.

LangkahPerhitunganNilai
total = sum(belanja)45000+120000+75000+30000270000
jumlah = len(belanja)hitung banyak item di struk4
rata2 = total / jumlah270000 ÷ 467500
termahal = max(belanja)bandingkan semua nilai120000
termurah = min(belanja)bandingkan semua nilai30000
Total Belanja
Rp 270.000
Rata-rata per Item
Rp 67.500
Blok 3 dari 3
Tuple — Struktur Data yang Tak Berubah
Definisi tuple, perbedaannya dari list, cara unpacking, kapan sebaiknya dipakai, lalu studi kasus keranjang belanja lengkap.

Apa Itu Tuple?

Definisi: Tuple sama seperti list — kumpulan nilai berurutan — tapi ditulis dengan tanda kurung ( ) dan bersifat immutable (tidak bisa diubah setelah dibuat).
koordinat = (-6.9932, 110.4203)  # lokasi Gedung FEB Undip
Sama dengan List
  • Ordered — urutan dijaga
  • Boleh duplikat & campur tipe
Beda dari List
  • Immutable — sekali dibuat, tak bisa diubah
  • Lebih cepat diproses Python

List vs Tuple — Perbandingan Langsung

AspekListTuple
Sintaks[ ] kurung siku( ) kurung biasa
Bisa diubah?Ya — mutableTidak — immutable
Kecepatan prosesSedikit lebih lambatSedikit lebih cepat
Kegunaan umumData yang berubah-ubah (keranjang belanja, antrean)Data yang tetap (koordinat, warna RGB, tanggal lahir)
Aturan praktis: data akan bertambah/berubah selama program jalan → pakai list. Data sudah final dan tidak boleh berubah → pakai tuple.

Tuple Unpacking — Membongkar Isi Sekaligus

Python bisa memecah tuple langsung ke beberapa variabel sekaligus, dalam satu baris.

data_karyawan = ("Siti", 28, "Marketing")
nama, usia, divisi = data_karyawan
Tahap 1 — Cocokkan Posisi
Python mencocokkan tiap posisi tuple dengan variabel di sisi kiri, berurutan kiri ke kanan: posisi 1↔1, 2↔2, 3↔3.
Tahap 2 — Hasil Assignment
nama = "Siti"  ·  usia = 28  ·  divisi = "Marketing" — tiga variabel terisi dalam satu baris kode.
Jumlah variabel di kiri harus sama persis dengan jumlah elemen tuple, atau Python akan memunculkan error.

Coba Sendiri: Operasi List dan Tuple Unpacking

Klik append/insert/remove/pop/sort untuk melihat list berubah langsung, lalu coba tuple unpacking ke beberapa variabel sekaligus.

Kapan Sebaiknya Memakai Tuple?

Data Tetap
  • Koordinat GPS toko: (-6.99, 110.42)
  • Warna RGB brand: (255, 87, 34)
Struktur Rekaman
  • 1 baris data pelanggan: (nama, kota, saldo)
  • Nilai kembalian fungsi (bisa >1 nilai sekaligus)
Prinsip umum: gunakan tuple untuk "paket data" yang identitasnya melekat pada urutannya dan tidak boleh berubah di tengah jalan — mengubahnya berarti data itu jadi rekaman yang berbeda.

Studi Kasus Indonesia: Keranjang Belanja Tokopedia

Setiap item keranjang = 1 tuple (nama, harga, qty) yang tetap; seluruh keranjang = 1 list yang bisa bertambah.

keranjang = [
  ("Kaos Polos", 45000, 2),
  ("Celana Jeans", 120000, 1),
  ("Sepatu Sport", 250000, 1)
]
for nama, harga, qty in keranjang:
  subtotal = harga * qty
Struktur ini menjawab kebutuhan ganda: list untuk keranjang yang isinya boleh bertambah (checkout, hapus item), tuple untuk detail 1 item yang tidak boleh tercampur saat diproses.

Latihan Praktik: Kelola Data Toko Anda Sendiri

Kerjakan di editor Python Anda, simpan sebagai latihan_p7_nim.py, kumpulkan sesuai instruksi dosen.

Instruksi Tugas
  • Buat list produk berisi 5 nama produk toko online pilihan Anda.
  • Buat list harga berisi 5 harga yang sesuai urutan produk.
  • Gunakan sort() pada salinan harga, lalu slicing untuk menampilkan 3 harga termurah.
  • Hitung total dan rata-rata harga dengan sum() dan len().
  • Buat tuple biodata berisi (nama, NIM, program studi Anda), lalu lakukan unpacking ke 3 variabel dan cetak hasilnya.