Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Latihan Soal PSAS Informatika Kelas 11

Total questions: 60

Worksheet time: 3600secs

Name
Class
Date
1.

Algoritma dalam pemrograman dapat diartikan sebagai

a)

Sekumpulan data yang digunakan untuk membuat program

b)

Serangkaian langkah logis dan sistematis untuk menyelesaikan masalah

c)

Diagram alur dari suatu proses pemrograman

d)

Bahasa pemrograman tingkat tinggi

e)

Langkah percobaan dalam menyusun kode program

2.

Urutan logis dalam algoritma harus

a)

Bebas dan tidak terstruktur

b)

Menggunakan simbol-simbol tertentu

c)

Logis, sistematis, dan berurutan

d)

Berdasarkan tampilan visual

e)

Dapat berubah sesuai keinginan

3.

Manfaat utama membuat flowchart sebelum menulis program adalah

a)

Mengurangi penggunaan bahasa pemrograman

b)

Memudahkan visualisasi alur logika program

c)

Menghemat kapasitas memori

d)

Meningkatkan kecepatan kompilasi

e)

Mengurangi jumlah kode

4.

Perbedaan utama algoritma dan flowchart adalah

a)

Algoritma bersifat visual, flowchart bersifat tekstual

b)

Algoritma digunakan untuk simulasi, flowchart untuk perhitungan

c)

Algoritma adalah deskripsi teks, flowchart adalah representasi visual

d)

Flowchart lebih sulit dipahami daripada algoritma

e)

Flowchart tidak memiliki simbol standar

5.

Langkah pertama dalam membuat algoritma adalah

a)

Menuliskan hasil keluaran

b)

Mengidentifikasi masalah yang akan diselesaikan

c)

Menggambar simbol flowchart

d)

Menentukan bahasa pemrograman

e)

Melakukan kompilasi

6.

Contoh algoritma kehidupan sehari-hari adalah

a)

Menulis program dalam Python

b)

Membuat laporan hasil praktikum

c)

Langkah-langkah membuat kopi

d)

Menggambar flowchart di komputer

e)

Menentukan nilai rata-rata dengan rumus

7.

Keuntungan menggunakan pseudocode adalah

a)

Tidak perlu logika dalam menulis program

b)

Dapat langsung dijalankan oleh komputer

c)

Menyederhanakan logika tanpa terikat bahasa pemrograman

d)

Menggantikan kebutuhan akan flowchart

e)

Tidak perlu memahami algoritma

8.

Dalam flowchart, oval digunakan untuk

a)

Menunjukkan awal atau akhir proses

b)

Menampilkan hasil perhitungan

c)

Menghubungkan dua proses

d)

Mengambil keputusan

e)

Menyimpan data

9.

Mengapa penting menguji algoritma sebelum diimplementasikan ke dalam program

a)

Agar tampilan visual menjadi menarik

b)

Untuk memastikan logika algoritma berjalan benar

c)

Untuk menambah baris kode

d)

Agar simbol flowchart lengkap

e)

Agar proses input menjadi lebih cepat

10.

Jika algoritma tidak terstruktur dengan baik, maka kemungkinan besar

a)

Program akan berjalan lebih cepat

b)

Program sulit dipahami dan rentan kesalahan

c)

Flowchart menjadi lebih sederhana

d)

Tidak memerlukan pengujian

e)

Dapat langsung dijalankan

11.

Simbol panah pada flowchart menunjukkan

a)

Keputusan Ya/Tidak

b)

Alur atau arah proses

c)

Input data

d)

Proses perhitungan

e)

Output hasil

12.

Langkah "Input data pengguna" pada flowchart biasanya diwakili oleh simbol

a)

Persegi panjang

b)

Jajar genjang

c)

Belah ketupat

d)

Oval

13.

Ketika sebuah algoritma ditulis dalam bentuk pseudocode, tujuannya adalah...

a)

Memastikan penggunaan bahasa pemrograman tertentu

b)

Menjelaskan logika secara sederhana dan universal

c)

Menentukan desain tampilan program

d)

Menulis hasil keluaran program

e)

Mengganti flowchart

14.

Flowchart membantu programmer karena...

a)

Menghapus kebutuhan untuk mengetik kode

b)

Menyediakan visualisasi alur logika

c)

Meningkatkan estetika program

d)

Mengurangi jumlah variabel

e)

Mengatur sintaks bahasa

15.

Langkah terakhir dalam algoritma biasanya adalah...

a)

Inisialisasi variabel

b)

Input data

c)

Proses perhitungan

d)

Menampilkan hasil dan mengakhiri program

e)

Keputusan bercabang

16.

Flowchart yang baik seharusnya...

a)

Menggunakan simbol secara bebas

b)

Hanya berisi proses tanpa keputusan

c)

Jelas, ringkas, dan mengikuti urutan logis

d)

Menggunakan warna yang menarik

e)

Memiliki banyak cabang

17.

Contoh penerapan algoritma dalam pemrograman adalah...

a)

Menggambar flowchart

b)

Menentukan langkah-langkah menghitung luas segitiga

c)

Menulis laporan praktikum

d)

Mendesain tampilan aplikasi

e)

Membuat grafik data

18.

Urutan algoritma menghitung luas segitiga adalah...

a)

Input → Output → Hitung

b)

Mulai → Proses → Input → Output

c)

Mulai → Input → Hitung → Output

d)

Input → Mulai → Output

e)

Mulai → Hitung → Input

19.

Jika sebuah percabangan memiliki dua cabang, maka...

a)

Program harus diulang

b)

Harus ada kondisi Ya/Tidak

c)

Program langsung selesai

d)

Algoritma tidak dapat dilanjutkan

e)

Harus kembali ke awal

20.

Kelebihan dari pseudocode adalah...

a)

Hanya dipahami programmer ahli

b)

Bergantung pada bahasa tertentu

c)

Mengabaikan logika dan fokus sintaks

d)

Mudah dipahami lintas Bahasa

e)

Hanya untuk proyek besar

21.

Simbol terminator dalam flowchart digunakan untuk...

a)

Proses

b)

Pengulangan

c)

Mulai dan selesai

d)

Input

e)

Penyimpanan

22.

Jika dalam flowchart terdapat langkah "Input angka A dan B", langkah logis berikutnya adalah...

a)

Hapus variable

b)

Hitung sesuai kebutuhan

c)

Tampilkan gambar

d)

Keluar program

e)

Kembali ke awal

23.

Tipe data untuk nilai desimal adalah...

a)

Integer

b)

Float

c)

Boolean

d)

String

e)

Char

24.

Representasi algoritma paling cocok untuk menggambarkan alur proses adalah...

a)

Tabel

b)

Flowchart

c)

Paragraf

d)

Rumus

e)

Gambar bebas

25.

Contoh penulisan pseudocode yang benar adalah...

a)

start: {print “halo”}

b)

BEGIN PRINT “halo” END

c)

d)

run halo()

e)

OUTPUT: start()

26.

Sebuah algoritma menambah nilai x dengan 5 lalu mengalikannya dengan 2. Jika x = 3, hasilnya adalah...

a)

6

b)

8

c)

10

d)

16

e)

18

27.

Jika flowchart menunjukkan proses "C = A + B", maka...

a)

Nilai A dikurangi B

b)

Nilai C adalah hasil penjumlahan A dan B

c)

Nilai B dikalikan A

d)

Nilai B dibagi A

e)

A menjadi nol

28.

Perintah for i in range(4): akan mengulang sebanyak...

a)

1 kali

b)

2 kali

c)

3 kali

d)

4 kali

e)

0 kali

29.

Jika kondisi if umur >= 17: benar, maka program akan...

a)

Menghentikan program

b)

Masuk ke blok if

c)

Masuk ke blok else

d)

Mengulang program

e)

Menghapus variable

30.

Pseudocode berikut memiliki kesalahan: BEGIN INPUT A OUTPUT A + END Kesalahan terletak pada...

a)

Tidak ada END

b)

Kurangnya nilai setelah operator +

c)

Salah menggunakan BEGIN

d)

INPUT tidak boleh digunakan

e)

OUTPUT tidak boleh berada di akhir

31.

Output dari kode berikut adalah: for i in range(5): print("X")

a)

X

b)

XX

c)

XXXXX

d)

Tidak tampil

e)

Error

32.

Jika kondisi dalam flowchart adalah "A > B" dan A = 3, B = 6, maka alur yang dipilih adalah...

a)

True

b)

False

c)

Loop

d)

Input ulang

e)

Error

33.

Perintah "Masukkan angka N" merupakan bagian dari...

a)

Proses

b)

Output

c)

Input

d)

Penyimpanan

e)

Terminator

34.

Kode berikut menghasilkan error: print("Halo" Kesalahan terjadi karena...

a)

Variabel tidak ada

b)

Tanda kutip salah

c)

Tanda kurung kurang

d)

print tidak boleh pakai tanda kutip

e)

print harus diawali dengan END

35.

Masalah yang cocok diselesaikan dengan DP adalah yang memiliki...

a)

Solusi acak

b)

Greedy choice property

c)

Overlapping subproblems

d)

Tidak memerlukan memori

e)

Data sangat sedikit

36.

Rekursi tidak efektif digunakan jika...

a)

Masalah sederhana

b)

Basis kecil

c)

Kedalaman rekursi sangat besar

d)

Rekursi menggunakan parameter

e)

Fungsi memiliki satu return

37.

Mengapa DP lebih cepat daripada rekursi biasa pada Fibonacci?

a)

Karena memakai memori lebih kecil

b)

Menyimpan hasil submasalah sebelumnya

c)

Tidak memakai perulangan

d)

Mengubah fungsi menjadi iterative

e)

Memotong input

38.

Dalam memilih paket internet terbaik, seseorang memilih paket dengan kuota terbesar per rupiah. Keputusan ini berdasarkan...

a)

DP optimization

b)

Fractional knapsack greedy

c)

Rekursi

d)

Full search

e)

Hashing

39.

Untuk memasukkan sebanyak mungkin rapat ke dalam sehari, kita memilih rapat dengan waktu selesai tercepat. Ini adalah...

a)

Activity Selection Greedy

b)

Prim Algorithm

c)

Dynamic Programming

d)

Dijkstra Full

e)

BFS

40.

Seseorang ingin menghemat biaya listrik bulanan secara optimal dengan menyimpan hasil perhitungan konsumsi harian. Pendekatan ini termasuk...

a)

Greedy

b)

Divide & Conquer

c)

Memoization (DP)

d)

Sorting

e)

BFS

41.

Untuk menghitung jumlah cara menaiki tangga dengan n anak tangga, metode paling efisien adalah...

a)

Menguji semua kemungkinan

b)

Greedy

c)

Dynamic Programming (tabulasi)

d)

Binary search

e)

BFS

42.

Apa yang dimaksud dengan rekursi dalam pemrograman?

a)

Fungsi yang memanggil dirinya sendiri

b)

Proses mengulang data tanpa batas

c)

Proses penyimpanan hasil sementara

d)

Langkah perulangan yang tetap

e)

Metode memori dinamis

43.

Salah satu keuntungan menggunakan rekursi adalah...

a)

Mempermudah pemecahan masalah yang berulang

b)

Menghemat memori

c)

Menghindari base case

d)

Mengurangi waktu komputasi

e)

Meningkatkan efisiensi I/O

44.

Algoritma Greedy membuat keputusan berdasarkan...

a)

Solusi global terbaik

b)

Pilihan lokal terbaik di setiap langkah

c)

Perbandingan semua kemungkinan

d)

Hasil dari rekursi sebelumnya

e)

Nilai maksimum dan minimum

45.

Pemrograman Dinamis digunakan ketika...

a)

Sub-masalah saling tumpang tindih

b)

Masalah tidak memiliki solusi optimal

c)

Tidak ada rekursi yang digunakan

d)

Data bersifat acak

e)

Solusi hanya ditemukan secara manual

46.

Teknik memoization digunakan untuk...

a)

Menghapus data lama

b)

Menyimpan hasil sub-masalah agar tidak dihitung ulang

c)

Menyalin data dari satu array ke array lain

d)

Menunda proses komputasi

e)

Menjalankan loop berulang

47.

Mengapa rekursi yang tidak dioptimalkan dapat menyebabkan Stack Overflow?

a)

Karena fungsi memanggil dirinya terus tanpa base case

b)

Karena menggunakan loop terlalu banyak

c)

Karena tidak memiliki return value

d)

Karena kekurangan variabel

e)

Karena kesalahan logika

48.

Perbedaan utama antara Greedy dan DP adalah...

a)

DP menyimpan hasil sub-masalah, Greedy tidak

b)

Greedy menyimpan hasil, DP tidak

c)

Greedy lebih lambat dari DP

d)

Keduanya selalu memberikan solusi optimal

e)

DP tidak memiliki sub-masalah

49.

Dalam konteks DP, pendekatan Bottom-Up berarti...

a)

Membangun solusi dari sub-masalah terkecil ke terbesar

b)

Menghitung semua nilai secara acak

c)

Menghindari penggunaan tabel

d)

Menghapus sub-masalah

e)

Menggunakan loop tak terbatas

50.

Mengapa greedy sering gagal memberikan solusi optimal global?

a)

Karena tidak mempertimbangkan konsekuensi jangka panjang

b)

Karena menghitung ulang nilai sub-masalah

c)

Karena menyimpan hasil di tabel

d)

Karena menggunakan iterasi

e)

Karena terlalu kompleks

51.

Rekursi Fibonacci tanpa DP memiliki kompleksitas waktu...

a)

Eksponensial

b)

Linear

c)

Logaritmik

d)

Konstan

e)

Kuantitatif

52.

DP lebih efisien daripada rekursi murni karena...

a)

Menghindari perhitungan ulang dengan menyimpan hasil sebelumnya

b)

Menghapus semua hasil perhitungan

c)

Menjalankan fungsi lebih banyak

d)

Tidak memerlukan struktur data

e)

Menghindari looping

53.

Masalah Knapsack lebih cocok diselesaikan dengan DP daripada Greedy karena...

a)

Greedy tidak mempertimbangkan kombinasi optimal global

b)

Greedy selalu cepat

c)

DP lebih sederhana

d)

Greedy menggunakan memori besar

e)

DP tidak menggunakan tabel

54.

Dalam implementasi memoization, hasil disimpan dalam...

a)

Struktur data seperti dictionary atau array

b)

Loop

c)

Stack sistem

d)

Pointer

e)

Fungsi void

55.

Sebuah fungsi rekursif dijalankan tanpa base case. Apa akibatnya?

a)

Program akan mengalami stack overflow

b)

Program berhenti dengan hasil nol

c)

Fungsi hanya berjalan sekali

d)

Nilai akan konstan

56.

Bagaimana cara mengubah solusi rekursif menjadi DP?

a)

Dengan menyimpan hasil sub-masalah dalam tabel

b)

Dengan menambahkan loop for tanpa memori

c)

Dengan menggandakan fungsi

d)

Dengan membuat banyak base case

e)

Dengan menghapus return

57.

Pada masalah Fibonacci, bagaimana DP meningkatkan efisiensi?

a)

Dengan menghindari perhitungan ulang nilai sebelumnya

b)

Dengan menambah iterasi

c)

Dengan memperbanyak fungsi rekursi

d)

Dengan memotong nilai secara acak

e)

Dengan menghapus base case

58.

Mengapa pendekatan Greedy gagal pada beberapa kasus Knapsack?

a)

Karena memilih rasio nilai/bobot terbaik belum tentu solusi optimal

b)

Karena terlalu banyak iterasi

c)

Karena tidak ada base case

d)

Karena tidak menggunakan tabel DP

e)

Karena menghitung ulang nilai

59.

Bagaimana cara menentukan apakah suatu masalah cocok diselesaikan dengan DP?

a)

Jika memiliki sub-masalah tumpang tindih dan struktur optimal

b)

Jika semua keputusan bersifat acak

c)

Jika tidak ada relasi antar sub-masalah

d)

Jika hanya butuh solusi lokal

e)

Jika tidak memerlukan optimasi

60.

Pada masalah optimasi kompleks, kombinasi Greedy dan DP bisa digunakan untuk...

a)

Menghasilkan solusi cepat dengan pendekatan adaptif

b)

Mengurangi jumlah base case

c)

Menghapus kebutuhan rekursi

d)

Menghindari pemakaian memori

e)

Membuat kode lebih panjang