Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

greedy

Total questions: 99

Worksheet time: 8hrs 4mins

Name
Class
Date
1.

Apabila pada suatu fungsi rekursif tidak didefinisikan base case, maka yang terjadi adalah...

a)

program hanya berjalan sekali

b)

program berhenti dan mengembalikan pesan error

c)

terjadi infinite loop (Recursion Error)

d)

berjalan sebanyak k kali, dimana k adalah argumen fungsi rekursif tersebut

e)

Berjalan sebanyak n yang dimasukkan

2.

jenis algoritma yang memungkinkan sebuah fungsi atau prosedur untuk memanggil dirinya sendiri dengan input yang semakin menyempit, berikut adalah pengertian dari algoritma ...

a)

rekursi

b)

greedy

c)

problem solving

d)

testing

e)

coding

3.

Yang menunjukkan nilai awal dari barisan tersebut disebut . . .

a)

basis

b)

greedy

c)

rekursi

d)

testing

e)

coding

4.

Tentukan suku ke-6 dari barisan yang didefinisikan:

a)

10

b)

11

c)

21

d)

28

e)

30

5.

Algoritma rekursif terdiri dari dari ....

a)

rekruens & perulangan

b)

basis & rekruens

c)

basis & nilai dasar

d)

rekursif & nilai dasar

e)

rekrusi & rekruens

6.

Tentukan suku ke-8 dari barisan yang didefinisikan barisan tersebut dimulai dengan

nilai 1, 3, ...

a)

5

b)

9

c)

13

d)

15

e)

17

7.

Tebak output program berikut ini

a)

-1

b)

RecursionError

c)

2

d)

0

e)

1

8.

Berapakah Nilai dari "X", jika menggunakan metode rekursi?

a)

7

b)

19

c)

17

d)

21

e)

16

9.

Tebak output program berikut ini

a)

120

b)

RecursionError

c)

20

d)

40

e)

10

10.

Berikut merupakan notasi rekursif untuk bilangan ganjil.

Tentukan suku ke-5 dari notasi rekursif tersebut.

(a)  

11.

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 maka hasilnya 1

b)

Ketika n sama dengan 0 maka hasilnya 0

c)

Ketika n sama dengan 3 maka hasilnya 1

d)

Ketika n sama dengan 10 maka hasilnya 10

e)

Tidak ada kasus dasar untuk faktorial.

12.

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  

a)

4

b)

3

c)

13

d)

8

e)

21

13.

Persamaan iterasi dan rekursi?

a)

Merupakan bentuk perulangan/loop

b)

Harus menggunakan prosedur/fungsi

c)

Menggunakan stack sebagai memori

d)

Proses di dalamnya terjadi secara sekuensial/runtut

14.

Berapakah nilai dari fungsi(4)

a)

1

b)

2

c)

3

d)

4

e)

5

15.

Dibawah ini merupakan ilustrasi rekursi, kecuali?

a)

b)

c)

d)

16.

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.

17.

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 3.

d)

Ketika n sama dengan 10.

e)

Tidak ada kasus dasar untuk deret Fibonacci.

18.

Apa yang dimaksud dengan rekursi?

a)

Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan dari nilai-nilai sebelumnya

b)

Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang tidak mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan dari nilai-nilai sebelumnya

c)

Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan secara acak

d)

Rekursi adalah suatu bentuk pendefinisian sebuah struktur yang tidak mengandung dirinya sendiri, karakteristik utamanya adalah nilai-nilainya ditentukan secara acak

19.

Yang dimaksud dengan algoritma greedy adalah …

a)

Algoritma yang memilih solusi terbaik di setiap langkah berdasarkan informasi lokal untuk mencapai solusi optimal global.

b)

Algoritma yang mencoba memecahkan masalah dengan memeriksa sebagian kemungkinan solusi.

c)

Algoritma yang mencoba mencari solusi dengan cara mencoba semua kemungkinan dan memilih solusi terbaik di akhir.

d)

Algoritma yang menghindari keputusan berdasarkan solusi lokal dan lebih mengutamakan solusi yang sudah ada.

e)

Algoritma yang selalu memilih solusi dengan biaya paling rendah pada setiap langkah.

20.

Tujuan utama dari algoritma greedy …

a)

Mengoptimalkan penggunaan memori dalam komputer.

b)

Menyelesaikan masalah dengan langkah-langkah yang optimal pada setiap tahap.

c)

Mengurangi jumlah langkah yang diperlukan untuk menyelesaikan masalah.

d)

Memecahkan masalah dengan memilih solusi terbaik secara global.

e)

Mencari solusi yang selalu memberikan hasil terbaik secara keseluruhan.

21.

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 …

a)

Pilih koin dengan nilai terkecil terlebih dahulu.

b)

Pilih koin dengan nilai terbesar terlebih dahulu.

c)

Pilih koin yang paling sering digunakan oleh orang lain.

d)

Pilih koin secara acak.

e)

Pilih koin berdasarkan urutan waktu kedatangan.

22.

Greedy secara harfiah berarti …

a)

Cerdas atau pintar

b)

Serakah atau rakus

c)

Cepat atau tangkas

d)

Bijaksana atau hati-hati

e)

Sederhana atau efisien

23.

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 …

a)

Pekerjaan 1, Pekerjaan 2

b)

Pekerjaan 3, Pekerjaan 5

c)

Pekerjaan 1, Pekerjaan 3

d)

Pekerjaan 4, Pekerjaan 1

e)

Pekerjaan 2, Pekerjaan 5

24.

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 …

a)

Pekerjaan 1, Pekerjaan 5

b)

Pekerjaan 1, Pekerjaan 2

c)

Pekerjaan 2, Pekerjaan 5

d)

Pekerjaan 3, Pekerjaan 1

e)

Pekerjaan 4, Pekerjaan 5

25.

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 …

a)

8 + 6 + 6 + 5

b)

6 + 5 + 4 + 3

c)

8 + 6 + 5 + 4

d)

6 + 6 + 5 + 4

e)

8 + 6 + 5 + 3

26.

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 …

a)

5 kantong

b)

4 kantong

c)

3 kantong

d)

2 kantong

e)

1 kantong

27.

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 …

a)

Waktu total yang diperlukan akan lebih singkat karena pekerjaan yang lebih lama diselesaikan lebih dulu.

b)

Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih lama diselesaikan lebih dulu, tetapi dapat mengurangi waktu tunda untuk pekerjaan lainnya.

c)

Waktu total yang diperlukan tidak akan berubah, karena algoritma greedy tetap efisien dalam memilih pekerjaan.

d)

Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih panjang mengurangi waktu kosong untuk pekerjaan berikutnya.

e)

Waktu total yang diperlukan akan tetap sama, namun pekerjaan yang lebih lama lebih mudah diselesaikan setelah pekerjaan pendek selesai.

28.

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 …

a)

Algoritma greedy memilih barang dengan rasio nilai terhadap bobot terbesar, yang tidak selalu mencerminkan kombinasi optimal

b)

Algoritma greedy tidak mempertimbangkan total nilai dari semua barang yang dipilih, hanya berdasarkan barang yang memiliki rasio terbaik.

c)

Rasio nilai terhadap bobot barang pertama tidak mencerminkan nilai total tas yang akan diisi.

d)

Algoritma greedy mengabaikan barang dengan bobot ringan karena lebih memilih barang dengan bobot besar.

e)

Kapasitas tas yang terbatas menyebabkan algoritma greedy gagal memilih barang dengan cara yang optimal, meskipun menggunakan rasio terbaik.

29.

Yang dimaksud dengan algoritma greedy adalah …

a)

Algoritma yang memilih solusi terbaik di setiap langkah berdasarkan informasi lokal untuk mencapai solusi optimal global.

b)

Algoritma yang mencoba memecahkan masalah dengan memeriksa sebagian kemungkinan solusi.

c)

Algoritma yang mencoba mencari solusi dengan cara mencoba semua kemungkinan dan memilih solusi terbaik di akhir.

d)

Algoritma yang menghindari keputusan berdasarkan solusi lokal dan lebih mengutamakan solusi yang sudah ada.

e)

Algoritma yang selalu memilih solusi dengan biaya paling rendah pada setiap langkah.

30.

Tujuan utama dari algoritma greedy …

a)

Mengoptimalkan penggunaan memori dalam komputer.

b)

Menyelesaikan masalah dengan langkah-langkah yang optimal pada setiap tahap.

c)

Mengurangi jumlah langkah yang diperlukan untuk menyelesaikan masalah.

d)

Memecahkan masalah dengan memilih solusi terbaik secara global.

e)

Mencari solusi yang selalu memberikan hasil terbaik secara keseluruhan.

31.

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 …

a)

Pilih koin dengan nilai terkecil terlebih dahulu.

b)

Pilih koin dengan nilai terbesar terlebih dahulu.

c)

Pilih koin yang paling sering digunakan oleh orang lain.

d)

Pilih koin secara acak.

e)

Pilih koin berdasarkan urutan waktu kedatangan.

32.

Greedy secara harfiah berarti …

a)

Cerdas atau pintar

b)

Serakah atau rakus

c)

Cepat atau tangkas

d)

Bijaksana atau hati-hati

e)

Sederhana atau efisien

33.

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 …

a)

Pekerjaan 1, Pekerjaan 2

b)

Pekerjaan 3, Pekerjaan 5

c)

Pekerjaan 1, Pekerjaan 3

d)

Pekerjaan 4, Pekerjaan 1

e)

Pekerjaan 2, Pekerjaan 5

34.

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 …

a)

Pekerjaan 1, Pekerjaan 5

b)

Pekerjaan 1, Pekerjaan 2

c)

Pekerjaan 2, Pekerjaan 5

d)

Pekerjaan 3, Pekerjaan 1

e)

Pekerjaan 4, Pekerjaan 5

35.

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 …

a)

8 + 6 + 6 + 5

b)

6 + 5 + 4 + 3

c)

8 + 6 + 5 + 4

d)

6 + 6 + 5 + 4

e)

8 + 6 + 5 + 3

36.

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 …

a)

5 kantong

b)

4 kantong

c)

3 kantong

d)

2 kantong

e)

1 kantong

37.

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 …

a)

Waktu total yang diperlukan akan lebih singkat karena pekerjaan yang lebih lama diselesaikan lebih dulu.

b)

Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih lama diselesaikan lebih dulu, tetapi dapat mengurangi waktu tunda untuk pekerjaan lainnya.

c)

Waktu total yang diperlukan tidak akan berubah, karena algoritma greedy tetap efisien dalam memilih pekerjaan.

d)

Waktu total yang diperlukan akan lebih lama karena pekerjaan yang lebih panjang mengurangi waktu kosong untuk pekerjaan berikutnya.

e)

Waktu total yang diperlukan akan tetap sama, namun pekerjaan yang lebih lama lebih mudah diselesaikan setelah pekerjaan pendek selesai.

38.

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 …

a)

Algoritma greedy memilih barang dengan rasio nilai terhadap bobot terbesar, yang tidak selalu mencerminkan kombinasi optimal

b)

Algoritma greedy tidak mempertimbangkan total nilai dari semua barang yang dipilih, hanya berdasarkan barang yang memiliki rasio terbaik.

c)

Rasio nilai terhadap bobot barang pertama tidak mencerminkan nilai total tas yang akan diisi.

d)

Algoritma greedy mengabaikan barang dengan bobot ringan karena lebih memilih barang dengan bobot besar.

e)

Kapasitas tas yang terbatas menyebabkan algoritma greedy gagal memilih barang dengan cara yang optimal, meskipun menggunakan rasio terbaik.

39.

Apa yang dimaksud dengan pemrograman dinamis?

a)

Metode untuk menyelesaikan masalah dengan cara perulangan.

b)

Metode penyelesaian masalah yang memecah masalah menjadi sub-masalah yang lebih kecil dan menyimpan hasilnya.

c)

Algoritma untuk mencari nilai maksimal.

d)

Proses pengulangan masalah tanpa optimasi.

40.

Apa ciri khas dari masalah yang bisa diselesaikan dengan pemrograman dinamis?

a)

Hanya bisa digunakan untuk masalah kecil.

b)

Menggunakan banyak memori.

c)

Memiliki sub-masalah yang tumpang tindih.

d)

Selalu menghasilkan solusi non-optimal.

41.

Apa pendekatan yang digunakan dalam pemrograman dinamis?

a)

Rekursif dan Iteratif

b)

Bottom-Up dan Top-Down

c)

Greedy dan Brute Force

d)

Iteratif dan Tabulasi

42.

Pada pendekatan Top-Down, bagaimana cara menghindari perhitungan ulang?

a)

Dengan menggunakan tabel untuk menyimpan hasil sub-masalah.

b)

Dengan melakukan perhitungan ulang secara berulang.

c)

Dengan menggunakan brute force.

d)

Dengan memecah masalah menjadi lebih besar.

43.

Apa yang dimaksud dengan "memoization"?

a)

Teknik perulangan untuk menyelesaikan masalah.

b)

Penyimpanan hasil sub-masalah untuk menghindari perhitungan ulang.

c)

Proses menggunakan memori lebih besar dalam algoritma.

d)

Algoritma greedy yang digunakan untuk menyelesaikan masalah.

44.

Manakah yang merupakan contoh penerapan pemrograman dinamis?

a)

Binary Search

b)

Sorting dengan Quick Sort

c)

Fibonacci dengan memoization

d)

Pencarian string dengan KMP

45.

Apa kekurangan dari pemrograman dinamis?

a)

Tidak dapat menyelesaikan masalah dengan substruktur optimal.

b)

Memori yang digunakan bisa menjadi besar.

c)

Hanya cocok untuk masalah kecil.

d)

Selalu menghasilkan solusi non-optimal.

46.

Dalam pemrograman dinamis, pendekatan Bottom-Up dikenal juga dengan istilah?

a)

Memoization

b)

Tabulation

c)

Rekursif

d)

Greedy

47.

Apa tujuan utama dari menggunakan pemrograman dinamis?

4 lines
48.

Apa tujuan utama dari menggunakan pemrograman dinamis?

a)

Mempercepat waktu komputasi dengan menghindari perhitungan ulang.

b)

Menghasilkan solusi non-optimal.

c)

Menggunakan lebih banyak memori untuk mempercepat perhitungan.

d)

Mengoptimalkan penggunaan perulangan.

49.

Masalah Fibonacci dapat diselesaikan dengan lebih cepat menggunakan pemrograman dinamis karena...

a)

Fibonacci adalah algoritma yang lambat.

b)

Ada banyak perhitungan ulang pada sub-masalah yang tumpang tindih.

c)

Fibonacci tidak membutuhkan optimasi.

d)

Pemrograman dinamis mempercepat semua algoritma rekursif.

50.

Contoh masalah yang umum diselesaikan dengan pemrograman dinamis adalah...

a)

Sorting

b)

Longest Common Subsequence

c)

Binary Search

d)

Linked List

51.

Pada masalah Knapsack, pemrograman dinamis digunakan untuk...

a)

Menghitung jumlah kombinasi barang yang bisa dimasukkan dalam ransel.

b)

Menghindari perhitungan ulang kombinasi barang yang telah dihitung.

c)

Menentukan cara terbaik untuk mengurutkan barang.

d)

Menggunakan pendekatan brute force untuk mencari solusi.

52.

Pada masalah Tangga (Staircase Problem), berapa banyak cara untuk mendaki ke langkah ke-n menggunakan pemrograman dinamis?

a)

Fibonacci sequence

b)

Sort sequence

c)

Binary search

d)

Randomized sequence

53.

Masalah Edit Distance dapat diselesaikan dengan pemrograman dinamis karena...

a)

Menggunakan teknik brute force.

b)

Hanya memiliki satu solusi.

c)

Memiliki sub-masalah yang tumpang tindih.

d)

Tidak memiliki solusi optimal.

54.

Apa itu rekursi dalam pemrograman?

a)

Rekursi adalah cara untuk menghindari penggunaan fungsi.

b)

Rekursi dalam pemrograman adalah metode di mana fungsi memanggil dirinya sendiri.

c)

Rekursi adalah metode untuk menyimpan data dalam array.

d)

Rekursi adalah teknik untuk mengoptimalkan kode.

55.

Berikan contoh masalah yang dapat diselesaikan dengan rekursi.

a)

Menghitung jumlah elemen dalam array.

b)

Menghitung faktorial bilangan bulat positif.

c)

Mengurutkan daftar angka secara ascending.

d)

Menentukan bilangan prima dari 1 hingga n.

56.

Apa prinsip dasar dari algoritma greedy?

a)

Mempertimbangkan semua kemungkinan sebelum membuat keputusan.

b)

Mengabaikan solusi lokal demi solusi global.

c)

Menggunakan pendekatan brute force untuk mencari solusi.

d)

Memilih opsi terbaik secara lokal pada setiap langkah.

57.

Sebutkan kelebihan dan kekurangan dari pendekatan greedy.

a)

Kelebihan: sederhana, cepat, sering memberikan hasil baik. Kekurangan: tidak selalu optimal, keputusan awal bisa suboptimal.

b)

Kelebihan: memerlukan banyak memori, Kekurangan: selalu memberikan hasil terbaik.

c)

Kelebihan: kompleks, Kekurangan: cepat dan efisien.

d)

Kelebihan: selalu optimal, Kekurangan: lambat dan rumit.

58.

Jelaskan apa yang dimaksud dengan berpikir komputasi.

a)

Berpikir komputasi adalah pendekatan sistematis untuk memecahkan masalah dengan menggunakan konsep dari ilmu komputer.

b)

Berpikir komputasi adalah metode untuk menggambar diagram.

c)

Berpikir komputasi hanya digunakan dalam pemrograman komputer.

d)

Berpikir komputasi adalah cara untuk menghitung angka dengan cepat.

59.

Mengapa berpikir komputasi penting dalam pemecahan masalah?

a)

Berpikir komputasi penting karena memudahkan pemecahan masalah kompleks dengan pendekatan sistematis.

b)

Berpikir komputasi tidak berhubungan dengan pemecahan masalah.

c)

Berpikir komputasi hanya berguna untuk pemrograman.

d)

Berpikir komputasi lebih baik dilakukan secara acak.

60.

Apa itu pemrograman dinamis?

a)

Pemrograman dinamis adalah metode untuk menghindari sub-masalah.

b)

Pemrograman dinamis adalah metode untuk menyelesaikan masalah dengan membagi menjadi sub-masalah dan menyimpan hasilnya.

c)

Pemrograman dinamis hanya digunakan untuk aplikasi web.

d)

Pemrograman dinamis adalah teknik untuk menulis kode secara acak.

61.

Sebutkan perbedaan antara pemrograman dinamis dan rekursi.

a)

Pemrograman dinamis hanya digunakan untuk masalah sederhana.

b)

Rekursi selalu lebih cepat daripada pemrograman dinamis.

c)

Pemrograman dinamis menyimpan hasil sub-masalah, sedangkan rekursi memanggil fungsi secara berulang tanpa penyimpanan.

d)

Pemrograman dinamis tidak dapat digunakan untuk menyelesaikan masalah yang sama dengan rekursi.

62.

Berikan contoh masalah yang dapat diselesaikan dengan pemrograman dinamis.

a)

Masalah pencocokan pola (pattern matching problem)

b)

Masalah pencarian jalur terpendek (shortest path problem)

c)

Masalah knapsack (knapsack problem)

d)

Masalah pengurutan (sorting problem)

63.

Apa yang dimaksud dengan subproblem dalam pemrograman dinamis?

a)

Subproblem adalah masalah yang tidak relevan dengan pemrograman dinamis.

b)

Subproblem adalah masalah lebih kecil yang digunakan untuk menyelesaikan masalah yang lebih besar dalam pemrograman dinamis.

c)

Subproblem adalah bagian dari algoritma yang tidak dapat dipecahkan.

d)

Subproblem adalah solusi akhir dari masalah yang lebih besar.

64.

Jelaskan bagaimana algoritma greedy dapat digunakan dalam masalah knapsack.

a)

Algoritma greedy memilih item secara acak tanpa mempertimbangkan nilai atau berat.

b)

Algoritma greedy hanya dapat digunakan untuk masalah knapsack 0/1.

c)

Algoritma greedy mengutamakan item dengan berat lebih rendah tanpa memperhatikan nilai.

d)

Algoritma greedy dapat digunakan dalam masalah knapsack dengan memilih item berdasarkan rasio nilai terhadap beratnya.

65.

Apa itu memoization dalam konteks pemrograman dinamis?

a)

Memoization adalah teknik optimasi untuk menyimpan hasil fungsi yang telah dihitung.

b)

Memoization adalah metode untuk menghapus fungsi yang tidak terpakai.

c)

Memoization adalah cara untuk mempercepat proses input data.

d)

Memoization adalah teknik untuk mengubah algoritma menjadi lebih kompleks.

66.

Sebutkan langkah-langkah dalam menyusun algoritma rekursif.

a)

1. Tentukan algoritma, 2. Buat diagram alur, 3. Uji coba algoritma, 4. Dokumentasikan hasil, 5. Implementasikan kode.

b)

1. Identifikasi variabel, 2. Buat fungsi utama, 3. Tentukan batasan, 4. Uji coba dengan data, 5. Optimalkan performa.

c)

1. Rancang antarmuka, 2. Kembangkan modul, 3. Lakukan pengujian unit, 4. Integrasikan sistem, 5. Rilis produk.

d)

1. Identifikasi masalah, 2. Tentukan kondisi dasar, 3. Definisikan langkah rekursif, 4. Gabungkan hasil, 5. Uji algoritma.

67.

Apa yang dimaksud dengan optimal substructure dalam algoritma?

a)

Optimal substructure adalah cara untuk menghindari penggunaan rekursi.

b)

Optimal substructure adalah sifat di mana solusi optimal dari suatu masalah dapat dibentuk dari solusi optimal submasalahnya.

c)

Optimal substructure hanya berlaku untuk algoritma greedy.

d)

Optimal substructure adalah metode untuk mengoptimalkan penggunaan memori.

68.

Jelaskan bagaimana cara kerja algoritma greedy dengan contoh.

a)

Algoritma greedy hanya dapat digunakan untuk masalah yang memiliki solusi unik.

b)

Algoritma greedy memilih opsi terbaik lokal pada setiap langkah untuk mencapai solusi global.

c)

Algoritma greedy mengabaikan langkah-langkah sebelumnya dan memilih secara acak.

d)

Algoritma greedy selalu memilih opsi terburuk untuk mencapai solusi optimal.

69.

Apa tantangan utama dalam menerapkan algoritma pemrograman dinamis?

a)

Menggunakan algoritma greedy yang lebih sederhana.

b)

Memahami dan mengidentifikasi submasalah yang relevan.

c)

Menerapkan algoritma brute force tanpa optimasi.

d)

Mengabaikan kompleksitas waktu dalam perhitungan.

70.

Proses mendefinisikan “sesuatu” yang

mengandung “sesuatu” itu sendiri disebut dengan . . .

a)

rekursi

b)

greedy

c)

problem solving

d)

testing

e)

coding

71.


Arti harfiah dari rakus adalah . . .

a)

rekursi

b)

greedy

c)

problem solving

d)

testing

e)

coding

72.

Yang menerapkan prinsip “mengambil

serangkaian langkah terbaik pada setiap saat” adalah ....

a)

rekursi

b)

greedy

c)

problem solving

d)

testing

e)

coding

73.

Yang menunjukkan nilai awal dari barisan tersebut disebut . . .

a)

basis

b)

greedy

c)

rekursi

d)

testing

e)

coding

74.

Tentukan suku ke-6 dari barisan yang didefinisikan:

a)

10

b)

11

c)

21

d)

28

e)

30

75.

Tentukan suku ke-8 dari barisan yang didefinisikan barisan tersebut dimulai dengan

nilai 1, 3, ...

a)

5

b)

9

c)

13

d)

15

e)

17

76.

Greedy adalah salah satu teknik penyelesaian masalah yang digunakan untuk menyelesaikan . . .


a)


Permasalahan analisis

b)


Permasalahan pengulangan

c)

Permasalahan optimasi

d)


Dekomposisi permasalahan besar

e)

Barisan Fibonacci

77.

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 . . .

a)

1

b)

2

c)

3

d)

4

e)

5

78.

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 . . .

a)

1

b)

2

c)

3

d)

4

e)

5

79.

Dari soal sebelumnya (gambar), rute mana saja yang merupakan jalur terpendek? Berapa kilometer?

a)

rute 1 ke 2 ke 5 ke 7, 9 kilometer

b)

rute 1 ke 3 ke 6 ke 7, 15 kilometer

c)

rute 1 ke 3 ke 5 ke 7, 25 kilometer

d)

rute 1 ke 4 ke 5 ke 7, 21 kilometer

e)

rute 1 ke 4 ke 6 ke 7, 24 kilometer

80.

Apa yang dimaksud dengan rekursi?

a)

Rekursi adalah metode pemrograman di mana fungsi memanggil dirinya sendiri.

b)

Rekursi adalah teknik untuk menghindari penggunaan fungsi.

c)

Rekursi adalah cara untuk menulis kode tanpa menggunakan fungsi.

d)

Rekursi adalah metode untuk mengoptimalkan penggunaan memori.

81.

Sebutkan dua contoh penggunaan rekursi dalam pemrograman!

a)

Mencetak string terbalik

b)

Menghitung jumlah elemen dalam array

c)

Menentukan nilai maksimum dalam daftar

d)

1. Menghitung faktorial (n!) 2. Mencari bilangan Fibonacci (F(n))

82.

Jelaskan perbedaan antara rekursi dan iterasi!

a)

Rekursi menggunakan pemanggilan fungsi sendiri, sedangkan iterasi menggunakan loop.

b)

Rekursi tidak dapat menyelesaikan masalah yang sama dengan iterasi.

c)

Iterasi hanya dapat digunakan dalam bahasa pemrograman tertentu.

d)

Rekursi lebih cepat daripada iterasi.

83.

Apa itu basis kasus dalam rekursi?

a)

Basis kasus adalah proses yang mempercepat rekursi.

b)

Basis kasus adalah bagian dari fungsi rekursif.

c)

Basis kasus adalah variabel yang menyimpan hasil rekursi.

d)

Basis kasus adalah kondisi yang menghentikan rekursi.

84.

Berikan contoh fungsi rekursif untuk menghitung faktorial!

a)

function faktorial(n) { return n === 1 ? 1 : n + faktorial(n - 1); }

b)

function faktorial(n) { return n * faktorial(n + 1); }

c)

function faktorial(n) { return n < 0 ? 0 : n * faktorial(n); }

d)

function faktorial(n) { return n === 0 ? 1 : n * faktorial(n - 1); }

85.

Apa yang terjadi jika tidak ada basis kasus dalam fungsi rekursif?

a)

Fungsi rekursif akan berhenti secara otomatis.

b)

Fungsi rekursif akan berjalan lebih cepat.

c)

Fungsi rekursif akan menyebabkan stack overflow.

d)

Fungsi rekursif akan mengembalikan nilai nol.

86.

Sebutkan keuntungan menggunakan rekursi!

a)

Mengurangi kecepatan eksekusi

b)

Keuntungan menggunakan rekursi antara lain: memudahkan pemecahan masalah kompleks, membuat kode lebih bersih, dan meningkatkan keterbacaan.

c)

Meningkatkan penggunaan memori

d)

Membuat kode lebih rumit

87.

Jelaskan bagaimana rekursi dapat digunakan untuk menyelesaikan masalah Fibonacci!

a)

Fibonacci hanya dapat dihitung dengan metode iteratif.

b)

Rekursi tidak dapat digunakan untuk menghitung angka Fibonacci.

c)

F(n) = F(n-1) - F(n-2) adalah rumus yang benar untuk Fibonacci.

d)

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.

88.

Apa yang dimaksud dengan tumpukan (stack) dalam konteks rekursi?

a)

Tumpukan (stack) adalah metode untuk menyimpan data dalam bentuk tabel.

b)

Tumpukan (stack) adalah struktur data yang menyimpan informasi tentang fungsi yang sedang dieksekusi dalam rekursi.

c)

Tumpukan (stack) adalah struktur data yang hanya menyimpan variabel global.

d)

Tumpukan (stack) digunakan untuk menyimpan data secara acak tanpa urutan.

89.

Sebutkan satu kelemahan dari penggunaan rekursi!

a)

Tidak memerlukan banyak kode.

b)

Penggunaan memori yang tinggi.

c)

Mudah dipahami oleh pemula.

d)

Penggunaan waktu yang rendah.

90.

Jelaskan bagaimana analisis kompleksitas waktu dilakukan pada fungsi rekursif!

a)

Fungsi rekursif selalu memiliki kompleksitas waktu yang tetap.

b)

Kompleksitas waktu hanya dihitung dengan menghitung jumlah iterasi.

c)

Analisis kompleksitas waktu tidak diperlukan untuk fungsi rekursif.

d)

Kompleksitas waktu fungsi rekursif dianalisis dengan menulis persamaan rekurens dan menyelesaikannya.

91.

Apa itu rekursi langsung dan rekursi tidak langsung?

a)

Rekursi langsung dan rekursi tidak langsung adalah dua jenis rekursi dalam pemrograman.

b)

Rekursi adalah teknik yang hanya digunakan dalam matematika.

c)

Rekursi langsung hanya digunakan dalam algoritma sorting.

d)

Rekursi tidak langsung adalah metode pengulangan tanpa fungsi.

92.

Berikan contoh masalah yang dapat diselesaikan dengan rekursi!

a)

Menghitung faktorial bilangan bulat positif.

b)

Menghitung jumlah bilangan genap dalam array.

c)

Menentukan bilangan prima dari 1 hingga n.

d)

Menghitung rata-rata dari sekumpulan angka.

93.

Jelaskan bagaimana rekursi dapat digunakan untuk traversing pohon!

a)

Rekursi digunakan untuk menghitung jumlah node dalam pohon.

b)

Rekursi dapat digunakan untuk traversing pohon dengan memanggil fungsi rekursif untuk setiap anak node.

c)

Rekursi hanya dapat digunakan untuk traversing daftar.

d)

Traversing pohon tidak memerlukan fungsi rekursif.

94.

Apa yang dimaksud dengan rekursi tail?

a)

Rekursi tail adalah rekursi yang tidak memiliki batasan.

b)

Rekursi tail adalah teknik pengulangan tanpa menggunakan fungsi.

c)

Rekursi tail adalah rekursi di mana pemanggilan fungsi rekursif adalah langkah terakhir dalam fungsi.

d)

Rekursi tail adalah pemanggilan fungsi yang dilakukan secara bersamaan.

95.

Sebutkan langkah-langkah untuk menganalisis kompleksitas ruang dari fungsi rekursif!

a)

Kompleksitas ruang dari fungsi rekursif dapat dianalisis dengan menghitung ruang yang digunakan pada setiap panggilan dan total kedalaman rekursi.

b)

Menghitung waktu eksekusi dari fungsi rekursif.

c)

Menentukan jumlah variabel yang digunakan dalam fungsi.

d)

Menganalisis kompleksitas waktu dari fungsi rekursif.

96.

Apa yang dimaksud dengan memoization dalam konteks rekursi?

a)

Memoization adalah teknik untuk mengurangi penggunaan memori dalam program.

b)

Memoization adalah teknik untuk menyimpan hasil perhitungan fungsi dalam rekursi.

c)

Memoization adalah metode untuk menghapus fungsi dalam rekursi.

d)

Memoization adalah cara untuk mempercepat eksekusi program dengan mengabaikan hasil sebelumnya.

97.

Jelaskan bagaimana rekursi dapat digunakan untuk menyelesaikan masalah pencarian!

a)

Rekursi tidak dapat digunakan dalam pencarian data.

b)

Rekursi mengharuskan semua data disimpan dalam array.

c)

Rekursi hanya digunakan untuk menghitung nilai faktorial.

d)

Rekursi dapat digunakan untuk menyelesaikan masalah pencarian dengan membagi masalah menjadi sub-masalah dan menjelajahi struktur data secara mendalam.

98.

Apa peran parameter dalam fungsi rekursif?

a)

Parameter tidak berpengaruh pada alur eksekusi fungsi rekursif.

b)

Parameter dalam fungsi rekursif hanya digunakan untuk menyimpan data statis.

c)

Parameter dalam fungsi rekursif hanya untuk tujuan dokumentasi.

d)

Parameter dalam fungsi rekursif digunakan untuk menyimpan nilai dan mengontrol alur rekursi.

99.

Sebutkan satu contoh masalah yang lebih efisien diselesaikan dengan iterasi daripada rekursi!

a)

Menghitung faktorial dari sebuah angka.

b)

Menemukan nilai maksimum dalam sebuah list.

c)

Mencetak deret Fibonacci.

d)

Menghitung jumlah elemen dalam array.