Olimpiade Sains Kota (OSK) 2010 - Komputer

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?

A. 9

B. 10

C. 11

D. 12

E. 14

2

Adi dan sepuluh temannya sedang mendapatkan tugas prakarya. Mereka harus membuat dari kertas warna-warni bilangan-bilangan dari 1 sampai dengan 100 kemudian menempelkannya di selembar karton yang panjang. Adi kebagian untuk membuat semua angka lima (5) yang dibutuhkan. Berapa banyak angka lima yang harus Adi buat?

A. 20

B. 11

C. 19

D. 12

E. 10

3

Tiga orang kakak-beradik memiliki perbedaan umur antara yang tertua dan termuda adalah 10 tahun. Empat tahun yang lalu umur anak kedua dua kali dari umur yang ketiga Sementara 15 tahun yang lalu umur yang pertama dua kali umur yang kedua. Jika umur-umur mereka sekarang dijumlahkan berapakah itu?

A. 48

B. 35

C. 45

D. 50

E. 40

4

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 ?

A. 13

B. 14

C. 15

D. 16

E. 17

5

Enam acara pertunjukan kesenian akan berlangsung dari jam 17.00 hingga jam 21.00. Antara acara satu dengan acara berikutnya harus terdapat jeda selama 5 menit. Setiap acara akan diberi jatah waktu yang sama kecuali acara ketiga akan diberikan waktu lebih lama 10 menit dan acara terakhir akan diberi waktu tepat 1 jam. Berapa lama waktu jatah waktu acara ketiga?

A. 29

B. 27 1/2

C. 30

D. 39

E. 17 3/4

6

Diketahui 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. Berpakah nilai X dikali Y ?

A. 20

B. 25

C. 36

D. 40

E. 44

7

Diketahui empat bilangan bulat positif W, X, Y dan Z. Jika hasil kali W dan Y adalah 32, dan hasil kali X dan Z adalah 100. Sementara diketahui juga hasil kali Y dan Z adalah delapan kali hasil kali W dan X. Berapakah y dikali z ?

A. 100

B. 160

C. 80

D. 200

E. 44

8

Jika operasi (a mod b) adalah sisa dari operasi pembagian a oleh b, berapakah (77.777.777 mod 100) + (55.555.555 mod 10)?

A. 5

B. 12

C. 75

D. 77

E. 99

9

Seutas kabel serat optik yang panjangnya 200 meter diketahui terputus didalamnya tepat di satu posisi. Karena secara fisik tidak terlihat adanya tanda-tanda dimana lokasi yang putus itu, kabel dipotong-potong sbb.

  • Pertama kabel dipotong ditengah, lalu masing-masing diperiksa,

  • Bagian yang baik disimpan untuk disambung-sambungkan kembali nanti,

  • Sementara yang di dalamnya terputus kembali dipotong ditengahnya, hingga potongan sudah terlalu kecil, langsung dibuang.

Potongan-potongan kabel yang baik kemudian disambung-sambungkan kembali dengan biaya penyambungan 25 ribu per sambungan. Kabel yang sudah disambung-sambungkan itu nanti masih dapat dijual seharga 5 ribu per meter. Asumsikan bahwa tidak terjadi perubahan panjang yang signifikan sebelum dan setelah penyambungan, berapa banyak sambungan yang dibuat agar nilai penjualan setelah dikurangi biaya penyambungannya adalah sebesarbesarnya?

A. 3

B. 4

C. 5

D. 6

E. 7

10

Ada 3 pedagang keliling: Ali, Bahar, dan Cholil, yang secara berkala mengunjungi kota A untk berjualan.

  • Ali mengunjungi kota A setiap 10 hari sekali dan terakhir ia datang 3 hari yang lalu.

  • Bahar mengunjungi kota A setiap 6 hari sekali dan besok ia akan datang.

  • Cholil mengunjungi kota A setiap dua minggu sekali dan terakhir ia datang 5 hari yang lalu.

Berapa hari lagikah berikutnya mereka akan bersamaan mengunjungi kota A pada hari yang sama?

A. 101

B. 15

C. 45

D. 66

E. 37

Deskripsi untuk soal nomor 11 - 13

Sinbad menemukan informasi rahasia keberadaan suatu peti harta karun di sebuah pulau terpencil berikut sebuah kertas petunjuk. Nampaknya karena kertas petunjuknya sudah lapuk maka sebagian tulisan tidak terbaca, yang terbaca hanyalah:

"dari pohon beringin, melangkah ke timur ? langkah, lalu ke utara ? langkah, dan ke barat ? langkah, kemudian melangkah ke utara ? langkah, dan berakhir dengan 1 langkah ke timur".

Tanda "?" seharusnya berisi angka satu dijit dan bukan 0. Tanda "#": laut/air. Tanda ".": daratan. Tanda "@": posisi pohon beringin. Jarak antar tanda arah vertical/horizontal adalah satu langkah.

11

Ada berapa posisi harta karun yang mungkin?

A. 2

B. 5

C. 3

D. 1

E. 4

12

Jika ada informasi bahwa jumlah langkah adalah yang paling banyak dari semua kemungkinan maka berapa langkah kah itu?

A. 15

B. 9

C. 11

D. 6

E. 10

13

Jika waktu itu malam hari dengan langit gelap gulita sehingga Sinbad kehilangan orientasi arah mata angin, ada berapa banyak kemungkinan lokasi lain yang bisa ditemukan jika timur tertukar menjadi utara /selatan / barat saja?

A. 0

B. 1

C. 2

D. 3

E. 4

Deskripsi untuk soal nomor 14 - 17

Sebuah alat musik baru sedang dibuat. Musik hanya akan membunyikan 5 nada saja: do, re, mi, fa, dan sol. Terdapat dua tombol untuk membunyikan nada-nadanya: tombol merah, dan tombol putih. Nada yang akan dibunyikan saat penekanan suatu tombol tergantung pada nada sebelumnya dan tombol apa yang ditekan. Pada saat dihidupkan alat musik dalam keadaan 'reset'. seperti tabel berikut (Sementara, pada saat dihidupkan maka mesin akan langsung membunyikan nada do).

Nada sebelumnya Setelah menekan tombol merah Setelah menekan tombol putih
do mi re
re fa mi
mi fa mi
fa sol fa
sol mi do
14

Jika ditekan 7 kali tombol merah setelah dihidupkan maka nada apakah yang terakhir terdengar?

A. do

B. re

C. mi

D. fa

E. sol

15

Jika sejak dihidupkan diikuti beberapa kali penekanan tombol dan terdengan nada-nada "do-re-mi-fa-sol-do" maka berapa kali tombol merah ditekan dalam rangkaian penekanan itu?

A. 3

B. 0

C. 4

D. 1

E. 2

16

Setelah dihidupkan dilakukan penekanan 4 kali tombol maka berapa banyak kemungkinan nada terakhir yang mungkin jika diketahui nada setelah penekanan ke 3 bukan mi dan bukan fa?

A. 1

B. 5

C. 2

D. 4

E. 3

17

Sejak nada do terakhir terdengar sedikitnya berapa kali penekanan yang harus dilakukan agar nada do kembali muncul?

A. 1

B. 2

C. 3

D. 4

E. 5

Deskripsi untuk soal nomor 18 - 22

Enam bilangan bulat P, R, S, T, V, dan W saling berbeda dan secara acak mengambil salah satu dari bilangan 10 sampai dengan 15. Diketahui juga bahwa:

P < S, R < T, R < V, T – W = 2, dan P adalah salah satu 12 atau 13

18

Urutan menaik mana yang memenuhi:

A. R, W, P, T, V, S

B. W, V, T, R, P, S

C. R, W, T, P, V, S

D. R, T, W, P, V, S

E. W, S, T, P, R, V

19

Kalau P = 13 mana yang benar?

A. S = 15

B. S = 12

C. W = 14

D. V = 12

E. V = 10

20

Jika W = 13, mana yang pasti benar?

A. V = 10

B. T = 11

C. R = 14

D. S = 10

E. P = 14

21

Jika P > T, semua ini bisa benar KECUALI:

A. W = 10

B. P = 13

C. V = 11

D. R = 11

E. T = 12

Deskripsi untuk soal nomor 22 - 24

Enam siswa peserta olimpiade sains nasional bidang informatika bernama J, K, L, M, N dan O. Mereka ditempatkan secara acak pada deretan bangku bernomor 1 sampai dengan 6 dari kiri ke kanan. Ada beberapa hal yang diketahui:

  • J pada bangku keempat.

  • L dan N pada bangku di sebelah kiri dari bangku di mana K duduk.

  • M duduk di sebelah kiri dari L.
22

Mana urutan cara mereka duduk dari kiri ke kanan yang memenuhi?

A. M, N, L, J, O, K

B. K, O, N, J, L, M

C. L, M, N, K, O, J

D. O, J, M, K, N, L

E. O, L, M, J, N, K

23

Mana yang pasti benar :

A. K pada posisi di sebelah kiri dari J.

B. N pada posisi di sebelah kiri dari L.

C. N pada posisi di sebelah kiri dari M.

D. O pada posisi di sebelah kiri dari K.

E. M pada posisi di sebelah kiri dari K.

24

Jika O pada bangku terkanan, siapa yang duduk di bangku kelima ?

A. N

B. J

C. L

D. M

E. K

Deskripsi untuk soal nomor 25 - 27

Pada suatu ketika sebuah bis sekolah mengantar pulang enam siswanya yaitu J, K, L, M, N, P dan Q. Sekolah berada pada kilometer (KM) ke 1 pada sebuah jalan raya. Saat menurunkan siswa, bis hanya mungkin berhenti pada halte-halte yang posisinya di KM ke 2, ke 3, ke 4 dan seterusnya. Kita sebut halte 2, halte 3, halte 4 dan seterusnya. Pada saat itu, di halte 3 dan halte 6, tidak ada siswa yang turun. Ketika bis tersebut melaju setelah berhenti di halte 8, hanya tersisa 3 orang siswa di dalam bis dan P dan Q tidak termasuk di dalamnya. Diketahui juga P turun terlebih dahulu dari pada Q (tidak pada halte yang sama).

25

Jika J turun dari bis pada dua halte setelah M turun, di manakah kemungkinan J turun dari bis?

A. Halte 2 dan halte 4.

B. Halte 2, halte 4 dan halte 7.

C. Halte 5, halte 7 dan halte 8.

D. Halte 7 dan halte 8.

E. Halte 4 dan halte 7.

26

Jika K dan L sudah turun tapi tidak bersamaan sebelum bis meninggalkan halte 8, manakah pernyataan dibawah ini yang paling salah ?

A. J tidak turun dari dalam Bis

B. M tidak turun dari dalam Bis

C. N tidak turun dari dalam Bis

D. Q tidak turun dari dalam Bis

E. Semua pilihan diatas benar

27

Jika P turun dari bis setelah M (dan tidak pada halte yang sama), dan tidak ada yang turun di halte 7, maka

A. M turun setelah J.

B. Q turun setelah J.

C. Semua orang yang turun dari bis, turun pada pemberhentian yang berbeda.

D. P kemungkinan meninggalkan bis pada halte 5 atau halte 8.

E. Q kemungkinan turun pada halte 5 atau halte 8.

Deskripsi untuk soal nomor 28 - 30

Tiga orang pecatur senior L, M, N dan 3 orang pecatur pemula O, P, Q bertanding dalam sebuah turnamen. Semua pecatur akan bertanding satu sama lain masing-masing satu kali pertemuan.

  • Diawal turnamen nilai seluruh peserta adalah 0.

  • 1 angka diberikan jika berhasil mengalahkan pecatur pemula.

  • 2 angka diberikan jika berhasil mengalahkan pecatur senior.

  • Jika pecatur senior kalah dalam satu game, nilainya akan dikurangi 2.

  • Jika pecatur pemula kalah dalam satu game, nilainya akan dikurang 1.

  • Jika sebuah pertandingan berakhir dengan seri, maka pertandingan tersebut akan diulang.
28

Berapakah nilai maksimum yang dapat diraih oleh seorang pecatur senior, jika di menderita 2 kekalahan dalam turnamen tersebut ?

A. 4

B. 2

C. 0

D. 3

E. 1

29

Berapa permainan yang harus dimenangkan oleh seorang pecatur pemula untuk menempatkan posisinya dalam klasemen diatas seorang pecatur senior yang pernah kalah sekali dari pecatur senior lainnya ?

A. 2

B. 4

C. 3

D. 1

E. 5

30

Jika P memenangkan seluruh permainan kecuali satu game melawan L dan tidak kalah dari pemenang dalam turnamen tersebut, Siapakah yag mungkin akan menjadi juara dalam turnamen tersebut ?

A. O atau Q

B. L atau P

C. M atau N

D. Salah satu diantara M, N, O atau Q

E. Semua pemain kecuali L atau P

31

Perhatikan potongan algoritma berikut ini:

// x dan y bertipe integer
x := -16; y := 8;
x := x + y;
x := y – x;

Nilai variable x dan y setelah eksekusi operasioperasi tersebut:

A. x=-8 dan y = 8

B. x = 24 dan y = -8

C. x = 8 dan y = 18

D. x = 8 dan y = -16

E. x = -8 dan y = 16

32

Perhatikan potongan algoritma berikut ini:

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

Nilai pasangan variabel x dan y setelah operasi x:=x-y dieksekusi adalah...

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

33

Berikut ini suatu potongan algoritma:

procedure cetak(a : byte);
begin
 while a > 0 do
 begin
 write(a mod 2);
 a := a shr 1;
 end;
end;

Prosedur di atas bila dipanggil dengan parameter 123 (yaitu cetak(123)) akan mencetak:

A. 123

B. 321

C. 123613015731

D. 1111011

E. 1101111

34

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:

A. abcdefghij

B. jihgfedcba

C. ebacdhfgij

D. fghijabcde

E. cdefghijab

35

Dari soal no 34, jika algoritma yang bekerja pada array tersebut adalah sbb

for i := 2 to 9 do
 swap(X[i-1],X[i+1];
for i := 1 to 10 do write(X[i]);

Hasil yang akan dicetak adalah

A. ebacdhfgij

B. abcdefghij

C. jihgfedcba

D. cdefghijab

E. fghijabcde

36

Dari soal no 34, suatu algoritma bekerja pada array tersebut sbb

procedure lagi(a: integer; b: integer);
var t: integer;
begin
 t := (a+b) div 2;
 if (a <= b) then begin
 write(X[t]);
 lagi (a,t-1);
 lagi (t+1,b);
 end
end;

pemanggilan lagi(1,10) akan mencetakkan keluaran:

A. ebacdhfgij

B. abcdefghij

C. jihgfedcba

D. fghijabcde

E. cdefghijab

Deskripsi untuk soal nomor 37 - 40

Algoritma dengan pseudopascal berikut dimaksudkan untuk menjumlahkan bilangan bilangan pada suatu array tabeldata hanya pada elemen array bernomor indeks kelipatan 2 (yaitu: 2, 4, 6, 8, dst...) sampai dengan elemen ke 30 dan mencetak hasilnya ke layar. Diketahui, array tabeldata berindeks dari 1 sampai dengan 40.

sum := 0;
// inisialisasi i
while i < hargabatas do
begin
 sum := sum + tabeldata[i];
 //increment i
end;
writeln(sum);
37

Berapakah harga untuk menginisialisasi variabel i pada baris "// inisialisasi i" agar algoritma bekerja seperti yang diharapkan?

A. 0

B. 1

C. 2

D. 3

E. 4

38

Perintah manakah yang harus diberikan menggantikan "// increment i" ?

A. i := i + 1;

B. i := i – 1;

C. i := i mod 2;

D. i := i + 2;

E. i := i shl 2;

39

Berapakah variabel hargabatas seharusnya diberi harga agar algoritma bekerja seperti yang diharapkan?

A. 31

B. 25

C. 30

D. 35

E. 40

40

Apa yang akan dicetak oleh algoritma jika setiap elemen array berisi harga yang sama dengan nomor indeksnya jika algoritma dituliskan sebagaimana yang seharusnya?

A. 240

B. 464

C. 15

D. 465

E. 30

Deskripsi untuk soal nomor 41 - 43

Perhatikan algoritma berikut ini.

if (a and not (not c and not b)) or not ((c and b) or not a)
then writeln('ding')
else writeln('dong');
41

Pemeriksaan ekspresi lojik (dari struktur if-then) tersebut bisa digantikan dengan ekspresi berikut

A. ((a <> c) or (a = b) or b)

B. ((a = c) and (a <> b) and not b)

C. (a and (c or b)) or (not (c and b) and a)

D. ((a and c) or b) or ((not c or not b) and a)

E. a and not b and not c

42

Agar algoritma selalu menuliskan 'dong' maka kondisi yang tepat adalah

A. Variabel a dan variabel c keduanya harus true sementara variabel b tidak penting

B. Variabel b berharga true yang lain tidak penting

C. Variabel a dan variabel b keduanya harus true sementara variabel c tidak penting

D. Variabel b harus false sementara yang lain harus true

E. Variabel b dan variabel c keduanya harus true sementara variabel a tidak penting

43

Jika variable a berharga false maka

A. algoritma selalu menuliskan 'dong' jika salah satu lainnya true

B. algoritma selalu menuliskan 'ding' apapun harga variabel b dan variabel c

C. algoritma selalu menuliskan 'dong' apapun harga variabel b dan variabel c

D. algoritma selalu menuliskan 'dong' jika variabel b dan variabel c berharga true

E. algoritma selalu menuliskan 'dong' jika variabel b dan variabel c false

Deskripsi untuk soal nomor 44 - 45

Perhatikan algoritma berikut. Array X berisi n bilangan dengan index dari 1 s.d. n. Dan, fungsi Max(a,b) adalah mencari bilangan terbesar dari a atau b.

ts := 0;
ms := 0;
for i := 1 to n do
begin
 ts := Max(ms-ts, X[i] + ts);
 ms := Max(ts+ms, 0);
end;
writeln(ms);
44

Jika array berisi harga-harga sebagai berikut: 1, -1, 1, -1, 1, -1, 1 (berarti juga n berharga 7) maka algoritma akan mencetak harga?

A. -5

B. -1

C. 13

D. 5

E. 8

45

Jika jumlah data adalah N maka berapakalikah fungsi Max(a,b) akan dipanggil selama algoritma itu dijalankan?

A. N

B. N/2

C. 2N

D. N2

E. log(N)

Deskripsi untuk soal nomor 46 - 47

Perhatikan algoritma berikut.

procedure Star (t: integer);
begin
 if (t < 2) then
 write('*')
 else
 begin
 Star (t-1);
 Star (t-2)
 end;
end;
46

Berapa kalikah simbol '*' dituliskan jika procedure tersebut dipanggil dengan perintah Star(6)?

A. 8

B. 6

C. 1

D. 13

E. 2

47

Untuk menghasilkan keluaran antara 100 – 200 buah simbol '*' pemanggilan adalah dengan perintah?

A. Star (5)

B. Star (10)

C. Star (11)

D. Star (15)

E. Star (100)

Deskripsi untuk soal nomor 48 - 49

Perhatikan algoritma berikut.

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;
48

Pemanggilan Bintang(1000) menghasilkan pencetakan "*" sebanyak?

A. 2000 baris

B. 1994 baris

C. 1000 baris

D. 500 baris

E. 10 baris

49

Untuk menghasilkan pencetakan "*" sebanyak 200 kali memerlukan pemanggilan dengan?

A. Bintang(100)

B. Bintang(102)

C. Bintang(116)

D. Bintang(200)

E. Bintang(1000)

50

Perhatikan fungsi berikut ini:

function tail(x, y: integer): integer;
begin
 if (y=0) then tail:=x else tail:=tail(y, x mod y);
end;

Fungsi rekursif di atas ekivalen dengan fungsi...

A.

function tail(x, y:integer): integer;
var z:integer;
begin
 while (y<>0) do
 begin z:=x mod y; x:=y; y:=z end;
 tail:=x;
end;

B.

function tail(x, y:integer): integer;
begin
 if (y=0)
 then tail:=x
 else tail:=tail(y mod x, y);
end;

C.

function tail(x, y:integer): integer;
var z:integer;
begin
 while (y<>0) do
 begin z:=x mod y; x:=y; y:=z end;
 tail:=z;
end;

D.

function tail(x, y:integer): integer;
begin
 if (y=0)
 then tail:=y 
 else tail:=tail(y, x mod y);
end;

E.

function tail(x, y:integer): integer;
begin
 if (x=0)
 then tail:=x
 else tail:=tail(y, x mod y);
end;