-->

Soal, Kisi-kisi dan Jawaban STS Informatika SMP Kelas 9 Semester Genap

Feb 23, 2026

 

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 

0 comments:

Post a Comment test