Python: Iterasi

Arti kata iterasi cukup asing di telinga kita, Iterasi adalah perulangan aksi sampai kita mencapai batas tertentu.

Iterasi seperti proses kita memakan sarapan, kita akan terus berulang memasukan makanan dengan sendok ke mulut untuk dikunyah dan ditelan hingga makan di piring habis (batas iterasi).

Iterasi sempat disebut dalam tulisan Python tentang koleksi. Bila diandaikan, Kolesi adalah makanan dan Iterasi adalah sendok pada analogi sarapan diatas.

Apa itu Iterasi ?

Iterasi dalam pemrograman untuk menjalankan sebuah aksi berulang terbatas pada banyaknya koleksi, berbeda dengan looping yang batasnya berupa pernyataan logik seperti pernyataan IF.

Untuk membuat iterasi dengan python menggunakan pernyataan for ... in ....

isiKenangan = ["dia" , "kamu" , "mereka"]
for kenangan in isiKenangan:
    print(kenangan)

# dia
# kamu 
# mereka

Kode diatas akan menampilkan isi kenangan, tanpa kita harus repot menulis print seperti ini:

isiKenangan = ["dia" , "kamu" , "mererka"]

print(isiKenanagan[0])
print(isiKenanagan[1])
print(isiKenanagan[2])

Sekarang kita kuliti isi prinsip dari pernyataan for ... in ....

for [isi] in [koleksi]:
    [aksi + isi]

Penjelasan:

  • variabel [isi] setelah keyword for akan mengambil urutan isi koleksi (enumerator) dan akan menelusuri semua isi koleksi.
  • [koleksi] ini adalah koleksi yang ingin di iterasi isinya.
  • [aksi + isi] disini adalah kumpulan kode yang akan memakai variabel [isi] dan di jalankan sampai semua isi koleksi selesai ditelusuri.

Iterasi dengan keyword iter

Keyword iter memudahkan kita untuk melakukan iterasi tanpa harus terkurung oleh sebuah scoope, seperti pernyataan for ... in ....

karungBuah = ["apple","ayam","ular"]

iterator = iter(karungBuah)

Variabel iterator berisi objek iterator dari koleksi buah. Untuk menelusuri isi koleki kita perlu menggunakan keyword next.

karungBuah = ["apple","ayam","ular"]

iterator = iter(karungBuah)

print(next(karungBuah)) # apple
print(next(karungBuah)) # ayam

keyword next akan mengembalikan nilai yang di telusuri. Jika nilai telah habis telusuri semua, maka keyword next akan mengeluarkan error StopIteration.