Soal Olimpiade Komputer

2

Ingin ikut lomba komputer, dibawah ini salah satu contoh soal olimpiade komputer, berupa pertanyaan dan pembahasan dari soal yang diambil dari “Seleksi Olimpiade Komputer Tingkat Kabupaten/Kota 2009″. Soal kali ini terkait dengan operasi OR dan AND pada operand berbentuk bilangan integer. Wah apa lagi tuh ??? Lho bukannya operasi OR and AND hanya bisa digunakan pada operand berbentuk boolean (TRUE atau FALSE)? Wah… ternyata ndak tuh, simak detail dari artikel ini ya…

Diketahui algoritma pseudopascal berikut ini

const
xmin = -10;
xmax =  10;
ymin = -10;
ymax =  10;
function code(x: integer; y : integer) : byte;
var c : byte;
begin
   c := 0;
   if (x < xmin) then c := c OR 8
   else if (x > xmax) then c := c OR 1;

   if (y < ymin) then c := c OR 4
   else if (y > ymax) then c := c OR 2;

   code := c;
end;

Pertanyaan :

Perintah writeln(code(-12, -12) AND code(20, 5)) akan mencetak harga berapakah?

Jawab :

OK… sebelum kita jawab pertanyaan ini, perhatikan bahwa dalam function code() terdapat operator OR. Operand OR tidak harus berupa boolean TRUE atau FALSE namun juga bisa berupa integer. Operator OR untuk operand bilangan integer merupakan operasi OR secara bitwise (diproses bit demi bit, dengan 1 identik bernilai TRUE dan 0 bernilai FALSE) dari bilangan binernya.

Perhatikan contoh operasi OR berikut ini yang melibatkan bilangan integer.

Berapakah hasil 2 OR 1?

2 = 10 (biner)
1 = 01 (biner)
----------- OR
    11 -> bilangan biner dari 3

Dengan demikian hasil dari 2 OR 1 adalah 3.

Berapakah hasil 3 OR 1?

3 = 11 (biner)
1 = 01 (biner)
----------- OR
    11 -> bilangan biner dari 3

Berapakah 4 OR 5?

4 = 100 (biner)
5 = 101 (biner)
----------- OR
    101 -> bilangan biner dari 5.

Nah akan kita akan selesaikan soal di atas menggunakan konsep tersebut. Terlebih dahulu operand code(-12, -12) pada operasi ‘code(-12, -12) AND code(20, 5)’ akan diselesaikan

code(-12, -12) -> x = -12, y = -12
--------- masuk function code() --------
c = 0
cek (-12 < -10) -> TRUE
                -> c = c OR 8 = 0 OR 8 = 8

cek (-12 < -10) -> TRUE
                -> c = c or 4 = 8 OR 4 = 12

code = c = 12
----------------------------------------

Sehingga diperoleh hasil dari code(-12, -12) adalah 12. Selanjutnya akan diproses untuk code(20, 5).

code(20, 5) -> x = 20, y = 5
---------- masuk function code() -------
c = 0
cek (20 < -10) -> FALSE
               -> cek (20 > 10) -> TRUE
                                -> c = c OR 1 = 0 OR 1 = 1
cek (5 < -10)  -> FALSE
               -> cek (5 > 10)  -> FALSE

code = c = 1
----------------------------------------

Sehingga diperoleh hasil dari code(20, 5) adalah 1.

Selanjutnya bagaimana dengan operasi ‘code(-12, -12) AND code(20, 5)’ atau dalam hal ini ‘12 AND 1′? Pada prinsipnya operasi AND pada bilangan integer sama dengan operasi OR, yaitu dilakukan operasi boolean AND secara bit per bit dari bilangan binernya. Dengan demikian proses 12 AND 1 adalah:

12 = 1100 (biner)
 1 = 0001 (biner)
----------------- AND
     0000  -> biner dari 0

Dari perhitungan di atas hasil dari perintah ‘writeln(code(-12, -12) and code(20, 5))’ akan mencetak 0.

Nah… berdasarkan contoh ini, Anda dapat mencoba untuk menebak output apa yang akan muncul jika diberikan perintah sebagai berikut:

a. writeln(code(-12, -12) OR code(20, 5))
b. writeln(code(12, -12) AND code(20, 5))
c. writeln(code(12, -12) OR code(20, 5))
d. writeln(code(7, -12) OR code(-20, 5))

Selamat mencoba…

Pencarian anda:

soal olimpiade komputer sma, soal olimpiade komputer, soal olimpiade komputer tingkat sma, soal olimpiade komputer sma 2010, contoh soal olimpiade tik sma, soal soal olimpiade Komputer, soal olimpiade tik sma 2010, soal-soal olimpiade komputer, contoh soal olimpiade TIK, soal olimpiade tik, soal-soal olimpiade TIK, contoh soal olimpiade komputer tingkat SMA, soal olimpiade komputer 2010, KUMPULAN soal OLIMPIADE tik sma, materi olimpiade komputer sma, soal olimpiade tik sma, contoh soal Olimpiade komputer SMA, soal soal olimpiade komputer sma, soal soal olimpiade tik, soal olimpiade tik tingkat sma, soal seleksi olimpiade komputer, olimpiade TIK, soal osn tik sma, contoh soal Olimpiade komputer, download soal olimpiade komputer, soal-soal olimpiade komputer 2010, contoh soal olimpiade TIK tingkat SMA, download soal-soal olimpiade komputer, contoh soal olympiade tik, soal olimpiade komputer sma tingkat kabupaten, download soal olimpiade tik, kumpulan soal olimpiade tik, soal OSN komputer, download soal olimpiade komputer sma, buku olympiade komputer, soal-soal olimpiade komputer tingkat sma, bank soal olimpiade komputer, soal olimpiade komputer tingkat sma 2010, kumpulan soal soal olimpiade komputer, pembahasan soal olimpiade komputer, soal osn komputer sma, soal komputer, olimpiade komputer tingkat sma, download soal olimpiade komputer tingkat sma, soal olimpiade tik sma 2010 dan pembahasan, contoh soal OSN tik, download soal olimpiade tik sma, soal dan pembahasan olimpiade komputer sma 2009, kumpulan soal olimpiade tik tingkat sma, soal olimpiade komputer tingkat kota

2 Responses

  1. Yuliuz says:

    thx contoh soalnya

  2. Ardian Priambudi says:

    bingung dengan kayak gini, ndak tau pascal

© 2010 ANASCAVA.COM. All rights reserved.
Designed by Cava Design.