Tutorial Belajar C: Cara Membuat Segitiga Bintang

Salah satu latihan algoritma yang sering dipakai adalah membuat segitiga bintang. Latihan program ini sekilas terkesan tidak berguna, karena kita hanya membuat "gambar" segitiga. Namun dibalik itu, pembuatan segitiga bintang butuh logika yang kuat.

Dalam tutorial belajar bahasa pemrograman C di Duniailkom kali ini kita akan membahasnya dengan lebih dalam.


Membuat Segitiga Bintang dengan Bahasa Pemrograman

Bagi yang pernah kuliah di jurusan IT, hampir dipastikan pernah mendapat soal untuk membuat program segitiga bintang. Meskipun tidak sama persis, tapi banyak variasi yang bisa dibuat. Contoh segitiga bintang tersebut adalah sebagai berikut:

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

Tampilannya memang sederhana, tapi butuh proses berfikir yang cukup rumit. Tugas kita adalah bagaimana membuat kode program yang akan menghasilkan tampilan segitiga diatas. Syaratnya, tidak boleh langsung menggunakan printf sebanyak 5 kali, tapi harus menggunakan perulangan.

Jika dianalisis lagi, kode program ini butuh sebuah perulangan bersarang (nested loop). Perulangan pertama untuk membuat bintang ke arah bawah, dan perulangan kedua untuk membuat bintang ke arah samping.

Agar lebih mudah dipahami, kita akan bahas secara bertahap.


Membuat Perulangan Bintang ke Arah Bawah

Langkah pertama adalah merancang sebuah perulangan yang akan menampilkan tanda bintang ke arah bawah sebanyak 5 kali. Ini bisa dibuat dengan perulangan FOR dan perintah printf:

#include <stdio.h>

int main(void)
{
  for (int i = 1; i <= 5; i++) {
    printf("* \n");
  }
  return 0;
}

Hasil kode program:

*
*
*
*
*

Tidak ada yang baru disini, hanya terdiri dari perulangan FOR dari i = 1 sampai i <=5. Untuk setiap perulangan, tampilkan tanda bintang '*' dan diikuti dengan karakter newline untuk pindah baris '\n'.

Langkah kedua adalah, saya ingin agar dalam setiap baris, bintangnya tampil sebanyak 5 kali. Tapi tidak boleh hanya langsung menjalankan perintah printf("***** \n"), tanda bintang ke samping haruslah berasal dari perulangan bersarang, atau nested loop.

Berikut kode programnya:

#include <stdio.h>

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

Hasil kode program:

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

Disini saya membuat perulangan kedua dengan variabel counter j, yang merupakan perulangan bersarang di dalam perulangan pertama dengan variabel counter i.

Perintah printf("* ") di baris 7 akan dijalankan sebanyak 25 kali, yakni hasil dari 5 * 5. Ini karena perulangan terdalam j akan dijalankan sebanyak 5 kali untuk setiap perulangan i yang juga berjalan sebanyak 5 kali, sehingga total akan di proses sebanyak 25 kali.

Jika anda masih ragu dengan konsep ini, bisa pejari sejenak Tutorial Belajar C: Cara Membuat Perulangan Bersarang (Nested Loop).

Langkah terakhir, kita akan modifikasi isi dari perulangan terdalam j, yakni bagaimana caranya agar tanda bintang bisa naik secara bertahap. Saya ingin ketika perulangan i pertama dijalankan, perulangan j hanya dijalankan 1 kali saja. Untuk perulangan i ke 2, jalankan perulangan j sebanyak 2 kali. Untuk perulangan i ke 3, jalankan perulangan j sebanyak 3 kali, dst.

Kuncinya adalah, kita harus ubah agar perulangan j mengikuti jumlah variabel i. Dan berikut kodenya:

#include <stdio.h>

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

Hasil kode program:

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

Bisakah anda menebak apa yang berbeda dengan kode kita sebelumnya? Yup, hanya modifikasi kecil di baris 6. Sekarang, kondisi akhir perulangan j adalah sampai j <= i. Artinya, perulangan j akan naik sebanyak 1 angka untuk setiap perulangan i.

Sebagai tantangan terakhir, bisakah anda memodifikasi kode program ini agar user bisa menentukan jumlah baris segitiga? Jadi di awal akan ada pertanyaan jumlah baris segitiga. Jika diinput 10, maka tinggi segitiga yang akan ditampilkan jadi 10 baris.

Baik, berikut kode programnya:

#include <stdio.h>

int main(void)
{
  int jumlah;

  printf("Input tinggi segitiga: ");
  scanf("%i",&jumlah);
  printf("\n");

  for (int i = 1; i <= jumlah; i++) {
    for (int j = 1; j <= i; j++) {
      printf("* ");
    }
    printf("\n");
  }
  return 0;
}

Contoh kode program segitiga bintang bahasa pemrograman C

Tambahannya berupa perintah scanf untuk meminta inputan dari user di baris 7 – 9.

Dalam kode program ini, inputan jumlah baris saya simpan ke dalam variabel jumlah. Variabel jumlah ini yang kemudian menjadi nilai penentu dari perulangan i di baris 11. Perulangan i akan terus berjalan sampai kondisi i <= jumlah terpenuhi.


Dalam tutorial ini kita telah membahas salah satu contoh kasus algoritma dengan bahasa pemrograman C, yakni membuat segitiga bintang.

Selain segitiga, masih banyak variasi program lain yang mirip-mirip, seperti piramida bintang, membuat layang-layang / belah ketupat, hingga membuat segitiga angka. Latihan soal ini akan kita bahas di tutorial terpisah.

19 Comments

  1. Brandalz
    08 May 19
  2. Key
    12 May 19
  3. Alvaro
    20 Jun 19
  4. Ipong monarchy
    08 Aug 19
    • Andre
      08 Aug 19
  5. PRIANGGA PRATAMA
    30 Apr 20
  6. psyyy
    29 Dec 20
  7. Azis Sultiansyah
    02 Oct 21
    • Andre
      02 Oct 21
  8. ryuji
    15 Oct 21
  9. nn
    28 Dec 21
  10. nn
    28 Dec 21
  11. laxus
    31 Dec 21
  12. Anonymous
    21 Mar 23

Add Comment

Leave a Reply to nn Cancel reply