BAB 4
STRUKTUR KONTROL
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;
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();
}
if (kondisi)
{
Pernyataan1;
Pernyataan2;
}
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;
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 :
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 :
Latihan :
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
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 :
c. Pernyataan switch
Digunakan untuk menyeleksi kondisi dengan kemungkinan yang terjadi cukup
banyak, dimana kondisi yang akan diseleksi hanya berupa suatu konstanta.
#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;
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 :
a. Pernyataan For
Digunakan pada perulangan yang bersifat tetap (sudah diketahui jumlah
perulangannya.)
Bentuk Umum :
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 (;).
#include<stdio.h>
main()
{
int bil;
clrscr();
for (bil=20;bil<=100;bil+=10)
printf("%d\n",bil);
getch();
}
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();
}
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.
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();
}
#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.
do
pernyataan; Pernyataan
while (kondisi);
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();
}
#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();
}
while(mad=='Y' || mad=='y');
getch();
}
Contoh :