Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

ITERATORS

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.

Apa itu Iterators?

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.

Cara membuat Iterator

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

Fungsi 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

Mengapa menggunakan Iterator?

  • Memori efisien: Tidak perlu menyimpan semua data sekaligus, tapi hanya satu elemen yang diambil saat dibutuhkan.
  • Membuat kode lebih bersih dan mudah dipahami.
  • Bisa digunakan pada berbagai tipe data yang mendukung iterable.

Iterator pada Loop For

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

Membuat Iterator Sendiri dengan Kelas

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.

👈🏼 Inheritance
Polymorphism 👉🏼