Anda di halaman 1dari 44

Catatan :

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

Gambarkan flowchart scanf(“%i”,&N);


untuk penggalan if(N >= 80)
program berikut ini : printf(“A”);
else if(N>= 70)
Apa yang tercetak bila
untuk Program-1 printf((“B”);
diinput nilai N = else if(N >= 60)
a. 85 printf(“C”);
b. 64 else if(N >= 40)
printf(“D”);
else printf(“E”);

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

printf C printf B printf C printf A

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

Jawab : Benar / Salah


A>C B>C

printf C printf B printf C printf A

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

C>B C>B C>A C>A

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 :

#include <stdio.h> Apa yang


void main() tercetak , bila
{ int N; diinput nilai
scanf( “ %i”, &N ); untuk N :
if (N < 50)
N = N + 50; a. 35
N = N / 2; b. 45
if (N < 30)
N = N + 30; c. 55
N = N / 2; d. 75
printf” %i “, N );
}

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

Program ditest 5 kali dengan nilai N


Program ditest 5 kali dengan nilai N yang berbeda).
yang berbeda). 4.17.a 4.18.a
4.17.b 4.18.b
4-17.c 4.18.c
4.17.d 4.18.d
4.17.e 4.18.e

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.

a. Menggunakan logical operator AND atau OR


( && atau || ).
b. Tidak boleh menggunakan logical operator AND
dan OR ( && dan ||).
Soal-25
Susun algoritma untuk menginput 3 buah bilangan
yang masing-masing menyatakan panjang sisi
sebuah segitiga. Kemudian periksa ketiga buah
garis tersebut . Bila ketiga buah garis (sisi)
tersebut panjangnya sama maka cetak perkataan
“SAMA SISI”. Bila hanya dua sisi yang sama maka
cetak perkataan “SAMA KAKI “. Tapi bila ketiga-
tiganya tidak sama maka cetak perkataan
“SEMBARANG”.
Soal-25
Susun algoritma untuk menginput 3 buah bilangan
yang masing-masing menyatakan panjang sisi
sebuah segitiga. Kemudian periksa ketiga buah
garis tersebut . Bila ketiga buah garis (sisi)
tersebut panjangnya sama maka cetak perkataan
“SAMA SISI”. Bila hanya dua sisi yang sama maka
cetak perkataan “SAMA KAKI “. Tapi bila ketiga-
tiganya tidak sama maka cetak perkataan
“SEMBARANG”.

a. Menggunakan logical operator AND atau OR


( && atau || ).
b. Tidak boleh menggunakan logical operator AND
dan OR ( && dan ||).
Soal-26.
Susun algoritma untuk menginput tiga
buah bilangan yang masing-masing
menyatakan besar sebuah sudut (dalam
derajat). Periksa ketiga buah bilangan tadi.
Bila total ketiganya = 180, maka cetak
perkataan “SEGI TIGA”, tapi bila totalnya
bukan 180, maka cetak perkataan “BUKAN
SEGI TIGA”.
Soal-27.
Susun algoritma untuk menginput tiga
buah bilangan yang masing-masing
menyatakan besar sudut dalam sebuah
segitiga.. Periksa ketiga buah bilangan
tadi. Cetak perkataan “SEGI TIGA SIKU
SIKU”, bila ada salah satu bilangan yang
nilainya sama dengan 90., bila tidak ada
yang bernilai 90, maka cetak perkataan
“SEGI TIGA BUKAN SIKU-SIKU”
Soal-28.
Susun algoritma untuk menginput tiga buah
bilangan yang masing-masing menyatakan besar
sebuah sudut (dalam derajat). Periksa ketiga buah
bilangan tadi.
- Bila total ketiga buah bilangan tersebut = 180,
maka periksa lagi apakah salah satu bilangan
ada yang nilainya = 90.
- Bila ada cetak perkataan “SEGI TIGA SIKU-SIKU”,
- Bila tidak ada sudut yang nilainya = 90 maka cetak
perkataan “ SEGI TIGA BUKANSIKU-SIKU”.
- Bila total ketiganya bukan 180, maka cetak
perkataan “BUKAN SEGITIGA”
Soal-29.

Susun program untuk menginput tiga


buah bilangan yang menyatakan susut-
sudut sebuah segitiga. Bila salah satu
bilangan nilainya sama dengan jumlah
nilai dua bilangan yang lain, maka cetak
perkataan “SIKU SIKU”, bila tidak maka
cetak perkataan “BUKAN SIKU-SIKU”.
Soal-30.
Susun program untuk menginput tiga
buah bilangan yang menyatakan nilai
ujian tiga buah mata kuliah. Cetak
perkataan “LULUS” bila nilai rata-rata
ketiga buah bilangan tersebut lebih besar
atau sama dengan 60. Bila nilai rata-rata
lebih kecil dari 60, maka cetak perkataan
“TIDAK LULUS”.
Soal-31.
Susun program untuk menginput tiga buah
bilangan yang menyatakan nilai ujian tiga buah
mata kuliah. Cetak perkataan “LULUS” bila
nilai rata-rata ketiga buah bilangan tersebut
lebih besar atau sama dengan 60 dan ketiga
buah bilangan tersebut tidak ada yang
mendapat nilai mati ( nilai dibawah 40). Bila
nilai rata-rata dibawah 60, atau ada nilai yang
mendapat nilai mati, maka cetak perkataan
“TIDAK LULUS”.
Soal-32.
Susun program untuk menginput tiga buah
bilangan yang menyatakan nilai ujian tiga buah
mata kuliah. Cetak perkataan “LULUS” bila nilai
rata-rata ketiga buah bilangan tersebut lebih besar
atau sama dengan 60 atau, walaupun nilai rata-
rata lebih kecil dari 60, tapi bila ada salah satu
mata kuliah yang nilainya lebih besar atau sama
dengan 80 maka kategorinya juga dinyatakan
lulus dan cetak perkataan “LULUS”. Bila syarat
diatas tidak terpenuhi maka cetak perkataan
“TIDAK LULUS”.
Soal-33.
Susun program untuk menginput tiga buah bilangan
yang menyatakan nilai ujian tiga buah mata kuliah.
Cetak perkataan “TIGA” bila ketiga mata kuliah
tersebut mendapat nilai lulus.
Cetak perkataan “DUA”, bila hanya dua dari dari
ketiga mata kuliah tersebut yang mendapat nilai
lulus.
Cetak perkataan “SATU” bila hanya satu mata kuliah
yang mendapat nilai lulus.
Cetak perkataan “NOL” bila ketiga mata kuliah
tersebut dinyatakan tidak lulus
Sebuah mata kuliah dinyatakan mendapat nilai lulus
bila nilainya lebih besar atau sama dengan 60.

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

Contoh : Bila jam keberangkatan : 8 : 45 : 30


dan jam kedatangan : 10 : 20 : 17
maka lama perjalanan : 1 : 34 : 47

Artinya, bila berangkat jam 8 lewat 45 menit 30 detik, dan


jam kedatangan adalah jam 10 lewat 20 menit 17 detik, maka
lama dalam perjalanan adalah 1 jam 34 menit dan 47 detik.
Soal-35.
Susun algoritma untuk menginput dua buah bilangan bulat
yang masing-masing merupakan Jumlah dan Harga Satuan
suatu barang yang dibeli. Kemudian cetak Harga Yang
Harus Dibayar, apabila berlaku ketentuan sebagai berikut :

1. Harga Barang = Jumlah barang * Harga Satuan.


2. Harga Yang Harus Dibayar = Harga Barang - Potongan.
3. Potongan dihitung sebagai berikut :

a. Bila Harga Barang lebih dari satu juta rupiah, maka


mendapat Potongan sebesar 10 % dari Harga
b. Barang.
Bila Harga Barang 501.000 sampai 1.000.000 rupiah
c. maka mendapat Potongan 5 % dari Harga Barang
Bila harga Barang kurang dari 501.000 rupiah, maka
tidak mendapat Potongan atau Potongan = nol
rupiah
Soal-36.
Susun algoritma untuk menginput sebuah bilangan bulat
yang menyatakan Jumlah m kubik air PAM yang digunakan.
Kemudian cetak Harga Yang Harus Dibayar, apabila berlaku
ketentuan sebagai berikut :
50 m kubik pertama, Harga per m kubik = Rp. 1000,-
50 m kubik kedua, Harga per m kubik = Rp. 1500,-
50 m kubik ketiga, Harga per m kubik = Rp. 2000,-
dan untuk m kubik selanjutnya berlaku harga Rp. 3000 per m kubik.

Secara tabel dapat digambarkan sebagai berikut :


0 50 51 100 101 150 151
Rp. 1000 Rp. 1500 Rp. 2000 Rp. 3000
per m kubik per m kubik per m kubik per m kubik
Contoh : Bila menggunakan 40 m kubik, maka akan membayar = 40 * 1000
Bila menggunakan 75 m kubik, maka akan membayar = 50 * 1000 + 25 * 1500

Bila menggunakan 175 m kubik,


maka akan membayar = 50 * 1000 + 50 * 1500 + 50 * 2000 + 25 * 3000

Anda mungkin juga menyukai