Berikut 30 soal olimpiade TIK. Selamat mengerjakan
1. Jika f(x) = x^2 + 3x – 5, maka nilai f(a+1)−f(a) adalah…
a. 2a+4
b. 2a+3
c. 2a+1
d. 2a+5
e. 2a+6
2. Diberikan fungsi Python berikut:
def hitung(n):
return (n**2 + n) // 2
Jika nilai n = 10
, maka output dari fungsi hitung(n)
adalah…
a. 55
b. 45
c. 40
d. 50
e. 60
3. Jika fungsi berikut dijalankan:
def F(n):
if n == 1:
return 1
return n * F(n-1)
Maka hasil dari F(5)
adalah…
a. 10
b. 24
c. 120
d. 125
e. 150
4. Jika huruf A direpresentasikan sebagai 0, B sebagai 1, dan seterusnya, maka hasil enkripsi dari huruf H dengan rumus E(x) = (3x+7) mod 26 adalah…..
a. J
b. M
c. P
d. Q
e. R
5. Hasil eksekusi kode berikut adalah…?
A = [2, 4, 6, 8, 10]
s = 10
for i in A:
s += 1
print(s / len(A))
a. 6
b. 7
c. 8
d. 9
e. 10
6. Jika x + y = 12 dan x^2 + y^2 = 74 , maka hasil dari xy adalah…
A) 32
B) 35
C) 37
D) 40
E) 42
7. Output dari kode berikut adalah…?
x = 1
while x < 100:
x *= 2
print(x)
a. 64
b. 96
c. 100
d. 128
e. 256
8. Dalam bahasa pemrograman C++, operator %
digunakan untuk...?
A) Perkalian
B) Pembagian bulat
C) Modulus
D) Pangkat
E) Logaritma
9. Bentuk sederhana dari ekspresi (x−2)^2−(x+2)^2
A) 4x
B) −4x
C) 4x+8
D) −4x−8
E) x^2−4
10. Kompleksitas dari algoritma berikut dalam big-O notation adalah...?
for i in range(n):
for j in range(n):
print(i, j)
print(x)
a. O(1)
b. O(n)
c. O(n^2)
d. O(n \log n)
e. O(2^n)
11. Suku ke-10 dari barisan aritmetika dengan a = 3 dan b = 5 adalah...
a. 48
b. 49
c. 50
d. 51
e. 52
12. Jika jumlah 5 suku pertama dari deret geometri adalah 93 dan rasio r = 2, maka suku pertamanya adalah...
a. 3
b. 4
c. 5
d. 6
e. 7
13. Output dari <code>F(4) jika fungsi berikut dijalankan adalah...?
def F(n):
if n == 1:
return 1
return n + F(n-1)
a. 6
b. 8
c. 10
d. 15
e. 20
14. Hasil dari \sum_{k=1}^{10} (2k - 1) adalah....
a. 49
b. 50
c. 100
d. 121
e. 122
15. Hasil dari \prod_{k=1}^{4} k
a. 12
b. 18
c. 24
d. 36
e. 48
16. Output dari kode berikut adalah...
list(range(2, 20, 3))
a. [2, 5, 8, 11, 14, 17]
b. [2, 5, 8, 11, 14, 17, 20]
c. [2, 4, 6, 8, 10, 12]
d. [2, 6, 10, 14, 18]
e. Error
17. Jumlah perbandingan dalam bubble sort pada kasus terburuk adalah...?
a. O(n)
b. O(n^2)
c. O(n \log n)
d. O(2^n)
e. O(n!)
18. Sifat yang bukan merupakan karakteristik hash function adalah...?
a. Deterministik
b. Cepat dihitung
c. Bisa dibalik dengan mudah
d. Menghasilkan distribusi nilai yang seragam
e. Memiliki panjang tetap
19. Kompleksitas dari T(n)=2T(n/2)+n dalam notasi Big-O adalah......
a. O(n)
b. O(n^2)
c. O(n \log n)
d. O(2^n)
e. O(2^n)
20. Output dari kode berikut adalah...
A = [i for i in range(10) if i % 3 == 0]
a. [0, 3, 6, 9]
b. [1, 4, 7, 10]
c. [0, 3, 6, 9, 12]
d. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
e. Error
21. Diberikan sebuah array
A = [1, -2, 3, -4, 5, -6]
Jika setiap elemen negatif dikonversi menjadi positif dan setiap elemen positif dikonversi menjadi negatif, maka hasil akhirnya adalah...?
a. [1, 2, 3, 4, 5, 6]
b. [-1, 2, -3, 4, -5, 6]
c. [1, -2, 3, -4, 5, -6]
d. [-1, 2, -3, 4, -5, -6]
e. [-1, 2, -3, 4, -5, 6]
22. Algoritma QuickSort dapat dioptimalkan untuk menentukan median dalam waktu O(n) menggunakan...
a. Algoritma Karatsuba
b. Binary Search
c. Algoritma Divide and Conquer
d. Median of Medians Algorithm
e. Merge Sort
23. Jika kita ingin menentukan invers modulo dalam sistem bilangan bulat, metode yang paling efisien digunakan adalah...?
a. Brute force dengan mencoba semua nilai
b. Algoritma pencarian biner
c. Algoritma Euclidean yang dimodifikasi
d. Metode eksponensiasi modular
e. Algoritma Dijkstra
24. Diberikan tabel Siswa dalam database dengan kolom Nama dan Nilai. Jika ingin mencari 5 siswa dengan nilai tertinggi, perintah SQL yang benar adalah...?
a. SELECT Nama FROM Siswa WHERE Nilai > 90;
b. SELECT * FROM Siswa ORDER BY Nilai ASC LIMIT 5;
c. SELECT * FROM Siswa ORDER BY Nama DESC LIMIT 5;
d. SELECT * FROM Siswa ORDER BY Nilai DESC LIMIT 5;
e. SELECT TOP 5 * FROM Siswa WHERE Nilai ORDER BY Nilai DESC;
25. Jika kita ingin mencari elemen terkecil dalam pohon pencarian biner (BST), teknik terbaik yang bisa digunakan adalah...
a. Menggunakan pencarian berbasis traversal inorder
b. Mulai dari akar dan selalu bergerak ke anak kanan
c. Gunakan DFS untuk menjelajahi semua simpul
d. Gunakan algoritma BFS
e. Hitung jumlah total simpul dalam BST
26. Jika diberikan array A = [1, 3, 5, 7, 9, 11], cara terbaik untuk mencari dua angka yang jika dijumlahkan hasilnya 10 adalah...
a. Mencari dengan metode brute force O(n^2)
b. Menggunakan pencarian biner pada setiap elemen O(n \log n)O
c. Menggunakan teknik two-pointer setelah sorting O(n)
d. Menggunakan rekursi tanpa memoization O(2^n)
e. Gunakan DFS untuk membangun pohon pencarian
27. Konsep rekursi dalam pemrograman umumnya digunakan untuk...
a. Memecah masalah menjadi sub-masalah yang lebih kecil
b. Mempercepat runtime dalam semua kasus
c. Mengurangi jumlah operasi pada pencarian
d. Meningkatkan penggunaan memori
e. Mengganti perulangan dalam semua situasi
28. Untuk menemukan bilangan prima dalam rentang 111 hingga NNN, algoritma paling efisien adalah...?
a. Brute force dengan memeriksa setiap bilangan satu per satu
b. Menggunakan rekursi untuk memeriksa setiap angka
c. Algoritma Sieve of Eratosthenes
d. Algoritma Kadane
e. Algoritma Bellman-Ford
29. Jika kita memiliki ekspresi logika berikut:
(A AND B) OR (B AND C)
Manakah ekspresi yang setara dengan bentuk tersebut?
a. A∨BA \lor BA∨B
b. A∧BA \land BA∧B
c. B∨CB \lor CB∨C
d. B∧(A∨C)B \land (A \lor C)B∧(A∨C)
e. A∨CA \lor CA∨C
30. Dalam algoritma kompresi Huffman, prinsip utama yang digunakan untuk membuat pohon Huffman adalah...
a. Menggunakan frekuensi karakter untuk membuat kode biner optimal
b. Menggunakan jumlah total bit dalam file sebagai dasar kompresi
c. Menghitung jumlah karakter dalam teks dan menggantinya dengan angka
d. Menggunakan rekursi untuk menghasilkan kode dari akar ke daun
e. Menggunakan transformasi Fourier untuk mengurangi redundansi
Leave a Reply