You are on page 1of 28

ALGORITMA &

DASAR
PEMROGRAMAN
STRUKTUR KEPUTUSAN (DECISION)

STRUKTUR KEPUTUSAN
Struktur

keputusan (decision) adalah


struktur program yang melakukan proses
pengujian untuk mengambil suatu keputusan
apakah suatu baris atau blok instruksi akan
diproses atau tidak. Pengujian kondisi ini
dilakukan untuk memilih salah satu dari
beberapa alternatif yang tersedia.
C++
menyediakan
dua
perintah
pengambilan keputusan yaitu perintah IF dan
perintah SWITCH yang disertai dengan CASE

SYARAT DALAM STRUKTUR


KEPUTUSAN
Syarat

dalam
dunia
pemrograman adalah sebuah
pernyataan Boolean, yang dapat
bernilai benar (true) atau salah
(false). Biasanya sebuah syarat
terdiri
dari
operand-operand
yang
dihubungkan
dengan
operator logika. Yaitu: =, <>, >,
<, >=, <=, and dan or.

STRUKTUR KEPUTUSAN DENGAN


PERINTAH IF
Berguna untuk memilih satu dari

dua atau lebih alternatif jawaban


yang tersedia.
Jika perintah IF tersebut terdiri
dari 2 atau lebih pernyataan,
maka pernyataan tersebut harus
berada di antara begin dan end.

BENTUK UMUM STRUKTUR KEPUTUSAN


DENGAN PERINTAH IF
Bentuk umum perintah if (tunggal sederhana)

if (kondisi)
pernyataan
Bentuk di atas mempunyai arti jika kondisi bernilai benar
maka pernyataan di bawahnya akan dikerjakan.
Bentuk perintah if tunggal blok statemen (majemuk).
if (kondisi)
{
pernyataan1
pernyataan2
dst
}

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF


TUNGGAL SEDERHANA

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF


MAJEMUK

/* ---------------------------------------------------------------------Nama Program: ADP_19


Struktur Keputusan dengan Statemen if Tunggal Sederhana
----------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int beli, diskon, total;
printf("Contoh Struktur Keputusan\n");
printf("dengan Statemen if Tunggal Sederhana\n");
printf("____________________________________\n");
printf("\n");
printf("Masukkan nilai pembelian: "); scanf("%d",&beli);
if (beli>100000)
diskon=10*beli/100;
total=beli-diskon;
printf("\n");
printf("Jadi pembelian adalah: %d\n",beli);
printf("dengan discount: %d\n",diskon);
printf("dan total pembayaran sebesar Rp. %d\n",total);
system("pause");
}

/* ----------------------------Nama Program: ADP_Soal15b.cpp


Statemen if Tunggal Sederhana
----------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int jumlah_anak;
float gaji_kotor, gaji_bersih, tunjangan, potongan,
persen_tunjangan=0.2, persen_potongan=0.05;
printf("Contoh Program Penggunaan Statemen if Tunggal Majemuk\n");
printf("_______________________________________________________\n");
printf("\n");
printf("Gaji kotor yang diperoleh = Rp. ");scanf("%f",&gaji_kotor);
printf("Jumlah anak = ");scanf("%d",&jumlah_anak);
if(jumlah_anak>2)
{
persen_tunjangan = 0.3;
persen_potongan = 0.07;
}
tunjangan = persen_tunjangan * gaji_kotor;
potongan = persen_potongan * gaji_kotor;
gaji_bersih = gaji_kotor + tunjangan - potongan;
printf("Besarnya Tunjangan = Rp. %.2f\n",tunjangan);
printf("Besarnya Potongan = Rp. %.2f\n",potongan);
printf("Jadi, Gaji Bersihnya = Rp. %.2f\n",gaji_bersih);
system("pause");
}

/* -------------------------------------------------------------------Nama Program: ADP_20


Contoh Struktur Keputusan dengan Statemen if Majemuk
--------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int beli, diskon, pajak, total_harga;
printf("Contoh Struktur Keputusan\n");
printf("dengan Statemen if Majemuk
printf("__________________________\n");
printf("\n");
printf("Masukkan nilai pembelian: "); scanf("%d",&beli);
if (beli>100000)
{
diskon=10*beli/100;
pajak=0.01*beli;
}
total_harga=beli-diskon;
printf("\n");
printf("Jadi pembelian adalah: %d\n",beli);
printf("dengan discount: %d\n",diskon);
printf("dikenakan pajak: %d\n",pajak);
printf("dan total pembayaran dengan diskon Rp. %d\n",total_harga);
printf("dan total pembayaran dikenakan pajak sebesar Rp. %d\n",total_harga+pajak);
system("pause");
}

STRUKTUR KEPUTUSAN DENGAN PERINTAH


if .. else
Bentuk umum dari if .. else

if (kondisi)
pernyataan1
else
pernyataan2
Bentuk umum ini berarti jika kondisi benar
maka pernyataan1 akan dikerjakan dan jika
kondisi salah maka pernyataan2 yang akan
dikerjakan

FLOWCHART STRUKTUR KEPUTUSAN DENGAN


IF..ELSE

/* --------------------------------------------------Nama Program: ADP_21


Contoh Struktur Keputusan dengan if..else
---------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int nilai;
printf("Contoh Struktur Keputusan Dengan if..else\n");
printf("_________________________________________\n");
printf("\n");
printf("Masukkan sebuah nilai: ");scanf("%d",&nilai);
if (nilai>70)
printf("Lulus\n");
else
printf("Tidak Lulus\n");
printf("\n");
system("pause");
}

STRUKTUR KEPUTUSAN DENGAN PERINTAH


if .. else if...else
Bentuk umum dari if .. else

if (kondisi1)
pernyataan1
else if (kondisi2)
pernyataan2
Bentuk ini disebut if..else if tangga, karena
mempunyai bentuk seperti sebuah tangga

FLOWCHART STRUKTUR KEPUTUSAN


DENGAN if..else if..else

STRUKTUR KEPUTUSAN DENGAN


PERINTAH if .. else if...else
Contoh:

Akar-akar dari suatu persamaan kuadrat


aX2 + bX2 + c = 0 tergantung dari nilai determinannya. Nilai determinan (D) dapat dihitung
dengan rumus:
D = b2 4ac
Jika D bernilai positif, maka akan mempunyai dua akar riel yang berbeda yaitu:
X1 =

dan X2 =

Jika D bernilai 0, maka akan mempunyai dua buah akar riel kembar, yaitu
X1 = X2 =
jika D bernilai negatif, maka akan dihasilkan dua akar imajiner:
X1 =
adalah nilai imajiner.

X2 =

, tanda i menunjukkan bahwa nilai tersebut

/* ------------------------Nama Program: ADP_21


Contoh Struktur Keputusan
dengan if..else if..else
------------------------- */

/* Menyeleksi Nilai Determinan */


if(D==0){
X1 = -B / (2*A);
printf("Dua akar riel kembar: \n");
printf("X1 = X2 = %.2f\n",X1);
}
else if (D>0){
X1 = (-B + sqrt(D)) / (2*A);
X2 = (-B - sqrt(D)) / (2*A);
printf("Dua akar riel berlainan: \n");
printf("X1 = %.2f\n",X1);
printf("X2 = %.2f\n",X2);
}
else if (D<0){
X1 = -B / (2*A);
X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan: \n"
printf("X1 = %.2f + %.2f i\n",X1,X2);
printf("X2 = %.2f - %.2f i\n",X1,X2);
}
system("pause");

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
float A, B, C, D, X1, X2;
printf("Contoh Struktur Keputusan\n");
printf("dengan Statemen if..else if..else\n");
printf("\n");
printf("Menghitung Akar-akar Persamaan
Kuadrat");
printf("____________________________________\n");
printf("\n");
/* Masukkan Data Koefisien Persamaan
Kuadrat */
printf("Masukkan nilai a: ");scanf("%f",&A);
printf("Masukkan nilai b: ");scanf(%f",&B);
printf("Masukkan nilai c: ");scanf("%f",&C);
printf("\n");
/* Menghitung Nilai Determinan */

/* ------------------------------------Nama Program: ADP_21


Contoh Struktur Keputusan
dengan if..else if..else Alternatif
-------------------------------------- */

/* Menyeleksi Nilai Determinan */


if(D==0){
X1 = -B / (2*A);
printf("Dua akar riel kembar: \n");
printf("X1 = X2 = %.2f\n",X1);
}
if (D>0){
X1 = (-B + sqrt(D)) / (2*A);
X2 = (-B - sqrt(D)) / (2*A);
printf("Dua akar riel berlainan: \n");
printf("X1 = %.2f\n",X1);
printf("X2 = %.2f\n",X2);
}
if (D<0){
X1 = -B / (2*A);
X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan: \n"
printf("X1 = %.2f + %.2f i\n",X1,X2);
printf("X2 = %.2f - %.2f i\n",X1,X2);
}
system("pause");

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
float A, B, C, D, X1, X2;
printf("Contoh Struktur Keputusan\n");
printf("dengan Statemen if..else if..else
Alternatif\n");
printf("\n");
printf("Menghitung Akar-akar Persamaan
Kuadrat");
printf("____________________________________\n");
printf("\n");
/* Masukkan Data Koefisien Persamaan
Kuadrat */
printf("Masukkan nilai a: ");scanf("%f",&A);
printf("Masukkan nilai b: ");scanf(%f",&B);
printf("Masukkan nilai c: ");scanf("%f",&C);
printf("\n");

STRUKTUR KEPUTUSAN BERSARANG


(nested if)
Bentuk umum

if (kondisi1)
if (kondisi2)
pernyataan1;
else
pernyataan2;
else
pernyataan3;
d

FLOWCHART STRUKTUR KEPUTUSAN


BERSARANG

/* -------------------------------------Nama Program: ADP_21


Contoh Struktur Keputusan if Bersarang
-------------------------------------- */

/* Menyeleksi Nilai Determinan */


if(D>=0)
if(D==0){
#include <stdio.h>
X1 = -B / (2*A);
#include <math.h>
printf("Dua akar riel kembar: \n");
#include <stdlib.h>
printf("X1 = X2 = %f\n",X1);
}
main()
else{
{
X1 = (-B + sqrt(D)) / (2*A);
float A, B, C, D, X1, X2;
X2 = (-B - sqrt(D)) / (2*A);
printf("Contoh Struktur Keputusan\n");
printf("Dua akar riel berlainan: \n")
printf("dengan Statemen if Bersarang\n");
printf("X1 = %f\n",X1);
printf("_________________________\n");
printf("X2 = %f\n",X2);
printf("\n");
}
printf("Menghitung Akar-akar
else{
PersamaanKuadrat\n");
X1 = -B / (2*A);
printf("\n");
X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner
/* Masukkan Data Koefisien Persamaan Kuadrat */
printf("Masukkan nilai a: ");scanf("%f",&A); berlainan: \n");
printf("X1 = %f + %f i\n",X1,X2);
printf("Masukkan nilai b: ");scanf("%f",&B);
printf("X2 = %f - %f i\n",X1,X2);
printf("Masukkan nilai c: ");scanf("%f",&C);
}
printf("\n");
system("pause");
}
/* Menghitung Nilai Determinan */
D = B*B - 4*A*C;

STRUKTUR KEPUTUSAN BERSARANG


/* ---------------------------Nama Program: ADP_Soal21.cpp
Contoh Struktur Keputusan
dengan if..else majemuk
---------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int nilai;
char huruf;
printf("Contoh Program Struktur Keputusan\n");
printf("dengan if..else majemuk\n");
printf("_________________________________\n");
Printf("Masukkan Nilai Akhir Mahasiswa: "); scanf("%d",&nilai);
if (nilai>=81 && nilai
huruf='A';
else
if (nilai>=71 && nilai
huruf='B';
else
if (nilai>=61 && nilai
huruf='C';
else
if (nilai>=51 && nilai
huruf='D';
else
huruf='E';

<=100)
<81)
<71)
<61)

printf("Jadi Nilai Akhir Mahasiswa: %d, dengan Huruf : %c",nilai, huruf);


printf("\n");
system("Pause");
}

STRUKTUR KEPUTUSAN DENGAN


SWITCH/CASE

Perintah

SWITCH merupakan
pernyataan
yang
dirancang
untuk menangani pengambilan
keputusan
yang
melibatkan
sejumlah pilihan alternatif yang
diantaranya untuk menggantikan
pernyataan IF bertingkat.

STRUKTUR KEPUTUSAN DENGAN


SWITCH/CASE
Bentuk umum

switch (ekspresi)
{
case konstanta1;
pernyataan1;
break;
case konstanta2;
pernyataan2;
break;
default:
pernyataanx;
}

FLOWCHART STRUKTUR KEPUTUSAN


SWITCH/CASE

main()
{
int kdhari;
printf("Masukkan Kode Hari [1..7]: "); scanf("%d",&kdhari);
switch (kdhari)
{
case 1:
printf("Senin");
break;
case 2:
printf("Selasa");
break;
case 3:
printf("Rabu");
break;
case 4:
printf("Kamis");
break;
case 5:
printf("Jum'at");
break;
case 6:
printf("Sabtu");
break;
case 7:
printf("Minggu");
break;
default:
printf("Kode tidak ada, hari tidak ditemukan");
}
printf("\n");
printf("\n");
system("pause");
}

Buatlah

flowchart dan program untuk


menghitung besarnya tunjangan yang akan
diterima oleh seorang pegawai. Besar
tunjangan tergantung dari jumlah anaknya.
Jika pegawai tsb mempunyai anak kurang dari
3, maka tunjangannya adalah sebesar 20%
dari gaji kotornya. Jika jumlahnya lebih besar
atau sama dengan 3, maka tunjangannya
adalah 30% dari gaji kotornya. Gaji juga akan
dipotong untuk keperluan asuransi, 5% untuk
yang mempunyai anak kurang dari 3 dan 7%
untuk yang lebih besar atau sama dengan 3.

Buatlah flowchart dan program dalam bentuk

menu, untuk menghitung:


a. Volume dari tabung
b. Luas dan keliling persegi panjang
c. Luas dan keliling bujur sangkar
Buatlah flowchart di sebuah kertas dan
programnya dalam bentuk file