Soal 1Diberikan nums = [10, 20, 30], apa isi nums setelah kamu menjalankan nums.append([40, 50])?
Cara Menggunakan List Python (list)
Pelajari tipe list Python dari dasar. Cakup deklarasi, indexing, slicing, dan metode utama untuk menambah, menghapus, dan mengurutkan elemen.
Membuat list
Dengan list (list), kamu bisa menyimpan beberapa value sekaligus dalam satu tempat. Berbeda dari int atau str yang variabelnya hanya menampung satu value, list dapat menyusun berapa pun value secara berdampingan.
Kamu mendeklarasikannya dengan membungkus value menggunakan [ dan ], dipisahkan dengan koma.
Seperti pada string, kamu mengakses item dengan indeks mulai dari 0. [0] memberimu yang pertama, dan [-1] memberimu yang terakhir.
Ciri penting list adalah kamu bisa mengubah value-nya di kemudian hari.
# Mendeklarasikan list
numbers = [10, 20, 30, 40]
# List kosong (untuk diisi nanti)
empty = []
# Akses
print(numbers[0]) # 10
print(numbers[-1]) # 40
# Menimpa
numbers[1] = 99
print(numbers) # [10, 99, 30, 40]
# Campuran tipe juga boleh
mixed = [1, "apple", 3.14, True]
print(mixed[1]) # apple
List bersarang (list di dalam list)
Kamu juga bisa memasukkan list di dalam list, seperti [[1, 2], [3, 4]]. Untuk mengambil value-nya, rangkai dua indeks seperti data[1][0]. Ini berguna untuk data berbentuk tabel, tetapi list datar biasa sudah cukup saat kamu baru belajar.
Slicing
List memakai sintaks slice yang sama dengan string. [start:end] memberi sub-list, [::step] melangkah melewati list, dan [-n:] mengambil n item terakhir.
Hasil slice adalah sebuah list.
[:3] mengambil 3 yang pertama (setengah terbuka, tidak termasuk akhir), dan [-2:] mengambil 2 yang terakhir.
Bekerja persis seperti slicing string.
nums = [1, 2, 3, 4, 5]
print(nums[:3]) # [1, 2, 3]
print(nums[2:]) # [3, 4, 5]
print(nums[-2:]) # [4, 5]
print(nums[::2]) # [1, 3, 5] (setiap item ke-2)
# List asli tidak berubah (list baru dikembalikan)
print(nums) # [1, 2, 3, 4, 5]
Menambah dan menghapus item
List dilengkapi banyak metode untuk menambah atau menghapus item. Metode-metode ini mengubah list itu sendiri. Dengan kata lain, memanggil list.append(...) memodifikasi list secara langsung.
| Metode | Fungsinya |
|---|---|
| append(x) | Menambahkan satu item ke akhir |
| extend(iterable) | Menambahkan semua item dari list lain ke akhir |
| insert(i, x) | Menyisipkan x di posisi i |
| remove(x) | Mencari dari kiri dan menghapus kecocokan pertama dari x |
| pop(i) | Menghapus item di posisi i dan mengembalikannya (default-nya yang terakhir) |
| clear() | Mengosongkan seluruh list |
append menambahkan "satu elemen".
extend "membongkar dan menambahkan" setiap item.
Meskipun [4, 5] yang kamu berikan sama, hasilnya berbeda.
box = [1, 2, 3]
# Tambah
box.append("apple") # tambah satu ke akhir
print(box) # [1, 2, 3, 'apple']
box.extend(["banana", "grape"]) # bongkar dan tambahkan ke akhir
print(box) # [1, 2, 3, 'apple', 'banana', 'grape']
box.insert(1, "NEW") # sisipkan di indeks 1
print(box) # [1, 'NEW', 2, 3, 'apple', 'banana', 'grape']
# Hapus
box.remove("apple") # hapus kecocokan pertama berdasarkan value
print(box) # [1, 'NEW', 2, 3, 'banana', 'grape']
v = box.pop(0) # keluarkan indeks 0 dan kembalikan
print(v) # 1
print(box) # ['NEW', 2, 3, 'banana', 'grape']
remove / pop pada sesuatu yang tidak ada → error
remove(x) memunculkan ValueError jika x tidak ada di dalam list, dan pop(i) memunculkan IndexError jika i di luar rentang. Pola yang aman adalah memeriksa keberadaannya lebih dulu dengan if x in box: sebelum menghapus.
Mengurutkan dan mencari (sort / reverse / count / index)
List juga memiliki metode untuk mengurutkan dan mencari. Hal penting di sini adalah bahwa ada dua jenis metode.
- Metode yang memodifikasi list (sort / reverse) → tidak menangkap nilai kembalian; list itu sendiri yang berubah
- Metode yang mengembalikan nilai (count / index) → gunakan nilai kembaliannya, seperti print(list.count(...))
sort / reverse: memodifikasi list secara langsung. Jangan ditangkap.
count / index: tidak menyentuh list — mengembalikan sebuah nilai. Tangkap dan gunakan.
fruits = ["banana", "lemon", "apple", "grape"]
# (1) Metode yang memodifikasi: list berubah hanya dengan memanggilnya
fruits.sort()
print(fruits) # ['apple', 'banana', 'grape', 'lemon']
fruits.reverse()
print(fruits) # ['lemon', 'grape', 'banana', 'apple']
# (2) Metode yang mengembalikan: tangkap dan gunakan nilainya
nums = [1, 2, 2, 3, 2, 4]
print(nums.count(2)) # 3 (ada tiga angka 2)
print(nums.index(3)) # 3 (3 adalah item ke-4 = indeks 3)
Mengapa print(fruits.sort()) mencetak None
Kesalahan yang sering terjadi: menulis print(fruits.sort()) lalu melihat None tercetak. sort() tidak mengembalikan nilai — ia mengurutkan fruits secara in-place.
Cara yang benar adalah memanggil fruits.sort() sendirian, lalu print(fruits) di baris berikutnya — bagi menjadi dua baris.
Omong-omong, detail tentang nilai kembalian (nilai yang dikembalikan oleh metode dan fungsi) akan dibahas di artikel tentang fungsi dan pemrograman berorientasi objek. Untuk sekarang, cukup ingat dua pola: "sort / reverse mengubah list hanya dengan dipanggil" dan "count / index ditangkap dengan = lalu digunakan".
Dalam artikel ini, kita telah membahas membuat dan mengakses list, slicing, menambah dan menghapus item, serta mengurutkan dan mencari.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Diberikan items = [3, 1, 4, 1, 5], apa yang dihasilkan print(items.sort())?
Soal 3Diberikan data = [10, 20, 30, 40], apa hasil dari data[-2:]?