IF - THEN
Untuk semua flowchart IF - THEN - ELSE (tanpa ELSE)
dalam soal-soal
Pekerjaan Rumah ini,
berlaku pengertian F A>B T T
A>B
TRUE (T)
F
dan
FALSE (F) TRUE ke kanan TRUE ke kanan
sebagai berikut : FALSE ke kiri FALSE ke bawah
Soal-LM-4.1a Program-1
178
53
Program-2
Soal-LM-4.1b
scanf(“%i”,&N);
Gambarkan flowchart if(N >= 40)
untuk penggalan if(N >= 60)
program berikut ini :
if(N >= 70)
if(N >= 80)
Apa yang tercetak bila untuk
program-8 diinput nilai N = printf(“A”);
a. 85 else printf((“B”);
b. 64
else printf(“C”);
else printf(“D”);
else printf(“E”);
178
53
Soal-LM-4.2.
START
Tuliskan program
(penggalan program) scanf A,B,C
dalam Bahasa C
untuk flowchart
Gambar-1 berikut ini. A>B
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.3a.
START
Untuk Flowchart
Gambar-1, apa yang
scanf A,B,C
tercetak bila untuk A,
B dan C diinputkan
nilai : A>B
5 7 10
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.3b
START
Untuk Flowchart
Gambar-1, apa yang
scanf A,B,C
tercetak bila untuk A,
B dan C diinputkan
nilai : A>B
5 10 7
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.3c START
Untuk Flowchart
Gambar-1, apa yang
scanf A,B,C
tercetak bila untuk A,
B dan C diinputkan
nilai : A>B
7 5 10
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.3d START
Untuk Flowchart
Gambar-1, apa yang
scanf A,B,C
tercetak bila untuk A,
B dan C diinputkan
nilai : A>B
7 10 5
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.3e START
Untuk Flowchart
Gambar-1, apa yang
scanf A,B,C
tercetak bila untuk A,
B dan C diinputkan
nilai : A>B
10 5 7
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.3f START
Untuk Flowchart
Gambar-1, apa yang
scanf A,B,C
tercetak bila untuk A,
B dan C diinputkan
nilai : A>B
10 7 5
B>C A>C
END
Gambar-1 179
53
Soal-LM-4.4a
START
Untuk Flowchart
Gambar-2, apa yang scanf A,B,C
tercetak bila untuk A, B
dan C diinputkan nilai :
A>B
5 7 10
A>C B>C
END
Gambar-2 179
54
Soal-LM-4.4b
START
Untuk Flowchart
Gambar-2, apa yang scanf A,B,C
tercetak bila untuk A, B
dan C diinputkan nilai :
A>B
5 10 7
A>C B>C
END
Gambar-2 179
54
Soal-LM-4.4c START
Untuk Flowchart
Gambar-2, apa yang scanf A,B,C
tercetak bila untuk A, B
dan C diinputkan nilai :
A>B
7 5 10
A>C B>C
END
Gambar-2 179
54
Soal-LM-4.4d START
Untuk Flowchart
Gambar-2, apa yang scanf A,B,C
tercetak bila untuk A, B
dan C diinputkan nilai :
A>B
7 10 5
A>C B>C
END
Gambar-2 179
54
Soal-LM-4.4e START
Untuk Flowchart
Gambar-2, apa yang scanf A,B,C
tercetak bila untuk A, B
dan C diinputkan nilai :
A>B
10 5 7
A>C B>C
END
Gambar-2 179
54
Soal-LM-4.4f
START
Untuk Flowchart
Gambar-2, apa yang scanf A,B,C
tercetak bila untuk A, B
dan C diinputkan nilai :
A>B
10 7 5
A>C B>C
END
Gambar-2 179
54
Soal-LM-4.5 START
Periksa apakah flowchart
Gambar-2, maksudnya adalah
mencetak salah satu bilangan scanf A,B,C
yang nilainya terbesar dari
tiga buah bilangan yang
diinput. A>B
END
Gambar-2 179
54
Soal-LM-4.6 START
Lanjutkan Flowchart Gambar-3,
sehingga maksudnya
menggambarkan algoritma scanf A,B,C
mencetak salah satu bilangan
yang terbesar dari 3 buah
bilangan yang diinput. A>B
A>C B>C
Gambar-3
179
54
Soal-LM-4.7
Untuk semua kemungkinan nilai A, B, dan C pada
Flowchart Gambar-4 berikut ini, dari 8 jalur yang ada,
tunjukkan jalur mana saja yang tidak pernah dilalui.
Kemungkinan kombinasi nilai
START
A, B dan C sebagai contoh
adalah sebagai berikut :
A,B,C
a. 5, 7, 10 scanf
b. 5, 10, 7
c. 7, 5, 10
d. 7, 10, 5 A>B
e. 10, 5, 7
f. 10, 7, 5 A>C B>C
8 7 6 5 4 3 2 1
Gambar-4
179
54
Soal-LM-4.8
Isilah titik-titik ( … ) pada instruksi if() atau printf() program
berikut ini, dengan nama variabel yang tepat, sehingga
maksudnya menginput 3 buah bilangan, dan mencetak salah
satu bilangan yang nilainya terbesar.
a.
int A,B,C;
scanf(“%i %i %i”, &A,&B,&C);
if (A < B)
{if (B < C)
printf(“\n %i ”, … );
else
printf(“\n %i ”, … );
}
else
{if (A < C)
printf(“\n %i ”, … );
else
printf(“\n %i ”, … );
}
55
b. int A,B,C;
scanf(“%i %i %i”, &A,&B,&C);
if (B < C)
{if ( … < … )
printf( “\n %i“, A);
else
printf( “\n %i”, C);
}
else
{if ( … > … )
printf ( “\n %i“, A);
else
printf( “\n %i”, B);
}
55
Soal-LM-4.9
Diberikan program sebagai berikut :
55
Soal-LM-4.10
Diberikan program sebagai berikut :
#include <stdio.h>
void main() Apa yang tercetak ,
{ int N,A=0,B=0,C=0; bila diinput nilai
scanf( “ %i”, &N ); untuk N :
if ( N >= 5 )
{ A = A + 1;
N = N – 5; a. 9
}
if ( N >= 2 ) b. 5
{ B = B + 1;
N = N – 2; c. 4
}
if ( N >= 2 ) d. 2
{ C = C + 1;
N = N – 2;
}
printf(” %i %i %i“, A,B,C );
}
55
56
SLM-4.11. SLM-4.12.
Apa yang tercetak oleh masing-masing Apa yang tercetak oleh masing-masing
penggalan perogram-4.11-a sampai dengan penggalan perogram-4.12a sampai
program-4.11-c di-RUN, bila untuk nilai N dengan program-4-12-b di-RUN, bila
diinputkan nilai : a. 90 untuk nilai N diinputkan nilai :
b. 75 (Setiap program a. 90
ditest 4 kali dengan (Setiap program
c. 50 nilai N yang b. 75 ditest 4 kali dengan
d. 35 berbeda). c. 50 nilai N yang
d. 35 berbeda).
Program-4.11a
4.11-a scanf(“%i”,&N); Program-4.12-a
if(N > 50) 4.12-a scanf(“%i”,&N);
{ if( N>75 )
if(N > 50)
N = N -25;
{ if( N>75 )
}
N = N -25;
else
N = N – 10;
N = N + 10;
}
printf(“%i”, N);
else
Program-4.11b N = N + 10;
printf(“%i”, N);
4.11-b scanf(“%i”,&N);
if(N > 75) Program-4.12-b
N = N -25; 4.12-b scanf(“%i”,&N);
else if(N > 50)
{if ( N>50 ) { if( N>75 )
N = N -10; N = N - 25;
N = N + 20; } else
printf(“%i”, N); N = N – 10;
}
Program-4.11c N = N + 10;
4.11-c printf(“%i”, N);
scanf(“%i”,&N);
if(N > 50)
Program-4.12-c
{ N = N - 25;
if( N>75 ) 4.12-c scanf(“%i”,&N);
N = N -20; if(N > 50)
else { if( N>75 )
N = N -10; N = N - 25;
} else
printf(“%i”, N ); N = N – 10;
}
else
N = N + 10;
printf(“%i”, N);
SLM-4.13
Gambarkan flowchart untuk masing- SLM-4.14
masing penggalan program diatas Gambarkan flowchart untuk masing-
masing penggalan program diatas
Ada 3 jawaban : 4.13.a
Ada 3 jawaban :
4.13.b
4.13.c
SLM-4.15 SLM-4.16
Gambarkan flowchart untuk penggalan Gambarkan flowchart untuk penggalan
Program-4.15 berikut ini : Program-4.16 berikut ini :
Program-4.15 Program-4.16
scanf(“%i”,&N); scanf(“%i”,&N);
if(N >= 80) if(N >= 80)
printf(“A”); printf(“A”);
else if(N>= 70) if(N>= 70)
printf(“B”); printf(“B”);
else if(N >= 60) if(N >= 60)
printf(“C”); printf(“C”);
else if(N >= 40) if(N >= 40)
printf(“D”); printf(“D”);
else printf(“E”); printf(“E”);
SLM-4.17 SLM-4.18
Apa yang tercetak bila Program-4-15 Apa yang tercetak bila Program-4-16
dijalankan, dimana untuk nilai N dijalankan, dimana untuk nilai N
diinputkan nilai : diinputkan nilai :
a. 90 a. 90
b. 75 b. 75
c. 65 c. 65
d. 50 d. 50
e. 35 e. 35
57 57
SLM-4.19 SLM-4.21
Gambarkan flowchart untuk penggalan
Program-4.19 berikut ini : Susun program untuk menginput tiga buah
bilangan yang menyatakan nilai ujian tiga
buah mata kuliah. Cetak perkataan
Program-4.19 “LULUS” bila nilai rata-rata ketiga buah
bilangan tersebut lebih besar atau sama
scanf(“%i”,&N);
dengan 60. Bila nilai rata-rata lebih kecil
if(N >= 40)
dari 60, maka cetak perkataan “TIDAK
if(N >= 60) LULUS”.
if(N >= 70)
if(N >= 80)
SLM-4.22
printf(“A”);
Susun program untuk menginput tiga buah
else printf(“B”); bilangan yang menyatakan nilai ujian tiga
else printf(“C”); buah mata kuliah. Cetak perkataan
else printf(“D”); “LULUS” bila nilai rata-rata ketiga buah
bilangan tersebut lebih besar atau sama
else printf(“E”); dengan 60 dan ketiga buah bilangan
tersebut tidak ada yang mendapat nilai
mati ( nilai dibawah 40). Bila nilai rata-rata
SLM-4.20 dibawah 60, atau ada nilai yang mendapat
nilai mati, maka cetak perkataan “TIDAK
Apa yang tercetak bila Program-4.19 LULUS”.
dijalankan, dimana untuk nilai N
diinputkan nilai : a. 85
SLM-4.23
b. 75
c. 65 Susun program untuk menginput tiga buah
d. 55 bilangan yang menyatakan nilai ujian tiga
d. 35 buah mata kuliah. Cetak perkataan “LULUS”
Program ditest 5 kali dengan nilai N bila nilai rata-rata ketiga buah bilangan
yang berbeda). tersebut lebih besar atau sama dengan 60
4.20a atau, walaupun nilai rata-rata lebih kecil dari
4.20b 60, tapi bila ada salah satu mata kuliah
yang nilainya lebih besar atau sama dengan
4.20c 80 maka kategorinya juga dinyatakan lulus
4.20d dan cetak perkataan “LULUS”. Bila syarat
4.20e diatas tidak terpenuhi maka cetak perkataan
“TIDAK LULUS”.
58 58
Soal-24.
Susun algoritma untuk menginput 3 buah bilangan yang
masing-masing menyatakan panjang sebuah garis.
Kemudian periksa ketiga buah garis tersebut apakah dapat
membentuk sebuah segitiga atau tidak. Bila ketiga buah
garis tersebut dapat membentuk sebuah segitiga, maka
cetak perkataan “SEGI TIGA”. Sebaliknya bila ketiga buah
garis tersebut tidak mungkin membentuk sebuah segitiga,
maka cetak perkataan : “BUKAN SEGITIGA”.
Catatan : Pada sebuah segitiga. berlaku ketentuan yang
pasti, yaitu panjang sebuah sisi selalu lebih kecil
dibandingkan jumlah panjang kedua buah sisi yang lain.
Atau, jumlah panjang dua buah sisi selalu lebih besar dari
panjang sisi yang lain.
177
Soal-34.
Susun program untuk menginput jam keberangkatan dan
jam kedatangan, kemudian menghitung serta mencetak
jumlah waktu (lama) dalam perjalanan. Semua waktu
dinyatakan dengan notasi JAM, MENIT dan DETIK.
Catatan, perjalanan dilakukan pada hari yang sama, dan
notasi waktu dalam satu hari adalah mulai jam 00:00:00
sampai dengan jam 24:00:00