Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Pemrograman dan Algoritma Dasar

Total questions: 15

Worksheet time: 8mins

Name
Class
Date
1.

Apa yang perlu diperhatikan programmer dalam membuat sebuah fungsi rekursif?

a)

algoritma rekursif tidak memerlukan ambang batas

b)

kondisi batas yang menghentikan proses rekursif

c)

Algoritma rekursi tidak memiliki kondisi dasar.

d)

Contoh algoritma iterasi adalah fungsi untuk menghitung faktorial.

2.

Jelaskan prinsip dasar dari metode greedy!

a)

Memilih solusi terbaik global tanpa mempertimbangkan langkah-langkah sebelumnya.

b)

Menggunakan pendekatan brute force untuk menemukan solusi optimal.

c)

Mengabaikan solusi lokal dan fokus pada hasil akhir saja.

d)

Prinsip dasar dari metode greedy adalah memilih solusi terbaik lokal pada setiap langkah.

3.

Apa yang dimaksud sebagai masalah optimalisasi pada pemograman dinamis?

a)

performa lambat, potensi kesalahan runtime.

b)

menemukan nilai yang paling minimum atau maksimum

c)

sulit diimplementasikan

d)

penggunaan memori rendah, kekurangan: tidak fleksibel

4.

Apa yang dimaksud dengan divide and conquer? Berikan contohnya!

a)

Algoritma Bubble Sort yang mengurutkan elemen satu per satu.

b)

Metode brute force yang mencoba semua kemungkinan solusi.

c)

Algoritma Dijkstra yang mencari jalur terpendek dalam graf.

d)

Contoh dari divide and conquer adalah algoritma Merge Sort, yang membagi array menjadi dua bagian, mengurutkan masing-masing bagian, dan kemudian menggabungkannya kembali.

5.

Jelaskan konsep runut balik dalam pemrograman!

a)

Konsep runut balik dalam pemrograman adalah teknik untuk kembali ke langkah sebelumnya dalam eksekusi program.

b)

Konsep runut balik adalah metode untuk mempercepat eksekusi program.

c)

Teknik runut balik hanya berlaku untuk bahasa pemrograman tertentu.

d)

Runut balik digunakan untuk mengoptimalkan penggunaan memori dalam program.

6.

Bagaimana cara kerja algoritma rekursi?

a)

Algoritma rekursi selalu menghasilkan hasil yang lebih cepat daripada algoritma iteratif.

b)

Algoritma rekursi memecah masalah menjadi sub-masalah dan memanggil dirinya sendiri.

c)

Algoritma rekursi tidak dapat memecah masalah menjadi bagian yang lebih kecil.

d)

Algoritma rekursi hanya menggunakan loop untuk menyelesaikan masalah.

7.

Apa perbedaan antara greedy dan pemrograman dinamis?

a)

Greedy memilih solusi lokal terbaik, sedangkan pemrograman dinamis menyimpan hasil submasalah untuk efisiensi.

b)

Greedy hanya digunakan untuk masalah yang sederhana, sedangkan pemrograman dinamis untuk yang kompleks.

c)

Pemrograman dinamis selalu lebih cepat daripada greedy.

d)

Greedy menyimpan semua solusi yang mungkin, sedangkan pemrograman dinamis tidak.

8.

Sebutkan langkah-langkah dalam metode divide and conquer!

a)

1. Memecah masalah, 2. Selesaikan, 3. menyatukan solusi

b)

1. Inisialisasi, 2. Eksekusi, 3. Penyelesaian

c)

1. Desain, 2. Pengujian, 3. Dokumentasi

d)

1. Analisis, 2. Implementasi, 3. Evaluasi

9.

Berikan contoh masalah yang dapat diselesaikan dengan algoritma greedy!

a)

Masalah pemilihan aktivitas (Activity Selection Problem)

b)

Masalah pengurutan (Sorting Problem)

c)

Masalah pencarian jalur terpendek (Shortest Path Problem)

d)

Masalah knapsack (Knapsack Problem)

10.

Apa yang dimaksud dengan pemrograman dinamis?

a)

algoritma yang memanggil dirinya sendir

b)

algoritma yang membuat pilihan terbaik setiap waktu

c)

algoritma yang memecah masalah kompleks menjadi masalah yang lebih kecil dan sederhana

d)

algoritma yang menguji setiap kemungkinan solusi

11.

Jelaskan bagaimana runut balik dapat digunakan dalam pemecahan masalah!

a)

Runut balik tidak dapat diterapkan pada permainan strategi.

b)

Runut balik hanya digunakan untuk masalah aritmatika sederhana.

c)

Runut balik hanya berguna untuk masalah yang tidak melibatkan kombinasi.

d)

Runut balik dapat digunakan untuk mencari solusi dari masalah kombinatorial, seperti teka-teki, permainan, dan masalah optimasi.

12.

Sebutkan contoh algoritma yang menggunakan metode divide and conquer!

a)

Depth First Search

b)

Selection Sort

c)

Bubble Sort

d)

Merge Sort, Quick Sort, Binary Search

13.

Apa itu memoization dalam konteks pemrograman dinamis?

a)

Memoization digunakan untuk mempercepat proses input pengguna.

b)

Memoization adalah cara untuk menghapus fungsi yang tidak diperlukan.

c)

Memoization adalah teknik untuk mengubah kode menjadi lebih kompleks.

d)

Memoization adalah teknik untuk menyimpan hasil perhitungan fungsi agar tidak dihitung ulang.

14.

apa yang dimaksud dengan stack pada algoritma rekursi?

a)

Stack adalah panggilan rekursif tanpa kondisi penghentian yang tepat.

b)

Stack ialah rangkaian data yang nilainya dapat digantikan oleh nilai-nilai baru setiap proses rekursi dijalankan

c)

Stack hanya terjadi pada bahasa pemrograman tertentu.

d)

Stack adalah kesalahan dalam pengaturan variabel global.

15.

pada kasus menentukan jalan terdekat, metode seperti apa yang digunakan algoritma greedy dalam menentukan jalur tersingkat?

a)

memilih jalur terpanjang diantara beberapa pilihan

b)

menentukan jalur terbaik diantara dua pilihan.

c)

fokus pada hasil akhir dan memilih jalur tersingkat

d)

semua salah