Anda di halaman 1dari 18

STRUKTUR KONTROL PERCABANGAN

ROSLINA, M.I.T

PEMILIHAN DENGAN INSTRUKDI IF DAN SWITCH

Pengambilan keputusan diperlukan jika ada dua atau lebih kondisi yang harus dipilih salah satu. Pernyataan-pernyataan yang dapat digunakan dalam pengambilan keputusan adalah : - Pernyataan if Pernyataan if-else Pernyataan switch...case Pernyataan-pernyataan diatas memerlukan suatu kondisi yaitu dibentuk dengan operator relasi dan/atau operator logika. Pernyataan if Sintak: if (kondisi) pernyataan

ROSLINA, M.I.T

ROSLINA, M.I.T

Pernyataan if-else Sintak: if (kondisi) pernyataan1 else pernyataan2

ROSLINA, M.I.T

Nested if Di dalam pernyataan if (atau if-else) bisa terdapat pernyataan if (atau if-else) yang lain. Bentuk umum: if(kondisi-1) if(kondisi-2) : if(kondisi-n) pernyataan else pernyataan; : else pernyataan; else pernyataan;

ROSLINA, M.I.T

Pernyataan Switch-Case Digunakan sebagai pengganti pernyataan if bertingkat (else-if). Ketika sebuah switch digunakan, Bahasa C akan menilai ekspresi switch, kemudian berpindah ke case yang pilihan dari pemilih sesuai dengan nilai dari ekspresi. Program mengeksekusi statement yang diminta dari point sebuah case sampai statement break dibaca, kemudian pindah ke statement awal setelah membaca akhir dari struktur switch. Jika tidak ada case yang sesuai, maka blok default akan dieksekusi.

ROSLINA, M.I.T

Pernyataan Switch-Case

ROSLINA, M.I.T

Pernyataan Switch-Case
Bentuk umum : switch(ekspresi) { case selector-1: blok 1 statemen ; ......... Break; case selector -2: blok 2 statemen; ......... Break; case selector -n: blok n statemen; ......... Break; default : blok default statemen; ........... Break; }
ROSLINA, M.I.T

PERCOBAAN

1. Program untuk menhitung nilai akhir suatu matakuliah


#include<stdio.h> main() { float absen,tugas,mid,uas,na; char nh; clrscr(); printf("Input nilai kehadiran : "); scanf("%f" ,&absen); printf("Input nilai Tugas : "); scanf("%f" ,&tugas); printf("Input nilai mid : "); scanf("%f" ,&mid); printf("Input nilai UAS :" ); scanf("%f" ,&uas); na=0.1*absen+0.2*tugas+0.3*mid+0.4*uas; printf("Nilai Akhir = %.2f\n",na); if (na>=80 && na<=100) nh='A'; if (na>=70 && na<=79) nh='B';
ROSLINA, M.I.T

if (na>=60 && na<=69) nh='C'; if (na>=50 && na<=59) nh='D'; if (na>=10 && na<=49) nh='E'; printf("Nilai Huruf = %c\n",nh); if (na>=60) printf("Anda Lulus\n" ); else printf("Anda tidak lulus\n"); getch(); }

ROSLINA, M.I.T

Program untuk menghitung diskon dan jumlah bayar harga barang #include <stdio.h> main() { float j,h,hbrg,diskon,jb; clrscr(); printf("Inputkan Jumlah Barang :"); scanf("%f",&j); printf("Inputkan Harga Barang :"); scanf("%f",&h); hbrg=j*h; printf("Jumlah Harga Barang = %.2f\n",hbrg); if (hbrg>=500000) {

ROSLINA, M.I.T

diskon=0.5*hbrg; jb=hbrg-diskon; } if (hbrg<500000) { diskon=0.2*hbrg; jb=hbrg-diskon; } printf("Jumlah Diskon = %.2f\n",diskon); printf("JumlaH Bayar = %.2f\n",jb); getch(); }

ROSLINA, M.I.T

TUGAS a. Buatlah algoritma dan program untuk menghitung determinan dan mencari akar-akar dari persamaan kuadrat : ax2 + bx + c = 0 , dengan ketentuan sbb : D = b2 - 4ac Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b / 2a Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu : x1 = (-b + sqrt(D)) / 2a x2 = (-b - sqrt(D)) / 2a Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu : x1 = -b / 2a + (sqrt(-D) / 2a) i x2 = -b / 2a - (sqrt(-D) / 2a) i Input : a, b, c Output : Nilai Determinan dan nilai akar-akar persamaan (x1& x2). Ketentuan : - untuk mencari akar dari x, gunakan : sqrt(x) yang didefinisikan pada <math.h>.
ROSLINA, M.I.T

TUGAS Buatlah algoritma dan program untuk menampilkan menu dan melakukan proses sbb : Menu : 1. Keliling lingkaran dengan rumus Kel=2*3.14*r 2. Menghitung luas lingkaran dengan rumus luas = 3.14 * r2 3. Menghitung volume silinder. Dengan rumus vol = 3.14 * r2 * t Ketentuan : gunakan switch-case

ROSLINA, M.I.T

TUGAS Buat program untuk mencetak kwitansi pemesanan makanan pada restoran fast food. Data input : Nama Paket, jumlah paket Output : KWITANSI PEMBAYARAN MAKANAN Nama Paket : Jumlah Paket : Harga/Paket : Jumlah Harga : PPn (10%) : Jumlah Bayar : Terima Kasih Atas Kunjungan Anda

ROSLINA, M.I.T

Dengan ketentuan : Nama Paket Harga/Paket 1 2 3 4 5 Jumlah harga=jumlah paket * Harga/Paket PPn = 10% * Jumlah harga Jumlah Bayar = Jumlah harga + PPn

15000 20000 22500 25000 27500

ROSLINA, M.I.T

Modifikasi Program berikut dengan menggunakan instruksi switch..case


#include<stdio.h> main() { char nip[9], nama[15]; int gol,st; float gapok,tjg,gk,pph,gb; clrscr(); printf("DAFTAR GAJI PEGAWAI\n"); printf("Inputkan NIP Pegawai : "); scanf("%s" ,&nip); printf("Inputkan Nama Pegawai : "); scanf("%s" ,&nama); printf("Inputkan Golongan (1-4) : "); scanf("%d" ,&gol); printf("Inputkan Status (1=Maried,2=single): "); scanf("%d" ,&st);

ROSLINA, M.I.T

if (gol==1) gapok=900000; if (gol==2) gapok=1250000; if (gol==3) gapok=1750000; if (gol==4) gapok=2500000; if (st==1) tjg=0.25*gapok; if (st==2) tjg=0.05*gapok; gk=gapok+tjg; pph=0.1*gapok; gb=gk-pph; printf("Gaji Pokok printf("Tunjangan printf("Gaji Kotor printf("PPh printf("Gaji Bersih getch(); } ROSLINA, M.I.T

: %.2f\n",gapok); : %.2f\n",tjg); : %.2f\n",gk ); : %.2f\n",pph); : %.2f\n",gb );

Anda mungkin juga menyukai