C++ - Perulangan for, while, do-while, continue, dan break - nblognlife

C++ - Perulangan for, while, do-while, continue, dan break

C++ - Contoh ProgramPerulangan for, while, do-while, continue, dan break

     Ketika melakukan pemrograman, pada kondisi tertentu suatu blok kode perlu dijalankan beberapa kali. Sebagai contoh yang paling sederhana apabila kita ingin membuat string “Hello World!” sebanyak sepuluh kali. Cara pertama, kita bisa melakukannya dengan mengulang penulisan blok kode berkali-kali. 

...
cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
      cout<<"Hello World!"<<endl;
...


     Namun ada cara kedua yang lebih sederhana, yaitu dengan menggunakan perulangan atau juga biasa disebut “Looping”. Pada bahasan kali ini akan dibahas tentang perulangan for, while, dan do-while. Dengan menggunakan suatu perulangan ada beberapa keuntungan, salah satunya adalah menghindari untuk menuliskan blok kode berulang kali yang seharusnya bisa disederhanakan/disingkat dengan menggunakan perulangan, sehingga tentunya juga akan mengurangi waktu pembuatan program(efektif & efesien).

Flowchart Perulangan Secara Umum


Perulangan for, while, do-while
for
 “Bentuk perulangan for digunakan untuk melakukan eksekusi pada suatu blok kode dalam jumlah tertentu.

Bentuk penulisan for
for(ungkapan1; ungkapan2; ungkapan3)
{
            pernyataan;
            pernyataan;
            ...
}

Keterangan:
-     ungkapan1 = pernyataan inisialisasi (dijalankan pertama dan hanya sekali )
-     ungkapan2 = kondisi/syarat perulangan dilakukan
-     ungkapan3 = pernyataan control untuk perulangan (sebagai pengatur variabel yang digunakan di dalam ungkapan1)
-     pernyataan, pernyataan,... = blok kode yang dijalankan ketika kondisi perulangan terpenuhi 


Berikut adalah contoh program for:
/*
      Looping for, while, do-while, continue, dan break
      Microsoft Visual Studio Express 2012
      [RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
      //looping dengan for 10x
      for(int i = 0; i < 10; i++){
            cout<<"Hello World!"<<endl;
      }

      _getche();
      return 0;
}

Output for
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

PENJELASAN
Alur :
ungkapan1 (int i = 0) dijalankan pertama dan hanya satu kali. Selanjutnya ungkapan2 (i < 10;) dijalankan, kondisi dicek. Jika bernilai benar pernyataan cout<<"Hello World!"<<endl; dijalankan. Selanjutnya ungkapan3 (i++) dijalankan, nilai i di-increment.

Selanjutnya, langsung ke ungkapan2 (i < 10;), jika benar pernyatan cout<<"Hello World!"<<endl; dijalankan. Selanjutnya ungkapan3 (i++) dijalankan, nilai i di-increment. Begitu seterusnya sampai kondisi/syarat pada ungkapan2 bernilai salah.

Jadi, ketika nilai i masih bernilai 0,1,2,3,4,5,6,7,8,9 perulangan akan dijalakan sehingga membuat  cout<<"Hello World!"<<endl; ditampilkan di layar sebanyak 10x (sepuluh kali).

*Walaupun program di atas juga dapat dibuat dengan menggunakan perulangan while dan do-while. Namun untuk tujuan seperti program di atas lebih umum digunakan perulangan bentuk for.

while
Bentuk perulangan while digunakan untuk melakukan eksekusi pada suatu blok kode selama kondisi bernilai benar.”

Bentuk penulisan while
while (kondisi/persyaratan)
{
            pernyataan;
            pernyataan;
            ...
}

Berikut adalah contoh program while:
/*
      Looping for, while, do-while, continue, dan break
      Microsoft Visual Studio Express 2012
      [RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
      //looping dengan while
      char pilih='n';
      while(pilih != 'x'){
            cout<<"HI! Ini pernyataan di dalam while"<<endl;
           
            cout<<"\nKeterangan:"<<endl;
            cout<<"- karakter 'x' untuk keluar dari looping"<<endl;
            cout<<"- karakter lainnya untuk looping"<<endl;

            cout<<"\nMasukkan karakter : ";
            cin>>pilih;
            cout<<endl;
      }

      cout<<endl;
      cout<<"Keluar dari looping. Ini pernyataan di luar while."<<endl;

      _getche();
      return 0;
}

Output while
HI! Ini pernyataan di dalam while

Keterangan:
- karakter 'x' untuk keluar dari looping
- karakter lainnya untuk looping

Masukkan karakter : a

HI! Ini pernyataan di dalam while

Keterangan:
- karakter 'x' untuk keluar dari looping
- karakter lainnya untuk looping

Masukkan karakter : x


Keluar dari looping. Ini pernyataan di luar while.

PENJELASAN
Pada program di atas, kondisi perulangannya adalah while(pilih != 'x') (dibaca: selama input/nilai dari pilih tidak sama dengan 'x'). Jadi ketika input program di atas adalah 'a', maka perulangan akan dijalankan lagi karena kondisi benar ('a' tidak sama dengan 'x').


do-while
 “Bentuk perulangan do-while digunakan untuk melakukan eksekusi pada suatu blok kode selama kondisi bernilai benar.”

Bentuk penulisan do-while
do
{
            pernyataan;
            pernyataan;
            ...
} while (kondisi/persyaratan);

Penting!
Berbeda dengan perulangan while, pada perulangan bentuk do-while perulangan dijalankan terlebih dahulu baru kemudian dicek kondisi/syarat perulangannya. Sehingga pada bentuk do-while setidaknya ada 1x (satu kali) perulangan dijalankan. Sedangkan perulangan pada bentuk while dapat tidak dijalankan sama sekali jika kondisi/persyaratan bernilai salah.

Perhatikan output dari program while dan do-while di bawah ini!

Berikut adalah contoh program while:
/*
      Looping for, while, do-while, continue, dan break
      Microsoft Visual Studio Express 2012
      [RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
      //looping dengan do-while
      int bil = 10;

      while(bil < 5){
            cout<<"HI! Pernyataan di dalam while ini tidak pernah dijalankan, karena kondisi salah"<<endl;
      }

      cout<<endl;
      cout<<"Keluar dari looping. Ini pernyataan di luar while."<<endl;

      _getche();
      return 0;
}

Output
Keluar dari looping. Ini pernyataan di luar while.


Berikut adalah contoh program do-while:
/*
      Looping for, while, do-while, continue, dan break
      Microsoft Visual Studio Express 2012
      [RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
      //looping dengan do-while
      int bil = 10;

      do{
            cout<<"HI! Pernyataan di dalam do-while tetap ini dijalankan, walaupun kondisi salah."<<endl;
      }
      while(bil < 5);
           

      cout<<endl;
      cout<<"Keluar dari looping. Ini pernyataan di luar do-while."<<endl;

      _getche();
      return 0;
}

Output
HI! Pernyataan di dalam do-while tetap ini dijalankan, walaupun kondisi salah.

Keluar dari looping. Ini pernyataan di luar do-while.

PENJELASAN
Pada bentuk while pernyataan di dalam perulangan tidak pernah dijalakan karena kondisi bernilai salah. Sedangkan pada bentuk do-while pernyataan cout<<"HI! Pernyataan di dalam do-while tetap ini dijalankan, walaupun kondisi salah."<<endl; ini dijalankan walaupun kondisi tidak sesuai/ bernilai salah. Seperti yang telah dijelaskan sebelumnya, hal ini terjadi karena pengecekan kondisi dilakukan setelah pernyataan pada perulangan dijalankan.



Pernyataan continue dan break

Flowchart continue dan break

continue
“Pernyataan continue digunakan untuk melanjutkan pada iterasi selanjutnya dari looping yang sedang berlangsung, melakukan pengecekan kondisi selanjutnya.”

Berikut adalah contoh program penggunaan continue:
/*
      Looping for, while, do-while, continue, dan break
      Microsoft Visual Studio Express 2012
      [RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
      int bil = 1;

      while(bil<=10 ){
            if(bil % 2 == 0)
            {
                  //penggunaan continue
                  bil++;
                  continue;
            }
            cout<<"Nilai bil : "<<bil<<endl;
            bil++;
      }

      _getche();
      return 0;
}

Output continue
Nilai bil : 1
Nilai bil : 3
Nilai bil : 5
Nilai bil : 7
Nilai bil : 9

PENJELASAN
Perhatikan flowchart continue dan break dan perhatikan hasil output program di atas. Terlihat bahwa jika bil % 2 == 0 (bilangan genap) maka pernyataan bil++; dan continue; akan dijalankan, sehingga membuat program akan melanjutkan ke iterasi berikutnya yang menyebabkan cout<<"Nilai bil : "<<bil<<endl; setelah pernyataan continue tidak dijalankan. Akibatnya membuat bilangan genap tidak pernah ditampilkan pada layar.

break
“Pada C++ terdapat dua penggunaan break. Pertama, untuk keluar dari pernyataan switch. Kedua, digunakan untuk keluar/mengakhiri suatu blok perulangan.

Catatan: Apabila kita menggunakan loop bersarang, artinya ada looping di dalam looping, jika break diletakkan pada looping yang terdalam, maka break hanya akan mengakhiri/keluar dari looping dimana break diletakkan (yaitu looping yang terdalam saja).

Berikut adalah contoh program penggunaan break:
/*
      Looping for, while, do-while, continue, dan break
      Microsoft Visual Studio Express 2012
      [RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
      int bil = 1;

      while(bil<=10 ){
            if(bil == 8)
            {
                  break;
            }
            cout<<"Nilai bil : "<<bil<<endl;
            bil++;
      }

      _getche();
      return 0;
}

Output break
Nilai bil : 1
Nilai bil : 2
Nilai bil : 3
Nilai bil : 4
Nilai bil : 5
Nilai bil : 6
Nilai bil : 7

PENJELASAN
Perhatikan flowchart continue dan break dan perhatikan hasil output program di atas. Terlihat bahwa output hanya sampai 7. Hal ini disebabkan oleh if(bil == 8), jadi ketika bil bernilai 8 maka pernyataan break; dijalankan yang membuat perulangan/looping diakhiri dan iterasi selanjutnya tidak pernah dijalankan.


Catatan : Hati-hati ketika menyetel kondisi pada perulangan! Pastikan perulangan berhenti pada suatu kondisi tertentu (bernilai false pada kondisi tertentu). Apabila tidak, akan terjadi infinite loop yaitu looping yang tidak terhingga (tidak pernah berakhir), yang akan memakan resource dari komputer anda dan apabila dibiarkan terus menerus bukan tidak mungkin menjadikan komputer menjadi "freeze".


[RS]

Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?

Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).

Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.

Terima kasih