Membuat Program Segitiga Bintang C++: 5 Pola Lengkap (Siku, Piramida, Angka)

| | | C++
Membuat Program Segitiga Bintang C++: 5 Pola Lengkap (Siku, Piramida, Angka)

Anda ingin belajar pemrograman tapi bingung harus mulai dari mana? Coba berkunjung ke dunia pemrograman C++ dengan membuat contoh program segitiga bintang!

Waktu saya pertama kali belajar C++, program segitiga bintang ini jadi salah satu latihan pertama yang benar-benar membuat konsep perulangan “klik” di kepala saya. Bukan karena sulit, tapi karena hasilnya langsung terlihat — ketik kode, jalankan, dan segitiga bintang muncul di layar. Sampai sekarang, kalau ada teman yang baru mulai belajar C++ dan bertanya mau bikin program apa dulu, jawaban saya selalu sama: buat segitiga bintang.

Membuat program segitiga bintang C++ adalah latihan klasik yang paling cocok untuk pemula — program ini sederhana, hasilnya terlihat langsung, dan mengajarkan konsep perulangan (loop) yang merupakan dasar semua pemrograman.

Dalam artikel ini, kamu akan belajar 5 pola segitiga bintang C++ lengkap: segitiga siku-siku kiri, segitiga siku-siku kanan, piramida, segitiga terbalik, dan segitiga angka — lengkap dengan kode, hasil output, dan penjelasan logika perulangannya.

Konsep Dasar: Perulangan Bersarang (Nested Loop)

Semua pola bintang di artikel ini dibuat dengan nested loop — perulangan di dalam perulangan:

  • Outer loop (perulangan luar) → mengontrol jumlah baris
  • Inner loop (perulangan dalam) → mengontrol jumlah karakter di setiap baris
for (baris = 1; baris <= n; baris++) {
    for (kolom = 1; kolom <= ...; kolom++) {
        cout << "*";
    }
    cout << endl; // pindah ke baris berikutnya
}

Kombinasi logika di dalam inner loop — mau cetak spasi, bintang, atau angka — itulah yang menentukan bentuk polanya.

1. Segitiga Bintang Siku-Siku (Kiri)

Pola paling dasar: baris ke-1 berisi 1 bintang, baris ke-2 berisi 2 bintang, dan seterusnya.

#include <iostream>
using namespace std;

int main()
{
    int n = 5;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

Hasil output:

*
**
***
****
*****

Penjelasan:

  1. int n = 5; — tinggi segitiga (jumlah baris). Ubah nilainya untuk memperbesar/kecilkan segitiga.
  2. for (int i = 1; i <= n; i++) — outer loop: membuat 5 baris (i = 1 sampai 5).
  3. for (int j = 1; j <= i; j++) — inner loop: mencetak bintang sebanyak nilai i (baris ke-1 → 1 bintang, baris ke-3 → 3 bintang).
  4. cout << endl; — pindah ke baris baru setelah inner loop selesai.

2. Segitiga Bintang Siku-Siku (Kanan)

Sama seperti pola pertama, tapi rata di sisi kanan — ditambahkan spasi di kiri setiap baris.

#include <iostream>
using namespace std;

int main()
{
    int n = 5;
    for (int i = 1; i <= n; i++) {
        // cetak spasi: makin ke bawah makin sedikit
        for (int j = i; j < n; j++) {
            cout << " ";
        }
        // cetak bintang sesuai nomor baris
        for (int k = 1; k <= i; k++) {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

Hasil output:

    *
   **
  ***
 ****
*****

Penjelasan: inner loop pertama (j = i; j < n) mencetak spasi — baris ke-1 dapat 4 spasi, baris ke-5 dapat 0 spasi. Setelah spasi, inner loop kedua mencetak bintang sebanyak nomor baris.

3. Segitiga Bintang Piramida

Pola piramida adalah yang paling sering dicari. Jumlah bintang mengikuti rumus 2*i - 1, sehingga setiap baris bertambah 2 bintang dan posisinya simetris di tengah.

#include <iostream>
using namespace std;

int main()
{
    int n = 5;
    for (int i = 1; i <= n; i++) {
        // spasi sebelum bintang
        for (int j = i; j < n; j++) {
            cout << " ";
        }
        // bintang: rumus 2*i - 1
        for (int k = 1; k <= (2 * i - 1); k++) {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

Hasil output:

    *
   ***
  *****
 *******
*********

Penjelasan:

  1. Spasi dicetak n - i kali di setiap baris (baris 1 → 4 spasi, baris 5 → 0 spasi).
  2. Bintang dicetak 2*i - 1 kali: baris 1 → 1 bintang, baris 2 → 3 bintang, baris 5 → 9 bintang.

4. Segitiga Bintang Terbalik

Balik arah perulangan: mulai dari n menurun ke 1.

#include <iostream>
using namespace std;

int main()
{
    int n = 5;
    for (int i = n; i >= 1; i--) {
        for (int j = 1; j <= i; j++) {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

Hasil output:

*****
****
***
**
*

Penjelasan: bedanya hanya pada outer loop — i dimulai dari n dan dikurangi (i--) sampai 1. Baris pertama mencetak 5 bintang, baris terakhir 1 bintang.

5. Segitiga Angka C++

Varian segitiga bintang yang dicetak dengan angka alih-alih bintang — melatih logika variabel di dalam perulangan.

#include <iostream>
using namespace std;

int main()
{
    int n = 5;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            cout << j << " ";
        }
        cout << endl;
    }
    return 0;
}

Hasil output:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Penjelasan: inner loop mencetak nilai j (yang berjalan dari 1 sampai i) diikuti spasi. Ganti cout << j dengan cout << i untuk mendapatkan pola angka yang berulang (1, 22, 333, …).

Variasi: Menggunakan while dan do-while

Semua pola di atas bisa ditulis dengan while atau do-while. Contoh segitiga siku-siku dengan while:

#include <iostream>
using namespace std;

int main()
{
    int n = 5, i = 1, j;
    while (i <= n) {
        j = 1;
        while (j <= i) {
            cout << "*";
            j++;
        }
        cout << endl;
        i++;
    }
    return 0;
}

Hasilnya sama persis dengan pola pertama — tinggal sesuaikan sintaks sesuai gaya penulisan yang kamu pakai.

Kesalahan Umum yang Sering Terjadi

  1. Lupa titik koma — setiap statement di C++ harus diakhiri ;.
  2. Lupa menambahkan cout << endl; — tanpa ini, semua bintang tercetak dalam satu baris.
  3. Kesalahan batas perulangan — gunakan <= atau < dengan konsisten; j <= i dan j < i+1 sama saja.
  4. Tidak menginisialisasi variabel — variabel lokal tidak otomatis bernilai 0.
  5. Lupa return 0; — fungsi main() bertipe int dan wajib mengembalikan nilai.

Kesimpulan

Program segitiga bintang C++ adalah latihan terbaik untuk memahami perulangan bersarang. Dari 5 pola di atas — siku-siku kiri, siku-siku kanan, piramida, terbalik, dan angka — kamu sudah menguasai logika dasar yang bisa dikembangkan ke pola apa pun: belah ketupat, jam pasir, hingga pola huruf.

Materi terkait yang bisa kamu pelajari selanjutnya:

Sigit Nurhanafi avatar
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.