Belajar Pemrograman C++ Seri 6 : Struktur Kontrol Perulangan

Belajar Pemrograman C++

Halo calon programmer!

Belajar Pemrograman C++
Belajar Pemrograman C++

Setelah pada materi sebelumnya kita telah mempelajari struktur kontrol percabangan, kali ini kita akan mengeksplor saudaranya yaitu struktur kontrol perulangan dalam bahasa pemrograman C++.

Apa yang dimaksud dengan struktur kontrol perulangan?

Struktur kontrol perulangan merupakan salah satu konsep penting yang ada di dalam bahasa pemrograman apapun, tak terkecuali di bahasa C++. Dengan menggunakan struktur kontrol perulangan kita bisa menyelesaikan suatu pekerjaan yang berulang-ulang cukup dengan program yang sederhana.

Misalkan kita diminta untuk membuat program yang bisa menampilkan kata-kata programming is fun” sebanyak 1000 kali. Jika kita mengetikkan secara manual atau dengan copy paste sebanyak 1000 kali tentu saja itu proses yang menjemukan dan tidak efektif. Cukup dengan program perulangan, kita bisa menuliskannya hanya seperti kode berikut dan akan tampil kata-kata tersebut pas sebanyak 1000 kali.

#include <iostream>
using namespace std; 

int main( ) {
for (int x = 1; x <= 1000; x = x + 1) {
cout <<”programming is fun” << endl;
}

return 0;
}

Contoh kasus sederhana lainnya adalah jika kita diminta untuk menampilkan deret bilangan dari angka 1 sampai angka 1 juta. Jika kita mengetikkan secara manual tentu saja itu adalah pekerjaan yang membosankan. Akan tetapi dengan adanya perulangan kita cukup membuat program yang singkat lalu akan tampil deret angka 1 sampai 1 juta secara otomatis.

Kodenya cukup seperti berikut :

#include <iostream>
using namespace std; 

int main( ) {
for (int x = 1; x <= 1000000; x = x + 1) {
cout << x << “  “;
}

return 0;
}

Jalankan program di atas lalu lihat hasilnya. Mudah sekali bukan?

Dengan menggunakan struktur kontrol perulangan, kita cukup menyediakan 3 isian yaitu nilai awal, nilai akhir, serta penjumlahan / pengurangan ( step ) yang dilakukan.

Apa saja yang termasuk dalam struktur kontrol perulangan?

Struktur kontrol perulangan dalam bahasa pemrograman C++ terdiri dari 3 struktur yaitu :

  1. for
  2. while
  3. do while

Struktur Kontrol For

For merupakan struktur kontrol perulangan yang paling sederhana dan digunakan jika kita mengetahui dengan pasti berapa jumlah perulangan yang akan dilakukan. For memiliki struktur seperti berikut :

for ( inisialisasi nilai awal ; inisialisasi nilai akhir ; step ) {   
// kode yang diulang
}

Contoh sederhananya sudah ada pada bagian di atas. Untuk kasus lain semisal kita ingin membuat deret matematika 100 98 96 … 2 maka penulisan kodenya adalah seperti berikut ini :

#include <iostream>
using namespace std; 

int main( ) {
for (int x = 100; x >= 2; x = x – 2) {
cout << x << “  “;
}

return 0;
}

100 adalah nilai awal perulangan. 2 adalah nilai akhir perulangan. Karena selisih antara 100 dan 98, 98 dan 96 adalah -2 maka pada bagian step kita isi x = x – 2. Tanda / operator matematika yang digunakan adalah lebih dari ( > ) karena deret angkanya turun dari 100 ke 2. Tetapi jika pada kasus lain deretnya naik, maka tanda / operator yang digunakan adalah kurang dari ( < ).

Jika kita terbalik menuliskan tanda / operator matematika pada batas akhir perulangan, ada kemungkinan output yang dihasilkan tidak sesuai dengan harapan kita.

Struktur Kontrol While

While memiliki kemiripan dengan for, tetapi lebih spesial karena dapat digunakan meskipun kita tidak tahu batas perulangannya. Struktur dasar perulangan while adalah sebagai berikut :

inisialisasi nilai awal;
while ( batas nilai akhir ) {
// kode yang diulang;
step;
}

Contoh penggunaan while untuk kasus deret angka 1 2 3 … 1000000 adalah sebagai berikut :

#include <iostream>
using namespace std; 

int main( ) {

int x = 1;
while ( x <= 1000000) {
cout << x << “  “;
x = x + 1;
}

return 0;
}

Kode di atas akan menghasilkan output yang sama dengan program yang menggunakan struktur kontrol for.

While dapat pula digunakan jika kita ingin melakukan sesuatu yang sifatnya terus menerus ( infinite looping ). Cukup mengisi bagian batas akhir nilai dengan sesuatu yang bernilai true maka kode akan dieksekusi terus menerus. Perhatikan contoh berikut ini :

#include <iostream>
using namespace std; 

int main( ) { 
while ( true ) {
cout << “welcome to C++” << endl;


return 0;
}

Program di atas akan menampilkan tulisan “welcome to C++” secara terus menerus sampai program di-close atau kita menekan kombinasi tombol Ctrl+C pada keyboard.

Sebaliknya jika kita mengisikan sesuatu yang bernilai false pada bagian batas akhir, maka program tidak akan menampilkan output apapun. Contoh penerapannya adalah sebagai berikut :

#include <iostream>
using namespace std; 

int main( ) { 

while ( false ) {
cout << “welcome to C++” << endl;


return 0;
}

Program di atas tidak akan menghasilkan output sama sekali. Bukan error, tapi memang tidak akan ada output yang tampil karena ketika program dijalankan, compiler akan mengecek nilai yang ada di dalam kondisi while. Karena bernilai false, maka blok kode yang berisi kata-kata “welcome to C++” tidak akan dijalankan sama sekali.

Struktur Kontrol Do While

Diantara tiga bersaudara yang ada dalam struktur kontrol perulangan, do while adalah struktur kontrol yang paling unik karena akan dijalankan minimal 1 kali meskipun ketika dievaluasi ternyata kondisinya bernilai false. Hal ini berbeda dengan kasus while di atas yang tidak akan menjalankan / menampilkan output ketika bernilai false.

Do while memiliki struktur seperti berikut :

inisialisasi nilai awal;
do {
kode yang akan diulang;
step;
} while ( batas nilai akhir );

Contoh penerapan struktur kontrol do while untuk perulangan 1 2 3 … 1000000 adalah sebagai berikut :

#include <iostream>
using namespace std; 
int main( ) { 

int x = 1;
do {
cout << x << “   “;
x = x + 1;
} while ( x <= 1000000); 

return 0;
}

Program di atas akan menghasilkan output yang sama jika dibandingkan dengan kode yang menggunakan for maupun while.

Sedangkan mengenai “keunikan” do while dibandingkan dengan dua struktur kontrol lainnya dapat dilihat pada program berikut :

#include <iostream>
using namespace std; 

int main( ) {
int x = 100;
do {
cout << x << “   “;
x++;
} while ( x <= 0); 

return 0;
}

Program di atas akan dijalankan 1 kali dan menampilkan angka 100, padahal 100 tidak kurang atau sama dengan 0 ketika dicek di bagian bawah. Hal ini karena do while akan melakukan perintah “do” atau “kerjakan” terlebih dahulu baru dicek. Apapun hasil pengecekannya nanti, kode yang ada dalam blok “do” sudah dijalankan terlebih dahulu.

Sebagai tambahan, terkadang kita akan menjumpai penulisan “x++” dan “x–” di dalam kode program. “x++” sama artinya dengan “x = x + 1” sedangkan “x–” sama artinya dengan “x = x – 1”.

Struktur Kontrol Perulangan Bersarang

Contoh-contoh yang ada pada ketiga struktur kontrol perulangan di atas termasuk dalam kategori perulangan yang sederhana karena kita hanya melibatkan 1 struktur kontrol perulangan. Akan tetapi suatu saat kita akan menemukan kasus dimana 1 struktur kontrol saja tidak cukup untuk menyelesaikan suatu masalah.

Contoh kasus sederhanya misal jika kita ingin membuat segitiga deret angka dengan bentuk seperti berikut :

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7

Kode di atas dihasilkan dengan menggunakan struktur kontrol perulangan secara bersarang, yang berarti ada struktur kontrol di dalam struktur kontrol lainnya. Kode program dengan output deret angka seperti di atas adalah sebagai berikut :

#include <iostream>
using namespace std; 

int main( ) { 
for (int x = 1; x <= 7; x++) {
for (int y = 1; y <= x; y++) {     
cout << y << ” “;
}
cout << endl;


return 0;
}

Menggunakan Break

Ada kalanya di dalam pemrograman kita membutuhkan sesuatu yang digunakan untuk menghentikan jalannya proses perulangan. Di bahasa pemrograman C++ fungsi tersebut telah disediakan dengan menggunakan perintah break.

Misalnya kita membuat perulangan 1 2 3 …. 100 tetapi ketika menjumpai angka 67 proses perulangan berhenti, maka kode programnya adalah sebagai berikut :

#include <iostream>
using namespace std; 

int main( ) { 
for (int x = 1; x <= 100; x++) {
cout << x << “  “;
if ( x == 67 ) break;


return 0;
}

Program di atas akan mencetak angka 1 2 3 … sampai angka 67 kemudian berhenti. Angka terakhir yang tampil adalah 67 meskipun batas perulangan seharusnya adalah angka 100.

Perlu diperhatikan bahwa penulisan kode if  ( x == 67 ) break; pada program di atas mempunyai hasil yang berbeda jika dituliskan sebelum kode cout << x << “   “; seperti berikut :

#include <iostream>
using namespace std; 

int main( ) { 

for (int x = 1; x <= 100; x++) {
if ( x == 67 ) break;
cout << x << “  “;


return 0;
}

Kode di atas akan menampilkan deret angka dari 1 2 3 … sampai angka 66 (bukan 67) karena dilakukan pengecekan terlebih dahulu kemudian program berhenti sebelum sempat mencetak angka 67.

Menggunakan Continue

Continue digunakan jika kita ingin melewati / melompati nilai yang ada di dalam perulangan. Misalkan kita membuat deret angka 1 2 3 … sampai 10 tetapi ketika menemukan angka 5, angka 5 tersebut dilewati dan langsung mencetak angka 6. kode programnya adalah sebagai berikut :

#include <iostream>
using namespace std; 

int main( ) { 

for (int x = 1; x <= 10; x++) {
if ( x == 5) continue;
cout << x << “  “;


return 0;
}

Kode di atas akan menghasilkan deretan : 1 2 3 4 6 7 8 9 10.

Sama seperti kasus yang ada pada materi break, urutan antara proses cetak dengan proses pengecekan “if” pada continue juga perlu diperhatikan. Akan berbeda hasilnya jika urutan penulisan kodenya diubah seperti berikut :

#include <iostream>
using namespace std; 

int main( ) { 

for (int x = 1; x <= 10; x++) {
cout << x << “  “;
if ( x == 5) continue;


return 0;
}

Kode di atas akan menghasilkan deretan lengkap : 1 2 3 4 5 6 7 8 9 10.

Implementasi Struktur Kontrol Perulangan dalam Program Sederhana

Dalam beberapa kasus struktur kontrol perulangan for, while, maupun do while sering digunakan bersamaan dengan struktur kontrol percabangan if else atau switch case.

Dengan menambahkan perulangan, suatu program dapat berjalan terus menerus sampai pengguna memilih untuk berhenti. Contoh kasusnya ada pada simulasi program pemesanan makanan sederhana berikut :

#include <iostream>
using namespace std; 

int main() { 

int pilihan;
bool status = true; 
do {    
cout << “Pemesanan Makanan” << endl;    
cout << “1. Bakso” << endl;    
cout << “2. Mie Ayam” << endl;    
cout << “3. Nasi Goreng” << endl;    
cout << “4. Keluar” << endl;    

cout << “Masukkan pilihan anda : “;    
cin >> pilihan;     

switch (pilihan) {        
case 1:           
cout << “Anda memesan bakso” << endl << endl;            
break;        

case 2:           
cout << “Anda memesan mie ayam” << endl << endl;            
break;        

case 3:            
cout << “Anda memesan nasi goreng” << endl << endl;            
break;        

case 4:            
cout << “Keluar dari program” << endl << endl;            
status = false;            
break;        

default:            
cout << “Masukkan angka 1,2,3 atau 4!” << endl << endl;                
}
} while (status); 

return 0;
}

Saat dijalankan, program di atas akan menghasilkan output :

Pemesanan Makanan
1. Bakso
2. Mie Ayam
3. Nasi Goreng
4. Keluar
Masukkan pilihan anda : 1
Anda memesan bakso 

Pemesanan Makanan
1. Bakso
2. Mie Ayam
3. Nasi Goreng
4. Keluar
Masukkan pilihan anda : 2
Anda memesan mie ayam 

Pemesanan Makanan
1. Bakso
2. Mie Ayam
3. Nasi Goreng
4. KeluarMasukkan pilihan anda : 3
Anda memesan nasi goreng 

Pemesanan Makanan
1. Bakso
2. Mie Ayam
3. Nasi Goreng
4. Keluar
Masukkan pilihan anda : 5
Masukkan angka 1,2,3 atau 4! 

Pemesanan Makanan
1. Bakso
2. Mie Ayam
3. Nasi Goreng
4. Keluar
Masukkan pilihan anda : 4
Keluar dari program 

Pada saat pengguna memasukkan angka 1,2, atau 3 maka program akan menampilkan output sesuai dengan pilihan makanannya.

Jika memasukkan angka 4 maka program akan berhenti karena status perulangan yang awalnya bernilai true diubah menjadi false. Jika pengguna memasukkan angka selain 1,2,3 atau 4 maka program akan menjalankan instruksi yang ada pada blok kode default.

Sampai disini apa yang sudah kamu pelajari?

Dengan menggunakan struktur kontrol perulangan kita bisa menghemat waktu kita. Cukup membuat sebuah perintah otomatis maka program akan dapat berjalan dengan jumlah sesuai dengan keinginan kita.

Psst, perlu kamu ketahui bahwa struktur kontrol percabangan maupun perulangan terdapat dalam semua bahasa pemrograman. Bentuknya pun mirip-mirip. Dengan menguasai dasar-dasar pemrograman minimal sampai struktur kontrol perulangan saja, kamu bisa dengan mudah beradaptasi ke bahasa pemrograman lainnya.

Yuk bagikan ilmu ini!

1 tanggapan pada “Belajar Pemrograman C++ Seri 6 : Struktur Kontrol Perulangan”

Tinggalkan Balasan