Anda di halaman 1dari 18

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 dengan
menggunakan pernyataan :
a. Pernyataan If
b. Penyataan If…else
c. Pernyataan switch

2. Struktur Perulangan (Looping Structure)


Digunakan untuk melakukan perintah perulangan dengan
menggunakan pernyataan :
a. Pernyataan for
b. Pernyataan while
c. Pernyataan do … while
* Struktur Keputusan (Decision Structure
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.
* Struktur Keputusan (Decision Structure)
Contoh 1 :
#include<stdio.h>
#include<conio.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>
#include<conio.h>
#include <string.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();
}
* Struktur Keputusan (Decision Structure)

If tunggal blok pernyataan


Bentuk umum:

if (kondisi) Artinya : Jika kondisi bernilai benar, maka


{ pernyataan-pernyataan yang berada
Pernyataan1; dalam kurung { dan } akan dikerjakan.
Pernyataan2; Dengan kata lain, pernyataan-pernyataan
} yang berada dalam kurung {dan} tidak
dijalankan, bila kondisi bernilai salah.
* Struktur Keputusan (Decision Structure)
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
* Struktur Keputusan (Decision Structure)
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:
Artinya : Jika kondisi bernilai benar, maka
if (kondisi)
pernyataan1; pernyataan-1 dikerjakan.
else Sedangkan bila kondisi bernilai
pernyataan2; salah, maka pernyataan-2
dieksekusi.
* Struktur Keputusan (Decision Structure)
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, bil_2, bil_3, 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();
}
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
* Struktur Keputusan (Decision Structure)
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
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.
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",
bobot=3; n_huruf);
} printf("Bobot Nilai = %i", bobot);
else getch();
}
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 beberapa
break; pernyataan.
case konstanta-2; Break menyebabkan eksekusi diarahkan ke akhir
pernyataan-2; switch.
break; Default apabila pada pengujian case terakhir tidak ada
. kecocokan, maka pernyataan yang mengikuti
. kata kunci default yang akan dijalankan.
case konstanta-x;
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 = case 6:
KAMIS"); puts("Hari SABTU");
puts("5 = JUM'AT 6 = SABTU 7 = MINGGU"); break;
printf("\nMasukkan Kode Hari (1..7) : "); case 7:
scanf("%d",&kode_hari); puts("Hari MINGGU");
printf("\n"); break;
switch(kode_hari) default:
{ puts("Kode yang dimasukkan salah !!");
case 1: }
puts("Hari SENIN"); getch();
break; }
case 2:
puts("Hari SELASA");
break;
case 3:
puts("Hari RABU");
break;
Buatlah Program C untuk menampilkan layout di bawah ini.

Transaksi Pemesanan Catering


~~~~~~~~~~~~~~~~~~
Nomor Pesanan :
Nama Pemesan :
Jumlah Pesanan :
Kode Paket (A/B/C) :
Jenis Menu :
Harga Per-Paket Rp.
Total Pembayaran Rp.
Masih Ada Data ? (y/t):
 
Ketentuan Proses :
Untuk mendapatkan Jenis Menu, dan Harga Per-paket (gunakan struktur Switch)
berdasarkan ketentuan pada tabel di bawah ini :
 
Kode Paket Jenis Menu Harga Per-Paket Rp.
A 1 Protein 17500
B 2 Protein 30000
C 3 Protein 50000

Total Pembayaran = Jumlah Pesanan x Harga Per-Paket


Contoh Program:
#include<stdio.h>
#include<conio.h>
main()
{
char kd_nasabah[7];
char nm_nasabah[25];
int lama_pinj;
long int jml_pinj;
float p_bunga, th_bunga, t_bunga, t_pinj;
/* ............ Inputkan Data .............. */
clrscr();
printf("Entry Data Peminjaman ");
printf("~~~~~~~~~~~~~~~~~~~~~ ");
printf("Input Kode Nasabah : "); gets(kd_nasabah);
printf("Input Nama Nasabah : "); gets(nm_nasabah);
printf("Input Jumlah Pinjaman Rp."); scanf("%li",&jml_pinj);fflush(stdin);
printf("Input Lama pinjaman :"); scanf("%i",&lama_pinj);fflush(stdin);
/* ........... Proses ........ */
if (lama_pinj==1)
p_bunga = 0.08;
else
if (lama_pinj==2)
p_bunga = 0.10;
else
p_bunga = 0.12;
th_bunga=p_bunga * jml_pinj;
t_bunga=th_bunga *lama_pinj;
t_pinj= jml_pinj + t_bunga;

UNIVERSITAS PUTRA INDONESIA “YPTK”


/* .......... Tampilkan Data yang di inputkan dan Data
Hasil Proses ........*/
printf("\n");
puts("Informasi Data Peminjaman ");
puts("~~~~~~~~~~~~~~~~~~~~~ ");
printf("Kode Nasabah : %s\n ",kd_nasabah);
printf("Nama Nasabah : %s \n",nm_nasabah);
printf("Jumlah Pinjaman Rp. %li\n",jml_pinj);
printf("Lama pinjaman :%i\n",lama_pinj);
printf("Bunga Per Tahun : Rp.%9.0f\n",th_bunga);
printf("Total Bunga : Rp.%9.0f\n",t_bunga);
printf("Total Pinjaman : Rp.%9.0f\n",t_pinj);
getch();
}

UNIVERSITAS PUTRA INDONESIA “YPTK”


UNIVERSITAS PUTRA INDONESIA “YPTK”
Latihan :
Buatlah program C dengan bentuk layout yang akan ditampilkan adalah sebagai berikut :

Entry Data Pemegang Polis Ketentuan Proses :


Nomor Polis : (string) Biaya penginapan ditentukan oleh Plan
Nama Pemegang Polis : (string) dengan ketentuan sebagai berikut :
Plan (A1/A2/A3) : (string) - Jika Plan A1, maka biaya perawatan perhari
Rumah Sakit : (string) Rp. 800000,-
Lama di Rawat : (int) - Jika Plan A2, maka biaya perawatan perhari
Rp. 650000,-
- Jika Plan A3, maka biaya perawatan perhari
Informasi Perawatan Rp. 500000,-
Nomor Polis : Total Biaya Perawatan = Lama di Rawat *
Nama Pemegang Polis : Biaya Perawat perhari
Plan (A1/A2/A3) :
Rumah Sakit :
Lama di Rawat :
Biaya Perawatan Perhari : Rp. (float)
Total Biaya Perawatan : Rp. (float)

UNIVERSITAS PUTRA INDONESIA “YPTK”

Anda mungkin juga menyukai