SOAL & PEMBAHASAN
SEMESTER I
Tujuan Pembelajaran : Peserta
didik mampu menerapkan berpikir komputasi untuk menyelesaikan persoalan
komputasi yang lebih kompleks dari sebelumnya, yang mengandung algoritma,
struktur data, ekspresi, dan operasi logika.
Soal 1
Indikator: Peserta didik dapat mengidentifikasi urutan
langkah-langkah algoritma yang logis untuk menyelesaikan masalah sederhana.
Level Kognitif: Pemahaman (C2)
Andi ingin
membuat secangkir kopi. Urutan mana yang paling tepat menggambarkan algoritma
yang logis?
a. Seduh kopi -> panaskan air -> tuang ke cangkir -> tambahkan gula
b. Panaskan air -> seduh kopi -> tuang ke cangkir -> tambahkan gula
c. Tambahkan gula -> tuang ke cangkir -> panaskan air -> seduh kopi
d. Tuang ke cangkir -> panaskan air -> tambahkan gula -> seduh kopi
Jawaban:
b
Pembahasan: Algoritma harus berurutan dan logis. Air harus
dipanaskan terlebih dahulu sebelum digunakan untuk menyeduh kopi. Setelah kopi
diseduh, baru dituang ke cangkir dan kemudian ditambahkan gula.
Soal 2
Indikator: Peserta didik dapat menerapkan konsep variabel dalam
sebuah prosedur sederhana.
Level Kognitif: Penerapan (C3)
Perhatikan
algoritma berikut:
text
1. A = 5
2. B = 3
3. C = A + B
4. A = C - B
Berapakah
nilai A dan C setelah algoritma di atas dijalankan?
a. A = 3, C = 8
b. A = 5, C = 8
c. A = 5, C = 5
d. A = 8, C = 8
Jawaban:
b
Pembahasan:
- Langkah 1: A = 5
- Langkah 2: B = 3
- Langkah 3: C = 5 + 3 = 8
- Langkah 4: A = 8 - 3 = 5
Jadi, nilai A tetap 5 dan nilai C adalah 8.
Soal 3
Indikator: Peserta didik dapat menganalisis pola untuk memprediksi
output dari suatu algoritma sederhana.
Level Kognitif: Analisis (C4)
Perhatikan
potongan algoritma berikut:
text
For i = 1 to
4
Print i * 2
End For
Apa output
yang dihasilkan?
a. 1, 2, 3, 4
b. 2, 4, 6, 8
c. 2, 4, 8, 16
d. 1, 3, 5, 7
Jawaban:
b
Pembahasan: Perulangan For akan menjalankan
perintah Print i * 2 untuk i dari 1 hingga 4.
- i=1 -> 1*2 = 2
- i=2 -> 2*2 = 4
- i=3 -> 3*2 = 6
- i=4 -> 4*2 = 8
Jadi, outputnya adalah 2, 4, 6, 8.
Soal 4
Indikator: Peserta didik dapat mengevaluasi kondisi logika AND/OR
dalam sebuah percabangan.
Level Kognitif: Evaluasi (C5)
Sebuah toko
memberikan diskon jika pembeli adalah anggota (membership = TRUE) DAN total
belanja lebih dari Rp 100.000. Kode mana yang tepat untuk kondisi tersebut?
a. IF (membership == TRUE) OR (total_belanja > 100000) THEN diskon
b. IF (membership == TRUE) AND (total_belanja > 100000) THEN diskon
c. IF (membership == FALSE) AND (total_belanja > 100000) THEN diskon
d. IF (membership == TRUE) AND (total_belanja < 100000) THEN diskon
Jawaban:
b
Pembahasan: Kata kunci "DAN" dalam logika komputasi
direpresentasikan dengan operator AND. Jadi, kedua kondisi harus terpenuhi
secara bersamaan: status anggota harus TRUE dan total belanja harus lebih dari
100.000.
Soal 5
Indikator: Peserta didik dapat memahami konsep struktur data array
(larik) dan mengakses elemennya.
Level Kognitif: Pemahaman (C2)
Diberikan
array nilai_siswa = [85, 90, 78, 92, 88]. Indeks biasanya dimulai dari 0.
Berapakah nilai yang tersimpan pada nilai_siswa[3]?
a. 78
b. 90
c. 92
d. 88
Jawaban:
c
Pembahasan: Pada array, indeks dimulai dari 0.
- indeks 0 -> 85
- indeks 1 -> 90
- indeks 2 -> 78
- indeks 3 -> 92
- indeks 4 -> 88
Jadi, nilai_siswa[3] berisi nilai 92.
Soal 6
Indikator: Peserta didik dapat menerapkan operasi logika NOT dalam
sebuah ekspresi boolean.
Level Kognitif: Penerapan (C3)
Diberikan
variabel boolean Hujan = TRUE dan BawaPayung = FALSE. Apa hasil
dari ekspresi NOT(BawaPayung)?
a. TRUE
b. FALSE
c. ERROR
d. NULL
Jawaban:
a
Pembahasan: Operator NOT membalikkan nilai boolean.
Karena BawaPayung = FALSE, maka NOT(FALSE) akan
menghasilkan TRUE.
Soal 7
Indikator: Peserta didik dapat menganalisis algoritma yang
mengandung percabangan IF-ELSE.
Level Kognitif: Analisis (C4)
Perhatikan
algoritma berikut:
text
1. X = 10
2. IF (X % 2
== 0) THEN
3. Print "Genap"
4. ELSE
5. Print "Ganjil"
6. END IF
Apa output
dari algoritma di atas?
a. Genap
b. Ganjil
c. 10
d. Tidak ada output
Jawaban:
a
Pembahasan: X % 2 adalah operasi modulus (sisa bagi). 10
dibagi 2 memiliki sisa 0. Karena (10 % 2 == 0) bernilai TRUE, maka
perintah pada baris 3 akan dijalankan, yaitu mencetak "Genap".
Soal 8
Indikator: Peserta didik dapat mengevaluasi keefektifan sebuah
algoritma dalam menyelesaikan masalah.
Level Kognitif: Evaluasi (C5)
Mana dari
algoritma berikut yang paling efisien untuk menemukan sebuah nama dalam daftar
1000 nama yang sudah terurut secara alfabet?
a. Memeriksa setiap nama satu per satu dari awal sampai akhir.
b. Membagi daftar menjadi dua secara berulang dan mencari di bagian yang
relevan (pencarian biner).
c. Mengacak daftar tersebut kemudian memeriksa satu per satu.
d. Memeriksa hanya nama-nama yang diawali dengan huruf vokal.
Jawaban:
b
Pembahasan: Pencarian biner (binary search) adalah algoritma yang
jauh lebih efisien untuk data yang sudah terurut. Dengan membagi area pencarian
menjadi dua secara berulang, waktu pencarian menjadi sangat singkat
(logaritmik) dibandingkan dengan memeriksa satu per satu (linier).
Soal 9
Indikator: Peserta didik dapat memprediksi hasil dari operasi
perbandingan dan logika yang digabungkan.
Level Kognitif: Analisis (C4)
Diberikan:
text
Umur = 17
Status =
"Pelajar"
Apa hasil
dari ekspresi: (Umur >= 13 AND Umur <= 19) AND (Status ==
"Pelajar")?
a. TRUE
b. FALSE
c. ERROR
d. NULL
Jawaban:
a
Pembahasan:
- (Umur >= 13 AND Umur <=
19) -> (17 >= 13 adalah TRUE) DAN (17 <= 19 adalah TRUE)
-> TRUE.
- (Status ==
"Pelajar") -> String "Pelajar" sama dengan
nilai variabel Status -> TRUE.
- TRUE AND TRUE -> TRUE.
Soal 10
Indikator: Peserta didik dapat membuat kreasi algoritma sederhana
untuk menyelesaikan masalah tertentu.
Level Kognitif: Kreasi (C6)
Seorang
robot hanya bisa bergerak maju dan berputar 90 derajat ke kanan. Robot berada
di titik A menghadap utara. Agar robot dapat sampai ke titik B yang berada
tepat 2 langkah di timur dan 1 langkah di utara dari A, urutan perintah mana
yang PALING TEPAT?
(Catatan: Asumsi 1 langkah = 1 satuan jarak maju)
a. Maju 2 -> Kanan 90° -> Maju 1
b. Kanan 90° -> Maju 2 -> Kanan 90° -> Maju 1
c. Kanan 90° -> Maju 2 -> Kiri 90° -> Maju 1
d. Maju 1 -> Kanan 90° -> Maju 2
Jawaban:
b
Pembahasan:
- Posisi awal: Menghadap Utara.
- Untuk pergi ke Timur, robot harus
berputar 90° ke kanan (sekarang menghadap Timur).
- Maju 2 langkah (sekarang di 2 langkah
Timur dari A).
- Untuk pergi ke Utara dari posisi
sekarang (masih menghadap Timur), robot harus berputar 90° ke kanan lagi
(sekarang menghadap Selatan? Ini salah).
Mari kita analisis opsi b:
- Kanan 90°: Dari Utara, berputar
kanan -> Hadap Timur.
- Maju 2: Bergerak 2 langkah ke Timur.
- Kanan 90°: Dari Timur, berputar
kanan -> Hadap Selatan. (Ini tidak sesuai karena tujuan akhirnya adalah
1 langkah ke Utara).
Ternyata tidak ada opsi yang sempurna. Opsi yang paling mendekati adalah b, dengan asumsi soal bermaksud "1 langkah di selatan". Jika soal benar "1 langkah di utara", maka algoritmanya harus: Kanan 90° -> Maju 2 -> Kiri 90° -> Maju 1 (yang merupakan opsi c). Jadi, untuk soal yang diberikan, dengan asumsi tujuan B adalah 2 langkah Timur dan 1 langkah Utara, jawaban yang benar adalah c.
Koreksi
untuk Soal 10: Jawaban yang tepat adalah c.
Pembahasan (Koreksi):
- Awal: Hadap Utara.
- Kanan 90°: Sekarang menghadap Timur.
- Maju 2: Bergerak 2 langkah ke Timur.
- Kiri 90°: Dari Timur, berputar kiri
-> Sekarang menghadap Utara.
- Maju 1: Bergerak 1 langkah ke Utara.
Robot sekarang berada di posisi 2 langkah Timur dan 1 langkah Utara dari titik awal.
