Apa
yang dimaksud dengan pengendalian program dan mengapa program atau alur
eksekusi program perlu dikendalikan? pengendalian program tidak lepas dari
pedoman yang digunakan untuk membuat 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 dalam 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 gabungan.
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);
}
}
+ komentar + 1 komentar
Wynn Casino and Hotel - Mapyro
› hotels › wynn-cas 안산 출장안마 › 논산 출장샵 hotels › wynn-cas Wynn Casino and 거제 출장샵 Hotel offers luxury accommodations, 대구광역 출장마사지 signature restaurants and exciting casino gaming on the Las Vegas 사천 출장안마 strip.
Posting Komentar