You are on page 1of 2

Contoh Olimpiade Sains Komputer dan Pembahasan

1. Sebuah tangki air memiliki enam buah kran air di bagian dasarnya. Jika semua kran dibuka maka tangki yang terisi penuh akan habis isinya dalam 8 jam. Berapa jamkah yang dibutuhkan untuk menghabiskan isi tangki bila hanya 4 buah kran yang dibuka? (OSK 2010) A. 9 B. 10 C. 11 D. 12 E. 14 2. Robi sekarang 15 tahun lebih tua dari pada adiknya Soni. Pada y tahun yang lalu umur Robi adalah dua kali dari umur Soni. Jika Soni sekarang berumur b tahun dan b > y, berapakah nilai b-y? (OSK 2010) A. 13 B. 14 C. 15 D. 16 E. 17 Jawaban : D Pembahasan : Air dalam tangki akan habis dalam waktu 8 jam jika dibuka dengan 6 kran, sehingga jika 4 buah kran yang dibuka maka akan menghabiskan waktu : 6.8 = 4x 48 = 4x x = 48/4 x = 12 Jawaban : C Pembahasan : Misalkan umur Robi = r dan dari soal diketahui umur Soni = b. Persamaan umur sekarang : r = 15 + b Persamaan umur pada y tahun yang lalu: r-y = 2 (b-y) b-y = (r-y) / 2 b-y = (15 + b - y) / 2 2 (b-y) = 15 + b y 2b-2y-b+y = 15 b-y = 15 Jawaban : D Pembahasan : W.Y = 32 X.Z = 50 W<X<Y<Z Misalkan dengan menggunakan logika didapatkan: W=4, X=5, Y=8, Z=10 4<5<8<10 , sehingga X.Y = 5.8 = 40 Jawaban : B Pembahasan : x = 20 , y = 35 x = 20 + 35 x = 55 y = 55 35 y = 20 x = 55 20 x = 35 Jadi, x = 35 dan y = 20

ARlTMATIKA DAN LOGIKA

3. Diketabui empat bilangan bulat positif W, X, Y dan Z yang juga memenuhi W< X < Y < Z. Jika hasil kali W dan Y adalah 32, dan hasil kali X dan Z adalah 50. Berapakah nilai X dikali Y? (OSK 2010) A. 20 B. 25 C. 36 D. 40 E. 44

4. Perhatikan algoritma berikut ini:


/ / x dan y bertipe integer x := 20; y := 35; x:= x + y; y:= x ~ y; x:= x - y;

ALGORITMlKA

Nilai variable x dan y setelah eksekusi operasi- operasi tersebut: (OSK 2010) A. x = 35, dan y =55 B. x = 35, dan y = 20 C. x = 15, dan y = 5 D. x = 15, dan y = -20 E. x = -35, dan y = 15

5. Suatu array X berindeks dari 1 s.d. 10 dan setiap elemennya berisi huruf-huruf berurutan dari 'a' sampai 'j'. Suatu algoritma bekerja pada array tersebut sbb. (prosedur swap(a,b) adalah menukarkan harga a dan b) for i:= 1 to 10 do swap(X[i],X[10-i+1]); for i:= 1 to 10 do write(X[i]); Hasil yang dicetak adalah: (OSK 2010) A. abcdefghij B. jihgfedcba C. ebacdhfgij D. fghijabcde E. cdefghijab 6. Perhatikan algoritma berikut ini: procedure Bintang(t: integer); begin if (t > 0) then begin for i := 1 to t do writeln(*); Bintang(t div 2); / / t dibagi 2 dan dibulatkan ke bawah end; end; Pemanggilan Bintang(1000) sebanyak? (OSK 2010) A. 2000 baris B. 1994 baris C. 1000 baris D. 500 baris E. 10 baris menghasilkan pencetakan "*"

Jawaban : A Pembahasan : Diketahui indeks 1 s.d. 10 merupakan runtutan dengan nilai a s.d. j. Dari program yang dituliskan yang perlu dicermati adalah listing program yang paling bawah, For i:= 1 to 10 do write(X[i]); Artinya : Untuk urutan 1 maka akan menuliskan X[1] = a, urutan 2 maka akan menuliskan X[2] = b, dst. Sehingga urutan nilainya : abcdefghij

Jawaban : E Pembahasan : Diketahui Bintang(1000), Dari program diketahui t = integer, karena 1000 adalah integer, maka t>0 untuk kondisi : i = 1, menuliskan tanda *, kemudian 1000 dibagi 2 menjadi 500, i = 2, menuliskan tanda *, kemudian 500 dibagi 2 menjadi 250, i = 3, menuliskan tanda *, kemudian 250 dibagi 2 menjadi 125, i = 4, kemudian 125 dibagi 2 menjadi 62, (karena dibulatkan ke bawah) i = 5, kemudian 62 dibagi 2 menjadi 31, i = 6, kemudian 31 dibagi 2 menjadi 15, i = 7, kemudian 15 dibagi 2 menjadi 7, i = 8, kemudian 7 dibagi 2 menjadi 3, i = 9, kemudian 3 dibagi 2 menjadi 1, i = 10, kemudian 1 dibagi 2 menjadi 0.

You might also like