wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Ekstraksi Soal Lembar Kerja

Total questions: 40

Worksheet time: 20mins

Name
Class
Date
1.

Perhatikan kode program C++ berikut. double suhu = 36.7; int hasil = suhu; cout << hasil; Output dari program C++ di atas jika dijalankan adalah ….

a)

36.7

b)

37

c)

36

d)

0

e)

Error konversi tipe data

2.

Perhatikan kerangka program C++ berikut.
Operator apa yang tepat untuk mengisi garis kosong pertama dan kedua pada "BAGIAN 4: Pernyataan Output" (dua garis kosong setelah cout dan setelah string pesan)?

a)

>> (Operator Ekstraksi)

b)

== (Operator Komparasi)

c)

<> (Operator Relasi)

d)

<< (Operator Insertion)

e)

= (Operator Penugasan)

3.

Diberikan pernyataan berikut dalam Bahasa Pemrograman C++: int X = 8 ; float Y = 20.7; char Z = 'A'; Pernyataan di atas merupakan contoh dari ….

a)

Deklarasi tipe data

b)

Operasi aritmatika

c)

Fungsi rekursif

d)

Penggunaan pointer

e)

Deklarasi array

4.

Pak Hasan ingin menyimpan data jumlah total buah apel yang berhasil dipanen dari kebunnya. Jumlah apel tersebut diperkirakan mencapai ribuan, namun pasti berupa bilangan bulat (tidak ada setengah apel atau seperempat apel). Tipe data apa yang paling tepat digunakan dalam C++?

a)

Float

b)

Double

c)

Char

d)

Int

e)

bool

5.

Di sebuah toko kue, kasir perlu mencatat harga total belanjaan pelanggan yang mungkin memiliki nilai desimal (misalnya Rp 15.500,75). Tipe data C++ yang paling sesuai untuk menyimpan nilai ini adalah?

a)

int

b)

char

c)

string

d)

bool

e)

double

6.

Di sekolah Anda, terdapat sistem pendataan nilai siswa. Setiap siswa memiliki data: 1. Nomor Induk Siswa (NIS) yang terdiri dari angka. 2. Nama lengkap. 3. Nilai rata-rata ujian (skala 0-100, bisa berupa bilangan desimal, misal 87,5). 4. Keterangan kelulusan (Lulus/Tidak Lulus). Tipe data manakah yang tidak tepat digunakan atau kurang efisien berdasarkan kebutuhan data di atas?

a)

Menggunakan float untuk Nomor Induk Siswa (NIS).

b)

Menggunakan char untuk Nama lengkap siswa.

c)

Menggunakan double untuk Nilai rata-rata ujian.

d)

Menggunakan string untuk Keterangan kelulusan.

e)

Menggunakan float untuk Nilai rata-rata ujian

7.

Perhatikan potongan program C++ berikut. int x = 6; int y = 2; int z = 3; int hasil; // Perhitungan dengan prioritas operator hasil = x + y [___] z; Operator manakah yang harus diletakkan pada bagian yang hilang agar variabel hasil bernilai 12?

a)

/

b)

*

c)

-

d)

%

e)

+

8.

Seorang kasir harus memberikan kembalian Rp8.000 menggunakan pecahan uang Rp5.000, Rp2.000, dan Rp1.000. Jika menggunakan algoritma Greedy, kombinasi pecahan yang digunakan adalah ...

a)

1 lembar Rp5.000, 1 lembar Rp2.000, 1 lembar Rp1.000

b)

4 lembar Rp2.000

c)

2 lembar Rp5.000

d)

8 lembar Rp1.000

e)

1 lembar Rp5.000, 3 lembar Rp1.000

9.

Apa fungsi utama dari tanda baca titik koma (;) yang digunakan di akhir setiap baris pernyataan C++?

a)

Menandai awal dari sebuah blok kode

b)

Menandai akhir dari sebuah fungsi

c)

Berfungsi sebagai pemisah parameter dalam fungsi

d)

Berfungsi sebagai penanda komentar satu baris

e)

Berfungsi sebagai terminator pernyataan (statement terminator), menandakan akhir dari sebuah instruksi logis

10.

Andi sedang mengembangkan bagian dari aplikasi ojek online yang menyimpan data perjalanan. Setiap perjalanan mencatat: (1) jarak tempuh dalam kilometer yang bisa berupa bilangan desimal (misal 5.2 km); (2) rating pelanggan skala 1 sampai 5 yang bisa bernilai desimal (misal 4.5); (3) jumlah penumpang; (4) kode promo yang digunakan (misal "HEMAT50"). Pilih dua pasang tipe data C++ yang paling sesuai untuk menyimpan data jarak tempuh dan rating tersebut.

a)

int dan int

b)

double dan float

c)

char dan char

d)

float dan double

e)

long dan int

11.

Diketahui a=10a = 10 dan b=5b = 5 , maka hasil dari a+b3a + b * 3 adalah ...

a)

20

b)

25

c)

30

d)

45

e)

50

12.

Sebuah mesin kopi otomatis memproses pesanan minuman. Mesin tersebut memiliki fitur untuk menerima pembayaran koin dan akan terus meminta koin hingga jumlah yang dimasukkan mencapai atau melebihi harga kopi (Rp 5.000). Program C++ yang mengendalikan proses ini kira-kira seperti berikut: #include using namespace std; int main() { int harga = 5000; int total_uang = 0; // Bagian perulangan untuk menerima koin // ... cout << "Pesanan diproses. Kembalian Anda: " << total_uang - harga << endl; return 0; } Manakah dari pilihan struktur perulangan berikut yang paling tepat dan efisien digunakan untuk menggantikan bagian "Bagian perulangan untuk menerima koin" dalam skenario kasus sehari-hari di atas?

a)

for (int i = 0; i < harga; i += koin) { cin >> koin Parsons; total_uang += koin; }

b)

while (total_uang < harga) { int koin; cout << "Masukkan koin: "; cin >> koin; total_uang += koin; }

c)

for (;;) { int koin; cout << "Masukkan koin: "; cin >> koin; total_uang += koin; if (total_uang >= harga) break; }

d)

do { int koin; cout << "Masukkan koin: "; cin >> koin; total_uang += koin; } while (total_uang < harga);

e)

while (total_uang <= harga) { int koin; cout << "Masukkan koin: "; cin >> koin; total_uang += koin; }

13.

Seorang siswa dinyatakan lulus jika nilai ujiannya lebih dari atau sama dengan 85. Penulisan if-else dalam C++ untuk menentukan apakah siswa lulus atau tidak adalah ….

a)

if (nilai >= 85) lulus; else gagal;

b)

if (nilai < 85) lulus; else gagal;

c)

if (nilai >= 85 { lulus; } else { gagal; }

d)

if (nilai >= 85) { cout << "Lulus"; } else { cout << "Gagal"; }

e)

if (nilai == 85) { cout << "Lulus"; }

14.

Perulangan for (int i = 0; i < 5; i++) akan mengulangi sebanyak:

a)

2 kali

b)

3 kali

c)

4 kali

d)

5 kali

e)

6 kali

15.

Sebuah mesin antrian di bank dirancang untuk terus melayani pelanggan selama bank masih buka dan masih ada pelanggan yang menunggu. Proses pelayanan akan berhenti hanya ketika bank tutup atau tidak ada lagi nomor antrian yang tersisa. Jenis perulangan C++ manakah yang paling sesuai dan fleksibel untuk skenario "melayani pelanggan selama kondisi tertentu terpenuhi" ini?

a)

for loop

b)

while loop

c)

do-while loop

d)

nested for loop

e)

if-else statement

16.

Dalam sebuah struktur switch-case, apa fungsi dari kata kunci break ...

a)

Melanjutkan ke blok case berikutnya.

b)

Mengakhiri eksekusi blok switch sepenuhnya.

c)

Mengakhiri eksekusi blok case saat ini dan keluar dari struktur switch.

d)

Mengatur nilai default jika tidak ada case yang cocok.

e)

program telah berjalan dengan sukses dan tidak ada kesalahan

17.

Seorang kasir di sebuah toko swalayan menggunakan program untuk menghitung total belanjaan pelanggan. Program akan terus meminta input harga barang satu per satu sampai kasir memasukkan angka 0 (nol) sebagai tanda akhir input. Program harus memastikan bahwa setidaknya ada satu barang yang diinput sebelum berhenti (walaupun harga barang pertama bisa saja nol, asumsikan nol adalah penanda berhenti). Pilih dua pernyataan yang paling tepat menggambarkan penggunaan struktur perulangan untuk kasus ini.

a)

Perulangan for adalah yang paling efisien karena jumlah item belanjaan sudah pasti diketahui sebelumnya.

b)

Perulangan while adalah pilihan yang baik karena kondisi berhenti (input 0) diperiksa di awal setiap iterasi.

c)

Perulangan do-while adalah pilihan yang sangat cocok karena menjamin blok kode (meminta input harga) dieksekusi minimal satu kali.

d)

Nested loop (perulangan bersarang) diperlukan untuk menghitung total harga ini.

e)

Kondisi perulangan akan terus berjalan selama nilai input harga yang dimasukkan oleh kasir tidak sama dengan 0.

18.

Manakah pernyataan yang paling tepat mengenai fungsi getline(cin, nama)?

a)

Hanya dapat membaca satu kata tanpa spasi.

b)

Tidak dapat digunakan untuk variabel string.

c)

Digunakan untuk membaca satu baris teks lengkap termasuk spasi.

d)

Hanya dapat membaca karakter tunggal.

e)

Selalu memerlukan fungsi cin.ignore() di depannya.

19.

Dalam sebuah program, Anda ingin menampilkan "Nilai A" jika nilai >= 85 dan "Nilai B" jika nilai antara 70-84. Kode C++ yang benar untuk kondisi tersebut adalah ….

a)

if (nilai >= 85) cout << "Nilai A"; else if (nilai >= 70 && nilai < 85) cout << "Nilai B";

b)

if (nilai >= 85) cout << "Nilai B"; else cout << "Nilai A";

c)

if (nilai > 70) cout << "Nilai B";

d)

if (nilai < 85) cout << "Nilai B"; else cout << "Nilai A";

e)

if (nilai >= 70) cout << "Nilai B"; else if (nilai < 85) cout << "Nilai A";

20.

Sebuah program di C++ dibuat untuk mengelola data siswa di sebuah sekolah. Data yang perlu disimpan meliputi nama lengkap, usia, tinggi badan dalam satuan meter, dan status kelulusan (lulus atau tidak lulus). Tipe data yang paling sesuai untuk menyimpan masing-masing variabel tersebut adalah..

a)

Nama lengkap menggunakan char.

b)

Usia menggunakan int.

c)

Tinggi badan menggunakan double.

d)

Status kelulusan menggunakan double.

e)

Nama lengkap menggunakan float.

21.

Berikut ini yang merupakan cara benar untuk menuliskan komentar satu baris dalam C++ adalah ….

a)

/* komentar */

b)

// komentar

c)

d)

" komentar "

e)

/** komentar **/

22.

Sebuah aplikasi kasir di warung kopi memerlukan data sebagai berikut: nama pembeli, total belanja, dan jumlah uang yang dibayarkan. Total belanja dan uang yang dibayarkan bisa memiliki nilai desimal. Aplikasi juga perlu menyimpan informasi apakah pembeli tersebut menggunakan kartu anggota atau tidak. Tipe data yang sesuai untuk menyimpan total belanja dan status penggunaan kartu anggota adalah...

a)

int untuk total belanja.

b)

float untuk total belanja.

c)

string untuk total belanja.

d)

bool untuk status penggunaan kartu anggota.

e)

char untuk status penggunaan kartu anggota

23.

Untuk menyimpan inisial nama pelanggan, seperti 'A' atau 'S', yang hanya terdiri dari satu huruf, tipe data C++ yang paling tepat adalah...

a)

string

b)

int

c)

char

d)

double

e)

bool

24.

Perhatikan program C++ untuk menghitung sisa bagi (modulus) dari dua bilangan bulat: #include using namespace std; int main() { int bil1 = 10; int bil2 = 3; int sisa; // Menghitung sisa bagi sisa = bil1 [...] bil2; cout << "Sisa bagi dari " << bil1 << " dan " << bil2 << " adalah: " << sisa; return 0; } Operator aritmatika apa yang tepat untuk melengkapi baris kode yang hilang?

a)

/

b)

*

c)

-

d)

%

e)

+

25.

Sebuah program di sebuah sekolah diminta untuk mencetak kartu ujian untuk 30 siswa di kelas. Setiap kartu harus mencantumkan nomor siswa dari 1 hingga 30. Perhatikan potongan program C++ di bawah ini. Bagian yang tepat untuk melengkapi program agar dapat mencetak kartu ujian untuk 30 siswa adalah... #include int main() { // BAGIAN YANG HILANG { std::cout << "Mencetak kartu ujian untuk siswa nomor " << i << std::endl; } return 0; }

a)

for (int i = 1; i < 30; i++)

b)

for (int i = 1; i <= 30; i++)

c)

for (int i = 0; i < 30; i++)

d)

for (int i = 30; i > 0; i--)

e)

for (int i = 0; i <= 30; i++)

26.

Seorang guru ingin membuat program untuk menghitung nilai rata-rata dari 5 mata pelajaran untuk satu siswa. Nilai-nilai tersebut bisa berupa bilangan bulat (contoh: 80, 95) maupun bilangan desimal (contoh: 88.5, 92.75). Tipe data yang paling tepat untuk menyimpan nilai rata-rata siswa adalah..

a)

char

b)

int

c)

string

d)

bool

e)

float

27.

Sebuah grup chat di sekolah Anda ramai membahas sebuah berita viral tentang seorang selebgram yang dituduh melakukan penipuan berkedok donasi. Berita tersebut menyebar sangat cepat melalui media sosial dan banyak yang langsung mempercayainya, bahkan ada yang sudah menyumbang. Namun, beberapa teman Anda mulai curiga karena ada kejanggalan dalam isi berita dan sumbernya tidak jelas. Sikap dan tindakan apa saja yang menunjukkan berpikir kritis dalam menyikapi kasus viral ini, serta dampak sosial informatika apa yang paling relevan dalam konteks ini?

a)

Langsung membagikan berita tersebut ke grup lain agar lebih banyak orang tahu dan berhati-hati.

b)

Mencari tahu kebenaran berita dengan membandingkan informasi dari berbagai sumber kredibel dan melacak keaslian akun selebgram tersebut.

c)

Mengabaikan berita tersebut karena terlalu banyak informasi di internet dan khawatir akan salah informasi.

d)

Mengajak teman-teman untuk tidak langsung percaya dan melakukan verifikasi fakta sebelum menyebarkan atau bertindak.

e)

Berhenti mengikuti selebgram tersebut dan menyebarkan ujaran kebencian di kolom komentar untuk memberikan efek jera.

28.

Salah satu cara manusia untuk menganalisa informasi agar hasilnya dapat digunakan dalam bertindak adalah .....

a)

berpikir

b)

bertanya

c)

membaca

d)

meringkas

e)

mengkaji

29.

Dina sering berkomentar kasar di forum online. Suatu hari, ia melamar pekerjaan dan pihak HR menemukan komentar-komentar tersebut.

Dampak sosial dari perilaku Dina menunjukkan pentingnya...

a)

Meningkatkan jumlah pengikut media social

b)

Menghapus semua akun media social

c)

Menghindari interaksi di dunia maya

d)

Menyadari bahwa jejak digital bersifat permanen

e)

Mengunggah konten positif untuk menutupi yang negatif

30.

Sekolah Rina menerapkan kebijakan baru yang mengharuskan seluruh siswa menginstal aplikasi pelacakan lokasi di ponsel mereka. Aplikasi ini diklaim untuk memastikan keamanan siswa. Namun, banyak siswa dan orang tua merasa khawatir karena aplikasi tersebut dapat memantau aktivitas pribadi mereka di luar jam sekolah, bahkan di rumah. Rina memutuskan untuk mencari tahu lebih dalam tentang kebijakan ini.

Dari kasus tersebut, tindakan yang mencerminkan sikap berpikir kritis dan pemahaman terhadap dampak sosial informatika adalah :

a)

Mengajukan pertanyaan kepada pihak sekolah mengenai sejauh mana data pribadi dilindungi dan dikelola oleh aplikasi tersebut.

b)

Mengumpulkan informasi dari siswa lain yang sudah menginstal aplikasi untuk mengetahui pengalaman mereka, baik positif maupun negatif.

c)

Langsung memprotes kebijakan tersebut di media sosial tanpa mengumpulkan fakta dan data yang valid.

d)

Menerima kebijakan tersebut begitu saja karena merasa tidak ada pilihan lain.

e)

Menyarankan semua siswa untuk menghapus aplikasi setelah jam sekolah tanpa berdiskusi dengan pihak sekolah

31.

Pemanfaatan kecerdasan buatan (AI) di dunia kerja membuat beberapa pekerjaan menjadi otomatis, sehingga efisiensi meningkat tetapi sebagian karyawan kehilangan pekerjaannya.

Dampak sosial dari fenomena ini adalah...

a)

Hanya menimbulkan keuntungan bagi perusahaan

b)

Tidak memengaruhi masyarakat sama sekali

c)

Meningkatnya pengangguran dan perlunya adaptasi keterampilan baru

d)

Menghilangkan kebutuhan akan pendidikan formal

e)

Membuat pekerjaan manusia sepenuhnya tidak berguna

32.

Nabila membaca berita online tentang “obat herbal yang dapat menyembuhkan semua penyakit.” Sebelum mempercayainya, ia mencari sumber dari situs resmi kesehatan dan membaca ulasan pakar.

Langkah Nabila menunjukkan keterampilan berpikir kritis berupa...

a)

Menganalisis bukti dan sumber informasi

b)

Mengabaikan semua informasi dari internet

c)

  Mengambil kesimpulan tanpa data

d)

Menyebarkan berita agar orang lain tahu

e)

Mengandalkan opini teman

33.

Ketika seseorang langsung percaya pada informasi yang diterima tanpa menganalisisnya secara rasional, hal ini menunjukkan kurangnya kemampuan dalam aspek...

a)

Kreativitas

b)

Refleksi

c)

  Berpikir kritis

d)

Mempercayai sumber

e)

Mengumpulkan data

34.

Dampak negatif informatika yang dapat memicu tergerusnya budaya tradisional akibat mudahnya akses terhadap tren global adalah hilangnya...

a)

Inovasi teknologi

b)

Informasi instan

c)

Jaringan internet

d)

Kecepatan data

e)

Kearifan lokal

35.

Sebuah berita viral menyatakan bahwa konsumsi kopi secara rutin dapat menyebabkan penyakit jantung. Untuk membuktikan kebenaran berita tersebut, langkah awal yang harus dilakukan seseorang dengan pemikiran kritis adalah...

a)

Membagikan berita tersebut ke grup-grup media sosial.

b)

Mencari artikel ilmiah atau penelitian dari jurnal kesehatan terpercaya.

c)

Menghentikan konsumsi kopi secara total.

d)

Bertanya kepada teman yang juga suka minum kopi.

e)

Mempercayai saja karena berita tersebut viral.

36.

Salah satu ciri utama individu yang memiliki kemampuan berpikir kritis dalam menghadapi informasi di era digital adalah...

a)

Selalu menerima informasi dari media sosial sebagai kebenaran mutlak.

b)

Mudah terpengaruh oleh judul berita yang provokatif.

c)

Mampu membedakan antara fakta dan opini.

d)

Menyebarkan informasi tanpa memeriksa kebenarannya.

e)

Menghafal definisi dan istilah-istilah teknologi

37.

Perhatikan pernyataan berikut :

  1. 1. Munculnya kecanduan gawai dan internet.

  2. 2. Meningkatnya kasus kejahatan siber (cybercrime).

  3. 3. Kemudahan akses informasi dan pengetahuan.

  4. 4. Terciptanya lapangan pekerjaan baru di sektor teknologi.

  5. 5. Tersebarnya hoaks dan disinformasi secara masif.

Pernyataan yang termasuk dampak negatif dari perkembangan informatika ditunjukkan oleh nomor...

a)

1, 2, dan 3

b)

1, 2, dan 5

c)

2, 3, dan 4

d)

2, 4, dan 5

e)

3, 4, dan 5

38.

Perhatikan program C++ di bawah ini yang bertujuan untuk menghitung luas persegi panjang:


Apa pernyataan yang paling tepat untuk melengkapi bagian "// Bagian yang hilang 1" agar program dapat menghitung luas dengan benar?

a)

panjang * lebar = luas;

b)

luas = panjang + lebar;

c)

luas = panjang * lebar;

d)

luas := panjang * lebar;

e)

hitung(luas, panjang, lebar);

39.

Dalam struktur program C++, pernyataan using namespace std; berfungsi untuk...

a)

Menandai akhir dari sebuah fungsi.

b)

Memulai blok kode baru.

c)

Mendeklarasikan bahwa program akan menggunakan operator matematika.

d)

Menginstruksikan kompiler untuk menghentikan proses kompilasi.

e)

Menghindari penulisan awalan std:: (seperti std::cout menjadi cout) untuk pustaka standar.

40.

Jika sebuah program C++ dimulai dengan kode berikut, manakah dari pernyataan output di bawah ini yang akan menghasilkan compile error?

a)

std::cout << "Test";

b)

std::cin >> variabel;

c)

cout << "Test";

d)

return 0;

e)

#include <iostream>