Struktur Pengulangan
11.4.3. Struktur Pengulangan
Salah satu kelebihan komputer daripada manusia adalah ia tidak pernah bosan terhadap tugas-tugas rutin yang berulang-ulang. Inilah yang menyebabkan komputerisasi selalu diterapkan terhadap tugas-tugas yang rutin. Dan disinilah struktur pengulangan menjadi penting perannya. Secara umum Python memberikan dua model dalam struktur pengulangan, yaitu model pengulangan dengan for dan model pengulangan dengan while. Seperti telah dijelaskan pada Bab 9, model for akan cocok jika kita tahu lebih dulu berapa kali proses pengulangan dilakukan, sedangkan model while bila kita tidak tahu berapa kali proses pengulangan dilakukan, namun kita tahu kondisi yang menyebabkan pengulangan berhenti.
Format umum untuk model for adalah sebagai berikut :
for <target> in <object>: badan loop else: perintah lain
Sedangkan format umum untuk model while adalah sebagai berikut:
while <kondisi>: badan loop yang dieksekusi jika <kondisi> benar else: perintah lain
Kita akan mencoba dua model di atas dengan beberapa contoh sederhana kemudian kita coba dengan kasus pada Bab 9.
Contoh 11.12. Kode program untuk struktur pengulangan for ke-1.
Kode program ini adalah kode program untuk mencetak kalimat ‘Looping itu mudah ’ berulang kali. Kita tidak menggunakan else seperti pada format umum, karena else bersifat optional. Berapa kali pengulangan dilakukan? Kita akan lihat hasilnya dengan mengeksekusi kode program di atas.
Hasil dari eksekusi menunjukkan hanya ada 4 kali pegulangan. Hal ini karena dalam Python, angka batas atas pada range (pada contoh di atas adalah 5) tidak termasuk dalam anggota range.
Contoh 11.13. Kode program untuk struktur pengulangan for ke-2. Pada contoh 11.12, kita menggunakan range sebagai object. Kita bisa
juga menggunakan list sebagai object, seperti contoh berikut ini.
Pada kode program ini kita menggunakan list yang berisi [1, 2, 3, 4]. Pengulangan akan dilakukan sebanyak 4 kali karena ada 4 anggota dalam list. Pada kode program di atas kita juga mengenal apa yang disebut inisialisasi, yaitu pemberian nilai awal pada suatu variable. Variable total diberi nilai awal 0. Hasil eksekusi dari kode program tersebut adalah sebagai berikut:
Output tersebut dapat menunjukkan bagaimana proses pengulangan terjadi. Pada pengulangan pertama, x akan berisi nilai pertama dari list yaitu satu. Variable total awal akan berisi nilai 0. Sehingga pernyataan total = total + x akan menghasilkan nilai 1. Pada pengulangan ke-2, x berisi nilai ke-2 dari list, yaitu 2. Sedangkan total sudah berisi nilai 1. Sehingga pengulangan ke-2 adalah 1 + 2 = 3. Demikian seterusnya.
Contoh 11.14. Kode program untuk struktur pengulangan for ke-3. Misalkan kita diminta untuk menampilkan anggota suatu himpunan seperti
berikut (2, 4, 6, 8, 10, 12, … , 30). Bagaimanakah kode programnya? Kita dapat menggunakan for untuk kasus ini. Pola anggota himpunan
dapat kita ketahui dengan mudah yaitu kenaikan nilai sebanyak 2. Kode program adalah sebagai berikut:
Kita dapat dengan mudah membuat pola bilangan di atas dengan menggunakan range. Sebelumnya kita telah menggunakan range, namun hanya menetapkan batas bawah dan atas. Range mempunyai satu parameter lain, yaitu step. Sehingga range (2, 31, 2) berarti batas bawah 2, batas atas 31 dan step (atau kenaikan) adalah 2. Jika kita eksekusi maka hasilnya tampak seperti berikut:
Contoh 11.15. Kode program untuk perpotongan dua himpunan. Pada contoh ini kita akan menggunakan algoritma yang sudah kita
selesaikan pada contoh 9.13 pada Bab 9. Yang akan kita buat ini juga merupakan pengembangan dari Contoh 11.14. Kode program untuk algoritma ini adalah sebagai berikut:
Untuk menyelesaikan kasus ini, pada kode program di atas, kita menggunakan nested looping (pengulangan bersarang). For yang pertama adalah untuk himpunan A dan for yang kedua adalah untuk himpunan B. Perpotongan himpunan A dengan himpunan B terjadi jika ada anggota himpunan A yang juga anggota himpunan B. Atau pada Untuk menyelesaikan kasus ini, pada kode program di atas, kita menggunakan nested looping (pengulangan bersarang). For yang pertama adalah untuk himpunan A dan for yang kedua adalah untuk himpunan B. Perpotongan himpunan A dengan himpunan B terjadi jika ada anggota himpunan A yang juga anggota himpunan B. Atau pada
Contoh 11.16. Kode program untuk mencari fungsi Y.. Pada contoh ini kita akan menggunakan algoritma pada contoh 9.16 pada
Bab 9. Kita akan mencari nilai-nilai Y berdasarkan berapa nilai X nya. Kode programnya adalah sebagai berikut:
Hasil eksekusinya seperti berikut ini.
Contoh 11.12 sampai dengan 11.15 menunjukkan bagaimana kita menggunakan model for untuk mengulang suatu perintah. Ada banyak variasi yang dapat dikembangkan dengan model for. Bagi pembaca dipersilahkan untuk mencoba dan mencoba dengan berbagai macam kasus untuk meningkatkan kemampuan.
Model pengulangan dengan while sebenarnya lebih fleksibel daripada model for. Karena kita tidak perlu menetapkan jumlah pengulangan, cukup. syarat pengulangan saja. Contoh-contoh berikut menunjukkan bagaimana kita menggunakan model while.
Contoh 11.17. Kode program model while untuk contoh 11.12.. Pada contoh ini kita akan menggunakan while untuk kasus yang sama
seperti Contoh 11.12. Kode programnya adalah sebagai berikut:
Pada kode program di atas, I < 5 adalah kondisi. Sebelumnya kita inisialisasi I = 1. Pernyataan I = I + 1, merupakan pernyataan untuk menaikkan nilai I setiap kali pengulangan. Pernyataan ini biasa disebut sebagai counter (pencacah). While akan memeriksa apakah nilai I masih kurang dari 5, jika benar maka pernyataan di bawah baris while akan dieksekusi. Hasil eksekusi kode program di atas adalah sebagai berikut:
Kita lihat bahwa hasil eksekusi program di atas, sama persis dengan hasil eksekusi pada Contoh 11.12.
Contoh 11.18. Kode program model while untuk contoh 11.15.. Pada contoh ini kita akan langsung mencoba menggunakan while untuk
kasus sedikit rumit yaitu kasus yang sama seperti Contoh 11.15. Kode programnya adalah sebagai berikut:
Pada kode program ini kita juga menggunakan nested looping dengan while. Inisialisasi untuk A kita letakkan sebelum pernyataan while untuk A sedangkan inisialisasi untuk B kita letakkan di atas pernyataan while Pada kode program ini kita juga menggunakan nested looping dengan while. Inisialisasi untuk A kita letakkan sebelum pernyataan while untuk A sedangkan inisialisasi untuk B kita letakkan di atas pernyataan while
3 tersebut sama dengan step yang ada pada range (lihat kode program pada contoh 11.15). Output dari kode program ini adalah sebagai berikut:
Contoh 11.19. Kode program model while untuk contoh 9.15.. Contoh ini akan menggunakan kasus yang sama seperti Contoh 9.15
pada Bab 9. Dari algoritma yang sudah dibuat pada Contoh 9.15, kita dapat menerjemahkan menjadi kode program sebagai berikut:
Kode program di atas menunjukkan bagaimana kita membuat hitungan mundur untuk counter. X kita inisialisasi dengan nilai 10. Sedangkan pada pernyataan while kita tentukan syaratnya bahwa X harus lebih besar atau sama dengan 5. Pada counter-nya, kita tentukan X = X -1. Artinya akan terjadi pengurangan counter sebesar satu setiap kali terjadi pengulangan. Pengulangan akan berhenti sampai X = 5. Perhatikan hasil eksekusi program berikut ini.
Nilai awal X adalah 10 (hasil dari inisialisasi) kemudian akan terus berkurang sampai X = 5.