Anda di halaman 1dari 43

PENGAMBILAN KEPUTUSAN

(TUNGGAL & MAJEMUK)


DALAM PROGRAM
Avid Wijaya, S.ST., M.K.M.
PROLOG

• Seorang Petani akan berpergian ke kota dengan membawa seekor


kambing, Anjing dan Rumput Yang ketiganya memliki berat yang
tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai
dengan menggunakan perahu dan untuk melaluinya petani tersebut
tidak diperbolehkan membawa sekaligus bawaannya mengingat
kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani
harus membawa satu persatu bawaannya .
• Ditanya: berapa kali petani tersebut harus menyeberang sungai
dengan memperhatikan bahwa kambing makan rumput, anjing
makan kambing ?
1. Pengertian Pengambilan Keputusan
Keputusan adalah hasil pemecahan masalah yang dihadapinya dengan
tegas. Suatu keputusan merupakan jawaban pasti terhadap suatu
pertanyaan. (Menurut Ralph C. Davis).

Pengambilan Keputusan adalah pemilihan alternatif perilaku tertentu


dari dua atau lebih alternatif yang ada. (Menurut George R. Terry).

Pengambilan Keputusan adalah suatu proses yang digunakan untuk


memilih suatu tindakan sebagai cara pemecahan masalah. (Menurut
James A.F Stoner).
2. Fungsi dan Tujuan Pengambilan Keputusan

Fungsi Pengambilan Keputusan:


1. Pangkal permulaan dari semua aktivitas manusia yang sadar dan
terarah, baik secara individual maupun secara kelompok, baik
secara institusional maupun secara organisasional.

2. Sesuatu yang bersifat futuristik, artinya bersangkut paut dengan


hari depan, masa yang akan datang, di mana efeknya atau
pengaruhnya berlangsung cukup lama.
Tujuan Pengambil Keputusan
Dalam mengambil keputusan mempunyai tujuan dalam pengambilan keputusan itu dapat dibedakan
menjadi :

1. Tujuan yang bersifat tunggal


Tujuan pengambilan keputusan yang bersifat tunggal yaitu terjadi apabila
dalam keputusan yang dihasilkan hanya menyangkut satu masalah, yang
artinya bahwa sekali diputuskan, tidak ada kaitannya dengan masalah lain

2. Tujuan yang bersifat ganda (Majemuk)


Tujuan pengambilan keputusan yang bersifat ganda yaitu terjadi jika
keputusan yang dihasilkan itu menyangkut lebih dari satu masalah, yang
artinya keputusan yang diambil itu sekaligus memecahkan dua (atau lebih)
masalah yang sifatnya kontradiktif atau yang sifatnya tidak kontradiktif.

5
3. Unsur-Unsur Pengambilan Keputusan
a. Tujuan dari pengambilan keputusan.
b. Identifikasi alternatif-alternatif keputusan untuk memecahkan
masalah.
c. Perhitungan mengenai faktor-faktor yang tidak dapat diketahui
sebelumnya/di luar jangkauan manusia.
d. Sarana atau alat untuk mengevaluasi atau mengukur hasil dari suatu
pengambilan keputusan.
4. Dasar-Dasar Pengambilan Keputusan
1. Intuisi. Pengambilan keputusan yang berdasarkan atas intuisi atau
perasaan memiliki sifat subjektif, sehingga mudah terkena pengaruh.
2. Pengalaman. Pengambilan keputusan berdasarkan pengalaman memiliki
manfaat bagi pengetahuan praktis.
3. Fakta. Pengambilan keputusan berdasarkan fakta dapat memberikan
keputusan yang sehat, solid, dan baik.
4. Wewenang. Pengambilan keputusan berdasarkan wewenang biasanya
dilakukan oleh pimpinan terhadap bawahannya atau orang yang lebih
tinggi kedudukannya kepada orang yang lebih rendah kedudukannya.
5. Rasional. Pengambilan keputusan yang berdasarkan rasional, keputusan
yang dihasilkan bersifat objektif, logis, lebih transparan, konsisten untuk
memaksimumkan hasil atau nilai dalam batas kendala tertentu, sehingga
dapat dikatakan mendekati kebenaran atau sesuai dengan apa yang
diinginkan.
5. Faktor yang mempengaruhi Pengambilan Keputusan
1. Letak dan Tingkatan Posisi/kedudukan seseorang: apakah dia sebagai
pembuat keputusan; penentu keputusan atau kah staf; atau sebagai
strategi, kebijakan (policy); peraturan; organisasional; operasional;
teknis.
2. Masalah, adalah apa yang menjadi penghalang untuk tercapainya tujuan,
yang merupakan penyimpangan daripada apa yang diharapkan,
direncanakan atau dikehendaki dan harus di selesaikan.
3. Situasi, adalah keseluruhan faktor-faktor dalam keadaan, yang berkaitan
satu sama lain, dan yang secara bersama-sama memancarkan pengaruh
terhadap kita beserta apa yang hendak kita perbuat.
4. Kondisi, adalah keseluruhan dari faktor-faktor yang secara bersama-sama
menentukan daya gerak, daya berbuat, atau kemampuan kita.
5. Tujuan yang hendak dicapai, baik tujuan perorangan, tujuan unit
(kesatuan), tujuan organisasi, maupun tujuan usaha, yang pada
umumnya telah tertentu atau telah ditentukan.
6. Jenis-Jenis Pengambilan Keputusan
Berdasarkan Programnya, pengambilan keputusan dibagi atas DUA,
yaitu:
1. Pengambilan Keputusan Terprogram, adalah pengambilan
keputusan yang sifatnya rutinitas, berulang-ulang, dan cara
menanganinya telah ditentukan.

2. Pengambilan Keputusan Tidak Terprogram, adalah pengambilan


keputusan yang tidak rutinitas dan sifatnya unik sehingga
memerlukan pemecahan khusus
Lanjutan …. Jenis-Jenis Pengambilan Keputusan
Berdasarkan Lingkungannya, pengambilan keputusan dibagi atas
TIGA, yaitu:
1. Pengambilan Keputusan dalam .Kondisi Pasti

2. Pengambilan Keputusan dalam Kondisi Berisiko.

3. Pengambilan Keputusan dalam Kondisi Tidak Pasti.

4. Pengambilan Keputusan dalam Kondisi Konflik.


STRUKTURKEPUTUSAN
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
SYARATDALAM 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.
Berguna untuk memilih satu dari dua

STRUKTURKEPUTUSANDENGAN PERINTAHIF

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 STRUKTURKEPUTUSAN 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
}
15
FLOWCHARTSTRUKTURKEPUTUSAN DENGAN IF TUNGGAL
SEDERHANA
FLOWCHARTSTRUKTURKEPUTUSAN DENGAN IFMAJEMUK
/* ----------------------------------------------------------------------
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");
}
STRUKTURKEPUTUSANDENGAN 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
FLOWCHARTSTRUKTURKEPUTUSAN 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");
}
STRUKTURKEPUTUSANDENGAN 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
FLOWCHARTSTRUKTURKEPUTUSANDENGAN
if..else if..else
STRUKTURKEPUTUSANDENGAN PERINTAHif..
•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 = X2 = , tanda i menunjukkan bahwa nilai tersebut adalah nilai imajin


/* -------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan
dengan if..else if..else /* Menyeleksi Nilai Determinan */
------------------------- */ if(D==0){
X1= -B / (2*A);
#include <stdio.h> printf("Dua akar riel kembar: \n");
#include <math.h> printf("X1 = X2 = %.2f\n",X1);
#include <stdlib.h> }
else if (D>0){
main() X1= (-B + sqrt(D)) / (2*A);
{ X2 = (-B - sqrt(D)) / (2*A);
float A, B, C, D, X1, X2; printf("Dua akar riel berlainan: \n");
printf("Contoh Struktur Keputusan\n"); printf("X1 = %.2f\n",X1);
printf("dengan Statemen if..else if..else\n"); printf("X2 = %.2f\n",X2);
printf("\n"); }
printf("Menghitung Akar-akar Persamaan Kuadrat"); else if (D<0){
printf(" \ n"); X1= -B / (2*A);
printf("\n"); X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan: \n");
/* Masukkan Data Koefisien Persamaan Kuadrat */ printf("X1 = %.2f + %.2f i\n",X1,X2);
printf("Masukkan nilai a: ");scanf("%f",&A); printf("X2 = %.2f - %.2f i\n",X1,X2);
printf("Masukkan nilai b: ");scanf(“%f",&B); }
printf("Masukkan nilai c: ");scanf("%f",&C); system("pause");
printf("\n"); }
/* Menghitung Nilai Determinan */
D = B*B - 4*A*C;
/* -------------------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan
dengan if..else if..elseAlternatif /* Menyeleksi Nilai Determinan */
-------------------------------------- */ if(D==0){
X1= -B / (2*A);
#include <stdio.h> printf("Dua akar riel kembar: \n");
#include <math.h> printf("X1 = X2 = %.2f\n",X1);
#include <stdlib.h> }
if (D>0){
main() X1= (-B + sqrt(D)) / (2*A);
{ X2 = (-B - sqrt(D)) / (2*A);
float A, B, C, D, X1, X2; printf("Dua akar riel berlainan: \n");
printf("Contoh Struktur Keputusan\n"); printf("X1 = %.2f\n",X1);
printf("dengan Statemen if..else if..elseAlternatif\n"); printf("X2 = %.2f\n",X2);
printf("\n"); }
printf("Menghitung Akar-akar Persamaan Kuadrat"); if (D<0){
printf(" \ n"); X1= -B / (2*A);
printf("\n"); X2 = sqrt(-D) / (2*A);
printf("Dua akar imajiner berlainan: \n");
/* Masukkan Data Koefisien Persamaan Kuadrat */ printf("X1 = %.2f + %.2f i\n",X1,X2);
printf("Masukkan nilai a: ");scanf("%f",&A); printf("X2 = %.2f - %.2f i\n",X1,X2);
printf("Masukkan nilai b: ");scanf(“%f",&B); }
printf("Masukkan nilai c: ");scanf("%f",&C); system("pause");
printf("\n"); }
/* Menghitung Nilai Determinan */
D = B*B - 4*A*C;
STRUKTURKEPUTUSANBERSARANG(nested
if)
Bentuk umum
if (kondisi1)
if (kondisi2)
pernyataan1;
else
pernyataan2;
else
pernyataan3;

d
FLOWCHARTSTRUKTURKEPUTUSANBERSARANG
/* --------------------------------------
Nama Program: ADP_21
Contoh Struktur Keputusan ifBersarang
-------------------------------------- */ /* Menyeleksi Nilai Determinan */
if(D>=0)
#include <stdio.h> if(D==0){
#include <math.h> X1= -B / (2*A);
#include <stdlib.h> printf("Dua akar riel kembar: \n");
printf("X1 = X2 = %f\n",X1);
main() }
{ else{
float A, B, C, D, X1, X2; X1 = (-B + sqrt(D)) / (2*A);
printf("Contoh Struktur Keputusan\n"); X2 = (-B - sqrt(D)) / (2*A);
printf("dengan Statemen if Bersarang\n"); printf("Dua akar riel berlainan: \n");
printf(" \n"); printf("X1 = %f\n",X1);
printf("\n"); printf("X2 = %f\n",X2);
printf("Menghitung Akar-akar PersamaanKuadrat\n"); }
printf("\n"); else{
X1= -B / (2*A);
/* Masukkan Data Koefisien Persamaan Kuadrat */ X2 = sqrt(-D) / (2*A);
printf("Masukkan nilai a: ");scanf("%f",&A); printf("Dua akar imajiner berlainan: \n"
printf("Masukkan nilai b: ");scanf("%f",&B); printf("X1 = %f + %f i\n",X1,X2);
printf("Masukkan nilai c: ");scanf("%f",&C); printf("X2 = %f - %f i\n",X1,X2);
printf("\n"); }
system("pause");
/* Menghitung Nilai Determinan */ }
D = B*B - 4*A*C;
/* --S-T-R--U--K-T-U--R--K--E-P--U--T-U--S-A--N-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 <=100)


huruf='A';
else
if (nilai>=71 && nilai <81)
huruf='B';
else
if (nilai>=61 && nilai <71)
huruf='C';
else
if (nilai>=51 && nilai <61)
huruf='D';
else
huruf='E';

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


printf("\n");

system("Pause");
STRUKTURKEPUTUSANDENGANSWITCH/CASE
Perintah SWITCH merupakan
pernyataan yang dirancang untuk
menangani pengambilan keputusan
yang melibatkan sejumlah pilihan
alternatif yang diantaranya untuk
menggantikan pernyataan IF
bertingkat.
STRUKTURKEPUTUSANDENGANSWITCH/CASE
Bentuk umum
switch (ekspresi)
{
case konstanta1;
pernyataan1;
break;
case konstanta2;
pernyataan2;
break;
default:
pernyataanx;
}
FLOWCHARTSTRUKTURKEPUTUSANSWITCH/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.
Jika nilai 85-100 maka A
Selain itu jika 70-84 maka B
Selain itu jika 60-69 maka C
Selain itu <60 maka D
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
Pelajari Flowchart Pengambil keputusan

If

else
41
ThankYou
Avid Wijaya
081216470xxx
avidwijaya@gmail.com
www. avidwijaya.com

Anda mungkin juga menyukai