Minggu, 26 Oktober 2014

Kendali Program C++

Setelah sekian lama jari - jemariku tak 'menari' unuk menulis di blog ini. Akhirnya saya kembali lagi untuk menulis artikel dengan sangat terpaksa karena tugas di kampus. -_- Jadi ceritanya, sang bapak dosen yang masih muda itu memberi sebuah tugas untuk merangkum materi pada mata kuliah 'Pemograman Terstruktur' yang materinya tentang bahasa pemograman C++. Dimana si mahasiswa boleh memilih materi yang akan dirangkum dari beberapa referensi dan kemudian ditulis pada blog milik mahasiswa masing - masing.

Oke deh, berkaitan dengan hal tersebut saya akan membahas tentang materi 'Kendali Program pada C++'. Sebuah program tentunya tidak terbatas pada instruksi terurut saja. Namun juga memiliki beberapa keputusan yang akan bermuara untuk melanjutkan bagaimana sebuah program nantinya akan berjalan. Atau ketika kita bermain game dan kemudian kita kalah, maka kita akan diberi kesempatan untuk mengulangi kembali permainan pada game tersebut atau tidak. Begitulah contoh dari kendali program.

Dalam hal - hal tersebut disebut dengan proses terjadinya percabangan, pengulangan, dan pemberi keputusan pada sebuah program. Untuk memenuhi kebutuhan tersebut C++ memiliki pernyataan - pernyataan yang dapat mengatasi kebutuhan tersebut. Berikut berbagai bentuk pernyataan tersebut:

1. FOR
Pernyataan FOR digunakan untuk melakukan perulangan pada sebuah operasi dengan cara melakukan pemeriksaan terlebih dahulu sebuah proses yang akan dijalankan.


Bentuk umum dari pernyataan FOR :

for (ekpresi1;ekpresi2;ekpresi3)
       Pernyataan;

Dimana:
  • Ekspresi 1 dipakai untuk inisialisasi dari variabel yang dipakai untuk mengontrol ulangan eksekusi dari blok pernyataan yang ada di dalam pernyataan FOR ---> nilai awal dari pengulangan.
  • Ekspresi 2 dipakai untuk menyatakan suatu kondisi, eksekusi dari blok pernyataan yang ada di dalam pernyataan for akan diulang bila kondisi menghasilkan nilai true.
  • Ekspresi 3 dipakai untuk menambah/mengurangi nilai variabel yang dipakai untu mengontrol eksekusi dari blok pernyataan yang ada di dalam pernyataan FOR.
Berikut contoh penulisan kode dar pernyataan FOR:

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
     int nilai;
     clrscr();
     for(nilai=1;nilai<=10;nilai++)
     cout<<nilai;
     getch();
}

Nantinya hasil Output script diatas berupa keluaran angka 1-10 secara berurutan :
1 2 3 4 5 6 7 8 9 10

Pada beberapa program tertentu, kadang diperlukan suatu proses yang berulang dan di dalam perulangan tersebut juga harus dilakukan proses pengulangan. Pernyataan ini disebut 'NESTED FOR' atau FOR dalam FOR. Berikut Bentuk umum dari NESTED FOR:

for(kondisi 1)
     {
      for(Kondisi 2)
        {
          Pernyataan;
       }
    }

Berikut contoh penulisan kode menggunakan NESTED FOR:

//Program Sederhana Dengan Nested FOR
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
     int x, y;
     clrscr();
     for(x=1;x<=10;x++)
          {
          printf("\n");
          for(y=x;y<=10;y++)
          cout<<x<<" ";
         }
     getch();
}

Dan ini adalah hasil dari kode program di atas ketika kita melakukan eksekusi:

1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6
7 7 7 7
8 8 8
9 9
10

2. WHILE

Pernyataan WHILE digunakan untuk mengulang eksekusi dari suatu blok pernyataan yang jumlah
ulangannya tergantung dari kondisi yang diberikan, sejauh kondisi true.


Maka ulangan eksekusi dari blok tersebut terus dilakukan. Bentuk umum dari pernyataan WHILE adalah sebagai berikut:


while(ekspresi)
{
pernyataan;
}
  • ekspresi merupakan ekspresi logika untuk menentukan kapan berhentinya perulangan.
  • pernyataan  merupakan hasil yang akan di tampilkan di layar, jika atau selama ekspresi masih memenuhi.
Berikut adalah contoh penulisan kode dari pernyataan WHILE:

#include<iostream>

using namespace std;

int main()

{

        
       int n;
     cout <<"Berikan bilangan awal : ";
     cin>> n;

     while(n>0)
     {
       cout<<n<<" ,";
       n--;
     }
     cout<<" selesai";
     endl (cout);

     system("pause");
     return 0;
}

Dan gambar di bawah ini adalah hasil dari kode program di atas ketika kita melakukan eksekusi:


Pebedaan dai perulangan WHILE dengan perulangan FOR adalah perulangan while harus berhati - hati karena nilai awal dan nilai pengulangan harus didefinisikan sendiri dan tempat nilai awal dan nilai pengulangan tidak bersifat tetap dan bisa berbeda-beda setiap program.

3. DO - WHILE
Pernyataan DO - WHILE digunakan untuk mengulang eksekusi dari suatu blok pernyataan yang jumlah ulangannya tergantung dari kondisi yang diberikan sejauh kondisi true.



Maka ulangan eksekusi dari blok tersebut terus dilakukan. Bentuk umum dari pernyataan DO - WHILE adalah sebagai berikut :

do
{
pernyataan;
}
while(ekspresi);
  • do akan di eksekusi sekali terlebih dahulu dan menjalankan pernyataan yang ada di dalamnya
  • pernyataan merupakan suatu hasil yang akan di tampilkan di layar, jika atau selama ekspresi masih memenuhi.
  • while(ekspresi) merupakan bentuk kondisi dari perulangan. Pada bagian ini lah compiler akan membandingkan kondisi. Jika kondisi masih bernilai true, maka kembali ke do dan laksanakan pernyataan, kemudian di bandingkan lagi ke while(ekspresi), jika kondisi bernilai false, maka perulangan berhenti dan lanjut ke proses berikutnya.
Berikut adalah contoh penulisan kode dari pernyataan DO - WHILE :
#include<iostream>
using namespace std;
main(unsigned long x)
{
       do
     {
     std::cout << "Berikan bilangan (0 untuk akhiri) : ";
     std::cin >> x;
     std::cout << "Bilangan yang anda berikan : "<<x;
     endl (std::cout);
     }
     while(x!=0);
     system("pause");
     return 0;
}
Dan gambar di bawah ini adalah hasil dari kode program di atas ketika kita melakukan eksekusi:
Perbedaan perulangan WHILE dengan Perulangan DO - WHILE adalah pada perulangan WHILE, syarat dilihat terlebih dahulu kemudian mengerjakan pernyataan. Sedangkan pada perulangan DO - WHILE pernyataan dikerjakan terlebih dahulu kemudian melihat syaratnya.
3. IF
Pernyataan IF digunakan untuk menentukan jalannya sebuah program ketika menemui dua pernyataan. Jika kondisi sesuai dengan syarat yang di tentukan, maka program akan menjalankan pernyataan yang pertama. Namun apabila kondisi tidak sesuai dengan syarat yang ditentukan, maka program akan menjalankan pernyataan yang kedua. Pernyataan IF memiliki beberapa bentuk yaitu:
  1. if
  2. if .. else
  3. if .. else if (if bertingkat)
Berikut bentuk umumnya:
Berikut adalah contoh penulisan kode dari pernyataan IF:

#include<iostream>
using namespace std;
int main()
{
      int a, b;
     
      cout << "Berikan Bilangan Pertama : ";
      cin >> a;
      cout << "Berikan Bilangan Kedua : ";
      cin >> b;
      
      if(a>b && a%2 == 0 && b%2 == 0)
      {
      cout <<a<<" lebih besar dari  "<<b<<" dan "<<a<<","
      cout <<b<<" adalah bilangan bulat"<<endl;
      }
      if(a>b && a%2 != 0 && b%2 != 0){
      cout <<a<<" lebih besar dari  "<<b<<" dan "<<a<<","
      <<b<<" adalah bilangan ganjil"<<endl;
      }
      else if(a>b && a%2 == 0 && b%2 != 0){
      cout <<a<<" lebih besar dari  "<<b<<" dan "<<a<<"
      bilangan genap, "<<b<<" bilangan ganjil"<<endl;
      }
      else if(a>b && a%2 != 0 && b%2 == 0){
      cout <<a<<" lebih besar dari  "<<b<<" dan "
      <<a<<" bilangan ganjil, "<<b<<" bilangan genap"<<endl;
      }
      
      else if(a<b && a%2 == 0 && b%2 == 0){
      cout <<a<<" lebih kecil dari  "<<b<<" dan "<<a<<", "
      <<b<<" adalah bilangan genap"<<endl;
      }
      if(a<b && a%2 != 0 && b%2 != 0){
      cout <<a<<" lebih kecil dari  "<<b<<" dan "<<a<<","
      <<b<<" adalah bilangan ganjil"<<endl;
      }
      else if(a<b && a%2 == 0 && b%2 != 0){
      cout <<a<<" lebih kecil dari  "<<b<<" dan "<<a<<"
      bilangan genap, "<<b<<" bilangan ganjil"<<endl;
      }
      else if(a<b && a%2 != 0 && b%2 == 0){
      cout <<a<<" lebih kecil dari  "<<b<<" dan "<<a<<"
      bilangan ganjil, "<<b<<" bilangan genap"<<endl;
      }
      else if(a==b){
      cout <<a<<" bernilai sama dengan "<<b<<endl;
      }
      else
      {
            cout<<endl;
        }
      system("pause");
      return 0;
}
Dan gambar di bawah ini adalah hasil dari kode program di atas ketika kita melakukan eksekusi:
                   
 4. SWITCH - CASE

Bentuk dari SWITCH - CASE merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan SWITCH - CASE ini memiliki kegunaan sama seperti IF - ELSE bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe karakter atau integer. Bentuk umumya sebagai berikut:
       
    switch (ekspresi)
{
  case (konstanta_1) :
     statement;
     break;
  case (konstanta_n) :
     statement;
     break;
  default :
     statement;
}
  • Ekspresi di eksekusi sekali.
  • Nilai dari ekspresi di bandingkan dengan nilai pada setiap struktur case.
  • Break digunakan untuk mencegah pengeksekusian ke case berikutnya.
  • Default digunakan apabila nilai dari ekspresi tidak ada yang sama dengan nilai diantara struktur case yang tersedia.
 Berikut adalah contoh penulisan kode dari pernyataan SWITCH - CASE:
#include<iostream>
using namespace std;
int main()
{
     int angka;
     cout << "Berikan Angka : ";
     cin >> angka;
     cout<<"\n";
     switch(angka)
     {
     case 1 :
            cout <<"Bulan Januari"<<endl;
            break;
     case 2 :
            cout <<"Bulan Februari"<<endl;
            break;
     case 3 :
            cout <<"Bulan Maret"<<endl;
            break;
     case 4 :
            cout <<"Bulan April"<<endl;
            break;
     case 5 :
            cout <<"Bulan Mei"<<endl;
            break;
     case 6 :
            cout <<"Bulan Juni"<<endl;
            break;
     case 7 :
            cout <<"Bulan Juli"<<endl;
            break;
     case 8 :
            cout <<"Bulan Agustus"<<endl;
            break;
     case 9 :
            cout <<"Bulan September"<<endl;
            break;
     case 10 :
            cout <<"Bulan Oktober"<<endl;
            break;
     case 11 :
            cout <<"Bulan November"<<endl;
            break;
     case 12 :
            cout <<"Bulan Desember"<<endl;
            break;
     default :
            cout <<"Angka tidak sesuai"<<endl;
    }
    cout <<endl;
    system("pause");
    return 0;
}
Dan gambar di bawah ini adalah hasil dari kode program di atas ketika kita melakukan eksekusi:
5. BREAK
Pernyataan BREAK berfungsi untuk keluar dari struktur perulangan (loop). Jika pernyataan BREAK
dikerjakan, maka eksekusi akan dilanjutkan ke pernyataan yang terletak sesudah akhir dari badan 
perulangan (loop). BREAK juga dapat digunakan untuk mengakhiri infinite loop, atau untuk
menyebabkan loop selesai sebelum saatnya. Contoh:
  1. // contoh perulangan break
  2. #include <iostream.h>
  3. int main ()
  4. {
  5.   int nil;
  6.   for (nil=7; nil>0; nil--) {
  7.     cout << nil << ", ";
  8.     if (nil==3)
  9.     {
  10.       cout << " break.";
  11.       break;
  12.     }
  13.   }
  14.   return 0;
  15. }
Dan inilah hasil dari kode program diatas saat kita melakukan eksekusi:
7, 6, 5, 4, 3, break.
6. CONTNUE
Pernyataan CONTNUE digunakan untuk mangarahkan 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:
  1. // contoh perulangan continue
  2. #include <iostream.h>
  3. int main ()
  4. {
  5.   for (int nilai=10; nilai>0; nilai--) {
  6.     if (n==5)
  7.     continue;
  8.     cout << nilai << ", ";
  9.   }
  10.   cout << "PROGRAM C++";
  11.   return 0;
  12. }
Dan inilah hasil dari kode program diatas saat kita melakukan eksekusi:
10, 9, 8, 7, 6, 4, 3, 2, 1, PROGRAM  C++
Itulah beberapa pernyataan tentang kendali program yang biasa digunakan pada bahasa pemograman 
C++. Semoga bermanfaat!