Soal, Kisi-kisi dan Jawaban STS Informatika SMP Kelas 9 Semester Genap
![]() |
| Soal, Kisi-kisi dan Jawaban STS Informatika SMP Kelas 9 Semester Genap |
NASKAH SOAL UJIAN
SEKOLAH
Mata Pelajaran: Informatika
Kelas/Semester: IX (Sembilan) / Genap
Materi: Algoritma dan Pemrograman
Waktu: 90 Menit
PETUNJUK UMUM:
1. Berdoalah sebelum
mengerjakan soal.
2. Tulislah identitas
Anda pada lembar jawaban yang tersedia.
3. Periksa dan bacalah
soal-soal sebelum Anda menjawabnya.
4. Dahulukan menjawab
soal yang Anda anggap mudah.
A. PILIHAN GANDA
*Pilihlah satu jawaban
yang paling tepat (A, B, C, atau D).*
1. Langkah-langkah logis
penyelesaian masalah yang disusun secara sistematis dan logis disebut ....
A. Logaritma
B. Algoritma
C. Aritmatika
D. Variabel
2. Dalam penulisan
algoritma menggunakan *flowchart*, simbol belah ketupat (*diamond*) digunakan
untuk menunjukkan ....
A. Proses perhitungan
B. Input atau Output
data
C. Awal atau akhir
program
D. Pengambilan keputusan
(Decision)
3. Perhatikan potongan
kode berikut:
`Luas = 0.5 * alas *
tinggi`
Simbol `*` dalam
komputer disebut sebagai ....
A. Operator logika
B. Operator aritmatika
C. Operator perbandingan
D. Operator penugasan
4. Tipe data yang paling
tepat untuk menyimpan nilai "Benar" atau "Salah" adalah
....
A. Integer
B. String
C. Boolean
D. Float
5. Manakah penulisan
nama variabel yang SALAH
menurut aturan pemrograman pada umumnya?
A. `luas_persegi`
B. `nilaiSiswa`
C. `2nomor`
D. `nama_depan`
6. Fungsi utama dari
sebuah *compiler* dalam pemrograman adalah ....
A. Menjalankan program
baris demi baris
B. Menerjemahkan kode
program ke dalam bahasa mesin sekaligus
C. Menyimpan data ke
dalam database
D. Membuat desain
antarmuka pengguna
7. Jika `a = 5` dan `b =
10`, maka hasil dari ekspresi logika `(a > 3) AND (b < 5)` adalah ....
A. True
B. False
C. Error
D. Null
8. Perhatikan pseudocode
berikut:
```text
INPUT nilai
IF nilai >= 75 THEN
PRINT "Lulus"
ELSE
PRINT "Remidi"
ENDIF
```
Tujuan dari algoritma di
atas adalah ....
A. Menghitung rata-rata
nilai
B. Menentukan kelulusan
berdasarkan batas nilai
C. Mengulang input nilai
siswa
D. Menjumlahkan nilai
siswa
9. Struktur kontrol yang
digunakan untuk menjalankan perintah secara berulang-ulang selama kondisi
tertentu terpenuhi disebut ....
A. Sequence (Runtutan)
B. Selection
(Percabangan)
C. Looping (Perulangan)
D. Array (Larik)
10. Dalam bahasa
pemrograman Python, fungsi `print()` digunakan untuk ....
A. Menerima masukan dari
pengguna
B. Menampilkan output ke
layar
C. Menghapus layar
D. Menghentikan program
11. Seorang siswa ingin
membuat program menghitung keliling lingkaran. Rumus matematika $K = 2 \times
\pi \times r$ jika ditulis dalam ekspresi pemrograman menjadi ....
A. `K = 2 x 3.14 x r`
B. `K = 2 * 3.14 * r`
C. `K = 2 : 3.14 : r`
D. `K = 2 ^ 3.14 ^ r`
12. Perhatikan kode
berikut:
```python
for i in range(5):
print("Informatika")
```
Berapa kali kata
"Informatika" akan dicetak di layar?
A. 1 kali
B. 4 kali
C. 5 kali
D. 6 kali
13. Jika kita ingin
menyimpan data nama-nama siswa dalam satu variabel saja, struktur data yang
paling tepat digunakan adalah ....
A. Integer
B. Array / List
C. Boolean
D. Char
14. Perhatikan algoritma
berikut:
1. Masukkan air ke panci
2. Nyalakan kompor
3. Tunggu hingga
mendidih
4. Masukkan mie
Langkah nomor 3
merupakan contoh penerapan ....
A. Input
B. Output
C. Proses menunggu
(Wait/Delay)
D. Percabangan
15. Diketahui variabel
`x = 10`. Kemudian dilakukan perintah `x = x + 5`. Nilai `x` sekarang adalah
....
A. 5
B. 10
C. 15
D. Error
16. Perhatikan potongan
kode program berikut:
```python
umur = 14
if umur < 13:
kategori =
"Anak-anak"
elif umur < 17:
kategori =
"Remaja"
else:
kategori =
"Dewasa"
print(kategori)
```
Output dari program di
atas adalah ....
A. Anak-anak
B. Remaja
C. Dewasa
D. Tidak ada output
17. Sebuah toko
memberikan diskon jika belanja di atas Rp100.000. Manakah kondisi logika yang
benar untuk situasi tersebut?
A. `if total_belanja
> 100000:`
B. `if total_belanja
< 100000:`
C. `if total_belanja ==
100000:`
D. `if total_belanja
>= 100000:`
18. Perhatikan pola
bilangan berikut: 1, 3, 5, 7, 9.
Algoritma untuk
menghasilkan deret tersebut menggunakan perulangan dengan langkah (step) ....
A. +1
B. +2
C. *2
D. +3
19. Analisislah kode
berikut:
```python
a = 10
b = 5
temp = a
a = b
b = temp
```
Apa yang terjadi pada
nilai variabel `a` dan `b` setelah kode dijalankan?
A. Nilai a dan b menjadi
0
B. Nilai a dan b menjadi
sama
C. Nilai a dan b saling
bertukar (Swap)
D. Nilai a dan b
bertambah
20. Jika sebuah program
mengalami *Infinite Loop* (perulangan tak terbatas), penyebab utamanya biasanya
adalah ....
A. Komputer terlalu
lambat
B. Tidak ada kondisi
yang menghentikan perulangan
C. Terlalu banyak
variabel
D. Salah memilih bahasa
pemrograman
21. Perhatikan kode
berikut:
```python
total = 0
for i in range(1, 4):
total = total + i
print(total)
```
Analisis jalannya
program, berapakah hasil akhirnya?
A. 3
B. 4
C. 6
D. 10
22. Seorang programmer
menemukan *bug* di mana program berhenti tiba-tiba saat pengguna memasukkan
huruf pada kolom yang seharusnya diisi angka. Jenis error ini disebut ....
A. Syntax Error
B. Logic Error
C. Runtime Error
D. Compilation Error
23. Perhatikan flowchart
berikut:
[Mulai] -> [Input A]
-> [A > 0?] --(Ya)--> [Cetak "Positif"] -> [Selesai]
(Tidak)
[Cetak
"Negatif"] -> [Selesai]
Apa kelemahan logika
dari flowchart di atas jika Input A adalah 0?
A. Akan mencetak
"Positif"
B. Akan mencetak
"Negatif" padahal 0 netral
C. Program akan error
D. Tidak mencetak
apa-apa
24. Diberikan array
`data = [10, 20, 30, 40]`.
Jika kita mengakses
`data[2]`, nilai yang muncul adalah .... (Asumsi indeks dimulai dari 0)
A. 10
B. 20
C. 30
D. 40
25. Manakah di antara
algoritma berikut yang paling efisien untuk mencari sebuah nama dalam daftar
nama yang sudah terurut abjad?
A. Linear Search
(Pencarian satu per satu dari awal)
B. Random Search
(Mencari acak)
C. Binary Search
(Membagi dua data terus menerus)
D. Bubble Sort
26. Anda diminta membuat
sistem lampu lalu lintas. Jika lampu merah menyala, mobil berhenti. Jika hijau,
jalan. Jika kuning, hati-hati. Struktur kontrol apa yang paling tepat digunakan
untuk menganalisis logika ini?
A. Perulangan `For`
B. Perulangan `While`
C. Percabangan
Bertingkat (`If-Elif-Else`)
D. Array
27. Perhatikan kode yang
salah berikut:
```python
x = 10
if x = 5:
print("Lima")
```
Mengapa kode tersebut
menghasilkan *Syntax Error*?
A. Variabel x belum
didefinisikan
B. Penggunaan tanda `=`
seharusnya `==` untuk perbandingan
C. Tidak boleh
menggunakan angka 5
D. Perintah print salah
tulis
28. Evaluasi dua metode
berikut untuk menghitung $5^4$:
Metode A: `5 * 5 * 5 *
5`
Metode B: `pow(5, 4)`
Manakah pernyataan
evaluasi yang paling tepat?
A. Metode A lebih baik
untuk pangkat yang sangat besar (misal pangkat 1000).
B. Metode B lebih
efisien dan mudah dibaca untuk pangkat yang besar.
C. Kedua metode
menghasilkan nilai yang berbeda.
D. Metode B tidak bisa
dijalankan di komputer.
29. Sebuah program kasir
menghitung total: `Total = Harga * Jumlah`. Namun, hasilnya selalu 0 meskipun
Harga dan Jumlah sudah diinput benar. Evaluasi kemungkinan penyebab kesalahan
logika tersebut!
A. Tipe data Harga
adalah String
B. Variabel Total belum
diinisialisasi
C. Salah satu variabel
(Harga atau Jumlah) bernilai 0 saat proses hitung
D. Komputer sedang error
30. Anda sedang
mengevaluasi sebuah game sederhana. Game tersebut tidak bisa selesai meskipun
pemain sudah mengalahkan semua musuh. Bagian mana dari algoritma yang perlu
diperiksa/dievaluasi?
A. Algoritma pergerakan
pemain
B. Algoritma
inisialisasi grafis
C. Kondisi pengecekan
"Game Over" atau "Win State"
D. Warna latar belakang
game
31. Perhatikan kasus
berikut: Sekolah ingin mengurutkan nilai siswa dari tertinggi ke terendah.
Algoritma 1:
Membandingkan setiap nilai satu per satu.
Algoritma 2: Mengambil
nilai tertinggi, taruh di depan, lalu cari lagi dari sisa data.
Evaluasi Algoritma 2,
algoritma ini dikenal dengan nama ....
A. Bubble Sort
B. Selection Sort
C. Insertion Sort
D. Merge Sort
32. Jika Anda diminta
menilai kualitas sebuah kode program, kriteria manakah yang paling TIDAK penting?
A. Efisiensi penggunaan
memori
B. Kebenaran logika
(Output benar)
C. Panjangnya baris kode
(Semakin panjang semakin bagus)
D. Kemudahan kode untuk
dibaca (Readability)
33. Sebuah robot
pembersih lantai diprogram: "Maju terus sampai menabrak tembok, lalu belok
kanan".
Evaluasi apa yang
terjadi jika robot diletakkan di tengah ruangan tanpa tembok?
A. Robot akan diam saja
B. Robot akan
berputar-putar
C. Robot akan maju terus
tanpa henti (mungkin sampai baterai habis)
D. Robot akan mendeteksi
debu
34. (Mencipta) Anda
diminta membuat algoritma untuk menentukan bilangan Ganjil atau Genap. Langkah
kunci (ekspresi logika) yang harus Anda buat adalah ....
A. `if bilangan > 0`
B. `if bilangan % 2 ==
0`
C. `if bilangan * 2 ==
0`
D. `if bilangan / 2 ==
1`
35. (Mencipta) Susunlah
urutan logika yang benar untuk menukar isi gelas A (Kopi) dan gelas B (Teh)
dengan bantuan gelas C (Kosong)!
1. Tuang isi B ke A
2. Tuang isi A ke C
3. Tuang isi C ke B
Urutan yang benar agar
isinya tertukar adalah ....
A. 1 - 2 - 3
B. 2 - 1 - 3
C. 3 - 2 - 1
D. 2 - 3 - 1
36. (Mencipta) Anda
ingin membuat program yang mencetak angka 10, 9, 8, ..., 1 (Hitung mundur).
Bagian parameter `range()` pada Python yang harus Anda tulis adalah ....
A. `range(1, 10)`
B. `range(10, 1, 1)`
C. `range(10, 0, -1)`
D. `range(10, 1, -1)`
37. (Mencipta) Seorang
guru ingin menghitung rata-rata nilai dari 30 siswa. Struktur kode paling
efisien yang harus Anda rancang adalah ....
A. Membuat 30 variabel
(n1, n2... n30) lalu dijumlah manual.
B. Menggunakan Array
untuk nilai, lalu Loop untuk menjumlahkan, kemudian dibagi 30.
C. Menggunakan 30 kali
perintah input dan 30 kali perintah print.
D. Menulis rumus
matematika manual di kertas.
38. (Mencipta) Anda
merancang sistem keamanan pintu. Pintu terbuka HANYA JIKA (Kartu Valid) DAN
(Sidik Jari Cocok) ATAU (Kode Darurat Benar). Ekspresi logika yang Anda buat
adalah ....
A. `(Kartu AND
SidikJari) OR KodeDarurat`
B. `Kartu AND (SidikJari
OR KodeDarurat)`
C. `Kartu OR SidikJari
OR KodeDarurat`
D. `(Kartu OR SidikJari)
AND KodeDarurat`
39. (Mencipta)
Perhatikan masalah ini: "Cetak bilangan kelipatan 3 antara 1 sampai
20".
Manakah potongan kode
yang Anda ciptakan untuk menyelesaikan masalah ini dengan benar?
A. `for i in range(1,
20): print(i)`
B. `for i in range(1,
21): if i % 3 == 0: print(i)`
C. `for i in range(3,
20): print(i)`
D. `for i in range(1,
20, 2): print(i)`
40. (Mencipta) Anda
diminta memodifikasi program kalkulator sederhana agar tidak error saat
pengguna membagi dengan nol (Division by Zero). Apa yang akan Anda tambahkan?
A. Menambahkan variabel
baru
B. Menambahkan struktur
`if penyebut == 0: print("Error") else: hasil = pembilang/penyebut`
C. Mengubah tipe data
menjadi integer
D. Menghapus fitur
pembagian
B. URAIAN (ESSAY)
*Jawablah pertanyaan
berikut dengan jelas dan terstruktur!*
41. (C2 - Memahami) Jelaskan
perbedaan mendasar antara struktur kontrol Perulangan (Looping) dan Percabangan (Conditional)!
Berikan contoh situasi dunia nyata untuk masing-masing struktur tersebut.
42. (C3 - Menerapkan)
Buatlah sebuah Pseudocode
sederhana untuk menghitung luas persegi panjang, di mana Panjang dan Lebar
dimasukkan oleh pengguna (Input), kemudian hasilnya ditampilkan (Output).
43. (C4 - Menganalisis)
Perhatikan kode program (Python) berikut ini:
```python
angka = 1
while angka <= 5:
print(angka)
```
Program di atas akan
berjalan terus menerus tanpa henti (*Infinite Loop*).
a. Analisislah mengapa
hal itu terjadi!
b. Tuliskan perbaikan
kodenya agar program mencetak angka 1 sampai 5 lalu berhenti.
44. (C5 - Mengevaluasi)
Sebuah aplikasi ojek online menentukan tarif sebagai berikut:
- 0 - 4 km pertama:
Rp10.000 (Tarif Flat)
- Di atas 4 km: Ditambah
Rp2.000 per km selanjutnya.
Seorang programmer
menulis rumus: `Tarif = 10000 + (Jarak * 2000)`.
Evaluasilah rumus
tersebut! Apakah benar atau salah untuk semua kondisi jarak? Jika salah,
jelaskan letak kesalahannya.
45. (C6 - Mencipta)
Rancanglah sebuah Flowchart
(Gambarkan alurnya atau tuliskan deskripsi alurnya) untuk sistem ATM Sederhana dengan
fitur:
1. Masukkan PIN.
2. Jika PIN salah, tolak
kartu.
3. Jika PIN benar, pilih
menu "Tarik Tunai".
4. Cek Saldo. Jika saldo
cukup, keluarkan uang dan kurangi saldo. Jika tidak, tampilkan "Saldo
Kurang".
5. Selesai.
Bagi rekan yang membutuhkan Soal, Kisi-kisi dan Jawaban STS Informatika SMP Kelas 9 Semester Genap dalam format Microsoft Word silakan unduh disini
















