Sebagaimna yang dijelaskan pada materi sebelumnya, bahwa perulangan dengan kondisi persyaratan dapat di awal maupun di akhir. Keduanya mempunyai fungsi dan tujuan yang sama dan dapat dikonversi satu sama lain. Dari bentuk bentuk persyaratan di di awal menjadi persyaratan di akhir dan sebaliknya. Namun pada beberapa kasus, ada permasalahan yang lebih cocok jika menggunakan perulangan dengan syarat di awal, namun sebaliknya juga ada permasalahan yang lebih cocok menggunakan perulangan dengan syarat di akhir.
Kasus 1
Perhatikan potongan algoritma berikut.
Kasus 2
Perhatikan kedua algoritma ini
Pada dua kasus ini ditunjukkan bagaimana membuat perulangan dengan kondisi di akhir. Penggunaan kata REPEAT UNTIL menjadi kata kunci dari struktur perulangan ini.
Perhatikan Kasus 1, diberikan nilai awal i=1, kemudian diperintahkan untuk mengulangi (REPEAT) dua pernyataan perikutnya WRITE “Hello” diikuti penambahan nilai i, i = i+1. Kemudian ada perintah UNTIL (i=10). Artinya perulangan dilakukan sehingga i=10. Dari sini jelas apa peranan i dan kondisi i=10. Variabel i berfungsi sebagai iterator, yaitu variabel yang akan terus menyebabkan perulangan shingga dipenuhi i==10, perulangan baru akan berhenti. Jadi kondisi 1==10 menjadi sentinel nya. Apa yang terjadi jika tidak ada i atau kondisi, maka bisa jadi perulangan akan terus dilakukan tanpa batas. Maka algoritma menjadi salah karena tidak memnuhi syarat finite (terbatas) seperti yang telah dijelaskan pada Bab-bab awal.
Perhatikan Kasus 2.Pada kasus dua ditunjukkan perbandingan antara dua algoritma. Algoritma 1 dan algoritma 2 menunjukkan dua buah algoritma dengan tujuan sama namun disajikan dengan dua cara yang berbeda. Sama-sama menggunakan perulangan namun pada Algoritma 1 digunakan perulangan dengan kondisi di awal sedangkan pada Algoritma 2 perulangan dengan kondisi di akhir.
Dalam struktur perulangan dengan kondisi di awal, mensyaratkan bahwa perulangan dilakukan selama kondisi tertentu masih dipenuhi. Ini ditandai dengan penggunaan kata kunci WHILE (kondisi) DO. Sebaliknya dalam perulangan dengan kondisi di akhir. Perhatikan proses dalam Algoritma 2 sebagai berikut.
1) a = 5
2) REPEAT
3) WRITE a
4) a = a + 5
5) UNTIL a > 100
6) END
Pada langkah pertama, diberikan kondisi awal a=5. Perintah REPEAT, berarti ulangi dua perintah di bawahnya:
WRITE a
{tuliskan nilai a}
a=a+5
{tambahkan a dengan 5}
sampai kondisi a>100 dipenuhi.
Sehingga dapat ditelusuri tiap langkahnya sebagai berikut
- Nilai awal a =5
- Tuliskn nilai a, yaitu 5
- a=a+5=10
- Dicek apakah a > 100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 10
- a=a+5 = 15
- Dicek apakah a > 100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 10
- a=a+5 = 20
- Dicek apakah a > 100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 10
- a=a+5 = 25
- Dicek apakah a > 100? Belum, maka ulngai perintah kembali
- Dan seterusnya sehingga dicapai
- a=a+5 = 95
- Dicek apakah a > 100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 95
- a=a+5 = 100
- Dicek apakah a > 100? Belum, maka ulngai perintah kembali
- Tuliskan nilai a, yaitu 100
- a=a+5 = 105
- Dicek apakah a > 100? Iya, maka STOP
Jadi bentuk perulngan dengan kondisi di akhir menggunakan pseudocode adalah sebagai berikut:
REPEAT
Pernytaan1
Pernyataan2
Dst
UNTIL (kondisi)
Penyajian dengan flowchart
Ingat kembali penyajian dengan flowcharat untuk kondisi WHILE DO
Perhatikan gamabr di atas, dalam struktur WHILE DO, selama kondisi benar, perulangan dilakukan, sampai akhirnya ketika kondisi sudah tidak dipenuhi lagi maka keluar dari perulangan. Bagaimna dengan struktur REPEAT UNTIL? Berikut ini penyajiannya
Perbandingan flowchart dari kedua algoritma pada Kasus 2 di atas: