Pencabangan Bersyarat - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Pencabangan Bersyarat

Description:

Title: Judul Author: Debby Tanamal Last modified by: trisno Created Date: 4/16/2005 3:08:17 AM Document presentation format: On-screen Show (4:3) Company – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 25
Provided by: Debby202
Category:

less

Transcript and Presenter's Notes

Title: Pencabangan Bersyarat


1
Pencabangan Bersyarat
Pertemuan 05
Dasar Pemrograman Komputer TKL-4002 2010
2
Learning Outcomes
  • Pada akhir pertemuan ini, diharapkan mahasiswa
    me-miliki kemampuan untuk
  • Menggunakan struktur kendali pencabangan
    ber-syarat dalam bahasa pemrograman C.

3
Outline Materi
  • Pencabangan Bersyarat
  • Pernyataan if dan if-else
  • Pernyataan nested if-else dan switch-case
  • Operator kondisional

4
Pencabangan Bersyarat
  • Dalam sebuah algoritma, seringkali beberapa
    instruksi harus dilaksanakan bila suatu
    persyaratan dipenuhi (bernilai benar) dan
    sebaliknya.
  • Dalam struktur pencabangan bersyarat, suatu
    instruksi atau sekelompok instruksi dapat
    dilewati, sementara instruksi lain dijalankan.
  • Pernyataan pencabangan bersyarat terdiri dari
  • if
  • if-else
  • switch-case

5
Pernyataan if
  • Penggambaran dalam flow-chart

Statements sebelum if
Eks.boolean
true
Statement Statement ...
false
Statements setelah if
6
Pernyataan if
  • Sintaks
  • if (ekspresi boolean) statement
  • atau
  • if (ekspresi boolean)
  • statement1
  • statement2
  • Jika ekspresi boolean bernilai TRUE, maka
    statement atau blok statement akan dilaksanakan.

Blok statement
7
Pernyataan if-else
  • Penggambaran dalam flow-chart

Statements sebelum if
Eks.boolean
true
false
Statement_01 Statement_02 ...
Statement_11 Statement_12 ...
Statements setelah if
8
Pernyataan if-else
  • Sintaks
  • if (ekspresi boolean) statement_01
  • else statement_11
  • atau
  • if (ekspresi boolean)
  • statement_01
  • else
  • statement_11
  • ...
  • Jika ekspresi boolean bernilai TRUE, maka
    statement_01 atau blok statement_01 yang
    dilaksanakan, jika bernilai FALSE maka
    statement_01 atau blok statement_11 yang
    dilaksanakan.

Blok statement_01
Blok statement_11
9
Pernyataan if
include ltstdio.hgt include ltiostream.hgt int
main() int jmlAnak double gajiKtr,
tunjangan, persenTunjangan 0.2
printf("PERHITUNGAN TUNJANGAN GAJI\n\n")
printf("Gaji Kotor? ") scanf("lf", gajiKtr)
printf("Jumlah Anak? ") scanf("lf",
jmlAnak) if (jmlAnakgt2) persenTunjangan
0.3 tunjangan persenTunjangangajiKtr
printf("Besar Tunjangan Rp. 10.2lf\n\n",
tunjangan) system("PAUSE") return(0)
10
Pernyataan if
include ltstdio.hgt include ltiostream.hgt int
main() int jmlAnak float gajiKtr,
tunjangan, potongan, persenTunjangan 0.2,
persenPotongan 0.05 printf(PERHITUNGAN
TUNJANGAN POTONGAN GAJI\N\N) printf("Gaji
Kotor? ") scanf("f", gajiKtr)
printf("Jumlah Anak? ") scanf("f", jmlAnak)
if (jmlAnakgt2) persenTunjangan 0.3
persenPotongan 0.07
tunjangan persenTunjangangajiKtr potongan
persenPotongangajiKtr printf("Besar Tunjangan
Rp. 10.2f\n", tunjangan) printf("Besar
Potongan Rp. 10.2f\n\n", potongan)
system("PAUSE") return(0)
11
Pernyataan if-else
  • Contoh Program untuk mendapatkan akar-akar dari
    persamaan kwardrat.
  • Algoritma
  • 1. Dapatkan koefisien a, b, dan c dari keyboard
  • 2. Hitung diskriminan d bb 4ac
  • 3. Bila d gt 0 maka hitung x1 dan x2
  • Bila d lt 0 maka akar imajiner dan stop
  • 4. Stop
  • Menghitung x1, dengan rumus
  • Menghitung x2, dengan rumus

12
Pernyataan if-else
  • Contoh

include ltstdio.hgt include ltmath.hgt include
ltiostream.hgt int main() float
a,b,c,d,x1,x2 char ch
printf("PERHITUNGAN AKAR PERS. KUADRAT\n\n")
printf("Masukan koef. a ")
scanf("f",a) printf("Masukan koef. b
") scanf("f",b) printf("Masukan koef.
c ") scanf("f",c) d bb - 4 a
c if (d gt 0) x1 (-b sqrt(d)) / (2
a) x2 (-b - sqrt(d)) / (2 a)
printf("\nx1f\nx2f\n\n",x1,x2)
else printf("Akar Persamaan
Imajiner\n\n") system("PAUSE")
return 0
13
Pernyataan if-else Bersarang
  • Konstruksi if-else dapat digunakan secara
    bertingkat atau bersarang (nested)
  • Contoh
  • if (ekspresi boolean1) statement1
  • else if (ekspresi boolean2) statement2
  • else if (ekspresi boolean3) statement3
  • .....
  • .....
  • else if (ekspresi booleanN)
    statementN

14
Pernyataan if-else
  • Contoh pernyataan if-else bersarang

/ Program Kalkulator / includeltstdio.hgt int
main() float bil1, bil2 char op
while(1) printf(\n Ketik
bil1 operator bil2, ( Contoh 3 4) \n)
scanf(f c f, bil1, op, bil2)
if(op ) printf( f, bil1 bil2)
else if(op -) printf( f, bil1 -
bil2) else if(op )
printf( f, bil1 bil2)
else if(op /) printf( f, bil1
/ bil2)
else printf(error operator hanya ,-, dan /
\n) break
return 0
15
Pernyataan if-else Bersarang
  • Contoh pemakaian if-else bersarang untuk
    perhitungan akar persamaan kuadrat

include ltstdio.hgt include ltmath.hgt include
ltiostream.hgt int main() float
a,b,c,d,x1,x2 printf("PERHITUNGAN AKAR
PERS. KUADRAT\n\n") printf("Masukan
koef. a ") scanf("f",a)
printf("Masukan koef. b ") scanf("f",b)
printf("Masukan koef. c ") scanf("f",c)
16
Pernyataan if-else Bersarang
if (a ! 0) d bb - 4 a c
if (d gt 0) x1 (-b sqrt(d)) / (2 a) x2
(-b - sqrt(d)) / (2 a)
printf("\nx1f\nx2f\n\n",x1,x2)
else if (d0) x1 x2
-b/(2a)
printf("\nAkar persamaan kembar x1 x2
f\n\n", x1)
else printf("\nAkar persamaan
kompleks \n")
printf("x1 f fj\nx2 f - fj\n\n",

-b/2/a,sqrt(-d)/2/a, -b/2/a,sqrt(-d)/2/a)
else if
(b !0 ) printf("Bukan pers. kuadrat dan x
f\n\n", -c/b) else printf("Data yg
dientry tidak layak dioperasikan (data
salah)\n\n") system("PAUSE") return 0
17
Pernyataan if-else
  • Penulisan if-else harus jelas maksudnya....
  • Contoh penulisan if-else yang kurang jelas
    meskipun tidak salah.

include ltstdio.hgt include ltiostream.hgt int
main() int suhu printf("Input suhu ?
(F) ") scanf("d",suhu) if (suhult80)
if (suhugt30) printf("Panas\n\n")
else printf("Sejuk\n\n")
system("PAUSE") return(0)
18
Pernyataan switch-case
  • Pernyataan switch-case dapat dipergunakan sebagai
    pengganti pernyataan if-else, jika pernyataan
    if-else bertingkat terlalu banyak, sehingga
    menjadi sulit dibaca.
  • Sintaks pernyataan switch-case
  • switch (ekspresi)
  • case constant1 statements1 break
  • .
  • .
  • case constant2 statements2 break
  • default statements

19
Pernyataan switch-case
  • Pernyataan switch mengevaluasi ekspresi dan
    kemudian melihat isi case constant. Jika nilai
    ekspresi ada didalam constant list maka
    pernyataan dieksekusi. Jika tidak ada yang cocok,
    pernyataan default yang dieksekusi.
  • Catatan nilai ekspresi harus integer dan
    constant harus integer constant termasuk char.

20
Pernyataan switch-case
  • Struktur logika switch-case dapat digambarkan
    sbb.

true
case a
case a action(s)
break
false
true
case b
case b action(s)
break
false
true
case z
case z action(s)
break
false
default action(s)
21
Pernyataan switch-case
  • Contoh

include ltstdio.hgt include ltiostream.hgt int
main() float bil1, bil2 char op
scanf("f c f", bil1, op, bil2)
switch(op) case '' printf(" f", bil1
bil2) break case '-'
printf(" f", bil1 - bil2) break
case '' printf(" f", bil1
bil2) break case '/'
printf(" f", bil1 / bil2) break
default printf("operator TAK
DIKENAL")
printf("\n\n") system("PAUSE")
return(0)
22
Latihan
  • Buat program untuk menginput nilai IPK mahasiswa
    dan berikan penilaian
  • 3.5 - 4.0 Sangat Memuaskan
  • 3.0 - 3.4 Memuaskan
  • 2.5 2.9 Baik Sekali
  • 2.0 2.4 Baik
  • Dibawah 2.0 Kurang
  • Gunakan perintah if / if-else !

23
Latihan
  • Buatlah program komputer untuk menentukan
    nilai-huruf dari sebuah matakuliah yang nilainya
    terdiri dari nilai tugas, nilai kuis dan nilai
    UAS. Bila nilai-kuis gt UAS, nilai akhir dihitung
    dg rumus
  • Nilai akhir 40 (nilai-kuis) 40 (UAS) 20
    (tugas)
  • Bila nilai UASgt nilai-kuis, nilai akhir
    dihitung dg rumus
  • Nilai akhir 30 (nilai-kuis) 50 (UAS) 20
    (tugas)
  • Sedangkan konversi nilai-akhir menjadi nilai
    huruf menggunakan tabel berikut

Nilai Akhir Bobot Nilai Huruf
85 - 100 4 A Sangat Baik
75 - 84 3 B Baik
65 - 74 2 C Cukup
50 - 64 1 D Kurang
0 - 49 0 E Gagal
24
Latihan
  • Perhatikan potongan program dibawah ini

if(n gt 0) if(a gt b) z a
else z b
  • Jelaskan keyword else berpasangan dengan if yang
    mana ?
  • Perbaiki cara penulisan potongan program diatas,
    agar menjadi lebih jelas dibaca algoritmanya !
Write a Comment
User Comments (0)
About PowerShow.com