edubun
Bahasa Indonesia

List

List berisi 5 item memiliki indeks 0 sampai 4, sehingga menu[4] adalah item terakhir, sedangkan menu[5] menghentikan program dengan IndexError.

Satu variabel dapat menyimpan seluruh menu

Menu makan siang sekolah memiliki beberapa hidangan, dan daftar belanja memiliki beberapa item. Kamu bisa membuat satu variabel per hidangan, dish1, dish2, dish3, tetapi cara itu bermasalah saat menu bertambah. List menyimpan berapa pun banyaknya nilai dalam satu variabel secara berurutan. Tulis nilai di antara kurung siku, dipisahkan koma.

menu = ["rice", "seaweed soup", "bulgogi", "kimchi", "milk"]
print(menu)
print(len(menu))
print(menu[0], menu[-1])
Keluaran
['rice', 'seaweed soup', 'bulgogi', 'kimchi', 'milk']
5
rice milk

List menggunakan indeks yang sama dengan string: 0 untuk item pertama, -1 untuk yang terakhir, dan irisan seperti menu[1:3]. len() memberikan jumlah item. Saat seluruh list dicetak, Python menampilkan kurung siku dan mengapit setiap string dengan tanda kutip tunggal, sehingga awal dan akhir setiap item terlihat jelas.

Berbeda dengan string, list dapat diubah

String tidak bisa disunting langsung, tetapi list bisa. Beri nilai pada suatu indeks untuk mengganti item. append() menambahkan item di akhir, remove() menghapus nilai pertama yang cocok, dan pop() mengambil item terakhir lalu mengembalikannya kepadamu. Kata kunci in memeriksa apakah suatu nilai terdapat dalam list. Metode ini mengubah list itu sendiri, perbedaan utama dibandingkan metode string.

cart = ["eggs", "milk"]
cart.append("tofu")
cart[0] = "ramen"
print(cart)
cart.remove("milk")
last = cart.pop()
print(cart, last)
print("tofu" in cart)
Keluaran
['ramen', 'milk', 'tofu']
['ramen'] tofu
False
Setelah baris inicart
cart = ["eggs", "milk"]['eggs', 'milk']
cart.append("tofu")['eggs', 'milk', 'tofu']
cart[0] = "ramen"['ramen', 'milk', 'tofu']
cart.remove("milk")['ramen', 'tofu']
last = cart.pop()['ramen'] (yang terakhir adalah 'tofu')

List angka memiliki alat siap pakai

Untuk list angka, sum(), min(), dan max() bekerja sesuai namanya. sorted() mengembalikan list baru yang terurut tanpa mengubah yang asli, sedangkan metode sort() mengurutkan list itu sendiri dan tidak mengembalikan nilai. Rata-rata adalah jumlah dibagi banyaknya item, salah satu kegunaan len().

scores = [72, 95, 88, 64, 81]
print(sum(scores), min(scores), max(scores))
print(sum(scores) / len(scores))
print(sorted(scores))
print(scores)
Keluaran
400 64 95
80.0
[64, 72, 81, 88, 95]
[72, 95, 88, 64, 81]

Dua nama dapat merujuk ke list yang sama

Bagian ini menjebak hampir semua orang. Setelah b = a, tidak ada dua list. Hanya ada satu list dengan dua nama. Ubah melalui b, dan perubahan terlihat melalui a juga karena a dan b adalah list yang sama. Pada angka dan string, hal ini tidak terlihat karena keduanya tidak dapat diubah langsung. Pada list, perbedaannya terlihat. Jika ingin salinan terpisah, buat dengan a.copy() atau irisan a[:].

b = a tidak menyalin list. Kedua nama merujuk ke list yang sama, sehingga b.append(...) juga terlihat saat kamu mencetak a.
a = ["rice", "soup"]
b = a
b.append("kimchi")
print(a)
c = a.copy()
c.append("egg")
print(a)
print(c)
Keluaran
['rice', 'soup', 'kimchi']
['rice', 'soup', 'kimchi']
['rice', 'soup', 'kimchi', 'egg']

List dan perulangan saling melengkapi. List berisi 30 nilai ujian baru berguna jika program dapat mengunjungi semuanya tanpa menulis 30 baris terpisah. Itulah yang dilakukan perulangan for pada unit perulangan. Sebelum itu, sum(), min(), max(), dan len() mengunjungi nilai-nilai itu untukmu, masing-masing dengan satu pemanggilan.

listNilai berurutan di antara [ ], dipisahkan koma
append(x)Menambahkan x di akhir list
remove(x)Menghapus item pertama yang sama dengan x
pop()Mengambil item terakhir dan mengembalikannya
sorted(list)List baru yang terurut; yang asli tidak berubah
list.sort()Mengurutkan list itu sendiri dan mengembalikan None
a.copy()Salinan terpisah dari list a
  1. Apa yang dicetak kode ini?
    nums = [10, 20, 30, 40]
    print(nums[2])
  2. Apa yang dicetak kode ini?
    nums = [10, 20, 30, 40]
    print(nums[-1] + nums[0])
  3. Apa yang dicetak kode ini?
    bag = ["pen"]
    bag.append("ruler")
    bag.append("eraser")
    print(len(bag))
  4. Apa yang dicetak kode ini?
    x = [3, 1, 2]
    y = sorted(x)
    print(x, y)
    • [3, 1, 2] [1, 2, 3]
    • [1, 2, 3] [1, 2, 3]
    • [1, 2, 3] [3, 1, 2]
    • [3, 1, 2] None
  5. Apa yang dicetak kode ini?
    x = [3, 1, 2]
    y = x.sort()
    print(x, y)
    • [3, 1, 2] [1, 2, 3]
    • [1, 2, 3] [1, 2, 3]
    • [1, 2, 3] None
    • Kesalahan
  6. Apa yang dicetak kode ini?
    a = [1, 2]
    b = a
    b.append(3)
    print(a)
    • [1, 2]
    • [1, 2, 3]
    • [3]
    • Kesalahan
  7. Apa yang dicetak kode ini?
    marks = [70, 90, 80]
    print(sum(marks) / len(marks))
  8. Apa yang dicetak kode ini?
    stations = ["Seoul", "Yongsan", "Noryangjin", "Daebang"]
    print(stations[1:3])
  9. Apa yang dicetak kode ini?
    stack = ["a", "b", "c"]
    top = stack.pop()
    print(top, len(stack))
  10. Apa yang dicetak kode ini?
    print("milk" in ["eggs", "milk", "tofu"])
  11. Urutkan baris agar program mencetak list di bawah.
    Keluaran
    ['homework', 'piano']
Kesalahan umum
  • "Item terakhir adalah menu[len(menu)]." Dengan 5 item, indeks berakhir pada 4, sehingga menu[5] berhenti dengan IndexError: list index out of range. Gunakan menu[-1] atau menu[len(menu) - 1].
  • "menu = menu.append(x) menyimpan list baru." append() mengubah list dan mengembalikan None, sehingga baris ini mengganti seluruh list dengan None. Tulis menu.append(x) pada baris tersendiri.
  • "b = a memberiku cadangan list." Itu memberi nama kedua pada list yang sama. Perubahan melalui salah satu nama terlihat pada keduanya. Gunakan b = a.copy() untuk salinan sebenarnya.
Catatan untuk guruMenu makan siang cocok digunakan karena setiap siswa sudah membacanya setiap hari. Minta mereka mengetik menu hari itu sebagai list dan menjawab tiga pertanyaan dengan kode: berapa hidangan, mana yang pertama, mana yang terakhir. Perbedaan sort() dan sorted(), serta kekeliruan menu = menu.append(x), mengajarkan hal yang sama: beberapa metode mengubah objek dan mengembalikan None. Gambar ilustrasi alias di papan dan peragakan dengan dua catatan tempel pada satu kotak. Kurikulum informatika SMP Korea meminta program yang menggunakan struktur berurutan seperti list untuk mengolah banyak nilai, sehingga proyek singkat untuk menjumlahkan list nilai cocok di sini.
Poin penting
  • List menyimpan nilai secara berurutan: [a, b, c].
  • Indeks dan irisan bekerja seperti pada string; indeks terakhir adalah len - 1.
  • append, remove, pop, dan penugasan melalui indeks mengubah list itu sendiri.
  • sorted() mengembalikan list baru; sort() mengubah list dan mengembalikan None.
  • b = a berbagi satu list; gunakan a.copy() untuk list terpisah.
Sumber kursus ini (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Diperiksa: 2026-10-19