Loop C++

 Dalam bahasa C++ (dan juga bahasa turunan C seperti Java, PHP dan JavaScript), terdapat 3 buah struktur perulangan atau looping, yakni perulangan for, perulangan while dan perulangan do while.

Dalam tutorial bahasa pemrograman C++ kali ini kita akan bahas perulangan for terlebih dahulu.

Pengertian Struktur Perulangan For Bahasa C++

Struktur perulangan (atau dalam bahasa inggris disebut loop) adalah instruksi kode program yang bertujuan untuk mengulang beberapa baris perintah.

Dalam merancang perulangan for, setidaknya kita harus mengetahui 3 komponen:

  1. Kondisi awal perulangan.
  2. Kondisi pada saat perulangan.
  3. Kondisi yang harus dipenuhi agar perulangan berhenti.

Berikut format dasar struktur perulangan for dalam bahasa C++:

for (start; condition; increment)
{
   // kode program
   // kode program
}

Start adalah kondisi pada saat awal perulangan. Biasanya kondisi awal ini berisi perintah untuk memberikan nilai kepada variabel counterVariabel counter sendiri adalah sebuah variabel yang menentukan berapa banyak perulangan dilakukan. Kebanyakan programmer menggunakan variabel i sebagai variabel counter (ini tidak harus, boleh juga memakai variabel lain).

Condition adalah kondisi yang harus dipenuhi agar perulangan berjalan. Selama kondisi ini terpenuhi, maka compiler bahasa C++ akan terus melakukan perulangan. Misalnya condition ini berisi perintah i < 7, maka selama variabel counter i berisi angka yang kurang dari 7, terus lakukan perulangan.

Increment adalah bagian yang dipakai untuk memproses variabel counter agar bisa memenuhi kondisi akhir perulangan. Bagian ini akan selalu di eksekusi di setiap perulangan.

Disebut increment karena biasanya berisi operasi increment seperti i++, yang sebenarnya sama dengan i = i + 1. Maksudnya, dalam setiap perulangan naikkan variabel i sebanyak 1 angka. Namun kita juga bisa memberikan nilai lain seperti i = i + 2 sehingga variabel counter akan naik 2 angka setiap perulangan

Sebagai tambahan, terdapat istilah iterasi (iteration), yang berarti 1 kali perulangan. Istilah ini cukup sering dipakai ketika membahas tentang struktur perulangan.

Baik, cukup dengan teorinya mari kita masuk ke contoh praktek.

Contoh Kode Program Perulangan For Bahasa C++

Sebagai contoh pertama, saya ingin menampilkan teks  “Hello World” sebanyak 5 kali. Berikut kode programnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i;
  for (i = 1; i < 5; i++) {
    cout << "Hello World " << endl;
  }
 
  return 0;
}

Di baris 7 saya membuat sebuah variabel i yang di set dengan tipe data integer. Variabel ini nantinya akan dipakai sebagai variabel counter, yakni variabel yang menentukan kondisi akhir perulangan.

Perintah di baris 8, yakni for (i = 1; i < 5; i++), bisa dibaca:

“Jalankan perulangan, mulai dari variabel i = 1 sampai i < 5. Dalam setiap iterasi, naikkan nilai variabel i sebanyak 1 angka menggunakan perintah i++“.

Berikut hasilnya:

Hello World
Hello World
Hello World
Hello World

Pertanyaannya, kenapa hanya tampil 4 baris “Hello World“? Padahal kita mengulang dari i = 1 sampai i < 5.

Ini berkaitan dengan penggunaan tanda. Kondisi akhir perulangan adalah i < 5, yang artinya akan selalu bernilai true jika i kurang dari 5, tapi jika sudah sampai dengan 5 maka kondisi menjadi false dan perulangan berhenti.

Agar teks “Hello World” bisa tampil sebanyak 5 kali, ada 2 alternatif. Yakni bisa dengan mengubah kondisi awal menjadi i = 0, atau mengubah kondisi akhir menjadi i <= 5. Pilihan kedua ini terlihat lebih baik:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i;
  for (i = 1; i <= 5; i++) {
    cout << "Hello World " << endl;
  }
 
  return 0;
}

Hasil kode program:

Hello World
Hello World
Hello World
Hello World
Hello World

Sekarang teks “Hello World” sudah tampil sebanyak 5 kali. Sekali lagi, hati-hati dengan menggunakan tanda perbandingan, terutama antara “<” dengan “<=“.

Di dalam perulangan, kita juga bisa mengakses variabel counter seperti contoh berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i;
  for (i = 1; i <= 5; i++) {
    cout << "Hello World " << i << endl;
  }
 
  return 0;
}

Hasil kode program:

Hello World 1
Hello World 2
Hello World 3
Hello World 4
Hello World 5

Sekarang setelah teks “Hello World“, tampil angka yang berasal dari nilai variabel i. Karena dalam setiap iterasi variabel counter i akan naik 1 angka (proses increment), maka ketika ditampilkan juga akan naik 1 angka untuk setiap iterasi.

Variabel counter i juga tidak harus di increment, tapi juga bisa di decrement untuk membuat perulangan menurun. Berikut contohnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i;
  for (i = 5; i >= 1; i--) {
    cout << "Hello World " << i << endl;
  }
 
  return 0;
}

Hasil kode program:

Hello World 5
Hello World 4
Hello World 3
Hello World 2
Hello World 1

Kode kita sangat mirip seperti sebelumnya, tapi perhatikan perintah for di baris 8: for (i = 5; i >= 1; i–). Ini bisa dibaca:

“Jalankan perulangan, mulai dari variabel i = 5 sampai i >= 1. Dalam setiap iterasi, turunkan nilai variabel i sebanyak 1 angka menggunakan perintah i--“.

Hasilnya, nilai variabel counter i akan berkurang 1 angka dalam setiap iterasi.

Sebagai contoh terakhir, bisakah anda membuat perulangan untuk menampilkan angka kelipatan 3 sebanyak 10 kali? Hasil akhir yang kita inginkan adalah sebagai berikut:

3 6 9 12 15 18 21 24 27 30

Terdapat beberapa cara untuk menghasilkan deret ini. Pertama, ubah di sisi block perintah yang akan dijalankan. Dimana variabel counter i tetap naik dari 1 sampai 10:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i;
  for (i = 1; i <= 10; i++) {
    cout << i*3 << " ";
  }
 
  return 0;
}

Agar menghasilkan angka yang naik kelipatan 3, teknik yang dipakai adalah mengalikan nilai variabel counter i dengan angka 3 untuk setiap iterasi.

Cara kedua adalah memodifikasi proses increment dari variabel counter:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i;
  for (i = 3; i <= 30; i = i + 3) {
    cout << i << " ";
  }
 
  return 0;
}

Perhatikan perintah perulangan for di baris 8. Perintah for (i = 3; i <= 30; i = i + 3) bisa dibaca:

“Jalankan perulangan, mulai dari variabel i = 3 sampai i <= 30. Dalam setiap iterasi, naikkan nilai variabel i sebanyak 3 angka menggunakan perintah i = i + 3“.

Teknik ini agak jarang dipakai, tapi itu bisa dilakukan.


Dalam tutorial kali ini kita telah membahas tentang perulangan (looping) for. Nantinya looping ini bisa dikombinasikan lebih lanjut misalnya untuk membuat perulangan bersarang (nested loop).

Tapi untuk tutorial berikutnya kita akan lanjut dulu ke bentuk perulangan kedua dalam bahasa C++, yakni perulangan WHILE.


Pengertian Struktur Perulangan While Bahasa C++

Dalam tutorial sebelumnya tentang perulangan FOR, kita telah bahas bahwa sebuah perulangan harus memiliki 3 syarat: kondisi awal perulangankondisi pada saat perulangan, dan kondisi akhir perulangan.

Dalam perulangan FOR, ketiga syarat ini ditulis dalam 1 baris perintah seperti for (i = 1; i < 5; i++). Di dalam perulangan WHILE, ketiga kondisi ini saling terpisah.

Berikut format dasar struktur perulangan WHILE dalam bahasa C++:

1
2
3
4
5
6
7
start;
while (condition)
{
   // kode program
   // kode program
  increment;
}

Di bagian start biasanya ditulis perintah inisialisasi variabel counter, misalnya i = 0. Di bagian condition terdapat kondisi yang harus dipenuhi agar perulangan berjalan, misalnya i < 5. Kemudian perintah increment harus berada di dalam block perulangan agar bisa menaikkan nilai variabel counter, misalnya dengan perintah i++.

Mari kita masuk ke contoh praktek.

Contoh Kode Program Perulangan While Bahasa C++

Sebagai praktek pertama, berikut kode program perulangan WHILE untuk menampilkan teks “Hello World” sebanyak 5 kali:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 1;
  while (i <= 5){
    cout << "Hello World" << endl;
    i++;
  }
 
  return 0;
}

Hasil kode program:

Hello World
Hello World
Hello World
Hello World
Hello World

Di baris 7 terdapat perintah untuk menginput angka 1 ke dalam variabel i. Nantinya, variabel i ini akan menjadi variabel counter yang dipakai untuk menentukan jumlah perulangan.

Proses perulangan di mulai di baris 8. Perintah while (i <= 5) artinya, selama nilai variabel i kurang atau sama dengan 5, maka jalankan perulangan.

Di dalam blok perulangan terdapat perintah cout << “Hello World” << endl di baris 9. Ini dipakai untuk menampilkan teks “Hello World“. Kemudian di baris 10 terdapat perintah increment, yakni i++. Perintah ini akan menaikkan nilai variabel i sebanyak 1 angka dalam setiap iterasi.

Perulangan while akan di ulang sebanyak 5 kali, mulai dari i = 1, i = 2, i = 3, i = 4, hingga i = 5. Ketika nilai variabel counter i sudah mencapai 6, maka kondisi while (i <= 5) tidak terpenuhi lagi (false), sehingga perulangan berhenti.Salah satu hal yang harus selalu diingat ketika membuat perulangan while adalah, jangan lupa membuat perintah increment. Jika tidak, kondisi akhir tidak akan pernah terpenuhi dan perulangan akan berjalan terus menerus. Ini dikenal dengan istilah infinity loop. Berikut contohnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 1;
  while (i <= 5){
    cout << "Hello World" << endl;
  }
 
  return 0;
}

Jika anda menjalankan kode program di atas, teks “Hello World” akan ditampilkan terus menerus, tidak pernah selesai. Penyebabnya adalah karena kondisi while (i <= 5) akan selalu bernilai true. Di dalam blok perulangan tidak ada perintah yang bisa mengubah nilai variabel i agar kondisi while (i <= 5) bernilai false.

Untuk menghentikan infinity loop, tutup paksa jendela hasil dengan men-klik tanda (x) di sudut kanan atas, atau tekan kombinasi CTRL + C.

Sama seperti perulangan FOR, di dalam block perulangan WHILE kita juga bisa mengakses nilai dari variabel counter i:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 1;
  while (i <= 5){
    cout << "Hello World " << i <<endl;
    i++;
  }
 
  return 0;
}

Hasil kode program:

Hello World 1
Hello World 2
Hello World 3
Hello World 4
Hello World 5

Bagaimana dengan perulangan menurun? tidak masalah. Kita tinggal mengatur kondisi awalkondisi akhir, serta proses decrement:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 10;
  while (i > 5){
    cout << "Hello World " << i <<endl;
    i--;
  }
 
  return 0;
}

Hasil kode program:

Hello World 10
Hello World 9
Hello World 8
Hello World 7
Hello World 6

Di sini saya mengisi nilai awal variabel counter i dengan angka 10. Kondisi perulangan adalah while (i > 5), artinya selama nilai variabel i di atas 5, jalankan perulangan. Dan karena kita ingin membuat perulangan menurun, maka dipakai perintah decrement i-- yang akan mengurangi nilai variabel i sebanyak 1 angka dalam setiap iterasi.

3 6 9 12 15 18 21 24 27 30

Deret ini sudah pernah kita bahasa dalam tutorial perulangan FOR, sekarang tinggal mengkonversinya menjadi perulangan WHILE.

Sebelum menutup tutorial ini, saya ingin membuat tantangan lain. Tanpa menjalankan kode program di bawah ini, bisakah tebak hasilnya?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 10;
  while (i <= 5){
    cout << "Hello World " << i <<endl;
    i++;
  }
 
  return 0;
}

Berapa kali teks “Hello World” tampil?

Yup, jawabannya: Tidak ada. Alasannya adalah karena kondisi awal perulangan WHILE sudah langsung tidak terpenuhi.

Di baris 7 saya mengisi variabel i dengan angka 10. Kemudian terdapat blok perulangan WHILE dengan perintah while (i <= 5). Artinya, selama nilai variabel i kurang dari 5, jalankan perulangan.

Masalahnya, nilai variabel i saat ini adalah 10, sehingga 10 <= 5 sudah langsung false. Dengan demikian, blok perulangan tidak akan pernah dijalankan.

Pada tutorial kali ini kita telah mempelajari cara penggunaan perulangan while atau while loop dalam bahasa pemrograman C++. Selanjutnya akan dibahas tentang perulangan ketiga, yakni Perulangan DO WHILE.


Pengertian Struktur Perulangan DO WHILE Bahasa C++

Perulangan DO WHILE merupakan modifikasi dari perulangan WHILE, yakni dengan memindahkan posisi pemeriksaan kondisi ke akhir perulangan. Artinya, lakukan dahulu sebuah perulangan, baru periksa apakah kondisi variabel counter sudah terpenuhi atau belum di akhir perulangan.

Berikut format dasar struktur perulangan DO WHILE dalam bahasa C++:

1
2
3
4
5
6
7
8
start;
do
{
 // kode program
 // kode program
 increment;
}
while (condition)

Sama seperti perulangan WHILE, di bagian start biasanya terdapat perintah inisialisasi variabel counter, misalnya i = 0. Kemudian di dalam block do ditulis kode program yang akan di ulang, tidak lupa sebuah perintah untuk menaikkan nilai variabel counter, misalnya dengan perintah i++.

Di bagian paling bawah, terdapat perintah while (condition). Di sinilah kondisi perulangan akan diperiksa. Selama kondisi ini menghasilkan nilai true, maka perulangan akan lanjut ke iterasi berikutnya.

Contoh Kode Program Perulangan Do While Bahasa C++

Agar bisa dibandingkan dengan bahasan di tutorial perulangan FOR dan WHILE, berikut contoh kode program bahasa C++ untuk menampilkan 5 kali teks ‘Hello World’ menggunakan perulangan DO WHILE:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 1;
  do {
    cout << "Hello World" << endl;
    i++;
  }
  while (i <= 5);
 
  return 0;
}

Hasil kode program:

Hello World
Hello World
Hello World
Hello World
Hello World

Di baris 7 saya mendefinisikan variabel counter i dan memberikan nilai awal 1.

Kemudian terdapat block kode program do di baris 8 – 11. Inilah kode program yang akan di ulang, yakni berisi sebuah perintah cout << “Hello World” << endl untuk menampilkan teks ‘Hello World’, dan sebuah perintah increment i++ untuk menaikkan nilai variabel i sebanyak 1 angka.

Terakhir di baris 12 terdapat perintah while (i <= 5). Artinya, selama variabel counter i bernilai kurang dari atau sama dengan 5, jalankan kembali perulangan.

Dalam perulangan DO WHILE kita juga bisa mengakses variabel counter seperti contoh berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 1;
  do {
    cout << i * 3 << " ";
    i++;
  }
  while (i <= 5);
 
  return 0;
}

Tanpa menjalankan kode program ini, bisakah anda menebak hasil yang tampil?

Yup, ini adalah kode program untuk membuat sebuah deret dengan kelipatan 3:

3 6 9 12 15

Kunci utama yang membedakan perulangan DO WHILE dengan perulangan WHILE adalah posisi pemeriksaan kondisi.

Karena dalam perulangan DO WHILE pemeriksaan kondisi di lakukan di akhir, maka perulangan akan selalu di jalankan minimal 1 kali, meskipun syarat perulangan sudah tidak dipenuhi.

Berikut contoh kasusnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
  int i = 10;
  do {
    cout << i * 3 << " ";
    i++;
  }
  while (i <= 5);
 
  return 0;
}

Hasil kode program: 30.

Di baris 7 saya mengisi angka 10 ke dalam variabel counter i. Namun syarat kondisi adalah while (i <= 5). Apakah i <=5 ? tidak (false). Namun meskipun kondisi ini tidak dipenuhi, perulangan akan tetap dijalankan 1 kali.

Jika kondisi yang sama dibuat menggunakan WHILE, perulangan tidak akan pernah dijalankan karena kondisi di periksa di awal. Inilah yang jadi perbedaan antara perulangan WHILE dan DO WHILE dalam bahasa C++.

Komentar

Postingan Populer