Iterasi

“In programming, iterating means repeating some part of your program.”

~ Codility

Catatan: Materi tentang iterasi di postingan kali ini sebagian besar diambil dan diterjemahkan dari Codility – Chapter 1, untuk tujuan edukasi dan non-profit. Terdapat beberapa bagian yang diperbarui menjadi kode menggunakan Python 3, karena potongan kode yang terdapat pada modul Codility menggunakan pseudocode, atau Python 2.

Iterasi artinya mengulangi sebagian instruksi dari program, atau dengan kata lain, kita menginstruksikan program untuk melakukan perulangan. Untuk melakukan iterasi, kita menggunakan perintah “for” dan “while”.

 

1.1. For Loops

Jika kita ingin mengulang suatu operasi sebanyak beberapa kali, atau mengulanginya untuk setiap elemen pada suatu kumpulan (collection), “for” loop adalah perintah yang tepat untuk digunakan.

Dengan sintaks dasar sebagai berikut:

for some_variable in range_of_values:
    loop_body

Perulangan menggunakan “for” mengulangi loop_body untuk setiap nilai hingga rentang range_of_values, dengan nilai saat ini didefinisikan sebagai some_variables. Dalam bentuk paling sederhana, rentang nilai tersebut bisa berupa integer/bilangan bulat, yang dituliskan sebagai: range(terendah, tertinggi+1).

Sebagai contoh, kita dapat menuliskan nilai 0 sampai 99 dengan perintah berikut:

for i in range(0, 100):
    print(i)

Perulangan yang dimulai dari 0 adalah salah satu operasi yang paling umum digunakan (karena indeks array dan list pada Python memang dimulai dari indeks ke-0). Jika kita memang ingin melakukan perulangan dari indeks k-0, kita juga dapat men-skipnya (nilai 0 tidak perlu dituliskan), sebagai berikut:

for i in range(100):
    print(i)

Contoh penerapan iterasi menggunakan for loop:

Diketahui bilangan bulat positif sebesar n. Hitunglah faktorial n (faktorial n adalah n! = 1*2*…*n. Kita dapat melakukannya dengan memulai dari angka 1, lalu dikalikan dengan seluruh bilangan bulat dari 1 hingga n, sebagai berikut:

#Faktorial:
def factorial(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result
#Test untuk menghitung nilai faktorial 10:
print(factorial(10))

 

1.2. While Loops

Apabila melakukan perulangan menggunakan “for”, banyaknya perulangan yang kita inginkan, ditentukan terlebih dahulu di awal, sebelum looping dimulai. Bagaimana bila jumlah perulangan, serta jumlah stepnya tidak kita ketahui, atau jumlah perulangan di-generate satu-persatu, yang juga jumlahnya tidak kita ketahui?

Untuk kasus demikian, kita gunakan loop jenis lainnya, yaitu “while” loop. Dengan bentuk sintaksnya sebagai berikut:

while some_condition:
    loop_body

Sebelum setiap step looping, some_condition ditentukan dan dihitung terlebih dahulu. Selama kondisi tersebut dipenuhi, dan nilainya “True”, maka loop_body akan dieksekusi. Sebaliknya, apabila “False”, program akan keluar dari loop tanpa menjalankan loop_body.

Contoh:

Diberikan nilai i = 1. Apabila i < 5, maka tuliskan seluruh nilai i yang memenuhi i< 5.

#Basic:
i = 1
while i < 5:
    print(i)
    i += 1

Bilangan Fibonacci membentuk barisan nilai bilangan bulat yang didefinisikan secara rekursif, sebagai berikut. Dua bilangan pertama pada barisan Fibonacci adalah 0 dan 1, dan bilangan berikutnya adalah jumlah dari dua bilangan sebelumnya. Contoh beberapa baris awalnya adalah sebagai berikut: 0, 1, 1, 2, 3, 5, 8, 13, dst.

Untuk memperoleh barisan Fibonacci hingga nilai ke-n, gunakan script berikut ini:

#Print Fibonacci numbers, not exceeding a given integer n
a = 0
b = 1

n = 21

while a <= n:
    print(a)
    c = a + b
    a = b
    b = c

 

1.3. Looping Over Collections of Values

Perulangan juga dapat dilakukan ke dalam kumpulan nilai di dalam suatu variabel/container. Range yang digunakan untuk kasus seperti ini adalah seluruh nilai dalam container yang ingin kita lakukan perulangan, untuk memanggilnya satu-persatu.

Berikut ini adalah contoh-contohnya:

#List
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]

for day in days:
    print(day)
    
#Set of Values (the order in which the values are processed is arbitrary)
days = set(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])

for day in days:
    print(day)
    
#Dictionary
days = {"mon": "Monday", "tue": "Tuesday", "wed": "Wednesday", "thu": "Thursday", "fri": "Friday", "sat": "Saturday", "sun": "Sunday"}

for day in days:
    print(day, "stands for" ,days[day])

 

References

Codility Lesson 1 – Iterations.

 

Sumber Gambar

mcmurryjulie, pixabay.com.

Dokumentasi Pribadi.

Follow and like us:

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *