Kursus Pengembangan Python Lanjutan
Bab 1
>
Tingkat 2
Buku Kode
Level 2: Secara manual memajukan Generator | ## Generator Generator adalah objek khusus di Python yang memungkinkan Anda menghasilkan nilai (value) satu per satu daripada sekaligus, sehingga mereka sangat berguna ketika bekerja dengan urutan data yang besar atau bahkan tak terbatas. ### Membuat Generator Untuk membuat generator, Anda perlu menggunakan fungsi dengan setidaknya satu kata kunci `yield`. ```python # Contoh generator yang menghasilkan hasil pangkat dua dari 0 hingga n-1 def generator_pangkat_dua(n): for i in range(n): yield i ** 2 ``` Alih-alih menggunakan `return`, yang akan mengakhiri eksekusi fungsi, `yield` memisahkan tempat di mana eksekusi ditangguhkan dan dapat dilanjutkan. ### Menggunakan Generator Dengan generator, Anda dapat melintasi nilai yang dihasilkan, seperti dengan objek iterable lainnya. ```python for value in generator_pangkat_dua(5): print(value) ``` Output akan menjadi: ``` 0 1 4 9 16 ``` ### Fitur Utama - **Penangguhan dan Dilanjutkan**: Generator mempertahankan "keadaan" fungsinya di antara pemanggilan. Setiap kali `yield` dipanggil, eksekusi fungsi ditangguhkan dan dapat dilanjutkan dari titik terakhir saat dipanggil lagi. - **Manajemen Memori yang Efisien**: Hanya satu elemen yang disimpan dalam memori pada satu waktu. Hal ini membuat generator cocok untuk menangani koleksi data yang sangat besar atau bahkan tidak terbatas. - **Rata-rata**: Jika tidak menggunakan `yield`, ada juga fungsi built-in Python yang bersifat generator, contohnya `range()` di Python 3, yang tidak langsung menciptakan seluruh daftar dalam memori.