Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Pelajari tentang iterators di Python dengan penjelasan sederhana, cara menggunakan, dan contoh kode mudah untuk membantu pemahaman kamu.
Iterators adalah fitur penting di Python yang membantu kamu untuk mengakses elemen satu per satu dari sebuah koleksi data seperti list, tuple, atau dictionary. Dengan iterators, kamu dapat melakukan looping dengan cara yang lebih fleksibel dan efisien.
Iterator adalah objek yang menyimpan keadaan perulangan dan dapat menghasilkan nilai satu per satu saat kamu membutuhkannya. Ketika kamu menggunakan sebuah iterator, kamu bisa mendapatkan elemen berikutnya dengan memanggil fungsi khusus.
Di Python, iterable adalah objek yang bisa dikembalikan sebuah iterator ketika dipanggil fungsi iter()
. Contoh iterable adalah list, string, atau set.
Untuk membuat iterator, kamu bisa menggunakan fungsi iter()
pada sebuah iterable. Contoh:
my_list = [10, 20, 30]
my_iter = iter(my_list)
print(next(my_iter)) # Output: 10
print(next(my_iter)) # Output: 20
print(next(my_iter)) # Output: 30
# Jika next() dipanggil lagi, akan menimbulkan error StopIteration
next()
Fungsi next()
adalah cara untuk mengambil elemen berikutnya dari iterator. Saat iterator sudah mencapai elemen terakhir, next()
akan menghasilkan error StopIteration
. Kamu bisa menangani ini dengan try-except
agar program tidak berhenti tiba-tiba.
my_iter = iter([1, 2])
while True:
try:
print(next(my_iter))
except StopIteration:
break
Ketika kamu menggunakan for
loop di Python, sebenarnya Python secara otomatis membuat iterator dari iterable dan menggunakan fungsi next()
untuk melalui setiap elemen.
for i in [1, 2, 3]:
print(i)
Kamu bisa melihat ini seperti:
my_iter = iter([1, 2, 3])
while True:
try:
i = next(my_iter)
print(i)
except StopIteration:
break
Kamu juga bisa membuat iterator sendiri dengan menggunakan kelas, cukup buat metode __iter__()
yang mengembalikan objek iterator, dan metode __next__()
yang mengembalikan nilai berikutnya.
Contoh iterator yang menghasilkan angka dari 1 sampai 3:
class MyNumbers:
def __iter__(self):
self.num = 1
return self
def __next__(self):
if self.num <= 3:
val = self.num
self.num += 1
return val
else:
raise StopIteration
numbers = MyNumbers()
for n in numbers:
print(n)
Kode di atas akan mencetak angka 1, 2, dan 3 secara berurutan.