POJOKSATU.id - Latihan Soal OSN Final Informatika 2026 ini dapat digunakan peserta jenjang SMA/MA/SMK/MAK/sederajat yang mempersiapkan diri menuju tahap nasional.

Dokumen Kumpulan Soal Olimpiade Sains Nasional yang diterbitkan Pusat Prestasi Nasional (Puspresnas) memuat cabang Informatika dalam rangkaian OSN jenjang SMA. 

Dokumen tersebut juga memperlihatkan karakter soal Informatika yang menguji kemampuan pemecahan masalah komputasional dan pemahaman algoritma dalam bahasa C++.

Pada bagian Informatika tingkat kabupaten/kota, misalnya, peserta menghadapi soal yang terbagi menjadi Pemecahan Masalah Komputasional dan Pemahaman Algoritma dalam Bahasa C++. 

Baca Juga: Latihan Soal OSN Final SMA 2026 Bidang Geografi, Coba Nih 20 Soal Analisis Spasial, Lingkungan, dan Pembangunan

Pada bagian algoritma, soal dapat meminta peserta menelusuri fungsi rekursif, menghitung hasil fungsi, memahami array atau vector, hingga menganalisis operasi string.

Soal dalam artikel ini merupakan modifikasi dari soal yang diterbitkan Puspresnas. 

Angka, kondisi, kode, dan konstruksi persoalan dikembangkan atau dimodifikasi berdasarkan materi serta karakter soal dalam dokumen tersebut.

OSN Final Informatika 2026 untuk SMA/MA/SMK/MAK/Sederajat

OSN Final jenjang pendidikan menengah 2026 tidak hanya diperuntukkan bagi siswa SMA. Pesertanya berasal dari SMA, MA, SMK, MAK, dan satuan pendidikan sederajat.

Karena itu, latihan Informatika berikut dapat digunakan peserta dari berbagai satuan pendidikan tersebut. 

Baca Juga: Latihan Soal OSN 2026 SMA Final Bidang Ekonomi, Simak 20 Soal HOTS dan Pembahasan untuk Uji Kemampuan Peserta

Fokus utamanya bukan hafalan sintaks, tetapi kemampuan memahami algoritma, melakukan penelusuran proses, mengenali pola, dan memecahkan persoalan secara sistematis.

Dokumen Puspresnas juga menunjukkan bahwa soal Informatika dapat disajikan dalam beberapa bentuk. 

Selain pilihan ganda, terdapat soal yang meminta jawaban berupa angka atau BENAR/SALAH, sehingga peserta perlu terbiasa membaca persoalan secara teliti.

Final OSN 2026 Digelar September

Final OSN 2026 dijadwalkan berlangsung secara luring pada 14-20 September 2026 di Universitas Muhammadiyah Malang (UMM).

Untuk jenjang pendidikan menengah, terdapat sembilan cabang kompetisi, termasuk Informatika/Komputer. Masing-masing cabang diikuti 60 finalis yang telah melewati rangkaian seleksi sebelumnya.

Baca Juga: PHK Capai 43 Ribu hingga Juli 2026, Apindo Soroti Masalah di Hulu Industri

Rangkaian kegiatan dimulai dengan kedatangan dan registrasi pada 14 September, pembukaan serta technical meeting pada 15 September, tes pada 16-17 September, kegiatan Bina Talenta Indonesia pada 18 September, acara mandiri dan penutupan pada 19 September, kemudian kepulangan peserta pada 20 September 2026.

Dengan demikian, peserta Informatika perlu mempersiapkan kemampuan penalaran algoritmik sekaligus membiasakan diri menyelesaikan persoalan secara cepat dan sistematis.

Soal OSN Informatika

Soal Nomor 1

Perhatikan algoritma berikut.

F(N):     jika N <= 1, kembalikan 1     selain itu, kembalikan F(N-1) + F(N-2)

Berapakah nilai F(5)?

A. 5
B. 6
C. 8
D. 10
E. 13

Pembahasan

Hitung dari nilai dasar:

F(0) = 1

F(1) = 1

F(2) = F(1) + F(0) = 2

F(3) = F(2) + F(1) = 3

F(4) = F(3) + F(2) = 5

F(5) = F(4) + F(3) = 8

Jadi, nilai F(5) adalah 8.

Baca Juga: Gempa Susulan Flores Capai 4.258 Kali, BMKG Prediksi Masih Berlangsung hingga 4 Minggu


Soal Nomor 2

Perhatikan potongan kode berikut.

int HITUNG(int N) {     if (N <= 0) {         return 0;     } else {         return N + HITUNG(N - 2);     } }

Berapakah hasil pemanggilan HITUNG(7)?

A. 9
B. 12
C. 16
D. 21
E. 28

Pembahasan

Proses rekursinya:

HITUNG(7) = 7 + HITUNG(5)

= 7 + 5 + HITUNG(3)

= 7 + 5 + 3 + HITUNG(1)

= 7 + 5 + 3 + 1 + HITUNG(-1)

HITUNG(-1) = 0

Maka:

7 + 5 + 3 + 1 = 16

Jadi, hasilnya adalah 16.

Baca Juga: Bantuan Kapolri Tiba di Labuan Bajo, 4,5 Ton Logistik untuk Warga Terdampak Gempa Flores


Soal Nomor 3

Perhatikan fungsi berikut.

int MOD(int A, int B) {     if (B == 0) {         return A;     } else {         return MOD(B, A % B);     } }

Berapakah hasil dari MOD(84, 30)?

A. 2
B. 3
C. 6
D. 12
E. 14

Pembahasan

Fungsi tersebut menggunakan algoritma Euclidean untuk mencari FPB.

MOD(84, 30)

= MOD(30, 84 % 30)

= MOD(30, 24)

= MOD(24, 6)

= MOD(6, 0)

= 6

Jadi, hasilnya adalah 6.

Pola algoritma rekursif semacam ini juga digunakan dalam soal Informatika Puspresnas melalui fungsi yang menggunakan operasi modulo.

Baca Juga: Maulid Nabi 25 Agustus 2026 Libur, Apakah 24 Agustus Ikut Cuti Bersama?

Soal Nomor 4

Diberikan array:

A = {4, 7, 2, 9, 5}

Sebuah algoritma membuat array prefix sum dengan diawali nilai 0.

Isi array hasilnya adalah ...

A. {4, 11, 13, 22, 27}

B. {0, 4, 11, 13, 22, 27}

C. {0, 4, 7, 2, 9, 5}

D. {4, 7, 11, 16, 21}

E. {0, 7, 9, 18, 23}

Pembahasan

Prefix sum dimulai dari 0.

Kemudian:

0 + 4 = 4

4 + 7 = 11

11 + 2 = 13

13 + 9 = 22

22 + 5 = 27

Jadi array tersebut adalah:

{0, 4, 11, 13, 22, 27}

Konsep prefix sum juga muncul dalam fungsi FUN pada kumpulan soal Informatika Puspresnas.

Baca Juga: Daftar Daerah Rawan Gempa di Indonesia, Cek Wilayah yang Perlu Waspada

Soal Nomor 5

Dengan menggunakan array prefix sum pada soal sebelumnya, berapakah jumlah elemen A dari indeks 2 sampai indeks 4 jika indeks dimulai dari 1?

A. 14
B. 16
C. 18
D. 20
E. 22

Pembahasan

Array awal:

A = {4, 7, 2, 9, 5}

Elemen indeks 2 sampai 4:

7 + 2 + 9 = 18

Dengan prefix sum:

B[4] − B[1]

= 22 − 4

= 18

Jadi, jawabannya adalah 18.

Teknik pengambilan jumlah rentang menggunakan prefix sum juga digunakan dalam fungsi GSI pada soal Puspresnas.

Baca Juga: Aplikasi Sudah Dihapus tapi Penyimpanan HP Masih Penuh? Ini 8 Cara Mengatasinya

Soal Nomor 6

Sebuah algoritma memeriksa seluruh pasangan (i,j) dengan ketentuan:

1 <= i <= N i <= j <= N

Jika N = 5, berapa banyak pasangan yang diperiksa?

A. 10
B. 12
C. 15
D. 20
E. 25

Pembahasan

Untuk setiap nilai i:

i = 1 → 5 pasangan

i = 2 → 4 pasangan

i = 3 → 3 pasangan

i = 4 → 2 pasangan

i = 5 → 1 pasangan

Total:

5 + 4 + 3 + 2 + 1 = 15

Jadi, terdapat 15 pasangan.

Pola dua perulangan bersarang dengan batas i <= j juga terdapat pada algoritma FUN dalam kumpulan soal Puspresnas.

Baca Juga: Dampak Perubahan View YouTube Mulai 24 Agustus 2026 bagi Kreator

Soal Nomor 7

Sebuah algoritma memiliki dua buah perulangan bersarang. Perulangan pertama berjalan sebanyak N kali, sedangkan perulangan kedua juga dapat berjalan hingga N kali untuk setiap iterasi perulangan pertama.

Kompleksitas waktu terburuk algoritma tersebut adalah ...

A. O(1)

B. O(log N)

C. O(N)

D. O(N²)

E. O(2N)

Pembahasan

Jika satu perulangan berjalan N kali dan di dalamnya terdapat perulangan lain yang juga dapat berjalan N kali, jumlah operasi pada kondisi terburuk sekitar:

N × N = N²

Sehingga kompleksitas waktunya adalah:

O(N²)

Baca Juga: Profil LinkedIn Jadi Lebih Profesional, Ini Tips agar HRD Tertarik Menghubungi

Soal Nomor 8

Sebuah array:

A = {3, -1, 4, -2, 5}

dicari subarray kontinu dengan jumlah terbesar.

Nilai maksimum yang dapat diperoleh adalah ...

A. 7
B. 8
C. 9
D. 10
E. 11

Pembahasan

Jumlah seluruh elemen:

3 − 1 + 4 − 2 + 5 = 9

Karena seluruh array menghasilkan jumlah 9 dan merupakan subarray kontinu, nilai maksimum setidaknya 9.

Tidak ada kombinasi subarray lain yang menghasilkan lebih besar dari 9.

Jadi, nilai maksimum adalah 9.

Konsep pencarian jumlah maksimum subarray berkaitan dengan pola algoritma FUN pada kumpulan soal Puspresnas yang mencari nilai maksimum dari jumlah subarray.

Baca Juga: Mengunjungi RSUD Ende Pasca-gempa, Pasien Dirawat di Tenda, Tenaga Kesehatan Mulai Kelelahan

Soal Nomor 9

Diberikan string:

S = "ABCABC"

Jika sebuah algoritma menghitung berapa kali pola "ABC" muncul sebagai substring tanpa harus saling tumpang tindih, hasilnya adalah ...

A. 1
B. 2
C. 3
D. 4
E. 6

Pembahasan

String:

ABCABC

memuat:

  • ABC pertama pada posisi 1-3

  • ABC kedua pada posisi 4-6

Jadi, pola tersebut muncul sebanyak 2 kali.

Baca Juga: Mengenal Hotspot Karhutla, Titik Panas yang Dipantau Lewat Satelit

Soal Nomor 10

Perhatikan fungsi berikut.

int CARI(string S, char X) {     int hasil = 0;      for (int i = 0; i < S.length(); i++) {         if (S[i] == X) {             hasil++;         }     }      return hasil; }

Berapakah hasil CARI("KOMPUTER", 'O')?

A. 0
B. 1
C. 2
D. 3
E. 4

Pembahasan

String:

K O M P U T E R

Huruf O hanya muncul satu kali.

Maka:

CARI("KOMPUTER", 'O') = 1

Jadi, hasilnya adalah 1.

Baca Juga: Gempa NTT Terus Mengguncang, Jumlah Pengungsi Bertambah Jadi 110.785 Orang

Soal Nomor 11

Sebuah algoritma melakukan pencarian biner pada array terurut yang memiliki 1.000 elemen.

Kompleksitas waktu pencarian biner dalam kondisi terburuk adalah ...

A. O(1)

B. O(log N)

C. O(N)

D. O(N log N)

E. O(N²)

Pembahasan

Pada setiap langkah pencarian biner, ruang pencarian dibagi menjadi dua.

Jika jumlah elemen N, jumlah pembagian yang diperlukan sebanding dengan:

log₂ N

Karena itu, kompleksitas waktunya adalah:

O(log N)

Baca Juga: Daftar Harga Emas Antam Agustus 2026, 0,5 Gram hingga 1 Kg

Soal Nomor 12

Sebuah algoritma mengurutkan array menggunakan metode yang pada setiap langkah memilih elemen terkecil dari bagian array yang belum terurut, kemudian menempatkannya di posisi paling depan.

Algoritma tersebut adalah ...

A. Bubble Sort

B. Selection Sort

C. Merge Sort

D. Quick Sort

E. Binary Search

Pembahasan

Ciri utama Selection Sort adalah mencari elemen minimum dari bagian array yang belum terurut, kemudian menukarnya dengan elemen pada posisi yang sedang diproses.

Jadi, algoritma tersebut adalah Selection Sort.

Baca Juga: Mahasiswa KKN-T IPB Kenalkan Kandang Sirkular Maggot BSF, Solusi Hemat Pakan bagi Peternak Desa Gumul

Soal Nomor 13

Diberikan array:

A = {5, 2, 8, 1}

Jika dilakukan satu kali proses Bubble Sort dari kiri ke kanan, dengan pertukaran dilakukan ketika elemen kiri lebih besar daripada elemen kanan, keadaan array setelah proses tersebut adalah ...

A. {1, 5, 2, 8}

B. {2, 5, 1, 8}

C. {2, 5, 8, 1}

D. {5, 2, 1, 8}

E. {1, 2, 5, 8}

Pembahasan

Mulai dari:

{5, 2, 8, 1}

Bandingkan 5 dan 2:

{2, 5, 8, 1}

Bandingkan 5 dan 8:

tidak berubah.

{2, 5, 8, 1}

Bandingkan 8 dan 1:

{2, 5, 1, 8}

Jadi, setelah satu kali lintasan dari kiri ke kanan, array menjadi:

{2, 5, 1, 8}

Baca Juga: MagangHub Kemnaker 2026 Batch 2 Angkatan 2 Dibuka September, Cek Jadwal, Syarat dan Cara Daftar

Soal Nomor 14

Sebuah graf memiliki lima simpul. Setiap simpul terhubung langsung dengan semua simpul lainnya.

Berapa jumlah sisi pada graf tersebut?

A. 5
B. 8
C. 10
D. 12
E. 20

Pembahasan

Graf lengkap dengan N simpul memiliki jumlah sisi:

E = N(N − 1) / 2

Untuk N = 5:

E = 5 × 4 / 2

E = 10

Jadi, jumlah sisinya adalah 10.

Baca Juga: Cek Uang Saku MagangHub Kemnaker 2026 Tiap Daerah, di Seluruh Jawa dan Sumatera, Paling Besar di Daerah Ini

Soal Nomor 15

Dalam sebuah graf tidak berarah, diketahui derajat lima simpul berturut-turut adalah:

2, 3, 2, 4, 1

Apakah derajat tersebut mungkin membentuk sebuah graf sederhana?

A. Ya, karena jumlah derajat genap

B. Ya, karena semua derajat kurang dari 5

C. Tidak, karena jumlah derajat ganjil

D. Tidak, karena ada derajat 1

E. Tidak, karena jumlah simpul ganjil

Pembahasan

Jumlah seluruh derajat:

2 + 3 + 2 + 4 + 1 = 12

Jumlah derajat harus genap karena setiap sisi menyumbang dua derajat.

Karena jumlahnya 12 atau genap, kondisi tersebut mungkin membentuk graf.

Jadi, dari pilihan yang tersedia, jawabannya adalah A.

Baca Juga: Polda Metro Ungkap Uang Palsu Kualitas A Rp 36 Miliar di Tangsel Mau Didistribusikan ke Bank

Soal Nomor 16

Sebuah program menggunakan stack. Operasi yang dilakukan berturut-turut adalah:

PUSH(5) PUSH(8) POP() PUSH(3) PUSH(7) POP()

Elemen yang tersisa di dalam stack dari bawah ke atas adalah ...

A. 5, 3

B. 5, 8

C. 5, 3, 7

D. 8, 3

E. 3, 7

Pembahasan

Mulai:

PUSH(5) → [5]

PUSH(8) → [5, 8]

POP() menghapus 8 → [5]

PUSH(3) → [5, 3]

PUSH(7) → [5, 3, 7]

POP() menghapus 7 → [5, 3]

Jadi, isi stack dari bawah ke atas adalah:

5, 3

Baca Juga: Masuk Desil 10 DTSEN Bukan Berarti Otomatis Kaya, Ini Penjelasan BPS

Soal Nomor 17

Sebuah program menggunakan queue. Operasi berikut dilakukan secara berurutan:

ENQUEUE(4) ENQUEUE(7) DEQUEUE() ENQUEUE(9) DEQUEUE()

Elemen yang tersisa adalah ...

A. 4
B. 7
C. 9
D. 4, 9
E. 7, 9

Pembahasan

Queue menggunakan prinsip First In, First Out (FIFO).

ENQUEUE(4) → [4]

ENQUEUE(7) → [4, 7]

DEQUEUE() menghapus 4 → [7]

ENQUEUE(9) → [7, 9]

DEQUEUE() menghapus 7 → [9]

Jadi, elemen yang tersisa adalah 9.

Baca Juga: Geger Gowa

Soal Nomor 18

Perhatikan fungsi berikut.

int F(int N) {     if (N == 0) return 0;     if (N % 2 == 0) return F(N / 2);     return 1 + F(N / 2); }

Berapakah nilai F(13)?

A. 1
B. 2
C. 3
D. 4
E. 5

Pembahasan

Telusuri:

F(13) → 1 + F(6)

F(6) → F(3)

F(3) → 1 + F(1)

F(1) → 1 + F(0)

F(0) = 0

Maka:

F(1) = 1

F(3) = 2

F(6) = 2

F(13) = 3

Jadi, hasilnya adalah 3.

Fungsi rekursif yang memanfaatkan pembagian dan kondisi modulo merupakan salah satu bentuk penalaran algoritmik yang relevan dengan karakter soal Informatika Puspresnas.

Baca Juga: BNPT dan LPSK Hadir Dampingi Penyintas Terorisme Bangkit, Ubah Trauma Menjadi Ketangguhan

Soal Nomor 19

Sebuah algoritma memiliki fungsi berikut:

int F(int N) {     if (N <= 1) return 1;     if (N % 3 == 0)         return F(N - 1) + F(N - 3);     if (N % 3 == 1)         return F(N - 2);     return F(N - 3); }

Jika diketahui:

F(1) = 1

F(2) = 1

Berapakah nilai F(3)?

A. 1
B. 2
C. 3
D. 4
E. 5

Pembahasan

Karena 3 habis dibagi 3, gunakan aturan:

F(3) = F(2) + F(0)

Karena N ≤ 1 menghasilkan 1:

F(0) = 1

Maka:

F(3) = 1 + 1

F(3) = 2

Jadi, jawabannya adalah 2.

Struktur fungsi dengan kondisi berdasarkan N % 3 merupakan bentuk yang sangat dekat dengan karakter soal algoritma dalam dokumen Puspresnas.

Baca Juga: Ramayana Siap Tayang di Indonesia, Film India Termahal dengan Budget hingga Rp3,9 Triliun

Soal Nomor 20

Perhatikan fungsi berikut.

int HITUNG(string S, string T) {     int N = S.length();     int M = T.length();     int hasil = 0;      for (int i = 0; i <= N - M; i++) {         bool cocok = true;          for (int j = 0; j < M; j++) {             if (S[i + j] != T[j]) {                 cocok = false;             }         }          if (cocok) hasil++;     }      return hasil; }

Jika:

S = "ABABABA" T = "ABA"

berapa nilai yang dikembalikan fungsi tersebut?

A. 2
B. 3
C. 4
D. 5
E. 6

Pembahasan

Periksa substring sepanjang 3:

Posisi 1:

ABA → cocok

Posisi 2:

BAB → tidak cocok

Posisi 3:

ABA → cocok

Posisi 4:

BAB → tidak cocok

Posisi 5:

ABA → cocok

Jadi, pola "ABA" muncul 3 kali.

Hasil fungsi: 3

Baca Juga: Tiba di Kalbar, Prabowo Langsung Bahas Karhutla dan Rencana Operasi Modifikasi Cuaca

Kumpulan soal Puspresnas juga memuat persoalan string yang meminta peserta menelusuri proses pencocokan string berdasarkan potongan kode.

Karakter Soal Informatika OSN yang Perlu Dikuasai Peserta

Latihan Tidak Cukup dengan Menghafal Sintaks

Soal Informatika OSN menempatkan kemampuan berpikir komputasional sebagai bagian penting. 

Peserta perlu mampu mengikuti alur algoritma, memahami kondisi percabangan, menelusuri fungsi rekursif, membaca struktur data, serta menemukan pola dari suatu persoalan.

Dokumen Puspresnas memperlihatkan contoh soal yang meminta peserta menganalisis algoritma rekursif, seperti fungsi TIGA, lalu menentukan hasil pemanggilan tertentu, menghitung berapa banyak pemanggilan yang menghasilkan nilai tertentu, hingga menghitung penjumlahan hasil fungsi dalam rentang tertentu.

Pada persoalan lain, peserta perlu memahami pembentukan prefix sum dan fungsi yang menggunakannya untuk mencari jumlah terbesar suatu subarray.

Baca Juga: Rupiah Makin Perkasa, Ditutup Rp17.685 per Dolar AS dan Terkuat dalam 3 Bulan Terakhir

Bahkan, persoalan string dapat diberikan melalui potongan program yang membandingkan karakter pada posisi tertentu.

Karena itu, peserta SMA, MA, SMK, MAK, dan sederajat yang akan mengikuti OSN Final Informatika 2026 sebaiknya tidak hanya berlatih menulis kode. 

Kemampuan membaca kode yang belum pernah dilihat sebelumnya, melakukan simulasi manual, menemukan pola, dan memperkirakan kompleksitas algoritma juga perlu diasah. ***