Pengulangan dengan menggunakan for, merupakan salah satu teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur for, kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop’s counter, yang nilainya akan naik atau turun selama proses pengulangan. Flowchart umum untuk struktur For tampak pada gambar 5.14. Perhatikan penggunaan simbol preparation pada flowchart tersebut.
Dalam mengeksekusi sebuah pengulangan dengan For, urutan langkah-langkahnya adalah sebagai berikut:
- Menetapkan nilai counter sama dengan awal.
- Memeriksa apakah nilai counter lebih besar daripada nilai akhir. Jika benar, maka keluar dari proses pengulangan. Apabila kenaikan bernilai negatif, maka proses akan memeriksa apakah nilai counter lebih kecil daripada nilai akhir. Jika benar, maka keluar dari proses pengulangan.
- Mengeksekusi pernyataan yang ada di badan loop
- Menaikkan/menurunkan nilai counter sesuai dengan jumlah yang ditentukan pada argument increment. Apabila argument increment tidak ditetapkan, maka secara default nilai counter akan dinaikkan 1.
- Ulang kembali mulai langkah no 2.
Contoh 5.19. Algoritma untuk mencetak pernyataan sebanyak 100 kali
Mungkin kita pernah ketika masih di sekolah dasar melakukan perbuatan nakal yang membuat kita disuruh menuliskan pernyataan tertentu sebanyak 100 kali sebagai hukuman atas kenakalan tersebut. Misalkan pernyataan yang harus ditulis adalah "Saya tidak akan mengulangi perbuatan itu lagi".
Bagaimanakah caranya algoritma untuk kasus ini?
Penyelesaian:
Pada contoh ini, kita memerlukan variabel counter, misalkan kita beri nama I. Nilai awalnya adalah 1 dan nilai akhirnya adalah 100. Sedangkan increment atau kenaikan tiap kali pengulangan dari I adalah satu. Perintah untuk mencetak pernyataan akan diulang satu persatu sampai nilai akhir dari counter terpenuhi (100). Flowchart penyelesaian untuk contoh ini dapat dilihat pada gambar 5.15.
Perhatikan bagaimana mudahnya kita melakukan pengulangan. Pada gambar 5.15 tersebut increment tidak dicantumkan. Karena sesuai langkah-langkah yang dijelaskan sebelumnya, jika tidak dicantumkan maka otomatis nilai increment adalah satu.
Contoh 5.20. Flowchart untuk mencetak anggota suatu himpunan.
Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, .., 19. Buatlah flowchart untuk mencetak anggota himpunan tersebut.
Penyelesaian:
Pada contoh ini, kita memerlukan variabel counter, misalkan kita beri nama A (sesuai dengan nama himpunan). Nilai awalnya adalah 1 dan nilai akhirnya adalah 19. Dari pola himpunan, kita tahu bahwa kenaikan bilangan adalah 2 (1 ke 3, 3 ke 5, dan seterusnya). Sehingga bisa kita nyatakan increment atau kenaikan tiap kali pengulangan dari A adalah 2. Flowchart penyelesaian untuk contoh ini dapat dilihat pada gambar 5.16.
Pada Gambar 5.16 tersebut, perhatikan pada simbol preparation. Terdapat tambahan pernyataan step 2. Inilah yang disebut sebagai increment. Setiap kali pengulangan, maka nilai counter yaitu A akan bertambah 2 sehingga yang akan tercetak adalah 1, 3, 5, .., 19.
Contoh 5.21. Menentukan hasil dari suatu flowchart pengulangan.
Perhatikan flowchart pada Gambar 5.17. Tentukan hasil dari flowchart tersebut.
Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart. Bagaimana menurut kita jawabannya?
Marilah kita uraikan jalannya fowchart tersebut.
Pada flowchart, setelah Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang disebut inisialisasi. Kita memberi nilai awal untuk A = 1. Variabel counter-nya adalah X dengan nilai awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya adalah 1). Ketika masuk ke badan loop untuk pertama kali, maka akan dicetak langsung nilai variabel A. Nilai variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan A = A + 2. Pernyataan ini mungkin agak aneh, tapi ini adalah sesuatu yang pemrograman. Arti dari pernyataan ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A lama ditambah 2. Sehingga A akan bernilai 3. Kemudian dilakukan pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita ganti dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga output dari flowchart ini adalah 1, 3, 5, 7, .., 19.
Kita dapat melihat sekarang, bahwa gambar 5.16 dan 5.17 memberikan output yang sama. Dari kedua flowchart tersebut, gambar 5.17 merupakan flowchart yang disarankan. Meskipun lebih panjang, tetapi lebih terstruktur. Selain itu tidak semua bahasa pemrograman memberi fasilitas pengaturan increment.
Flowchart pada gambar 5.17 harus kita perhatikan benar-benar, terutama posisi pernyataan Print A. Cobalah membalik posisinya sehingga letak pernyataan A = A + 2 berada di atas pernyataan Print A. Bagaimanakah hasilnya?
Seperti halnya struktur percabangan, kita juga akan menjumpai bentuk struktur pengulangan bersarang (nested). Artinya, ada suatu pengulangan yang berada di dalam pengulangan yang lain. Perhatikan Contoh 5.22 berikut ini.
Contoh 5.21. Menentukan hasil dari suatu flowchart pengulangan.
Perhatikan flowchart pada Gambar 5.18. Tentukan hasil dari flowchart tersebut.
Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart dengan pengulangan bersarang. Bagaimana menurut kita jawabannya?
Marilah kita uraikan jalannya flowchart tersebut.
Pada gambar 5.18 tersebut, terlihat ada dua simbol preparation. Yang pertama dengan variabel counter X dan yang kedua dengan variabel counter Y. Dalam posisi, variabel counter Y terletak setelah variabel counter X. Hal ini berarti pengulangan dengan variabel counter Y terletak di dalam variabel counter X. Inilah yang disebut sebagai pengulangan bersarang.
Pada bentuk pengulangan seperti ini, alur eksekusi program akan berjalan sebagai berikut:
- Variabel X akan diisi dengan nilai awal counter-nya yaitu 1.
- Variabel Y akan diisi dengan nilai awal counter-nya yaitu 0
- Nilai Z dihitung dengan mengalikan X dengan Y. Nilai X = 1 dan nilai Y = 0 jadi nilai Z = 0
- Nilai X, Y dan Z dicetak di layar.
- Alur berputar, dan nilai Y dinaikkan menjadi 1, sedangkan nilai X masih satu (karena bagian X belum berputar).
- Nilai Z = 1 hasil perkalian X = 1 dan Y = 1.
- Nilai X, Y, dan Z akan dicetak lagi di layar.
- Alur berputar kembali, sehingga nilai Y menjadi 2, dan nilai Z akan menjadi 2.
- Setelah ini perputaran akan keluar dari Y, karena nilai akhir counter yaitu sudah tercapai.
- Nilai X akan dinaikkan 1 menjadi 2, dan proses kembali melakukan pengulangan pada bagian Y seperti di atas.
- Proses pengulangan diulang terus sampai nilai akhir dari counter X yaitu 3 tercapai. Sehingga hasil akhir dari flowchart tersebut adalah sebagai berikut:
Dari Contoh 5.21. di atas kita bisa melihat ada aturan-aturan yang harus dipenuhi dalam pengulangan bersarang, yaitu: - Masing-masing pengulangan (badan loop) mempunyai variabel counter sendiri-sendiri.
- Pengulangan-pengulangan tersebut tidak boleh tumpang tindih.
Copyright © 2013. Artikel teknologi
Halaman Terkait:
| Struktur algoritma pengulangan | Struktur pengulangan dengan while |
Post a Comment