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.

<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">)</span>
<span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span> <span class="token number">4</span> <span class="token number">5</span>

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

<span class="token keyword">for</span> variabel <span class="token keyword">in</span> urutan<span class="token punctuation">:</span>
   <span class="token comment">#dalam blok kode for</span>
<span class="token comment">#keluar blok kode for</span>
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.

<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">for</span> i <span class="token keyword">in</span> range<span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>  <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Ayam ke-{}"</span><span class="token punctuation">.</span>format<span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> 
Ayam ke<span class="token number">-0</span>
Ayam ke<span class="token number">-1</span>
Ayam ke<span class="token number">-2</span>
Ayam ke<span class="token number">-3</span>
Ayam ke<span class="token number">-4</span>
Ayam ke<span class="token number">-5</span>
Ayam ke<span class="token number">-6</span>
Ayam ke<span class="token number">-7</span>
Ayam ke<span class="token number">-8</span>
Ayam ke<span class="token number">-9</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Jumlah ayam:"</span><span class="token punctuation">,</span> i<span class="token punctuation">)</span>Jumlah ayam<span class="token punctuation">:</span> <span class="token number">9</span>
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

<span class="token operator">>></span><span class="token operator">></span> website <span class="token operator">=</span> <span class="token string">"kopiding.in"</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">for</span> i <span class="token keyword">in</span> website<span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>   <span class="token keyword">print</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> 
k
o
p
i
d
i
n
g
<span class="token punctuation">.</span>
i
n
Python

Penggunaan For Terhadap List

<span class="token operator">>></span><span class="token operator">></span> siswa <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"Ani"</span><span class="token punctuation">,</span> <span class="token string">"Budi"</span><span class="token punctuation">,</span> <span class="token string">"Cika"</span><span class="token punctuation">,</span> <span class="token string">"Dani"</span><span class="token punctuation">,</span> <span class="token string">"Eka"</span><span class="token punctuation">]</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">for</span> i <span class="token keyword">in</span> siswa<span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>  <span class="token keyword">print</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> 
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

<span class="token keyword">while</span> ekspresi<span class="token punctuation">:</span> 
  <span class="token comment">#dalam blok kode while</span>
<span class="token comment">#keluar blok kode while</span>
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.

<span class="token operator">>></span><span class="token operator">></span> angka <span class="token operator">=</span> <span class="token number">1</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">while</span> angka <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>  <span class="token keyword">print</span><span class="token punctuation">(</span>angka<span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span>
<span class="token number">1</span> 
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.

<span class="token operator">^</span>C
Traceback <span class="token punctuation">(</span>most recent call last<span class="token punctuation">)</span><span class="token punctuation">:</span>
  File <span class="token string">""</span><span class="token punctuation">,</span> line <span class="token number">2</span><span class="token punctuation">,</span> <span class="token keyword">in</span> 
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.

<span class="token operator">>></span><span class="token operator">></span> angka <span class="token operator">=</span> <span class="token number">1</span>
<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">while</span> angka <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>     <span class="token keyword">print</span><span class="token punctuation">(</span>angka<span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>     angka <span class="token operator">+=</span> <span class="token number">1</span> <span class="token comment">#tambahkan kode ini</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> 
<span class="token number">1</span>
<span class="token number">2</span>
<span class="token number">3</span>
<span class="token number">4</span>
<span class="token number">5</span>
<span class="token number">6</span>
<span class="token number">7</span>
<span class="token number">8</span>
<span class="token number">9</span>
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.

<span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">for</span> baris <span class="token keyword">in</span> range<span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>	  <span class="token keyword">for</span> kolom <span class="token keyword">in</span> range<span class="token punctuation">(</span>baris<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>		<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">'*'</span><span class="token punctuation">,</span> end<span class="token operator">=</span><span class="token string">''</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>	  <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token operator">*</span>
<span class="token operator">**</span>
<span class="token operator">**</span><span class="token operator">*</span>
<span class="token operator">**</span><span class="token operator">**</span>
<span class="token operator">**</span><span class="token operator">**</span><span class="token operator">*</span>
Python