Install Web App

Python Tambahan #20 List vs Generator: Apa Bedanya?

profil-penulis

Yuliance Ardies Ferry w.Yehohanan

22 April 2025

Pendahuluan

Ketika kita membuat list menggunakan comprehension atau loop, hasilnya adalah kumpulan data lengkap yang disimpan di memori. Tapi bagaimana kalau datanya sangat besar? Di sinilah generator hadir sebagai solusi efisien.

Python menyediakan dua cara utama menghasilkan kumpulan data:

  • List: Menyimpan semua elemen sekaligus di memori.

  • Generator: Menghasilkan elemen satu per satu saat dibutuhkan, tidak langsung disimpan.

Memahami perbedaan ini sangat penting untuk memilih pendekatan yang tepat, terutama dalam data besar, streaming, atau algoritma efisien.
 

List Comprehension

List comprehension membuat list lengkap yang langsung disimpan ke memori.

Contoh:

angka = [x**2 for x in range(5)]
print(angka)
# Output: [0, 1, 4, 9, 16]

Generator Expression

Generator menggunakan tanda kurung biasa dan menunda eksekusi (lazy evaluation). Nilainya hanya dihasilkan saat dibutuhkan.

angka = (x**2 for x in range(5))
print(next(angka))  # 0
print(next(angka))  # 1

Perbedaan Utama

Fitur

List

Generator

Penyimpanan

Semua elemen disimpan

Elemen dihasilkan satu per satu

Memori

Boros jika data besar

Ringan dan efisien

Kecepatan akses

Cepat, acak langsung

Lebih lambat, sekuensial

Sintaks

[x for x in ...]

(x for x in ...)

Kapan Gunakan List?

  • Data kecil sampai sedang

  • Membutuhkan akses acak

  • Akan digunakan berulang kali

Kapan Gunakan Generator?

  • Data besar atau tak terbatas

  • Streaming / real-time processing

  • Hanya butuh iterasi sekali

Tips Tambahan

  • Generator bisa digunakan langsung di for loop, sum(), max(), dll.

  • Jika ingin menyimpan hasil dari generator, ubah ke list: list(generator_expr)

  • Generator lebih efisien untuk pipeline data besar seperti file, API, atau kalkulasi berat.

 

List dan generator sama-sama powerful, tapi digunakan dalam konteks yang berbeda. Gunakan list saat kamu butuh seluruh data sekaligus. Gunakan generator saat kamu ingin menghemat memori dan efisien secara performa — terutama untuk data dalam jumlah besar.
 

Artikel Lainnya Dengan Kategori Terkait :


1. Python Tambahan #01 F-String: Format String Modern

2. Python Tambahan #02 Penulisan Panjang Kode di Dalam Fungsi

3. Python Tambahan #03 Komentar: Docstring dan Tanda #

4. Python Tambahan #04 Membuat List dari String atau Karakter

5. Python Tambahan #05 Perbedaan Positional dan Keyword Argument

6. Python Tambahan #06 Menggunakan Tanda *args dan **kwargs

7. Python Tambahan #07 Fungsi Bawaan: zip(), map(), dan filter()

8. Python Tambahan #08 Penggunaan any() dan all()

9. Python Tambahan #09 Fungsi enumerate() dalam Looping

10. Python Tambahan #10 Fungsi reversed() dan sorted()

11. Python Tambahan #11 Fungsi isinstance() dan id()

12. Python Tambahan #12 Pemrosesan String: replace(), strip(), split()

13. Python Tambahan #13 Menggabungkan String dengan join()

14. Python Tambahan #14 Mengatur Format Tampilan Angka dan Tanggal

15. Python Tambahan #15 Menggunakan Operator Ternary di Python

16. Python Tambahan #16 Destructuring: Unpacking List dan Tuple

17. Python Tambahan #17 Tuple Packing dan Unpacking

18. Python Tambahan #18 Dictionary Comprehension

19. Python Tambahan #19 Set Comprehension dan Operasi Dasarnya

20. Python Tambahan #20 List vs Generator: Apa Bedanya?

21. Python Tambahan #21 Fungsi Generator dengan yield

22. Python Tambahan #22 Menulis Fungsi Lambda yang Ringkas

23. Python Tambahan #23 Fungsi dalam Fungsi (Nested Function)

24. Python Tambahan #24 Fungsi sebagai Argumen dan Return

25. Python Tambahan #25 Pemrosesan File Teks: with open()

26. Python Tambahan #26 Membaca dan Menulis File JSON di Python

27. Python Tambahan #27 Format CSV: Membaca dan Menulis File CSV

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya