wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Berpikir komputasi dan pemograman

Total questions: 40

Worksheet time: 1hrs 20mins

Name
Class
Date
1.

Manakah pernyataan berikut yang benar tentang fungsi if–else dalam pemrograman?

a)

If–else selalu diakhiri dengan return 0;.

b)

If–else hanya bisa digunakan untuk tipe data int.

c)

If–else digunakan untuk memilih tindakan berdasarkan kondisi logika.

d)

If–else digunakan hanya untuk melakukan perulangan.

2.

Output dari program di atas adalah …

a)

A

b)

B

c)

C

d)

Tidak ada Output

3.

Dari kode berikut, bagian mana yang menunjukkan kondisi logika?

a)

printf("Bukan sepuluh");

b)

(x != 10)

c)

if

d)

{ ... }

4.

Jika nilai variabel x adalah 12, maka output program berikut adalah …

a)

Tidak ada output

b)

10

c)

Dalam rentang

d)

Di luar rentang

5.

Output program adalah …

a)

A

b)

B

c)

C

d)

D

6.

Jika sebuah kondisi if bernilai salah dan tidak ada blok else, maka …

a)

Program akan berhenti.

b)

Akan muncul error.

c)

Program akan tetap menjalankan blok if.

d)

Program akan melewati blok if dan melanjutkan baris berikutnya.

7.

Mengapa kurung kurawal {} penting digunakan dalam struktur if–else?

a)

Agar program bisa dijalankan di IDE C.

b)

Untuk menandai kondisi logika.

c)

Agar if dan else bisa ditukar urutannya.

d)

Untuk menandai awal dan akhir dari blok kode yang dieksekusi.

8.

Manakah dari kode berikut yang benar untuk menentukan apakah seseorang sudah bisa membuat KTP?

a)

b)

c)

d)

9.

Berikut ini kesalahan umum yang sering terjadi pada pemula ketika menggunakan if–else, kecuali …

a)

Menggunakan tanda = untuk perbandingan.

b)

Meletakkan else if sebelum if.

c)

Tidak menutup blok dengan tanda }.

d)

Menggunakan == untuk perbandingan.

10.

Output program adalah …

a)

Diskon 10%

b)

Tidak menampilkan apapun

c)

Tidak ada diskon

d)

Error

11.

Dalam algoritma rekursif, base case diperlukan agar …

a)

Fungsi memanggil dirinya terus-menerus.

b)

Program dapat melakukan iterasi tak terbatas.

c)

Proses rekursi dapat berhenti dan mengembalikan nilai akhir.

d)

Fungsi dapat memanggil fungsi lain.

12.

Jika base case pada fungsi rekursif dihapus, maka yang paling mungkin terjadi adalah …

a)

Program berhenti lebih cepat.

b)

Nilai yang dikembalikan selalu nol.

c)

Fungsi tidak pernah berhenti dan menyebabkan stack overflow.

d)

Program tetap berjalan normal.

13.

Output printf("%d", faktorial(3)); adalah …

a)

3

b)

5

c)

6

d)

9

14.

Jika faktorial(4) dipanggil, urutan pemanggilan fungsi yang benar adalah …

a)

4 → 3 → 2 → 1 → 0

b)

0 → 1 → 2 → 3 → 4

c)

4 → 3 → 2 → 1

d)

4 → 2 → 0

15.

Jika F(0)=0, F(1)=1, maka hasil F(6) adalah …

a)

5

b)

10

c)

8

d)

13

16.

Dalam konteks algoritma greedy, istilah lokal optimal berarti …

a)

Solusi di setiap langkah dipilih secara acak.

b)

Solusi terbaik yang pasti optimal secara global.

c)

Solusi yang diambil pada langkah saat itu tampak terbaik tanpa memikirkan akibat jangka panjang.

d)

Solusi sementara sebelum perhitungan selesai.

17.

Sifat utama algoritma Greedy yang membedakannya dengan Dynamic Programming adalah …

a)

Greedy hanya fokus pada keputusan terbaik saat ini.

b)

Greedy menyimpan semua hasil perhitungan sebelumnya.

c)

Greedy menghitung ulang semua kemungkinan.

d)

Greedy bersifat nondeterministik.

18.

Jika pada algoritma Greedy sebuah keputusan telah diambil, maka …

a)

Keputusan itu dapat diganti jika hasilnya salah.

b)

Keputusan itu bersifat final dan tidak diubah lagi

c)

Keputusan itu akan dibandingkan ulang di akhir program.

d)

Keputusan akan disimpan di tabel sementara.

19.

Jika terdapat kegiatan:
(1,3), (2,5), (4,6), (6,8), (5,7)
dan diurutkan berdasarkan waktu selesai, kegiatan pertama yang dipilih oleh algoritma Greedy adalah …

a)

(4,6)

b)

(2,5)

c)

(1,3)

d)

(5,7)

20.

Dalam masalah Coin Change, jika tersedia koin {1, 5, 10, 25} dan nilai total 63, maka langkah pertama Greedy adalah …

a)

Mengambil 10

b)

Mengambil 5

c)

Mengambil 25

d)

Mengambil 1

21.

Mengapa algoritma Greedy tidak selalu memberikan solusi terbaik untuk semua kasus?

a)

Karena tidak mempertimbangkan efek global dari keputusan lokal.

b)

Karena selalu menyimpan nilai sementara.

c)

Karena terlalu lambat untuk data kecil.

d)

Karena memerlukan terlalu banyak iterasi.

22.

Pada Fractional Knapsack Problem, rasio yang digunakan untuk menentukan prioritas barang adalah …

a)

Nilai ditambah berat.

b)

Berat terhadap nilai.

c)

Nilai dikalikan berat.

d)

Nilai terhadap berat.

23.

Mengapa algoritma rekursif cocok untuk masalah seperti Fibonacci dan Faktorial?

a)

Karena keduanya tidak memiliki kondisi dasar.

b)

Karena keduanya lebih cepat dari iterasi.

c)

Karena keduanya dapat didefinisikan berdasarkan versi masalah yang lebih kecil dari dirinya sendiri.

d)

Karena keduanya tidak membutuhkan return value.

24.

Jika alas = 12 dan tinggi = 8, maka luas segitiga = …

a)

24

b)

48

c)

36

d)

96

25.

Tujuan utama mempelajari program sederhana seperti Fibonacci adalah …

a)

Menyalin kode dengan cepat

b)

Agar hafal sintaks

c)

Melatih berpikir algoritmik dan logika pemecahan masalah

d)

Meningkatkan jumlah baris kode

26.

Dalam algoritma Knapsack Greedy, barang dipilih berdasarkan …

a)

Nilai tertinggi

b)

Berat terendah

c)

Rasio nilai berat terbesar

d)

Urutan masuk

27.

Dalam Fibonacci rekursif, fungsi memanggil …

a)

f(n+1) dan f(n–1)

b)

f(n–1) dan f(n–2)

c)

f(n/2)

d)

f(1) dan f(2)

28.

Runut Balik cocok digunakan untuk …

a)

Menentukan luas segitiga

b)

Mengurutkan angka

c)

Menyelesaikan teka-teki Sudoku

d)
  1. Menghitung faktorial

29.

Kekurangan Greedy ialah …

a)

Tidak efisien waktu

b)

Boros memori

c)

Tidak selalu menghasilkan solusi optimal global

d)

Hanya cocok untuk data kecil

30.

Contoh algoritma Divide and Conquer adalah …

a)

Merge Sort

b)

Bubble Sort

c)

Linear Search

d)

Insertion Sort

31.

Ciri utama pemrograman dinamis adalah …

a)

Menghapus hasil lama

b)

Mengulang dari nol

c)

Menyimpan hasil submasalah untuk digunakan kembali

d)

Menghindari kondisi dasar

32.

Upaya mengurangi langkah BeeBot agar lebih efisien merupakan contoh penerapan …

a)

Simulasi digital

b)

Analisis kompleksitas ruang

c)

Optimisasi algoritma

d)

Debugging

33.

BeeBot gagal mencapai tujuan karena urutan perintah salah. Kesalahan ini menunjukkan pentingnya …

a)

Urutan eksekusi instruksi

b)

Jumlah langkah maksimal

c)

Kecepatan pemrosesan

d)

Tampilan hasil program

34.

Urutan perintah yang benar agar BeeBot maju 3 langkah lalu berputar ke kanan adalah …

a)

Right, Forward, Forward, Forward

b)

Forward, Forward, Forward, Right

c)

Forward, Right, Forward, Forward

d)

Right, Forward, Right, Forward

35.

Dalam pembelajaran menggunakan BeeBot, kemampuan utama yang dikembangkan adalah …

a)

Menghafal pola gerak

b)

Menyusun urutan langkah logis untuk mencapai tujuan

c)

Menggerakkan robot secara acak

d)

Menguji kecepatan perintah

36.

Output dari program tersebut adalah …

a)

3

b)

5

c)

2

d)

4

37.

Bagian while (nilai >= koin[i]) pada program Greedy berfungsi untuk …

a)

Mengecek apakah masih ada koin yang tersedia.

b)

Menghitung total uang.

c)

Mengulangi pengambilan koin yang nilainya masih dapat digunakan.

d)

Mengakhiri program ketika nilai habis.

38.

Untuk membuat algoritma Greedy menghasilkan solusi optimal, maka urutan array koin[] harus …

a)

Diurutkan dari besar ke kecil.

b)

Diurutkan dari kecil ke besar.

c)

Dicampur antara kecil dan besar.

d)

Tidak perlu diurutkan.

39.

Output jumlah koin yang digunakan adalah …

a)

3

b)

4

c)

5

d)

6

40.

Apa yang akan terjadi jika array koin[] tidak diurutkan dari terbesar ke terkecil, misalnya {100, 1000, 500, 200}?

a)

Algoritma tetap optimal.

b)

Program tidak berjalan.

c)

Algoritma menghasilkan jumlah koin lebih banyak.

d)

Output sama saja.