author Ahmad Muhardian

Belajar C++ #08: Memahami Blok Perulangan di C++


Belajar Perulangan di C++

Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang?

Misalnya:

Tolong tampilkan kalimat "Tutorial Pemrograman C++!" sebanyak 10x ke layar!

Mungkin kamu akan menggunakan cout sebanyak 10 kali seperti ini:

#include <iostream>
using namespace std;

int main(){
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    cout << "Tutorial Pemrograman C++!" << endl;
    return 0;
}

Hasilnya:

Perulangan manual dengan printf

Apakah boleh seperti ini?

Ya, boleh-boleh saja.

Tapi…

Bagaimana kalau nanti mau menampilkan sebanyak 1000 kali.

Pasti capek donk ngetiknya.

Karena itu, kita harus menggunakan perulangan.

Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun yang kita mau.

Ada empat macam bentuk perulangan pada C.

Secara umum, dibagi menjadi dua kelompok.

Yaitu: counted loop dan uncounted loop.

Perbedaanya:

  • Counted Loop merupakan perulangan yang jelas dan sudah tentu banyak kali perulangannya.
  • Sedangkan Uncounted Loop, merupakan perulangan yang tidak jelas berapa kali ia harus mengulang.
View this post on Instagram

A post shared by Petani Kode | Coding & Growing (@petanikode)

Perulangan yang termasuk dalam Counted Loop:

  1. Perulangan For

Perulangan yang termasuk dalam Uncounted Loop:

  1. Perulangan While
  2. Perulangan Do/While

Mari kita bahas satu per satu…

1. Blok Perulangan For

Perulangan for merupakan perulangan yang termasuk dalam couted loop, karena sudah jelas berapa kali ia akan mengulang.

Flowchart perulangan for
Flowchart perulangan for

Bentuknya kodenya seperti ini:

for(int i = 0; i < 10; i++){
    printf("Perulangan ke-%i\n", i);
}

Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata for.

Kondisi ini akan menentukan:

  • Hitungan akan dimulai dari 0 (i = 0);
  • Hitungannya sampai berapa? Sampai i < 10;
  • Lalu di setiap perulangan i akan bertambah +1 (i++).

Variabel i pada perulangan for berfungsi untuk menyimpan nilai hitungan.

Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita menentukannya di bagian i++.

Contoh program loop dengan for:

#include <iostream>
using namespace std;

int main(){
    for(int i = 0; i < 10; i++){
        printf("Perulangan ke-%i\n", i);
    }

    return 0;
}

Ini hasil outputnya:

Perulangan For pada bahasa C

Apakah nama variabelnya harus selalu i?

Tidak.

Kita juga bisa menggunakan nama lain.

Misalnya:

#include <iostream>
using namespace std;

int main(){
    for(int counter = 0; counter < 10; counter += 2){
        printf("Perulangan ke-%i\n", counter);
    }

    return 0;
}

Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0. Lalu di setiap perulangan nilai variabel couter akan ditambah 2 (counter+=2).

Hasilnya:

Perulangan For pada bahasa C++

Bagaimana kalau counter perulangannya dimulai dari akanga yang lebih besar sampai yang ke paling kecil?

Ini biasanya kita buat saat ingin menghitung mundur…

Caranya gampang.

Kita tinggal isi nilai counter dengan nilai terbesarnya.

Misalnya kita akan mulai hitungan dari 10 sampai ke 0.

Maka nilai counter, kita isi awalnya dengan 10.

Lalu di kondisi perbandingannya, kita berikan counter > 0. Artinya perulangan akan dilakukan selama nilai counter lebih besar dari 0.

Lalu kita kurangi (-1) nilai counter di setiap perulangan (counter--).

for(int counter = 10; counter > 0; counter--){
    printf("Perulangan ke-%i\n", counter);
}

Hasilnya:

Perulangan for dengan hitung mundur

Mengapa tidak sampai nol (0)?

Karena kondisi yang kita berikan counter > 0. Apabila counter bernilai 0, maka kondisi ini akan menjadi false.

Kecuali kita menggunakan operator lebih besar sama dengan (>=), maka jika counter bernilai 0, kondisi akan menjadi true.

2. Perulangan While pada C++

Perulangan while merupakan perulangan yang termasuk dalam perulangan uncounted loop.

Perulangan while juga dapat menjadi perulangan yang counted loop dengan memberikan counter di dalamnya.

Bentuk flow chart-nya sama seperti flow chart for.

Flowchart perulangan while
Flowchart perulangan while

Untuk memahami perulangan ini…

…mari kita coba lihat contohnya:

#include <iostream>
using namespace std;

int main(){
    char ulangi = 'y';
    int counter = 0;

    // perulangan while
    while(ulangi == 'y'){
        printf("Apakah kamu mau mengulang?\n");
        printf("Jawab (y/t): ");
        cin >> ulangi;

        // increment counter
        counter++;
    }

    printf("\n\n----------\n");
    printf("Perulangan Selesai!\n");
    printf("Kamu mengulang sebanyak %i kali.\n", counter);

    return 0;
}

Hasilnya:

Perulangan while pada C++

Coba perhatikan blok kode while:

// perulangan while
while(ulangi == 'y'){
    printf("Apakah kamu mau mengulang?\n");
    printf("Jawab (y/t): ");
    cin >> ulangi;
    // increment counter
    counter++;
}

Di sana… Perulangan akan terjadi selama variabel ulangi brenilai y.

Lalu kita menggunakan fungsi scanf() untuk mengambil input.

Selama kita menjawab y pada input, maka perulangan akan terus dilakukan.

Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.

Karena kondisi perulangannya tidak terpenuhi.

3. Perulangan Do/While pada C++

Perulangan do/while sama seperti perulangan while.

Perbedaanya:

Perulangan do/while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung while.

Flow chart perulangan do/while:

Flowchart perulangan do/while

Bentuk kodenya seperti ini:

do {
    // blok kode yang akan diulang
} while (<kondisi>);

Jadi perbedaanya:

Perulangan do/while akan mengecek kondisi di belakang (sesudah mengulang), sedangkan while akan mencek kondisi di depan atau awal (sbelum mengulang).

Mari kita coba lihat contohnya:

#include <iostream>
using namespace std;

int main(){
    char ulangi = 'y';
    int counter = 0;

    do {
        printf("Apakah kamu mau mengulang?\n");
        printf("Jawab (y/t): ");
        cin >> ulangi;

        // increment counter
        counter++;
    } while(ulangi == 'y');

    printf("\n\n----------\n");
    printf("Perulangan Selesai!\n");
    printf("Kamu mengulang sebanyak %i kali.\n", counter);

    return 0;
}

Contoh tersebut sama seperti contoh pada perulangan while.

Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab t.

Maka hasilnya:

Perulangan Do While

4. Perulangan Bersarang (Nested Loop)

Di dalam blok perulangan, kita juga dapat membuat perulangan.

Ini disebut dengan nested loop atau perulangan bersarang atau perulangan di dalam perualangan.

Mari kita coba lihat contohnya:

#include <iostream>
using namespace std;

int main(){
    for(int i = 0; i < 10; i++){
        for(int j = 0; j < 10; j++){
            printf("Perulangan ke (%d, %d)\n", i, j);
        }
    }

    return 0;
}

Hasilnya:

Perulangan bersarang pada C++

Pada perulangan tersebut, kita menggunakan dua perulangan for.

Perulangan pertama menggunakan variabel i sebagai counter, sedangkan perultangan kedua menggunakan variabel j sebagai counter.

Apa Selanjutnya?

Intinya perulangan digunakan untuk melakukan pengulangan. Ini merupakan hal dasar yang harus dipahami setiap programmer.

Karena ke depan, kita akan banyak menggunakannya dalam membuat program dengan C++.

Yang perlu diingat, perulangan itu ada dua macam: Counted loop dan uncounted loop.

Selamat belajar…

📖 Untuk daftar tutorial C++ lainnya, lihat di List Tutorial C++