wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Dasar-Dasar PPLG - Percabangan

Total questions: 60

Worksheet time: 30mins

Name
Class
Date
1.
Seseorang pergi berbelanja dan ingin mengelompokkan barang yang dibeli berdasarkan jenisnya untuk mempermudah penyimpanan. · Barang makanan: Simpan di Kulkas · Barang non-makanan: Simpan di Lemari · Barang mudah pecah: Hati-hati saat menyimpan Setelah berbelanja, dia membeli barang-barang berikut: Sayur, Makanan Kaleng, Piring, dan Gelas. Bagaimana cara mengelompokkan dan menyimpan barang-barang tersebut?
a)
Semua di Lemari
b)
Sayur dan Makanan Kaleng di Kulkas, Piring dan Gelas di Lemari
c)
Semua di Kulkas
d)
Sayur di Kulkas, Makanan Kaleng di Lemari, Piring dan Gelas di Kulkas
e)
Sayur di Lemari, Makanan Kaleng di Kulkas
2.

Sebuah program menerima nilai untuk menentukan kelulusan. Perhatikan kode berikut :

float uts = 75, uas = 85; float nilai_akhir = (uts + uas) / 2;


if (nilai_akhir > 80) { printf("Lulus dengan Baik"); } else if (nilai_akhir >= 60) { printf("Lulus"); } else { printf("Tidak Lulus"); }

Apa yang terjadi pada siswa jika nilai adalah 65?

a)
Lulus dengan Baik
b)
Lulus
c)
Tidak Lulus
d)
Error
e)
Tidak ada output
3.

Seorang penyelenggara mengadakan acara esok hari dan ingin menentukan kategori usia peserta berdasarkan umur yang diberikan. Peraturannya harus diatas 17. Perhatikan kode berikut :

int main() {

int umur;

printf("Masukkan umur

peserta: ");

scanf("%d", &umur);

if (umur < 13) {

printf("Anakanak\n");

} else if (umur <= 17) {

printf("Remaja\n");

} else {

printf("Dewasa\n");

}

return 0;

}

Terdapat salah satu peserta yang baru saja merayakan ulang tahunnya yang ke-18 akan mengikuti acara. Kategori usia apa yang akan diberikan kepada peserta tersebut?

a)
Anak-anak
b)
Remaja
c)
Dewasa
d)
Error
e)
Tidak ada output
4.

Seorang penyelenggara mengadakan acara esok hari dan ingin menentukan kategori usia peserta berdasarkan umur yang diberikan. Peraturannya harus diatas 17. Perhatikan kode berikut :
int main() {
int umur;
printf("Masukkan umur peserta: "); scanf("%d", &umur);
if (umur < 13) {
printf("Anak-anak\n"); }
else if (umur <= 17) { printf("Remaja\n");
}
else { printf("Dewasa\n"); } return 0; } Terdapat salah satu peserta yang baru saja merayakan ulang tahunnya yang ke-18 akan mengikuti acara. Kategori usia apa yang akan diberikan kepada peserta tersebut?

a)
Anak-anak
b)
Remaja
c)
Dewasa
d)
Error
e)
Tidak ada output
5.

Syarat untuk bisa dapat naik jabatan harus memiliki persyaratan tidak pernah telat dalam 3 bulan berturut dan masa kerja. Pilihlah keterangan yang benar :
1) Masa Kerja
2) Tidak pernah telat 3 bulan berturut
3) Usia
4) Pintar komunikasi Mana pilihan yang tepat?

a)
1, 4
b)
3, 1
c)
2, 1
d)
4, 2
e)
3, 4
6.

Sebuah layanan parkir ingin mengelompokkan kendaraan berdasarkan jenisnya untuk mempermudah pengelolaan.
• Kendaraan Pribadi: Mobil Sedan, Mobil SUV

• Kendaraan Umum: Bus, Angkot

• Kendaraan Berat: Truk, Kontainer
Terdapat salah satu pemilik mobil memiliki mobil angkot pribadi dan dia juga datang dengan temannya menggunakan mobil sedan, kategori apa yang akan diberikan?

a)
Kendaraan Umum
b)
Kendaraan Berat
c)
Kendaraan Pribadi
d)
Tidak Ada Kategori
e)
Kategori Khusus
7.
Jika hujan mayoritas orang membawa payung. andi lebih mempersiapkan membawa jas hujan plastik agar lebih praktis dan efektif. Andi kedapatan hujan dan sangat jauh apabila jalan untuk kerja kelompok di rumah agus dan ada temannya mengajak boncengan, mana yang akan lebih efektif?
a)
Jas hujan plastik tidak terlindungi dari hujan
b)
Jas hujan plastik lebih praktis dan efektif saat berkendara maupun berjalan
c)
Payung lebih mudah dibawa dan digunakan di motor daripada jas hujan plastik
d)
Jas hujan plastik tidak dapat digunakan saat berjalan maupun bermotor
e)
Jas hujan plastik lebih mahal daripada payung.
8.
Rian kelaparan setelah pulang bermain futsal bersama temannya, karena sejalannya pulang temannya selalu membahas pasta rian pun tergiur dan ingin segera makan di rumah. Apa yang akan rian lakukan saat pulang ke rumah ?
a)
Memeriksa apakah dia memiliki bahanbahan yang dibutuhkan untuk memasak pasta. 2. Menonton TV sambil menunggu pasta matang.
b)
Memasak pasta langsung tanpa memeriksa bahan. 2. Mengabaikan alat masak yang diperlukan.
c)
Mengundang teman untuk memasak bersama. 2. Menyiapkan alat dan bahan sebelum mulai memasak.
d)
Menghitung berapa lama waktu yang diperlukan untuk memasak. 2. Makan di restoran terdekat.
e)
Menyiapkan minuman untuk menemani makan. 2. Memasak makanan lain selain pasta.
9.
Sarah memutuskan untuk menggunakan transportasi umum. Dia tidak perlu memikirkan detail tentang setiap jenis transportasi (seperti biaya bahan bakar untuk mobil atau rute sepeda), tetapi dia fokus pada tujuan yang ingin dicapai, yaitu sampai di tempat kerja tepat waktu dan dengan biaya yang efisien. Apa yang dilakukan Sarah dalam proses pengambilan keputusan ini?
a)
Memperhitungkan semua biaya dan waktu untuk setiap opsi transportasi.
b)
Mengabaikan semua opsi dan tidak pergi bekerja.
c)
Menyederhanakan pilihan dengan fokus pada tujuan, yaitu menggunakan transportasi umum
d)
Menghitung jarak ke tempat kerja tanpa mempertimbangkan waktu.
e)
Memilih transportasi berdasarkan pendapat teman.
10.

Seorang operator bioskop membuat program untuk menentukan harga tiket berdasarkan kategori umur penonton.
Perhatikan kode berikut:
int kategori = 2;
switch(kategori) {
case 1:
printf("Tiket Anak-anak Rp
30000");
case 2:
printf("Tiket Dewasa Rp 50000");
break;
case 3:
printf("Tiket Lansia Rp 40000");
break;
default:
printf("Kategori tidak valid");
break;
}
Apa yang salah pada program diatas?

a)
Default seharusnya setelah break kedua
b)
Tiket Anak-anak Rp 3000 tidak menggunakan break
c)
Tiket Lansia Rp 40000 akan terinisiasi pertama
d)
Kategori tidak valid
e)
Switch seharusnya menggantikan case
11.

Perhatikan kode berikut :
int stok = 30;
if (stok < 10) {
printf("restock barang");
} else if (stok > 50) {
printf("stok aman");
} else {
printf("stok cukup");
}

Jika manajer ingin menambahkan kondisi untuk memeriksa apakah stok terlalu rendah (misalnya, di bawah 5), langkah apa yang perlu ditambahkan ke dalam kode?

a)
Menambahkan kondisi untuk stok < 5
b)
Mengubah nilai stok menjadi string
c)
Menggunakan loop untuk mengecek stok setiap hari.
d)
Menghapus semua kondisi yang ada.
e)
Menambahkan perintah untuk menghentikan program.
12.

Ayah fandi ingin pergi berlibur berenang dengan keluarga sebanyak 4 orang termasuk ayah fandi..

Perhatikan kode berikut:

int main() {
int kategori;
printf("Masukkan kategori umur
(1 untuk Anak-anak, 2 untuk Dewasa, 3 untuk Lansia): ");
scanf("%d", &kategori); switch (kategori) {
case 1: printf("Biaya pendaftaran: Rp 30000\n"); break;
case 2: printf("Biaya pendaftaran: Rp 50000\n"); break;
case 3: printf("Biaya pendaftaran: Rp 40000\n"); break;
default:
printf("Kategori tidak valid\n");
break; }
return 0; }

Jika ayah Fandi memilih kategori Dewasa untuk pendaftaran, berapa total biaya pendaftaran yang harus dikeluarkan oleh satu keluarga??

a)
Rp 120000 (Anak-anak)
b)
Rp 200000 (Dewasa)
c)
Rp 160000 (Lansia)
d)
Kategori tidak valid
e)
Error
13.

int main() {
int apel, jeruk, pisang, total_buah;
printf("Masukkan jumlah apel: ");

scanf("%d", &apel);
printf("Masukkan jumlah jeruk: ");
scanf("%d", &jeruk);
printf("Masukkan jumlah pisang: ");
scanf("%d", &pisang);
// Menghitung total jumlah buah total_buah = apel + jeruk + pisang;
printf("Total buah: %d\n", total_buah); return 0; }

Jika siswa memasukkan jumlah apel sebagai 3, jeruk 4, dan pisang 2, bagaimana cara program menghitung total jumlah buah?

a)
Program menjumlahkan jumlah apel, jeruk, dan pisang secara langsung.
b)
Program hanya menghitung jumlah apel.
c)
Program tidak menghitung jumlah dengan benar
d)
Program menghitung jumlah buah berdasarkan tipe.
e)
Program tidak memiliki pola yang jelas.
14.

Seorang insinyur sedang membuat program untuk mengukur kualitas udara untuk menghimbau selalu menggunakan masker.

Perhatikan kode berikut : int polusi = 75;
if (polusi > 100) {
printf("kualitas udara buruk wajib
menggunakan masker");
} else if (polusi >= 50) {
printf("kualitas udara sedang
sebaiknya menggunakan masker");
} else {
printf("kualitas udara baik tidak papa melepas masker");
}

Apakah jika kualitas udara adalah diatas 100 maka kita harus terus menggunakan masker?

a)
Gunakan masker saat kualitas udara buruk
b)
kualitas udara sedang tidak perlu pakai masker
c)
kualitas udara baik tetap pakai masker
d)
Tidak ada output
e)
Error
15.

Seorang mahasiswa ingin menghitung ratarata nilai UTS dan UAS. Program ini harus menerima nilai UTS dan UAS sebagai input, kemudian menghitung dan mencetak rata-rata.

Perhatikan kode berikut :
float uts, uas, rata_rata;
printf("Masukkan nilai UTS: ");
scanf("%f", &uts);
printf("Masukkan nilai UAS: ");
scanf("%f", &uas);
rata_rata = (uts + uas) / 2;
printf("Rata-rata: %.2f", rata_rata);



Apa output dari kode jika UTS adalah 80 dan UAS adalah 90?

a)
Rata-rata: 85.00
b)
Rata-rata: 80.00
c)
Rata-rata: 90.00
d)
Error
e)
Tidak ada output
16.

Pada hari raya kemerdekaan, semua warga berkumpul untuk merayakan dengan lomba panjat pinang dan hadiahnya berupa barang lumayan berat seperti panci, ember besar, jemuran baju, mainan mobil anak, dan buah buahan Syarat untuk mengikuti lomba adalah:

• Peserta memanjat harus laki-laki
• Peserta harus berusia 18 tahun ke atas.
• Wanita yang menangkap hadiah dari bawah berusia 20 tahun

Setelah pengumuman tersebut ramai warga datang dan banyak yang mendaftar baik laki-laki maupun wanita dan ingin bermacam-macam keinginnannya. Bagaimana kualifikasi yang tepat untuk memenuhi persyaratan?

a)
Laki-Laki yang memanjat berumur 17 tahun dan wanita yang menangkap hadiah
b)
Laki-laki yang memanjat berumur 28 tahun dan wanita juga memanjat hadiah
c)
Wanita yang memanjat 18 tahun laki laki dan wanita memanjat hadiah
d)
Pria yang memanjat berumur 30 tahun dan wanita yang menangkap berumur 12
e)
Pria yang memanjat berumur 19 dan wanita yang menangkap 20 tahun
17.

Seorang pelajar ingin menghitung luas lingkaran untuk tugas matematika.
Perhatikan kode berikut :
float jari_jari, luas;
printf("Masukkan jari-jari: ");
scanf("%f", &jari_jari);
luas = 3.14 * jari_jari * jari_jari;
printf("Luas Lingkaran: %.2f", luas);

Jika harga atau jumlah diinput sebagai karakter, apa yang akan terjadi?

a)
Kode akan gagal
b)
Kode akan menghasilkan output yang salah
c)
Kode akan mengabaikan input
d)
Kode akan tetap berjalan
e)
Semua benar
18.

Sebuah perusahaan sedang mengevaluasi proyek berdasarkan hasil akhir dan kepuasan klien.
• Sukses: Proyek selesai tepat waktu dan klien puas

• Cukup: Proyek selesai tetapi ada beberapa masalah yang perlu diperbaiki

• Gagal: Proyek tidak selesai sesuai waktu dan klien tidak puas Kasus Proyek Pak Burhan:

1. Proyek A:
Proyek pengembangan aplikasi mobile yang selesai dalam waktu yang ditentukan, dan klien memberikan umpan balik positif mengenai antarmuka pengguna.

2. Proyek B:
Proyek pengembangan website yang selesai terlambat selama 2 minggu, dan klien mengeluhkan beberapa bug yang perlu diperbaiki.

3. Proyek C:
Proyek pengembangan sistem manajemen yang tidak selesai sesuai jadwal dan klien merasa tidak puas dengan hasilnya.


Apa kategori yang tepat untuk Proyek A, Proyek B, dan Proyek C berdasarkan kriteria yang ditetapkan?

a)
Proyek A: Sukses 2. Proyek B: Cukup 3. Proyek C: Gagal
b)
Proyek A: Cukup 2. Proyek B: Sukses 3. Proyek C: Cukup
c)
Proyek A: Gagal 2. Proyek B: Sukses 3. Proyek C: Gagal
d)
Proyek A: Sukses 2. Proyek B: Gagal 3. Proyek C : Cukup
e)
Proyek A: Cukup 2. Proyek B: Gagal 3. Proyek C: Sukses
19.

Seorang kasir supermarket menggunakan program untuk menampilkan diskon berdasarkan kodeHari. Aturan diskon tersebut berlaku 24 jam.
Perhatikan kode berikut :

int kodeHari = 2;

switch(kodeHari) {

case 1:

printf("Diskon 10%");

break;

case 2:

printf("Diskon 15%");

break;

case 3:

printf("Diskon 20%");

break;

default:

printf("Tidak ada diskon");

break; }
Jika salah satu pelanggan belanja hingga Rp. 100.000 pada hari kedua lalu mendapatkan diskon 15%. Apakah akan mendapatkan bonus dua kali lipat jika pelanggan belanja pada hari ke 2 dan ke 3 berturut-turut?

a)
Diskon 10%
b)
Diskon 15%
c)
Diskon 20%
d)
Tidak ada diskon
e)
Error
20.

Seorang pengguna ingin mengetahui status kesehatan berdasarkan tekanan darah.

Jika,tekanan darah di atas 140/90 cetak 'Hipertensi'
Jika antara 90/60 dan 140/90 cetak 'Normal', dan
jika di bawah 90/60 cetak 'Hipotensi'.

Perhatikan kode berikut :

int tekananDarah = 135; if (tekananDarah > 140)
{ printf("Hipertensi"); }
else if (tekananDarah >= 90)
{ printf("Normal"); }
else { printf("Hipotensi"); }

Apa langkah-langkah yang harus dilakukan untuk menentukan status kesehatan berdasarkan tekanan darah? Sebutkan langkah-langkahnya.

a)
Menyusun input dan mengelompokkan kategori
b)
Memeriksa input tekanan darah sebelum penghitungan
c)
Menggunakan logika pengkategorian.
d)
Semua langkah di atas
e)
Tidak perlu langkah tambahan
21.

Seorang mahasiswa ingin menghitung kontribusi nilai tugas terhadap nilai akhir berdasarkan bobot.


Program ini menghitung kontribusi nilai tugas dalam tiga tahap:
1. Program menerima input nilai tugas mahasiswa.

2. Program menerima input bobot nilai tugas dari dosen.

3. Program menghitung nilai akhir tugas dengan mengalikan nilai tugas dan bobot.


Perhatikan kode berikut : int main() {

float nilai_tugas, bobot,
nilai_akhir;
// Menerima input nilai
tugas
printf("Masukkan nilai
tugas: ");
scanf("%f",
&nilai_tugas);
// Menerima input bobot
tugas
printf("Masukkan bobot
tugas: ");
scanf("%f", &bobot);
// Menghitung nilai akhir
tugas
nilai_akhir = nilai_tugas
* bobot;
// Menampilkan hasil
printf("Nilai akhir
tugas: %.1f\n", nilai_akhir);
return 0;

}

Jika nilai tugas mahasiswa adalah 80 dan bobot tugas 0.2, berapa nilai akhir tugas yang akan ditampilkan oleh program ini?"

a)
TRUE
b)
FALSE
c)
Nilainya 0
d)
Error
e)
Tidak ada output
22.

Seorang dokter kedatangan pasien yang mengeluh sakit dingin dan panas tak teratur. Dokter ingin menentukan status kesehatan pasien berdasarkan suhu tubuh yang diukur.
Perhatikan kode berikut :
float suhu;
printf("Masukkan suhu tubuh: ");

scanf("%f", &suhu);

if (suhu > 37.5) {

printf("Demam");

} else if (suhu >= 36.5 && suhu <= 37.5) {

printf("Normal");

} else {

printf("Hipotermia"); }

Apa output dari kode jika suhu tubuh adalah 38.0 derajat?

a)
Demam
b)
Normal
c)
Hipotermia
d)
Kode Error
e)
Tidak ada output
23.

Seorang teknisi AC ingin membuat program untuk memantau suhu ruangan.
Jika suhu lebih dari 30 derajatcetak "suhu terlalu panas",
jika antara 20 hingga 30 derajat, cetak "suhu normal",
dan
jika kurang dari 20 derajat, cetak "suhu terlalu dingin."

Perhatikan kode berikut :

int suhu = 25; if (suhu > 30)

{ printf("suhu terlalu panas"); }

else if (suhu >= 20) { printf("suhu normal"); }

else { printf("suhu terlalu dingin"); }



Jika suhu ruangan tersebut 25 derajat apa output yang akan terjadi?

a)
Suhu terlalu panas
b)
Suhu normal
c)
Suhu terlalu dingin
d)
Tidak ada output
e)
Error
24.

Seorang apoteker membuat program untuk mengecek stok obat di apotek.

jika stok obat lebih dari 500 butir, cetak "stok aman",
jika antara 200 hingga 500 butir, cetak "stok cukup",
dan jika kurang dari 200 butir, cetak "stok hampir habis."

Perhatikan kode berikut:
int stokObat = 150;

if (stokObat > 500)

{ printf("stok aman"); }

else if (stokObat >= 200)

{ printf("stok cukup"); }

else { printf("stok hampir habis"); }


Jika stokObat 150 apa output yang akan terjadi?

a)
Stok aman
b)
Stok cukup
c)
Stok hampir habis
d)
Tidak ada output
e)
Error
25.

Sebuah toko ingin menghitung pembelian seorang customer yang membawa uang Rp. Rp250.000. Karena kekurangan uang ternyata sedang ada promo dan pembeli ingin menghitung total biaya setelah mendapatkan diskon.
Perhatikan kode berikut :

float harga, diskon, total_biaya;

printf("Masukkan harga barang: ");

scanf("%f", &harga);

printf("Masukkan diskon (dalam persen): ");

scanf("%f", &diskon); total_biaya = harga - (harga * (diskon / 100));

printf("Total Biaya Setelah Diskon: %.2f", total_biaya);

Apa output dari kode jika harga adalah 200.000 dan diskon adalah 10%?

a)
Total Biaya Setelah Diskon: 180.000
b)
Total Biaya Setelah Diskon: 200.000
c)
Total Biaya Setelah Diskon: 190.000
d)
Tidak ada output
e)
Error
26.

Andi sedang kebingunan memilih eskul karena sangat banyak sekali eskul yang diperkenalkan saat masuk sekolah, saat andi menentukan eskul futsal andi langsung ditunjuk sebagai ketua eskul futsal. Dan sekarang Andi ingin menentukan status keanggotaan seseorang berdasarkan umur mereka, karena terdapat alumni yang masih aktif mengikuti eskul futsal dengan adik tingkatnya.
Perhatikan kode berikut :

int umur;

printf("Masukkan umur: ");

scanf("%d", &umur);

if (umur >= 18) {

printf("Dewasa");

} else {

printf("Anak-anak");

}


Jika umur diinput sebagai nilai negatif, apa yang akan terjadi?

a)
Kode akan gagal
b)
Kode akan tetap berjalan dan mencetak "Dewasa"
c)
Kode akan menghasilkan output yang tidak valid
d)
Kode akan mengabaikan input
e)
Semua benar
27.

Seorang kasir ingin menghitung total harga barang setelah ditambahkan pajak.

Perhatikan kode berikut :
float harga, pajak, total_harga;

printf("Masukkan harga barang: ");

scanf("%f", &harga);

printf("Masukkan pajak (dalam persen):

");

scanf("%f", &pajak);

total_harga = harga + (harga * (pajak / 100));

printf("Total Harga Setelah Pajak:

%.2f", total_harga);

Apa yang akan terjadi jika pajak diinput sebagai string?

a)
Kode akan gagal
b)
Kode akan menghasilkan 0
c)
Kode akan menghasilkan output yang tidak sesuai
d)
Kode akan mengabaikan input
e)
Semua benar
28.

Seorang siswa mencatat waktu belajar mereka dalam minggu lalu dan ingin menghitung total jam belajar.

Perhatikan kode berikut :

int hari1, hari2, hari3, total;

printf("Masukkan jam belajar hari pertama: ");

scanf("%d", &hari1);

printf("Masukkan jam belajar hari kedua: ");

scanf("%d", &hari2);

printf("Masukkan jam belajar hari

ketiga: ");

scanf("%d", &hari3);

total = hari1 + hari2 + hari3;

printf("Total jam belajar: %d", total);

Apa tipe data dari variabel total?

a)
Float
b)
Int
c)
Char
d)
Double
e)
String
29.

Budi ingin mengetahui nilai huruf mereka berdasarkan nilai angka yang diperoleh namuin terdapat keliruan dimana nilai budi itu 79.
Perhatikan kode berikut :

int nilai;
printf("Masukkan nilai: ");

scanf("%d", &nilai);

if (nilai >= 85) {

printf("A");

} else if (nilai >= 70) {

printf("B");

} else if (nilai >= 60) {

printf("C");

} else {

printf("D");

}

Modifikasi kode di atas agar mencetak "Tidak Valid" jika nilai kurang dari 0.

a)
Menambahkan kondisi if di atas
b)
Menambahkan printf untuk output
c)
Menghapus kondisi if
d)
Menambahkan variabel baru
e)
Menggunakan switch-case
30.
Seorang siswa ingin mengetahui pola kelipatan 3 dari angka 1 hingga 5. Program akan mencetak semua kelipatan 3 hingga angka tersebut. Jika 5 adalah 15, tuliskan pola angka yang dicetak oleh program ketika mencetak kelipatan 3 dari 1 hingga N.
a)
3, 6, 9, 12, 15
b)
1, 2, 3, 4, 5
c)
3, 6, 9, 12
d)
3, 6, 9, 12, 15, 18
e)
1, 3, 5, 7, 9, 11, 13, 15
31.

Seorang pelajar ingin mengetahui pola antara angka genap dan ganjil, serta bagaimana mereka membentuk urutan dalam satu rentang angka.

Program di bawah ini digunakan untuk mengidentifikasi dan mengelompokkan angka-angka tersebut.
int main() {
int angka, i;
printf("Masukkan angka batas: ");
scanf("%d", &angka);
printf("Angka genap dari 1 hingga
%d:\n", angka);
for (i = 1; i <= angka; i++) {
if (i % 2 == 0) {
printf("%d ", i);
}


printf("\nAngka ganjil dari 1 hingga
%d:\n", angka);
for (i = 1; i <= angka; i++) {
if (i % 2 != 0) {
printf("%d ", i);
}
}
return 0;
}

Jika pelajar memasukkan angka batas 10, tuliskan pola angka yang dicetak untuk angka genap dan ganjil dari 1 hingga 10?

a)
Genap: 2, 4, 6, 8, 10; Ganjil: 1, 3, 5, 7, 9
b)
Genap: 2, 4, 6, 8; Ganjil: 1, 3, 5, 7, 9, 11
c)
Genap: 2, 4, 6, 8; Ganjil: 1, 3, 5
d)
Genap: 2, 4, 6, 8, 10; Ganjil: 1, 3, 5, 7, 9, 11
32.

Seorang programmer ingin mencetak deret Fibonacci hingga n angkA.

Perhatikan kode berikut :
int n, i;
int fib1 = 0, fib2 = 1, next;
printf("Masukkan jumlah angka
Fibonacci: ");
scanf("%d", &n);

printf("Deret Fibonacci: ");
for (i = 0; i < n; i++) {
if (i <= 1) {
next = i; // 0 dan 1 adalah angka
Fibonacci pertama
} else {
next = fib1 + fib2;
fib1 = fib2;

fib2 = next;
}
printf("%d ", next);
}

Jika programmer ingin mencetak deret Fibonacci hingga nilai yang lebih kecil dari 100, modifikasi apa yang perlu dilakukan pada kode di atas?

a)
Mengubah batasan loop untuk menghentikan hingga mencapai 100.
b)
Menambahkan kondisi dalam loop untuk memeriksa apakah angka Fibonacci berikutnya lebih besar dari 100.
c)
Menghapus printf agar tidak menampilkan hasil.
d)
Mengubah variabel yang digunakan untuk menyimpan angka Fibonacci.
e)
Tidak perlu modifikasi, karena program sudah benar.
33.

Seorang siswa ingin mengetahui apakah sebuah huruf yang diinput adalah vokal atau konsonan.

Perhatikan kode berikut :
char huruf;
printf("Masukkan huruf: ");
scanf(" %c", &huruf);
if (huruf == 'a' || huruf == 'e' || huruf == 'i'
|| huruf == 'o' || huruf == 'u' ||
huruf == 'A' || huruf == 'E' || huruf == 'I' ||
huruf == 'O' || huruf == 'U') {
printf("Vokal");
} else {
printf("Konsonan");
}

Analisis bagaimana kode ini dapat diubah untuk menjadi berulang?

a)
Menambahkan loop
b)
Mengganti tipe data
c)
Menghapus syarat kondisi
d)
Mengubah output
e)
Semua benarnerima input lebih dari satu huruf
34.

Seorang siswa ingin menghitung rata-rata nilai dari lima angka yang dimasukkan. Program ini mencetak deret bilangan ganjil dari 1 hingga N. Jika N adalah 15, tuliskan deret bilangan ganjil yang dihasilkan oleh program
Perhatikan kode berikut :
int nilai[5], i;
float total = 0, rata;
printf("Masukkan 5 nilai: ");
for (i = 0; i < 5; i++) {
scanf("%d", &nilai[i]);
total += nilai[i];
}
rata = total / 5;
printf("Rata-rata: %.2f", rata);

Apa rata-rata nilai yang akan dihitung oleh program jika siswa memasukkan angka 10, 20, 30, 40, 50?

a)
20,00
b)
30,00
c)
40,00
d)
50,00
e)
25,00
35.

Seorang siswa ingin mencari nilai terkecil dari sekumpulan nilai yang dimasukkan.
Perhatikan kode berikut :
int nilai[5], i, min;
printf("Masukkan 5 nilai: ");
for (i = 0; i < 5; i++) {
scanf("%d", &nilai[i]);
}
min = nilai[0];
for (i = 1; i < 5; i++) {
if (nilai[i] < min) {
min = nilai[i];
}
} printf("Nilai terkecil: %d", min);

Jika Anda mengubah nilai yang dimasukkan menjadi 7, 3, 12, 9, 4, nilai terkecil berapa yang akan dicetak oleh program?

a)
7
b)
3
c)
12
d)
9
e)
4
36.

Seorang siswa bernama Alex sedang mempersiapkan ujian akhir. Dia memiliki beberapa mata pelajaran yang perlu dipelajari dan ingin mengatur waktu belajar dengan baik.
Alex mencatat waktu yang dia habiskan untuk belajar setiap mata pelajaran selama satu minggu.
Data Waktu Belajar Mingguan:
• Mata Pelajaran:
o Matematika: 10 jam
o Bahasa Inggris: 8 jam
o Kimia: 6 jam
o Fisika: 7 jam
o Biologi: 5 jam
Dari mata pelajaran yang paling banyak
dipelajari, berapa rata-rata waktu belajar
Alex per hari untuk mata pelajaran tersebut?

a)
1 jam per hari
b)
1,5 jam per hari
c)
2 jam per hari
d)
2,5 jam per hari
e)
3 jam per hari
37.

Seorang siswa ingin menghitung rata-rata nilai dari lima angka yang dimasukkan.

Perhatikan kode berikut :

int nilai[5], i; float total = 0, rata;

printf("Masukkan 5 nilai: ");

for (i = 0; i < 5; i++)

{ scanf("%d", &nilai[i]); total += nilai[i]; }

rata = total / 5; printf("Rata-rata: %.2f", rata);

Jika siswa memutuskan untuk menambahkan fitur yang memungkinkan pengguna untuk menghentikan input kapan saja, langkah mana yang perlu ditambahkan ke dalam program?

a)
Menambahkan kondisi untuk menghentikan input berdasarkan input pengguna.
b)
Menggunakan loop tanpa batas dan memeriksa nilai untuk menghentikan input
c)
Menyimpan input dalam array dinamis yang dapat diperluas.
d)
Semua langkah di atas benar
e)
Mengubah tipe data untuk menghitung rata-rata.
38.

Menghitung total biaya belanja berdasarkan harga barang dan jumlah yang dibeli.
Perhatikan kode berikut :
float harga, jumlah, total_biaya;
printf("Masukkan harga barang: ");
scanf("%f", &harga);
printf("Masukkan jumlah barang: ");
scanf("%f", &jumlah);
total_biaya = harga * jumlah;
printf("Total Biaya: %.2f", total_biaya);
Jika harga barang meningkat menjadi Rp
25.000, bagaimana pola perubahan total
biaya jika jumlah barang tetap 5?

a)
Total biaya akan berkurang
b)
Total biaya akan tetap sama
c)
Total biaya akan meningkat menjadi Rp 125.000
d)
Total biaya tidak dapat dihitung.
e)
Total biaya menjadi lebih rendah dari sebelumnya
39.

Seorang pengguna aplikasi e-commerce ingin mengetahui total item yang telah dimasukkan ke dalam keranjang belanja. Pengguna bisa menambahkan atau menghapus item dari keranjang, dan program harus memperbarui jumlah total item secara otomatis.
Data Item:
• Item 1: 2 (jumlah)
• Item 2: 3 (jumlah)
• Item 3: 1 (jumlah)

Jika pengguna menambahkan item baru, misalnya Item 4 dengan jumlah 5, bagaimana cara program dapat dimodifikasi untuk memperhitungkan item tersebut?

a)
Menambahkan kondisi untuk item baru dalam loop yang ada.
b)
Menghapus semua kode yang sudah ada
c)
Mengubah variabel total_item menjadi array
d)
Tidak perlu modifikasi, cukup tambah item baru di input
e)
Menggunakan tipe data yang berbeda untuk jumlah item.
40.

Seorang siswa ingin menghitung umur mereka berdasarkan tahun lahir yang diinput.
Perhatikan kode berikut : int main() {
int tahun_lahir, tahun_sekarang, umur;
printf("Masukkan tahun lahir: ");
scanf("%d", &tahun_lahir);
printf("Masukkan tahun sekarang: ");

scanf("%d", &tahun_sekarang); // Memeriksa apakah tahun lahir lebih besar dari tahun sekarang
if (tahun_lahir > tahun_sekarang) {
printf("Error: Tahun lahir tidak dapat
lebih besar dari tahun sekarang.\n");
} else {
umur = tahun_sekarang - tahun_lahir;

printf("Umur Anda: %d tahun\n",
umur);
}
return 0;
}

Apa yang terjadi jika pengguna memasukkan tahun lahir sebagai 2025 dan tahun sekarang adalah 2024? Apa pola yang dapat dikenali dalam menangani input yang tidak valid ini?

a)
Program akan menghitung umur sebagai negatif
b)
Program akan mencetak "Anda belum lahir."
c)
Program akan memberikan kesalahan
d)
Program akan menghentikan eksekusi.
e)
Program akan menghitung umur menjadi 1 tahun
41.

Sebuah toko memiliki pola pengelompokan barang dalam setiap rak berdasarkan kategori. Program ini menampilkan pola penataan barang secara berurutan dari kategori A, B, C, dan seterusnya, kemudian mengulangi pola tersebut.

Jika ada 12 barang di toko, perhatikan kode berikut : float berat[5], total_berat = 0;
printf("Masukkan berat 5 barang: ");
for (int i = 0; i < 5; i++) {
scanf("%f", &berat[i]);
total_berat += berat[i];
}
printf("Total berat: %.2f kg",
total_berat);

Apa output dari kode jika berat barang yang dimasukkan adalah 2.5, 3.0, 1.5, 4.0, dan 2.0 kg?

a)
13.00 kg
b)
10.00 kg
c)
8.00 kg
d)
Kode error
e)
Tidak ada output
42.

Seorang siswa ingin menghitung berapa banyak angka genap yang ada dalam array yang dimasukkan.

Perhatikan kode berikut :
int angka[5], i, jumlah_genap = 0;
printf("Masukkan 5 angka: ");
for (i = 0; i < 5; i++) {
scanf("%d", &angka[i]);
if (angka[i] % 2 == 0) {
jumlah_genap++;

}
printf("Jumlah angka genap: %d",
jumlah_genap);

Modifikasi kode agar menghitung jumlah angka ganjil juga?

a)
Menambahkan variabel untuk menghitung angka ganjil
b)
Sayur dan Makanan Kaleng di Kulkas, Piring dan Gelas di Lemari
c)
Mengganti semua if dengan switch
d)
Mengubah tipe data
e)
Tidak perlu modifikasi
43.

Seorang siswa ingin mengetahui apakah tahun yang diinput adalah tahun kabisat.
Perhatikan kode berikut :
int tahun;
printf("Masukkan tahun: ");
scanf("%d", &tahun);
if ((tahun % 4 == 0 && tahun % 100 !=
0) || (tahun % 400 == 0)) {

printf("Tahun kabisat");
} else {
printf("Bukan tahun kabisat");
}

Analisis bagaimana kode ini bekerja dan tambahkan kondisi untuk tahun yang diinput tidak valid?

a)
Menambahkan validasi input
b)
Menghapus bagian kode
c)
Mengubah output
d)
Tidak perlu modifikasi
e)
Mengganti tipe data
44.

Seorang siswa ingin mengetahui berapa banyak digit yang dimiliki oleh angka yang diinput.
Perhatikan kode berikut :

int angka, jumlah_digit = 0;

printf("Masukkan angka: ");

scanf("%d", &angka);
while (angka != 0) {
angka /= 10;
jumlah_digit++;
}
printf("Jumlah digit: %d",

jumlah_digit);

Jika siswa memasukkan angka 10000, bagaimana pola perhitungan jumlah digit berubah dibandingkan dengan angka 1234?

a)
Jumlah digit akan bertambah satu.
b)
Jumlah digit akan tetap sama.
c)
Jumlah digit akan menjadi 5.
d)
Program tidak dapat menghitung digit untuk angka 10000.
e)
Program tidak bisa menghitung digit angka negatif.
45.

Seorang siswa ingin mencetak semua bilangan genap sampai dengan N yang diinput.
Perhatikan kode berikut :
int N, i;
printf("Masukkan N: ");
scanf("%d", &N);
printf("Deret bilangan genap sampai
%d: ", N);
for (i = 0; i <= N; i += 2) {
printf("%d ", i);
}

Modifikasi kode agar mencetak deret bilangan genap sampai N dalam urutan terbalik?

a)
Mengubah loop menjadi decrement
b)
Menghapus printf
c)
Mengganti tipe data
d)
Menambah variabel baru
e)
Tidak perlu modifikasi
46.

Seorang siswa ingin menemukan angka maksimum dalam daftar yang diinput.
Perhatikan kode berikut :
int angka[5], i, max;
printf("Masukkan 5 angka: ");
for (i = 0; i < 5; i++) {
scanf("%d", &angka[i]);
}
max = angka[0];
for (i = 1; i < 5; i++) {
if (angka[i] > max) {
max = angka[i];
}
}

printf("Nilai maksimum: %d", max); Apa output dari kode jika input adalah 2, 5, 3, 8, da A. 8

a)
8
b)
5
c)
2
d)
Kode Error
e)
Tidak ada output
47.

Seorang programmer ingin menghitung jumlah dari bilangan Fibonacci hingga N.
Perhatikan kode berikut :
int n, i;
int fib1 = 0, fib2 = 1, fib_sum = 0;
printf("Masukkan jumlah angka
Fibonacci yang ingin dihitung: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
if (i <= 1) {
fib_sum += i; // 0 dan 1 adalah
bilangan Fibonacci pertama
} else {
int next = fib1 + fib2;
fib_sum += next;
fib1 = fib2;
fib2 = next;
}
}
printf("Jumlah bilangan Fibonacci: %d", fib_sum);

Analisis bagaimana kode ini bekerja dan modifikasi untuk hanya menghitung bilangan Fibonacci genap?

a)
Menambahkan kondisi dalam loop
b)
Menghapus perhitungan jumlah
c)
Mengubah output
d)
Menambah variabel baru
e)
Tidak perlu modifikasi
48.

Seorang siswa ingin mencetak semua angka dari 1 hingga N yang merupakan kelipatan 3.
Perhatikan kode berikut :
int N, i;
printf("Masukkan N: ");
scanf("%d", &N);
printf("Kelipatan 3 sampai %d: ", N);

for (i = 1; i <= N; i++) {
if (i % 3 == 0) {
printf("%d ", i);
}
}

Apa output dari kode jika N adalah 10?

a)
369
b)
1 2 3 4 5 6 7 8 9 10
c)
0
d)
Kode Error
e)
Tidak ada output
49.

Seorang siswa ingin menghitung rata-rata dari beberapa nilai yang dimasukkan.
Perhatikan kode berikut :
int nilai[5], i;
float total = 0, rata;
printf("Masukkan 5 nilai: ");
for (i = 0; i < 5; i++) {
scanf("%d", &nilai[i]);
total += nilai[i];
}

rata = total / 5;
printf("Rata-rata: %.2f", rata);

Apa output dari kode jika nilai yang dimasukkan adalah 70, 80, 90, 60, dan 50?

a)
Rata-rata: 70.00
b)
Rata-rata: 80.00
c)
Rata-rata: 75.00
d)
Kode Error
e)
Tidak ada output
50.

Seorang pelajar ingin mengetahui apakah suatu angka adalah bilangan prima
Perhatikan kode berikut :
int n, i, is_prime = 1;
printf("Masukkan angka: ");
scanf("%d", &n);
if (n <= 1) {
is_prime = 0;
} else {
for (i = 2; i <= n / 2; i++) {
if (n % i == 0) {
is_prime = 0;

break; // tidak perlu melanjutkan jika sudah terbukti bukan prima }
} }if (is_prime)
printf("%d adalah bilangan prima",
n);
else
printf("%d bukan bilangan prima",
n);

Modifikasi kode untuk mencetak semua bilangan prima dari 1 hingga N?

a)
Menambahkan loop untuk iterasi
b)
Mengubah kondisi
c)
Menghapus bagian yang tidak perlu
d)
Menambahkan variabel baru
e)
Tidak perlu modifikasi
51.

Seseorang pergi berbelanja dan ingin mengelompokkan barang yang dibeli berdasarkan jenisnya untuk mempermudah penyimpanan.
 Barang makanan: Simpan di Kulkas
 Barang non-makanan: Simpan di Lemari
 Barang mudah pecah: Hati-hati saat menyimpan

Setelah berbelanja, dia membeli barang-barang berikut: Sayur, Makanan Kaleng, Piring, dan Gelas. Bagaimana cara mengelompokkan dan menyimpan barang-barang tersebut?

a)
Semua di Lemari
b)
Sayur dan Makanan Kaleng di Kulkas, Piring dan Gelas di Lemari
c)
Semua di Kulkas
d)
Sayur di Kulkas, Makanan Kaleng di Lemari, Piring dan Gelas di Kulkas
e)
Sayur di Lemari, Makanan Kaleng di Kulkas
52.

Seorang siswa ingin mencetak semua bilangan genap dari 1 hingga N yang diinput.
Perhatikan kode berikut :
int N, i;
printf("Masukkan N: ");
scanf("%d", &N);
printf("Deret bilangan genap sampai %d: ", N);
for (i = 2; i <= N; i += 2) {
printf("%d ", i);
}

Apa output diatas jika N adalah 10?

a)
0 2 4 6 8 10
b)
2 4 6 8 10
c)
1 3 5 7 9
d)
Kode error
e)
Tidak ada output
53.

Seorang guru ingin mencetak tabel perkalian untuk angka tertentu.
Perhatikan kode berikut :
int N, i;
printf("Masukkan angka untuk tabel
perkalian: ");
scanf("%d", &N);
printf("Tabel Perkalian %d:\n", N);
for (i = 1; i <= 10; i++) {
printf("%d x %d = %d\n", N, i, N
* i);
}

Apa output dari kode jika N adalah 5?

a)
Tabel Perkalian 5: 5 x 1 = 5, 5 x 2 = 10,
b)
Kode error
c)
Tabel Perkalian 5: 1 x 5 = 5, 2 x 5 = 10, ...
d)
Tidak ada output
e)
5 10 15 20 25 30 35 40 45 50
54.

Seorang siswa ingin menghitung total dari semua angka yang dimasukkan ke dalam array.

Perhatikan kode berikut :

int angka[5], i, total = 0;

printf("Masukkan 5 angka: ");

for (i = 0; i < 5; i++) {

scanf("%d", &angka[i]);

total += angka[i];

}
printf("Total: %d", total);



Apa output dari kode jika angka yang dimasukkan adalah 1, 2, 3, 4, dan 5?

a)
15
b)
10
c)
5
d)
Tidak ada output
e)
Error
55.

Seorang pelajar ingin menghitung faktorial dari angka yang diinput.
Perhatikan kode berikut :
int n, i;
long long faktorial = 1;
printf("Masukkan angka: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
faktorial *= i;
}
printf("Faktorial dari %d: %lld", n,
faktorial);

Bagaimana cara mengubah kode ini agar mengabaikan input negatif dan mencetak pesan error?

a)
Menambahkan kondisi if di awal
b)
Menghapus loop
c)
Mengganti output
d)
Mengubah tipe data
e)
Tidak perlu modifikasi
56.

Seorang programmer ingin mencetak semua bilangan prima dari 1 hingga N yang diinput.

Perhatikan kode berikut :
int N, i, j, is_prime;
printf("Masukkan N: ");
scanf("%d", &N);
printf("Bilangan prima sampai %d:\n",
N);
for (i = 2; i <= N; i++) {
is_prime = 1; // Anggap angka adalah
prima
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {

is_prime = 0; // Bukan prima
break;
}
}
if (is_prime) {
printf("%d ", i);

}
}

Apa output dari kode jika N adalah 10?

a)
2 3 5 7
b)
1 2 3 4 5 6 7 8 9 10
c)
2 4 6 8 10
d)
1 5 2002
e)
Error
57.

Seorang siswa ingin mengurutkan angka yang diinput menggunakan metode Bubble Sort.
Perhatikan kode berikut :
int angka[5], i, j, temp;
printf("Masukkan 5 angka: ");
for (i = 0; i < 5; i++) {
scanf("%d", &angka[i]);
}
for (i = 0; i < 5 - 1; i++) {
for (j = 0; j < 5 - i - 1; j++) {
if (angka[j] > angka[j + 1]) {
// Tukar angka
temp = angka[j];
angka[j] = angka[j + 1];
angka[j + 1] = temp;
}
}
}
printf("Angka setelah diurutkan: ");

for (i = 0; i < 5; i++) {

printf("%d ", angka[i]);

}

Apa langkah-langkah untuk mengubah algoritma ini menjadi metode pengurutan lainnya seperti Selection Sort?

a)
Mengganti logika perbandingan
b)
Menghapus loop luar
c)
Mengganti variabel
d)
Menambahkan kondisi
e)
Tidak perlu modifikasi
58.

Seorang siswa ingin menghitung berapa banyak angka dalam bilangan bulat yang diinput. Perhatikan kode berikut :

int n, count = 0;

printf("Masukkan bilangan bulat: ");

scanf("%d", &n);

while (n != 0) {

n /= 10;

count++;

}

printf("Jumlah digit: %d", count);


Bagaimana cara mengubah kode ini agar dapat menghitung jumlah digit dari bilangan desimal?

a)
Menambahkan loop baru
b)
Mengganti tipe data
c)
Menghapus bagian yang tidak perlu
d)
Menambahkan kondisi untuk memisahkan bagian desimal
e)
Tidak perlu modifikasi
59.

Seorang siswa ingin mencetak tabel faktorial untuk semua angka dari 1 sampai N.
Perhatikan kode berikut :
int N, i;
long long faktorial;
printf("Masukkan N: ");
scanf("%d", &N);
printf("Tabel Faktorial dari 1 sampai
%d:\n", N);
for (i = 1; i <= N; i++) {
faktorial = 1;
for (int j = 1; j <= i; j++) {
faktorial *= j; }
printf("%d! = %lld\n", i, faktorial); }

Modifikasi kode agar hanya mencetak faktorial untuk angka genap dari 1 sampai N?

a)
Menambahkan kondisi untuk memeriksa kegenapan
b)
Menghapus loop dalam loop
c)
Mengganti variabel
d)
Menambah output
e)
Tidak perlu modifikasi
60.

Seorang guru ingin menghitung rata-rata nilai siswa dan mengetahui berapa banyak siswa yang memiliki nilai di atas rata-rata Perhatikan kode berikut :

int nilai[5], i, jumlah = 0, diatas_rata = 0;

float rata;

printf("Masukkan 5 nilai: ");

for (i = 0; i < 5; i++) {

scanf("%d", &nilai[i]);

jumlah += nilai[i];

}

rata = jumlah / 5.0;

for (i = 0; i < 5; i++) {

if (nilai[i] > rata) {

diatas_rata++;

}

}
printf("Rata-rata: %.2f\n", rata);
printf("Jumlah siswa di atas rata-rata:
%d", diatas_rata);


Bagaimana cara mengubah kode ini untuk menghitung persentase siswa yang berada di atas rata-rata?

a)
Menambahkan variabel untuk persentase
b)
Mengganti output
c)
Menghapus perhitungan jumlah
d)
Menambah kondisi
e)
Tidak perlu modifikasi