Memasuki semester ganjil, siswa kelas 11 jurusan Rekayasa Perangkat Lunak (RPL) akan menghadapi mata pelajaran pemrograman dasar. Materi ini menjadi fondasi penting sebelum mempelajari bahasa pemrograman yang lebih kompleks di kelas berikutnya. Berlatih mengerjakan contoh soal pemrograman dasar kelas 11 semester 1 secara rutin dapat membantu kamu memahami logika dan sintaks dasar dengan lebih baik.
Artikel ini menyajikan kumpulan soal pilihan ganda beserta kunci jawaban yang mencakup berbagai topik inti. Mulai dari konsep algoritma, tipe data, operator, hingga struktur kontrol seperti percabangan dan perulangan. Semua soal dirancang sesuai dengan silabus kurikulum merdeka yang berlaku pada tahun ajaran 2026.
Konsep Dasar Algoritma dan Pemrograman
Algoritma adalah langkah-langkah logis dan sistematis untuk menyelesaikan suatu masalah. Dalam pemrograman, algoritma menjadi kerangka berpikir sebelum menulis kode dalam bahasa tertentu seperti Python, C++, atau Java.
Berikut beberapa soal yang menguji pemahaman kamu tentang konsep dasar algoritma dan pemrograman.
Soal Nomor 1 sampai 5
- 1. Langkah pertama dalam menyusun sebuah program komputer adalah …
a. Menulis kode program
b. Membuat algoritma
c. Menguji program
d. Mendokumentasikan program
e. Mengompilasi program
Kunci: B (Algoritma disusun sebelum implementasi kode agar langkah penyelesaian masalah jelas.) - 2. Berikut yang bukan merupakan ciri-ciri algoritma yang baik adalah …
a. Memiliki awal dan akhir yang jelas
b. Setiap langkah didefinisikan dengan tepat
c. Bersifat ambigu dan multitafsir
d. Efisien dalam penggunaan sumber daya
e. Logis dan sistematis
Kunci: C (Algoritma yang baik harus jelas dan tidak ambigu agar tidak menimbulkan salah interpretasi.) - 3. Notasi yang digunakan untuk menggambarkan alur logika program secara visual adalah …
a. Pseudocode
b. Flowchart
c. Syntax
d. Compiler
e. Interpreter
Kunci: B (Flowchart menggunakan simbol-simbol grafis untuk merepresentasikan alur proses.) - 4. Dalam pseudocode, perintah untuk menampilkan output ke layar biasanya menggunakan kata kunci …
a. INPUT
b. OUTPUT
c. IF
d. WHILE
e. FOR
Kunci: B (Perintah OUTPUT atau PRINT digunakan untuk menampilkan hasil ke layar.) - 5. Simbol flowchart berbentuk oval (ellipse) digunakan untuk menunjukkan …
a. Proses perhitungan
b. Input atau output data
c. Keputusan atau percabangan
d. Terminal (mulai atau selesai)
e. Konektor antar halaman
Kunci: D (Simbol oval menandakan titik awal atau akhir dari sebuah flowchart.)
Tipe Data, Variabel, dan Operator
Setiap bahasa pemrograman memiliki tipe data yang digunakan untuk menyimpan nilai yang berbeda, seperti angka bulat, desimal, karakter, atau boolean. Memahami tipe data dan operator sangat penting untuk mengolah data dalam program.
Soal-soal berikut akan menguji kemampuan kamu dalam menentukan tipe data yang tepat dan hasil operasi aritmatika maupun logika.

Soal Nomor 6 sampai 12
- 6. Tipe data yang tepat untuk menyimpan nilai 3.14 adalah …
a. Integer
b. Float
c. Char
d. Boolean
e. String
Kunci: B (Float atau double digunakan untuk bilangan desimal atau pecahan.) - 7. Variabel dengan tipe data boolean hanya dapat menyimpan nilai …
a. Angka bulat
b. Teks panjang
c. True atau False
d. Karakter tunggal
e. Bilangan pecahan
Kunci: C (Boolean hanya memiliki dua nilai logika: benar (true) dan salah (false).) - 8. Hasil dari operasi 17 % 5 dalam bahasa pemrograman adalah …
a. 2
b. 3
c. 3.4
d. 12
e. 85
Kunci: B (Operator % menghasilkan sisa bagi, yaitu 17 dibagi 5 sisa 2? Perhitungan: 5*3=15, sisa 2. Maaf, koreksi: 17 % 5 = 2. Jawaban yang benar adalah A.) - 9. Operator yang digunakan untuk membandingkan dua nilai apakah sama dengan adalah …
a. =
b. ==
c. !=
d. >=
e. <=
Kunci: B (Operator == digunakan untuk membandingkan kesamaan nilai, sedangkan = adalah operator assignment.) - 10. Dalam bahasa C++, deklarasi variabel yang benar untuk menyimpan umur seseorang adalah …
a. int umur;
b. float umur;
c. char umur;
d. string umur;
e. boolean umur;
Kunci: A (Tipe data int digunakan untuk bilangan bulat seperti umur.) - 11. Hasil dari operasi logika (true && false) adalah …
a. True
b. False
c. Null
d. Error
e. Tidak dapat ditentukan
Kunci: B (Operator && menghasilkan true hanya jika kedua operand bernilai true.) - 12. Konversi tipe data dari float ke integer secara paksa dalam Java disebut …
a. Implicit Casting
b. Explicit Casting
c. Widening Casting
d. Automatic Casting
e. Type Promotion
Kunci: B (Explicit casting dilakukan secara manual oleh programmer, misalnya (int) 3.99.)
Struktur Kontrol Percabangan
Percabangan memungkinkan program mengambil keputusan berdasarkan kondisi tertentu. Struktur yang umum digunakan adalah if, if-else, dan switch-case.
Kemampuan menganalisis alur percabangan menjadi kunci utama dalam menyelesaikan soal-soal logika pemrograman.
Soal Nomor 13 sampai 18
- 13. Perhatikan potongan kode berikut:
int nilai = 75;
if (nilai >= 80) {
cout << “A”;
} else if (nilai >= 70) {
cout << “B”;
} else {
cout << “C”;
}
Output yang dihasilkan adalah …
a. A
b. B
c. C
d. AB
e. BC
Kunci: B (Nilai 75 lebih dari atau sama dengan 70, maka blok kedua yang dieksekusi.) - 14. Pernyataan yang benar tentang switch-case adalah …
a. Dapat digunakan untuk membandingkan float
b. Hanya bisa membandingkan nilai yang bersifat konstanta
c. Lebih lambat daripada if-else
d. Tidak memerlukan break
e. Hanya bisa digunakan untuk string
Kunci: B (Switch-case hanya bekerja dengan tipe data ordinal seperti int, char, enum.) - 15. Jika a = 5 dan b = 10, maka hasil dari kondisi (a > b) adalah …
a. True
b. False
c. 5
d. 10
e. Error
Kunci: B (5 lebih kecil dari 10, sehingga kondisi bernilai false.) - 16. Dalam Python, blok percabangan ditandai dengan …
a. Kurung kurawal { }
b. Indentasi (spasi/tab)
c. Kata kunci BEGIN-END
d. Tanda titik koma ;
e. Tag <if>
Kunci: B (Python menggunakan indentasi untuk menandai blok kode, bukan kurung kurawal.) - 17. Operator logika yang benar untuk menyatakan “nilai lebih dari 0 DAN kurang dari 100” adalah …
a. nilai > 0 || nilai < 100
b. nilai > 0 && nilai < 100
c. nilai > 0 & nilai < 100
d. nilai > 0 ! nilai < 100
e. nilai > 0 + nilai < 100
Kunci: B (Operator && (AND) digunakan untuk menggabungkan dua kondisi yang harus keduanya benar.) - 18. Perhatikan pseudocode berikut:
INPUT angka
IF angka MOD 2 == 0 THEN
OUTPUT “Genap”
ELSE
OUTPUT “Ganjil”
ENDIF
Jika angka yang dimasukkan adalah 7, maka outputnya adalah …
a. Genap
b. Ganjil
c. Error
d. Tidak ada output
e. Genap dan Ganjil
Kunci: B (7 MOD 2 = 1, tidak sama dengan 0, maka masuk ke blok ELSE.)
Struktur Kontrol Perulangan
Perulangan digunakan untuk mengeksekusi blok kode secara berulang kali selama kondisi tertentu terpenuhi. Jenis perulangan yang umum adalah for, while, dan do-while.
Pemahaman tentang kapan menggunakan masing-masing jenis perulangan sangat penting untuk efisiensi dan kebenaran program.
Soal Nomor 19 sampai 25
- 19. Perulangan for paling cocok digunakan ketika …
a. Jumlah iterasi tidak diketahui
b. Jumlah iterasi sudah diketahui sebelumnya
c. Hanya ingin menjalankan kode sekali
d. Ingin menghentikan program secara paksa
e. Tidak ada kondisi yang jelas
Kunci: B (For loop memiliki inisialisasi, kondisi, dan increment yang jelas, cocok untuk iterasi dengan jumlah yang pasti.) - 20. Perhatikan kode berikut:
for (int i = 1; i <= 5; i++) {
cout << i << ” “;
}
..
a. 1 2 3 4 5
b. 0 1 2 3 4
c. 1 2 3 4
d. 2 3 4 5
e. 5 4 3 2 1
Kunci: A (Perulangan dimulai dari i=1 hingga i=5, mencetak angka 1 sampai 5.) - 21. Perulangan while akan terus berjalan selama …
a. Kondisi bernilai false
b. Kondisi bernilai true
c. Variabel counter tidak berubah
d. Program tidak dihentikan
e. Semua jawaban benar
Kunci: B (While loop mengeksekusi blok kode selama kondisi yang diberikan bernilai true.) - 22. Perbedaan utama antara while dan do-while adalah …
a. Do-while memeriksa kondisi di akhir, sehingga minimal satu kali dieksekusi
b. While selalu dieksekusi minimal satu kali
c. Do-while tidak memerlukan kondisi
d. While tidak memerlukan kondisi
e. Tidak ada perbedaan
Kunci: A (Do-while menjalankan blok kode terlebih dahulu, kemudian memeriksa kondisi di akhir.) - 23. Dalam perulangan for, bagian yang berfungsi untuk mengubah nilai variabel kontrol adalah …
a. Inisialisasi
b. Kondisi
c. Increment/Decrement
d. Badan perulangan
e. Deklarasi
Kunci: C (Bagian increment/decrement seperti i++ atau i– yang mengubah nilai variabel setiap iterasi.) - 24. Perhatikan kode berikut:
int i = 1;
while (i <= 3) {
cout << “Halo”;
i++;
}
Berapa kali kata “Halo” dicetak?
a. 1
b. 2
c. 3
d. 4
e. Tak hingga
Kunci: C (Perulangan berjalan saat i=1,2,3, sehingga mencetak 3 kali.) - 25. Jika perulangan for ditulis tanpa bagian increment, maka yang akan terjadi adalah …
a. Program berjalan normal
b. Terjadi infinite loop (perulangan tak terbatas)
c. Program langsung berhenti
d. Error saat kompilasi
e. Hanya satu iterasi yang dijalankan
Kunci: B (Tanpa increment, nilai variabel kontrol tidak berubah sehingga kondisi selalu true dan perulangan tidak berhenti.)
Contoh Soal Gabungan dan Studi Kasus
Soal-soal gabungan biasanya menguji pemahaman menyeluruh tentang interaksi antara berbagai konsep, seperti percabangan di dalam perulangan atau penggunaan array.
Berikut beberapa soal yang menuntut analisis lebih mendalam.
Soal Nomor 26 sampai 30
- 26. Perhatikan kode berikut:
int jumlah = 0;
for (int i = 1; i <= 4; i++) {
if (i % 2 == 0) {
jumlah = jumlah + i;
}
}
Nilai akhir dari variabel jumlah adalah …
a. 4
b. 6
c. 8
d. 10
e. 12
Kunci: B (Hanya i genap yang dijumlahkan: 2 + 4 = 6.) - 27. Array adalah struktur data yang digunakan untuk …
a. Menyimpan banyak nilai dengan tipe data sama dalam satu variabel
b. Menyimpan satu nilai dalam satu variabel
c. Menyimpan banyak nilai dengan tipe data berbeda dalam satu variabel
d. Menghubungkan dua variabel
e. Menyimpan fungsi
Kunci: A (Array menyimpan sekumpulan elemen dengan tipe data yang sama dan diakses menggunakan indeks.) - 28. Indeks array dalam bahasa C++ dimulai dari …
a. 0
b. 1
c. -1
d. Tergantung deklarasi
e. 2
Kunci: A (Indeks array di C++ dan sebagian besar bahasa pemrograman dimulai dari 0.) - 29. Perhatikan potongan kode berikut:
int angka[5] = {10, 20, 30, 40, 50};
cout << angka[2];
..
a. 10
b. 20
c. 30
d. 40
e. 50
Kunci: C (Indeks ke-2 merujuk pada elemen ketiga, yaitu 30.) - 30. Dalam sebuah program, kamu ingin menghitung total nilai dari 10 siswa yang tersimpan dalam array. Struktur perulangan yang paling tepat digunakan adalah …
a. Perulangan for dengan iterasi sebanyak 10 kali
b. Perulangan while tanpa kondisi
c.
