ALGORITMA & DASAR PEMROGRAMAN STRUKTUR KEPUTUSAN (DECISION)
Tujuan Instruksional Umum (TIU) : Mahasiswa dapat membuat algortima yang baik dan benar dan dapat mengimplementasikannya ke dalam bahasa pemrograman C++ Kriteria Unjuk Kerja (Tujuan Instruksional Khusus) : Dapat menjelaskan dan menggunakan konsep dasar penggunaan struktur keputusan untuk pembuatan program menggunakan bahasa C++
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 hubungan dan 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). { 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("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 Majemuk ----------------------------- */ #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\n”); 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("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"); 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 = X2 = , tanda i menunjukkan bahwa nilai tersebut adalah nilai imajiner.
/* ------------------------- 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"); /* 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); /* 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){ 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_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"); /* 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); /* 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){ 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 IF BERSARANG (nested if) Bentuk umum if (kondisi1) if (kondisi2) pernyataan1; else pernyataan2; pernyataan3; d
FLOWCHART STRUKTUR KEPUTUSAN BERSARANG
/* -------------------------------------- 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"); /* 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); /* 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); 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.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'; if (nilai>=61 && nilai <71) huruf='C'; if (nilai>=51 && nilai <61) huruf='D'; huruf='E'; 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; 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"); case 3: printf("Rabu"); case 4: printf("Kamis"); case 5: printf("Jum'at"); case 6: printf("Sabtu"); case 7: printf("Minggu"); default: printf("Kode tidak ada, hari tidak ditemukan\a"); } 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