Secara umum, Python mengeksekusi program baris perbaris. Mulai dari baris satu, dua, dan seterusnya. Ada kalanya, kita perlu mengeksekusi satu baris atau satu blok kode program beberapa kali. Hal ini disebut dengan perulangan atau biasa disebut looping atau iterasi. Untuk lebih jelasnya perhatikan gambar berikut:
Pada gambar bisa dilihat bahwa perulangan juga memerlukan tes kondisi. Bila hasil tes kondisi True, maka blok kode kembali dieksekusi. Tapi jika False, maka keluar dari perulangan.
Di python, perulangan bisa dilakukan dengan dua cara atau metode, yaitu:
- Menggunakan for
- Menggunakan while
Perulangan Dengan Menggunakan For
Perulangan dengan menggunakan for memiliki sintaks seperti berikut:
for var in sequence: body of for
var adalah variabel yang digunakan untuk penampung sementara nilai dari sequence pada saat terjadi perulangan. Sequence adalah tipe data berurut seperti string, list, dan tuple.
Perulangan terjadi sampai looping mencapai elemen atau anggota terakhir dari sequence. Bila loop sudah sampai ke elemen terakhir dari sequence, maka program akan keluar dari looping.
# Program untuk menemukan jumlah bilangan dalam satu list
# List number
numbers = [7, 5, 9, 8, 4, 2, 6, 4, 1]
# variablel untuk menyimpan jumlah
sum = 0
# iterasi
for each in numbers:
sum = sum + each
# Output: Jumlah semuanya: 46
print["Jumlah semuanya:", sum]
Bila program tersebut kita jalankan, maka hasilnya adalah seperti berikut:
Jumlah semuanya: 46
Fungsi range[]
Fungsi range[]
dapat digunakan untuk menghasilkan deret bilangan. range[10]
akan menghasilkan bilangan dari 0 sampai dengan 9 [10 bilangan].
Kita juga bisa menentukan batas
bawah, batas atas, dan interval dengan format range[batas bawah, batas atas, interval]
.Bila interval dikosongkan, maka nilai default 1 yang akan digunakan.
Fungsi range tidak menyimpan semua nilai dalam memori secara langsung. Ia hanya akan mengingat batas bawah, batas atas, dan interval dan membangkitkan hasilnya satu persatu hanya bila dipanggil. Untuk membuat fungsi ini langsung menampilkan semua item, kita bisa menggunakan fungsi list[]
. Untuk jelasnya perhatikan contoh berikut:
# Output: range[0,10] print[range[10]] # Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print[list[range[10]] # Output: [2, 3, 4, 5, 6, 7] print[list[range[2,8]] # Output: [2, 5, 8, 11, 14, 17] print[list[range[2, 20, 3]]
Kita bisa
menggunakan fungsi range[] dalam perulangan menggunakan for untuk iterasi bilangan berurut. Hal ini dengan cara mengkombinasikan fungsi range[] dengan fungsi len[]
. Fungsi len[]
berfungsi untuk mendapatkan panjang atau jumlah elemen suatu data sekuensial atau berurut.
# Program untuk iterasi list menggunakan pengindeksan
mapel = ['matematika', 'fisika', 'kimia']
# iterasi list menggunakan indeks
for i in range[len[mapel]]:
print["Saya suka", mapel[i]]
Kalau program dijalankan, hasilnya akan jadi seperti berikut:
Saya suka matematika Saya suka fisika Saya suka kimia
Perulangan Menggunakan while
Perulangan menggunakan while
akan menjalankan blok pernyataan terus
menerus selama kondisi bernilai benar.
Adapun sintaks dari perulangan menggunakan while adalah:
while expression: statement [s]
Di sini, statement [s]
bisa terdiri dari satu baris atau satu blok pernyataan. Expression
merupakan ekspresi atau kondisi apa saja, dan untuk nilai selain nol dianggap True. Iterasi akan terus berlanjut selama kondisi benar. Bila kondisi salah, maka program akan keluar dari while dan lanjut ke baris pernyataan di luar while.
Adapun diagram alir while adalah seperti gambar berikut:
Perhatikan bahwa bila kondisi yang diuji bernilai salah, maka loop tidak akan pernah dieksekusi.
count = 0
while [count < 5]:
print['The count is:', count]
count = count + 1
print['Good bye!']
Bila program tersebut dijalankan, maka hasilnya seperti berikut:
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 Good bye
Di sini, blok pernyataan print['The count is:', count]
, dijalankan terus selama count
masih lebih kecil dari 5. Count ditambah 1 setiap kali iterasi. Pada saat nilai count mencapai 5, maka kondisi menjadi False dan program keluar dari looping while dan melanjutkan baris selanjutnya yaitu print["Good bye"]
.
Infinite Loop
Sebuah kondisi dimana loop selalu benar dan tidak pernah salah disebut loop tidak terbatas [infinite loop]. Terkadang hal ini menjadi masalah. Tapi sering juga infinite loop berguna, misalnya untuk program client/server dimana server perlu menjaga komunikasi tetap hidup dan tidak terputus.
Pada contoh program while di atas, bila kita lupa menuliskan kode count = count + 1
, maka akan jadi infinite loop. Hasilnya akan jadi seperti berikut:
The count is: 0 The count is: 0 The count is: 0 The count is: 0 The count is: 0 Traceback [most recent call last]: File "", line 2, in print['The count is:', count] File "C:\Python34\lib\idlelib\PyShell.py", line 1344, in write return self.shell.write[s, self.tags] KeyboardInterrupt
Kita perlu menekan CTRL+C untuk menghentikan program.
Kendali Looping
Looping umumnya akan berhenti bila kondisi sudah bernilai salah.
Akan tetapi, seringkali kita perlu keluar dari looping di tengah jalan tergantung keperluan. Hal ini bisa kita lakukan dengan menggunakan kata kunci break
dan continue
.
Statement break memaksa program keluar dari blok looping di tengah jalan. Sedangkan statement continue menyebabkan program langsung melanjut ke step / interval berikutnya dan mengabaikan [skip] baris kode di bawahnya [yang satu blok]. Jelasnya perhatikan contoh berikut:
# contoh penggunaan statement break
for letter in "Programming":
if letter == "g":
break
print["Huruf sekarang:", letter]
print["Good bye"]
Hasilnya adalah seperti berikut:
Huruf sekarang: P Huruf sekarang: r Huruf sekarang: o Good bye
Bila pada program di atas kita ganti kode break
menjadi continue
, maka hasilnya akan jadi seperti berikut:
Huruf sekarang: P Huruf sekarang: r Huruf sekarang: o Huruf sekarang: r Huruf sekarang: a Huruf sekarang: m Huruf sekarang: m Huruf sekarang: i Huruf sekarang: n Good bye
Perhatikan bahwa huruf g tidak pernah ditampilkan karena diabaikan karena kode continue
.
while else
Python mendukung penggunaan else sebagai pasangan dari while. Blok pernyataan else hanya akan dieksekusi bila kondisi while bernilai salah.
count = 0
while [count < 5]:
print[count, "kurang dari 5"]
count = count + 1
else:
print[count, "tidak kurang dari 5"]
Bila dijalankan program tersebut akan menghasilkan tampilan seperti berikut:
0 kurang dari 5 1 kurang dari 5 2 kurang dari 5 3 kurang dari 5 4 kurang dari 5 5 tidak kurang dari 5