NEW
Font size
WorksheetsBerpikir komputasi dan pemograman
Total questions: 40
Worksheet time: 1hrs 20mins
Manakah pernyataan berikut yang benar tentang fungsi if–else dalam pemrograman?
If–else selalu diakhiri dengan return 0;.
If–else hanya bisa digunakan untuk tipe data int.
If–else digunakan untuk memilih tindakan berdasarkan kondisi logika.
If–else digunakan hanya untuk melakukan perulangan.
Output dari program di atas adalah …
A
B
C
Tidak ada Output
Dari kode berikut, bagian mana yang menunjukkan kondisi logika?
printf("Bukan sepuluh");
(x != 10)
if
{ ... }
Jika nilai variabel x adalah 12, maka output program berikut adalah …
Tidak ada output
10
Dalam rentang
Di luar rentang
Output program adalah …
A
B
C
D
Jika sebuah kondisi if bernilai salah dan tidak ada blok else, maka …
Program akan berhenti.
Akan muncul error.
Program akan tetap menjalankan blok if.
Program akan melewati blok if dan melanjutkan baris berikutnya.
Mengapa kurung kurawal {} penting digunakan dalam struktur if–else?
Agar program bisa dijalankan di IDE C.
Untuk menandai kondisi logika.
Agar if dan else bisa ditukar urutannya.
Untuk menandai awal dan akhir dari blok kode yang dieksekusi.
Manakah dari kode berikut yang benar untuk menentukan apakah seseorang sudah bisa membuat KTP?
Berikut ini kesalahan umum yang sering terjadi pada pemula ketika menggunakan if–else, kecuali …
Menggunakan tanda = untuk perbandingan.
Meletakkan else if sebelum if.
Tidak menutup blok dengan tanda }.
Menggunakan == untuk perbandingan.
Output program adalah …
Diskon 10%
Tidak menampilkan apapun
Tidak ada diskon
Error
Dalam algoritma rekursif, base case diperlukan agar …
Fungsi memanggil dirinya terus-menerus.
Program dapat melakukan iterasi tak terbatas.
Proses rekursi dapat berhenti dan mengembalikan nilai akhir.
Fungsi dapat memanggil fungsi lain.
Jika base case pada fungsi rekursif dihapus, maka yang paling mungkin terjadi adalah …
Program berhenti lebih cepat.
Nilai yang dikembalikan selalu nol.
Fungsi tidak pernah berhenti dan menyebabkan stack overflow.
Program tetap berjalan normal.
Output printf("%d", faktorial(3)); adalah …
3
5
6
9
Jika faktorial(4) dipanggil, urutan pemanggilan fungsi yang benar adalah …
4 → 3 → 2 → 1 → 0
0 → 1 → 2 → 3 → 4
4 → 3 → 2 → 1
4 → 2 → 0
Jika F(0)=0, F(1)=1, maka hasil F(6) adalah …
5
10
8
13
Dalam konteks algoritma greedy, istilah lokal optimal berarti …
Solusi di setiap langkah dipilih secara acak.
Solusi terbaik yang pasti optimal secara global.
Solusi yang diambil pada langkah saat itu tampak terbaik tanpa memikirkan akibat jangka panjang.
Solusi sementara sebelum perhitungan selesai.
Sifat utama algoritma Greedy yang membedakannya dengan Dynamic Programming adalah …
Greedy hanya fokus pada keputusan terbaik saat ini.
Greedy menyimpan semua hasil perhitungan sebelumnya.
Greedy menghitung ulang semua kemungkinan.
Greedy bersifat nondeterministik.
Jika pada algoritma Greedy sebuah keputusan telah diambil, maka …
Keputusan itu dapat diganti jika hasilnya salah.
Keputusan itu bersifat final dan tidak diubah lagi
Keputusan itu akan dibandingkan ulang di akhir program.
Keputusan akan disimpan di tabel sementara.
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 …
(4,6)
(2,5)
(1,3)
(5,7)
Dalam masalah Coin Change, jika tersedia koin {1, 5, 10, 25} dan nilai total 63, maka langkah pertama Greedy adalah …
Mengambil 10
Mengambil 5
Mengambil 25
Mengambil 1
Mengapa algoritma Greedy tidak selalu memberikan solusi terbaik untuk semua kasus?
Karena tidak mempertimbangkan efek global dari keputusan lokal.
Karena selalu menyimpan nilai sementara.
Karena terlalu lambat untuk data kecil.
Karena memerlukan terlalu banyak iterasi.
Pada Fractional Knapsack Problem, rasio yang digunakan untuk menentukan prioritas barang adalah …
Nilai ditambah berat.
Berat terhadap nilai.
Nilai dikalikan berat.
Nilai terhadap berat.
Mengapa algoritma rekursif cocok untuk masalah seperti Fibonacci dan Faktorial?
Karena keduanya tidak memiliki kondisi dasar.
Karena keduanya lebih cepat dari iterasi.
Karena keduanya dapat didefinisikan berdasarkan versi masalah yang lebih kecil dari dirinya sendiri.
Karena keduanya tidak membutuhkan return value.
Jika alas = 12 dan tinggi = 8, maka luas segitiga = …
24
48
36
96
Tujuan utama mempelajari program sederhana seperti Fibonacci adalah …
Menyalin kode dengan cepat
Agar hafal sintaks
Melatih berpikir algoritmik dan logika pemecahan masalah
Meningkatkan jumlah baris kode
Dalam algoritma Knapsack Greedy, barang dipilih berdasarkan …
Nilai tertinggi
Berat terendah
Rasio nilai berat terbesar
Urutan masuk
Dalam Fibonacci rekursif, fungsi memanggil …
f(n+1) dan f(n–1)
f(n–1) dan f(n–2)
f(n/2)
f(1) dan f(2)
Runut Balik cocok digunakan untuk …
Menentukan luas segitiga
Mengurutkan angka
Menyelesaikan teka-teki Sudoku
Menghitung faktorial
Kekurangan Greedy ialah …
Tidak efisien waktu
Boros memori
Tidak selalu menghasilkan solusi optimal global
Hanya cocok untuk data kecil
Contoh algoritma Divide and Conquer adalah …
Merge Sort
Bubble Sort
Linear Search
Insertion Sort
Ciri utama pemrograman dinamis adalah …
Menghapus hasil lama
Mengulang dari nol
Menyimpan hasil submasalah untuk digunakan kembali
Menghindari kondisi dasar
Upaya mengurangi langkah BeeBot agar lebih efisien merupakan contoh penerapan …
Simulasi digital
Analisis kompleksitas ruang
Optimisasi algoritma
Debugging
BeeBot gagal mencapai tujuan karena urutan perintah salah. Kesalahan ini menunjukkan pentingnya …
Urutan eksekusi instruksi
Jumlah langkah maksimal
Kecepatan pemrosesan
Tampilan hasil program
Urutan perintah yang benar agar BeeBot maju 3 langkah lalu berputar ke kanan adalah …
Right, Forward, Forward, Forward
Forward, Forward, Forward, Right
Forward, Right, Forward, Forward
Right, Forward, Right, Forward
Dalam pembelajaran menggunakan BeeBot, kemampuan utama yang dikembangkan adalah …
Menghafal pola gerak
Menyusun urutan langkah logis untuk mencapai tujuan
Menggerakkan robot secara acak
Menguji kecepatan perintah
Output dari program tersebut adalah …
3
5
2
4
Bagian while (nilai >= koin[i]) pada program Greedy berfungsi untuk …
Mengecek apakah masih ada koin yang tersedia.
Menghitung total uang.
Mengulangi pengambilan koin yang nilainya masih dapat digunakan.
Mengakhiri program ketika nilai habis.
Untuk membuat algoritma Greedy menghasilkan solusi optimal, maka urutan array koin[] harus …
Diurutkan dari besar ke kecil.
Diurutkan dari kecil ke besar.
Dicampur antara kecil dan besar.
Tidak perlu diurutkan.
Output jumlah koin yang digunakan adalah …
3
4
5
6
Apa yang akan terjadi jika array koin[] tidak diurutkan dari terbesar ke terkecil, misalnya {100, 1000, 500, 200}?
Algoritma tetap optimal.
Program tidak berjalan.
Algoritma menghasilkan jumlah koin lebih banyak.
Output sama saja.
