Memahami Iterator di Python
Iterator di Python adalah konsep dasar yang membantu pengembang bekerja dengan koleksi data secara efisien. Baik Anda pemula atau ingin memperdalam pemahaman, panduan ini akan menjelaskan apa itu iterator, cara kerjanya, dan bagaimana membuat iterator kustom sendiri.
1. Apa Itu Iterator di Python?
Iterator adalah objek yang memungkinkan Anda menelusuri semua elemen dari sebuah koleksi, seperti list, tuple, atau dictionary, satu per satu. Iterator diimplementasikan menggunakan metode __iter__()
dan __next__()
. Berbeda dengan loop biasa, iterator menawarkan cara yang lebih hemat memori untuk menangani dataset besar.
2. Cara Kerja Iterator di Python
Iterator bekerja dengan menjaga status internal, melacak posisi data saat Anda melakukan iterasi. Metode __iter__()
mengembalikan objek iterator itu sendiri, sedangkan __next__()
berpindah ke item berikutnya. Jika tidak ada item lagi, __next__()
akan memunculkan pengecualian StopIteration
.
Contoh:
my_list = [1, 2, 3]
my_iter = iter(my_list) # Mendapatkan objek iterator
print(next(my_iter)) # Output: 1
print(next(my_iter)) # Output: 2
print(next(my_iter)) # Output: 3
3. Iterator Bawaan Python
Python menyediakan beberapa iterator bawaan, seperti:
- List: Iterasi elemen dalam list.
- Dictionary: Iterasi kunci, nilai, atau pasangan kunci-nilai.
- Set: Iterasi elemen unik.
- String: Iterasi karakter.
4. Membuat Iterator Kustom di Python
Anda dapat membuat iterator kustom dengan mendefinisikan kelas yang memiliki metode __iter__()
dan __next__()
. Contoh sederhana:
class Counter:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current < self.end:
self.current += 1
return self.current - 1
else:
raise StopIteration
# Menggunakan iterator kustom
counter = Counter(1, 5)
for number in counter:
print(number)
Output:
1
2
3
4
5. Contoh Penggunaan Iterator
- Membaca file besar baris demi baris: Iterator cocok untuk menangani data besar tanpa memuat semuanya ke memori.
- Pemrosesan data streaming: Berguna dalam data science dan machine learning untuk big data.
- Membuat loop kustom: Menyederhanakan logika loop kompleks dengan iterator kustom.
6. Keuntungan Menggunakan Iterator di Python
- Hemat Memori: Tidak perlu menyimpan semua data sekaligus.
- Kode Lebih Bersih: Membuat kode lebih sederhana dan mudah dibaca.
- Fleksibel: Membuat perilaku loop kustom sesuai kebutuhan.
7. Kesimpulan
Iterator di Python adalah alat yang kuat untuk mengoptimalkan kode dan menangani dataset besar dengan efisien. Dengan memahami cara menggunakan dan membuat iterator, Anda dapat membuat program yang lebih efisien dan mudah dipelihara.