wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Latihan UTS Kelas XII

Total questions: 100

Worksheet time: 2hrs 40mins

Name
Class
Date
1.

Proses berpikir yang digunakan untuk memecahkan masalah secara sistematis dan efisien, yang melibatkan kemampuan merurai masalah, mengidentifikasi pola, dan membuat langkah logis disebut:

a)

Pemrograman Prosedural

b)

Berpikir Komputasional

c)

Berpikir Kritis

d)

Abstraksi Data

2.

Empat komponen utama berpikir komputasional adalah:

a)

Input, Proses, Output, dan Penyimpanan

b)

Dekomposisi, Pengenalan Pola, Abstraksi, dan Algoritma

c)

Pseudocode, Flowchart, Kode Program, dan Rekursif

d)

Analisis, Desain, Implementasi, dan Pengujian

3.

Kemampuan memecah masalah kompleks menjadi bagian-bagian kecil yang lebih sederhana dan mudah dipahami disebut:

a)

Abstraksi

b)

Pengenalan Pola

c)

Algoritma

d)

Dekomposisi

4.

Bahasa C dikembangkan pada tahun 1972 di Bell Labs oleh:

a)

Ken Thompson

b)

Linus Torvalds

c)

Dennis Ritchie

d)

Ada Lovelace

5.

Bahasa C termasuk dalam kategori bahasa pemrograman yang dieksekusi dengan cara:

a)

Interpreted (Interpretasi)

b)

Compiled (Kompilasi)

c)

Hybrid (Campuran)

d)

Deklaratif

6.

Tahap terakhir dalam proses kompilasi C yang menggabungkan file kode objek dengan pustaka (libraries) untuk menghasilkan file executable adalah:

a)

A. Preprocessing

b)

B. Compilation

c)

C. Assembly

d)

D. Linking

7.

Manakah pernyataan yang SALAH mengenai const dan #define untuk membuat konstanta di C?

a)

const bersifat type-safe (memeriksa tipe data), sedangkan #define tidak.

b)

#define adalah arahan preprocessor, sedangkan const adalah keyword bahasa C.

c)

Keduanya harus diinisialisasi saat dideklarasikan.

d)

Keduanya wajib menggunakan titik koma (;) di akhir deklarasi.

8.

Apa tujuan dari type casting seperti (float) a / b dalam operasi pembagian integer?

a)

Untuk membulatkan hasil pembagian ke atas.

b)

Untuk memastikan hasil pembagian tidak dibulatkan dan menyertakan nilai desimal.

c)

Untuk mempercepat proses kalkulasi.

d)

Untuk mengubah nilai variabel a secara permanen menjadi float.

9.

Tipe data yang digunakan untuk menyimpan satu karakter tunggal, seperti 'L' atau 'A', adalah:

a)

int

b)

string

c)

char

d)

float

10.

Apa hasil dari operasi aritmetika sisa bagi (modulo) 10 % 3?

a)

1

b)

3

c)

0

d)

3.33

11.

Operator yang digunakan untuk mengecek apakah kedua kondisi bernilai benar (logika AND) adalah:

a)

||

b)

&&

c)

&

d)

!=

12.

Manakah operator pembanding yang tepat untuk memeriksa apakah variabel a sama dengan variabel b?

a)

a = b

b)

a == b

c)

a != b

d)

a === b

13.

Dalam struktur switch-case, keyword apa yang digunakan untuk keluar dari blok switch setelah sebuah case terpenuhi?

a)

A. return

b)

B. stop

c)

C. continue

d)

D. break

14.

Struktur (kondisi) ? true_val : false_val dikenal sebagai:

a)

A. Operator Ternary

b)

B. Operator Bitwise

c)

C. Percabangan Bersarang

d)

D. Switch Case

15.

Pada struktur if-else, jika kondisi di dalam if bernilai false, maka blok kode yang akan dieksekusi adalah:

a)

Blok if

b)

Blok default

c)

Blok else

d)

Program akan berhenti

16.

Perulangan yang sudah jelas berapa kali akan diulang (seperti "Push up 10x") disebut Counted Loop dan biasanya menggunakan:

a)

A. while

b)

B. do-while

c)

C. for

d)

D. if-else

17.

Perulangan yang tidak jelas batas pengulangannya (seperti "Push up sampai bosan") disebut Uncounted Loop dan biasanya menggunakan:

a)

for

b)

while atau do-while

c)

switch-case

d)

for dan switch

18.

Manakah struktur perulangan for yang benar untuk mengulang sebanyak 5 kali (dari 0 hingga 4)?

a)

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

b)

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

c)

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

d)

for(int i = 5; i > 0; i++)

19.

Perbedaan utama antara perulangan while dan do-while adalah:

a)

while mengecek kondisi di akhir, do-while mengecek di awal.

b)

do-while pasti dieksekusi minimal satu kali, while belum tentu.

c)

while hanya bisa untuk counted loop, do-while untuk uncounted loop.

d)

do-while lebih cepat daripada while.

20.

Perulangan yang mengecek kondisi terlebih dahulu sebelum mengeksekusi blok kode di dalamnya adalah:

a)

do-while

b)

while

c)

switch

d)

for-each

21.

Kode for(int i = 10; i > 0; i--) akan menghasilkan perulangan:

a)

Menaik dari 0 sampai 10

b)

Menurun dari 10 sampai 1

c)

Menaik dari 1 sampai 10

d)

Menurun dari 10 sampai 0

22.

Apa yang akan terjadi jika kondisi pada perulangan while (kondisi) dari awal sudah bernilai false?

a)

Blok kode akan dieksekusi satu kali.

b)

Blok kode tidak akan pernah dieksekusi.

c)

Program akan mengalami error.

d)

Perulangan akan berjalan tanpa henti (infinite loop).

23.

Perulangan yang berada di dalam perulangan lain disebut:

a)

Perulangan Rekursif

b)

Perulangan Ganda

c)

Perulangan Bersarang (Nested Loop)

d)

Perulangan Tak Terbatas

24.

Pada for (int i = 0; i < 11; i++), pernyataan i++ adalah bagian:

a)

Inisialisasi

b)

Syarat Perulangan

c)

Update

d)

Blok Kode

25.

Perhatikan kode berikut: int i = 5; do { printf("%d ", i); i++; } while (i < 5); Apa output dari kode tersebut?

a)

(Tidak ada output)

b)

5

c)

5 6 7 ... (infinite loop)

d)

6

26.

Perhatikan kode berikut: int i = 0; while (i < 3) { printf("%d ", i); i++; } Apa output dari kode tersebut?

a)

A. 0 1 2

b)

B. 0 1 2 3

c)

C. 1 2

d)

D. 1 2 3

27.

Untuk menjalankan blok kode berulang kali tanpa harus menuliskannya berkali-kali, kita menggunakan:

a)

A. Percabangan

b)

B. Perulangan

c)

C. Operator

d)

D. Fungsi

28.

Struktur data yang digunakan untuk menyimpan sekumpulan data dengan tipe yang sama dalam satu tempat disebut:

a)

Variabel

b)

Konstanta

c)

Array

d)

Fungsi

29.

Indeks pada array di bahasa C selalu dimulai dari:

a)

1

b)

0

c)

-1

d)

Bebas ditentukan programmer

30.

Jika kita memiliki int arr[5] = {10, 20, 30, 40, 50};, bagaimana cara mengakses elemen ketiga?

a)

A. arr[3]

b)

B. arr(3)

c)

C. arr[2]

d)

D. arr(2)

31.

Manakah cara yang benar untuk mendeklarasikan array integer bernama nilai dengan 10 elemen?

a)

int nilai[10];

b)

int[10] nilai;

c)

array int nilai[10];

d)

int nilai(10);

32.

Bagaimana cara yang tepat untuk mendapatkan jumlah elemen (panjang) dari sebuah array int arr[]?

a)

sizeof(arr)

b)

length(arr)

c)

arr.length

d)

sizeof(arr) / sizeof(arr[0])

33.

Proses mengunjungi setiap elemen array, biasanya menggunakan struktur perulangan for, disebut:

a)

Inisialisasi Array

b)

Deklarasi Array

c)

Penelusuran Array (Traversal)

d)

Pembaruan Array (Update)

34.

Manakah deklarasi yang benar untuk array 2D (matriks) dengan 3 baris dan 4 kolom?

a)

int matriks[3, 4];

b)

int matriks[3][4];

c)

int matriks(3, 4);

d)

int matriks[3 + 4];

35.

Jika kita memiliki int matriks[2][3] = {{1, 2, 3}, {4, 5, 6}};, bagaimana cara mengakses nilai 5?

a)

matriks[1][1]

b)

matriks[2][1]

c)

matriks[1][2]

d)

matriks[0][1]

36.

Berapa jumlah total elemen yang dapat disimpan oleh int data[5][4]?

a)

A. 9

b)

B. 1

c)

C. 20

d)

D. 5

37.

Perhatikan kode berikut: int arr[5] = {10, 20}; Berapakah nilai dari arr[2]?

a)

10

b)

20

c)

0 (nilai default inisialisasi)

d)

Error (tidak terdefinisi)

38.

Cara memperbarui (update) elemen pertama pada array arr menjadi 99 adalah:

a)

arr(0) = 99;

b)

arr[0] = 99;

c)

update(arr, 0, 99);

d)

arr[1] = 99;

39.

Rangkaian karakter (teks) dalam bahasa C pada dasarnya disimpan sebagai:

a)

Array dari int

b)

Array dari char

c)

Tipe data string bawaan

d)

Array dari pointer

40.

Blok kode atau sub-program yang dapat digunakan kembali dengan cara memanggilnya disebut:

a)

Array

b)

Fungsi

c)

Variabel Global

d)

Perulangan

41.

Fungsi utama yang akan dieksekusi pertama kali saat program C dijalankan adalah:

a)

void start()

b)

int main()

c)

function begin()

d)

int C()

42.

Jika sebuah fungsi tidak mengembalikan nilai apapun, tipe data kembalian (return type) yang digunakan adalah:

a)

int

b)

null

c)

void

d)

char

43.

Dalam deklarasi void sapa(char nama[]), nama disebut sebagai:

a)

Nilai Kembalian (Return Value)

b)

Parameter

c)

Variabel Global

d)

Tipe Data

44.

Keyword yang digunakan untuk mengembalikan nilai dari dalam fungsi adalah:

a)

A. return

b)

B. send

c)

C. break

d)

D. void

45.

Fungsi yang memanggil dirinya sendiri di dalam blok kodenya disebut:

a)

Fungsi Bersarang

b)

Fungsi Rekursif

c)

Fungsi Global

d)

Fungsi Statis

46.

Variabel yang didefinisikan di luar semua fungsi dan dapat diakses dari fungsi manapun disebut:

a)

Variabel Lokal

b)

Variabel Global

c)

Parameter

d)

Variabel Statis

47.

Variabel yang didefinisikan di dalam sebuah fungsi dan hanya dikenal di dalam fungsi tersebut disebut:

a)

Variabel Lokal

b)

Variabel Global

c)

Konstanta

d)

Variabel Eksternal

48.

Apa yang dimaksud dengan Pass by Reference saat memanggil fungsi (contoh: kali_dua(&angka))?

a)

Fungsi menerima salinan (copy) dari nilai variabel.

b)

Fungsi menerima alamat memori dari variabel, sehingga bisa mengubah nilai aslinya.

c)

Fungsi hanya bisa membaca nilai variabel, tidak bisa mengubah.

d)

Fungsi membuat variabel baru dengan nama yang sama.

49.

Bagaimana cara mendeklarasikan parameter num dalam sebuah fungsi agar dapat menerima alamat memori (pointer) dari sebuah integer?

a)

int num

b)

int &num

c)

int *num

d)

address num

50.

Pernyataan #include berfungsi untuk:

a)

Memulai fungsi main.

b)

Mengimpor pustaka (library) atau file header agar fungsi seperti printf() dan scanf() bisa digunakan.

c)

Memberikan komentar pada program.

d)

Mendefinisikan konstanta global.

51.

1. Bahasa C menggunakan paradigma pemrograman...

a)

Object Oriented Programming

b)

Imperative dan Prosedural

c)

Functional Programming

d)

Logic Programming

52.

Versi bahasa C yang menjadi standar saat ini adalah...

a)

C89

b)

C99

c)

C11

d)

C18

53.

Apa fungsi dari #include dalam program C?

a)

Untuk membuat fungsi main

b)

Untuk mengimpor fungsi-fungsi dasar seperti printf()

c)

Untuk mendeklarasikan variabel

d)

Untuk mengakhiri program

54.

Tipe data yang tepat untuk menyimpan nilai 3.14 adalah...

a)

int

b)

char

c)

float

d)

void

55.

Manakah penulisan variabel yang SALAH menurut aturan bahasa C?

a)

int nilai_siswa;

b)

int 2nilai;

c)

int nilaiSiswa;

d)

int _nilai;

56.

Berapa ukuran memori untuk tipe data int pada bahasa C?

a)

1 byte

b)

2 byte

c)

4 byte

d)

8 byte

57.

Cara membuat konstanta dengan #define yang benar adalah...

a)

#define PI = 3.14;

b)

#define PI 3.14

c)

const PI = 3.14;

d)

#define int PI = 3.14

58.

Hasil dari operasi 7 % 3 adalah...

a)

2

b)

1

c)

2.33

d)

3

59.

Operator += pada pernyataan a += 5 sama artinya dengan...

a)

a = a - 5

b)

a = a + 5

c)

a = 5

d)

a = a * 5

60.

Operator logika yang menghasilkan TRUE jika kedua pernyataan TRUE adalah...

a)

||

b)

&&

c)

!

d)

==

61.

Hasil dari operasi bitwise 6 & 3 adalah...

a)

1

b)

2

c)

3

d)

6

62.

Perhatikan kode berikut: int nilai = 75; if (nilai >= 80) printf("A"); else if (nilai >= 70) printf("B"); else printf("C"); Output yang dihasilkan adalah...

a)

A. A

b)

B. B

c)

C. C

d)

D. Error

63.

Perbedaan utama antara if dan switch/case adalah...

a)

Switch lebih cepat untuk banyak kondisi

b)

If tidak bisa digunakan untuk string

c)

Switch hanya untuk perbandingan sama dengan

d)

If tidak memerlukan break

64.

Operator ternary (a > b) ? "Besar" : "Kecil" adalah bentuk singkat dari...

a)

switch/case

b)

if/else

c)

while

d)

for

65.

Apa fungsi keyword break dalam switch/case?

a)

Mengulang case

b)

Menghentikan program

c)

Keluar dari blok switch

d)

Melanjutkan ke case berikutnya

66.

Perulangan yang termasuk counted loop adalah...

a)

Perulangan for

b)

Perulangan while

c)

Perulangan do-while

d)

Perulangan foreach

67.

Perhatikan kode berikut: for(int i = 0; i < 5; i++) printf("%d ", i); Output yang dihasilkan adalah...

a)

A. 0 1 2 3 4

b)

B. 1 2 3 4 5

c)

C. 0 1 2 3 4 5

d)

D. 1 2 3 4

68.

Perbedaan utama antara while dan do-while adalah...

a)

While lebih cepat

b)

Do-while mengecek kondisi di akhir

c)

While tidak bisa infinite loop

d)

Do-while tidak memerlukan kondisi

69.

Perhatikan kode: int i = 5; while(i > 0){ printf("%d ", i); i--; }

a)

A. 5 4 3 2 1

b)

B. 5 4 3 2 1 0

c)

C. 1 2 3 4 5

d)

D. Error

70.

Apa yang dimaksud dengan nested loop?

a)

Perulangan yang error

b)

Perulangan di dalam perulangan

c)

Perulangan tanpa kondisi

d)

Perulangan dengan break

71.

for(int i = 10; i >= 1; i--) printf("%d ", i); Kode di atas adalah contoh perulangan...

a)

Menaik

b)

Menurun (countdown)

c)

Infinite loop

d)

Error

72.

Keyword continue dalam perulangan berfungsi untuk...

a)

Menghentikan perulangan

b)

Melanjutkan ke iterasi berikutnya

c)

Mengulang dari awal

d)

Keluar dari program

73.

Keyword break dalam perulangan berfungsi untuk...

a)

Melanjutkan ke iterasi berikutnya

b)

Menghentikan perulangan

c)

Mengulang perulangan

d)

Tidak ada fungsi

74.

Perhatikan kode: int i = 0; do { printf("%d ", i); i++; } while(i < 3); Berapa kali perulangan dilakukan?

a)

2 kali

b)

3 kali

c)

4 kali

d)

Tidak terjadi perulangan

75.

Apa output dari kode berikut: for(int i = 0; i < 3; i++){ for(int j = 0; j < 2; j++){ printf("*"); } }

a)

***

b)

******

76.

Uncounted loop adalah perulangan yang...

a)

Sudah jelas jumlah perulangannya

b)

Tidak jelas berapa kali mengulang

c)

Tidak bisa digunakan

d)

Selalu infinite

77.

Perhatikan kode: int x = 5; while(x < 5) printf("Loop"); Berapa kali "Loop" dicetak?

a)

0 kali

b)

1 kali

c)

5 kali

d)

Infinite

78.

Indeks array pada bahasa C dimulai dari angka...

a)

1

b)

0

c)

-1

d)

Bebas

79.

Cara mendeklarasikan array integer dengan 5 elemen yang benar adalah...

a)

int array[5];

b)

array int[5];

c)

int [5]array;

d)

int array(5);

80.

30. Perhatikan kode: int nilai[3] = {10, 20, 30}; printf("%d", nilai[1]); Output yang dihasilkan adalah...

a)

20

b)

10

c)

30

d)

0

81.

Cara mengubah nilai array pada indeks ke-2 adalah...

a)

array[2] = nilai_baru;

b)

array(2) = nilai_baru;

c)

array.2 = nilai_baru;

d)

array->2 = nilai_baru;

82.

Fungsi sizeof(array) / sizeof(*array) digunakan untuk...

a)

Mengambil nilai array

b)

Menghitung panjang array

c)

Menghapus array

d)

Mengurutkan array

83.

Array dua dimensi biasanya digunakan untuk membuat...

a)

String

b)

Matriks

c)

Pointer

d)

Fungsi

84.

Cara mendeklarasikan array 2 dimensi 3x3 yang benar adalah...

a)

int matrix[3,3];

b)

int matrix[3][3];

c)

int matrix(3)(3);

d)

int [3][3]matrix;

85.

Perhatikan kode: char huruf[5] = {'A', 'B', 'C', 'D', 'E'}; huruf[2] = 'Z'; printf("%c", huruf[2]); Output yang dihasilkan adalah...

a)

A. A

b)

B. C

c)

C. Z

d)

D. Error

86.

Diberikan kode berikut: int arr[3] = {5, 10, 15}; int sum = 0; for(int i = 0; i < 3; i++) sum += arr[i]; Nilai sum adalah...

a)

A. 15

b)

B. 20

c)

C. 30

d)

D. 35

87.

Cara mengakses elemen array 2D pada baris ke-1 kolom ke-2 adalah...

a)

array[1,2]

b)

array[1][2]

c)

array(1)(2)

d)

array.1.2

88.

Perhatikan kode: int matrix[2][2] = {{1,2}, {3,4}}; printf("%d", matrix[1][0]); Output yang dihasilkan adalah...

a)

A. 1

b)

B. 2

c)

C. 3

d)

D. 4

89.

Apa yang terjadi jika mengakses indeks array di luar batas?

a)

Otomatis dibuat elemen baru

b)

Menghasilkan nilai 0

c)

Undefined behavior/error

d)

Tidak terjadi apa-apa

90.

Fungsi yang tidak mengembalikan nilai menggunakan tipe data...

a)

int

b)

void

c)

null

d)

empty

91.

Keyword untuk mengembalikan nilai dari fungsi adalah...

a)

back

b)

return

c)

give

d)

output

92.

Perhatikan kode: int tambah(int a, int b){ return a + b; } Cara memanggil fungsi di atas yang benar adalah...

a)

tambah(5, 3);

b)

tambah[5, 3];

c)

tambah{5, 3};

d)

tambah<5, 3>;

93.

Parameter dalam fungsi adalah...

a)

Nilai yang dikembalikan

b)

Nama fungsi

c)

Variabel untuk menyimpan input

d)

Tipe data fungsi

94.

Apa yang dimaksud dengan void pada fungsi di atas?

a)

Fungsi error

b)

Fungsi tidak mengembalikan nilai

c)

Fungsi tidak memiliki parameter

d)

Fungsi tidak bisa dipanggil

95.

Fungsi rekursif adalah fungsi yang...

a)

Tidak memiliki parameter

b)

Memanggil fungsi lain

c)

Memanggil dirinya sendiri

d)

Tidak bisa dipanggil

96.

Variabel lokal adalah variabel yang...

a)

Dapat diakses di semua fungsi

b)

Hanya dapat diakses di dalam fungsi itu sendiri

c)

Tidak memiliki nilai

d)

Tidak bisa diubah

97.

Variabel global adalah variabel yang...

a)

Hanya ada di fungsi main

b)

Dapat diakses dari semua fungsi

c)

Tidak memiliki tipe data

d)

Selalu bernilai 0

98.

Pass by reference menggunakan simbol...

a)

&

b)

*

c)

#

d)

@

99.

Perhatikan kode: int kali(int x){ return x * 2; } int hasil = kali(5); Nilai hasil adalah...

a)

5

b)

7

c)

10

d)

15

100.

Fungsi main() adalah...

a)

Fungsi opsional

b)

Fungsi yang dieksekusi pertama kali

c)

Fungsi untuk input

d)

Fungsi untuk output