Anda di halaman 1dari 28

*

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
*
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>
#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();
}
*
• If tunggal blok pernyataan
Bentuk umum:
Artinya : Jika kondisi bernilai benar, maka
if (kondisi)
pernyataan-pernyataan yang berada
{ dalam kurung { dan } akan dikerjakan.
Pernyataan1; Dengan kata lain, pernyataan-pernyataan
Pernyataan2; 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:
Artinya : Jika kondisi bernilai benar, maka
if (kondisi)
pernyataan-1 dikerjakan.
pernyataan1;
Sedangkan bila kondisi bernilai
else
salah, maka pernyataan-2
pernyataan2;
dieksekusi.
*
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
*
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”


2. Struktur Perulangan (Looping Structure)
Digunakan untuk melakukan perintah perulangan dengan menggunakan pernyataan
for, while dan do while.
1. 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);
getch();
}
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; Kondisi

Pernyataan

UNIVERSITAS PUTRA INDONESIA “YPTK”


Contoh :
a. Perulangan yang bersifat tetap.

Untuk menampilkan deret bilangan 20 sampai dengan 100

#include <stdio.h>
main()
{
int x;
clrscr();
x=20;
while (x<=100)
{
printf("%i\t",x);
x+=10;
}
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';
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();
}
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);
salah
Kondisi

benar

UNIVERSITAS PUTRA INDONESIA “YPTK”


Contoh :
a. Perulangan yang bersifat tetap.
Untuk menampilkan deret bilangan 20 sampai dengan 100

#include <stdio.h>
main()
{
int x;
clrscr();
x=20;
do
{
printf("%i ",x);
x =x + 10;
}
while (x<=100);
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();
}
while(mad==‘Y' || mad==‘y');
getch();
}
Buatlah program C dengan bentuk layout yang akan ditampilkan adalah sebagai berikut
:

Entry Data Jasa Salon Ketentuan Proses :


Tanggal : Jasa Pelayanan ditentukan oleh Jenis Pelayanan
Nomor Faktur : dengan ketentuan sebagai berikut :
Nama : Jika Jenis Pelayanan = “Smothing”,
Jenis Pelayanan : maka Jasa Pelayanan Rp. 200000,-
Jika Jenis Pelayanan = “Rebonding”,
Informasi Jasa Salon maka Jasa Pelayanan Rp. 250000,-
Tanggal : Jika Jenis Pelayanan = “Bleaching”,
Nomor Faktur : maka Jasa Pelayanan Rp. 100000,-
Nama :
Jenis Pelayanan : Tarif Obat = Rp. 50000
Jasa Pelayanan :
Biaya Pelayanan : Biaya Pelayanan = Tarif Obat + Jasa Pelayanan
Ada Data Lain ? (Y/T) :

UNIVERSITAS PUTRA INDONESIA “YPTK”


Buatlah program C dengan bentuk layout yang akan ditampilkan adalah sebagai
berikut :
Transaksi Sewa Tenda
Tanggal :
Ketentuan Proses :
Nomor Faktur :
Nama Pelanggan :
Tarif Sewa :
Jenis Tenda :
Jika jenis tenda = ‘Type-a’ maka tarif sewa = 100000
Jumlah Tenda :
Jika jenis tenda = ‘Type-b’ maka tarif sewa = 150000
Jika jenis tenda = ‘Type-c’ maka tarif sewa = 200000
Informasi Sewa Tenda
Tanggal :
Jumlah Bayar = Jumlah Tenda x Tarif Sewa
Nomor Faktur :
Nama Pelanggan :
Jenis Tenda :
Jumlah Tenda :
Tarif Sewa Rp.
Jumlah Bayar Rp.

Masih Ada data ? (Y/T) :

UNIVERSITAS PUTRA INDONESIA “YPTK”

Anda mungkin juga menyukai