Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Algoritma dan Pemrograman

Total questions: 14

Worksheet time: 7mins

Name
Class
Date
1.

Prinsip utama dari algoritma Greedy dalam pemecahan masalah adalah:

a)

Menguji semua kemungkinan submasalah.

b)

Membagi masalah menjadi submasalah yang tidak tumpang tindih.

c)

Menggunakan memorisasi untuk menyimpan solusi submasalah.

d)

Mencari solusi yang optimal secara keseluruhan dengan meninjau ke belakang.

e)

Membuat pilihan optimal secara lokal pada setiap langkah dengan harapan mendapatkan solusi global yang optimal.

2.

Apa yang WAJIB dimiliki oleh fungsi rekursif agar tidak terjadi infinite loop (pengulangan tak terbatas)?

a)

Struktur data Stack.

b)

Penggunaan variabel global.

c)

Panggilan fungsi yang sama di badan fungsi.

d)

Kondisi yang membuat waktu eksekusi menjadi O(n).

e)

Kondisi basis (base case) yang menghentikan panggilan rekursif.

3.

Algoritma Pemrograman Dinamis (Dynamic Programming) paling cocok digunakan untuk masalah yang menunjukkan dua properti utama, yaitu:

a)

Kecepatan dan kemudahan implementasi.

b)

Pilihan Greedy dan rekursi sederhana.

c)

Masalah yang tidak memiliki struktur optimal.

d)

Pemanfaatan Stack dan Queue.

e)

Substruktur optimal dan submasalah tumpang tindih.

4.

Kelemahan utama algoritma Greedy adalah:

a)

Selalu membutuhkan waktu eksekusi yang lama (O(n^2)).

b)

Tidak dapat diterapkan pada masalah optimasi.

c)

Memerlukan memori yang sangat besar untuk memorisasi.

d)

Sangat sulit diimplementasikan menggunakan bahasa pemrograman.

e)

Tidak selalu menjamin solusi global yang optimal.

5.

Teknik yang digunakan oleh Pemrograman Dinamis untuk menghindari perhitungan berulang dari submasalah yang sama adalah:

a)

Divide and Conquer.

b)

Backtracking.

c)

Branch and Bound.

d)

Pencarian Linear.

e)

Memoization atau Tabulation.

6.

Salah satu contoh masalah klasik yang secara alami dapat dipecahkan menggunakan rekursi adalah:

a)

Travelling Salesman Problem.

b)

Sorting (misalnya Bubble Sort).

c)

Mencari elemen terkecil dalam Array.

d)

Hashing.

e)

Menghitung faktorial (n!) atau barisan Fibonacci.

7.

Apa perbedaan mendasar antara algoritma Greedy dan Dynamic Programming dalam memecahkan masalah optimasi?

a)

Greedy selalu lebih cepat daripada DP.

b)

DP menggunakan rekursi, sedangkan Greedy tidak.

c)

Greedy hanya berlaku untuk masalah sederhana.

d)

DP selalu menghasilkan solusi yang tidak optimal.

e)

Greedy membuat pilihan lokal tanpa melihat solusi submasalah sebelumnya, sementara DP menggabungkan solusi dari submasalah tumpang tindih.

8.

Dalam struktur data, proses panggilan fungsi rekursif diimplementasikan dan dikelola menggunakan:

a)

Queue (Antrian).

b)

Heap.

c)

Tree (Pohon).

d)

Hash Table.

e)

Stack (Tumpukan).

9.

Masalah berikut ini yang merupakan contoh aplikasi umum dari Pemrograman Dinamis adalah:

a)

Penemuan rute terpendek di graph tanpa bobot.

b)

Selection Sort.

c)

Depth-First Search (DFS).

d)

Pencarian Biner.

e)

The Knapsack Problem (0/1 Knapsack).

10.

Algoritma Greedy seringkali melibatkan pengurutan data untuk:

a)

Mempermudah perhitungan alokasi memori.

b)

Mempercepat proses I/O.

c)

Mengurangi jumlah panggilan rekursif.

d)

Menghindari masalah overflow.

e)

Memastikan pilihan optimal lokal dapat dibuat dengan cepat.

11.

Anda memiliki daftar kegiatan dengan waktu mulai dan waktu selesai. Anda ingin memilih kegiatan sebanyak mungkin tanpa ada yang saling tumpang tindih. Misalnya, Aktivitas A (mulai jam 9, selesai jam 10) dan Aktivitas B (mulai jam 9:30, selesai jam 11) tumpang tindih. Strategi Greedy yang paling efektif untuk masalah pemilihan aktivitas (Activity Selection Problem) ini adalah:

a)

Memilih aktivitas dengan waktu mulai paling awal.

b)

Memilih aktivitas dengan durasi terpendek.

c)

Memilih aktivitas dengan waktu selesai paling lambat.

d)

Memilih aktivitas dengan waktu selesai paling awal terlebih dahulu.

e)

Memilih aktivitas yang paling sering muncul.

12.

Mengapa sebuah fungsi rekursif wajib memiliki Kondisi Basis (Base Case)?

a)

Untuk menjamin penggunaan memori Heap yang efisien.

b)

Untuk mempercepat waktu komputasi menjadi O(n).

c)

Untuk memastikan fungsi melakukan panggilan dirinya sendiri.

d)

Untuk mencegah Stack Overflow (pengulangan tak terbatas).

e)

Agar dapat menggunakan teknik Memoization.

13.

Dalam konteks keamanan komputer, Algoritma Brute Force umumnya merujuk pada teknik:

a)

Memecahkan kata sandi dengan menebak setiap kemungkinan kombinasi karakter.

b)

Mengenkripsi data dengan kunci acak.

c)

Menggunakan sertifikat digital untuk otentikasi.

d)

Melakukan Hashing untuk mempercepat pencarian data.

e)

Membagi jaringan menjadi subnet yang lebih kecil.

14.

Ketika seorang programmer menggunakan teknik Memoization dalam Pemrograman Dinamis (DP), data apa yang disimpan (dicatat) untuk menghindari perhitungan berulang?

a)

Seluruh urutan pemanggilan fungsi rekursif (Call Stack).

b)

Waktu eksekusi setiap submasalah.

c)

Solusi dari submasalah yang telah diselesaikan.

d)

Jumlah total langkah yang diambil.

e)

Pilihan Greedy yang dibuat pada langkah sebelumnya.