plulhiaaspsk35rxca8s signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb poli...

28
ALGORITMA & DASAR PEMROGRAMAN STRUKTUR KEPUTUSAN (DECISION)

Upload: fudy-faturrachim

Post on 11-Dec-2015

225 views

Category:

Documents


1 download

DESCRIPTION

cool

TRANSCRIPT

Page 1: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

ALGORITMA & DASAR PEMROGRAMAN

STRUKTUR KEPUTUSAN (DECISION)

Page 2: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSANStruktur 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

Page 3: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

SYARAT DALAM STRUKTUR KEPUTUSANSyarat 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.

Page 4: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSAN DENGAN PERINTAH IFBerguna 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.

Page 5: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

BENTUK UMUM STRUKTUR KEPUTUSAN DENGAN PERINTAH IFBentuk 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}

Page 6: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF TUNGGAL SEDERHANA

Page 7: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF MAJEMUK

Page 8: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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

Page 9: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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

Page 10: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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

Page 11: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSAN DENGAN PERINTAH if .. elseBentuk umum dari if .. else

if (kondisi)pernyataan1

elsepernyataan2

Bentuk umum ini berarti jika kondisi benar maka pernyataan1 akan dikerjakan dan jika kondisi salah maka pernyataan2 yang akan dikerjakan

Page 12: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

FLOWCHART STRUKTUR KEPUTUSAN DENGAN IF..ELSE

Page 13: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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

}

Page 14: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSAN DENGAN PERINTAH if .. else if...elseBentuk umum dari if .. else

if (kondisi1)pernyataan1

else if (kondisi2)pernyataan2

Bentuk ini disebut if..else if tangga, karena mempunyai bentuk seperti sebuah tangga

Page 15: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

FLOWCHART STRUKTUR KEPUTUSAN DENGAN if..else if..else

Page 16: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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 – 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.

Page 17: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

/* ------------------------- Nama Program: ADP_21 Contoh Struktur Keputusan dengan 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");}

Page 18: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

/* ------------------------------------- Nama Program: ADP_21 Contoh Struktur Keputusan dengan 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");}

Page 19: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSAN BERSARANG (nested if)Bentuk umum

if (kondisi1)if (kondisi2)

pernyataan1;else

pernyataan2;else

pernyataan3;

d

Page 20: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

FLOWCHART STRUKTUR KEPUTUSAN BERSARANG

Page 21: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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

Page 22: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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 <=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");}

Page 23: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSAN DENGAN SWITCH/CASEPerintah SWITCH merupakan pernyataan yang dirancang untuk menangani pengambilan keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk menggantikan pernyataan IF bertingkat.

Page 24: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

STRUKTUR KEPUTUSAN DENGAN SWITCH/CASEBentuk umum

switch (ekspresi){

case konstanta1;pernyataan1;break;

case konstanta2;pernyataan2;break;

default:pernyataanx;

}

Page 25: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

FLOWCHART STRUKTUR KEPUTUSAN SWITCH/CASE

Page 26: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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

Page 27: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

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.

Page 28: Plulhiaaspsk35rxca8s Signature e1f566eefec5c7628cc80a16a3a3ade461ec2e666bbc8b5e3b1bae84fa62addb Poli 150115031738 Conversion Gate01

Buatlah flowchart dan program dalam bentuk menu, untuk menghitung:a. Volume dari tabungb. Luas dan keliling persegi panjangc. Luas dan keliling bujur sangkar

Buatlah flowchart di sebuah kertas dan programnya dalam bentuk file