tirto.id - OSN Informatika menjadi salah satu bidang yang diperlombakan untuk jenjang pendidikan SMA. Dalam tulisan ini tersedia berbagai contoh soal OSN Informatika SMA yang dapat dipergunakan peserta untuk melatih kemampuannya menyelesaikan variasi pertanyaan saat lomba berlangsung.
Soal OSN Informatika dan pembahasannya telah dibuat kisi-kisi materinya BPTI Kemendikdasmen. Beberapa materi tersebut seperti analitika bersifat logika, analitika bersifat aritmatik, hingga algoritmika.
Adapun jenis soal Olimpiade Informatika SMA didominasi oleh pertanyaan pilihan ganda. Kendati demikian, soal yang muncul tidak menutup kemungkinan sebagiannya berupa isian singkat atau bahkan esai yang memerlukan penjelasan.
Kumpulan Soal Olimpiade OSN Informatika SMA dan Jawabannya
Contoh soal Olimpiade OSN Informatika SMA berikut ini tersaji dalam bentuk pilihan ganda dan isian singkat. Setiap soal telah dilengkapi dengan kunci jawabannya.
Berikut daftar contoh soal OSN Informatika SMA selengkapnya:
1. Jumlah bilangan bulat prima atau genap antara 1 sampai 100 (inklusif) yang tidak bisa dibagi 5 adalah ...
A. 63
B. 64
C. 65
D. 66
E. 67
Jawaban: B
2. 1, 121, 1331, 12321 adalah contoh bilangan palindrome. Banyak bilangan palindrome dari 1 sampai 10000 (inklusif) yaitu ...
A. 194
B. 195
C. 196
D. 198
E. 200
Jawaban: D
3. Sebanyak 7 orang hendak pergi ke bioskop. Mereka yaitu A, B, C, D, E, F, dan G. Mereka duduk bersebelahan. Hanya saja, aturan terkait posisi duduk seperti berikut:
A tidak ingin duduk di sebelah B
C ingin duduk disebelah D
E ingin duduk di pojok kiri
F tidak ingin duduk di sebelah E
Banyak urutan duduk agar semua keinginan mereka terpenuhi adalah ...
A. 72
B. 96
C. 120
D. 144
E. 16810
Jawaban: C
4. Bilangan Harshad adalah bilangan yang habis dibagi oleh hasil penjumlahan setiap digit dari bilangan itu sendiri. Contohnya bilangan 18 yang habis dibagi 9. Banyak bilangan Harshad dari 1 sampai 50 yaitu ...
A. 20
B. 21
C. 22
D. 23
E. 24
Jawaban: D
5. Ada sebuah papan berukuran 3x3. Papan tersebut akan diisi dengan tepat 1 angka di antara angka 1, 2, dan 3. Papan ini dikatakan Cahyaid jika untuk setiap barisnya tidak ada angka yang sama dan untuk setiap kolomnya juga tidak terdapat angka yang sama.
Pak Dengklek memilih 6 dari 9 petak tersebut secara acak dan mengisi petak-petak tersebut dengan 3 buah angka 1 dan 3 buah angka 2. Peluang terdapat suatu cara pengisian untuk papan tersebut sehingga papan tersebut menjadi Cahyaid adalah ...
A. 1/7
B. 2/7
C. 3/7
D. 4/7
E. 5/7
Jawaban: A
6. 3 buah dadu dengan 8 sisi. Dadu pertama berisi angka dari 1-8, dadu kedua berisi angka dari 3-10, dan dadu ketiga berisi angka dari 5-12. Ketiga dadu dilempar secara bersamaan. Peluang jumlah dari ketiga dadu tersebut bernilai 16 adalah ...
A. 1/128
B. 9/128
C. 25/128
D. 49/128
E. 81/1285
Jawaban: B
7. Bilangan ajaib adalah bilangan yang memiliki jumlah faktor menyisakan 1 apabila dibagi 4. Contohnya angka 1 yang memiliki 1 buah faktor (yaitu 1). Untuk kesekian kalinya, Pak Dengklek ingin meminta tolong kalian untuk menghitung ada berapa banyak bilangan ajaib yang berada di antara 1 dan 300 inklusif. Ada berapakah bilangan ajaib yang ingin diketahui pak Dengklek?
A. 9
B. 5
C. 2
D. 4
E. 8
Jawaban: D
8. Pak Dengklek senang makan bakso. Pada suatu hari dia berpikir jika ia ingin memotong sebuah bakso sebanyak 3 kali, berapa paling banyak jumlah potongan yang ia dapat?
A. 5
B. 6
C. 7
D. 8
E. 9
Jawaban: D
9. Terdapat sebuah grid berukuran 5x5, dengan petak pojok kiri atas bernomor (1,1) dan pojok kanan bawah bernomor (50,5). Pak Dengklek saat ini sedang di petak (1,1) dan ingin pergi ke petak (50,5). Jika ia hanya ingin pindah sebanyak 1 petak ke kanan atau 1 petak ke bawah pada setiap langkahnya, ada berapa banyak cara untuk Pak Dengklek melakukan perjalanan tersebut tanpa melalui petak (25,3)?
A. 178750
B. 64675
C. 114075
D. 292825
E. 90000
Jawaban: A
10. Nilai yang menyebabkan pertanyaan di bawah ini bernilai TRUE adalah: (P and ((not P or not (Q or(not R and Q))) and (P and (Q or not R))))
A. P=False, Q=True, R=False
B. P=True, Q=True, R=False
C. P=True, Q=False, R=False
D. P=True, Q=True, R=True
E. Tidak mungkin pernyataan di atas bernilai benar
Jawaban: B
11. Bilangan 1, 2, 3, ..., 15 disusun pada persegi 4x4. Untuk i = 1, 2, 3, 4, misalkan bi adalah jumlah bilangan pada baris ke-1 dan ki adalah jumlah bilangan pada kolom ke - i. Misalkan pula d1 dan d2 adalah jumlah bilangan pada kedua diagonal. Susunan tersebut dapat disebut Antimagic jika b1, b2, b3, b4, k1, k2, k3, k4, d1, d2 dapat disusun menjadi sepuluh bilangan berurutan. Tentukan bilangan terbesar di antara sepuluh bilangan berurutan tersebut yang dapat diperoleh dari sebuah Antimagic.
A. 38
B. 39
C. 40
D. 41
E. 42
Jawaban: B
12. Diketahui himpunan kosong A dan B yang dapat ditambahkan bilangan bulat dari i dengan 1 <= i <= 30. Bilangan i akan dimasukkan ke himpunan A dan B dengan syarat berikut:
Bilangan yang telah dimasukkan ke himpunan yang satu tidak dapat dimasukkan ke himpunan bilangan lainnya.
Hasil perkalian dua bilangan yang berada di himpunan yang sama setelah dimodulo 31 akan selalu menghasilkan bilangan yang berada di himpunan A.
Hasil perkalian dua bilangan yang berada di himpunan yang saling beda setelah dimodulo 31 akan selalu menghasilkan bilangan yang berada di himpunan B.
Bilangan 1 berada di himpunan A
Maka banyaknya anggota himpunan A dan B berturut-turut adalah:
A. 11 dan 19
B. 12 dan 18
C. 13 dan 17
D. 14 dan 16
E. 15 dan 15
Jawaban: E
13. Kwak bertanya pada 120 orang untuk menebak sebuah angka yang merupakan permutasi dari 12345 yang sedang dipikirkannya. Setiap orang mencoba menebak permutasi yang benar. 10 orang menebak sebuah permutasi dan berbeda dengan yang dipikirkan oleh Kwak dalam 5 tempat (contoh apabila angka yang dipikirkan Kwak adalah 54321, kemudian seseorang menebak 12345, maka orang tersebut salah dalam 5 tempat). 45 orang menebak sebuah permutasi dan berbeda dengan yang dipikirkan oleh Kwak dalam 4 tempat . 45 orang menebak dan berbeda dalam 3 tempat. 15 orang yang menebak dan berbeda dalam 2 tempat. M merupakan bilangan yang menyatakan banyaknya orang yang berhasil menebak angka yang dipikirkan oleh Kwak dengan benar (tidak ada tempat yang salah), dan N merupakan bilangan yang menyatakan banyaknya orang yang menebak sebuah permutasi dan berbeda dengan yang dipikirkan oleh Kwak dalam 1 tempat. Berapakah nilai M=N?
A. 5
B. 3
C. 2
D. 1
E. 0
Jawaban: A
14. Masih berkaitan dengan soal di atas, berapa banyak kemungkinan susunan permutasi yang berbeda dan tidak ada digit yang benar penempatannya (berbeda dalam 5 tempat)?
A. 119
B. 60
C. 44
D. 24
E. 10
Jawaban: C
15. Sebuah bus sedang beroperasi dengan mengangkut kurang dari 100 penumpang. Pada pemberhentian A, terdapat tepat 3/4 dari penumpang yang ada di dalam bus turun dan 7 penumpang baru naik ke dalam bus. Hal yang sama terjadi juga pada dua perhentian berikutnya, yaitu perhentian B dan C. Berapa banyak penumpang yang turun pada perhentian C?
A. 6
B. 7
C. 8
D. 9
E. 20
Jawaban: D
16, Jika diketahui :
(1 + 3 + 5 + ⋯ + a) + (1 + 3 + 5 + ⋯ + b) = (1 + 3 + 5 + ⋯ + 51)
Berapakah nilai a+b?
A. 34
B. 66
C. 57
D. 43
E. 45
Jawaban: B
17. Pak Dengklek mengumpulkan sejumlah bebek, satu di antaranya adalah Kwak.
Mereka diminta untuk berbaris secara memanjang ke samping. Pak Dengklek ingin mengetes kemampuan bebeknya dengan menyebutkan sebuah angka mulai dari bebek paling kiri sampai bebek paling kanan dengan urutan angka 1, 4, 7, 10, 13, ... dan saat giliran Kwak, dia menyebutkan angka 46. Proses ini diulangi mulai dari bebek paling kanan sampai bebek paling kiri dengan urutan angka 1, 6, 11, 16, ... dan saat giliran Kwak, dia menyebutkan angka 46 lagi. Berapakah jumlah bebek yang ada dalam barisan?
A. 23
B. 24
C. 25
D. 26
E. 27
Jawaban: C
18. Tahun ini Pak Dengklek ditunjuk menjadi ketua panitia Olimpiade Internasional Bebek (OIB). Untuk memberikan pengalaman kepada bebek-bebeknya, Pak Dengklek berencana memilih 10 dari 15 bebek yang dimilikinya untuk menjadi peserta. Tentunya kita tahu bahwa di antara 15 bebek tersebut, ada empat bebek kesayangan Pak Dengklek, yaitu Kwak, Kwik, Kwek dan Kwok.
Kwak dan Kwik harus dipilih untuk menjadi peserta lomba karena keduanya yang paling pintar. Sedangkan Kwek dan Kwok tidak bisa dipilih sebab saat ini sedang sakit. Ada berapa banyak cara memilih bebek-bebek sebagai peserta OIB?
A. 303
B. 286
C. 196
D. 165
E. 120
Jawaban: D
19. Pak Dengklek akan kembali ke kotanya dari Yogyakarta setelah meninjau lokasi yang akan digunakan untuk Olimpiade Internasional Bebek (OIB). Dia membawa oleh-oleh dari Yogyakarta untuk ketiga bebeknya yaitu Kwak, Kwik, dan Kwek. Tapi sayangnya dia hanya mendapatkan jatah 20 kg bagasi, jika barang bawaannya melebihi dari jatah, Pak Dengklek harus membayar biaya tambahan untuk berat sisanya. Masing-masing oleh-oleh memiliki berat tertentu. Gabungan oleh-oleh untuk Kwak dan Kwik jika ditimbang memiliki berat 13 kg. Gabungan oleh-oleh untuk Kwak dan Kwek jika ditimbang memiliki berat 21 kg. Gabungan oleh-oleh untuk Kwik dan Kwek jika ditimbang memiliki berat 32 kg. Berapakah tambahan berat bagasi yang harus dibayar Pak Dengklek?
A. 13
B. 33
C. 14
D. 46
E. 66
Jawaban: A
20. Di akhir pekan ini Pak Dengklek mendapatkan 5 email dari Koleganya yang harus dia baca satu persatu sesuai dengan aturan berikut:
Email Pak Adi akan dibaca paling akhir
Email Pak Budi akan dibaca lebih dahulu sebelum email Pak Adi, tetapi bukan email yang pertama kali dibaca.
Email Pak Carli dan Pak Dudung dibacakan secara berurutan antara email Pak Eman dan Pak Budi
Email siapakah yang pertama kali dibaca oleh Pak Dengklek?
A. Pak Adi
B. Pak Budi
C. Pak Carli
D. Pak Dudung
E. Pak Eman
Jawaban: E
21. 1. Perhatikan operasi logika berikut!
P = ((not A) and B) or (((not C) or D) and E)
Q = ((not A) or B) and (((not C) and (not D) ) or (not E))
R = P and Q
Jika nilai A = True, B = True, C = True, D = True, dan E = False, tentukan nilai P, Q
dan R berturut-turut?
A. P=False, Q= True, R= False
B. P=False, Q= False, R= False
C. P=True, Q= True, R= True
D. P=True, Q= False, R= False
E. P=False, Q= True, R= True
Jawaban: A
22. Dalam pemilihan Ketua Asosiasi Bebek, terdapat sekitar 120 bebek yang akan
melakukan voting dengan tiga kandidat ketua yaitu Kwak, Kwik, dan Kwek. Dalam
pemilihan ini, setiap bebek boleh tidak melakukan voting atau melakukan voting ke lebih dari satu kandidat. Diketahui bahwa ada 65 bebek yang memilih Kwak, 45 bebek memilih Kwik, dan 42 bebek yang memilih Kwek. Kemudian diketahui juga bahwa ada 20 bebek yang memilih Kwak dan Kwik sekaligus, 25 bebek memilih Kwak dan Kwek sekaligus, dan 15 bebek yang memilih Kwik dan Kwek sekaligus. Secara aturan jika bebek memilih hanya satu kandidat maka seluruh suara bulat (nilai 3) akan diberikan kepada kandidat tersebut, jika bebek memilih lebih dari satu kandidat maka suara bulat (nilai 3) akan dibagi rata sebanyak kandidat yang dipilih. Kandidat yang mendapatkan suara terbesar pertama, kedua dan ketiga berturut-turut akan menjadi Ketua, Wakil Ketua dan Sekretaris. Manakah pernyataan berikut yang benar?
A. Kwak akan menjadi Wakil Ketua
B. Kwik akan menjadi Sekretaris
C. Kwek akan menjadi Sekretaris
D. Kwik akan menjadi Ketua
E. Kwek akan menjadi Wakil Ketua
Jawaban: C
23. Berapakah nilai digit terakhir dari 762575 × 126179?
A. 1
B. 3
C. 5
D. 9
E. 7
Jawaban: D
24. Perhatikan potongan program berikut!
char x[11]={'I','N','F','O','R','M','A','T','I','K','A'};
for (int i=0; i<11; i++){
x[i] = x[13-(i+3)];
x[13-(i+3)] = x[10-i];
x[10-i] = x[i];
}
cout <
Jika potongan program dijalankan, seperti apa nilai outputnya?
Jawaban: AKITAMATIKA
25. Pak Dengklek akan mengadakan pesta untuk memperingati hari kemerdekaan di lingkungan RT/RW-nya. Pesta ini rencananya akan mengundang 100 orang
warganya. Dalam rangka menyiapkan jamuan yang sesuai untuk para tamu, pak
Dengklek telah mensurvei preferensi setiap warganya terhadap 3 jenis alternatif
makanan, yaitu: kue apem, bakso atau cendol. Hasil survei menunjukkan: 20 orang
suka makan apem, 30 orang suka makan bakso, dan 45 orang suka cendol, 5 orang suka apem dan bakso, 6 orang suka bakso dan cendol, 1 orang saja yang suka apem dan cendol, dan satu orang juga yang suka ketiga-tiganya. Berapakah orang yang tidak suka ketiga jenis makanan tersebut?
Jawaban: 16
26. Berapakah nilai dari 20222000 × 100! (mod 707)? (dimana n! = n × (n-1) × (n-2) ... × 2 × 1, sedangkan x (mod y) berarti sisa bagi dari x dengan y dengan nilai antara 0 sampai y - 1)
Jawaban: 504
27. Pada suatu hari terjadi percakapan antara Kwek dan Kwok menggunakan bahasa bebek:
“Waak wik wak” kata Kwek, yang artinya “hari ini belajar online”.
“Waak wik wuk kwik” kata Kwok, yang artinya “kemarin juga belajar online”
.“Nwuk wik wuk” kata Kwek meralat pernyataan Kwok, yang artinya “kemarin belajar tatap muka”.
Kwok kemudian bertanya “mwuk?” yang artinya “besok?”.
Kwek membalas dengan yakin, “Nwuk wik mwuk kwik.”
Apa arti kalimat yang diucapkan Kwek pada akhir percakapan di atas?
Jawaban: besok juga belajar tatap muka
28. Perhatikan potongan program berikut!
int main(){
int A, B, C;
cin >> A >> B >> C;
B = A - B; C = A - C; A = B + C;
cout << (A+B)*C <
return 0;
}
Berapakah keluaran dari program di atas apabila inputnya 11 6 7?
Jawaban: 56
29. Perhatikan potongan program berikut!
int main(){
int A, B, C, D;
cin >> A >> B >> C >> D;
if (A>=B){
if (A>=C){
if (A>=D){
cout <
}else{
}
}else{
if (C>=D){
cout <
}else{
cout <
}
}
}else{
if (B>=C){
if (B>=D){
cout <
}else{
cout <
}
}else{
if (C>=D){
cout <
}else{
cout <
}
}
}
return 0;
}
Berapakah keluaran dari program di atas apabila inputnya 89 78 100 105?
Jawaban: 100
30. Pak Dengklek memiliki dua buah array A dan B yang masing-masing berisi lima buah bilangan yang sudah terurut secara menaik. Pak Dengklek ingin menggabungkan
kedua array tersebut dalam sebuah array C, di mana kesepuluh bilangan dalam array
C hasil penggabungan juga harus terurut secara menaik. Sebagai contoh jika array
A={2, 4, 5} dan array B={1, 3, 7} maka hasil penggabungan array C={1, 2, 3, 4, 5, 7}.
Untuk mengimplementasikan masalah tersebut Pak Dengklek kemudian membuat
sebuah program sebagai berikut:
1 : #include
2 : using namespace std;
3 : int main(){
4 : int A[5]={1, 3, 5, 6, 18};
5 : int B[5]={2, 4, 7, 11, 16};
6 : int C[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
7 : int i=0, j=0, k=0;
8 : while (i<5 || j<5){
9 : if (A[i]<=B[j]){
10: C[k]=A[i];
11: i++;
12: }else{
13: C[k]=B[j];
14: j++;
15: }
16: k++;
17: }
18: if (i>j){
19: while (i<5){
20: C[k]=A[i];
21: i++; k++;
22: }
23: }else{
24: while (j<5){
25: C[k]=B[j];
26: j++; k++;
27: }
28: }
29: for (int i=0; i<10; i++) {
30: cout<
31: }
32: return 0;
33: }
Setelah di-compile, ternyata program tersebut tidak menghasilkan array C={1, 2, 3, 4, 5, 6, 7, 11, 16, 18} sesuai dengan keinginan Pak Dengklek karena sepertinya adalah kesalahan dalam program pada salah satu barisnya. Baris nomor berapakah dalam program yang menyebabkan kesalahan output tersebut?
Jawaban: 18
31. Perhatikan potongan program berikut!
cin>>A>>B;
C=A;
D=B;
while (C!=D) {
if (C
if (C>D) D+=B;
}
while (A!=B) {
if (A
if (A>B) A-=B;
}
cout<<(C+D)/(A+B);
Berapakah nilai keluaran dari program di atas apabila inputnya 5000 700?
Jawaban: 350
32. Perhatikan potongan program berikut!
int jalanjalan(int kiri, int kanan){
int energi=0;
while (kiri
if (kiri % 7 == 0){
kiri++;
energi++;
}else if (kiri % 3 ==0){
kiri+=2;
energi+=2;
}else{
kiri+=3;
energi+=3;
}
}
return energi;
}
Berapa nilai yang dihasilkan jika dilakukan pemanggilan jalanjalan(10,1000)?
Jawaban: 991
33. Perhatikan fungsi berikut!
int kwik(int mangga){
int hasil=0;
for (int i=0; i
hasil+=i;
}
return hasil;
}
int kwek(int apel){
int hasil=0;
for (int i=0; i
hasil+=kwik(i*3)*i;
}
return hasil;
}
int kwak(int jeruk){
int hasil=0;
for (int i=0; i
hasil+=kwek(i)+kwik(i*2);
}
return hasil;
}
Berapa nilai yang dihasilkan jika dilakukan pemanggilan kwak(10)?
Jawaban: 388
34. Perhatikan fungsi berikut!
int bahagia(int A){
if (A>0){
int B=A/2;
int C=A-(B*2);
cout << C;
bahagia(B);
}
}
Berapa nilai yang dihasilkan jika dilakukan pemanggilan bahagia(1111)?
Jawaban: 11101010001
35. Didefinisikan sebuah fungsi rekursif sebagai berikut:
int hitung(int x, int y){
if (x+y == 0) return y;
if (x >= 0)
return hitung(x - 1, 2*y);
return (x - 1, y - 1) + 1;
}
Tentukan nilai kembalian dari pemanggilan hitung(10, 5)?
Jawaban: 10240
Link Unduh Kumpulan Soal Olimpiade OSN SMA serta Pembahasannya PDF
Contoh soal OSN Informatika SMA tersedia pula dalam bentuk PDF yang bisa diunduh ke perangkat ponsel dan komputer. Tautan unduhnya sebagai berikut:
Penulis: Lucia Dianawuri
Editor: Ahmad Yasin & Yulaika Ramadhani
Penyelaras: Ilham Choirul Anwar
Masuk tirto.id






































