Pengendalian Program


Pengendalian Program

   Apa yang dimaksud dengan pengendalian program dan mengapa program atau alur eksekusi program perlu dikendalikan? pengendalian program tidak lepas dari pedoman yang digunakan untuk mem­buat suatu program, yaitu algoritma. Hampir semua algoritma bersifat non linear, artinya tidak selalu maju selangkah demi selangkah, tetapi sering kita menjumpai , algoritma yang mencabang, meloncat ke depan, meloncat ke belakang, atau bahkan berulang. Program merupakan pengimplementasian dari algoritma yang ditulis dengan bahasa pemrograman. Dengan demikian, program juga harus dapat menencabang, meloncat, atau berulang. Untuk melakukan langkah-langkah itu, program harus dikendalikan. Bagaimana cara mengendalikannya? Caranya adalah dengan menggunakan perintah-perintah pengendalian program yang disediakan oleh bahasa pemrograman. Tiap bahasa pemrograman menyediakan fasiiitas yang berbeda untuk pengendalian program. Meskipun demikian, pada umumnya ada dua golongan pengendalian program yang disediakan oleh hampir semua bahasa pemrograman, yaitu percabangan dan perulangan. Bahasa C memiliki perintah pengendalian program yang cukup lengkap. Bahasa C memiliki tiga perintah  percabangan yaitu if.., if..else, dan switch, serta tiga perintah perulangan yaitu for, while, dan do-while. Pada bab ini akan kita bahas pengendali program pertama, yaitu perintah percabangan. Perintah percabangan sering pula pemilihan atau seleksi kondisi. Perintah ini digunakan untuk mengambil keputusan. Pada struktur percabangan atau pemilihan tidak setiap baris instruksi akan ikerjakan. Suatu baris instruksi akan dikerjakan jika memenuhi syarat. Struktur pemilihan adalah struktur program yang melakukan proses pengujian  untuk mengambil suatu keputusan atau tindakan apakah suatu baris instruksi atau blok instruksi akan dikerjakan atau tidak.           

Pengendalian program bahasa C, seperti bahasa pemrograman lainnya, dapat menggunakan instruksi if dan switch. Pada pengambilan keputusan, biasanya operator logika banyak digunakan.
                                                                                                                            
4.1. INSTRUKSI if
Perintah if digunakan untuk mewujudkan percabangan bersyarat. Di da­lam bahasa C, instruksi if mempunyai beberapa bentuk, yaitu:

1. Instruksi if tunggal

if (ekspresi) pernyataan;
if (bil%2=0) printf(”genap”)
else
  if(bil%2<>0) printf(“ganjil”);

Pengujian ekspresi seialu diapit dengan tanda kurung. ekspresi dengan menggunakan operator perbandingan akan dites nilai kebenarannya apakah benar atau salah. pemyataan bisa berupa perintah mencetak output, proses, atau gabun­gan.

2. Instruksi if dengan else

if (ekspresi) pernyataanl;

else pernyataan2;


Operator lain yang sering digunakan adalah ternary (?) yang mempunyai bentuk

( ekspresi )   ? pernyataanl  : pernyataan2;

Perintah di atas mempunyai nilai yang sama dengan perintah berikut:

(ekspresi) pernyataanl else pernyataan2;

3. Instruksi if dengan pilihan if lainnya
if(ekspresil) pernyataanl;
else if (ekspresi2) pernyataan2;
else pernyataan3;


4. Instruksi if di dalam instruksi if
  if (ekspresil) pernyataanl;
    if(ekspresi2) pernyataan2;


Contoh penggunaan perintah if adalah sebagai berikut:
/*_____________________________________ */
/* Data Terbesar dari 3 Data */
/* ____________________________ */
#include <stdio.h>
int a,b,c;
printf("Masukkan 3 buah data yang dipisahkan dengan koma”);
scanf(“%i, %i, %i”, &a, &b, &c);

a=25 b=10 c=32

if (a>b)
{

if (a>c)
    printf ("Data terbesar adalah data ke-1 yaitu °si \n",a);
else
    printf ("Data terbesar adalah data ke-3 yaitu %i\n",c);
else if (b>c)
printf ("Data terbesar adalah data ke-2 yaitu %i \n",b);
    else
 printf ("Data terbesar adalah data ke-3 yaitu %i\n",c);
}

Tampilan program:
Masukkan 3 buah data yang dipisahkan dengan koma 8,2,10
Data terbesar adalah data ke-3 yaitu 10

Cobalah juga program di bawah ini.

/* --------------------------------------------------------------*/
/* Pengelompokkan Grade                                        */
/*_________________________________________*/
#include<stdio.h> main()
{
int grade;

printf("Masukkan Nilai anda (0 s/d 100 = “);
scanf("%d",&grade); grade = 76

if(grade >= 90)
printf("Nilai Anda adalah = A\n");
else if(grade >= 80)
printf("Nilai Anda adalah = B\n");
     else if(grade >= 70)
          printf("Nilai Anda adalah = C\n");
          else if(grade >= 60)
         printf("Nilai Anda adalah = D\n");
              else printf(”Nilai anda adalah =E\n”);
}

Tampilan program:
Masukan Nilai anda       (0 s/d 100)       = 99
Anda adalah = A



Perintah if dapat menggunakan operator logika seperti contoh berikut:
/* --------------------------*/
/* Komentar Kelulusan */
/* --------------------------*/
#include <stdio.h>
main()
{
    int na;
    printf(“Masukan Nilai Angka =  “);
    scanf(“%i”, &na); na=60
    if (na>= 85)
printf("Nilai anda A. Anda layak dapat bintang\n");
else if (na>=70 && na<=84)
printf("Nilai anda B. Good ... Good ... Good\n");
if (na>=55 && na<= 69)
printf("Nilai anda C. Lumayan deh\n");
else if (na>=30 && na<= 54)
printf("Nilai anda D. Don't worry, next time better\n”)
else if (na<=29)
printf("Nilai anda E. Anda tidak lulus\n");
else printf("Nilai anda tidak dikenal");
}
Tampilan program:
Masukkan nilai angka = 88
Nilai anda A. Anda layak dapat bintang

Demikian pula contoh berikut:

/* ___________________________________ */
/*                 Konversi Nilai          */
/* ___________________________________ */
#include <stdio.h>
main()
{
char nh;

printf("Masukkan nilai huruf + “);
scanf("%c",&nh);

if (nh=='A')||(nh=='a
printf("Nilai angka = 4\n");
else if (nh=='B')|| (nh=='b')
printf("Nilai angka = 3\n");
else if (nh=='C') ||(nh== `c')
printf("Nilai angka = 2\n");
else if (nh=='D')||(nh== `d')
printf("Nilai angka = 1\n");
else if (nh=='E')||(nh=='e')
printf("Nilai angka = 0\n");
else
printf("Nilai anda tidak dikenal") %
}

Tampilan program:
Masukkan nilai huruf = A
Nilai angka = 4

     4.2 INSTRUKSI switch

Instruksi switch dirancang untuk menangani pengendalian program yang melibatkan banyak afternatif. Biasanya digunakan untuk menggantikan instruksi if- else yang bertingkat. Bentuk urnurn instruksi switch adalah:
switch (ekspresi)
{
  case item1 : pernyataan1;
               break;
  case item2 : pernyataan2;
               break;
  default : pernyataan;
            break;
}

            Berikut contoh penggunaan instruksi switch:

            /*----------------------------------------*/
     /* Pilihan Mobil                          */
     /*----------------------------------------*/
     #include <stdio.h>
     main()
     {
          int kode;
          puts(“Menentukan Pilihan : “);
          puts(”1 = BMW   2=AUDI    3=FIAT    4= VW   5=TIMOR”);
          printf(“Masukan Pilihan Anda (1 .. 5 ): “);
          scanf (“%d”, &kode);3
switch (3)
{
     case 1 :puts(“Mobil Pilihan Anda BMW”);
             break;
     case 2 :puts(“ Mobil pilihan Anda AUDI”
             break;
case 3: puts(" Mobil pilihan anda FIAT");
   break;
case 4: puts(" Mobil pilihan anda VW");
   break;
case 5: puts(" Mobil pilihan anda TIMOR");
   break;
 default:puts(" Anda belum beruntung");
}
}

Tampilan Program :

Menentukan Pilihan
1=BMW          2=AUDI         3-FIAT            4=VW 5=TIMOR
Masukan pilihan anda (1..5) : 1
Mobil Pilihan anda BMW


Apabila kita akan mencetak suatu pesan menggunakan instruksi printf, maka untuk ganti baris berikutnya kita harus menambahkan \n.Akan tetapi, apabila kita menggunakan instruksi puts, maka otomatis akan ganti ke baris berikutnya. Instruksi default digunakan untuk menjawab apabila pilihan yang diproses tidak terdapat pada ekspresi. Untuk program pilihan mobil di atas, apabila instruksi break dihapus apa akibatnya?
Pada instruksi switch, ekspresi yang digunakan harus berupa ekspresi yang operatornya = dan nilai operand di ruas kanan harus bertipe integer atau char karena tipe-tipe ini mempunyai sifat keterututan, yaitu bisa dikenai operasi predecessor dan successor. Apabila operand-nya bertipe integer, maka tidak selalu dimulai dari 1. Demikian juga bila tipenya adalah char, maka tidak selalu dimulai dari 'a', contohnya seperti di bawah ini:


/* _______________________________________  */
/*   Variasi Pemakaian Kondisi */
/* _______________________________________  */

#include<stdio.h>
main()
{
int n;
for (n=3;n<=8;n=n+l)
{
switch (n)
   {
case 3: printf("three\n");
               break;
case 4: printf("four\n");
               break;
case 5:
case 6:
case 7:
case 8: printf("between five and eight\n");
               break;
case 11: printf("eleven\n");
               break;
default:printf("undefined\n");
     
}
}
return 0;
}

Tampilan Program :
Three
four
between five and eight
between five and eight
between five and eight
between five and eight
undefined
undefined
eleven
undefined


Program di atas sudah menggunakan instruksi perulangan for. Untuk lebih detilnya, instruksi ini akan dibahas pada bab berikutnya.

4.3 CONTOH-CONTOH SOAL
1. Buatlah program untuk menampilkan nama bulan berdasar input bilangan integer 1 s/d 12 dengan menggunakan if-else dan switch.

Jawab:
/*    -------------------------------- */
/*   Pilihan Bulan                    */
/*    -------------------------------- */
#include <stdio.h>
main()
{
int kode;
puts(" Menentukan pilihan");
puts(" 1 = Januari");
puts(" 2 = Februari");
puts(" 3 = Maret");
puts(" 4 = April");
puts(" 5 = Mei");
puts(" 6 = Juni");
puts(" 7 = Juli");
puts(" 8 = Agustus");
puts(" 9 = September");
puts(" 10 = Oktober") ;
puts(" 11 = Nopember");
puts(" 12 = Desember");
printf("\nMasukan pilihan anda (1..12):  ”);
scanf("%d", &kode) ;kode=10

if(kode==1)puts(,, Bulan Januari" );
else if  (kode==2)puts(,, Bulan Februari" );
else if  (kode==3)puts(,, Bulan Maret" );
else if  (kode==4)puts(,, Bulan April" );
else if  (kode==5)puts(,, Bulan Mei" );
else if  (kode==6)puts(,, Bulan Juni" );
else if  (kode==7)puts(,, Bulan Juli" );
else if  (kode==8)puts(,, Bulan Agustus" );
else if  (kode==9)puts(,, Bulan September" );
else if  (kode==10)puts(,, Bulan Oktober" );
else if  (kode==11)puts(,, Bulan Nopember" );
else if  (kode==12)puts(,, Bulan Desember" );
else puts(" Yang Anda masukkan bukan pilihan (1..12) kan?”);
}

Penyelesaian dia atas menggunakan instruksi if-else, sedangkan apabila menggunakan instruksi switch adalah seperti berikut ini :
/*--------------------------------------*/
/* Pilihan Bulan                        */
/*--------------------------------------*/
#include <stdio.h>
main()
{
  int kode;
puts(“Menentukan Pilihan “);
puts(“ 1 = Januari “);    
puts(“ 2 = Februari “);   
puts(“ 3= Maret “);  
puts(“ 4 = April “); 
puts(“ 5= Mei“);
puts(“ 6 = Juni “);  
puts(“ 7 = Juli “);  
puts(“ 8 = Agustus “);    
puts(“ 9 = September“);   
puts(“ 10 = Oktober “);   
puts(“ 11 = Nopember “);  
puts(“ 12 = Desember“);   

printf("\nMasukan pilihan anda (1..12):
scanf("%d", &kode);

switch (kode)
{
case 1: puts(" Bulan Januari"); break;
case 2: puts(" Bulan Februari."); break;
case 3: puts(" Bulan Maret"); break;
case 4: puts(" Bulan April"); break;
case 5: puts(" Bulan Mei"); break;
case 6: puts(" Bulan Juni"); break;
case 7: puts(" Bulan Juli"); break;


case 8: puts(" Bulan Agustus"); break;
case 9: puts(" Bulan September"); break;
case l0:puts(" Bulan Oktober"); break;
case l1:puts(" Bulan Nopember"); break;
case 12:puts(" Bulan Desember"); break;
default:puts(" Yang Anda masukkan bukan pilihan (1..12) kan ?");
     }
     }

Tampilan program:
Menentukan pilihan 
1= Januari
2= Februari
3= Maret
4= April
5= Mei
6= Juni
7 = Juli
8 = Agustus
9= September
10=Oktober
11=Nopember
12=Desember
Masukkan pilihan anda (1..12): 8
Bulan Agustus

2. Program untuk menentukan nilai absolut dari bilangan yang dimasukkan  melalui keyboard.

/* ---------------------------------------------------*/
/* Penentuan Nilai ABsolut                           */
/* ---------------------------------------------------*/
#include < stdio.h>
main()
{
int x,absolute;
printf(“Barapa Nilai Data Anda ? “ );
scanf ( “ %i “, &x); x=-12
if (x>0)
    printf ( “Nilai Absolut sama dengan dirinya sendiri yaitu %i \n”,x);
else
absolut=0+12); // absolut=x*
printf("Nilai absolut sama dengan dirinya yaitu %i\n",absolut);
}
}

Tampilan program:
Berapa nilai data and.a ? -17
Nilai absolut sam.a dengan lawan dirinya yaitu 17

Alternatif lain adalah menggunakan fungsi abs yang terdapat dalam library stdlib.

/*----------------------------------------*/
/* Penentuan Nilai Absolut      */
/* ---------------------------------------*/                      
#include <stdio.h>
#include <stdlib.h>
main()
{
int x,absolut;
printf("Berapa nilai data anda ? ”);
scanf(“%i”, &x);
if (x>=0)
printf("Nilai absolut sama dengan dirinya sendiri yaitu %i\n",x);
 else
 {
absolut=abs(x);
printf("Nilai absolut sama dengan lawan dirinya yaitu %i\n",absolut);
}
}

Related product you might see:

Share this product :

Poskan Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. BAGI ILMU TEKNIK INFORMATIKA - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger Template