Anda di halaman 1dari 12

Modul Bahasa Pemrograman I © 20

BAB 4
STRUKTUR KONTROL

Struktur kontrol terdiri atas 2 macam :


1. Struktur Keputusan (Decision Structure)
Berfungsi untuk pengambilan keputusan dari beberapa pilihan yang ada dengan
melakukan penyeleksian kondisi.
Untuk melakukan penyeleksian kondisi menggunakan pernyataan if, if..else dan
switch serta menggunakan operator relasi dan logika.

a. Pernyataan If
Digunakan untuk menyeleksi suatu kondisi tunggal, baik dalam bentuk
tunggal sederhana maupun dalam bentuk tunggal blok pernyataan

 If tunggal sederhana
Bentuk umum:

if (kondisi)
pernyataan;

Artinya : Jika kondisi bernilai benar, maka pernyataan dikerjakan. Dengan


kata lain, pernyataan tidak dijalankan, bila kondisi bernilai salah.

Contoh 1 :
#include<stdio.h>
main()
{
int n_angka;
clrscr();
printf("Masukkan Nilai Angka : "); scanf("%i",&n_angka);
if(n_angka>=60)
printf("\nLulus");
getch();
}

Contoh 2:
#include<stdio.h>
main()
{
int n_angka;
char ket[5];
clrscr();
printf("Masukkan Nilai Angka : "); scanf("%i",&n_angka);
if(n_angka>=60)
strcpy(ket,"Lulus");
printf("Keterangan : %s\n",ket);
getch();
}

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 21

 If tunggal blok pernyataan


Bentuk umum:

if (kondisi)
{
Pernyataan1;
Pernyataan2;
}

Artinya : Jika kondisi bernilai benar, maka pernyataan-pernyataan yang


berada dalam kurung { dan } akan dikerjakan. Dengan kata
lain, pernyataan-pernyataan yang berada dalam kurung {dan}
tidak dijalankan, bila kondisi bernilai salah.

Contoh :
#include<stdio.h>
main()
{
int n_angka;
char ket[5];
char predikat[10];
clrscr();
printf("Masukkan Nilai Angka : "); scanf("%i",&n_angka);
if(n_angka>=60)
{
strcpy(ket,"Lulus");
strcpy(predikat,"Terpuji");
}
printf("Keterangan : %s\n",ket);
printf("Predikat Lulus : %s\n",predikat);
getch();
}

Keterangan :
strcpy() digunakan untuk memberikan nilai string ke sebuah variabel

b. Pernyataan If …. Else
Digunakan untuk menyeleksi dua buah kondisi atau lebih, pernyataan yang
diproses dapat berupa pernyataan tunggal atau berupa blok pernyataan.

Bentuk umum:

if (kondisi)
pernyataan1;
else
pernyataan2;

Artinya : Jika kondisi bernilai benar, maka pernyataan-1 dikerjakan.


Sedangkan bila kondisi bernilai salah, maka pernyataan-2
dieksekusi..

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 22

Contoh 1:
#include<stdio.h>
main()
{
int n_angka;
clrscr();
printf("Masukkan Nilai Angka : "); scanf("%i",&n_angka);
if(n_angka>=60)
printf("\n Lulus");
else
printf("\n Gagal");
getch();
}

Contoh 2:
/* Program Mencari Bilangan Terbesar */
#include<stdio.h>
main()
{
int bil_1;
int bil_2;
int bil_3;
int maks;
clrscr();
printf("Masukkan Bilangan 1 : ");scanf("%i",&bil_1);
printf("Masukkan Bilangan 2 : ");scanf("%i",&bil_2);
printf("Masukkan Bilangan 3 : ");scanf("%i",&bil_3);
if((bil_1 > bil_2) && (bil_1 > bil_3))
maks = bil_1;
else
if((bil_2 > bil_1) && (bil_2 > bil_3))
maks = bil_2;
else
if((bil_3 > bil_1) && (bil_3 > bil_2))
maks = bil_3;
printf("Bilangan Terbesar adalah : %i", maks);
getch();
}

Contoh : :
Buatlah program dengan masukkan berupa suatu nilai antara 0 sampai dengan
100 dan program memberikan keluaran berupa klasifikasi A, B, C, D atau E
berdasarkan criteria sebagai berikut :

Nilai Angka Nilai Huruf Bobot


n_angka > 80 A 4
65 < n_angka < 80 B 3
55 < n_angka < 65 C 2
40 < n_angka < 55 D 1
n_angka < 40 E 0

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 23

Gunakan variable bertipe float untuk menyimpan data nilai, variable bertipe
char untuk memegang nilai A, B, C, D, atau E dan variable bertipe integer untuk
menyimpan data bobot.
Jawab :

a. Contoh penyelesaian Tanpa Menggunakan Operator Logika

#include<stdio.h> if(n_angka >=55)


main() {
{ n_huruf='C';
float n_angka; bobot=2;
char n_huruf; }
int bobot; else
clrscr(); if(n_angka >=40)
printf("Masukkan Nilai Angka :"); {
scanf("%d",&n_angka); n_huruf='D';
if(n_angka >=80) bobot=1;
{ }
n_huruf='A'; else
bobot=4; {
} n_huruf='E';
else bobot=0;
if(n_angka >=65) }
{ printf("Nilai Huruf = %c \n", n_huruf);
n_huruf='B'; printf("Bobot Nilai = %i", bobot);
bobot=3; getch();
} }
else

b. Contoh penyelesaian dengan Menggunakan Operator Logika

#include<stdio.h> if((n_angka>=55) && (n_angka<65))


main() {
{ n_huruf='C';
float n_angka; bobot=2;
char n_huruf; }
int bobot; else
clrscr(); if((n_angka>=40) && (n_angka<55))
printf("Masukkan Nilai Angka : "); {
scanf("%d",&n_angka); n_huruf='D';
if((n_angka>=80) && (n_angka<100)) bobot=1;
{ }
n_huruf='A'; else
bobot=4; if((n_angka>=0) && (n_angka<40))
} {
else n_huruf='E';
if((n_angka>=65) && (n_angka<80)) bobot=0;
{ }
n_huruf='B'; printf("Nilai Huruf = %c \n", n_huruf);
bobot=3; printf("Bobot Nilai = %i", bobot);
} getch();
else }

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 24

Latihan :

1. Buat program C untuk menghasilkan lay-out sebagai berikut :

Data Gaji Karyawan

Kode Karyawan : kk (string)


Nama Karyawan : nk (string)
Status (Married/Single) : st (char) Input
Jumlah Anak : ja (int)
Masa Kerja : mk (int)

Gaji Pokok : Rp.


Tunjangan Istri/Suami : Rp.
Tunjangan Anak : Rp. Output
Bonus : Rp.
Total Gaji : Rp.

Ketentuan Proses :
a. Gaji Pokok berdasarkan table berikut :
Masa Kerja Gaji Pokok (Rp.)
Masa Kerja < 3 300000
3<= Masa Kerja <5 500000
Masa Kerja >= 5 700000

b. Tunjangan Istri/Suami dan Tunjangan Anak


 Jika Status = M atau status = m
Tunjangan Istri/Suami = 50000
 Jika Jumlah Anak > 3
Tunjangan Anak = 75000
Jika tidak (selain dari ketentuan di atas) maka
Tunjangan Anak = Jumlah Anak * 25000

c. Bonus :
Jika Masa Kerja > 10 dan Status = M atau status=m maka Bonus=150000
Jika tidak terpenuhi Bonus = 50000

d. Total Gaji
Total Gaji = Gaji Pokok + Tunjangan Istri/suami + Tunjangan Anak + Bonus

Langkah Kerja :
 Analisa Permasalahan
 Analisa Output dan Input
 Analisa Proses

2. Salin program contoh kelompok (b) di atas dan lengkapi dengan keterangan
seperti layout sebagai berikut :

Nilai Huruf :
Bobot Nilai :
Keterangan :

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 25

Ketentuan Proses untuk Keterangan (Ket) :


- Jika n_huruf = ‘D’ atau n_huruf = ‘E’, maka Ket=”Gagal”
- Selain dari ketentuan di atas Ket=”Lulus”

c. Pernyataan switch
Digunakan untuk menyeleksi kondisi dengan kemungkinan yang terjadi cukup
banyak, dimana kondisi yang akan diseleksi hanya berupa suatu konstanta.

Bentuk Umum Keterangan


switch (ekspresi) Ekspresi dapat berupa ungkapan bernilai integer
{ atau bertipe karakter
case konstanta-1; Konstanta-i dapat berupa konstanta integer atau
pernyataan-1; karakter dapat berupa sebuah atau
break; beberapa pernyataan.
case konstanta-2; Break menyebabkan eksekusi diarahkan ke
pernyataan-2; akhir switch.
break; Default apabila pada pengujian case terakhir
. tidak ada kecocokan, maka pernyataan
. yang mengikuti kata kunci default yang
case konstanta-x; akan dijalankan.
pernyataan-x;
break;
default:
pernyataan-n;
}

Contoh pemakaian pernyataan switch yaitu untuk menggantikan if-else


bertingkat

#include<stdio.h> case 4:
main() puts("Hari KAMIS");
{ break;
int kode_hari; case 5:
clrscr(); puts("Hari JUM'AT");
puts("Menentukan Hari \n"); break;
puts("1 = SENIN 2 = SELASA 3 = RABU 4 = KAMIS"); case 6:
puts("5 = JUM'AT 6 = SABTU 7 = MINGGU"); puts("Hari SABTU");
printf("\nMasukkan Kode Hari (1..7) : "); break;
scanf("%d",&kode_hari); case 7:
printf("\n"); puts("Hari MINGGU");
switch(kode_hari) break;
{ default:
case 1: puts("Kode yang dimasukkan salah !!");
puts("Hari SENIN"); }
break; getch();
case 2: }
puts("Hari SELASA");
break;
case 3:
puts("Hari RABU");
break;

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 26

Latihan :
Buatlah program C untuk menghitung :
1. Luas sebuah Lingkaran dengan rumus luas=0.5*phi*radius*radius
2. Luas sebuah Persegi Panjang dengan rumus luas=panjang*lebar
3. Luas sebuah Segitiga dengan rumus luas = 0.5 * alas * tinggi
Dengan menggunakan switch seperti layout sebagai berikut :

Menu Pilihan Menghitung Luas :


1. Lingkaran
2. Persegi Panjang
3. Segitiga
4. Exit
Masukkan Pilihan Anda (1..4).

3. Struktur Perulangan (Looping Structure)

Digunakan untuk melakukan perintah perulangan dengan menggunakan pernyataan


for, while dan do while.

a. Pernyataan For
Digunakan pada perulangan yang bersifat tetap (sudah diketahui jumlah
perulangannya.)

Bentuk Umum :

for (ungkapan1;ungkapan2;ungkapan3) atau for (awal;akhir;peningkatan)


pernyataan pernyataan

Keterangan :
Ungkapan1 digunakan untuk memberikan inisialisasi terhadap variable
pengendali loop
Ungkapan2 dipakai sebagai kondisi untuk keluar dari loop
Ungkapan3 dipakai sebagai pengatur kenaikan nilai variable pengendali loop

Ketiga ungkapan dalam for tersebut harus dipisahkan dengan tanda titik koma (;).

Contoh untuk menampilkan deret angka sebagai berikut :


20
30
40
50
.
:
100

#include<stdio.h>
main()
{
int bil;
clrscr();
for (bil=20;bil<=100;bil+=10)
printf("%d\n",bil);

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 27

getch();
}

Ada 2 (dua) jenis perulangan for yaitu :


1. Perulangan Positif
Merupakan perulangan dengan kenaikan untuk variable pengontrol
perulangannya, misal x++

2. Perulangan Negatif
Merupakan perulangan dengan penurunan untuk variable pengontrol
perulangannya, misal x—

Contoh :
Perulangan Positif Perulangan Negatif
#include <stdio.h> #include <stdio.h>
main() main()
{ {
int x; int x;
clrscr(); clrscr();
for(x=1;x<=5;x++) for(x=5;x>=1;x--)
printf("%i \t",x); printf("\n %i ",x);
getch(); getch();
} }

1 2 3 4 5 5
4
3
2
1

Contoh :
Program untuk menghasilkan matriks ordo 3 x 5 sebagai berikut :
1 2 3
2 3 4
3 4 5
4 5 6
5 6 7

/* matriks */
#include <stdio.h>
main()
{
int a,b,c;
clrscr();
for (a=1;a<=5;a++)
{
b=a+1;
c=b+1;
printf("%i\t%i\t%i\n",a,b,c);
}
getch();
}

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 28

Latihan :
1. Buatlah program untuk menampilkan matriks sebagai berikut ini :
a. 1 2 4 b. 5 7 8
2 4 6 4 6 7
3 6 8 3 5 6
4 8 10 2 4 5
5 10 12 1 3 4

2. Buatlah program untuk mencari total dan rata-rata dari lima buah bilangan
yang diinputkan.

2. Pernyataan while
Digunakan pada perulangan yang bersifat tetap (sudah diketahui jumlah
perulangannya) dan pada perulangan dengan menyeleksi suatu kondisi tertentu
(tidak tetap), dengan kondisi yang akan diseleksi terletak pada awal lingkup
perulangan.

Bentuk umum : Flowchart :

while (kondisi)
pernyataan; salah
Kondis
i
benar
Pernyataan

Contoh :
a. Perulangan yang bersifat tetap.
Untuk menampilkan deret bilangan 1 sampai dengan 5

#include <stdio.h>
main()
{
int x;
clrscr();
x=1;
while (x<=5)
{
printf("%i ",x);
x++;
}
getch();
}

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 29

b. Perulangan yang bersifat tidak tetap


Untuk memproses beberapa nilai dengan layout sebagai berikut :
Masukkan Nilai Angka :
Keterangan :
Masih Ada Data ? y/t :

#include<stdio.h>
main()
{
int n_angka;
char ket[5];
char mad;
mad='y';
while((mad=='Y')||(mad=='y'))
{
clrscr();
printf("Masukkan Nilai Angka : ");
scanf("%i",&n_angka);
if(n_angka>=60)
strcpy(ket,"Lulus");
else
strcpy(ket,"Gagal");
printf("Keterangan :"); puts(ket);
printf("Masih Ada Data ? y/t :"); mad=getche();
if((mad=='T')||(mad=='t'))
exit();
}
getch();
}

3. Pernyataan do … while
Digunakan pada perulangan yang bersifat tetap (sudah diketahui jumlah
perulangannya) dan pada perulangan dengan menyeleksi suatu kondisi tertentu
(tidak tetap), dengan kondisi yang akan diseleksi terletak pada akhir lingkup
perulangan.

Bentuk umum : Flowchart :

do
pernyataan; Pernyataan
while (kondisi);

Disusun Oleh : Silfia Andini, M.Kom Kondis


i
Modul Bahasa Pemrograman I © 30

salah

benar

Contoh :
a. Perulangan yang bersifat tetap.
Untuk menampilkan deret bilangan 1 sampai dengan 5

#include <stdio.h>
main()
{
int x;
clrscr();
x=1;
do
{
printf("%i ",x);
x = x + 1;
}
while (x>5);
getch();
}

b. Perulangan yang bersifat tidak tetap


Untuk memproses beberapa nilai dengan layout sebagai berikut :
Masukkan Nilai Angka :
Keterangan :
Masih Ada Data ? y/t :

#include<stdio.h>
main()
{
int n_angka;
char ket[5];
char mad;
mad='y';
do
{
clrscr();
printf("Masukkan Nilai Angka : "); scanf("%i",&n_angka);
if(n_angka>=60)
strcpy(ket,"Lulus");
else
strcpy(ket,"Gagal");
printf("Keterangan :"); puts(ket);
printf("Masih Ada Data ? y/t :"); mad=getche();

Disusun Oleh : Silfia Andini, M.Kom


Modul Bahasa Pemrograman I © 31

}
while(mad=='Y' || mad=='y');
getch();

}
Contoh :

Program untuk menghasilkan matriks ordo 3 x 3 dengan menggunakan pernyataan


while dan do… while seperti layout sebagai berikut :
1 2 4
2 3 6
3 4 8

Menggunakan Pernyataan while Menggunakan Pernyataan do while


/* matriks menggunakan while*/ /* matriks menggunakan do while*/
#include <stdio.h> #include <stdio.h>
main() main()
{ {
int a,b,c; int a,b,c;
clrscr(); clrscr();
a=1; a=1;
while (a<=3) do
{ {
b=a+1; b=a+1;
c=b*2; c=b*2;
printf("%i\t%i\t%i\n",a,b,c); printf("%i\t%i\t%i\n",a,b,c);
a++; a++;
} }
getch(); while (a<=3);
} getch();
}

Disusun Oleh : Silfia Andini, M.Kom

Anda mungkin juga menyukai