Perulangan (Looping)

di dalam program c++, terdapat 3 macam bentuk perulangan, pada praktek ini akan ditampilkan 3 teknik perulangan dengan keunggulannya

Pengulangan atau looping

  • dalam konsep pengulangan terdapat 3 perintah yang umumnya digunakan yaitu
    • For
    • While
    • Do-while
  • dari ketiga perintah diatas umumnya yang digunakan adalah While, karena
    • dengan menggunakan perintah while, bisa memecahkan semua kasus pengulangan
  • For mungkin bisa juga digunakan, karena penulisan perintahnya yang singkat
  • misalnya diinginkan mencetak angka dari 1 sampai 10
    • maka berikut adalah masing-masing kode format penulisannya
  for (i=1;i<=10;i++) {
    ...
  }

  i = 1;
  while (i<=10) {
    ...
    i = i + 1;
  }

  i = 1;
  do {
    ...
    i = i + 1;
  }
  while (i<=10);   

praktek soal looping

  • buat file baru dan beri nama contoh2.cpp
  • lakukan ketik program berikut
#include <conio.h>
#include <stdio.h>
#include <iostream>

using namespace std;

void contoh31() {
  // demo menggunakan for untuk 
  // mencetak angka dari 1 sampai bilangan yang diinputkan 
  int i,bil;


  printf("DEMO FOR, masukkan bilangan : ");scanf("%d",&bil);

  for (i=1;i<=bil;i++) {
    printf("urutan ke %d \n",i);
  }

}


void contoh32() {
  // demo menggunakan while untuk 
  // mencetak angka dari 1 sampai bilangan yang diinputkan 
  int i,bil;

  printf("DEMO WHILE, masukkan bilangan : ");scanf("%d",&bil);
  i = 1;
  while (i<=bil) {
    printf("urutan ke %d \n",i);
  i = i + 1;
  }

}

void contoh33() {
  // demo menggunakan repeat untuk 
  // mencetak angka dari 1 sampai bilangan yang diinputkan 
  // jarang digunakan 
  int i,bil;

  printf("DEMO REPEAT, masukkan bilangan : ");scanf("%d",&bil);
  i = 1;
  do {
    printf("urutan ke %d \n",i);
    i = i + 1;
  }
  while (i<=bil);  

}

void contoh34() {
  // demo menggunakan break 
  // break; keluar dari loop, walaupun hitungannya belum sampai akhir
  // continue; mengembalikan proses yang sedang dilaksanakan
  //           ke awal loop lagi, tanpa menjalankan sisa perintah
  // exit(0); keluar dari program; 
  int i,bil;

  printf("DEMO WHILE, masukkan bilangan : ");scanf("%d",&bil);
  i = 1;
  while (i<=bil) {
    printf("urutan ke %d \n",i);
    if (i == 8){
      break;
  }
  i = i + 1;
  }

}

void contoh35() {
  // demo membuat 
  // *    *
  // **  **
  // ****** 
  // **  **
  // *    *
  int b,k1,k2,k3,bil;

  printf("masukkan bilangan : ");scanf("%d",&bil);
  b = 1;
  while (b<=bil) {
  for(k1=1;k1<=b;k1++){
    printf("*");
  }
  for(k2=1;k2<=(2*bil-2*b);k2++){
    printf(" ");
  }
  for(k3=1;k3<=b;k3++){
    printf("*");
  }
    printf("\n"); // ganti baris
  b = b + 1;
  } 

  b = bil -1;
  while (b>=1) {
  for(k1=1;k1<=b;k1++){
    printf("*");
  }
  for(k2=1;k2<=(2*bil-2*b);k2++){
    printf(" ");
  }
  for(k3=1;k3<=b;k3++){
    printf("*");
  }
    printf("\n"); // ganti baris
  b = b - 1;
  }
}

void contoh36() {
  // demo membuat 
  //    *
  //   ***
  //  *****
  //   ***
  //    *
  int b,k1,k2,k3,bil;

  printf("masukkan bilangan : ");scanf("%d",&bil);

  b = 1;
  while (b<=bil) {
  for(k1=1;k1<=bil-b;k1++){       // cetak spasi
    printf(" ");
  }
  for(k2=1;k2<=(b*2-1);k2++){     // 1,3,5  = b * 2 -1
    printf("*");
  }
    printf("\n"); // ganti baris
  b = b +1 ;
  }

  b = bil-1;
  while (b>=1) {
  for(k1=1;k1<=bil-b;k1++){       // cetak spasi
    printf(" ");
  }
  for(k2=1;k2<=(b*2-1);k2++){     // 1,3,5  = b * 2 -1
    printf("*");
  }
    printf("\n"); // ganti baris
  b = b -1 ;
  }
}

void contoh38a() {
  // demo membuat segitiga sama sisi
  // bagian include dan main tolong dilengkapi sendiri
  //    *
  //   ***
  //  *****

  int b,k1,k2,k3,bil;

  cout << "Jumlah Baris: ";
  cin >> bil;
  b = 1;
  while (b<=bil) {
    for(k1=1;k1<=bil-b;k1++){       // cetak spasi
      cout << " "; 
    }
    for(k2=1;k2<=(b*2-1);k2++){     // 1,3,5  = b * 2 -1
        cout << "*";   // cetak hanya bila awal atau akhir atau baris terakhir
    }
    cout << "\n"; // ganti baris
    b = b +1 ;
  }
}

void contoh38b() {
  // demo membuat segitiga sama sisi lubang di tengah
  // bagian include dan main tolong dilengkapi sendiri
  //    *
  //   * *
  //  *   *
  // *******

  int b,k1,k2,k3,bil;

  cout << "Jumlah Baris: ";
  cin >> bil;
  b = 1;
  while (b<=bil) {
    for(k1=1;k1<=bil-b;k1++){       // cetak spasi
      cout << " "; 
    }
    for(k2=1;k2<=(b*2-1);k2++){     // 1,3,5  = b * 2 -1
      if ((k2 == 1) || (k2 == (b*2-1)) || (b==bil)) {
        cout << "*";   // cetak hanya bila awal atau akhir atau baris terakhir
      } else {
        cout << " ";
      }
    }
    cout << "\n"; // ganti baris
    b = b +1 ;
  }
}

void contoh39() {
  // demo membuat diamond lubang tengah
  // *** ***
  // **   **
  // *     *
  // 
  // *     *
  // **   **
  // *******

  int b,k1,k2,k3,bil;
  cout << "Jumlah Baris: ";
  cin >> bil;

  b = 1; // cetak diamond bagian atas
  while (b<=bil) {
    for(k1=1;k1<=bil-b;k1++){       // cetak *
      cout << "*";
    }
    for(k2=1;k2<=(b*2-1);k2++){     // 1,3,5  = b * 2 -1
      cout << " ";
    }
    for(k1=1;k1<=bil-b;k1++){       // cetak *
      cout << "*";
    }
    cout << "\n"; // ganti baris
    b = b +1 ;
  }

  b = bil-1; // cetak diamond bagian bawah
  while (b>=1) {
  for(k1=1;k1<=bil-b;k1++){       
    cout << "*";
  }
  for(k2=1;k2<=(b*2-1);k2++){     
    cout << " ";
  }
  for(k1=1;k1<=bil-b;k1++){       
    cout << "*";
  }  
    printf("\n"); // ganti baris
  b = b -1 ;
  }


}



main() {
  system("cls"); // membersihkan layar

  contoh36(); 

  getch();
  return 0;
}