untuk soal 1 -2
y := 10;
x := 0;
for i := 0 to y-1 do
begin
x:=x+ 2 * i;
end;
Writeln (x);
1. Berapakah output dari program diatas?
a. 112
b. 110
c. 90
d. 72
e. 45
Pembahasan
Program diatas akan mengulang pernyataan x:=x +2*i sebanyak 10 kali dari i = 0 sampai 9.
0 = 0 + 2*0
2 = 0 + 2*1
6 = 2 + 2*2
12 = 6 + 2*3
20 = 12 + 2*4
30 = 20 + 2*5
42 = 30 + 2*6
56 = 42 + 2*7
72 = 56 + 2*8
90 = 76 + 2*9
jadi nilai x yang akan dimunculkan adalah 90.
2. jika baris kelima (x:=x+2*i) diganti dengan x:= x + i
Berapakah output program tersebut?
a. 112
b. 110
c. 90
d. 72
e. 45
Pembahasan
0 = 0 + 0
1 = 0 + 1
3 = 1 + 2
6 = 3 + 3
10 = 6 + 4
15 = 10 + 5
21 = 15 + 6
28 = 21 + 7
36 = 28 + 8
45 = 36 + 9
jadi output nya adalah 45.
untuk soal no 3
program x;
var
i,j,k,l : integer;
begin
for i:= 1 to 2 do
for j := 1 to 2 do
write (i*j);
end.
3. output program diatas adalah?
a. 4
b. 6
c. 9
d. 123246369
e. 1
2
3
2
4
6
3
6
9
Pembahasan
i * j
1) —> 1 * 1 = 1
2 * 1 = 2
3 * 1 = 3
2) —> 1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
3) —> 1 * 3 = 3
2 * 3 = 6
3 * 3 = 9
karena write jadi hasil yang akan dimunculkan berjejeer ke samping 123246369. Trims
begin
j:= 3;
k:= 1;
repeat
dec(j) ;
for I := 1 to j do k:= I + 5 * K;
dec(j) :
until j < 0;
writeln(K);
end.
apakah output dari program berikut..??
hasilnya 32
tapi saya ingin tahu penjelasannya?????
Doantara Yasa Berkata:
Sebelumnya mohon maaf jika ada kesalahan dalam pembahasan, karena keterbatasan saya. saya hanya orang baru yang mencoba bergelut dibidang olimpiade ini karena tugas untuk membimbing siswa dalam olimpiade komputer, mohon juga masukannya. semoga blog ini bermanfaat.. salam kenal dan trimkasih buat komentarnya.
lanjut ke permasalahan..
Var i, j, k,: integer;
begin
j:= 3;
k:= 1;
repeat
dec(j) ;
for i := 1 to j do
k:= i + 5 * k;
dec(j) :
until j < 0;
writeln(k);
end.
apakah output dari program berikut..??
hasilnya 32
Pembahasan
Sebelumnya perlu diketahui arti atau guna dari fungsi dec(j).
dec (fungsi) : mengurangi (decrements) nilai suatu variabel
sintaks : dec (x, i); i >= 1
x adalah varaibel yang dikurangi
i adalah nilai pengurang
dalam penggalan program diatas terdapat dec (j) artinya pengurangan variabel j sebanyak 1 (karena ketentuan nilai pengurang lebih besar sama
dengan 1.
Berikutnya mari kita coba untuk menjalankan pernyatan yang terdapat dalam begin end.
repeat
dec (3) = 2
untuk i = 1
k = 1 + 5 * 1
k = 6
dec (2) = 1
1 < 0 <—false {program masih dijalankan}
dec (1) = 0
untuk i = 2
k = 2 + 5 * 6
k = 32
dec (0) = -1
-1 < 0 <— True {program berhenti dijalankan}
Jadi output program diatas adalah 32. Trims
FUNCTION fak (x, y: integer) : Integer;
BEGIN
if y:= 0 then fak := 1
else
fak := x * fak (x, y-1);
END;
Writeln (fak(5, 3));
1. Apa hasil dari program di atas!
a. 125
b. 8
c. 81
d. 3
e. 15
Pembahasan :
Ini adalah contoh kasus fungsi dengan mempergunakan rekursi (fungsi yang mampu memangil dirinya sendiri)
Nilai x awal adalah 5, nilai y awal adalah 3 maka
fak (5,3) —> 5 * fak (5, 3-1) = 5 * 25 = 125
fak (5,2) —> 5 * fak (5, 2-1) = 5 * 5 = 25
fak (5,1) —> 5 * fak (5,1-1) = 5 * 1 = 5
fak (5,0) (proses selesai karena y =0)
Jadi yang muncul adalah
125
2. Jika writeln (fak(5,3)) diganti menjadi writeln (fak(4,5)), hasil dimunculkan adalah…
a. 20
b. 9
c. 1024
d. 64
e. 5
Pembahasan:
Kasus ini sama seperti pada soal 1
Nilai x awal adalah 4, nilai y awal adalah 5 maka
fak (4,5) —> 4 * fak (4, 5-1) dengan mempergunakan hasil fak ( 4,4) –> 4 * 256 = 1024
fak (4,4) —> 4 * fak (4, 4-1) dengan mempergunakan hasil fak ( 4,3) –> 4 * 64 = 256
fak (4,3) —> 4 * fak (4,3-1) dengan mempergunakan hasil fak ( 4,2) –> 4 * 16 = 64
fak (4,2) —> 4 * fak (4,2-1) dengan mempergunakan hasil fak ( 4,1) –> 4 * 4 = 16
fak (4,1) —> 4 * fak (4,1-1) = 4 * 1 = 4
fak (4,0) (proses selesai karena y =0)
Jadi yang muncul adalah
1024
3. Manakah yang salah dari deklarasi dibawah ini
a. function info(a:byte):real;
b. function info:byte;
c. function info(a,b:byte) : real;
d. function info(a: real; b:integer):real;
e. function info(a:real);
Pembahasan
Ingat bentuk dekelarasi dari suatu fungsi
FUNCTION nama_fungsi(daftar_fungsi):tipe;
- daftar parameter berisi sejumlah parameter
- tipe menyatakan tipe dari hasil fungsi
- Jika fungsi tidak memiliki parameter, tanda () tidak perlu disertakan.
jadi jawabannya adalah e.function info(a:real);
PETUNJUK
KHUSUS :
I. Pilihlah salah
satu jawaban yang tepat dengan memberi tanda silang (x) pada salah satu huruf jawaban
a, b, c, d, dan e pada lembar jawaban.
1. Gambar yang
membentuk sejumlah obyek garis dan kurva secara matematis disebut …..
a. Format c. Obyek
Vektor e. Vektor
b. obyek d. Bitmap
2. Gambar yang
membentuk obyek berdasarkan komposisi unsur warna, ttik, raster disebut…..
a. Format c. Vektor e.
Obyek Bitmap
b. Bitmap d. Obyek
3. ruang penyimpanan
format vektor relatif … daripada format bitmap
a. Lebih besar c. Lebih
rendah e. sama
b. Lebih kecil d. Lebih
PEndek
4. Software yang
berhubungan dengan format vektor adalah….
a. Paint brush c. Corel
Photo Show e. Macromedia Freehand
b. adobe Photoshop d.
Movie Maker
5. Objek dua Dimensi kecuali….
a. garis c. lingkaran
e. bujur sangkar
b. Balok d. Persegi
6. Dalam Toolbox di
aplikasi CorelDraw Grapic terdapat ikon yang berguna untuk menggambar Secara
bebas. Nama ikon tersebut adalah ….
a. Shape c.
Smartdrawing e. Freehand
b. Pick d. Fill
7. Dalam Toolbox di
aplikasi CorelDraw Grapic terdapat ikon yang berguna untuk menggambar obyek
simetris. Nama ikon tersebut adalah …..
a. Shape c.
Smartdrawing e. Freehand
b. Pick d. Fill
8. Dalam Toolbox di
aplikasi CorelDraw Grapic terdapat ikon yang berguna untuk menggambar obyek
yang disediakan program nama ikon tersebut adalah….
a. Shape c.
Smartdrawing e. Freehand
b. BasicShape d. Fill
9. Dalam Toolbox di
aplikasi CorelDraw Grapic terdapat ikon yang berguna untuk mewarnai obyek. Nama
ikon tersebut adalah….
a. Shape c.
Smartdrawing e. Freehand
b. Pick d. Fill
10. Gambar yang
membentuk obyek berdasarkan komposisi unsur warna, ttik, raster disebut…..
a. Format c. Vektor e.
Obyek Bitmap
b. Bitmap d. Obyek
11. Dalam Toolbox di
aplikasi CorelDraw Grapic terdapat ikon yang berguna untuk membuat obyek 3D.
Nama ikon tersebut ….
a. Interactive blend c.
Rectangle e. Paint
b. basic shape d.
Smartdrawing
12. Fungsi Sub menu 3D
effect dalam program coreldraw graphics adalah….
a. Membuat efek 3D
dimensi d. membuat halaman baru
b. memberi warna pada
benda 3 Dimensi e. Membuat tampilan 3D menjadi 2 D
c. Menggambar dengan
bebas semua benda 3 dimensi
13. Berikut ini adalah
menu-menu yang terdapat dalam corel Draw graphic kecuali….
a. File c. Utilities e.
Effects
b. edit d. Bitmap
14. Hal-hal berikut
yang paling tepat dilakukan dalam program Corel Draw Graphic adalah….
a. Membuat desain web
c. Menulis naskah e. membuat presentasi
b. Mengolah Teks d.
Membuat bentuk gambar garis
15. Berikut ini yang
tidak dapat dilakukan dari Corel Draw Graphic adalah….
a. Membuat dokumen d.
Menggambar bentuk 3 dimensi
b. Mencetak dokumen e.
Membuat desain web
c. Mengatur ukuran
dokumen
16. Untuk membuat teks
atau tulisan dalam Corel Draw Graphic Digunakan fasilitas
a. Type tool c. Text
Tool e. Pen Tool
b. Transtool d. Teks
Tool
17. Untuk menggambar
kotak Corel Draw Graphic menggunakan….
a. Elipse Tool c.
Poligon Tool e. Rectangle Tool
b. 2D Tool d. Shape
Tool
18. Untuk mengganti
tipe huruf dalam Corel Draw Graphic menggunakan fasilitas ….
a. Font setup c. Font
Bold e. Font size
b. Font Tipe d. Font
Artistic
19. Teknik Untuk
memasukkan gambar dalam Corel Draw Graphic menggunakan perintah….
a. Open c. Export e.
Cut
b. Insert d. Import
20. Fasilitas yang ada
di Corel Draw Graphic untuk menggabungkan dua gambar menjadi satu, sehingga
gambar tersebut dapat menjadi satu menggunakan perintah….
a. arrange c. combine
e. group
b. tranfomation d. Lock
Objek
1. Jelaskan Kegunaan Corel Draw Graphic dan
Adobe Photoshop, serta bedanya kedua program tersebut?
2. Jelaskan kegunaan
Ikon Pick Tool dalam Corel Draw Graphic?
3. Terangkan cara
memasukkan gambar dalam Corel Draw
4. sebuah foto Gunung,
bagaimana cara kita untuk menggambil gambar gunung, tanpa ada gambar yang lain.
5. Jelaskan kegunaan
menu layer pada Adobe Photosop?
Materi Olimpiade Komputer, FOR TO dan FOR DOWNTO dalam Turbo Pacal
Pernyataan FOR biasa digunakan untuk melakukan pengulangan yang jumlahnya telah diketahui sebelumnya, dengan proses mencacah naik.
Bentuk pernyatan for sebagai berikut:
FOR variabel := nilai_awal TO nilai akhir DO pernyataan;
berdasarkan gambar, variabel bertindak sebagai variabel pengontrol perulangan. variabel akan diisi dengan nilai, dimulai dari nilai_awal hingga nilai_akhir untuk setiap putaran, dan untuk setiap putaran pernyataan akan dijalankan. variabel nilai_awal dan nilai_akhir harus bertipe sama dan harus berupa tipe ordinal dengan nilai_awal harus lebih atau sama dengan nilai_akhir
contoh program:
PROGRAM For1;
Uses Crt;
Var
x : integer;
BEGIN
FOR x := 1 TO 10 DO
Writeln (‘Saya mencoba pernyataan FOR TO’);
END.
Perogram diatas akan memunculkan dilayar Saya mencoba pernyataan FOR TO sebanyak 10 tulisan.
contoh program lainnya.
PROGRAM For2;
Uses Crt;
Var
x : integer;
BEGIN
FOR x := 1 TO 10 DO
Writeln (x);
END.
HASIL
1
2
3
4
5
6
7
8
9
10
tetapi jika writeln(x) diganti dengan write (x) akan menghasilkan 1 2 3 4 5 6 7 8 9 10
PERNYATAAN FOR DOWNTO
Pernyatan FOR DOWNTO merupakan kebalikan dari pernyataan FOR TO.
Bentuk pernyatan for sebagai berikut:
FOR variabel := nilai_awal DOWNTO nilai akhir DO pernyataan;
PROGRAM ForDOWNTO1;
Uses Crt;
Var
x : integer;
BEGIN
FOR x := 10 TO 1 DO
Write (x);
END.
HASIL
10 9 8 7 6 5 4 3 2 1
contoh program gabungan FOR TO dengan FOR DOWNTO
PROGRAM Lat1;
Uses crt;
Var x,y,z : integer;
BEGIN
FOR x := 1 TO 4 DO
y := 4 DOWNTO x DO
Write(x);
Readln;
END.
HASIL 4444333221
contoh soal olimpiade materi FOR DO segaera di post. Trims
SOAL & PEMBAHASAN SELEKSI TAHAP 1 OLIMPIADE KOMPUTER SMAN 1 METRO TAHUN 2009
SCORE PENILAIAN :
BENAR = +4
SALAH = -1
TIDAK MENJAWAB = 0
Soal dan Pembahasan Seleksi I
1. Seorang pedagang barang elektronik menjual sebuah televisi berwarna layar datar seharga Rp.3.000.000, jika tarif pajak barang elektronik yang tergolong barang mewah tersebut adalah antara 5 % sampai 8 %, maka harga yang paling mungkin untuk televisi tersebut setelah ditambah pajak adalah :
(A) Rp. 3.180.000
(B) Rp. 3.100.000
(C) Rp. 3.120.000
(D) Rp. 3.140.000
(E) Rp. 3.250.000
Pembahasan
X = Rp 3.000.000
Tarif Pajak = 5% - 8%
Harga televisi + pajak 5% = 3.150.000
6% = 3.180.000
7% = 3.210.000
8% = 3.240.000
2. Manakah yang mendeklarasikan tipe enumerasi dengan tepat?
a. Type a=integer;
b. Type a=1..300;
c. Type a=(baik, jelek, buruk);
d. Type a=[baik, jelek, buruk];
e. Type a=baik, jelek, buruk;
3. Tipe di bawah ini mana yang tidak dapat melakukan operasi aritmatika?
a. Integer
b. Byte
c. Real
d. boolean
e. word
4. Deklarasi prosedur manakah yang tidak dibenarkan?
a. procedure hapus;
b. procedure hapus(s:string);
c. procedure hapus(var s:string);
d. procedure hapus(s:string):boolean;
e. procedure hapus(var data);
Pembahasan:
Untuk penulisan prosedur, tidak diperbolehkan adanya nilai kembali. Sedangkan parameter tanpa tipe data (pada opsi e), dapat dibenarkan.
5. Tipe variabel ekspresi manakah yang tidak dapat ditampilkan dengan procedure Writeln?
a. Type T=Integer;
b. Type T=String;
c. Type C=Char;
d. Type T=(Small, Medium, Large)
e. Semua valid
Pembahasan:
Opsi d adalah tipe data enumerasi. Tipe data enumerasi tidak dapat ditampilkan dengan perintah Writeln.
6. Perhatikan program berikut :
var s:string;
begin
s:='TOKI GO GET GOLD!';
delete(s,1,length(s)-12);
writeln(s);
end.
Apa keluaran program di atas ?
a. GO GET GOLD!
b. GO GET GOLD!
c. GET GOLD!
d. TOKI GO GET
e. TOKI GO GE
Pembahasan:
Procedure delete:
Deklarasi : procedure Delete(var S: String; Index: Integer; Count:Integer);
Keterangan : procedure delete akan menghapus S sebanyak count karakter, dimulai dari posisi Index.
Function length:
Deklarasi : Function Length (S : String) : Integer;
Keterangan : Length menghasilkan panjang dari S, bernilai antara 0 sampai dengan 255.
Jika S tidak berisi apa-apa maka akan menghasilkan 0.
Statement delete(s,1,length(s)-12) akan menghapus s dari posisi 1 sebanyak panjang s, yaitu 17-12 = 5. Sehingga yang dihapus adalah karakter ‘TOKI ‘ dan s akan bernilai GO GET GOLD!
7. Perhatikan penggalan program berikut :
var i,k: integer;
begin
i:=5; k:=0;
k:=trunc(sqrt(i))+1;
writeln(k);
end.
Apa keluaran program di atas ?
a. 3
b. 2.24
c. 2
d. 0
e. program tidak dapat dijalankan
Pembahasan:
Fungsi sqrt :
Deklarasi : Function Sqrt (X : Real) : Real;
Keterangan : menghasilkan akar pangkat dua dari x, di mana x harus positif
Fungsi trunc:
Deklarasi : Function Trunc (X : Real) : Longint;
Keterangan : menghasilkan bilangan bulat dari X, akan selalu lebih kecil atau sama dengan X.
Sqrt(5) akan menghasilkan 2.23
Trunc(2.23) akan menghasilkan 2
Sehingga k:=trunc(sqrt(i))+1; akan menghasilkan 3
8. Mengacu pada program berikut :
var
A,B:string;
C:string[10];
begin
A:='TOKI MEMANG';
B:='HEBAT';
C:=A+B;
if (Pos(B)>0) then
Begin
Writeln('A');
end else
Writeln('B');
end.
Apa yang terjadi jika program di atas di jalankan...
a. Huruf ‘A’ tercetak
b. Huruf ‘B’ tercetak
c. Tidak dapat dipastikan
d. Terjadi error
e. Tidak bisa di compile
Pembahasan:
Kesalahan pertama yang akan ditemui program adalah pada function pos.
Deklarasi : Function Pos (Substr : String; S : String) : Integer;
Keterangan : function pos akan menghasilkan urutan atau posisi substr di S. Jika tidak ditemukan, maka akan menghasilkan 0.
Pada program function pos hanya terdiri dari 1 parameter saja sehingga program tidak akan dapat dijalankan.
9. Jika n dan p adalah dua bilangan bulat, dan n + p berharga ganjil, manakah dari berikut ini bil ganjil?
a. n – p + 1
b. np
c. n2 + p2 – 1
d. 3p + 5n
e. (p – n)(n – p)
Pembahasan ;
A bukan, karena (n+p) adalah ganjil maka dari n dan p salah satu ganjil dan yang lain genap. Selisih antara n dan p pasti ganjil sehingga jika ditambah 1 menjadi genap.
B bukan karena perkalian antara suatu bilangan genap dengan bilangan apapun akan menjadi genap.
C bukan karena pangkat bulat positif berapapun dari bilangan genap, tetap genap, dan ganjil tetap ganjil, kemudian ganjil ditambah genap dan dikurang ganjil menjadi genap.
D bukan karena pangkat bulat positif berapapun dari bilangan ganjil tetap bilangan ganjil, dan jumlah dua bilangan ganjil menjadi genap.
E benar, karena perkalian antara dua bilangan ganjil menghasilkan bilangan ganjil.
10. var
i,j : integer;
begin
for i :=1 to 3 do
for j :=i to 3 do
write(‘*’);
writeln;
end.
Output program di atas :
a. *
**
***
b. ***
***
***
c. ***
**
*
d. ******
11. Perhatikan potongan program berikut :
begin
writeln(round(frac(3.7)));
end.
Apa keluaran program di atas ?
a. 0
b . 1
c. 2
d. 3
e. 4
Pembahasan:
Fungsi frac (lihat pembahasan di atas)
Fungsi round
Deklarasi : Function Round (X : Real) : Longint;
Keterangan : membulatkan bilangan X, yang mungkin lebih besar atau lebih kecil dari X.
Frac(3.7) akan menghasilkan 0.7
Round(0.7) akan menghasilkan 1
12. Delegasi-delegasi dari negara W dan negara R duduk berhadap-hadapan pada meja perundingan. Masing-masing delegasi terdiri atas seorang ketua, dua atase militer dan dua wakil kamar dagang negara masing-masing. Delegasi W beranggotakan A, B, C, D, dan E. Delegasi R beranggotakan F, G, H, I, dan J. Masing-masing delegasi berada pada sisi-sisi memanjang berlainan (satu negara pada sisi yang sama dan ketua duduk di tengah delegasinya). Batasan dalam mengatur urutan duduk mereka:
· Delegasi W menempatkan A dan B di kedua ujung barisannya.
· Kuping kanan G tuli shg ia harus paling kanan dari delegasi R.
· Baik D maupun F bukan ketua.
· Para atase militer W, salah seorangnya B, didudukkan berdampingan,dan tidak ada satupun yang berseberangan dengan atase militer R
· G bukan atase militer.
· C wakil dari kamar dagang, duduk berseberangan dgn H.
Manakah yang paling mungkin mengenai F berikut?
a. Wakil kamar dagang yang duduk di sebelah I
b. Wakil kamar dagang yang duduk di sebelah H
c. Wakil kamar dagang yang duduk berseberangan dengan B
d. Atase militer yang duduk di sebelah I
e. Atase militer yang duduk di sebelah J
Pembahasan
Dibuat diagram sbb
x1–x2–x3–x4–x5 negara W
y1–y2–y3–y4–y5 negara R
Dari (1) kemungkinan {x1,x5} adalah {A,B} atau {B,A}
Dari (2) maka y5=G yang karena pernyataan (4) dan (5) (G bukan a.m dan B adalah a.m) menyebabkan x5=B, sehingga (atase militer dengan bold)
A –x2–x3–x4– B
y1–y2–y3–y4–G
Dari pernyataan (6) dan (4) diperoleh C = x2 dan y2 = H, sehingga
A –C –x3–x4– B
y1–H –y3–y4–G
Dari pernyataan (3) dan diagram di atas D = x4 dan F = y1 atau y4
A –C –E –D –B
y1–H –y3–y4– G
Jadi tinggal 2 kemungkinan F=y1 (atase militer), atau F=y4 (wakil kamar dagang).
Jika atase militer maka (D) dan (E) salah karena sebelah y1 adalah H.
Jika wakil kamar dagang maka (B) salah karena H atase militer dan (C) salah karena B ada di depan G.
Jadi tinggal pilihan (A) yang paling mungkin.
(Note: ini bukan satu-satunya kemungkinan.Kemungkinan lainnya masih ada tapi tidak ada di kelima pilihan itu).
13. Berapakah jangkauan tipe data Word?
a. 0…255
b. 0…65536
c. 0…65535
d. -32768…32767
e. Salah semua
14. Tipe data manakah yang dapat memuat bilangan pecahan?
a. Byte
b. Integer c. Boolean
d. Real
e. LongInt
15. Dalam potongan program berikut,
var Z1, Z2, Z3, Z4: set of Byte;
begin
Z1 := [1, 2, 6, 8, 9];
Z2 := [3, 6, 8, 12, 14];
Z3 := Z1 + Z2;
Z4 := Z1 * Z2;
end.
Berapakah nilai akhir Z3 dan Z4?
a. Z3 = [6, 7, 8]
Z4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
b. Z3 = [6, 8]
Z4 = [1, 2, 3, 6, 8, 9, 12, 14]
c. Z3 = [1, 2, 3, 6, 6, 8, 8, 9, 12, 14]
Z4 = [6, 6, 8, 8]
d. Z3 = [1, 2, 3, 6, 8, 9, 12, 14]
Z4 = [6, 8]
e. Salah semua
Soal di bawah ini untuk no. 16 s.d 18
6 orang pengusaha P – Q – R – S – T & U mengadakan rapat tertutup. Dgn formasi kursi diatur berjarak sama satu sama lain mengelilingi meja, sedemikian sehingga setiap kursi di seberangnya:
- P tidak boleh ditempatkan di samping Q
- R tidak boleh ditempatkan di samping S
- T harus ditempatkan di samping S
16. Jika R duduk di seberang Q, ada berapa kombinasi urutan keempat pengusaha lainnya dapat didudukan
a. 5
b. 4
c. 3
d. 2
e. 1
Pembahasan
Urutan 1 : R,P,U,Q,T,S
Urutan 2 : P,U,Q,T,S,R
17. Jika P duduk di seberang T, siapa yg duduk di seberang S?
a. P
b. Q
c. S
d. T
e. U
Pembahasan
Urutan 1 : P, U,R,T,S,Q
18. Jika P duduk di seberang Q, siapa yang dapat ditempatkan di seberang T, jika I.S II.R III. U?
a. Hanya II
b. Hanya III d. I, II dan III
c. Hanya I dan II
d. Hanya II dan III
e. I, II dan III
Pembahasan
Urutan 1 : P,T,S,Q,R,U
Urutan 2 : T,S,Q,R,U,P
Urutan 3 : S,Q,R,U,P,T
Urutan 4 : Q,R,U,P,T,S
19. Deklarasi manakah yang benar?
a. type Anggota = record
Nama: String[40];
NomorAnggota: Word;
End;
b. type Anggota: record
Nama = String;
NomorAnggota = Word;
End;
c. type Anggota := record
Nama := String[20];
NomorAnggota := Word;
End;
d. Type Anggota = record
Nama: String[];
NomorAnggota: Word;
end;
e. Semua deklarasi di atas salah
20. Tipe data mana yang sanggup memuat numerik hingga 75000?
a. Word
b. Integer
c. Real
d. Longint
e. String
21. Seorang manajer perusahaan kecil sedang mengatur Jadwal kerja para pegawainya. Setiap hari kerja (Senin s.d Jumat, lima hari kerja seminggu) diperlukan paling sedikit tiga orang pegawai. Karena perusahaan ini masih kecil, jumlah pegawainya hanya ada lima orang yang bekerja secara paruh waktu (part time, artinya tidak masuk setiap hari lima hari seminggu), Ali hanya bisa masuk kerja pada hari Senin, Rabu, dan Jumat. Baiquini tidak bisa masuk kerja pada hari Rabu. Chali hanya bisa masuk kerja pada hari Selasa dan Rabu. Dita tidak bisa masuk kerja pada hari Jumat. Eko bisa masuk kerja kapan saja kecuali setiap hari Senin pertama dan setiap hari Kamis pertama dalam setiap bulan. Siapa saja yang selalu dapat masuk kerja pada hari Senin ?
a. Dita, Baiquini, dan Ali
b. Ali, Eko, dan Chali
c. Baiquini, Eko, dan Chali
d. Eko, Chali, dan Dita
e. Baiquini, Chali, dan Dita
Pembahasan
Ali : Senin,Rabu,Jumat
Baiquini : Senin,Selasa,Kamis,Jumat
Chali : Selasa, Rabu
Dita : Senin,Selasa,Rabu,Kamis,
Eko : Selasa, Rabu, Jumat
22. Siapa saja yang selalu dapat masuk kerja pada hari Jumat?
a. Ali, Baiquini, dan Dita.
b. Ali, Chali, dan Dita.
c. Baiquini, Chali, dan Eko.
d. Chali, Baiquini, dan Ali.
e. Ali, Baiquni, dan Eko.
23. Pada hari apa kemungkinan sang manajer menghadapi kesulitan untuk mendapatkan minimum tiga orang pegawai ?
a. Senin
b. Selasa
c. Rabu
d. Kamis
e. Jumat
Pembahasan
Senin = 3 pegawai pasti
Selasa & Rabu = 4 pegawai siap
Kamis = 2 pegawai (Eko tidak dapat hadir senin dan minggu pertama)
Jumat = 3 pegawai pasti
24. Pada hari apa sang manajer harus (tidak ada pilihan lain) untuk meminta Eko masuk kerja ?
a. Senin
b. Selasa
c. Rabu
d. Kamis
e. Jumat
BENAR = +4
SALAH = -1
TIDAK MENJAWAB = 0
Soal dan Pembahasan Seleksi I
1. Seorang pedagang barang elektronik menjual sebuah televisi berwarna layar datar seharga Rp.3.000.000, jika tarif pajak barang elektronik yang tergolong barang mewah tersebut adalah antara 5 % sampai 8 %, maka harga yang paling mungkin untuk televisi tersebut setelah ditambah pajak adalah :
(A) Rp. 3.180.000
(B) Rp. 3.100.000
(C) Rp. 3.120.000
(D) Rp. 3.140.000
(E) Rp. 3.250.000
Pembahasan
X = Rp 3.000.000
Tarif Pajak = 5% - 8%
Harga televisi + pajak 5% = 3.150.000
6% = 3.180.000
7% = 3.210.000
8% = 3.240.000
2. Manakah yang mendeklarasikan tipe enumerasi dengan tepat?
a. Type a=integer;
b. Type a=1..300;
c. Type a=(baik, jelek, buruk);
d. Type a=[baik, jelek, buruk];
e. Type a=baik, jelek, buruk;
3. Tipe di bawah ini mana yang tidak dapat melakukan operasi aritmatika?
a. Integer
b. Byte
c. Real
d. boolean
e. word
4. Deklarasi prosedur manakah yang tidak dibenarkan?
a. procedure hapus;
b. procedure hapus(s:string);
c. procedure hapus(var s:string);
d. procedure hapus(s:string):boolean;
e. procedure hapus(var data);
Pembahasan:
Untuk penulisan prosedur, tidak diperbolehkan adanya nilai kembali. Sedangkan parameter tanpa tipe data (pada opsi e), dapat dibenarkan.
5. Tipe variabel ekspresi manakah yang tidak dapat ditampilkan dengan procedure Writeln?
a. Type T=Integer;
b. Type T=String;
c. Type C=Char;
d. Type T=(Small, Medium, Large)
e. Semua valid
Pembahasan:
Opsi d adalah tipe data enumerasi. Tipe data enumerasi tidak dapat ditampilkan dengan perintah Writeln.
6. Perhatikan program berikut :
var s:string;
begin
s:='TOKI GO GET GOLD!';
delete(s,1,length(s)-12);
writeln(s);
end.
Apa keluaran program di atas ?
a. GO GET GOLD!
b. GO GET GOLD!
c. GET GOLD!
d. TOKI GO GET
e. TOKI GO GE
Pembahasan:
Procedure delete:
Deklarasi : procedure Delete(var S: String; Index: Integer; Count:Integer);
Keterangan : procedure delete akan menghapus S sebanyak count karakter, dimulai dari posisi Index.
Function length:
Deklarasi : Function Length (S : String) : Integer;
Keterangan : Length menghasilkan panjang dari S, bernilai antara 0 sampai dengan 255.
Jika S tidak berisi apa-apa maka akan menghasilkan 0.
Statement delete(s,1,length(s)-12) akan menghapus s dari posisi 1 sebanyak panjang s, yaitu 17-12 = 5. Sehingga yang dihapus adalah karakter ‘TOKI ‘ dan s akan bernilai GO GET GOLD!
7. Perhatikan penggalan program berikut :
var i,k: integer;
begin
i:=5; k:=0;
k:=trunc(sqrt(i))+1;
writeln(k);
end.
Apa keluaran program di atas ?
a. 3
b. 2.24
c. 2
d. 0
e. program tidak dapat dijalankan
Pembahasan:
Fungsi sqrt :
Deklarasi : Function Sqrt (X : Real) : Real;
Keterangan : menghasilkan akar pangkat dua dari x, di mana x harus positif
Fungsi trunc:
Deklarasi : Function Trunc (X : Real) : Longint;
Keterangan : menghasilkan bilangan bulat dari X, akan selalu lebih kecil atau sama dengan X.
Sqrt(5) akan menghasilkan 2.23
Trunc(2.23) akan menghasilkan 2
Sehingga k:=trunc(sqrt(i))+1; akan menghasilkan 3
8. Mengacu pada program berikut :
var
A,B:string;
C:string[10];
begin
A:='TOKI MEMANG';
B:='HEBAT';
C:=A+B;
if (Pos(B)>0) then
Begin
Writeln('A');
end else
Writeln('B');
end.
Apa yang terjadi jika program di atas di jalankan...
a. Huruf ‘A’ tercetak
b. Huruf ‘B’ tercetak
c. Tidak dapat dipastikan
d. Terjadi error
e. Tidak bisa di compile
Pembahasan:
Kesalahan pertama yang akan ditemui program adalah pada function pos.
Deklarasi : Function Pos (Substr : String; S : String) : Integer;
Keterangan : function pos akan menghasilkan urutan atau posisi substr di S. Jika tidak ditemukan, maka akan menghasilkan 0.
Pada program function pos hanya terdiri dari 1 parameter saja sehingga program tidak akan dapat dijalankan.
9. Jika n dan p adalah dua bilangan bulat, dan n + p berharga ganjil, manakah dari berikut ini bil ganjil?
a. n – p + 1
b. np
c. n2 + p2 – 1
d. 3p + 5n
e. (p – n)(n – p)
Pembahasan ;
A bukan, karena (n+p) adalah ganjil maka dari n dan p salah satu ganjil dan yang lain genap. Selisih antara n dan p pasti ganjil sehingga jika ditambah 1 menjadi genap.
B bukan karena perkalian antara suatu bilangan genap dengan bilangan apapun akan menjadi genap.
C bukan karena pangkat bulat positif berapapun dari bilangan genap, tetap genap, dan ganjil tetap ganjil, kemudian ganjil ditambah genap dan dikurang ganjil menjadi genap.
D bukan karena pangkat bulat positif berapapun dari bilangan ganjil tetap bilangan ganjil, dan jumlah dua bilangan ganjil menjadi genap.
E benar, karena perkalian antara dua bilangan ganjil menghasilkan bilangan ganjil.
10. var
i,j : integer;
begin
for i :=1 to 3 do
for j :=i to 3 do
write(‘*’);
writeln;
end.
Output program di atas :
a. *
**
***
b. ***
***
***
c. ***
**
*
d. ******
11. Perhatikan potongan program berikut :
begin
writeln(round(frac(3.7)));
end.
Apa keluaran program di atas ?
a. 0
b . 1
c. 2
d. 3
e. 4
Pembahasan:
Fungsi frac (lihat pembahasan di atas)
Fungsi round
Deklarasi : Function Round (X : Real) : Longint;
Keterangan : membulatkan bilangan X, yang mungkin lebih besar atau lebih kecil dari X.
Frac(3.7) akan menghasilkan 0.7
Round(0.7) akan menghasilkan 1
12. Delegasi-delegasi dari negara W dan negara R duduk berhadap-hadapan pada meja perundingan. Masing-masing delegasi terdiri atas seorang ketua, dua atase militer dan dua wakil kamar dagang negara masing-masing. Delegasi W beranggotakan A, B, C, D, dan E. Delegasi R beranggotakan F, G, H, I, dan J. Masing-masing delegasi berada pada sisi-sisi memanjang berlainan (satu negara pada sisi yang sama dan ketua duduk di tengah delegasinya). Batasan dalam mengatur urutan duduk mereka:
· Delegasi W menempatkan A dan B di kedua ujung barisannya.
· Kuping kanan G tuli shg ia harus paling kanan dari delegasi R.
· Baik D maupun F bukan ketua.
· Para atase militer W, salah seorangnya B, didudukkan berdampingan,dan tidak ada satupun yang berseberangan dengan atase militer R
· G bukan atase militer.
· C wakil dari kamar dagang, duduk berseberangan dgn H.
Manakah yang paling mungkin mengenai F berikut?
a. Wakil kamar dagang yang duduk di sebelah I
b. Wakil kamar dagang yang duduk di sebelah H
c. Wakil kamar dagang yang duduk berseberangan dengan B
d. Atase militer yang duduk di sebelah I
e. Atase militer yang duduk di sebelah J
Pembahasan
Dibuat diagram sbb
x1–x2–x3–x4–x5 negara W
y1–y2–y3–y4–y5 negara R
Dari (1) kemungkinan {x1,x5} adalah {A,B} atau {B,A}
Dari (2) maka y5=G yang karena pernyataan (4) dan (5) (G bukan a.m dan B adalah a.m) menyebabkan x5=B, sehingga (atase militer dengan bold)
A –x2–x3–x4– B
y1–y2–y3–y4–G
Dari pernyataan (6) dan (4) diperoleh C = x2 dan y2 = H, sehingga
A –C –x3–x4– B
y1–H –y3–y4–G
Dari pernyataan (3) dan diagram di atas D = x4 dan F = y1 atau y4
A –C –E –D –B
y1–H –y3–y4– G
Jadi tinggal 2 kemungkinan F=y1 (atase militer), atau F=y4 (wakil kamar dagang).
Jika atase militer maka (D) dan (E) salah karena sebelah y1 adalah H.
Jika wakil kamar dagang maka (B) salah karena H atase militer dan (C) salah karena B ada di depan G.
Jadi tinggal pilihan (A) yang paling mungkin.
(Note: ini bukan satu-satunya kemungkinan.Kemungkinan lainnya masih ada tapi tidak ada di kelima pilihan itu).
13. Berapakah jangkauan tipe data Word?
a. 0…255
b. 0…65536
c. 0…65535
d. -32768…32767
e. Salah semua
14. Tipe data manakah yang dapat memuat bilangan pecahan?
a. Byte
b. Integer c. Boolean
d. Real
e. LongInt
15. Dalam potongan program berikut,
var Z1, Z2, Z3, Z4: set of Byte;
begin
Z1 := [1, 2, 6, 8, 9];
Z2 := [3, 6, 8, 12, 14];
Z3 := Z1 + Z2;
Z4 := Z1 * Z2;
end.
Berapakah nilai akhir Z3 dan Z4?
a. Z3 = [6, 7, 8]
Z4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
b. Z3 = [6, 8]
Z4 = [1, 2, 3, 6, 8, 9, 12, 14]
c. Z3 = [1, 2, 3, 6, 6, 8, 8, 9, 12, 14]
Z4 = [6, 6, 8, 8]
d. Z3 = [1, 2, 3, 6, 8, 9, 12, 14]
Z4 = [6, 8]
e. Salah semua
Soal di bawah ini untuk no. 16 s.d 18
6 orang pengusaha P – Q – R – S – T & U mengadakan rapat tertutup. Dgn formasi kursi diatur berjarak sama satu sama lain mengelilingi meja, sedemikian sehingga setiap kursi di seberangnya:
- P tidak boleh ditempatkan di samping Q
- R tidak boleh ditempatkan di samping S
- T harus ditempatkan di samping S
16. Jika R duduk di seberang Q, ada berapa kombinasi urutan keempat pengusaha lainnya dapat didudukan
a. 5
b. 4
c. 3
d. 2
e. 1
Pembahasan
Urutan 1 : R,P,U,Q,T,S
Urutan 2 : P,U,Q,T,S,R
17. Jika P duduk di seberang T, siapa yg duduk di seberang S?
a. P
b. Q
c. S
d. T
e. U
Pembahasan
Urutan 1 : P, U,R,T,S,Q
18. Jika P duduk di seberang Q, siapa yang dapat ditempatkan di seberang T, jika I.S II.R III. U?
a. Hanya II
b. Hanya III d. I, II dan III
c. Hanya I dan II
d. Hanya II dan III
e. I, II dan III
Pembahasan
Urutan 1 : P,T,S,Q,R,U
Urutan 2 : T,S,Q,R,U,P
Urutan 3 : S,Q,R,U,P,T
Urutan 4 : Q,R,U,P,T,S
19. Deklarasi manakah yang benar?
a. type Anggota = record
Nama: String[40];
NomorAnggota: Word;
End;
b. type Anggota: record
Nama = String;
NomorAnggota = Word;
End;
c. type Anggota := record
Nama := String[20];
NomorAnggota := Word;
End;
d. Type Anggota = record
Nama: String[];
NomorAnggota: Word;
end;
e. Semua deklarasi di atas salah
20. Tipe data mana yang sanggup memuat numerik hingga 75000?
a. Word
b. Integer
c. Real
d. Longint
e. String
21. Seorang manajer perusahaan kecil sedang mengatur Jadwal kerja para pegawainya. Setiap hari kerja (Senin s.d Jumat, lima hari kerja seminggu) diperlukan paling sedikit tiga orang pegawai. Karena perusahaan ini masih kecil, jumlah pegawainya hanya ada lima orang yang bekerja secara paruh waktu (part time, artinya tidak masuk setiap hari lima hari seminggu), Ali hanya bisa masuk kerja pada hari Senin, Rabu, dan Jumat. Baiquini tidak bisa masuk kerja pada hari Rabu. Chali hanya bisa masuk kerja pada hari Selasa dan Rabu. Dita tidak bisa masuk kerja pada hari Jumat. Eko bisa masuk kerja kapan saja kecuali setiap hari Senin pertama dan setiap hari Kamis pertama dalam setiap bulan. Siapa saja yang selalu dapat masuk kerja pada hari Senin ?
a. Dita, Baiquini, dan Ali
b. Ali, Eko, dan Chali
c. Baiquini, Eko, dan Chali
d. Eko, Chali, dan Dita
e. Baiquini, Chali, dan Dita
Pembahasan
Ali : Senin,Rabu,Jumat
Baiquini : Senin,Selasa,Kamis,Jumat
Chali : Selasa, Rabu
Dita : Senin,Selasa,Rabu,Kamis,
Eko : Selasa, Rabu, Jumat
22. Siapa saja yang selalu dapat masuk kerja pada hari Jumat?
a. Ali, Baiquini, dan Dita.
b. Ali, Chali, dan Dita.
c. Baiquini, Chali, dan Eko.
d. Chali, Baiquini, dan Ali.
e. Ali, Baiquni, dan Eko.
23. Pada hari apa kemungkinan sang manajer menghadapi kesulitan untuk mendapatkan minimum tiga orang pegawai ?
a. Senin
b. Selasa
c. Rabu
d. Kamis
e. Jumat
Pembahasan
Senin = 3 pegawai pasti
Selasa & Rabu = 4 pegawai siap
Kamis = 2 pegawai (Eko tidak dapat hadir senin dan minggu pertama)
Jumat = 3 pegawai pasti
24. Pada hari apa sang manajer harus (tidak ada pilihan lain) untuk meminta Eko masuk kerja ?
a. Senin
b. Selasa
c. Rabu
d. Kamis
e. Jumat
Pada Soal dan Pembahasan Olimpiade Komputer Part 2, di soal nomor 1, nilai 25 dapet dari mana bang?
ReplyDelete