Dasar-dasar Pemrograman
Sintaks dan semantik dasar dari bahasa yang diperbolehkan pada OSN yang bersangkutan
Variabel, tipe data, ekspresi, dan assignment
Masukan dan keluaran dasar
Percabangan dan perulangan
Fungsi dan parameter
Operasi Logika dan Bitwise
Operator logika dasar (konjungsi, disjungsi, implikasi, biimplikasi, disjungsi eksklusif)
Tabel kebenaran
Modus Ponens dan modus Tollens
Aritmetika
Bilangan bulat, operasi (termasuk perpangkatan), perbandingan
Sifat-sifat bilangan bulat (tanda, paritas, keterbagian)
Operasi-operasi modular dasar (penjumlahan, pengurangan, perkalian)
Perpangkatan modular
Bilangan prima
Bilangan pecahan, persentase
Teori bilangan
Teori himpunan
Aturan Berhitung
Aturan penjumlahan dan perkalian
Barisan aritmetika dan geometri
Bilangan Fibonacci
Permutasi dan kombinasi
Probabilitas
Pigeonhole principle
Prinsip inklusi dan eksklusi
Segitiga Pascal, teorema binomial
Rekursi
Konsep rekursi
Fungsi matematis rekursi
Prosedur rekursi sederhana
Divide-and-conquer
Backtracking
Pencarian dan Pengurutan
Linear search
Binary search
Bubble sort, insertion sort
Quicksort, merge sort, heapsort
Strategi Pemecahan Masalah
Brute-force
Greedy
Divide-and-conquer
Backtracking (rekursif dan bukan rekursif)
Dynamic programming
Struktur Data
Tipe data primitif (boolean, integer, character, floating point numbers)
Array (termasuk multidimensi)
String dan operasinya
Stack dan queue
Binary heap
Disjoint set
Segment tree (point update range query)
Graf dan Tree
Tree dasar (termasuk rooted tree)
Graf berarah dan graf tak berarah
Graf berbobot dan graf tak berbobot
Representasi graf (adjacency List, adjacency matrix, edge list)
Penjelajahan graf (BFS, DFS, keterhubungan)
Shortest path (algoritma Dijkstra, algoritma Bellman-Ford, algoritma Floyd-Warshall)
Minimum spanning tree (algoritma JarnÃk-Prim, algoritma Kruskal)
Geometri Dasar
Garis, segmen garis, sudut
Segitiga, persegi, persegi panjang, lingkaran
Titik, koordinat pada bidang Kartesius 2 dimensi
Jarak Euclidean
Teorema Pythagoras
Convex Hull (algoritma Graham scan, algoritma Monotone chain)
Pemrograman melibatkan penulisan kode menggunakan aturan sintaksis dari bahasa pemrograman yang diperbolehkan dalam OSN. Sintaks mencakup aturan tentang bagaimana program ditulis, sementara semantik berkaitan dengan makna dari sintaks tersebut.
print("Hello, World!")
dalam Python).Variabel adalah penanda yang menyimpan nilai. Tipe data mengacu pada jenis data (integer, float, string). Ekspresi adalah kombinasi dari variabel, nilai, dan operator yang menghasilkan nilai baru. Assignment adalah proses pemberian nilai ke variabel.
Contoh Soal: Deklarasikan variabel x
dengan nilai 5, kemudian tambahkan 10 ke x
dan simpan hasilnya di y
.
Masukan adalah data yang diterima program dari pengguna atau sumber lain. Keluaran adalah data yang dikembalikan oleh program ke pengguna.
Percabangan (if-else) memungkinkan program mengambil keputusan berdasarkan kondisi. Perulangan (loop) memungkinkan program menjalankan kode berulang kali.
Fungsi adalah blok kode yang dapat digunakan kembali dan melakukan tugas tertentu. Parameter adalah variabel yang diteruskan ke fungsi.
add
yang menerima dua parameter dan mengembalikan jumlahnya.Operator logika (AND, OR, NOT) digunakan untuk membandingkan dua nilai boolean.
True AND False OR True
.Tabel kebenaran menunjukkan semua kemungkinan hasil dari operasi logika.
Modus Ponens: Jika P -> Q dan P benar, maka Q benar.
Modus Tollens: Jika P -> Q dan Q salah, maka P salah.
Bilangan bulat termasuk positif, negatif, dan nol. Operasi dasar mencakup penjumlahan, pengurangan, perkalian, dan pembagian.
Operasi modular melibatkan pembagian dengan hasil sisa.
Bilangan prima hanya bisa dibagi oleh 1 dan dirinya sendiri.
Aturan ini digunakan untuk menghitung jumlah kemungkinan dalam himpunan.
Barisan aritmetika adalah barisan dengan selisih tetap antara suku-sukunya. Barisan geometri memiliki rasio tetap antara suku-sukunya.
Permutasi adalah penyusunan elemen secara berurutan, sementara kombinasi adalah pemilihan elemen tanpa memperhatikan urutan.
Probabilitas adalah peluang terjadinya suatu peristiwa.
Rekursi adalah metode pemrograman di mana fungsi memanggil dirinya sendiri.
Mencari elemen dalam daftar dengan memeriksa setiap elemen satu per satu.
Mencari elemen dalam daftar terurut dengan membagi daftar menjadi dua dan membandingkan elemen tengah.
Mencakup boolean, integer, character, dan floating point numbers.
Struktur data yang menyimpan elemen dalam urutan tertentu.
Apakah Anda bercita-cita menjadi juara dalam Olimpiade Sains Nasional (OSN) bidang Informasi? Kami hadir untuk membantu Anda mencapai mimpi tersebut dengan program les persiapan OSN Informasi yang komprehensif dan mendalam.
Tetap Semangat Berjuang, Menggapai Mimpi ! Butuh bantuan untuk lolos seleksi PTN/PTS impianmu? Dapatkan investasi masa depan Mulai dari 120 ribu/pertemuan Sukses dalam Genggaman-mu !!! Hubungi Kami Sekarang... WhatsApp: 0852-8145-5797 Hanya di Edu Pavilion! Mudah, Terjangkau, Berprestasi.