Struktur Kontrol


Struktur Kontrol
Sebuah program biasanya tidak terbatas hanya pada intruksi yang terurut saja, tetapi juga memungkinkan terjadinya percabangan, perulangan dan pengambilan keputusan. Untuk mengatasi kebutuhan itu C++ menyediakan struktur kontrol yang dapat menangani hal-hal tersebut.

Untuk membahas hal tersebut diatas, akan ditemui istilah block of instructions. Blok instruksi adalah sekumpulan instruksi yang dibatasi dengan tanda semicolon (;) tetapi dikelompokan dalam satu blok yang dibatasi dengan kurung kurawal { }.

Struktur Kondisional : if and else
Digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi, sintaks:

if (condition) statement

condition merupakan ekspresi yang dievaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya.

Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

if (x == 100)
cout << "x is 100";

Jika ada lebih dari satu instruksi yang akan dijalankan maka harus dibuat dalam blok instruksi dengan menggunakan tanda kurung kurawal { }:
if (x == 100)
{
cout << "x is ";
cout << x;
}
Dapat juga menggunakan keyword else, jika kondisi tidak terpenuhi. Penulisannya digabungkan dengan if :
if (condition) statement1 else statement2

Contoh :
if (x == 100)
cout << "x is 100";
else
cout << "x is not 100";
Akan tercetak x is 100 jika nilai x adalah 100, jika tidak akan tercetak x is not 100.

Contoh :
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0"

Struktur perulangan (loops)
Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.
The while loop.
Sintaks :
while (expression) statement
Fungsi dari statement diatas adalah mengulang statement jika expression bernilai true.
Contoh :
// custom countdown using while
#include <iostream.h>
int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;
while (n>0) {
cout << n << ", ";
--n;
}
cout << "FIRE!";
return 0;
}
Output :
Enter the starting number > 8
8, 7, 6, 5, 4, 3, 2, 1, FIRE!

Algoritma program dimulai dari main :
1. User meng-input nilai untuk n.
2. Instrukti while mengevaluasi apakah (n>0). Ada dua kemungkinan :
true: meng-eksekusi statement (step 3,)
false: melompati statement. lanjut ke step 5..
3.Mengeksekusi statement : cout << n << ", ";
--n;
(Menampilkan n di layar dan mengurangi n dengan 1).
4. Akhir dari blok. kembali ke step 2.
5. lanjut menuju program setelah blok. Cetak : FIRE! dan program berakhir.

The do-while loop.
Format:
do statement while (condition);
Secara fungsional, hampir sama dengan while loop, hanya saja condition dalam do-while
dievaluasi setelah eksekusi statement , dengan kata lain, sedikitnya satu kali eksekusi statement
walaupun kondisi tidak terpenuhi. Contoh :
// number echoer
#include <iostream.h>
int main ()
{
unsigned long n;
do {
cout << "Enter number (0 to end): ";
cin >> n;
cout << "You entered: " << n << "\n";
} while (n != 0);
return 0;
}
Output :
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0

The for loop.
Format :
for (initialization; condition; increase) statement;
Fungsinya akan mengulang statement jika condition bernilai benar. Sama seperti while loop.,
hanya saja for memungkinkan untuk memberikan instruksi initialization dan intruksi increase,
sehingga dapat menampilkan loop dengan counter.
Algoritma perulangan for :
1. initialization, digunakan untuk memberikan nilai awal untuk variable counter. Dieksekusi
hanya sekali.
2. condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan
statement diabaikan
3. statement, dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda
{ } ).
4. increase, dieksekusi kemudian algoritma kembali ke step 2.
Contoh :
// countdown using a for loop
#include <iostream.h>
int main ()
{
for (int n=10; n>0; n--) {
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!

Initialization dan increase bersifat optional. Sehingga dapat dituliskan : for (;n<10;) untuk for tanpa initialization dan increase; atau for (;n<10;n++) untuk for dengan increase tetapi tanpa initialization. Dengan operator koma (,) kita dapat mendeklarasikan lebih dari satu instruksi pada bagian manapun termasuk dalam loop for, contoh :
for ( n=0, i=100 ; n!=i ; n++, i-- )
{
// whatever here...
}
Loop diatas akan meng-eksekusi sebanyak 50 kali :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEqShxTd6Fl_JUlmrJ0sPtovPeIhWXVSp-FjCePDfnMSXo2CIsnF-Q7GtHIclw9XH84YdNRDCcx6JiJ_OaurhrHW-6ZbSB9w-66dH8QIo-DT6UPrCahj5m4ewk31RcPAlROrxNChot_k/s1600/loop.jpg
nilai awal n = 0 dan i = 100, dengan kondisi (n!=i) (yaitu n tidak sama dengan i). Karena n mengalami penambahan 1 dan i mengalami pengurangan 1, maka kondisi loop akan salah setelah loop yang ke-50, yaitu ketika n dan i bernilai 50.

Kontrol Percabangan (Bifurcation) dan Lompatan (jumps)
Instruksi break
Dengan menggunakan instruksi break, program akan keluar dari loop walaupun kondisi untuk berakhirnya loop belum terpenuhi. Dapat digunakan untuk mengakhiri infinite loop, atau untuk menyebabkan loop selesai sebelum saatnya, contoh :
// break loop example
#include <iostream.h>
int main ()
{
int n;
for (n=10; n>0; n--) {
cout << n << ", ";
if (n==3)
{
cout << "countdown aborted!";
break;
}
}
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, countdown aborted!

Instruksi continue
Instruksi continue menyebabkan program akan melewati instruksi selanjutnya hingga akhir blok dalam loop. Atau dengan kata lain langsung melompat ke iterasi selanjutny. Contoh berikut akan melewati angka 5 dalam hitungan mundur :
// break loop example
#include <iostream.h>
int main ()
{
for (int n=10; n>0; n--) {
if (n==5) continue;
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 4, 3, 2, 1, FIRE!

Instruksi goto
Menyebabkan lompatan dalam program. Tujuan dari lompatan diidentifikasikan dengan label,
yang berisikan argumen-argumen. penulisan label diikuti dengan tanda colon (:). Contoh :
// goto loop example
#include <iostream.h>
int main ()
{
int n=10;
loop:
cout << n << ", ";
n--;
if (n>0) goto loop;
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!

Struktur Seleksi : 
switch.
Instruksi switch digunakan untuk membandingkan beberapa nilai konstan yang mungkin untuk sebuah ekspresi, hampir sama dengan if dan else if. Bentuk umumnya :
switch (expression) {
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
default:
default block of instructions
}

switch meng-evaluasi expression dan memeriksa apakah equivalen dengan constant1, jika ya, maka akan meng-eksekusi block of instructions 1 sampai terbaca keyword break, kemudian program akan lompat ke akhir dari stuktur selektif switch. Jika expression tidak sama dengan constant1, maka akan diperiksa apakah expression equivalen dengan constant2. jika ya, maka akan dieksekusi block of instructions 2 sampai terbaca break. Begitu seterusnya, jika tidak ada satupun konstanta yang sesuai maka akan mengeksekusi
default:
contoh :
switch example
switch (x) {
case 1:
cout << "x is 1";
break;
case 2:
cout << "x is 2";
break;
default:
cout << "value of x unknown";
}
if-else equivalent
if (x == 1) {
cout << "x is 1";
}
else if (x == 2) {
cout << "x is 2";
}
else {
cout << "value of x unknown";
}


Referensi: 
     Andri Kristanto. 2003. “Struktur Data dengan C++”. Yogyakarta: Graha Ilmu. 2. Budi Sutedjo, Michael A.N. 2000. “Algoritma dan Teknik Pemrograman”. Yogyakarta: ANDI OFFSET. 3. Fathul Wahid. 2004. “Dasar-Dasar Algoritma dan Pemrograman”. Yogyakarta: ANDI OFFSET. 4. Heri Sismoro, Kusrini Iskandar. 2004. ”Struktur Data dan Pemrograman dengan Pascal”. Yogyakarta:ANDI OFFSET. 5. Insap Santosa. 2004. ”Struktur Data Menggunakan Turbo Pascal 6.0”. Yogyakarta: ANDI OFFSET. 6. Rinaldi Munir, Leoni Lidya. 2002.
  





struktur Kontrol : Percabangan
Algoritma Percabangan


Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai
percabangan/pemilihan atau keputusan. Berikut beberapa kondisi percabangan :

1.      Penulisan percabangan 1 kondisi
if then
pernyataan
penjelasan :
Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak, makapernyataan tidak dikerjakan dan proses langsung keluar dari percabangan

Flowchart :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPVfwUsNsn9ZH9upJLmRbcs98VAmQjfNLw-87rVdSvYXPjj545TfL-x6Jzq7ZHX_dnhyphenhyphen1_ty5Wn58yZd1-8ODz_Nvq3vp-32grV9EtNfyCglhfHLCziAGlxjBjicSqFy_L9g_VbUZlFIu/s1600/bercabangan+1+kondisi.jpg


 2.      Penulisan percabangan 2 kondisi

if then
pernyataan1
     else
pernyataan2
  
penjelasan :
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak (<kondisi> bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan2. Berbeda dengan percabangan satu kondisi, pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai salah
Flowchart :

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJCm5tKS-y0GBb7HhfVineJNQnJZscUisJn5Z_nM_wq2kzWRhpcR3c7YtuN25Wfe2_cweHTiw0ryp0UyE0MwgOrBwQHiF8av-O1JsnlkV7s8bWE_8B5RTAPJ0HbTQcyrSKHSk4V-HdqDTl/s1600/percabangan+2+kondisi.jpg


3.      Penulisan percabangan lebih dari 2 kondisi
If then
                  Pernyataan1
    else if then
                  Pernyataan2
                  ...
    else if then
Pernyataan(n)
    else
                  Pernyataan(n)
Penjelasan :
Mula-mula <kondisi1> dicek nilai kebenarannya. Jika benar, maka dikerjakanpernyataan1. Jika salah, maka dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar, maka dikerjakan pernyataan2. Jika tidak algoritma akan mengecek ke kondisi berikutnya dengan cara yang sama dengan yang sebelumnya. Terakhir, jika semua kondisi bernilai salah, maka pernyataan yang dikerjakan adalah Pernyataan(n+1).

Flowchart :

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwGk5Z4xIEpwcV1jgdHnPlE6axOFA80lHaZrm06oHdKCKPYLTUZdbumvnP_yntBBNwoVFuEL8YcCnmWHXIRpGQKv0_LEgyRTqZ5WNhBnwlIav43zXknKVP6QQpPJrTEvP1WKm3qTWepjP0/s320/percabangan+lebih+dari+2+kondisi.jpg


4.      Penulisan percabangan bersarang

If  then
      if then
                  Pernyataan1
          else
                  Pernyataan2
  else
      If
                  Pernyataan3
    else
                  Pernyataan4


Penjelasan :
Mula-mula <kondisi1> dicek nilai kebenarannya. Jika benar, maka dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar, maka dikerjakan pernyataan1. Jika tidak algoritma akan dikerjakan pernyataan2. Jika <kondisi1> tidak benar maka akan dicek nilai kebenaran . Jika <kondisi3> benar, maka dikerjakan pernyataan3. Jika tidak akan dikerjakan pernyataan4.

Flowchart :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVjeD0JpRynkCsoDqBdnMLvWW7HEaHqWWhAfGtiSMQfD3pj0hmwG6KJy4ud7mCQDsiZNLoN3F0MlzeHninlklX416fiK73ywVLZxca42gAlVi9ctmnJQeIQ_w9Q8LbXIICTqry0NJ9EwQI/s320/bersarang.jpg

truktur Kontrol Percabangan. Struktur Kontrol Pecabangan merupakan suatu algoritma program memiliki suatu kondisi yang dimana kondisi tersebutlah yang akan menentukan perintah-perintah yang akan dijalankan oleh suatu program. Perintah dalam suatu kondisi akan dijalankan ketika kondisi tersebut bernilai benar, dan sebaliknya apabila kondisi bernilai salah maka perintah didalamnya tidak akan dijalankan.
Pembahasan dan Contoh Struktur Kontrol Percabangan pada Bahasa Pemrograman C++

Ada beberapa macam Struktur Kontol Pecabangan yang ada didalam C++, yaitu :

Pecabangan if
Pecabangan if merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi. Bentuk umum penulisannya adalah sebagai berikut.

if(kondisi){
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
 int a = 10;
 int b = 7;
 if(a>=b){
  a = 7;
  b = 10;
 }
 cout<<"Nilai A : "<<a<<endl;
 cout<<"Nilai B : "<<b<<endl;
 getch();
}


Percabangan if-else
Percabangan if-else merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi yang apabila kondisi tersebut benar maka perintah yang didalamnya akan dijalankan dan apabila kondisinya salah maka ada perintah lainnya yang akan dijalankan oleh program. Bentuk umum penulisannya adalah sebagai berikut.

if(kondisi){
 statement;
}
else{
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
 int x;
 int angka = 10;
 cout<<"Angka 1 - 10"<<endl;
 cout<<"Masukan Tebakan anda : ";cin>>x;
 if(x==angka){
  cout<<"Tebakan anda benar"<<endl;
  cout<<"Selamat!";
 }
 else {
  cout<<"Maaf tebakan anda salah!";
 }
 getch();
}



Percabangan if-else if-else
Percabangan if-else if-else merupakan struktur kontrol pecabangan yang memiliki banyak kondisi. Bentuk umum penulisannya adalah sebagai berikut.

if(kondisi1){
 statement;
}
else if(kondisi2){
 statement;
}
else{
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
 int x;
 int angka = 6;
 cout<<"Angka 1 - 10"<<endl;
 cout<<"Masukan Tebakan anda : ";cin>>x;
 if(x==angka){
  cout<<"Tebakan anda benar"<<endl;
  cout<<"Selamat!";
 }
 else if(x>angka){
  cout<<"Tebakan anda terlalu besar";
 }
 else{
  cout<<"Tebakan anda terlalu kecil";
 }
 getch();
}



Percabangan switch
Percabangan switch merupakan struktur kontrol pecabangan yang juga memiliki banyak kondisi, akan tetapi kondisi dalam percabangan switch ini bertipe numerik. Default berfungsi untuk menjalankan perintah default/umum/dasar apabila kondisi tidak sesuai dengan nilai case yang ada. Bentuk umum penulisannya adalah sebagai berikut.

switch(kondisi){
 case konstanta_1:
 statement;
 break;
 case konstanta_2:
 statement;
 break;
 default:
 statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
 int nilai;
 cout<<"Masukan Nilai anda 0 - 10 : ";cin>>nilai;
 cout<<"Anda masuk kategori ";
 switch(nilai){
  case 10:
  case 9:
  cout<<"A";
  break;
  case 8:
  case 7:
  cout<<"B";
  break;
  case 6:
  case 5:
  cout<<"C";
  break;
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:
  cout<<"D";
  break;
  default:
  cout<<"nilai anda tidak masuk kategori!";
 }
 getch();
}

Itulah Pembahasan dan Contoh Struktur Kontrol Percabangan pada Bahasa Pemrograman C++. Semoga bermanfaat bagi anda. Sekian dulu dari saya dan Terima kasih sudah berkunjung.


Comments

Popular posts from this blog

Program Bulan Dev C++

Instalasi Sistem Operasi Berbasis GUI (Graphical User Interface)