WorksheetsPemrograman dan Algoritma Dasar
Total questions: 15
Worksheet time: 8mins
Apa yang perlu diperhatikan programmer dalam membuat sebuah fungsi rekursif?
algoritma rekursif tidak memerlukan ambang batas
kondisi batas yang menghentikan proses rekursif
Algoritma rekursi tidak memiliki kondisi dasar.
Contoh algoritma iterasi adalah fungsi untuk menghitung faktorial.
Jelaskan prinsip dasar dari metode greedy!
Memilih solusi terbaik global tanpa mempertimbangkan langkah-langkah sebelumnya.
Menggunakan pendekatan brute force untuk menemukan solusi optimal.
Mengabaikan solusi lokal dan fokus pada hasil akhir saja.
Prinsip dasar dari metode greedy adalah memilih solusi terbaik lokal pada setiap langkah.
Apa yang dimaksud sebagai masalah optimalisasi pada pemograman dinamis?
performa lambat, potensi kesalahan runtime.
menemukan nilai yang paling minimum atau maksimum
sulit diimplementasikan
penggunaan memori rendah, kekurangan: tidak fleksibel
Apa yang dimaksud dengan divide and conquer? Berikan contohnya!
Algoritma Bubble Sort yang mengurutkan elemen satu per satu.
Metode brute force yang mencoba semua kemungkinan solusi.
Algoritma Dijkstra yang mencari jalur terpendek dalam graf.
Contoh dari divide and conquer adalah algoritma Merge Sort, yang membagi array menjadi dua bagian, mengurutkan masing-masing bagian, dan kemudian menggabungkannya kembali.
Jelaskan konsep runut balik dalam pemrograman!
Konsep runut balik dalam pemrograman adalah teknik untuk kembali ke langkah sebelumnya dalam eksekusi program.
Konsep runut balik adalah metode untuk mempercepat eksekusi program.
Teknik runut balik hanya berlaku untuk bahasa pemrograman tertentu.
Runut balik digunakan untuk mengoptimalkan penggunaan memori dalam program.
Bagaimana cara kerja algoritma rekursi?
Algoritma rekursi selalu menghasilkan hasil yang lebih cepat daripada algoritma iteratif.
Algoritma rekursi memecah masalah menjadi sub-masalah dan memanggil dirinya sendiri.
Algoritma rekursi tidak dapat memecah masalah menjadi bagian yang lebih kecil.
Algoritma rekursi hanya menggunakan loop untuk menyelesaikan masalah.
Apa perbedaan antara greedy dan pemrograman dinamis?
Greedy memilih solusi lokal terbaik, sedangkan pemrograman dinamis menyimpan hasil submasalah untuk efisiensi.
Greedy hanya digunakan untuk masalah yang sederhana, sedangkan pemrograman dinamis untuk yang kompleks.
Pemrograman dinamis selalu lebih cepat daripada greedy.
Greedy menyimpan semua solusi yang mungkin, sedangkan pemrograman dinamis tidak.
Sebutkan langkah-langkah dalam metode divide and conquer!
1. Memecah masalah, 2. Selesaikan, 3. menyatukan solusi
1. Inisialisasi, 2. Eksekusi, 3. Penyelesaian
1. Desain, 2. Pengujian, 3. Dokumentasi
1. Analisis, 2. Implementasi, 3. Evaluasi
Berikan contoh masalah yang dapat diselesaikan dengan algoritma greedy!
Masalah pemilihan aktivitas (Activity Selection Problem)
Masalah pengurutan (Sorting Problem)
Masalah pencarian jalur terpendek (Shortest Path Problem)
Masalah knapsack (Knapsack Problem)
Apa yang dimaksud dengan pemrograman dinamis?
algoritma yang memanggil dirinya sendir
algoritma yang membuat pilihan terbaik setiap waktu
algoritma yang memecah masalah kompleks menjadi masalah yang lebih kecil dan sederhana
algoritma yang menguji setiap kemungkinan solusi
Jelaskan bagaimana runut balik dapat digunakan dalam pemecahan masalah!
Runut balik tidak dapat diterapkan pada permainan strategi.
Runut balik hanya digunakan untuk masalah aritmatika sederhana.
Runut balik hanya berguna untuk masalah yang tidak melibatkan kombinasi.
Runut balik dapat digunakan untuk mencari solusi dari masalah kombinatorial, seperti teka-teki, permainan, dan masalah optimasi.
Sebutkan contoh algoritma yang menggunakan metode divide and conquer!
Depth First Search
Selection Sort
Bubble Sort
Merge Sort, Quick Sort, Binary Search
Apa itu memoization dalam konteks pemrograman dinamis?
Memoization digunakan untuk mempercepat proses input pengguna.
Memoization adalah cara untuk menghapus fungsi yang tidak diperlukan.
Memoization adalah teknik untuk mengubah kode menjadi lebih kompleks.
Memoization adalah teknik untuk menyimpan hasil perhitungan fungsi agar tidak dihitung ulang.
apa yang dimaksud dengan stack pada algoritma rekursi?
Stack adalah panggilan rekursif tanpa kondisi penghentian yang tepat.
Stack ialah rangkaian data yang nilainya dapat digantikan oleh nilai-nilai baru setiap proses rekursi dijalankan
Stack hanya terjadi pada bahasa pemrograman tertentu.
Stack adalah kesalahan dalam pengaturan variabel global.
pada kasus menentukan jalan terdekat, metode seperti apa yang digunakan algoritma greedy dalam menentukan jalur tersingkat?
memilih jalur terpanjang diantara beberapa pilihan
menentukan jalur terbaik diantara dua pilihan.
fokus pada hasil akhir dan memilih jalur tersingkat
semua salah
