wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Quiz Pengembangan Perangkat Lunak

Total questions: 40

Worksheet time: 39mins

Name
Class
Date
1.

Apa langkah pertama yang harus dilakukan dalam proses pengembangan perangkat lunak?

a)

Coding

b)

Mendesain antarmuka

c)

Menganalisis permasalahan

d)

Menguji program

2.

Setelah masalah dianalisis, apa langkah berikutnya dalam proses pemrograman?

a)

Menguji program

b)

Mendesain solusi

c)

Mengoptimalkan kode

d)

Menyusun laporan bug

3.

Apa tujuan utama dari proses coding dalam pengembangan perangkat lunak?

a)

Mengidentifikasi masalah pengguna

b)

Mengimplementasikan desain solusi ke dalam bahasa pemrograman

c)

Menganalisis kesalahan program

d)

Menguji kompatibilitas program

4.

Salah satu peran algoritma adalah merancang solusi. Apa yang dimaksud dengan merancang solusi dalam konteks pemrograman?

a)

Menyusun serangkaian langkah logis untuk mencapai hasil yang diinginkan

b)

Mengembangkan antarmuka pengguna yang responsif dan interaktif

c)

Menciptakan model data yang kompleks untuk mendukung aplikasi

d)

Menentukan alat pengembangan yang akan digunakan dalam proyek

5.

Apa manfaat dari reusabilitas kode yang dipengaruhi oleh algoritma dalam pemrograman?

a)

Mengurangi kebutuhan untuk mendokumentasikan setiap bagian dari kode

b)

Memungkinkan penggunaan kembali fungsi-fungsi yang telah teruji untuk efisiensi waktu

c)

Menciptakan ketergantungan antara proyek yang mengurangi fleksibilitas

d)

Meningkatkan kompleksitas dalam integrasi berbagai modul kode

6.

Dalam konteks pembelajaran dan pengajaran, bagaimana algoritma berkontribusi?

a)

Dengan memberikan pendekatan yang kaku dan tidak fleksibel dalam pemrograman

b)

Dengan memberikan struktur dan metode yang jelas untuk mengajarkan konsep-konsep dasar

c)

Dengan meningkatkan kesulitan dalam memahami logika dan prosedur

d)

Dengan fokus pada teknik pengkodean tanpa memperhatikan teori yang mendasarinya

7.

Bee Bot berada di kapal selam dan ingin mencapai sarung tangan baseball, tetapi hanya dapat bergerak dalam pola "maju" atau "belok kiri". Berapa langkah minimal yang diperlukan?

a)

3 langkah

b)

4 langkah

c)

5 langkah

d)

6 langkah

8.

Bee Bot mulai di bus sekolah dan ingin mencapai gergaji. Jika Bee Bot hanya bisa belok ke kiri, berapa kali Bee Bot harus belok untuk mencapai gergaji?

a)

1 kali

b)

2 kali

c)

3 kali

d)

4 kali

9.

Jika kode berikut dimasukkan ke dalam program: Apa yang terjadi jika inputnya adalah 2, 3, 4 setelah kode utama?

a)

panjang total kecil

b)

Panjang total cukup

c)

Segitiga sama kaki

d)

Bukan segitiga

10.

Diberikan potongan kode berikut: Apa yang akan dicetak jika pengguna memasukkan input 0, 5, 5?

a)

Segitiga sama kaki

b)

Masukkan Panjang sisi segitiga

c)

Panjang sisi tidak valid

d)

Bukan Segitiga

11.

Diberikan potongan kode berikut:

Apa yang harus ditangani oleh program jika inputnya adalah 0, 0, 0?

a)

Program akan mencetak “SEGITIGA SAMA SISI”

b)

Program akan mencetak “BUKAN SEGITIGA”

c)

Program akan mencetak “PANJANG SISI TIDAK VALID”

d)

Program akan mencetak “SEGITIGA SEMBARANG”

12.

Dalam penyelesaian masalah Divide and Conquer, langkah-langkah utama yang dilakukan untuk menyelesaikan masalah adalah:

a)

Membagi masalah, menaklukkan sub-masalah, dan menggabungkan hasil sub-masalah.

b)

Menentukan solusi optimal dari setiap langkah tanpa mempertimbangkan keseluruhan masalah.

c)

Menghitung semua solusi dari sub-masalah lalu memilih solusi terbaik.

d)

Memecah masalah, menyelesaikan setiap bagian dengan iterasi, dan menyimpan hasil untuk digunakan kembali.

13.

Algoritma runut balik (backtracking) digunakan untuk:

a)

Mengambil keputusan secara berulang dengan memilih langkah optimal pada setiap tahap tanpa mempertimbangkan kemungkinan lainnya.

b)

Mencoba semua kemungkinan solusi dengan mundur jika suatu jalur solusi tidak berhasil.

c)

Membagi masalah menjadi sub-masalah yang saling bergantung dan menggabungkan solusinya.

d)

Menggunakan hasil dari setiap sub-masalah untuk menyelesaikan masalah yang lebih besar.

14.

Salah satu ciri khas algoritma pemrograman dinamis adalah:

a)

Tidak pernah mengulang penghitungan sub-masalah yang sama

b)

Memilih solusi terbaik pada setiap langkah

c)

Menghitung solusi dari setiap kemungkinan yang mungkin

d)

Menghitung solusi dengan cara membagi masalah menjadi bagian yang lebih kecil, lalu menyimpan hasil sub-masalah untuk digunakan kembali

15.

Manakah dari berikut ini yang merupakan contoh masalah yang sering diselesaikan dengan menggunakan algoritma rekursif?

a)

Mencari elemen terbesar dalam sebuah array

b)

Menghitung faktorial dari sebuah bilangan

c)

Mengurutkan array dengan bubble sort

d)

Menghitung rata-rata dari elemen-elemen dalam array

16.

Dalam algoritma greedy, solusi optimal dicapai dengan cara:

a)

Mempertimbangkan semua kemungkinan dan memilih solusi terbaik pada akhirnya

b)

Memecah masalah menjadi sub-masalah yang lebih kecil

c)

Memilih solusi yang terbaik pada setiap langkah tanpa mempertimbangkan langkah berikutnya

d)

Menggunakan tabel untuk menyimpan hasil sub-masalah yang sudah dihitung

17.

Manakah dari berikut ini yang merupakan contoh masalah optimasi yang cocok diselesaikan dengan algoritma pemrograman dinamis berdasarkan diagram di atas?

a)

Mencari rute terpendek dari kota 1 ke kota 3.

b)

Mencari rute terpanjang dari kota 2 ke kota 4.

c)

Menentukan urutan kunjungan ke semua kota dengan total jarak terpendek.

d)

Mencari jumlah kombinasi rute yang mungkin dari kota 1 ke kota 4.

18.

Apa konsep dasar pemrograman dinamis yang dapat diterapkan untuk menyelesaikan masalah ini?

a)

Divide and conquer

b)

Greedy algorithm

c)

Backtracking

d)

Memoization

19.

Berikut adalah versi lain dari fungsi faktorial: Apa hasil dari pemanggilan faktorial(6)?

a)

720

b)

48

c)

36

d)

15

20.

Apa yang terjadi jika kita memanggil fungsi berikut dengan n = -1?

a)

Fungsi akan melempar kesalahan (error).

b)

Fungsi akan masuk ke dalam loop tak terbatas.

c)

Fungsi akan mengembalikan nilai negatif.

d)

Fungsi akan mengembalikan 0.

21.

Hitunglah nilai dari

a)

20

b)

30

c)

10

d)

15

22.

Hitunglah nilai

a)

1680

b)

280

c)

100

d)

240

23.

Jika m = 4 dan n = 5, hitunglah nilai

a)

6,5

b)

5

c)

4

d)

7,1

24.

Jika F(n) adalah bilangan Fibonacci ke-n, berapa nilai F(15) - F(13) - F(12)?

a)

240

b)

201

c)

233

d)

231

25.

Deret Fibonacci didefinisikan sebagai F(0)=0,F(1)=1, dan F(n)=F(n−1)+F(n−2) untuk n ≥2. Apa nilai dari F(7)+F(6)?

a)

21

b)

34

c)

55

d)

44

26.

Jika F(n) adalah bilangan Fibonacci ke-n, berapa rasio F(n)/F(n−1) ketika n mendekati tak terhingga?

a)

1

b)

2

c)

ϕ (Golden Ratio)

d)

0

27.

Apa tujuan dari fungsi minpecahan dalam program di bawah? void minpecahan(int jumlah) { int uang [10] = {100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000};

a)

Menjumlahkan semua uang yang diberikan

b)

Menghitung dan mencetak jumlah pecahan uang berdasarkan jumlah yang dimasukkan

c)

Menghitung total uang yang dapat dibagikan

d)

Menyimpan pecahan uang dalam array

28.

Berapa banyak jenis pecahan uang yang didefinisikan dalam array uang?

a)

5

b)

10

c)

15

d)

20

29.

Apa yang terjadi jika jumlah uang yang dimasukkan adalah 3000?

a)

Program akan mencetak "3000" satu kali

b)

Program akan mencetak "2000" dan "1000"

c)

Program akan mencetak "1000" tiga kali

d)

Program tidak akan mencetak apapun

30.

Jika kita mengubah kondisi if (n == 1 || n == 2) menjadi if (n == 1), apa efeknya pada keluaran program?

a)

Program akan menghasilkan keluaran yang sama

b)

Program tidak akan menghasilkan deret Fibonacci yang benar untuk nilai n = 2

c)

Program akan mengalami error runtime

d)

Program tidak dapat menangani input yang lebih besar dari 10

31.

Apa fungsi dari baris kode berikut?

a)

Untuk menampilkan koma di antara angka-angka dalam deret Fibonacci

b)

Untuk menampilkan angka terakhir tanpa koma

c)

Untuk menghentikan deret Fibonacci di angka tertentu

d)

Untuk menghindari mencetak angka pertama

32.

Mengapa Fibonacci(n-1) + Fibonacci(n-2) digunakan dalam fungsi Fibonacci?

a)

Untuk menghitung nilai Fibonacci secara iteratif

b)

Untuk menghitung nilai Fibonacci secara rekursif

c)

Untuk mempercepat proses perhitungan

d)

Untuk menangani kasus input negatif

33.

Jika program dimodifikasi menjadi seperti berikut:

for (int i = 2; i < n; i++) {

Bagaimana hal ini akan mempengaruhi hasil perhitungan Fibonacci?

a)

Program akan memberikan hasil yang salah untuk nilai n = 2

b)

Program akan memberikan hasil yang salah untuk semua nilai n lebih besar dari 2

c)

Program akan memberikan hasil yang benar hanya untuk n = 0

d)

Tidak ada perubahan dalam hasil karena hanya sedikit modifikasi pada batas perulangan

34.

Bagaimana cara memperbaiki kode program untuk menghindari perhitungan ulang yang berlebihan dalam fungsi Fibonacci dan mempercepat kinerja?

a)

Mengganti rekursi dengan iterasi

b)

Menambahkan fungsi rekursi ekor (tail recursion)

c)

Menggunakan memoization atau teknik penyimpanan hasil perhitungan sebelumnya

d)

Menambah lebih banyak kondisi pada pernyataan if

35.

Apa fungsi dari kode unsigned long long Faktorial(int n)?

a)

Menghitung nilai pangkat dari suatu bilangan.

b)

Menghitung nilai faktorial secara rekursif.

c)

Menghitung nilai penjumlahan bilangan bulat.

d)

Menghitung hasil perkalian bilangan secara berulang.

36.

Mengapa digunakan tipe data unsigned long long pada variabel varFaktorial?

a)

Untuk menyimpan nilai negatif.

b)

Untuk memastikan variabel dapat menyimpan bilangan besar.

c)

Karena tipe data lain tidak bisa digunakan.

d)

Agar program lebih cepat.

37.

Pada fungsi Faktorial(), manakah pernyataan yang benar tentang base case dan recursion call?

a)

Base case terjadi ketika n == 1, dan recursion call terjadi pada saat return n * Faktorial(n + 1).

b)

Base case terjadi ketika n == 1, dan recursion call terjadi pada saat return n * Faktorial(n - 1).

c)

Base case terjadi ketika n == 0, dan recursion call terjadi pada saat return Faktorial(n - 1).

d)

Tidak ada base case dalam fungsi ini, hanya ada recursion call.

38.

Mengapa base case diperlukan dalam fungsi rekursif seperti Faktorial() di bawah?

a)

Agar fungsi tidak pernah berhenti dan terus memanggil dirinya sendiri.

b)

Agar fungsi memiliki titik berhenti sehingga rekursi tidak berjalan selamanya.

c)

Untuk memastikan nilai n selalu dikurangi dalam setiap pemanggilan fungsi.

d)

Untuk menghindari penggunaan operator perkalian dalam fungsi rekursif.

39.

Lulusan Informatika dapat bekerja di berbagai industri. Di bawah ini, mana yang merupakan bidang kerja potensial bagi lulusan Informatika?

a)

Pariwisata

b)

Teknologi Finansial (Fintech)

c)

Pertanian

d)

Konstruksi

40.

Lulusan jurusan Informatika banyak dicari di industri karena kemampuannya dalam:

a)

Mengelola keuangan perusahaan

b)

Mendesain bangunan

c)

Membuat dan mengelola sistem informasi

d)

Menulis artikel berita