Skip to content
21 September 2009 / Jeffrey Hermanto Halimsetiawan

Problem Solving – Latihan Soal Perulangan 3 @jenny


Input : 5
     *
    * *
   *   *
  *     *
 *********

Penyelesaian

Problem ini hampir sama dengan problem sebelumnya, namun dengan sedikit modifikasi :p

Sebelumnya beri penanda baris dan kolom terlebih dahulu, tanda spasi sengaja diganti dengan ':'
untuk memudahkan penjelasan .
  012345678
0 :::::*
1 ::::* *
2 :::*   *
3 ::*     *
4 :*********

Dimisalkan,
- variabel i adalah counter untuk penanda baris
- variabel j adalah counter untuk penanda kolom
- variabel n adalah inputan user untuk jumlah maks kolom dan baris

Algoritma Secara Singkatnya :
- cetak ':' sebanyak n-i
- i :
  ~ bernilai 0 atau n - 1, cetak '*' sebanyak 2 * i + 1
  ~ selain nilai itu :
       # ketika j bernilai 0 atau 2 * i, cetak '*'
       # ketika j bernilai selain itu, cetak ' '
- cetak '\n'
- ulangi langkah di atas hingga i == n

Source Code

#include <stdio.h>
#include <conio.h>

int main()
{
   int n,
   i,j;
   printf("Input : ");
   scanf("%d",&n);
   for (i=0;i<n;i++)
   {
       for (j=0;j < n - i;j++)
           printf(" ");
       for (j=0;j<2 * i + 1 ;j++)
       {
           if (i == 0 || i == n-1)
               printf("*");
           else
           {
               if (j == 0 || j == 2 * i)
                   printf("*");
               else
                   printf(" ");
           }
       }
       printf("\n");
   }
   getch();
   return 0;
}

Mudah kan! Semoga bisa dimengerti dan bermanfaat! :D
  1. rohan / Okt 15 2009 19:58

    *
    * *
    * * *
    * * * *
    * * * * *
    * * * *
    * * *
    * *
    *
    inputnya hrs angka ganjil trus kalau yg diinputkan angka genap atau minus ntar programnya minta input ulang… perulangan yg dipakai do while…
    cara buatnya gmn tuh mas ???
    bs tolong diajrin g??

    • Jeffrey Hermanto / Okt 16 2009 10:29

      soal ini mudah kq..

      untuk mengecek input ganjil berarti :

      int N;
      do {
      scanf(“%d”,&N);
      }
      while (N % 2 == 0);

      semisal buat contoh di atas N = 9

      buatnya dibagi jadi 2 bagian :

      BAGIAN 1 –> lakukan nested looping mulai dari 0 sampai lebih kecil dari N/2 + 1
      *
      **
      ***
      ****
      *****

      BAGIAN 2 –> lakukan nested looping dari N/2 sampai 1
      ****
      ***
      **
      *

      sisanya untuk bentuk segitiga tinggal dbentuk nested looping seperti biasa..

      semoga bermanfaat😀

      • rohan / Okt 19 2009 09:46

        makasih mas., ,. ,.

  2. foliot / Okt 24 2009 22:24

    nanya dong, kalo soal
    *
    ***
    *****
    ***
    *
    buat input n=5
    gimana y?

  3. foliot / Okt 24 2009 22:28

    ralat, soalnya
    ____*
    ___***
    __*****
    ___***
    ____*

    thx😀

    • Jeffrey Hermanto / Okt 25 2009 00:26

      Silahkan dilihat di sini !

      Semoga bermanfaat😀

  4. aryaprima / Jan 27 2010 00:48

    klo soalnya kayak gini gimana caranya?

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

    • aryaprima / Jan 27 2010 00:51

      ralat juga
      ——–*
      ——-**
      —–***
      —****
      -*****
      —****
      —-***
      ——**
      ——-*

      jadi ceritanya segitiganya kekiri.

      • Jeffrey Hermanto / Feb 1 2010 21:10

        hampir mirip dengan Segitiga

        hanya perlu dimodifikasi sedikit dengan :
        1. cetak spasi terlebih dahulu
        2. cetak bintang-nya

        :p

    • Jeffrey Hermanto / Feb 1 2010 21:07

      mudah kan, tinggal bagi segitiga nya menjadi 2 bagian, yaitu :
      Jika input : 5
      1.

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

      ~ tinggal lakukan looping i sebanyak 5 baris
      ~ kemudian di setiap barisnya lakukan cetak * sebanyak i
      ~ mudah kan😀
      2.

      ****
      ***
      **
      *
      

      ~ silahkan modifikasi sedikit dari bagian 1 nya ,

      – practice makes perfect –

  5. ai / Jun 2 2010 13:10

    contoh:input: N=5

    output:
    *
    **
    ***
    ****
    *****

    program pascal dan C nya gmn y,bt mncetak gmbar segitiga bintang sebanyak N baris,dan setiap baris ke-i berisi i buah bintang.Nilai N dibaca dr papan kunci.

    • Jeffrey Hermanto / Sep 9 2010 18:55

      Sudah serting saya jawab permasalahan seperti ini😀

      Silahkan lihat di postingan saya yang lain

      Semoga bermanfaat😀

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: