Ide soal.
Ide soal ini didasarkan pada ide cerita berikut ini.
Harga tiket pertandingan sepak bola, Rp 50.000,-. Bila membeli dua tiket (seharga Rp 100.000,-), maka ada bonus 1 tiket gratis. Buatlah program untuk menghitung biaya yang harus dibayar untuk sejumlah tiket yang diperlukan (diinputkan).
Contoh:
Seandainya akan dibeli 10 tiket, maka:
10 tiket à 3 x 3 + 1 à 3 x (2 x Rp 50.000,-) + Rp 50.000,- = Rp 350.000,-
Seandainya akan dibeli 23 tiket, maka:
23 tiket à 7 x 3 + 2 à 7 x (2 x Rp 50.000,-) + 2 x Rp 50.000,- = Rp 800.000,-
Seandainya akan dibeli jmTiket buah tiket, maka:
Hitung jmTiket / 3 . Seandainya diperoleh hasil bagi jm3 dan sisa bagi sm3, maka biaya adalah:
jm3 x (2 x Rp 50.000,-) + sm3 x Rp 50.000,-
Soal - A.
- Buat flowchart dari pseudocode di bawah.
- Jalankan program/flowchart tersebut. Gunakan data di sebelahnya sebagai input jika diperlukan. Berapa / apa hasilnya (output-nya)?
- Jika baris b ß 0 diganti dengan b ß 10, bagaimana hasilnya?
Program hitung
1 input a
2 b ß 0
3 t ß 0
4 while a > b
5 input qty, price
6 if qty > 5 then
7 p ß (qty x price) - 1
8 else
9 p ß (qty x price) + 1
10 endif
11 b ß b + qty
12 t ß t + p
13 end while
14 print b, t
|
Data input
10
6, 5
4, 2
5, 2
2, 3
|
Jawab-A
1.
b.
c. Nilai input a = 10; Karena b = 0, maka langkah-4, a > b memberi hasil salah (false). Langsung keluar dari loop ke langkah-14. Output: b,t yaitu 10,0
Soal - B.
- Gambarkan flowchart dari program di bawah ini.
- Jalankan program/flowchart tersebut. Gunakan data di sebelahnya sebagai input jika diperlukan. Berapa / apa hasilnya (output-nya)?
- Jika baris b ß 0 diganti dengan b ß 10 , bagaimana hasilnya?
Program hitung
1 b ß 0
2 t ß 0
3 input qty, price
4 while qty > 0
5 b ß b + qty
6 t ß t + (qty x price)
7 input qty, price
8 end while
9 if b > 0 then
10 if t > 10 then
11 print “berhadiah”
12 endif
13 endif
14 print b, t
|
Data input
2, 5
4, 2
0, 2
3, 3
|
Jawab-B
1.
2.
3. Nilai b dimulai dari 10. Dengan input yang sama, outputnya menjadi 16, 18.
Soal - C
1. Bagaimana / berapakah output jika diberikan input ini.
a. 4 ; output è ….
b. 11; output è ….
c. 99; output è ….
2. Pindahkan flowchart ke dalam pseudocode.
3. Seandainya, “jm > 2” diganti dengan “jm < 2”, ceritakan apa yang terjadi dengan program ini. Apa hasilnya?
|
Jawab-C
1.a
1.b.
1.c. Pengulangan 3-4-5/6-3 : selama nilai jm lebih besar dari nol; setiap putaran, jm dikurangi 3. Dengan nilai awal jm=99 (dari input), maka akan terdapat 33 kali pengulangan dan nilai akhir jm=0. Setiap pengulangan, nilai b bertambah 20. Sebanyak 33 kali pengulangan, nilai b = 20 x 33 = 660.
2.
1 b ß 0
harga ß 10
2 input jm
3 while jm > 0
4 if jm > 2 then
5 b ß b + harga + harga
jm ß jm - 3
else
6 b ß b + harga
jm ß 0
end while
7 print “berhadiah”
3. Seandainya kondisi loop diganti dengan “jm < 0”. Ada dua kemungkinan:
a. Dengan nilai input jm lebih besar atau sama dengan nol, maka tidak masuk ke dalam pengulangan 3‑4‑5/6‑3. Output: 0.
b. Dengan nilai input jm kurang dari nol, maka masuk ke dalam pengulangan 3‑4‑5/6‑3. Kondisi langkah-4 menghasilkan ‘No’, masuk langkah -6, kemudian jm = 0, dan keluar dari loop. Terjadi perubahan nilai b ß harga, output: 10.
Soal – D
1. Bagaimana / berapakah output jika diberikan input ini.
a. 5 ; output è ….
b. 10; output è ….
c. 99; output è ….
2. Seandainya, “j ß j - 3” diganti dengan “j ß j - jmTiket”, ceritakan apa yang terjadi dengan program ini. Apa hasilnya?
3. Tulislah pseudocode flowchart ini.
|
Jawab-D
1.
a. input 5
b. input 10
c. input 99 .
Pengulangan 3-4-3 : selama nilai j > 2 ; setiap putaran nilai j dikurangi 3.
Dimulai dengan nilai j=99, maka terdapat 33 kali pengulangan.
Setiap pengulangan, nilai bertambah 10.
Setelah 33 kali pengulangan, nilai akhir b menjadi 330.
Langkah-5, karena nilai j hasil pengulangan nol, maka langsung ke langkah-7.
Jadi, output: 330.
2. Seandainya, “j ß j - 3” diganti dengan “j ß j - jmTiket”, maka pengulangan 3-4-3 paling banyak terjadi satu kali.
Kemungkinan:
a. Jika input jmTiket > 2, maka setelah pengulangan nilai akhir b=10 dan j=0.
Kondisi langkah-5 salah, maka output: 10.
b. Jika input jmTiket <= 0,
maka tidak ada pengulangan sehingga nilai b=0
Kondisi langkah-5 salah, output: 0.
c. Jika input jmTiket ada pada 0<jmTiket <= 2,
maka tidak ada pengulangan sehingga nilai b=0
Kondisi langkah-5 benar, langkah-6 dikerjakan
sehingga b=jmTiket x h / 2 = jmTiket x 5
gambarnya rusak gan
BalasHapus