3 adp struktur keputusan

28
STRUKTUR KEPUTUSAN (DECISION)

Transcript of 3 adp struktur keputusan

STRUKTUR KEPUTUSAN (DECISION)

STRUKTUR KEPUTUSAN Struktur keputusan (decision) adalah

struktur program yang melakukan prosespengujian untuk mengambil suatu keputusanapakah suatu baris atau blok instruksi akandiproses atau tidak. Pengujian kondisi inidilakukan untuk memilih salah satu daribeberapa alternatif yang tersedia.

C++ menyediakan dua perintah pengambilankeputusan yaitu perintah IF dan perintahSWITCH yang disertai dengan CASE

SYARAT DALAM STRUKTUR KEPUTUSAN

Syarat dalam dunia pemrogramanadalah sebuah pernyataan Boolean,yang dapat bernilai benar (true) atausalah (false). Biasanya sebuah syaratterdiri dari operand-operand yangdihubungkan dengan operator logika.Yaitu: =, <>, >, <, >=, <=, and dan or.

STRUKTUR KEPUTUSAN DENGAN PERINTAH IF

Berguna untuk memilih satu dari duaatau lebih alternatif jawaban yangtersedia.

Jika perintah IF tersebut terdiri dari 2atau lebih pernyataan, makapernyataan tersebut harus berada diantara 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){

pernyataan1pernyataan2

dst}

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF TUNGGAL SEDERHANA

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF MAJEMUK

/* ----------------------------------------------------------------------Nama Program: ADP_19Struktur 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.cppStatemen 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_20Contoh 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 Majemukprintf("__________________________\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 makapernyataan1 akan dikerjakan dan jika kondisi salahmaka pernyataan2 yang akan dikerjakan

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF..ELSE

/* ---------------------------------------------------Nama Program: ADP_21Contoh 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");

elseprintf("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, karenamempunyai 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 kuadrataX2 + bX2 + c = 0 tergantung dari nilai determinannya. Nilai determinan (D) dapatdihitung dengan rumus:D = b2 – 4acJika 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 imajiner.

/* -------------------------Nama Program: ADP_21Contoh Struktur Keputusandengan if..else if..else------------------------- */

#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 */D = B*B - 4*A*C;

/* 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");

}

/* -------------------------------------Nama Program: ADP_21Contoh Struktur Keputusandengan if..else if..else Alternatif-------------------------------------- */

#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");

/* Menghitung Nilai Determinan */D = B*B - 4*A*C;

/* 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");

}

STRUKTUR KEPUTUSAN BERSARANG (nested if) Bentuk umum

if (kondisi1)

if (kondisi2)

pernyataan1;

else

pernyataan2;

else

pernyataan3;

d

FLOWCHART STRUKTUR KEPUTUSAN BERSARANG

/* --------------------------------------Nama Program: ADP_21Contoh Struktur Keputusan if Bersarang-------------------------------------- */

#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 Bersarang\n");printf("_________________________\n");printf("\n");printf("Menghitung Akar-akar PersamaanKuadrat\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 */D = B*B - 4*A*C;

/* Menyeleksi Nilai Determinan */if(D>=0)

if(D==0){X1 = -B / (2*A);printf("Dua akar riel kembar: \n");printf("X1 = X2 = %f\n",X1);

}else{

X1 = (-B + sqrt(D)) / (2*A);X2 = (-B - sqrt(D)) / (2*A);printf("Dua akar riel berlainan: \n");printf("X1 = %f\n",X1);printf("X2 = %f\n",X2);

}else{

X1 = -B / (2*A);X2 = sqrt(-D) / (2*A);printf("Dua akar imajiner berlainan: \n");printf("X1 = %f + %f i\n",X1,X2);printf("X2 = %f - %f i\n",X1,X2);

}system("pause");

}

STRUKTUR KEPUTUSAN BERSARANG/* ----------------------------Nama Program: ADP_Soal21.cppContoh Struktur Keputusandengan 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';

elseif (nilai>=71 && nilai <81)

huruf='B';elseif (nilai>=61 && nilai <71)

huruf='C';elseif (nilai>=51 && nilai <61)

huruf='D';else

huruf='E';

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

system("Pause");}

STRUKTUR KEPUTUSAN DENGAN SWITCH/CASE

Perintah SWITCH merupakanpernyataan yang dirancang untukmenangani pengambilan keputusanyang melibatkan sejumlah pilihanalternatif yang diantaranya untukmenggantikan pernyataan IFbertingkat.

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 menghitungbesarnya tunjangan yang akan diterima oleh seorangpegawai. Besar tunjangan tergantung dari jumlahanaknya. Jika pegawai tsb mempunyai anak kurangdari 3, maka tunjangannya adalah sebesar 20% darigaji kotornya. Jika jumlahnya lebih besar atau samadengan 3, maka tunjangannya adalah 30% dari gajikotornya. Gaji juga akan dipotong untuk keperluanasuransi, 5% untuk yang mempunyai anak kurang dari3 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