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 UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran

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.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *