Anda di halaman 1dari 11

50 SOAL OSN

1. Diketahui terdapat 7 pasangan suami istri. Delapan orang dipilih secara acak. Tentukan
banyaknya cara agar dari delapan orang yang dipilih merupakan 4 pasangan suami istri.
a. 70
b. 35
c. 15
d. 10
e. 20
2. 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
3. Diberikan dua buah bilangan bulat positif (> 0), x dan y. Didefinisikan sebuah fungsi
R(x, y) yang bernilai x apabila x = y, bernilai R(x-y, y) jika x > y, atau bernilai R(x, y-x)
apabila x < y. Berapakah nilai dari R(36, 24)?
a. 12
b. 54
c. 23
d. 43
e. 14
4. Didefinisikan N! = N x (N – 1) x … x 2 x 1 dan N# = N + (N-1) + ... + 2 +1
Contoh: 4! = 4 x 3 x 2 x 1 = 24
Contoh: 4# = 4+3+2+1 = 10
Berapa digit terakhir dari ((5#)#) + ((3#)#) - ((5!)! + (3!)!)?
a. 4
b. 3
c. 2
d. 1
e. 0
5. Joko sering berbohong (jangan ditiru). Dia hanya jujur sehari dalam seminggu. Satu hari
dia berkata: "Aku berbohong pada Senin dan Selasa". Pada hari selanjutnya dia berkata:
"Hari ini adalah salah satu dari hari Minggu, Sabtu atau Kamis". Pada hari selanjutnya
dia berkata: "Aku berbohong pada Jumat dan Rabu". Pada hari apa dia berkata jujur?
a. Senin
b. Selasa
c. Kamis
d. Jumat
e. Minggu
6. Pak Dengklek menjatuhkan sebuah bola pingpong dari ketinggian 25 m. Bola tersebut
memantul kembali dengan ketinggian 4/5 kali tinggi semula. Pemantulan ini berlangsung
terus menerus hingga bola berhenti. Jumlah seluruh lintasan bola adalah … m.
a. 200
b. 215
c. 225
d. 250
e. 235
7. 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
<<endl; return 0;
}
Berapakah keluaran dari program di atas apabila inputnya 11 6 7?
a. 100
b. 70
c. 56
d. 48
e. 90
8. Diketahui variabel x = 3 dan y = 4. Berapakah nilai dari z = x 2+ y 2?
a. 40
b. 75
c. 90
d. 25
e. 100
9. Bahasa pemrograman yang dibuat untuk menangani masalah kecerdasan buatan dan
pembelajaran mesin adalah …
a. Java
b. Python
c. C++
d. Pascal
e. COBOL
10. Berikut adalah table kebenaran dari operator AND
a | b | a AND b
--|---|--------
0|0| 0
0|1| 0
1|0| 0
1|1| 1
Berdasarkan table kebenaran di atas, hasil dari 1 AND 0 adalah
a. 0
b. 1
c. 2
d. 3
e. 1
11. Program berikut adalah contoh program yang salah sintaksisnya. Apa kesalahan sintaksis
dalam program tersebut?

public class MyProgram {


public static void main(String[] args) {
int x = 5;
int y = 10;
int z = x + y
System.out.println("Hasil penjumlahan x dan y adalah: " + z);
}
}

a. Kurang tanda titik koma (;) di akhir baris int z = x + y


b. Terdapat spasi yang tidak seharusnya di baris int z = x + y
c. Pernyataan (statement) System.out.println() tidak diakhiri dengan tanda titik koma (;)
d. Deklarasi variabel x, y, dan z tidak lengkap
e. Urutan dari baris program 1, dan 3 tidak urut
12. Apa yang akan ditampilkan oleh program berikut

public class MyProgram {


public static void main(String[] args) {
int x = 5;
int y = 3;
if (x > y) {
System.out.println("x lebih besar dari y");
} else {
System.out.println("x tidak lebih besar dari y");
}
}
}

a. x lebih besar dari y


b. x tidak lebih besar dari y
c. x sama dengan y
d. Tidak ada yang ditampilkan
e. Tidak akan menampilkan apa-apa
13. Program berikut adalah program java. Apa output yang ditampilkan melalui program
berikut?

public class MyProgram {


public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
a. Hello, World!
b. MyProgram
c. Null
d. Tidak ada yang ditampilkan
e. Hello
14. Dalam bahasa pemrograman java, Jenis data yang digunakan untuk menyimpan bilangan
bulat positif dan negative adalah …
a. Int
b. Double
c. Char
d. Boolean
e. Long
15. Pernyataan berikut merupakan contoh kode Java untuk meminta input dari pengguna.
Mana di antara opsi berikut yang tepat menggambarkan fungsi kode tersebut?

Scanner input = new Scanner(System.in);


System.out.print("Masukkan nama Anda: ");
String nama = input.nextLine();

a. Menghasilkan pesan "Masukkan nama Anda:" di layar


b. Menampilkan input pengguna di layer
c. Menyimpan input pengguna dalam variabel nama
d. Menampilkan nilai variabel nama di layer
e. Menghasilkan pesan "Masukkan nama Anda: " di layar dan menyimpan input
pengguna dalam variabel nama
16. Pernyataan program Java berikut ini digunakan untuk meminta pengguna memasukkan
sebuah bilangan bulat positif. Apa yang terjadi jika pengguna memasukkan nilai yang
bukan bilangan bulat positif?

Scanner input = new Scanner(System.in);


System.out.print("Masukkan bilangan bulat positif: ");
int bilangan = input.nextInt();

a. Program akan menampilkan pesan kesalahan dan meminta pengguna memasukkan


nilai yang benar.
b. Program akan mengabaikan input yang salah dan melanjutkan eksekusi program.
c. Program akan memberikan output bilangan bulat positif terdekat yang tersedia.
d. Program akan menghentikan eksekusi dan keluar dengan pesan kesalahan.
e. Tidak ada yang terjadi, program tetap berjalan.
17. Pernyataan program Java berikut ini digunakan untuk menampilkan pesan pada layar.
Apa output yang akan ditampilkan oleh program tersebut?

System.out.printf("Halo, %s!\n", "Andi");


a. Halo, Andi!
b. Halo, %s!
c. Halo, !
d. Andi, Halo!
e. Tidak ada yang ditampilkan.
18. Berikut adalah kode program Java untuk mencari bilangan terbesar dari dua bilangan:

for (int i = 1; i <= 5; i++) {


System.out.println(i);
}

Apa yang akan ditampilkan oleh program tersebut?


a. 1 2 3 4 5
b. 5 4 3 2 1
c. 1 1 1 1 1
d. 2 3 4 5 6
e. Tidak ada yang ditampilkan.
19. Berikut adalah kode program Java untuk menghitung luas lingkaran:

public class Lingkaran {


public static void main(String[] args) {
double radius = 7.5;
double luas = hitungLuas(radius);
System.out.println("Luas lingkaran dengan radius " + radius + " adalah "
+ luas);
}

public static double hitungLuas(double r) {


return Math.PI * r * r;
}
}

a. Luas lingkaran dengan radius 7.5 adalah 56.25


b. Luas lingkaran dengan diameter 7.5 adalah 56.25
c. Luas lingkaran dengan radius 7.5 adalah 23.56
d. Luas lingkaran dengan diameter 7.5 adalah 23.56
e. Tidak ada yang ditampilkan.
20. Berikut adalah kode program Python untuk menghitung bilangan faktorial:

def faktorial(n):
if n == 1:
return 1
else:
return n * faktorial(n-1)
print("Faktorial dari 5 adalah " + str(faktorial(5)))

a. Faktorial dari 5 adalah 5


b. Faktorial dari 5 adalah 120
c. Faktorial dari 6 adalah 720
d. Faktorial dari 6 adalah 6
e. Tidak ada yang ditampilkan.
21. Jika p = benar dan q = salah, maka berapakah hasil dari operasi logika berikut: p → q
a. Benar
b. Salah
c. Tidak bisa ditentukan
d. p atau q
e. p dan q
22. Jika p = benar dan q = benar, maka berapakah hasil dari operasi logika berikut: p ⊕ q
a. Benar
b. Salah
c. Tidak bisa ditentukan
d. p atau q
e. p dan q
23. Berikut adalah tabel kebenaran untuk operasi logika dasar. Manakah yang benar tentang
operasi logika AND?
P Q P AND Q
0 0 0
0 1 0
1 0 0
1 1 1
a. Operasi logika AND bernilai 1 jika P atau Q bernilai 1.
b. Operasi logika AND bernilai 0 jika P dan Q bernilai 1.
c. Operasi logika AND bernilai 1 jika P dan Q bernilai 1.
d. Operasi logika AND bernilai 1 jika P atau Q bernilai 0.
e. Operasi logika AND bernilai 0 jika P dan Q bernilai 0.
Perhatikan potongan algoritma berikut ini, untuk soal no 24 – 26!

If (a > 10) and (b < 5) then


If c > 0 then
d := d+c
else d :=d-c
else d :=d*c

24. Jika nilai mula-mula a = 12, b = 4, c = 1 dan d = 2, maka nilai d setelah algoritma
tersebut dijalankan adalah …
a. -1
b. 2
c. 3
d. 6
e. 8
25. Jika nilai mula-mula a = 12, b = 4, c = -2, dan, d = 4, maka nilai d setelah algoritma
tersebut dijalankan adalah …
a. -1
b. 1
c. 5
d. 6
e. 8
26. Jika nilai mula-mula a = 10, b = 4, c = 1, dan, d = 3, maka nilai d setelah algoritma
tersebut dijalankan adalah …
a. -1
b. 3
c. 5
d. 6
e. 8
27. Jika 8x + 4 = y, maka 6y = …
a. x
b. 48x + 24
c. 8x + 10
d. 6x
e. 2x
28. Pada tahun 1998 Yanto berumur tujuh windu. Tahun berapakah Yanto dilahirkan?
a. 1991
b. 1954
c. 1942
d. 1990
e. 1987
29. Persamaan x(p + q) + xr nilainya sama dengan persamaan berikut kecuali …
a. xp + xr + xq
b. x(p + q +r)
c. x(p + r) + xq
d. xp + x(q + r)
e. xp(q + r)
30. Jika suatu bilangan dikali 2, kemudian hasilnya ditambah 7, dan hasilnya kembali dikali
3, maka hasil akhirnya adalah 45. Berapakah bilangan tersebut?
a. 4
b. 5
c. 6
d. 7
e. 8
31. Seorang hacker ingin mencoba melakukan brute force attack pada suatu sistem dengan
password yang terdiri dari 6 karakter huruf kecil. Berapa banyak kemungkinan kombinasi
password yang harus dicoba?
a. 46656
b. 7776
c. 1296
d. 216
e. 512
32. Seorang hacker ingin melakukan brute force attack pada suatu sistem dengan password
yang terdiri dari 8 karakter alfanumerik (huruf dan angka). Berapa banyak kemungkinan
kombinasi password yang harus dicoba?
a. 2.821.109.907.456
b. 2.147.483.647
c. 1.099.511.627.776
d. 4.398.046.511.104
e. 7.898.987.393
33. Apa yang dimaksud dengan strategi greedy dalam pemrograman?
a. Strategi untuk memilih solusi yang selalu menghasilkan hasil optimal
b. Strategi untuk memilih solusi secara acak
c. Strategi untuk memilih solusi berdasarkan aturan tertentu yang sederhana
d. Strategi untuk memilih solusi berdasarkan kompleksitasnya
e. Strategi untuk memilih solusi berdasarkan situasi nyata
34. Diberikan sebuah Graph dengan 5 node dan 7 edge. Berapa derajat total dari Graph
tersebut?
a. 10
b. 12
c. 14
d. 16
e. 20
35. Diberikan sebuah Graph dengan 6 node dan 9 edge. Berapa derajat rata-rata dari setiap
node pada Graph tersebut?
a. 1.5
b. 2
c. 2.5
d. 3
e. 10
36. Diberikan sebuah Tree dengan 12 node dan tinggi 4. Berapa jumlah minimal node yang
dapat dimiliki oleh Tree tersebut?
a. 8
b. 9
c. 10
d. 11
e. 15
37. Diberikan sebuah lingkaran dengan keliling 44π cm. Berapa jari-jari lingkaran tersebut?
a. 7 cm
b. 8 cm
c. 14 cm
d. 22 cm
e. 30 cm
38. Diberikan sebuah lingkaran dengan jari-jari 7 cm. Berapa keliling lingkaran tersebut?
a. 14π cm
b. 21π cm
c. 28π cm
d. 49π cm
e. 71π cm
39. Apa itu operasi “find” pada Disjoint Set?
a. Menggabungkan dua set menjadi satu set.
b. Membuat set baru yang berisi satu elemen.
c. Mengecek apakah dua elemen berada pada set yang sama.
d. Mencari elemen terkecil pada sebuah set.
e. Menggabungkan dua set menjadi satu set.
40. Apa yang dimaksud dengan kompleksitas waktu operasi “insert” pada binary heap?
a. O(1)
b. O(log n)
c. O(n)
d. O(n^2)
e. O(n^1^2^)
41. Apa itu operasi “make set” pada Disjoint Set?
a. Menggabungkan dua set menjadi satu set.
b. Membuat set baru yang berisi satu elemen.
c. Mengecek apakah dua elemen berada pada set yang sama.
d. Mencari elemen terkecil pada sebuah set.
e. Mencari set set yang tersembunyi pada saat proses pengolahan
42. Usia seorang ayah sekarang adalah tiga kali usia anaknya. Dua belas tahun yang lalu usia
ayah adalah enam kali usia anakanya. Maka selisih usia mereka sekarang adalah …
a. 20
b. 40
c. 60
d. 70
e. 80
43. A dan B terpisah sejauh 30 km. Jika mereka berangkat Bersama dan bergerak kea rah
yang sama, A dapat menyusul B dalam waktu 60 jam maka selisih kecepatan mereka
adalah …
a. 4 km/jam
b. 3 km/jam
c. 2 km/jam
d. 1 km/jam
e. 0,5 km/jam
44. Berapa nilai dari 73 ×32 ×2 4?
a. 588
b. 2016
c. 3528
d. 5292
e. 6912
45. Sederhanakanlah 33 ≡ 15 (mod 9) 
a. 11=5 (mod 9)
b. 11=15 (mod 9)
c. 66= 30 (mod 9)
d. 11= 15 (mod 81)
e. 33= 15 (mod 81)
23 × 3 2
46. Apa hasil dari operasi 2 ?
2 +1
a. 5
b. 8
c. 19
d. 10
e. 12
47. Suatu kelompok terdiri dari 40 siswa. Jika 20% dari mereka pandai matematika dan 30%
pandai bahasa Inggris, berapa banyak siswa yang pandai keduanya?
a. 4
b. 6
c. 8
d. 10
e. 12
48. Apa yang akan terjadi jika kode program berikut dijalankan?

nama = “Andi”
umur = 25
print(“Nama saya “ + nama + “ dan umur saya “ + umur + “ tahun.”)

a. Tidak ada yang tercetak


b. Terjadi error karena umur tidak berupa string
c. Terjadi error karena tidak ada tanda petik pada variabel nama dan umur
d. Terjadi error karena tidak bisa menggabungkan tipe data string dan integer
e. Terjadi cetakan data seperti yang ada di kode pemrograman
49. Apa yang dimaksud dengan statement “if-else” dalam bahasa pemrograman?
a. Statement yang digunakan untuk melakukan perulangan pada program.
b. Statement yang digunakan untuk melakukan pengecekan kondisi pada program.
c. Statement yang digunakan untuk memisahkan bagian program yang berbeda.
d. Statement yang digunakan untuk menambahkan nilai pada variabel.
e. Statement yang digunakan untuk memisahkan anatara kode huruf dengan angka
50. Bagaimana cara menyimpan data pada binary heap?
a. Data disimpan dalam urutan acak.
b. Data disimpan pada akar tree.
c. Data disimpan pada ujung tree
d. Data disimpan pada node yang kosong secara acak.
e. Data disimpan dalam urutan yang terurut secara sistematis

Anda mungkin juga menyukai