Anda di halaman 1dari 45

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
SLM-3.1
Tulis program (penggalan
program) dalam bahasa C untuk START START
menyatakan algoritma yang
digambarkan oleh flowchart
Gambar-1 dan Gambar-2. : scanf scanf N
N

SLM-3.2
Untuk program yang N > 50
algoritmanya digambarkan N > 50
dengan Flocwchart Gambar-1,
apa yang tercetak bila untuk N = N - 25
N = N + 10 N = N - 25
nilai N diinputkan nilai :
a. 30
b. 50
N = N + 10
c. 65
SLM-3.3 printf N
Untuk program yang printf N
algoritmanya digambarkan
dengan Flocwchart Gambar-2 , END
apa yang tercetak bila untuk END
nilai N diinputkan nilai : Gambar-1
a. 30 Gambar-2
b. 50 176
c. 65 48
SLM-3.4 START

Tulis program (penggalan


perogram) dalam bahasa C untuk scanf N
menyatakan algoritma yang
digambarkan oleh flowchart
Gambar-3 N > 50

N = N + 10
N > 75
SLM-3.5
N = N - 25
Untuk program yang
algoritmanya digambarkan
dengan Flocwchart Gambar-3
diatas, apa yang tercetak bila N = N - 10
untuk nilai N diinputkan nilai :
a. 30
b. 50 Gambar-3
printf N
c. 65
d. 75
e. 90 END
176
48
SLM-3.6
START
Tulis program (penggalan
perogram) dalam bahasa C untuk
scanf N
menyatakan algoritma yang
digambarkan oleh flowchart
Gambar-4
N > 50

N > 75
SLM-3.7
N = N -10 N=N - 25
Untuk program yang
algoritmanya digambarkan
dengan Flocwchart Gambar-4
diatas, apa yang tercetak bila
untuk nilai N diinputkan nilai : N = N + 10 Gambar-4
a. 30
b. 50 printf N
c. 65
d. 75
END 176
e. 90
49
SLM-3.8 START
Tulis program (penggalan
perogram) dalam bahasa C
scanf N
untuk menyatakan algoritma
yang digambarkan oleh
flowchart Gambar-5. N > 75

SLM-3.9 N = N - 25
N > 50

Untuk program yang


algoritmanya digambarkan N = N - 10
dengan Flocwchart Gambar-5
diatas, apa yang tercetak bila
untuk nilai N diinputkan nilai : N = N + 20

a. 30
b. 50 Gambar-5 printf
c. 65
d. 75 177
e. 90 END
49
SLM-3.10
scanf(“%i”,&N);
Gambarkan
Flowchart untuk if(N > 50)
program berikut ini. if(N > 75)
N = N - 25;
else
N = N + 10;
printf(“%i”,N);
SLM-3.11
Untuk program program yang ditulis
pada Soal-PR-3.10 diatas,
apa yang tercetak bila untuk N
diinputkan nilai : a. 60
b. 90
c. 30
177
49
SLM-3.12 START

Tulis program (penggalan


perogram) dalam bahasa C scanf N
untuk menyatakan algoritma
yang digambarkan oleh
flowchart Gambar-6. N < 50

N = N + 50
SLM-3.13

Untuk program yang


N > 75
algoritmanya digambarkan
dengan Flocwchart Gambar-6,
N = N+10 N = N - 20
apa yang tercetak bila untuk
nilai N diinputkan nilai :
a. 20
b. 30
c. 40 printf N

d. 50 177
e. 60 END Gambar-6
50
SLM-3.14a Apa yang tercetak oleh penggalan Program-1
bila untuk N diinputkan nilai :
a. 30
b. 50
c. 75
(Program ditest 3 kali dengan nilai N yang
berbeda).
Program-1

SLM-3.15a scanf(“%i”,&N);
if(N>50)
{ N = N + 10; }
Gambarkan
Flowchat untuk else
Program-1. { N = N - 25; }
printf(“\n%i”, N);
177
50
SLM-3.14b Apa yang tercetak oleh penggalan Program-2
bila untuk N diinputkan nilai :
a. 30
b. 50
c. 75
(Program ditest 3 kali dengan nilai N yang
berbeda).

Program-2

SLM-3.15b scanf(“%i”,&N);
if(N>50)
Gambarkan N = N + 10;
Flowchat untuk
Program-2.
else
N = N - 25;
printf(“\n%i”, N); 177
50
SLM-3.14c Apa yang tercetak oleh penggalan Program-3
bila untuk N diinputkan nilai :
a. 30
b. 50
c. 75
(Program ditest 3 kali dengan nilai N yang
berbeda).

Program-3

SLM-3.15c scanf(“%i”,&N);
Gambarkan if(N>50) N = N + 10;
Flowchat untuk
Program-3. else N = N - 25;
printf(“\n%i”, N);
177
50
SLM-3.16a Apa yang tercetak oleh penggalan Program-4
bila untuk N diinputkan nilai :
a. 30
b. 50
c. 75
(Program ditest 3 kali dengan nilai N yang
berbeda).

Program-4
scanf(“%i”,&N);
SLM-3.17a if(N < 50)
{ N = N + 30; }
Gambarkan
Flowchat untuk if(N > 50)
Program-4. { N = N - 25; }
N = N + 10;
printf(“\n%i”, N);
177
51
SLM-3.16b Apa yang tercetak oleh penggalan Program-5
bila untuk N diinputkan nilai :
a. 30
b. 50
c. 75
(Program ditest 3 kali dengan nilai N yang
berbeda).
Program-5
scanf(“%i”,&N);
SLM-3.17b if(N < 50)
N = N + 30;
Gambarkan if(N > 50)
Flowchat untuk
Program-5.
N = N - 25;
N = N + 10;
printf(“\n%i”, N);
177
51
Soal-PR-3.16c Apa yang tercetak oleh penggalan Program-6
bila untuk N diinputkan nilai :
a. 30
b. 50
c. 75
(Program ditest 3 kali dengan nilai N yang
berbeda).

Program-6

Soal-PR-3.17c scanf(“%i”,&N);
Gambarkan
if(N < 50) N = N + 30;
Flowchat untuk if(N > 50) N = N - 25;
Program-6. N = N + 10;
printf(“\n%i”, N);
177
51
Soal-22 Program-7

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-7 printf((“B”);
diinput nilai N = else if(N >= 60)
a. 85 printf(“C”);
b. 64 else if(N >= 40)
printf(“D”);
else printf(“E”);
Program-8
Soal-23.
scanf(“%i”,&N);
Gambarkan flowchart if(N >= 40)
untuk penggalan
program berikut ini : if(N >= 60)
if(N >= 70)
Apa yang tercetak bila untuk if(N >= 80)
program-8 diinput nilai N =
a. 85 printf(“A”);
b. 64
else printf((“B”);
else printf(“C”);
else printf(“D”);
else printf(“E”);
Soal-24.
Gambarkan flowchart untuk Program-9
penggalan program yang scanf(“%i”,&N);
ditulis pada Program-9 : if(N > 50)
{if(N>75)
N = N -25;
Apa yang tercetak bila N = N -10;
untuk Program-9, diinput }
nilai N = else
a. 90 N = N + 10;
b. 75 printf(“%i”, N);
c. 50
d. 35
Soal-25.
Gambarkan flowchart untuk Program-10
penggalan program yang scanf(“%i”,&N);
ditulis pada Program-9 : if(N > 50)
{ if(N>75)
N = N -25;
Apa yang tercetak bila else
untuk Program-10, diinput N = N -10;
nilai N = }
a. 90 N = N + 10;
b. 75 printf(“%i”, N);
c. 50
d. 35
Soal-26.
Gambarkan flowchart untuk Program-11
penggalan program yang scanf(“%i”,&N);
ditulis pada Program-9 : if(N > 50)
{ if(N>75)
N = N -25;
Apa yang tercetak bila else
untuk Program-11, diinput N = N -10;
nilai N = }
a. 90 else
b. 75 N = N + 10;
c. 50 printf(“%i”, N);
d. 35
Soal-27.
Gambarkan flowchart untuk Program-12
penggalan program yang
ditulis pada Program-9 :
scanf(“%i”,&N);
if(N > 50)
{ if(N>75)
Apa yang tercetak bila
N = N -25;
untuk Program-12, diinput }
nilai N = else
a. 90 N = N + 10;
b. 75
c. 50
printf(“%i”, N);
d. 35
Soal-28.
Gambarkan flowchart untuk Program-13
penggalan program yang
ditulis pada Program-9 :
scanf(“%i”,&N);
if(N > 75)
N = N -25;
Apa yang tercetak bila
else
untuk Program-13, diinput { if(N>50)
nilai N = N = N -10;
a. 90 N = N + 10;
b. 75
c. 50
}
d. 35 printf(“%i”, N);
Soal-29.
Gambarkan flowchart untuk Program-14
penggalan program yang
ditulis pada Program-9 :
scanf(“%i”,&N);
if(N > 50)
{ N = N -25;
Apa yang tercetak bila
if (N>75)
untuk Program-14, diinput N = N - 20;
nilai N = else
a. 90 N = N - 10;
b. 75
c. 50
}
d. 35 printf(“%i”, N);
Soal-30.
Susun program (penggalan START
program) dalam Bahasa C
untuk flowchart Gambar-7.
scanf A,B,C

Soal-31. Gambar-7
Periksa Flowchart Gambar-7.
Apa yang tercetak bila untuk A>B
nilai A, B, dan C berturut-turut
diinputkan nilai sebagai berikut :
B>C A>C

a. 5, 7, 10 Tercetak : ……
printf
C printf B printf C printf
A
b. 5, 10, 7 Tercetak : ……
c. 7, 5, 10 Tercetak : ……
d. 7, 10, 5 Tercetak : ……
e. 10, 5, 7 Tercetak : …… END
f. 10, 7, 5 Tercetak : ……
Soal-17.
Periksa Flowchart Gambar-8. START
Apa yang tercetak bila
untuk nilai A, B, dan C
berturut-turut diinputkan scanf A,B,C
nilai sebagai berikut :
Gambar-8
A>B
a. 5, 7, 10 Tercetak : ……
b. 5, 10, 7 Tercetak : …… A>C B>C
c. 7, 5, 10 Tercetak : ……
printf C printf
B printf
C printf A
d. 7, 10, 5 Tercetak : ……
e. 10, 5, 7 Tercetak : ……
f. 10, 7, 5 Tercetak : ……
END
Soal-18.
START
Dari hasil (jawaban) yang
diperoleh dari Soal-17, dapat
diambil kesimpulan bahwa scanf A,B,C
Flowchart Gambar-8
menggambarkan algoritma Gambar-8
mencetak salah satu A>B
bilangan yang nilainya
terbesar dari 3 buah bilangan
yang diinput . A>C B>C

Jawab : Benar / Salah. printf


C printf
B
printf
C
printf
A

END
Soal-19. START
Lanjutkan Flowchart Gambar-9,
sehingga maksudnya menggam- scanf A,B,C
barkan algoritma mencetak salah
satu bilangan yang nilainya
A>B
terbesar dari 3 buah bilangan
yang diinput.
A>C B>C

Gambar-9
START
Soal-20.
Untuk semua scanf A,B,C
kemungkinan nilai A, B,
dan C pada Flowchart
A>B
Gambar-10, dari 8 jalur
yang ada, tunjukkan
A>C B>C
jalur mana saja yang
tidak pernah dilalui.
C>B C>B C>A C>A

Kemungkinan 8 7 6 5 4 3 2 1
kombinasi nilai A,
B dan C sebagai Gambar-10
contoh adalah a. 5, 7, 10
sebagai berikut : b. 5, 10, 7 Periksa untuk semua
c. 7, 5, 10 kemungkinan nilai A,B,
dan C seperti yang
d. 7, 10, 5 dicontohkan, lalu
e. 10, 5, 7 temukan jalur mana saja
f. 10, 7, 5 yang tidak pernah dilalui.
Soal-21.

Susun algoritma untuk menginput 3 buah bilangan


(anggap ketiga buah bilangan tersebut nilanya
tidak sama satu dengan yang lainya). Kemudian
cetak salah satu bilangan yang mempunyai nilai
yang terkecil.
a. Menggunakan logical operator AND atau OR
( && atau || ).
b. Tidak boleh menggunakan logical operator AND
dan OR ( && dan ||).
Soal-22.
Susun algoritma untuk menginput 3 buah
bilangan (anggap ketiga buah bilangan tersebut
nilanya tidak sama satu dengan yang lainya).
Kemudian cetak ketiga buah bilangan tersebut
urut mulai bilangan yang nilainya terbesar sampai
dengan nilai yang terkecil.

a. Menggunakan logical operator AND atau OR


( && atau || ).
b. Tidak boleh menggunakan logical operator AND
dan OR ( && dan ||).
Soal-23
Susun algoritma untuk menginput tiga buah
bilangan. Cetak perkataan “BENAR”, bila salah
satu bilangan merupakan jumlah dari dua buah
bilangan yang lain., selainnya (bila tidak) cetak
perkataan “SALAH”.

a. Menggunakan logical operator AND atau OR


( && atau || ).
b. Tidak boleh menggunakan logical operator AND
dan OR ( && dan ||).
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