List Comprehension di Python

Post image

List comprehension adalah salah satu fitur keren di Python yang memungkinkan kita membuat list baru dengan sintaks yang singkat, elegan, dan mudah dibaca. Dengan list comprehension, kita bisa menggantikan perulangan for tradisional yang biasanya lebih panjang dan kurang efisien.

Pada artikel ini, kita akan membahas apa itu list comprehension, bagaimana cara menggunakannya, serta berbagai contoh penggunaannya dalam kehidupan sehari-hari sebagai programmer Python. Artikel ini cocok untuk pemula yang ingin menulis kode Python yang lebih “pythonic” dan efisien.

Apa Itu List Comprehension?

List comprehension adalah cara singkat untuk membuat list baru dari list (atau iterable) yang sudah ada, dengan menerapkan operasi tertentu pada setiap elemennya, bahkan bisa juga dengan kondisi tertentu.

Sintaks dasarnya:

[ekspresi for item in iterable]

Jika ingin menambahkan kondisi (filter):

[ekspresi for item in iterable if kondisi]

Mengapa Menggunakan List Comprehension?

Beberapa alasan utama menggunakan list comprehension:

  • Lebih singkat dan jelas: Kode lebih ringkas dibandingkan perulangan for biasa.
  • Lebih mudah dibaca: Struktur kode lebih mudah dipahami, terutama untuk operasi sederhana.
  • Lebih efisien: Eksekusi biasanya lebih cepat daripada perulangan manual.

Contoh Dasar List Comprehension

Mari kita bandingkan cara tradisional dan list comprehension untuk membuat list berisi kuadrat angka 1 sampai 5.

Cara Tradisional

kuadrat = []
for i in range(1, 6):
    kuadrat.append(i ** 2)
print(kuadrat)
[1, 4, 9, 16, 25]

Dengan List Comprehension

kuadrat = [i ** 2 for i in range(1, 6)]
print(kuadrat)
[1, 4, 9, 16, 25]

Hasilnya sama, tapi kode dengan list comprehension jauh lebih singkat dan mudah dibaca.

List Comprehension dengan Kondisi (if)

Kita juga bisa menambahkan kondisi agar hanya elemen tertentu yang masuk ke list baru.

Contoh: Membuat list bilangan genap dari 1 sampai 10

genap = [x for x in range(1, 11) if x % 2 == 0]
print(genap)
[2, 4, 6, 8, 10]

Contoh: Membuat list huruf vokal dari sebuah string

kata = "pemrograman"
vokal = [huruf for huruf in kata if huruf in "aiueo"]
print(vokal)
['e', 'o', 'a', 'a']

List Comprehension dengan if-else

Kita juga bisa menggunakan if-else di dalam ekspresi list comprehension.

Contoh: Ganti angka genap dengan “genap”, angka ganjil dengan “ganjil”

hasil = ["genap" if x % 2 == 0 else "ganjil" for x in range(1, 6)]
print(hasil)
['ganjil', 'genap', 'ganjil', 'genap', 'ganjil']

Nested List Comprehension (List Bersarang)

List comprehension juga bisa digunakan untuk membuat list dua dimensi (matriks) atau melakukan operasi bersarang.

Contoh: Membuat matriks 3x3

matriks = [[j for j in range(1, 4)] for i in range(1, 4)]
print(matriks)
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

Contoh: Flatten list 2 dimensi menjadi 1 dimensi

matriks = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flatten = [angka for baris in matriks for angka in baris]
print(flatten)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

List Comprehension dengan Fungsi

List comprehension sangat berguna untuk memproses data menggunakan fungsi.

Contoh: Mengubah semua nama menjadi huruf kapital

nama = ["budi", "ani", "cindy"]
kapital = [n.upper() for n in nama]
print(kapital)
['BUDI', 'ANI', 'CINDY']

Contoh: Menghitung panjang setiap kata dalam list

kata = ["python", "coding", "mudah"]
panjang = [len(k) for k in kata]
print(panjang)
[6, 6, 5]

List Comprehension untuk Filtering Data

List comprehension sangat cocok untuk mengambil data tertentu dari list berdasarkan kondisi.

Contoh: Filter angka positif dari list

angka = [-2, 3, -1, 5, 0, -7, 8]
positif = [x for x in angka if x > 0]
print(positif)
[3, 5, 8]

List Comprehension dengan Enumerate

Jika ingin mendapatkan indeks dan nilai sekaligus:

buah = ["apel", "jeruk", "mangga"]
hasil = [f"{i+1}. {b}" for i, b in enumerate(buah)]
print(hasil)
['1. apel', '2. jeruk', '3. mangga']

List Comprehension vs For Loop: Kapan Menggunakan?

Gunakan List Comprehension ketika Gunakan For Loop Tradisional ketika
Operasi sederhana dan satu baris Operasi kompleks, banyak langkah
Hanya ingin membuat/memodifikasi list Perlu banyak logika di dalam loop
Ingin kode lebih ringkas dan jelas Perlu side-effect (misal: print, update variabel lain)

Tips: Jika operasi di dalam loop sudah terlalu rumit, lebih baik gunakan for loop biasa agar kode tetap mudah dibaca.

Kesalahan Umum Pemula

Lupa tanda kurung siku
List comprehension harus diapit [ ... ].

Menulis ekspresi di tempat yang salah
Urutan penulisan: ekspresi, lalu for, lalu if (jika ada).

Menggunakan list comprehension untuk side-effect
Hindari menggunakan list comprehension hanya untuk menjalankan fungsi yang tidak mengembalikan nilai (misal: print). Gunakan for loop biasa untuk itu.

Kesimpulan

List comprehension adalah fitur powerful di Python yang membuat pembuatan list jadi lebih singkat, efisien, dan mudah dibaca. Dengan memahami cara kerja dan berbagai variasinya, kamu bisa menulis kode Python yang lebih “pythonic” dan profesional.

Ringkasan yang perlu diingat:

  • List comprehension = cara singkat membuat list baru dari iterable
  • Bisa ditambah kondisi (if) dan ekspresi (if-else)
  • Cocok untuk operasi sederhana, filtering, dan transformasi data
  • Jangan gunakan untuk operasi yang kompleks atau side-effect

Teruslah berlatih menggunakan list comprehension di berbagai kasus, dan kamu akan semakin mahir menulis kode Python yang elegan!

Happy coding!

comments powered by Disqus

You May Also Like