WorksheetsUTS Berpikir Komputasional
Total questions: 20
Worksheet time: 3600secs
Apa yang dimaksud dengan algoritma dalam pemrograman?
Algoritma adalah serangkaian langkah atau instruksi terstruktur untuk menyelesaikan masalah dalam pemrograman.
Algoritma adalah hasil akhir dari sebuah program yang sudah selesai.
Algoritma adalah perangkat keras yang mempercepat proses komputasi.
Algoritma adalah bahasa pemrograman yang digunakan untuk menulis kode.
Manakah dari berikut ini yang bukan merupakan langkah dalam proses pemrograman?
Menguji program
Menulis kode
Menunggu hasil
Mengumpulkan data
Apa yang dimaksud dengan rekursi dalam pemrograman?
Rekursi adalah teknik pemrograman di mana fungsi memanggil dirinya sendiri.
Rekursi adalah cara untuk mendeklarasikan variabel dalam pemrograman.
Rekursi adalah metode untuk menghindari penggunaan fungsi dalam pemrograman.
Rekursi adalah teknik untuk mengoptimalkan penggunaan memori dalam program.
Dalam algoritma greedy, keputusan yang diambil bersifat:
lokal
statistik
acak
global
Apa yang menjadi ciri utama dari pemrograman dinamis?
Penggunaan struktur data statis tanpa perubahan.
Penggunaan algoritma greedy untuk optimasi.
Penggunaan memoization untuk menyimpan hasil perhitungan.
Penggunaan pengulangan untuk menyelesaikan masalah.
Dalam konteks rekursi, apa yang dimaksud dengan 'base case'?
'Base case' adalah kondisi yang menghentikan rekursi.
'Base case' adalah bagian dari fungsi yang tidak berhubungan dengan rekursi.
'Base case' adalah langkah awal dalam algoritma.
'Base case' adalah kondisi yang memperpanjang rekursi.
Manakah dari berikut ini yang merupakan contoh algoritma greedy?
Algoritma Bellman-Ford untuk Shortest Path
Algoritma Prim untuk Minimum Spanning Tree
Algoritma Dijkstra untuk Shortest Path
Algoritma Kruskal untuk Minimum Spanning Tree
Apa yang harus dilakukan jika sebuah fungsi rekursif tidak memiliki base case?
Ubah fungsi menjadi iteratif tanpa base case.
Biarkan fungsi berjalan tanpa perubahan.
Tambahkan base case untuk menghentikan rekursi.
Hapus semua kode dalam fungsi.
Dalam pemrograman dinamis, apa yang dimaksud dengan 'overlapping subproblems'?
Overlapping subproblems adalah kondisi di mana semua submasalah harus diselesaikan secara terpisah.
Overlapping subproblems adalah metode untuk menyelesaikan masalah secara paralel.
Overlapping subproblems adalah teknik untuk menghindari penggunaan memori.
Overlapping subproblems adalah situasi di mana submasalah yang sama muncul berulang kali dalam pemecahan masalah.
Apa keuntungan utama menggunakan algoritma greedy dibandingkan algoritma lainnya?
Kompleksitas yang tinggi dalam implementasi.
Memerlukan lebih banyak sumber daya dibandingkan algoritma dinamis.
Hasil yang selalu optimal untuk semua kasus.
Kecepatan dan kesederhanaan implementasi.
Dalam proses pemrograman, tahap mana yang paling penting untuk menentukan efisiensi algoritma?
Pengujian unit
Analisis kompleksitas algoritma
Implementasi kode
Desain antarmuka
Apa yang dimaksud dengan 'memoization' dalam pemrograman dinamis?
Memoization adalah metode untuk menghapus fungsi yang tidak efisien.
Memoization adalah cara untuk mengoptimalkan penggunaan memori dalam program.
Memoization adalah teknik untuk menggabungkan beberapa fungsi menjadi satu.
Memoization adalah teknik penyimpanan hasil perhitungan fungsi untuk meningkatkan efisiensi.
Dalam rekursi, apa yang terjadi jika fungsi memanggil dirinya sendiri tanpa batas?
Stack overflow terjadi.
Fungsi berhenti secara otomatis.
Fungsi memanggil fungsi lain.
Fungsi mengembalikan nilai default.
Apa yang dimaksud dengan 'optimal substructure' dalam algoritma dinamis?
Optimal substructure hanya berlaku untuk algoritma greedy.
Optimal substructure adalah sifat di mana solusi optimal dari suatu masalah dapat dibentuk dari solusi optimal submasalahnya.
Optimal substructure berarti solusi terbaik tidak dapat dibentuk dari submasalah.
Optimal substructure adalah metode untuk menghindari perhitungan berulang.
Dalam algoritma greedy, keputusan yang diambil biasanya:
Berdasarkan pilihan terbaik saat itu.
Berdasarkan analisis jangka panjang.
Mengabaikan kondisi saat ini.
Mempertimbangkan semua kemungkinan secara bersamaan.
Apa yang menjadi tantangan utama dalam menggunakan rekursi?
Menyederhanakan kode program
Risiko stack overflow dan kesulitan dalam pemahaman alur eksekusi.
Terlalu banyak penggunaan memori
Meningkatkan kecepatan eksekusi
Dalam pemrograman dinamis, bagaimana cara menghindari perhitungan yang berulang?
Menyimpan semua data dalam variabel global tanpa optimasi.
Mengabaikan hasil perhitungan sebelumnya dan menghitung dari awal.
Menggunakan pengulangan untuk menghitung ulang setiap kali.
Gunakan memoization untuk menyimpan hasil perhitungan.
Apa yang dimaksud dengan 'time complexity' dalam analisis algoritma?
Time complexity adalah waktu maksimum yang dibutuhkan algoritma untuk menyelesaikan tugas.
Time complexity mengukur jumlah langkah yang diambil algoritma tanpa mempertimbangkan input.
Time complexity adalah ukuran waktu yang dibutuhkan algoritma seiring dengan bertambahnya ukuran input.
Time complexity adalah ukuran ruang yang dibutuhkan algoritma.
Dalam konteks algoritma, apa yang dimaksud dengan 'greedy choice property'?
Greedy choice property focuses on maximizing immediate rewards without consideration for future consequences.
Greedy choice property ensures that all choices are optimal.
Greedy choice property is about making random selections.
Greedy choice property is the principle that local optimal choices lead to a global optimal solution.
Apa yang harus diperhatikan saat mendesain algoritma rekursif?
Perhatikan kondisi dasar, pemecahan masalah, dan kemajuan menuju kondisi dasar.
Fokus pada penggunaan memori yang efisien.
Hindari penggunaan fungsi yang tidak terdefinisi.
Pastikan algoritma selalu menghasilkan output yang sama.
