WorksheetsQUIZ KELAS XI STRATEGI ALGORITMA DAN PEMOGRAMAN
Total questions: 30
Worksheet time: 15mins
Proses pemrograman melibatkan serangkaian langkah, mulai dari merencanakan algoritma hingga menguji dan memelihara program. Manakah dari pernyataan berikut yang merupakan langkah pertama dalam proses pemrograman?
a) Menulis kode program.
b) Menguji program.
c) Merancang algoritma.
d) Memelihara program.
e) Mengumpulkan kebutuhan pengguna.
Saat proses pemrograman, debugging adalah proses yang penting untuk mengidentifikasi dan memperbaiki kesalahan dalam program. Apa yang dimaksud dengan "debugging" dalam konteks pemrograman?
a) Menulis kode program dengan cepat.
b) Menghapus program yang tidak diperlukan.
c) Proses pengecekan program untuk menemukan dan memperbaiki kesalahan.
d) Mengoptimalkan program agar berjalan lebih cepat.
e) Menyimpan program dalam format yang berbeda.
Ketika Anda mengembangkan perangkat lunak, memahami kebutuhan pengguna adalah kunci untuk membuat program yang bermanfaat. Langkah apa yang biasanya dilakukan untuk mengumpulkan kebutuhan pengguna dalam proses pemrograman?
Menulis kode program.
b) Membuat desain grafis program.
c) Melakukan wawancara dengan pengguna potensial.
d) Menguji program secara intensif.
e) Menganalisis kode sumber program.
Saat Anda mengembangkan program, dokumentasi adalah hal yang penting. Apa yang dimaksud dengan "dokumentasi" dalam konteks pemrograman?
a) Menulis catatan pribadi tentang proyek pemrograman.
b) Menyusun daftar pengguna program.
c) Membuat presentasi visual tentang program.
d) Menjelaskan secara tertulis cara kerja program, komentar dalam kode, dan instruksi pengguna.
e) Membuat daftar tugas pemrograman yang belum selesai.
Proses pemrograman sering melibatkan pengujian program untuk memastikan bahwa itu berfungsi sebagaimana mestinya. Apa yang dimaksud dengan "pengujian" dalam konteks pemrograman?
a) Menjalankan program tanpa melakukan pemeriksaan.
b) Menyusun daftar bug dalam program.
c) Proses pengecekan program untuk menemukan kesalahan dan memastikan fungsionalitas yang benar.
d) Menulis kode program dari awal
.e) Menganalisis kode program untuk perbaikan.
Rekursi adalah teknik pemrograman di mana sebuah fungsi memanggil dirinya sendiri. Manakah dari pernyataan berikut yang mewakili karakteristik esensial dari fungsi rekursif?
a) Fungsi harus selalu memanggil fungsi lain.
b) Fungsi harus memiliki argumen yang kompleks.
c) Fungsi harus memiliki nilai balik (return value) yang kompleks.
d) Fungsi harus memiliki kondisi dasar (base case) yang membuatnya berhenti memanggil dirinya sendiri.
e) Fungsi harus memiliki argumen yang sama pada setiap panggilan.
Anda ingin menghitung jumlah minimum koin yang diperlukan untuk membentuk sejumlah uang tertentu. Manakah dari algoritma berikut yang biasanya digunakan dalam algoritma greedy untuk masalah ini?
a) Algoritma DFS (Depth-First Search).
b) Algoritma BFS (Breadth-First Search).
c) Algoritma Dijkstra.
d) Algoritma Prim.
e) Algoritma Greedy.
Anda memiliki sejumlah pekerjaan dengan waktu penyelesaian dan deadline yang berbeda-beda. Bagaimana Anda dapat menggunakan algoritma greedy untuk menentukan urutan penyelesaian pekerjaan yang optimal?
a) Mengurutkan pekerjaan berdasarkan waktu penyelesaian tercepat.
b) Mengurutkan pekerjaan berdasarkan deadline terdekat.
c) Mengurutkan pekerjaan berdasarkan prioritas pengguna.
d) Mengurutkan pekerjaan berdasarkan urutan acak.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin memuat sejumlah barang ke dalam ransel dengan kapasitas tertentu. Setiap barang memiliki nilai dan berat yang berbeda. Bagaimana Anda dapat menggunakan algoritma greedy untuk memilih barang-barang yang akan dimuat agar mendapatkan nilai maksimum?
a) Memilih barang dengan berat paling rendah terlebih dahulu.
b) Memilih barang dengan nilai paling tinggi terlebih dahulu.
c) Memilih barang dengan nilai per berat (value-to-weight ratio) tertinggi terlebih dahulu.
d) Memilih barang dengan nilai per berat (value-to-weight ratio) terendah terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin mencari jalur terpendek dari satu titik ke titik lain dalam graf yang terdiri dari berbagai simpul (node) dan sisi (edge) dengan bobot yang berbeda. Manakah dari algoritma berikut yang biasanya digunakan dalam algoritma greedy untuk mencari jalur terpendek ini?
a) Algoritma A*.
b) Algoritma Bellman-Ford.
c) Algoritma Kruskal.
d) Algoritma Prim.
e) Algoritma Greedy.
Anda ingin memotong sejumlah batang kayu menjadi potongan-potongan dengan panjang tertentu. Setiap potongan memiliki nilai yang berbeda-beda. Bagaimana Anda dapat menggunakan algoritma greedy untuk memilih potongan-potongan yang akan dipotong agar mendapatkan nilai maksimum?
a) Memotong batang kayu menjadi potongan terpanjang terlebih dahulu.
b) Memotong batang kayu menjadi potongan terpendek terlebih dahulu.
c) Memotong batang kayu menjadi potongan dengan nilai terbesar terlebih dahulu.
d) Memotong batang kayu menjadi potongan dengan nilai terkecil terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin mengisi tangki bahan bakar mobil dengan kapasitas tertentu menggunakan sejumlah pompa bahan bakar yang memiliki harga yang berbeda-beda. Bagaimana Anda dapat menggunakan algoritma greedy untuk memilih pompa bahan bakar yang akan digunakan agar biaya pengisian bahan bakar minimum?
a) Memilih pompa dengan harga bahan bakar terendah terlebih dahulu.
b) Memilih pompa dengan harga bahan bakar tertinggi terlebih dahulu.
c) Memilih pompa dengan rata-rata harga bahan bakar terendah terlebih dahulu.
d) Memilih pompa dengan rata-rata harga bahan bakar tertinggi terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda memiliki sejumlah pekerjaan dengan waktu penyelesaian dan bobot yang berbeda-beda. Anda ingin memilih sejumlah pekerjaan yang akan Anda kerjakan agar mendapatkan nilai (bobot total) maksimum. Bagaimana Anda dapat menggunakan algoritma greedy untuk memilih pekerjaan-pekerjaan tersebut?
a) Memilih pekerjaan dengan bobot tertinggi terlebih dahulu.
b) Memilih pekerjaan dengan bobot terendah terlebih dahulu.
c) Memilih pekerjaan dengan rata-rata bobot tertinggi terlebih dahulu.
d) Memilih pekerjaan dengan bobot per waktu penyelesaian (weight-to-time ratio) tertinggi terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin membagi sejumlah pekerjaan di antara sejumlah mesin agar waktu penyelesaian totalnya minimum. Setiap pekerjaan memiliki waktu penyelesaian yang berbeda di setiap mesin. Bagaimana Anda dapat menggunakan algoritma greedy untuk membagi pekerjaan-pekerjaan tersebut?
a) Memasukkan pekerjaan ke mesin pertama yang memiliki waktu penyelesaian tercepat terlebih dahulu.
b) Memasukkan pekerjaan ke mesin pertama yang memiliki waktu penyelesaian terlama terlebih dahulu.
c) Memasukkan pekerjaan ke mesin yang memiliki waktu penyelesaian paling seragam terlebih dahulu.
d) Memasukkan pekerjaan ke mesin yang memiliki total waktu penyelesaian paling sedikit terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin memilih sejumlah bangunan yang akan dibangun di sepanjang jalan dengan panjang tertentu. Setiap bangunan memiliki biaya dan poin keuntungan yang berbeda-beda. Bagaimana Anda dapat menggunakan algoritma greedy untuk memilih bangunan-bangunan tersebut agar mendapatkan poin keuntungan maksimum?
a) Memilih bangunan dengan biaya paling rendah terlebih dahulu.
b) Memilih bangunan dengan biaya paling tinggi terlebih dahulu.
c) Memilih bangunan dengan rasio poin keuntungan per biaya (profit-to-cost ratio) tertinggi terlebih dahulu.
d) Memilih bangunan dengan rasio poin keuntungan per biaya (profit-to-cost ratio) terendah terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin mengunjungi beberapa kota dengan jarak yang berbeda-beda dan kembali ke kota asal. Bagaimana Anda dapat menggunakan algoritma greedy untuk menentukan urutan pengunjungan kota yang menghasilkan jarak perjalanan minimum?
a) Mengunjungi kota secara acak.
b) Mengunjungi kota dengan jarak terpendek terlebih dahulu.
c) Mengunjungi kota dengan jarak terjauh terlebih dahulu.
d) Mengunjungi kota dengan urutan alfabetis.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin mengisi sebuah wadah dengan sejumlah barang dengan berat dan nilai yang berbeda-beda. Bagaimana Anda dapat menggunakan algoritma greedy untuk memilih barang-barang yang akan dimuat ke dalam wadah agar mendapatkan nilai (nilai total) maksimum?
a) Memilih barang dengan nilai terendah terlebih dahulu.
b) Memilih barang dengan berat terendah terlebih dahulu.
c) Memilih barang dengan nilai per berat (value-to-weight ratio) tertinggi terlebih dahulu.
d) Memilih barang dengan nilai per berat (value-to-weight ratio) terendah terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin menentukan jalur terpendek untuk mengunjungi sejumlah titik dalam kota yang terhubung oleh jalan-jalan dengan panjang yang berbeda-beda. Manakah dari pernyataan berikut yang paling mungkin digunakan dalam algoritma greedy untuk mencari jalur terpendek?
a) Menghitung semua kemungkinan jalur dan memilih yang terpendek.
b) Menggunakan algoritma BFS (Breadth-First Search).
c) Menggunakan algoritma DFS (Depth-First Search).
d) Menggunakan algoritma Dijkstra.
e) Menggunakan algoritma A*.
Anda ingin mencari kombinasi koin yang paling sedikit untuk membayar sejumlah uang tertentu. Bagaimana Anda dapat menggunakan algoritma greedy untuk menentukan kombinasi koin ini?
a) Memilih koin dengan nilai paling tinggi terlebih dahulu.
b) Memilih koin dengan nilai paling rendah terlebih dahulu.
c) Memilih koin dengan ukuran fisik terbesar terlebih dahulu.
d) Memilih koin dengan ukuran fisik terkecil terlebih dahulu.
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini.
Anda ingin membagi sejumlah barang di antara beberapa orang sedemikian rupa sehingga total nilai (bobot) yang diperoleh oleh semua orang adalah maksimum. Bagaimana Anda dapat menggunakan algoritma greedy untuk membagi barang-barang tersebut?
a) Memilih orang dengan bobot terendah terlebih dahulu.
b) Memilih orang dengan bobot tertinggi terlebih dahulu.
c) Memilih orang dengan rasio bobot per jumlah barang (weight-to-item ratio) tertinggi terlebih dahulu.
d) Memilih orang dengan rasio bobot per jumlah barang (weight-to-item ratio) terendah terlebih dahulu. .
e) Tidak mungkin menggunakan algoritma greedy untuk masalah ini
Rekursi adalah teknik pemrograman di mana sebuah fungsi memanggil dirinya sendiri. Bagaimana Anda mendefinisikan kasus dasar (base case) dalam fungsi rekursif?
a) Kasus yang paling rumit. .
b) Kasus yang paling sering terjadi.
c) Kasus yang memerlukan kondisi if-else.
d) Kasus yang paling sederhana dan langsung dipecahkan.
e) Kasus yang tidak memerlukan pemanggilan rekursif
Anda ingin menggunakan rekursi untuk menghitung nilai faktorial dari suatu bilangan bulat positif n. Apa yang harus menjadi kasus dasar dalam fungsi rekursi ini?
a) Ketika n sama dengan 1.
b) Ketika n sama dengan 0.
c) Ketika n sama dengan 2.
d) Ketika n sama dengan 10.
e) Tidak ada kasus dasar untuk faktorial.
Anda ingin menggunakan rekursi untuk mencari bilangan Fibonacci ke-n dalam deret Fibonacci. Apa yang menjadi kasus dasar (base case) dalam fungsi rekursi ini?
a) Ketika n sama dengan 0.
b) Ketika n sama dengan 1.
c) Ketika n sama dengan 2.
d) Ketika n sama dengan 10.
e) Tidak ada kasus dasar untuk deret Fibonacci.
Dalam rekursi, apa yang terjadi jika kasus dasar tidak didefinisikan atau tidak tercapai?
a) Fungsi rekursi akan menghasilkan hasil yang benar.
b) Fungsi rekursi akan memanggil dirinya sendiri tanpa henti.
c) Fungsi rekursi akan memberikan pesan kesalahan (error).
d) Fungsi rekursi akan berhenti tanpa memberikan hasil.
e) Fungsi rekursi akan menghasilkan hasil yang acak.
Anda ingin menggunakan rekursi untuk mencari pangkat n dari suatu bilangan bulat x. Apa yang harus menjadi kasus dasar dalam fungsi rekursi ini?
a) Ketika n sama dengan 0.
b) Ketika n sama dengan 1.
c) Ketika n sama dengan 2.
d) Ketika n sama dengan 10.
e) Tidak ada kasus dasar untuk perpangkatan.
Apa yang dimaksud dengan "debugging" dalam proses pemrograman?
a) Proses menghasilkan kode program.
b) Proses menguji kode program.
c) Proses mengidentifikasi dan memperbaiki kesalahan dalam kode program.
d) Proses merancang algoritma program.
e) Proses mengumpulkan data untuk program.
Mengapa komentar (comments) sering digunakan dalam kode program?
a) Untuk membuat program lebih panjang.
b) Untuk menambahkan warna pada tampilan program.
c) Untuk menjadikan program lebih mudah dibaca dan dimengerti oleh pengembang dan orang lain.
d) Untuk menghilangkan kesalahan dalam program.
e) Untuk membuat program berjalan lebih cepat.
Ketika membangun sebuah program, mengapa penting untuk merencanakan algoritma sebelum mulai menulis kode?
a) Agar kode program menjadi lebih kompleks.
b) Agar program dapat berjalan tanpa perencanaan.
c) Agar program lebih mudah di-debug.
d) Agar program sesuai dengan gaya penulisan.
e) Agar program dapat mencapai tujuan yang diinginkan dengan efisien dan efektif.
Apa yang dimaksud dengan "refaktor" dalam konteks pemrograman?
a) Proses menulis kode program dari awal.
b) Proses mengganti semua komentar dalam kode program
. c) Proses mengidentifikasi kesalahan dalam kode program.
d) Proses mengubah struktur atau desain kode program tanpa mengubah fungsionalitasnya.
e) Proses menguji program secara menyeluruh.
Ketika menulis program, mengapa penting untuk melakukan pengujian (testing) secara menyeluruh?
a) Agar program menjadi lebih kompleks.
b) Agar program tidak memerlukan komentar.
c) Agar program sesuai dengan gaya penulisan.
d) Agar program dapat bekerja pada satu jenis perangkat saja.
e) Agar program dapat diidentifikasi dan diperbaiki kesalahannya serta berfungsi sesuai yang diharapkan.
