Minggu, 20 November 2016

Perulangan

      Operasi perulangan selalu dijumpai didalam bahasa pemrograman, disini akan dibahasa beberapa perintah perulangan diantaranya.
5.1. Pernyataan for
Perulangan yang pertama adalah for. Bentuk umum pernyataan for sebagai berikut :


Bila pernyataan didalam for lebih dari satu maka pernyataan-pernyataan tersebut harus diletakan didalam tanda kurung.


Kegunaan dari masing-masing argumen for diatas adalah :

  • Inisialisasi: merupakan bagian untuk memberikan nilai awal untuk variabel-variabel tertentu.
  • Syarat Pengulangan: memegang kontrol terhadap pengulangan, karena bagian ini yang akan menentukan suatu perulangan diteruskan atau dihentikan.
  • Pengubah Nilai Pencacah: mengatur kenaikan atau penurunan nilai pencacah.

Contoh :
Sebagai contoh program untuk mencetak bilangan dari 1 hingga 10 secara menaik, secara menurun dan menampilkan bilangan ganjil, sebagai berikut:
Contoh-1
/* --------------------------- */
/* Program for - bilangan naik */
/* --------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
for(a = 1; a <= 10; ++a)
cout>>a;
getch( );
}
Output yang akan dihasilkan, dari program contoh-1 diatas adalah :

Gambar 5. 1 Hasil Contoh 1
Contoh-2
/* ---------------------------- */
/* Program for - bilangan turun */
/* ---------------------------- */
# include <stdio.h>
# include <conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
for(a = 10; a >= 1; --a)
cout<<a;
getch( );
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :

Gambar 5. 2 Hasil Contoh 2
Contoh-3 
/* ----------------------------- */
/* Program for - bilangan ganjil */
/* ----------------------------- */
#include <stdio.h>
#include <conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
for(a = 1; a <= 10; a+=2)
cout<<a;
getch( );
}
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :

Gambar 5. 3 Hasil Contoh 3
5.1.1. Pernyataan nested - for
Pernyataaan Nested for adalah suatu perulangan for didalam perulangan for yang lainnya. Bentuk umum pernyataan Nested for sebagai berikut
Contoh-4
/* ------------------------- */
/* Program for - Nested for */
/* ------------------------- */
#include<stdio.h>
#include<conio.h>
main( )
{
int a, b;
clrscr( );
for(a = 1; a <= 5; a++)
{
printf("\n");
for(b = a; b <= 5; b++)
printf(" %d ",a);
}
getch();
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :


Gambar 5. 4 Hasil Contoh 5
5.1.2. Perulangan Tidak Berhingga
Perulangan tak berhingga merupakan perulangan ( loop ) yang tak pernah berhenti atau mengulang terus, hal ini sering terjadi disebabkan adanya kesalahan penanganan kondisi yang dipakai untuk keluar dari loop.
Sebagai contoh, jika penulisan perintah sebagai berikut:
Contoh-5 
/* ------------------------- */
/* Program for Tdk Berhingga */
/* ------------------------- */
#include<stdio.h>
#include<conio.h>
main( )
{
int bil;
clrscr( );
for (bil = 60; bil >=10; bil++)
printf("%d", bil);
getch( );
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :

Gambar 5. 4 Hasil Contoh 4

Pada pernyataan ini tidak akan berhenti untuk menampilkan bilangan menurun, kesalahan terjadi pada pengubah nilai pencacah, seharusnya penulisan yang benar berupa
                 bil - -
Akan tetapi yang ditulis adalah :
                 bil ++
Oleh karena kondisi bil >= 1 selalu bernilai benar ( karena bil bernilai 6), maka pernyataan
                 printf("%d", bil);
akan terus dijalankan.
Jika terjadi hal semacam ini, untuk menghentikan proses yang terus menerus semacam ini denan menekan tombol CTRL – PAUSE atau CTRL – BREAK.

5.2. Pernyataan goto
Pernyataan goto merupakan instruksi untuk mengarahkan eksekusi program ke-pernyataan yang diawali dengan suatu label. Label merupakan suatu pengenal (identifier) yang diikuti dengan tanda titik dua ( : ). Bentuk pemakaian goto sebagai berikut:




Contoh Penggunaan goto, dapat dilihat pada program berikut:
Contoh-6
/* ------------------------------ */
/* Program dengan pernyataan goto */
/* ------------------------------ */
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main( )
{
int a, b;
char lagi;
atas: // deklarasi label
clrscr( );
cout>>"Masukkan Bilangan = "; cin<<a;
b = a % 2;
printf("Nilai %d %% 2 adalah = %d",a, b);
printf("\n\nIngin Hitung Lagi [Y/T] : ");
lagi = getche() ;
if (lagi == 'Y' || lagi == 'y')
goto atas; // penggunaan label
getch( );
}
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :

Gambar 5. 5 Hasil Contoh 6

5.3. Pernyataan while
Pernyataan perulangan while merupakan instruksi perulangan yang mirip dengan perulangan for. Bentuk perulangan while dikendalikan oleh syarat tertentu, yaitu perulangan akan terus dilaksanakan selama syarat tersebut terpenuhi.
Bentuk umum perulangan while, sebagai berikut:
Bentuk umum perulangan while, dengan lebih dari perintah / pernyataan, sebagai berikut:
Contoh-7 
/* ------------------- */
/* Program while01.cpp */
/* ------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=1;
clrscr( );
while(bil<=10)
{
printf(" %d ",bil);
++bil;
}
getch( );
}
Output yang akan dihasilkan, dari program contoh-9 diatas adalah:

Gambar 5. 6 Hasil Contoh 7
Contoh-8 
/* ------------------- */
/* Program while02.cpp */
/* ------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=2;
clrscr( );
while(bil<=10)
{
printf(" %d ",bil);
bil+=2;
}
getch( );
}
Output yang akan dihasilkan, dari program contoh-10 diatas adalah :
Gambar 5. 7 Hasil Contoh 8
5.4. Pernyataan do - while
Pernyataan perulangan do - while merupakan bentuk perulangan yang melaksanakan perulangan terlebih dahulu dan pengujian perulangan dilakukan dibelakang.
Bentuk umum perulangan do - while, sebagai berikut :
Bentuk umum perulangan do - while, dengan lebih dari perintah / pernyataan, sebagai berikut:
Contoh-9 
/* ------------------ */
/* Program do - while */
/* ------------------ */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=2;
clrscr( );
do
{
printf(" %d ",bil);
bil+=2;
}
while(bil<=10);
getch( );
}
Output yang akan dihasilkan, dari program contoh-9 diatas adalah :
Gambar 5. 8 Hasil Contoh 9
5.5. Pernyataan break
Pernyataan break telah dibahas pada pernyataan pengambilan keputusan switch. Pernyataan break ini berfungsi untuk keluar dari struktur switch. Selain itu pernyataan break berfungsi keluar dari perulangan ( for, while dan do-while ). Jika pernyataan break dikerjakan, maka eksekusi akan dilanjutkan ke pernyataan yang terletak sesudah akhir dari badan perulangan ( loop ).
Contoh-10 
/* ------------------------------- */
/* Program do - while dengan break */
/* ------------------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil = 1;
clrscr( );
do
{
if (bil >= 6)
break;
printf(" %d ",bil);
}
while(bil++);
getch( );
}
Output yang akan dihasilkan, dari program contoh-10 diatas adalah :

Gambar 5. 9 Hasil Contoh 10
Contoh-11 
/* ----------------------------- */
/* Perulangan FOR dengan break; */
/* ----------------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int a=3, b=2, c=1, bil;
clrscr( );
printf("Bil-A | Bil-B | Bil-C\n");
printf("-------------------------");
for(bil=1; bil<=10; ++bil)
{
a+=b; b+=c; c+=2;
printf("\n%d \t| %d \t| %d",a, b, c);
if(c==13)
break;
}
getche( );
}
Output yang akan dihasilkan, dari program contoh-11 diatas adalah :

Gambar 5. 10 Hasil Contoh 11
5.6. Pernyataan continue
Pernyataan continue digunakan untuk mengarahkan eksekusi ke iterasi (proses) berikutnya pada loop yang sama, dengan kata lain mengembalikan proses yang sedang dilaksanakan ke-awal loop lagi, tanpa menjalankan sisa perintah dalam loop tersebut.
Contoh-12 
/* ----------------------------- */
/* Perulangan FOR dengan coninue */
/* ----------------------------- */
#include <stdio.h>
#include <conio.h>
main( )
{
int bil;
clrscr( );
for(bil=1; bil<=10; ++bil)
{
if(bil==6)
continue;
printf(" %d ",bil);
}
getch( );
}
Output yang akan dihasilkan, dari program contoh-12 diatas adalah :

Gambar 5. 11 Hasil Contoh 12