Estimasi Waktu Baca: 3 menit

Mengenal Perulangan

Perulangan atau juga sering dikenal dengan looping merupakan pernyataan atau intruksi yang diberikan kepada komputer agar ia mau melakukan sesuatu entah itu memproses data, menampilkan data, atau yang lainnya secara berulang. Dengan menggunakan perulangan, waktu yang dibutuhkan untuk membuat suatu program akan lebih singkat. Contohnya nih, kalian ingin membuat program sederhana menampilkan angka 1 sampai 5. Oke, kalau kalian menampilkannya manual seperti ini tidak apa-apa. Masih bisa ditoleransi.

>>> print(1,2,3,4,5)
1 2 3 4 5

Tapi bagaimana kalau range-nya sampai 100? 1000? 10000? dan selebihnya? Wah ya males kalau satu-satu seperti itu. Maka dari itu agar kerja kita lebih efisien dibuatlah perulangan.

Pada kebanyakan bahasa pemrograman termasuk python, perulangan sendiri paling umum diwakili oleh 2 pernyataan, for dan while. Keduanya memiliki perbedaan pada segi penggunaan, dikatakan jika for lebih digunakan dalam perulangan yang sudah diketahui jumlah perulangannya (countable). Sedangkan perulangan while digunakan ketika jumlah perulangannya belum ditentukan (uncountable). Baik for dan while keduanya merupakan blok kode, sama seperti if else. Jadi dipastikan ada indentasi di dalamnya.

Perulangan For

Seperti yang sudah dibahas sebelumnya, perulangan for merupakan jenis perulangan yang countable. Rumusnya seperti ini

for variabel in urutan:
   #dalam blok kode for
#keluar blok kode for
Python

Variabel dalam deklarasi for di atas digunakan untuk menampung nilai sementara dari tipe data urutan atau rangkaian. Seperti String, List, Tuple, dan lain-lain. Beralih ke baris di bawahnya, agar kode tersebut bisa diulang nantinya, maka beri ruang atau spasi agar menjorok ke kanan. Karena aturan indentasi berlaku di sini. Area ini juga dapat dikatakan tubuh dari perulangan for. Lalu bila ingin keluar dari tubuh atau blok kode for, maka sejajarkan baris kode selanjutnya dengan intruksi for sebelumnya.

Prakteknya bisa dilihat di bawah ini.

>>> for i in range(10):
...  print("Ayam ke-{}".format(i))
... 
Ayam ke-0
Ayam ke-1
Ayam ke-2
Ayam ke-3
Ayam ke-4
Ayam ke-5
Ayam ke-6
Ayam ke-7
Ayam ke-8
Ayam ke-9
>>> print("Jumlah ayam:", i)Jumlah ayam: 9
Python

Fungsi range(10) digunakan untuk membuat urutan dengan panjang 10, dimulai dari angka 0 sampai 9. Kemudian seperti rumus sebelumnya i yang merupakan variabel digunakan untuk menampung nilai sementara dari urutan yang dihasilkan dari fungsi range().

Mengakses Anggota Tipe Data Urutan Dengan For

Pernyataan for juga dapat digunakan untuk mengakses anggota suatu tipe data urutan atau rangkaian.

Penggunaan For Terhadap String

>>> website = "kopiding.in"
>>> for i in website:
...   print(i)
... 
k
o
p
i
d
i
n
g
.
i
n
Python

Penggunaan For Terhadap List

>>> siswa = ["Ani", "Budi", "Cika", "Dani", "Eka"]
>>> for i in siswa:
...  print(i)
... 
Ani
Budi
Cika
Dani
Eka
Python

Perulangan While

Sedangkan while adalah perulangan uncountable atau perulangan yang jumlah proses pengulangannya tidak ditentukan. Ia akan menjalankan baris kode di dalam blok kodenya secara terus menerus selama masih memenuhi ekspresi yang sudah ditentukan sebelumnya, yang berarti ia akan terus mengulang selama kondisi bernilai True. Rumus while pada dasarnya seperti ini

while ekspresi: 
  #dalam blok kode while
#keluar blok kode while
Python

Ekspresi yang dimaksud merupakan suatu kondisi atau keadaan yang kita buat. Sekali lagi, selama nilai yang diulang masih sesuai dengan ekspresi yang sudah ditetapkan yang berarti True dan tidak bernilai 0 maka while akan terus berjalan.

>>> angka = 1
>>> while angka < 10:
...  print(angka)
...
1
1
1
1
1
1
1
1
1
1
1 
Python

Maka dari itu, while terkadang rentan dengan yang namanya perulangan tak terbatas atau infinite loop seperti di atas. Untuk menghentikannya tekan saja CTRL+C.

^C
Traceback (most recent call last):
  File "", line 2, in 
KeyboardInterrupt
Python

Lalu bagaimana cara mengatasi masalah seperti ini?

Kita bedah dulu penyebabnya, secara teknis pada kondisi di atas, isi variabel angka yang bernilai 1 tidak mengalami perubahan, jadi iterasi atau proses pengulangan dalam while akan selalu menyatakan nilai tersebut benar (True). Solusinya adalah kita tambahkan kondisi yang dapat membuat nilai 1 dalam variabel angka ini bertambah agar mencapai batas yang sudah ditentukan, seperti berikut.

>>> angka = 1
>>> while angka < 10:
...     print(angka)
...     angka += 1 #tambahkan kode ini
... 
1
2
3
4
5
6
7
8
9
Python

Setiap proses pengulangan selesai, nilai variabel angka akan selalu bertambah 1 hingga memenuhi batasnya (10). Bila sudah mencapai batas maka perulangan while akan berhenti dikarenakan nilainya sudah menjadi False.

Walaupun begitu, ada juga kasus dimana infinite loop sangat berguna, kita dapat melihat kegunaannya pada komunikasi antara server dan klien yang mana komunikasi server harus selalu aktif dan tidak boleh terputus.

Perulangan Bersarang

Baik for maupun while keduanya dapat diisi dengan perulangan lagi di dalam blok kodenya. Hal ini disebut perulangan bersarang atau nested loop. Prakteknya dapat dilihat pada program segitiga siku-siku bintang di bawah ini.

>>> for baris in range(5):
...	  for kolom in range(baris+1):
...		print('*', end='')
...	  print()
...
*
**
***
****
*****
Python