KANGJO.INFO, Tamiang Layang, Barito Timur. Kumpulan Asesmen Sumatif Mata Pelajaran Tekmik Informatika Komputer (TIK) Kelas 8 Sekolah Menengah Pertama (SMP) atau sederajat ini disusun sebagai salah satu sarana pendukung dalam proses pembelajaran, khususnya dalam membantu peserta didik memahami materi Mata Pelajaran Tekmik Informatika Komputer (TIK) Kelas 8 secara lebih mendalam. Soal-soal yang disajikan dirancang berdasarkan kurikulum yang berlaku, dengan memperhatikan kompetensi dasar serta indikator pencapaian yang harus dikuasai oleh siswa Kelas 8. Selain itu, soal-soal ini diharapkan dapat melatih kemampuan berpikir kritis, analitis, dan pemecahan masalah peserta didik.
Kumpulan Asesmen Sumatif ini juga dapat dimanfaatkan oleh guru sebagai bahan evaluasi pembelajaran, serta oleh orang tua sebagai sarana pendampingan belajar anak di rumah. Dengan latihan yang rutin, diharapkan siswa dapat lebih siap dalam menghadapi ulangan harian maupun penilaian lainnya.
Penyusun menyadari bahwa dalam penyusunan buku ini masih terdapat kekurangan. Oleh karena itu, kritik dan saran yang membangun sangat diharapkan guna perbaikan di masa yang akan datang.
Akhir kata, semoga kumpulan Asesmen Sumatif ini bermanfaat bagi semua pihak yang terlibat dalam dunia pendidikan, khususnya dalam meningkatkan kualitas pembelajaran Mata Pelajaran Tekmik Informatika Komputer (TIK) Kelas 8 di tingkat Sekolah Menengah Pertama (SMP).
Bank Soal
Jenjang: SMP | Kelas: Kelas 8 | Mata Pelajaran: Informatika
Topik: Bab 7 Algoritma Pemrogr, 1. Kode Control, Input, dan Variable, 2. Kode Custom Block, B. Pengantar Blockly Games dan Eksplorasi Puzzle Maze, C. Eksplorasi Blockly Games Music, D. Eksplorasi Sprites dengan Block, E. Pengenalan Pemrograman Prosedural, 1. Variabel, 2. Percabangan, 3. Pengulangan
- [Pilihan Ganda] (LOTS)
Dalam pemrograman blok, apa fungsi utama dari sebuah variabel?
- Menghentikan program saat terjadi error
- Menyimpan nilai data sementara yang dapat diubah selama program berjalan
- Menghasilkan suara atau musik pada program
- Mendeteksi tabrakan antar sprite
Jawaban: Menyimpan nilai data sementara yang dapat diubah selama program berjalan
Penjelasan: Variabel berfungsi sebagai wadah penyimpanan memori sementara untuk data atau nilai yang bisa dipanggil atau diubah kapan saja saat program dieksekusi.
- [Pilihan Ganda] (LOTS)
Blok manakah yang paling tepat digunakan untuk mengambil teks masukan dari pengguna pada antarmuka program?
- Say for 2 seconds
- Repeat until
- Set variable to
- Ask and wait
Jawaban: Ask and wait
Penjelasan: Blok ‘ask and wait’ digunakan untuk memunculkan kotak input kepada pengguna, dan jawaban pengguna akan disimpan dalam variabel sistem ‘answer’.
- [Pilihan Ganda] (MOTS)
Jika sebuah variabel bernama ‘Skor’ diatur ke nilai 0 di awal, kemudian terdapat blok pengulangan ‘Repeat 5 times’ yang berisi perintah ‘Change Skor by 2’, berapakah nilai akhir dari variabel ‘Skor’?
- 2
- 5
- 10
- 12
Jawaban: 10
Penjelasan: Nilai awal 0. Pengulangan terjadi 5 kali. Setiap pengulangan menambah nilai 2 (0+2+2+2+2+2 = 10).
- [Pilihan Ganda] (HOTS)
Budi ingin menukar nilai dari Variabel A dan Variabel B. Jika A=5 dan B=10, manakah urutan algoritma yang benar agar pertukaran berhasil tanpa ada nilai yang hilang?
- Set A to B, Set B to A
- Set C to A, Set A to B, Set B to C
- Set A to 0, Set B to A
- Set A to A+B, Set B to A
Jawaban: Set C to A, Set A to B, Set B to C
Penjelasan: Untuk menukar dua variabel, diperlukan variabel sementara (C). Nilai A disimpan di C, lalu A diisi nilai B, dan B diisi nilai awal A yang ada di C.
- [Pilihan Ganda] (MOTS)
Sebuah program menggunakan blok ‘Join’ dengan struktur: Join ‘Halo ‘ dan variabel ‘Nama’. Jika pengguna memasukkan input ‘Siti’ ke dalam variabel ‘Nama’, apa keluaran (output) program tersebut?
- HaloNama
- HaloSiti
- Halo Siti
- Siti Halo
Jawaban: Halo Siti
Penjelasan: Blok Join menggabungkan dua string. ‘Halo ‘ (dengan spasi) digabung dengan ‘Siti’ menghasilkan ‘Halo Siti’.
- [Pilihan Ganda] (LOTS)
Manakah dari berikut ini yang merupakan aturan penamaan variabel yang baik dan direkomendasikan dalam pemrograman?
- Sangat panjang hingga menjadi satu kalimat utuh
- Deskriptif dan tidak mengandung karakter khusus yang dilarang
- Menggunakan angka di huruf pertama
- Menggunakan nama acak seperti x1, x2 untuk semua fungsi
Jawaban: Deskriptif dan tidak mengandung karakter khusus yang dilarang
Penjelasan: Nama variabel harus jelas (deskriptif) sesuai fungsinya dan mematuhi sintaks bahasa pemrograman (biasanya tanpa spasi dan karakter khusus).
- [Pilihan Ganda] (MOTS)
Diberikan sebuah algoritma: Jika input angka lebih dari 50, maka set Variabel Status menjadi ‘Lulus’, selain itu ‘Gagal’. Jika pengguna memasukkan angka 50, apa isi Variabel Status?
- Lulus
- Gagal
- Error
- Kosong
Jawaban: Gagal
Penjelasan: Kondisinya adalah ‘lebih dari 50’ (>50). Angka 50 tidak lebih besar dari 50, sehingga masuk ke blok ‘selain itu’ (Else), yaitu ‘Gagal’.
- [Pilihan Ganda] (HOTS)
Terdapat sebuah blok ‘Wait until [X > 10]’. Namun, di dalam program tidak ada satu pun perintah yang dapat mengubah nilai X. Apa yang akan terjadi pada program tersebut?
- Program akan melompat ke blok berikutnya setelah 10 detik
- Program akan error dan tertutup otomatis
- Program akan tertahan selamanya di blok tersebut (Infinite Wait)
- Program berjalan kembali ke awal
Jawaban: Program akan tertahan selamanya di blok tersebut (Infinite Wait)
Penjelasan: Blok wait until akan menghentikan alur program sampai kondisi terpenuhi. Jika X tidak pernah diubah dan nilainya awalnya kurang dari/sama dengan 10, kondisi tidak akan pernah bernilai True.
- [Pilihan Ganda] (HOTS)
Sebuah program kalkulator sederhana meminta input dua angka. Namun, saat pengguna memasukkan teks huruf, program mengalami kesalahan hitung. Validasi apa yang kurang pada algoritma tersebut?
- Pengecekan tipe data untuk memastikan masukan adalah angka
- Meminta input lebih dari tiga kali
- Mengubah warna latar belakang layar
- Mematikan program secara otomatis tanpa peringatan
Jawaban: Pengecekan tipe data untuk memastikan masukan adalah angka
Penjelasan: Program yang mengharapkan operasi matematis harus memvalidasi bahwa input yang masuk benar-benar bertipe numerik, bukan teks (string).
- [Pilihan Ganda] (HOTS)
Apa akibat utama dari kesalahan meletakkan inisialisasi variabel ‘Set Skor to 0’ di dalam blok pengulangan (looping) pada sebuah program permainan?
- Program berjalan lebih cepat
- Skor akan bertambah secara eksponensial
- Skor akan terus kembali menjadi 0 setiap kali pengulangan berjalan
- Pengulangan akan otomatis berhenti
Jawaban: Skor akan terus kembali menjadi 0 setiap kali pengulangan berjalan
Penjelasan: Inisialisasi harus dilakukan di luar blok pengulangan (biasanya di awal program). Jika di dalam, nilai akan terus di-reset sehingga skor tidak pernah bertambah secara akumulatif.
- [Pilihan Ganda] (LOTS)
Dalam platform pemrograman visual, terdapat fitur ‘My Blocks’ atau Custom Block. Apa fungsi utama fitur ini?
- Mengganti tampilan warna seluruh blok
- Membuat prosedur baru untuk mengelompokkan blok-blok agar kode lebih rapi dan dapat digunakan ulang
- Meningkatkan kecepatan prosesor komputer
- Menghubungkan komputer ke internet
Jawaban: Membuat prosedur baru untuk mengelompokkan blok-blok agar kode lebih rapi dan dapat digunakan ulang
Penjelasan: Custom block digunakan untuk membuat fungsi buatan sendiri (modularitas), sehingga blok yang sering dipakai tidak perlu ditulis ulang.
- [Pilihan Ganda] (MOTS)
Ketika membuat Custom Block, kita dapat menambahkan ‘Input’ atau parameter (misalnya angka atau teks). Apa kegunaan parameter tersebut?
- Untuk mengubah ukuran karakter di layar
- Agar Custom Block dapat menjalankan perintah yang sama dengan nilai masukan yang berbeda-beda
- Untuk menghapus blok lain dari sistem
- Agar program membutuhkan password sebelum berjalan
Jawaban: Agar Custom Block dapat menjalankan perintah yang sama dengan nilai masukan yang berbeda-beda
Penjelasan: Parameter memungkinkan prosedur yang sama merespons secara berbeda tergantung nilai (argumen) yang diberikan saat prosedur itu dipanggil.
- [Pilihan Ganda] (MOTS)
Sebuah program menggambar bentuk memiliki pola persegi yang digambar 4 kali. Programmer menyatukan blok gambar persegi itu ke dalam Custom Block bernama ‘GambarPersegi’. Konsep apakah yang diterapkan programmer ini?
- Enkripsi
- Abstraksi dan Modularitas
- Deklarasi Variabel Tunggal
- Debugging Tipe Data
Jawaban: Abstraksi dan Modularitas
Penjelasan: Menyatukan proses kompleks ke dalam satu nama blok sederhana disebut abstraksi, dan membagi program ke dalam bagian-bagian kecil disebut modularitas.
- [Pilihan Ganda] (HOTS)
Budi membuat Custom Block ‘Hitung Luas’ dengan parameter panjang dan lebar, tetapi setelah dijalankan nilainya selalu 0. Berdasarkan prinsip debugging, di mana kemungkinan letak kesalahannya?
- Budi tidak menggunakan warna blok yang benar
- Di dalam definisi Custom Block, variabel parameter tidak digunakan untuk operasi perkalian
- Komputer Budi tidak memiliki fitur perkalian
- Custom Block tidak bisa digunakan untuk perhitungan angka
Jawaban: Di dalam definisi Custom Block, variabel parameter tidak digunakan untuk operasi perkalian
Penjelasan: Jika sebuah fungsi dengan parameter selalu mengembalikan 0, kemungkinan besar parameter input yang diberikan tidak digunakan atau diabaikan dalam operasi matematika di dalam fungsi tersebut.
- [Pilihan Ganda] (HOTS)
Mengapa penggunaan Custom Block lebih menguntungkan dibandingkan menyalin-tempel (copy-paste) sekumpulan blok yang sama berulang kali?
- Jika ada kesalahan logika, kita hanya perlu memperbaikinya di satu tempat pada definisi Custom Block
- Blok copy-paste selalu menyebabkan komputer hang
- Custom Block bisa berjalan tanpa daya listrik
- Menyalin-tempel akan mengurangi resolusi layar
Jawaban: Jika ada kesalahan logika, kita hanya perlu memperbaikinya di satu tempat pada definisi Custom Block
Penjelasan: Modularitas memudahkan pemeliharaan kode (maintenance). Jika logika harus diubah, cukup diubah di definisi My Block, dan seluruh bagian yang memanggilnya akan otomatis menyesuaikan.
- [Pilihan Ganda] (LOTS)
Di permainan edukasi Blockly Games Maze, blok pengulangan manakah yang digunakan untuk membuat karakter terus berjalan maju hingga mencapai titik akhir?
- Repeat 10 times
- Repeat until goal
- If path ahead
- Wait 1 second
Jawaban: Repeat until goal
Penjelasan: Blok ‘Repeat until goal’ membuat karakter mengulang semua perintah yang ada di dalamnya secara terus-menerus hingga kondisi tujuan akhir tercapai.
- [Pilihan Ganda] (LOTS)
Dalam Maze tingkat lanjut, karakter seringkali harus memeriksa apakah ada jalan di depannya sebelum melangkah. Blok apakah yang menyediakan fungsi ini?
- Move forward
- Turn left
- If path ahead
- Repeat until goal
Jawaban: If path ahead
Penjelasan: Blok kondisional ‘If path ahead’ akan mendeteksi apakah di depan karakter terdapat jalur bebas rintangan atau tembok.
- [Pilihan Ganda] (MOTS)
Sebuah algoritma Maze menggunakan blok ‘If path ahead [Move forward]’ di dalam ‘Repeat until goal’. Karakter diletakkan di lorong panjang yang berbelok ke kiri di ujungnya. Apa yang terjadi saat karakter mencapai belokan?
- Karakter akan menembus tembok
- Karakter otomatis berbelok ke kiri mencari jalan
- Karakter akan berhenti bergerak maju dan terjebak karena tidak ada perintah berbelok saat jalan di depan buntu
- Karakter akan berjalan mundur kembali ke titik awal
Jawaban: Karakter akan berhenti bergerak maju dan terjebak karena tidak ada perintah berbelok saat jalan di depan buntu
Penjelasan: Karena hanya ada perintah maju saat ada jalan di depan, saat jalan buntu (harus belok), kondisi menjadi False dan karakter tidak melakukan apa-apa.
- [Pilihan Ganda] (HOTS)
Untuk melewati jalur zig-zag di Blockly Maze, logika percabangan manakah yang paling efisien diletakkan di dalam blok Repeat until goal?
- Move forward, Turn left, Move forward, Turn right (diulang statis)
- If path to the right [Turn right], If path to the left [Turn left], Move forward
- Repeat 10 times [Move forward]
- Wait until path ahead [Move forward]
Jawaban: If path to the right [Turn right], If path to the left [Turn left], Move forward
Penjelasan: Untuk melewati zig-zag secara dinamis, karakter harus bisa mengecek arah mana yang terbuka, berbelok jika diperlukan, lalu maju sejauh satu langkah setiap iterasi.
- [Pilihan Ganda] (MOTS)
Diberikan algoritma Maze: Repeat until goal { If path ahead [Move forward] Else [Turn left] }. Apa perilaku karakter yang dihasilkan dari algoritma ini?
- Karakter berjalan mundur jika ada rintangan
- Karakter akan berbelok kiri pada setiap persimpangan meskipun jalan di depannya terbuka
- Karakter akan diam jika jalan di depan buntu
- Karakter akan selalu maju jika ada jalan di depan, jika terhalang ia akan berbelok ke kiri
Jawaban: Karakter akan selalu maju jika ada jalan di depan, jika terhalang ia akan berbelok ke kiri
Penjelasan: Logika If-Else ini mendikte bahwa opsi utama adalah maju. Opsi alternatif (jika tembok di depan) adalah berbelok ke kiri (biasanya mencari arah terbuka).
- [Pilihan Ganda] (HOTS)
Pada level Maze tersulit, jalur memiliki banyak persimpangan rumit. Strategi ‘Wall Follower’ (Menyusuri Tembok) sering digunakan. Manakah dari blok berikut yang mewakili logika Wall Follower untuk tembok kiri?
- If path ahead [Move forward] Else [Turn left]
- If path to the left [Turn left, Move forward] Else if path ahead [Move forward] Else [Turn right]
- Repeat until goal [Move forward, Turn left]
- If path to the right [Move forward] Else [Turn left]
Jawaban: If path to the left [Turn left, Move forward] Else if path ahead [Move forward] Else [Turn right]
Penjelasan: Aturan tangan kiri (left-hand rule) memprioritaskan: 1) Jika bisa ke kiri, belok kiri lalu maju. 2) Jika tidak bisa ke kiri tapi bisa maju, maju. 3) Jika depan dan kiri buntu, belok kanan.
- [Pilihan Ganda] (MOTS)
Dalam menyelesaikan Maze, mengapa penggunaan blok ‘Repeat until goal’ lebih disarankan dibandingkan menggunakan banyak blok ‘Move forward’ secara manual?
- Karena blok manual tidak diizinkan oleh sistem Blockly
- Karena menghasilkan kode yang lebih ringkas, efisien, dan dinamis menyesuaikan panjang lintasan
- Karena repeat until goal memperlambat gerakan karakter
- Karena karakter tidak bisa berbelok tanpa blok repeat
Jawaban: Karena menghasilkan kode yang lebih ringkas, efisien, dan dinamis menyesuaikan panjang lintasan
Penjelasan: Menggunakan loop mengurangi jumlah blok yang dipakai, membuat algoritma lebih general dan efisien untuk lintasan dengan jarak berapapun.
- [Pilihan Ganda] (HOTS)
Sebuah karakter Maze terjebak berputar-putar di tempat yang sama (Infinite Turn). Kesalahan logika mana yang paling mungkin menyebabkan hal ini?
- Menggunakan blok Turn left berulang-ulang tanpa disertai perintah Move forward setelah berbelok
- Lupa menambahkan blok Repeat until goal
- Kondisi If path ahead bernilai True terus menerus
- Menggunakan blok Move forward di luar loop
Jawaban: Menggunakan blok Turn left berulang-ulang tanpa disertai perintah Move forward setelah berbelok
Penjelasan: Jika karakter menemukan jalan buntu lalu berbelok, tapi setelah berbelok ia hanya menemukan perintah berbelok lagi dalam loop tanpa ada perintah maju, ia akan terus berputar di tempat.
- [Pilihan Ganda] (MOTS)
Terdapat tantangan Maze yang mengharuskan karakter berjalan lurus sejauh 5 langkah lalu belok kanan, lurus 5 langkah lalu belok kanan, berulang 4 kali membentuk persegi. Blok apakah yang paling optimal merangkum aksi ini?
- Repeat until goal { Move forward, Turn right }
- Repeat 20 times [Move forward]
- Repeat 4 times { Repeat 5 times [Move forward], Turn right }
- If path ahead [Move forward] Else [Turn right]
Jawaban: Repeat 4 times { Repeat 5 times [Move forward], Turn right }
Penjelasan: Pola pergerakan persegi membutuhkan loop utama sebanyak sisi (4) dan loop di dalamnya (nested loop) untuk maju sebanyak panjang sisi (5 langkah), diikuti belokan.
- [Pilihan Ganda] (MOTS)
Apa perbedaan mendasar antara blok kendali ‘If’ dan pengulangan ‘While/Repeat until’ saat mengeksekusi kondisi di dalam Maze?
- Tidak ada perbedaan, keduanya melakukan pengulangan
- ‘If’ digunakan untuk berjalan, sedangkan ‘While’ digunakan untuk berhenti
- ‘If’ mengecek kondisi sekali lalu melanjutkan baris kode di bawahnya, sedangkan ‘While’ mengecek dan menjalankan blok di dalamnya berulang-ulang selama kondisi terpenuhi
- ‘If’ hanya bisa diletakkan di akhir program, ‘While’ harus di awal
Jawaban: ‘If’ mengecek kondisi sekali lalu melanjutkan baris kode di bawahnya, sedangkan ‘While’ mengecek dan menjalankan blok di dalamnya berulang-ulang selama kondisi terpenuhi
Penjelasan: If adalah percabangan (sekali jalan), sedangkan While adalah pengulangan bersyarat (terus berputar hingga kondisi berubah).
- [Pilihan Ganda] (LOTS)
Di Blockly Games Music, tinggi rendahnya suatu nada ditentukan oleh apa?
- Blok Repeat
- Pemilihan Note (Pitch) pada blok Play Note
- Blok Rest (Jeda)
- Tipe alat musik yang dipilih
Jawaban: Pemilihan Note (Pitch) pada blok Play Note
Penjelasan: Nada atau titinada (pitch) seperti C4, D4, E4 diatur dalam blok Play Note untuk menentukan tinggi rendahnya suara yang dihasilkan.
- [Pilihan Ganda] (MOTS)
Jika sebuah lagu memiliki tempo yang terlalu cepat sehingga nada-nadanya terdengar bertumpuk, nilai apa pada blok ‘Play Note’ yang harus diubah agar setiap nada dimainkan lebih lambat?
- Meningkatkan volume suara komputer
- Mengganti instrumen musik dari piano ke gitar
- Fraksi ketukan atau durasi nada (misalnya mengubah 1/4 menjadi 1/2)
- Menambah blok If sebelum nada
Jawaban: Fraksi ketukan atau durasi nada (misalnya mengubah 1/4 menjadi 1/2)
Penjelasan: Durasi nada menentukan seberapa lama nada dibunyikan. Semakin besar pecahan ketukannya (misal 1/2 ketuk dibanding 1/4 ketuk), semakin lama durasinya.
- [Pilihan Ganda] (MOTS)
Seorang siswa ingin memainkan lirik lagu ‘Na Na Na Na’ yang memiliki tinggi dan durasi nada yang sama persis sebanyak 4 kali. Langkah apa yang paling efisien?
- Menarik 4 blok nada secara manual
- Meletakkan satu blok nada ke dalam blok pengulangan (Repeat 4 times)
- Membuat 4 Custom Block yang berbeda
- Menggunakan blok Wait until 4 seconds
Jawaban: Meletakkan satu blok nada ke dalam blok pengulangan (Repeat 4 times)
Penjelasan: Alih-alih menarik 4 blok nada yang sama, menaruh 1 blok nada di dalam loop Repeat 4 times jauh lebih cepat dan kodenya lebih ringkas.
- [Pilihan Ganda] (MOTS)
Dalam musik Blockly, terkadang terdapat lagu yang memiliki bagian reff yang dimainkan di tengah dan di akhir lagu. Fitur manakah yang sangat membantu agar blok reff tidak perlu disusun ulang dari awal?
- Mengekspor lagu menjadi file MP3
- Menggunakan blok If path ahead
- Mengelompokkan susunan nada reff ke dalam My Blocks (Fungsi) lalu memanggilnya saat diperlukan
- Membuka jendela browser baru
Jawaban: Mengelompokkan susunan nada reff ke dalam My Blocks (Fungsi) lalu memanggilnya saat diperlukan
Penjelasan: Custom block / My Blocks sangat ideal untuk menampung melodi atau reff yang dimainkan berulang kali di berbagai bagian lagu yang berbeda.
- [Pilihan Ganda] (HOTS)
Studi Kasus: Di Blockly Music, terdapat fungsi untuk menjalankan dua alat musik (contoh: Piano dan Drum) secara bersamaan (sinkron). Bagaimana cara menyusun blok agar kedua alat musik mulai berbunyi di detik yang sama?
- Menyusun blok drum di bawah blok piano secara berurutan
- Menempatkan kedua blok instrumen pada titik awal program (start) yang sama pada blok alur yang terpisah (Parallel Execution)
- Menggabungkan instrumen menggunakan blok Join
- Menambahkan blok Wait di salah satu instrumen
Jawaban: Menempatkan kedua blok instrumen pada titik awal program (start) yang sama pada blok alur yang terpisah (Parallel Execution)
Penjelasan: Agar dua blok suara berbunyi bersamaan, mereka tidak boleh dirangkai secara sekuensial (atas ke bawah), melainkan harus diletakkan sejajar (paralel) dari trigger awal yang sama.
- [Pilihan Ganda] (LOTS)
Dalam sistem koordinat bidang Sprite (seperti di Scratch/Blockly), posisi sebuah Sprite di layar ditentukan oleh sumbu X dan sumbu Y. Sumbu X digunakan untuk merepresentasikan pergerakan ke arah mana?
- Atas dan Bawah (Vertikal)
- Maju dan Mundur (Z-Depth)
- Kanan dan Kiri (Horizontal)
- Berputar searah jarum jam
Jawaban: Kanan dan Kiri (Horizontal)
Penjelasan: Sumbu X pada bidang Kartesius merepresentasikan garis horizontal (kiri-kanan), sedangkan Y merepresentasikan vertikal (atas-bawah).
- [Pilihan Ganda] (MOTS)
Jika sebuah Sprite saat ini berada di koordinat X: 0, Y: 0. Lalu diberikan perintah ‘Change Y by -10’ dan ‘Change X by 10’. Di manakah posisi akhir Sprite tersebut?
- X: -10, Y: 10 (Kiri atas)
- X: 10, Y: -10 (Bergerak serong ke kanan bawah)
- X: 0, Y: 0 (Tetap di tempat)
- X: 10, Y: 10 (Kanan atas)
Jawaban: X: 10, Y: -10 (Bergerak serong ke kanan bawah)
Penjelasan: Mengubah X dengan bilangan positif (10) menggeser sprite ke kanan. Mengubah Y dengan bilangan negatif (-10) menggeser sprite ke bawah. Hasilnya posisi serong kanan bawah.
- [Pilihan Ganda] (LOTS)
Blok event (kejadian) manakah yang umum digunakan sebagai pemicu (trigger) untuk memulai seluruh urutan algoritma utama pada permainan berbasis Sprite saat program pertama kali dimainkan?
- When this sprite clicked
- When Green Flag clicked
- Broadcast message1
- Stop all
Jawaban: When Green Flag clicked
Penjelasan: Bendera Hijau (Green Flag) adalah standar universal di lingkungan seperti Scratch dan sejenisnya untuk menjalankan blok kode utama sebagai penanda game dimulai.
- [Pilihan Ganda] (MOTS)
Untuk membuat Sprite seolah-olah terlihat sedang berjalan secara nyata (animasi langkah kaki), urutan blok apa yang biasa ditempatkan di dalam blok Forever (pengulangan tanpa henti)?
- Hide sprite, Show sprite
- Change color effect by 25
- Move 10 steps, Next costume, Wait 0.1 seconds
- Say ‘Berjalan’ for 2 seconds
Jawaban: Move 10 steps, Next costume, Wait 0.1 seconds
Penjelasan: Animasi tercipta dari perubahan posisi (move), perubahan gambar sprite (next costume), dan jeda waktu sedikit agar perpindahan frame terlihat natural oleh mata.
- [Pilihan Ganda] (HOTS)
Studi Kasus: Sprite A (Tombol) ditekan, kemudian Sprite B (Karakter) harus melompat. Cara apa yang paling efektif agar Sprite B tahu bahwa Sprite A baru saja ditekan?
- Sprite B terus-menerus mengecek koordinat klik mouse dari Sprite A
- Sprite A mengeksekusi blok ‘Broadcast message’, dan Sprite B memiliki blok event ‘When I receive message’ untuk merespons
- Menyatukan kedua Sprite menjadi satu gambar yang sama
- Membuat variabel ‘Lompat’ menjadi 0 dan didiamkan saja
Jawaban: Sprite A mengeksekusi blok ‘Broadcast message’, dan Sprite B memiliki blok event ‘When I receive message’ untuk merespons
Penjelasan: Fitur Broadcast bertindak sebagai pesan radio (event-driven programming). Satu sprite memancarkan pesan, sprite lain yang menangkap sinyal tersebut akan menjalankan perintahnya.
- [Pilihan Ganda] (LOTS)
Struktur algoritma prosedural yang memungkinkan program memilih salah satu dari dua jalur eksekusi berdasarkan suatu kondisi kebenaran (True/False) disebut?
- Pengulangan (Looping)
- Percabangan (Branching / If-Else)
- Inisialisasi Variabel
- Deklarasi (Declaration)
Jawaban: Percabangan (Branching / If-Else)
Penjelasan: Percabangan (If-Else) mengevaluasi kondisi. Jika True masuk ke blok pertama, jika False masuk ke blok Else.
- [Pilihan Ganda] (HOTS)
Diberikan algoritma percabangan: Jika Nilai > 70 maka Predikat C Jika Nilai > 80 maka Predikat B Jika Nilai > 90 maka Predikat A Jika seorang siswa mendapat nilai 95, ia malah mendapatkan Predikat C. Mengapa kesalahan logika (bug) ini terjadi?
- Kondisi Nilai > 70 dievaluasi paling awal dan langsung bernilai True, sehingga program langsung mencetak C dan mengabaikan kondisi di bawahnya
- Komputer tidak mampu memproses angka lebih besar dari 90
- Variabel Predikat belum dideklarasikan dengan nilai 0
- Nilai 95 sebenarnya kurang dari 70 secara komputasi
Jawaban: Kondisi Nilai > 70 dievaluasi paling awal dan langsung bernilai True, sehingga program langsung mencetak C dan mengabaikan kondisi di bawahnya
Penjelasan: Dalam urutan If-Else if, komputer akan mengeksekusi kondisi pertama yang terpenuhi lalu keluar dari blok percabangan. Karena 95 > 70 itu benar, maka proses berhenti di sana. Urutan harus dibalik dari yang terbesar.
- [Pilihan Ganda] (MOTS)
Jika sebuah sistem login mewajibkan ‘Username’ harus benar DAN ‘Password’ harus benar agar bisa masuk, operator logika apa yang menghubungkan kedua kondisi tersebut?
- OR
- NOT
- AND
- NAND
Jawaban: AND
Penjelasan: Operator AND mewajibkan semua kondisi yang terhubung harus bernilai True agar hasil keseluruhannya True.
- [Pilihan Ganda] (MOTS)
Sebuah toko memberi diskon jika pembeli memiliki Kartu Member ATAU Total Belanja lebih dari Rp100.000. Operator logika manakah yang digunakan pada percabangan program toko tersebut?
- AND
- OR
- EQUAL
- XOR
Jawaban: OR
Penjelasan: Operator OR hanya mewajibkan salah satu kondisi saja yang bernilai True agar keseluruhan pernyataan menjadi True (mendapat diskon).
- [Pilihan Ganda] (MOTS)
Diberikan algoritma: Set X to 0 Repeat 3 times { Set X to X + 5 } Berapa nilai X pada akhir pengulangan?
- 5
- 10
- 15
- 0
Jawaban: 15
Penjelasan: Iterasi 1: X = 0+5=5. Iterasi 2: X= 5+5=10. Iterasi 3: X = 10+5=15. Selesai.
- [Pilihan Ganda] (HOTS)
Studi Kasus: Program mencetak deret angka genap dari 2 hingga 10 menggunakan perulangan While. Kondisi pada While adalah (Angka <= 10). Jika di dalam perulangan program TIDAK menyertakan blok untuk menambah nilai ‘Angka’, apa yang akan terjadi?
- Akan terjadi Infinite Loop (pengulangan tanpa batas) karena nilai variabel Angka tidak pernah melampaui 10
- Program langsung error dan mati (Crash) sebelum berjalan
- Program hanya mencetak angka 2 satu kali lalu berhenti
- Deret angka ganjil akan ikut tercetak secara otomatis
Jawaban: Akan terjadi Infinite Loop (pengulangan tanpa batas) karena nilai variabel Angka tidak pernah melampaui 10
Penjelasan: Setiap loop While membutuhkan aksi pengubah kondisi (condition modifier). Jika variabel kontrol tidak diupdate (di-increment), kondisinya selalu True selamanya.
- [Pilihan Ganda] (MOTS)
Operator Modulo (Sisa hasil bagi) sangat berguna dalam pemrograman. Untuk mengecek apakah sebuah variabel berisi bilangan genap, kita bisa menggunakan percabangan: Jika (Variabel Modulo 2) = … ?
- 1
- 2
- 0
- Bilangan itu sendiri
Jawaban: 0
Penjelasan: Bilangan genap adalah bilangan yang habis dibagi 2. Artinya sisa hasil baginya (Modulo) terhadap angka 2 adalah nol.
- [Pilihan Ganda] (HOTS)
Studi Kasus: Budi diminta membuat algoritma untuk mencari nilai terbesar dari 100 data angka yang dimasukkan pengguna. Ia menyiapkan variabel ‘Nilai_Max’ dengan nilai awal 0. Logika apa yang harus ditaruh di dalam perulangan untuk mengecek setiap ‘Angka_Input’?
- If Angka_Input < Nilai_Max, then Set Nilai_Max to Angka_Input
- Set Nilai_Max to Nilai_Max + Angka_Input
- If Angka_Input > Nilai_Max, then Set Nilai_Max to Angka_Input
- Repeat until Nilai_Max = 100
Jawaban: If Angka_Input > Nilai_Max, then Set Nilai_Max to Angka_Input
Penjelasan: Logika pencarian nilai maksimum (Max Finding): Bandingkan input baru dengan max saat ini. Jika lebih besar, timpa nilai max lama dengan input baru tersebut.
- [Pilihan Ganda] (HOTS)
Dalam algoritma penghitungan rata-rata nilai kelas, kita memerlukan dua variabel utama di dalam perulangan, yaitu Accumulator dan Counter. Apa peran dari Accumulator pada kasus ini?
- Menghitung sudah berapa banyak siswa yang nilainya dimasukkan
- Menyimpan nilai tertinggi di kelas tersebut
- Menyimpan jumlah total akumulasi dari seluruh nilai yang dimasukkan
- Mencetak output nilai ke layar printer
Jawaban: Menyimpan jumlah total akumulasi dari seluruh nilai yang dimasukkan
Penjelasan: Accumulator bertugas mengakumulasi (menjumlahkan) setiap data nilai (misal: Total = Total + Nilai). Sedangkan Counter bertugas menghitung banyaknya data yang diinput (Banyak = Banyak + 1). Rata-rata = Total / Banyak.
- [Pilihan Ganda] (HOTS)
Sebuah program pengulangan bersarang (Nested Loop) memiliki struktur sebagai berikut: Repeat 2 times { Repeat 3 times { Say ‘Halo’ } } Berapa total kata ‘Halo’ yang akan dicetak oleh program tersebut?
- 2 kali
- 3 kali
- 5 kali
- 6 kali
Jawaban: 6 kali
Penjelasan: Nested loop mengalikan jumlah iterasi. Loop luar (2) dikali loop dalam (3). 2 x 3 = 6 kali eksekusi perintah di dalam loop terdalam.
- [Pilihan Ganda] (HOTS)
Apa yang terjadi jika variabel inisialisasi awal diletakkan secara tidak sengaja di dalam blok ‘Repeat Until’ pada program penambahan skor game?
- Game akan berjalan lebih lancar karena memori dibersihkan terus
- Skor akan bertambah secara kuadratik dengan sangat cepat
- Skor tidak akan pernah bertambah dari angka inisialisasi awalnya setiap kali perulangan dijalankan
- Layar game akan berkedip tanpa alasan jelas
Jawaban: Skor tidak akan pernah bertambah dari angka inisialisasi awalnya setiap kali perulangan dijalankan
Penjelasan: Inisialisasi (misal Set Skor = 0) jika diletakkan di dalam loop akan dieksekusi terus setiap putaran. Akibatnya nilai yang baru saja ditambah di baris bawahnya, akan di-reset lagi menjadi 0 di putaran berikutnya.
- [Pilihan Ganda] (MOTS)
Variabel bertipe Boolean (Boolean variable) sangat efektif digunakan sebagai ‘Flag’ (Bendera penanda) dalam algoritma perulangan. Berapa jenis nilai yang bisa ditampung oleh variabel tipe Boolean?
- Angka dari 0 hingga 9
- Dua nilai saja, yaitu True (Benar) atau False (Salah)
- Kombinasi huruf abjad A sampai Z
- Nilai pecahan desimal
Jawaban: Dua nilai saja, yaitu True (Benar) atau False (Salah)
Penjelasan: Tipe data boolean adalah tipe data dasar yang merepresentasikan kebenaran logika, hanya bisa bernilai True (1) atau False (0).
- [Pilihan Ganda] (HOTS)
Studi Kasus Mesin ATM: ATM meminta PIN 6 digit. Jika salah, muncul peringatan dan diminta input lagi. Jika sudah 3 kali salah berturut-turut, kartu diblokir. Manakah kombinasi struktur kontrol (Control Structure) yang memodelkan kasus ini secara akurat?
- Percabangan If bertingkat 6 kali tanpa looping
- Looping tanpa henti (Forever) dengan kombinasi blok Wait
- Hanya menggunakan blok Ask and Wait tanpa If-Else
- Looping dengan batasan 3 iterasi, dan Percabangan If di dalamnya untuk memvalidasi benar atau salahnya PIN
Jawaban: Looping dengan batasan 3 iterasi, dan Percabangan If di dalamnya untuk memvalidasi benar atau salahnya PIN
Penjelasan: Masalah ini memerlukan perulangan (batas 3 kali) untuk meminta input. Di dalam perulangan tersebut wajib ada percabangan (If PIN benar -> masuk sistem, If salah -> hitung iterasi, jika iterasi 3 -> blokir).
- [Pilihan Ganda] (HOTS)
Diberikan sepotong kode prosedural: Set A = 10 Set B = 5 If A > B then Set A = A – B Else Set B = B – A Berapakah nilai A dan B setelah kode ini selesai dijalankan?
- A = 10, B = 5
- A = 5, B = 5
- A = 5, B = -5
- A = -5, B = 5
Jawaban: A = 5, B = 5
Penjelasan: A (10) > B (5) adalah True. Maka masuk ke blok If: A diubah menjadi A – B (10 – 5 = 5). Blok Else diabaikan. Hasil akhir: A = 5, B tidak berubah yaitu tetap 5.
- [Pilihan Ganda] (LOTS)
Dalam pemrograman prosedural, sekumpulan variabel, percabangan, dan perulangan yang digabungkan untuk menyelesaikan sebuah masalah yang spesifik secara sistematis langkah demi langkah disebut dengan?
- Flowchart
- Algoritma
- Debugging
- Kompilator (Compiler)
Jawaban: Algoritma
Penjelasan: Algoritma adalah urutan logis langkah-langkah komputasi yang disusun secara sistematis untuk memecahkan suatu masalah.
Semoga bermanfaat.(kangjo)
LINK DOWNLOAD:
- Soal_Informatika_Kelas 8 Bab 7 Algoritma Pemrograman, SILAHKAN KLIK DISINI!
