Dictionary Comprehension di Python

Post image

Dictionary comprehension adalah salah satu fitur keren di Python yang memungkinkan kita membuat dictionary baru dengan sintaks yang singkat, jelas, dan efisien. Dengan dictionary comprehension, kita bisa menggantikan perulangan for tradisional yang biasanya lebih panjang dan kurang elegan saat ingin membangun dictionary dari data lain.

Pada artikel ini, kita akan membahas apa itu dictionary 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 Dictionary Comprehension?

Dictionary comprehension adalah cara singkat untuk membuat dictionary baru dari iterable (seperti list, tuple, atau dictionary lain), dengan menerapkan operasi tertentu pada setiap elemennya, bahkan bisa juga dengan kondisi tertentu.

Sintaks dasarnya:

{key_expr: value_expr for item in iterable}

Jika ingin menambahkan kondisi (filter):

{key_expr: value_expr for item in iterable if kondisi}

Mengapa Menggunakan Dictionary Comprehension?

Beberapa alasan utama menggunakan dictionary 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 Dictionary Comprehension

Mari kita bandingkan cara tradisional dan dictionary comprehension untuk membuat dictionary berisi angka dan kuadratnya.

Cara Tradisional

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

Dengan Dictionary Comprehension

kuadrat = {i: i ** 2 for i in range(1, 6)}
print(kuadrat)
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

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

Dictionary Comprehension dengan Kondisi (if)

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

Contoh: Membuat dictionary hanya untuk angka genap

genap_kuadrat = {x: x ** 2 for x in range(1, 11) if x % 2 == 0}
print(genap_kuadrat)
{2: 4, 4: 16, 6: 36, 8: 64, 10: 100}

Contoh: Membalik key dan value dari dictionary

buah = {"apel": "merah", "pisang": "kuning", "jeruk": "oranye"}
warna_buah = {warna: nama for nama, warna in buah.items()}
print(warna_buah)
{'merah': 'apel', 'kuning': 'pisang', 'oranye': 'jeruk'}

Dictionary Comprehension dengan if-else

Kita juga bisa menggunakan if-else di dalam ekspresi value.

Contoh: Tandai angka sebagai “genap” atau “ganjil”

paritas = {x: "genap" if x % 2 == 0 else "ganjil" for x in range(1, 6)}
print(paritas)
{1: 'ganjil', 2: 'genap', 3: 'ganjil', 4: 'genap', 5: 'ganjil'}

Dictionary Comprehension dari Dua List

Seringkali kita ingin membuat dictionary dari dua list, misal list nama dan list nilai.

nama = ["Budi", "Ani", "Cindy"]
nilai = [80, 90, 85]
data_nilai = {n: v for n, v in zip(nama, nilai)}
print(data_nilai)
{'Budi': 80, 'Ani': 90, 'Cindy': 85}

Dictionary Comprehension untuk Filtering Data

Dictionary comprehension sangat cocok untuk mengambil data tertentu dari dictionary berdasarkan kondisi.

Contoh: Filter siswa yang nilainya di atas 80

nilai_siswa = {"Budi": 80, "Ani": 90, "Cindy": 85, "Dodi": 75}
lulus = {nama: nilai for nama, nilai in nilai_siswa.items() if nilai > 80}
print(lulus)
{'Ani': 90, 'Cindy': 85}

Nested Dictionary Comprehension

Kita juga bisa membuat dictionary bersarang (nested dictionary) dengan comprehension.

Contoh: Matriks sebagai dictionary

matriks = {(i, j): i * j for i in range(1, 4) for j in range(1, 4)}
print(matriks)
{(1, 1): 1, (1, 2): 2, (1, 3): 3, (2, 1): 2, (2, 2): 4, (2, 3): 6, (3, 1): 3, (3, 2): 6, (3, 3): 9}

Dictionary Comprehension vs For Loop: Kapan Menggunakan?

Gunakan Dictionary Comprehension ketika Gunakan For Loop Tradisional ketika
Operasi sederhana dan satu baris Operasi kompleks, banyak langkah
Hanya ingin membuat/memodifikasi dictionary 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 kurawal
Dictionary comprehension harus diapit { ... }.

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

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

Kesimpulan

Dictionary comprehension adalah fitur powerful di Python yang membuat pembuatan dictionary 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:

  • Dictionary comprehension = cara singkat membuat dictionary 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 dictionary comprehension di berbagai kasus, dan kamu akan semakin mahir menulis kode Python yang elegan!

Happy coding!

comments powered by Disqus

You May Also Like