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


Tidak ada komentar:
Posting Komentar