Worksheetsgreedy
Total questions: 99
Worksheet time: 8hrs 4mins
Apabila pada suatu fungsi rekursif tidak didefinisikan base case, maka yang terjadi adalah...
program hanya berjalan sekali
program berhenti dan mengembalikan pesan error
terjadi infinite loop (Recursion Error)
berjalan sebanyak k kali, dimana k adalah argumen fungsi rekursif tersebut
Berjalan sebanyak n yang dimasukkan
jenis algoritma yang memungkinkan sebuah fungsi atau prosedur untuk memanggil dirinya sendiri dengan input yang semakin menyempit, berikut adalah pengertian dari algoritma ...
rekursi
greedy
problem solving
testing
coding
Yang menunjukkan nilai awal dari barisan tersebut disebut . . .
basis
greedy
rekursi
testing
coding
Tentukan suku ke-6 dari barisan yang didefinisikan:
10
11
21
28
30
Algoritma rekursif terdiri dari dari ....
rekruens & perulangan
basis & rekruens
basis & nilai dasar
rekursif & nilai dasar
rekrusi & rekruens
Tentukan suku ke-8 dari barisan yang didefinisikan barisan tersebut dimulai dengan
nilai 1, 3, ...
5
9
13
15
17
Tebak output program berikut ini
-1
RecursionError
2
0
1
Berapakah Nilai dari "X", jika menggunakan metode rekursi?
7
19
17
21
16
Tebak output program berikut ini
120
RecursionError
20
40
10
Berikut merupakan notasi rekursif untuk bilangan ganjil.
Tentukan suku ke-5 dari notasi rekursif tersebut.
(a)
Anda ingin menggunakan rekursi untuk menghitung nilai faktorial dari suatu bilangan bulat positif n. Apa yang harus menjadi kasus dasar dalam fungsi rekursi ini?
Ketika n sama dengan 1 maka hasilnya 1
Ketika n sama dengan 0 maka hasilnya 0
Ketika n sama dengan 3 maka hasilnya 1
Ketika n sama dengan 10 maka hasilnya 10
Tidak ada kasus dasar untuk faktorial.
Barisan ini dimulai dengan nilai 1 untuk nilai berikutnya dihitung dengan cara menjumlahkan 2 nilai sebelumnya pada barisan tersebut {ai=1,1,…………. , barisanatau deret ke 7 dari deret bilangan diatas adalah
4
3
13
8
21
Persamaan iterasi dan rekursi?
Merupakan bentuk perulangan/loop
Harus menggunakan prosedur/fungsi
Menggunakan stack sebagai memori
Proses di dalamnya terjadi secara sekuensial/runtut
Berapakah nilai dari fungsi(4)
1
2
3
4
5
Dibawah ini merupakan ilustrasi rekursi, kecuali?
Dalam rekursi, apa yang terjadi jika kasus dasar tidak didefinisikan atau tidak tercapai?
Fungsi rekursi akan menghasilkan hasil yang benar.
Fungsi rekursi akan memanggil dirinya sendiri tanpa henti.
Fungsi rekursi akan memberikan pesan kesalahan (error).
Fungsi rekursi akan berhenti tanpa memberikan hasil.
Fungsi rekursi akan menghasilkan hasil yang acak.
Anda ingin menggunakan rekursi untuk mencari bilangan Fibonacci ke-n dalam deret Fibonacci. Apa yang menjadi kasus dasar (base case) dalam fungsi rekursi ini?
Ketika n sama dengan 0.
Ketika n sama dengan 1.
Ketika n sama dengan 3.
Ketika n sama dengan 10.
Tidak ada kasus dasar untuk deret Fibonacci.
Apa yang dimaksud dengan rekursi?
Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan dari nilai-nilai sebelumnya
Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang tidak mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan dari nilai-nilai sebelumnya
Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan secara acak
Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang tidak mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan secara acak
Yang dimaksud dengan algoritma greedy adalah …
Algoritma yang memilih solusi terbaik di setiap langkah berdasarkan informasi lokal untuk mencapai solusi optimal global.
Algoritma yang mencoba memecahkan masalah dengan memeriksa sebagian kemungkinan solusi.
Algoritma yang mencoba mencari solusi dengan cara mencoba semua kemungkinan dan memilih solusi terbaik di akhir.
Algoritma yang menghindari keputusan berdasarkan solusi lokal dan lebih mengutamakan solusi yang sudah ada.
Algoritma yang selalu memilih solusi dengan biaya paling rendah pada setiap langkah.
Tujuan utama dari algoritma greedy …
Mengoptimalkan penggunaan memori dalam komputer.
Menyelesaikan masalah dengan langkah-langkah yang optimal pada setiap tahap.
Mengurangi jumlah langkah yang diperlukan untuk menyelesaikan masalah.
Memecahkan masalah dengan memilih solusi terbaik secara global.
Mencari solusi yang selalu memberikan hasil terbaik secara keseluruhan.
Dengan algoritma greedy, kita diberikan masalah untuk sejumlah koin dengan denominasi yang berbeda dan suatu jumlah uang yang ingin dicapai. Bagaimana algoritma greedy akan memilih koin untuk mencapai jumlah tersebut …
Pilih koin dengan nilai terkecil terlebih dahulu.
Pilih koin dengan nilai terbesar terlebih dahulu.
Pilih koin yang paling sering digunakan oleh orang lain.
Pilih koin secara acak.
Pilih koin berdasarkan urutan waktu kedatangan.
Greedy secara harfiah berarti …
Cerdas atau pintar
Serakah atau rakus
Cepat atau tangkas
Bijaksana atau hati-hati
Sederhana atau efisien
Dalam masalah pembagian pekerjaan ke mesin dengan kapasitas terbatas, Anda memiliki lima pekerjaan dengan durasi waktu sebagai berikut:
-
Jika kapasitas tiap mesin adalah 5 jam, mana urutan pekerjaan yang pertama kali dipilih untuk dimasukkan ke mesin yang masih di bawah kapasitas mesin 5 jam …
Pekerjaan 1, Pekerjaan 2
Pekerjaan 3, Pekerjaan 5
Pekerjaan 1, Pekerjaan 3
Pekerjaan 4, Pekerjaan 1
Pekerjaan 2, Pekerjaan 5
Tugas Anda adalah mengalokasikan pekerjaan ke mesin, dengan kapasitas mesin 6 jam. Berikut adalah daftar pekerjaan dengan waktu pengerjaannya:
-
Menggunakan algoritma greedy, tentukan pekerjaan mana yang akan dimasukkan dalam mesin pertama …
Pekerjaan 1, Pekerjaan 5
Pekerjaan 1, Pekerjaan 2
Pekerjaan 2, Pekerjaan 5
Pekerjaan 3, Pekerjaan 1
Pekerjaan 4, Pekerjaan 5
Budi ingin membawa beberapa ekor ikan yang sudah tersimpan dalam kantong-kantong plastik untuk diangkut di dalam mobilnya. Terdapat 8 buah kantong dengan yang berisi masing-masing 3, 5, 2, 8, 4, 6, 6, dan 3 ekor ikan. Namun sayangnya, mobilnya hanya mampu membawah 4 buah kantong. Kantong-kantong manakah yang harus dibawa oleh Budi agar jumlah ikan yang dibawanya sebanyak mungkin …
8 + 6 + 6 + 5
6 + 5 + 4 + 3
8 + 6 + 5 + 4
6 + 6 + 5 + 4
8 + 6 + 5 + 3
Terdapat 8 buah kantong dengan yang berisi masing-masing 3, 5, 2, 8, 4, 6, 6, dan 3 ekor ikan. Budi harus membawa sedikitnya 15 ekor ikan. Tentukan jumlah kantong terkecil yang harus dibawa oleh Budi, agar terdapat minimal 15 ekor ikan yang terbawa …
5 kantong
4 kantong
3 kantong
2 kantong
1 kantong
Dalam suatu proyek, ada beberapa pekerjaan yang harus diselesaikan dengan durasi yang berbeda-beda, namun hanya ada satu mesin yang bisa digunakan untuk menyelesaikan pekerjaan tersebut. Untuk mengoptimalkan penggunaan mesin, algoritma greedy memilih pekerjaan berdasarkan durasi yang paling singkat terlebih dahulu. Setelah beberapa pekerjaan diselesaikan, terdapat beberapa pekerjaan yang tersisa dengan durasi yang lebih panjang. Jika kita mengganti strategi dan memilih pekerjaan dengan durasi lebih panjang terlebih dahulu, apa yang kemungkinan akan terjadi terhadap total waktu yang diperlukan untuk menyelesaikan semua pekerjaan …
Waktu total yang diperlukan akan lebih singkat karena pekerjaan yang lebih lama diselesaikan lebih dulu.
Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih lama diselesaikan lebih dulu, tetapi dapat mengurangi waktu tunda untuk pekerjaan lainnya.
Waktu total yang diperlukan tidak akan berubah, karena algoritma greedy tetap efisien dalam memilih pekerjaan.
Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih panjang mengurangi waktu kosong untuk pekerjaan berikutnya.
Waktu total yang diperlukan akan tetap sama, namun pekerjaan yang lebih lama lebih mudah diselesaikan setelah pekerjaan pendek selesai.
Anda diberikan sejumlah barang dengan nilai dan bobot yang berbeda serta kapasitas tas yang terbatas. Anda menggunakan algoritma greedy dengan memilih barang berdasarkan rasio nilai terhadap bobot terbesar terlebih dahulu. Namun, setelah Anda menyelesaikan pemilihan barang pertama, Anda menemukan bahwa kapasitas tas yang tersisa tidak cukup untuk barang berikutnya yang memiliki rasio nilai terhadap bobot yang lebih kecil. Apa yang mungkin menyebabkan algoritma greedy gagal dalam memberikan solusi optimal untuk masalah ini …
Algoritma greedy memilih barang dengan rasio nilai terhadap bobot terbesar, yang tidak selalu mencerminkan kombinasi optimal
Algoritma greedy tidak mempertimbangkan total nilai dari semua barang yang dipilih, hanya berdasarkan barang yang memiliki rasio terbaik.
Rasio nilai terhadap bobot barang pertama tidak mencerminkan nilai total tas yang akan diisi.
Algoritma greedy mengabaikan barang dengan bobot ringan karena lebih memilih barang dengan bobot besar.
Kapasitas tas yang terbatas menyebabkan algoritma greedy gagal memilih barang dengan cara yang optimal, meskipun menggunakan rasio terbaik.
Yang dimaksud dengan algoritma greedy adalah …
Algoritma yang memilih solusi terbaik di setiap langkah berdasarkan informasi lokal untuk mencapai solusi optimal global.
Algoritma yang mencoba memecahkan masalah dengan memeriksa sebagian kemungkinan solusi.
Algoritma yang mencoba mencari solusi dengan cara mencoba semua kemungkinan dan memilih solusi terbaik di akhir.
Algoritma yang menghindari keputusan berdasarkan solusi lokal dan lebih mengutamakan solusi yang sudah ada.
Algoritma yang selalu memilih solusi dengan biaya paling rendah pada setiap langkah.
Tujuan utama dari algoritma greedy …
Mengoptimalkan penggunaan memori dalam komputer.
Menyelesaikan masalah dengan langkah-langkah yang optimal pada setiap tahap.
Mengurangi jumlah langkah yang diperlukan untuk menyelesaikan masalah.
Memecahkan masalah dengan memilih solusi terbaik secara global.
Mencari solusi yang selalu memberikan hasil terbaik secara keseluruhan.
Dengan algoritma greedy, kita diberikan masalah untuk sejumlah koin dengan denominasi yang berbeda dan suatu jumlah uang yang ingin dicapai. Bagaimana algoritma greedy akan memilih koin untuk mencapai jumlah tersebut …
Pilih koin dengan nilai terkecil terlebih dahulu.
Pilih koin dengan nilai terbesar terlebih dahulu.
Pilih koin yang paling sering digunakan oleh orang lain.
Pilih koin secara acak.
Pilih koin berdasarkan urutan waktu kedatangan.
Greedy secara harfiah berarti …
Cerdas atau pintar
Serakah atau rakus
Cepat atau tangkas
Bijaksana atau hati-hati
Sederhana atau efisien
Dalam masalah pembagian pekerjaan ke mesin dengan kapasitas terbatas, Anda memiliki lima pekerjaan dengan durasi waktu sebagai berikut:
-
Jika kapasitas tiap mesin adalah 5 jam, mana urutan pekerjaan yang pertama kali dipilih untuk dimasukkan ke mesin yang masih di bawah kapasitas mesin 5 jam …
Pekerjaan 1, Pekerjaan 2
Pekerjaan 3, Pekerjaan 5
Pekerjaan 1, Pekerjaan 3
Pekerjaan 4, Pekerjaan 1
Pekerjaan 2, Pekerjaan 5
Tugas Anda adalah mengalokasikan pekerjaan ke mesin, dengan kapasitas mesin 6 jam. Berikut adalah daftar pekerjaan dengan waktu pengerjaannya:
-
Menggunakan algoritma greedy, tentukan pekerjaan mana yang akan dimasukkan dalam mesin pertama …
Pekerjaan 1, Pekerjaan 5
Pekerjaan 1, Pekerjaan 2
Pekerjaan 2, Pekerjaan 5
Pekerjaan 3, Pekerjaan 1
Pekerjaan 4, Pekerjaan 5
Budi ingin membawa beberapa ekor ikan yang sudah tersimpan dalam kantong-kantong plastik untuk diangkut di dalam mobilnya. Terdapat 8 buah kantong dengan yang berisi masing-masing 3, 5, 2, 8, 4, 6, 6, dan 3 ekor ikan. Namun sayangnya, mobilnya hanya mampu membawah 4 buah kantong. Kantong-kantong manakah yang harus dibawa oleh Budi agar jumlah ikan yang dibawanya sebanyak mungkin …
8 + 6 + 6 + 5
6 + 5 + 4 + 3
8 + 6 + 5 + 4
6 + 6 + 5 + 4
8 + 6 + 5 + 3
Terdapat 8 buah kantong dengan yang berisi masing-masing 3, 5, 2, 8, 4, 6, 6, dan 3 ekor ikan. Budi harus membawa sedikitnya 15 ekor ikan. Tentukan jumlah kantong terkecil yang harus dibawa oleh Budi, agar terdapat minimal 15 ekor ikan yang terbawa …
5 kantong
4 kantong
3 kantong
2 kantong
1 kantong
Dalam suatu proyek, ada beberapa pekerjaan yang harus diselesaikan dengan durasi yang berbeda-beda, namun hanya ada satu mesin yang bisa digunakan untuk menyelesaikan pekerjaan tersebut. Untuk mengoptimalkan penggunaan mesin, algoritma greedy memilih pekerjaan berdasarkan durasi yang paling singkat terlebih dahulu. Setelah beberapa pekerjaan diselesaikan, terdapat beberapa pekerjaan yang tersisa dengan durasi yang lebih panjang. Jika kita mengganti strategi dan memilih pekerjaan dengan durasi lebih panjang terlebih dahulu, apa yang kemungkinan akan terjadi terhadap total waktu yang diperlukan untuk menyelesaikan semua pekerjaan …
Waktu total yang diperlukan akan lebih singkat karena pekerjaan yang lebih lama diselesaikan lebih dulu.
Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih lama diselesaikan lebih dulu, tetapi dapat mengurangi waktu tunda untuk pekerjaan lainnya.
Waktu total yang diperlukan tidak akan berubah, karena algoritma greedy tetap efisien dalam memilih pekerjaan.
Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih panjang mengurangi waktu kosong untuk pekerjaan berikutnya.
Waktu total yang diperlukan akan tetap sama, namun pekerjaan yang lebih lama lebih mudah diselesaikan setelah pekerjaan pendek selesai.
Anda diberikan sejumlah barang dengan nilai dan bobot yang berbeda serta kapasitas tas yang terbatas. Anda menggunakan algoritma greedy dengan memilih barang berdasarkan rasio nilai terhadap bobot terbesar terlebih dahulu. Namun, setelah Anda menyelesaikan pemilihan barang pertama, Anda menemukan bahwa kapasitas tas yang tersisa tidak cukup untuk barang berikutnya yang memiliki rasio nilai terhadap bobot yang lebih kecil. Apa yang mungkin menyebabkan algoritma greedy gagal dalam memberikan solusi optimal untuk masalah ini …
Algoritma greedy memilih barang dengan rasio nilai terhadap bobot terbesar, yang tidak selalu mencerminkan kombinasi optimal
Algoritma greedy tidak mempertimbangkan total nilai dari semua barang yang dipilih, hanya berdasarkan barang yang memiliki rasio terbaik.
Rasio nilai terhadap bobot barang pertama tidak mencerminkan nilai total tas yang akan diisi.
Algoritma greedy mengabaikan barang dengan bobot ringan karena lebih memilih barang dengan bobot besar.
Kapasitas tas yang terbatas menyebabkan algoritma greedy gagal memilih barang dengan cara yang optimal, meskipun menggunakan rasio terbaik.
Apa yang dimaksud dengan pemrograman dinamis?
Metode untuk menyelesaikan masalah dengan cara perulangan.
Metode penyelesaian masalah yang memecah masalah menjadi sub-masalah yang lebih kecil dan menyimpan hasilnya.
Algoritma untuk mencari nilai maksimal.
Proses pengulangan masalah tanpa optimasi.
Apa ciri khas dari masalah yang bisa diselesaikan dengan pemrograman dinamis?
Hanya bisa digunakan untuk masalah kecil.
Menggunakan banyak memori.
Memiliki sub-masalah yang tumpang tindih.
Selalu menghasilkan solusi non-optimal.
Apa pendekatan yang digunakan dalam pemrograman dinamis?
Rekursif dan Iteratif
Bottom-Up dan Top-Down
Greedy dan Brute Force
Iteratif dan Tabulasi
Pada pendekatan Top-Down, bagaimana cara menghindari perhitungan ulang?
Dengan menggunakan tabel untuk menyimpan hasil sub-masalah.
Dengan melakukan perhitungan ulang secara berulang.
Dengan menggunakan brute force.
Dengan memecah masalah menjadi lebih besar.
Apa yang dimaksud dengan "memoization"?
Teknik perulangan untuk menyelesaikan masalah.
Penyimpanan hasil sub-masalah untuk menghindari perhitungan ulang.
Proses menggunakan memori lebih besar dalam algoritma.
Algoritma greedy yang digunakan untuk menyelesaikan masalah.
Manakah yang merupakan contoh penerapan pemrograman dinamis?
Binary Search
Sorting dengan Quick Sort
Fibonacci dengan memoization
Pencarian string dengan KMP
Apa kekurangan dari pemrograman dinamis?
Tidak dapat menyelesaikan masalah dengan substruktur optimal.
Memori yang digunakan bisa menjadi besar.
Hanya cocok untuk masalah kecil.
Selalu menghasilkan solusi non-optimal.
Dalam pemrograman dinamis, pendekatan Bottom-Up dikenal juga dengan istilah?
Memoization
Tabulation
Rekursif
Greedy
Apa tujuan utama dari menggunakan pemrograman dinamis?
Apa tujuan utama dari menggunakan pemrograman dinamis?
Mempercepat waktu komputasi dengan menghindari perhitungan ulang.
Menghasilkan solusi non-optimal.
Menggunakan lebih banyak memori untuk mempercepat perhitungan.
Mengoptimalkan penggunaan perulangan.
Masalah Fibonacci dapat diselesaikan dengan lebih cepat menggunakan pemrograman dinamis karena...
Fibonacci adalah algoritma yang lambat.
Ada banyak perhitungan ulang pada sub-masalah yang tumpang tindih.
Fibonacci tidak membutuhkan optimasi.
Pemrograman dinamis mempercepat semua algoritma rekursif.
Contoh masalah yang umum diselesaikan dengan pemrograman dinamis adalah...
Sorting
Longest Common Subsequence
Binary Search
Linked List
Pada masalah Knapsack, pemrograman dinamis digunakan untuk...
Menghitung jumlah kombinasi barang yang bisa dimasukkan dalam ransel.
Menghindari perhitungan ulang kombinasi barang yang telah dihitung.
Menentukan cara terbaik untuk mengurutkan barang.
Menggunakan pendekatan brute force untuk mencari solusi.
Pada masalah Tangga (Staircase Problem), berapa banyak cara untuk mendaki ke langkah ke-n menggunakan pemrograman dinamis?
Fibonacci sequence
Sort sequence
Binary search
Randomized sequence
Masalah Edit Distance dapat diselesaikan dengan pemrograman dinamis karena...
Menggunakan teknik brute force.
Hanya memiliki satu solusi.
Memiliki sub-masalah yang tumpang tindih.
Tidak memiliki solusi optimal.
Apa itu rekursi dalam pemrograman?
Rekursi adalah cara untuk menghindari penggunaan fungsi.
Rekursi dalam pemrograman adalah metode di mana fungsi memanggil dirinya sendiri.
Rekursi adalah metode untuk menyimpan data dalam array.
Rekursi adalah teknik untuk mengoptimalkan kode.
Berikan contoh masalah yang dapat diselesaikan dengan rekursi.
Menghitung jumlah elemen dalam array.
Menghitung faktorial bilangan bulat positif.
Mengurutkan daftar angka secara ascending.
Menentukan bilangan prima dari 1 hingga n.
Apa prinsip dasar dari algoritma greedy?
Mempertimbangkan semua kemungkinan sebelum membuat keputusan.
Mengabaikan solusi lokal demi solusi global.
Menggunakan pendekatan brute force untuk mencari solusi.
Memilih opsi terbaik secara lokal pada setiap langkah.
Sebutkan kelebihan dan kekurangan dari pendekatan greedy.
Kelebihan: sederhana, cepat, sering memberikan hasil baik. Kekurangan: tidak selalu optimal, keputusan awal bisa suboptimal.
Kelebihan: memerlukan banyak memori, Kekurangan: selalu memberikan hasil terbaik.
Kelebihan: kompleks, Kekurangan: cepat dan efisien.
Kelebihan: selalu optimal, Kekurangan: lambat dan rumit.
Jelaskan apa yang dimaksud dengan berpikir komputasi.
Berpikir komputasi adalah pendekatan sistematis untuk memecahkan masalah dengan menggunakan konsep dari ilmu komputer.
Berpikir komputasi adalah metode untuk menggambar diagram.
Berpikir komputasi hanya digunakan dalam pemrograman komputer.
Berpikir komputasi adalah cara untuk menghitung angka dengan cepat.
Mengapa berpikir komputasi penting dalam pemecahan masalah?
Berpikir komputasi penting karena memudahkan pemecahan masalah kompleks dengan pendekatan sistematis.
Berpikir komputasi tidak berhubungan dengan pemecahan masalah.
Berpikir komputasi hanya berguna untuk pemrograman.
Berpikir komputasi lebih baik dilakukan secara acak.
Apa itu pemrograman dinamis?
Pemrograman dinamis adalah metode untuk menghindari sub-masalah.
Pemrograman dinamis adalah metode untuk menyelesaikan masalah dengan membagi menjadi sub-masalah dan menyimpan hasilnya.
Pemrograman dinamis hanya digunakan untuk aplikasi web.
Pemrograman dinamis adalah teknik untuk menulis kode secara acak.
Sebutkan perbedaan antara pemrograman dinamis dan rekursi.
Pemrograman dinamis hanya digunakan untuk masalah sederhana.
Rekursi selalu lebih cepat daripada pemrograman dinamis.
Pemrograman dinamis menyimpan hasil sub-masalah, sedangkan rekursi memanggil fungsi secara berulang tanpa penyimpanan.
Pemrograman dinamis tidak dapat digunakan untuk menyelesaikan masalah yang sama dengan rekursi.
Berikan contoh masalah yang dapat diselesaikan dengan pemrograman dinamis.
Masalah pencocokan pola (pattern matching problem)
Masalah pencarian jalur terpendek (shortest path problem)
Masalah knapsack (knapsack problem)
Masalah pengurutan (sorting problem)
Apa yang dimaksud dengan subproblem dalam pemrograman dinamis?
Subproblem adalah masalah yang tidak relevan dengan pemrograman dinamis.
Subproblem adalah masalah lebih kecil yang digunakan untuk menyelesaikan masalah yang lebih besar dalam pemrograman dinamis.
Subproblem adalah bagian dari algoritma yang tidak dapat dipecahkan.
Subproblem adalah solusi akhir dari masalah yang lebih besar.
Jelaskan bagaimana algoritma greedy dapat digunakan dalam masalah knapsack.
Algoritma greedy memilih item secara acak tanpa mempertimbangkan nilai atau berat.
Algoritma greedy hanya dapat digunakan untuk masalah knapsack 0/1.
Algoritma greedy mengutamakan item dengan berat lebih rendah tanpa memperhatikan nilai.
Algoritma greedy dapat digunakan dalam masalah knapsack dengan memilih item berdasarkan rasio nilai terhadap beratnya.
Apa itu memoization dalam konteks pemrograman dinamis?
Memoization adalah teknik optimasi untuk menyimpan hasil fungsi yang telah dihitung.
Memoization adalah metode untuk menghapus fungsi yang tidak terpakai.
Memoization adalah cara untuk mempercepat proses input data.
Memoization adalah teknik untuk mengubah algoritma menjadi lebih kompleks.
Sebutkan langkah-langkah dalam menyusun algoritma rekursif.
1. Tentukan algoritma, 2. Buat diagram alur, 3. Uji coba algoritma, 4. Dokumentasikan hasil, 5. Implementasikan kode.
1. Identifikasi variabel, 2. Buat fungsi utama, 3. Tentukan batasan, 4. Uji coba dengan data, 5. Optimalkan performa.
1. Rancang antarmuka, 2. Kembangkan modul, 3. Lakukan pengujian unit, 4. Integrasikan sistem, 5. Rilis produk.
1. Identifikasi masalah, 2. Tentukan kondisi dasar, 3. Definisikan langkah rekursif, 4. Gabungkan hasil, 5. Uji algoritma.
Apa yang dimaksud dengan optimal substructure dalam algoritma?
Optimal substructure adalah cara untuk menghindari penggunaan rekursi.
Optimal substructure adalah sifat di mana solusi optimal dari suatu masalah dapat dibentuk dari solusi optimal submasalahnya.
Optimal substructure hanya berlaku untuk algoritma greedy.
Optimal substructure adalah metode untuk mengoptimalkan penggunaan memori.
Jelaskan bagaimana cara kerja algoritma greedy dengan contoh.
Algoritma greedy hanya dapat digunakan untuk masalah yang memiliki solusi unik.
Algoritma greedy memilih opsi terbaik lokal pada setiap langkah untuk mencapai solusi global.
Algoritma greedy mengabaikan langkah-langkah sebelumnya dan memilih secara acak.
Algoritma greedy selalu memilih opsi terburuk untuk mencapai solusi optimal.
Apa tantangan utama dalam menerapkan algoritma pemrograman dinamis?
Menggunakan algoritma greedy yang lebih sederhana.
Memahami dan mengidentifikasi submasalah yang relevan.
Menerapkan algoritma brute force tanpa optimasi.
Mengabaikan kompleksitas waktu dalam perhitungan.
Proses mendefinisikan “sesuatu” yang
mengandung “sesuatu” itu sendiri disebut dengan . . .
rekursi
greedy
problem solving
testing
coding
Arti harfiah dari rakus adalah . . .
rekursi
greedy
problem solving
testing
coding
Yang menerapkan prinsip “mengambil
serangkaian langkah terbaik pada setiap saat” adalah ....
rekursi
greedy
problem solving
testing
coding
Yang menunjukkan nilai awal dari barisan tersebut disebut . . .
basis
greedy
rekursi
testing
coding
Tentukan suku ke-6 dari barisan yang didefinisikan:
10
11
21
28
30
Tentukan suku ke-8 dari barisan yang didefinisikan barisan tersebut dimulai dengan
nilai 1, 3, ...
5
9
13
15
17
Greedy adalah salah satu teknik penyelesaian masalah yang digunakan untuk menyelesaikan . . .
Permasalahan analisis
Permasalahan pengulangan
Permasalahan optimasi
Dekomposisi permasalahan besar
Barisan Fibonacci
Uang senilai A = 32 dapat ditukar dengan banyak cara. Sedang koin yang tersedia adalah koin 1, 5, 10, 25. Tentukan jumlah tersedikit koin untuk dapat ditukan sejumlah A . . .
1
2
3
4
5
Uang senilai A = 8000 dapat ditukar dengan banyak cara. Sedang koin yang tersedia adalah koin 1000, 5000, 3000. Tentukan jumlah tersedikit koin untuk dapat ditukarkan sejumlah A . . .
1
2
3
4
5
Dari soal sebelumnya (gambar), rute mana saja yang merupakan jalur terpendek? Berapa kilometer?
rute 1 ke 2 ke 5 ke 7, 9 kilometer
rute 1 ke 3 ke 6 ke 7, 15 kilometer
rute 1 ke 3 ke 5 ke 7, 25 kilometer
rute 1 ke 4 ke 5 ke 7, 21 kilometer
rute 1 ke 4 ke 6 ke 7, 24 kilometer
Apa yang dimaksud dengan rekursi?
Rekursi adalah metode pemrograman di mana fungsi memanggil dirinya sendiri.
Rekursi adalah teknik untuk menghindari penggunaan fungsi.
Rekursi adalah cara untuk menulis kode tanpa menggunakan fungsi.
Rekursi adalah metode untuk mengoptimalkan penggunaan memori.
Sebutkan dua contoh penggunaan rekursi dalam pemrograman!
Mencetak string terbalik
Menghitung jumlah elemen dalam array
Menentukan nilai maksimum dalam daftar
1. Menghitung faktorial (n!) 2. Mencari bilangan Fibonacci (F(n))
Jelaskan perbedaan antara rekursi dan iterasi!
Rekursi menggunakan pemanggilan fungsi sendiri, sedangkan iterasi menggunakan loop.
Rekursi tidak dapat menyelesaikan masalah yang sama dengan iterasi.
Iterasi hanya dapat digunakan dalam bahasa pemrograman tertentu.
Rekursi lebih cepat daripada iterasi.
Apa itu basis kasus dalam rekursi?
Basis kasus adalah proses yang mempercepat rekursi.
Basis kasus adalah bagian dari fungsi rekursif.
Basis kasus adalah variabel yang menyimpan hasil rekursi.
Basis kasus adalah kondisi yang menghentikan rekursi.
Berikan contoh fungsi rekursif untuk menghitung faktorial!
function faktorial(n) { return n === 1 ? 1 : n + faktorial(n - 1); }
function faktorial(n) { return n * faktorial(n + 1); }
function faktorial(n) { return n < 0 ? 0 : n * faktorial(n); }
function faktorial(n) { return n === 0 ? 1 : n * faktorial(n - 1); }
Apa yang terjadi jika tidak ada basis kasus dalam fungsi rekursif?
Fungsi rekursif akan berhenti secara otomatis.
Fungsi rekursif akan berjalan lebih cepat.
Fungsi rekursif akan menyebabkan stack overflow.
Fungsi rekursif akan mengembalikan nilai nol.
Sebutkan keuntungan menggunakan rekursi!
Mengurangi kecepatan eksekusi
Keuntungan menggunakan rekursi antara lain: memudahkan pemecahan masalah kompleks, membuat kode lebih bersih, dan meningkatkan keterbacaan.
Meningkatkan penggunaan memori
Membuat kode lebih rumit
Jelaskan bagaimana rekursi dapat digunakan untuk menyelesaikan masalah Fibonacci!
Fibonacci hanya dapat dihitung dengan metode iteratif.
Rekursi tidak dapat digunakan untuk menghitung angka Fibonacci.
F(n) = F(n-1) - F(n-2) adalah rumus yang benar untuk Fibonacci.
Rekursi dapat digunakan untuk menghitung angka Fibonacci dengan mendefinisikan F(n) = F(n-1) + F(n-2) dan basis F(0) = 0, F(1) = 1.
Apa yang dimaksud dengan tumpukan (stack) dalam konteks rekursi?
Tumpukan (stack) adalah metode untuk menyimpan data dalam bentuk tabel.
Tumpukan (stack) adalah struktur data yang menyimpan informasi tentang fungsi yang sedang dieksekusi dalam rekursi.
Tumpukan (stack) adalah struktur data yang hanya menyimpan variabel global.
Tumpukan (stack) digunakan untuk menyimpan data secara acak tanpa urutan.
Sebutkan satu kelemahan dari penggunaan rekursi!
Tidak memerlukan banyak kode.
Penggunaan memori yang tinggi.
Mudah dipahami oleh pemula.
Penggunaan waktu yang rendah.
Jelaskan bagaimana analisis kompleksitas waktu dilakukan pada fungsi rekursif!
Fungsi rekursif selalu memiliki kompleksitas waktu yang tetap.
Kompleksitas waktu hanya dihitung dengan menghitung jumlah iterasi.
Analisis kompleksitas waktu tidak diperlukan untuk fungsi rekursif.
Kompleksitas waktu fungsi rekursif dianalisis dengan menulis persamaan rekurens dan menyelesaikannya.
Apa itu rekursi langsung dan rekursi tidak langsung?
Rekursi langsung dan rekursi tidak langsung adalah dua jenis rekursi dalam pemrograman.
Rekursi adalah teknik yang hanya digunakan dalam matematika.
Rekursi langsung hanya digunakan dalam algoritma sorting.
Rekursi tidak langsung adalah metode pengulangan tanpa fungsi.
Berikan contoh masalah yang dapat diselesaikan dengan rekursi!
Menghitung faktorial bilangan bulat positif.
Menghitung jumlah bilangan genap dalam array.
Menentukan bilangan prima dari 1 hingga n.
Menghitung rata-rata dari sekumpulan angka.
Jelaskan bagaimana rekursi dapat digunakan untuk traversing pohon!
Rekursi digunakan untuk menghitung jumlah node dalam pohon.
Rekursi dapat digunakan untuk traversing pohon dengan memanggil fungsi rekursif untuk setiap anak node.
Rekursi hanya dapat digunakan untuk traversing daftar.
Traversing pohon tidak memerlukan fungsi rekursif.
Apa yang dimaksud dengan rekursi tail?
Rekursi tail adalah rekursi yang tidak memiliki batasan.
Rekursi tail adalah teknik pengulangan tanpa menggunakan fungsi.
Rekursi tail adalah rekursi di mana pemanggilan fungsi rekursif adalah langkah terakhir dalam fungsi.
Rekursi tail adalah pemanggilan fungsi yang dilakukan secara bersamaan.
Sebutkan langkah-langkah untuk menganalisis kompleksitas ruang dari fungsi rekursif!
Kompleksitas ruang dari fungsi rekursif dapat dianalisis dengan menghitung ruang yang digunakan pada setiap panggilan dan total kedalaman rekursi.
Menghitung waktu eksekusi dari fungsi rekursif.
Menentukan jumlah variabel yang digunakan dalam fungsi.
Menganalisis kompleksitas waktu dari fungsi rekursif.
Apa yang dimaksud dengan memoization dalam konteks rekursi?
Memoization adalah teknik untuk mengurangi penggunaan memori dalam program.
Memoization adalah teknik untuk menyimpan hasil perhitungan fungsi dalam rekursi.
Memoization adalah metode untuk menghapus fungsi dalam rekursi.
Memoization adalah cara untuk mempercepat eksekusi program dengan mengabaikan hasil sebelumnya.
Jelaskan bagaimana rekursi dapat digunakan untuk menyelesaikan masalah pencarian!
Rekursi tidak dapat digunakan dalam pencarian data.
Rekursi mengharuskan semua data disimpan dalam array.
Rekursi hanya digunakan untuk menghitung nilai faktorial.
Rekursi dapat digunakan untuk menyelesaikan masalah pencarian dengan membagi masalah menjadi sub-masalah dan menjelajahi struktur data secara mendalam.
Apa peran parameter dalam fungsi rekursif?
Parameter tidak berpengaruh pada alur eksekusi fungsi rekursif.
Parameter dalam fungsi rekursif hanya digunakan untuk menyimpan data statis.
Parameter dalam fungsi rekursif hanya untuk tujuan dokumentasi.
Parameter dalam fungsi rekursif digunakan untuk menyimpan nilai dan mengontrol alur rekursi.
Sebutkan satu contoh masalah yang lebih efisien diselesaikan dengan iterasi daripada rekursi!
Menghitung faktorial dari sebuah angka.
Menemukan nilai maksimum dalam sebuah list.
Mencetak deret Fibonacci.
Menghitung jumlah elemen dalam array.
