WorksheetsLatihan Soal PSAS Informatika Kelas 11
Total questions: 60
Worksheet time: 3600secs
Algoritma dalam pemrograman dapat diartikan sebagai
Sekumpulan data yang digunakan untuk membuat program
Serangkaian langkah logis dan sistematis untuk menyelesaikan masalah
Diagram alur dari suatu proses pemrograman
Bahasa pemrograman tingkat tinggi
Langkah percobaan dalam menyusun kode program
Urutan logis dalam algoritma harus
Bebas dan tidak terstruktur
Menggunakan simbol-simbol tertentu
Logis, sistematis, dan berurutan
Berdasarkan tampilan visual
Dapat berubah sesuai keinginan
Manfaat utama membuat flowchart sebelum menulis program adalah
Mengurangi penggunaan bahasa pemrograman
Memudahkan visualisasi alur logika program
Menghemat kapasitas memori
Meningkatkan kecepatan kompilasi
Mengurangi jumlah kode
Perbedaan utama algoritma dan flowchart adalah
Algoritma bersifat visual, flowchart bersifat tekstual
Algoritma digunakan untuk simulasi, flowchart untuk perhitungan
Algoritma adalah deskripsi teks, flowchart adalah representasi visual
Flowchart lebih sulit dipahami daripada algoritma
Flowchart tidak memiliki simbol standar
Langkah pertama dalam membuat algoritma adalah
Menuliskan hasil keluaran
Mengidentifikasi masalah yang akan diselesaikan
Menggambar simbol flowchart
Menentukan bahasa pemrograman
Melakukan kompilasi
Contoh algoritma kehidupan sehari-hari adalah
Menulis program dalam Python
Membuat laporan hasil praktikum
Langkah-langkah membuat kopi
Menggambar flowchart di komputer
Menentukan nilai rata-rata dengan rumus
Keuntungan menggunakan pseudocode adalah
Tidak perlu logika dalam menulis program
Dapat langsung dijalankan oleh komputer
Menyederhanakan logika tanpa terikat bahasa pemrograman
Menggantikan kebutuhan akan flowchart
Tidak perlu memahami algoritma
Dalam flowchart, oval digunakan untuk
Menunjukkan awal atau akhir proses
Menampilkan hasil perhitungan
Menghubungkan dua proses
Mengambil keputusan
Menyimpan data
Mengapa penting menguji algoritma sebelum diimplementasikan ke dalam program
Agar tampilan visual menjadi menarik
Untuk memastikan logika algoritma berjalan benar
Untuk menambah baris kode
Agar simbol flowchart lengkap
Agar proses input menjadi lebih cepat
Jika algoritma tidak terstruktur dengan baik, maka kemungkinan besar
Program akan berjalan lebih cepat
Program sulit dipahami dan rentan kesalahan
Flowchart menjadi lebih sederhana
Tidak memerlukan pengujian
Dapat langsung dijalankan
Simbol panah pada flowchart menunjukkan
Keputusan Ya/Tidak
Alur atau arah proses
Input data
Proses perhitungan
Output hasil
Langkah "Input data pengguna" pada flowchart biasanya diwakili oleh simbol
Persegi panjang
Jajar genjang
Belah ketupat
Oval
Ketika sebuah algoritma ditulis dalam bentuk pseudocode, tujuannya adalah...
Memastikan penggunaan bahasa pemrograman tertentu
Menjelaskan logika secara sederhana dan universal
Menentukan desain tampilan program
Menulis hasil keluaran program
Mengganti flowchart
Flowchart membantu programmer karena...
Menghapus kebutuhan untuk mengetik kode
Menyediakan visualisasi alur logika
Meningkatkan estetika program
Mengurangi jumlah variabel
Mengatur sintaks bahasa
Langkah terakhir dalam algoritma biasanya adalah...
Inisialisasi variabel
Input data
Proses perhitungan
Menampilkan hasil dan mengakhiri program
Keputusan bercabang
Flowchart yang baik seharusnya...
Menggunakan simbol secara bebas
Hanya berisi proses tanpa keputusan
Jelas, ringkas, dan mengikuti urutan logis
Menggunakan warna yang menarik
Memiliki banyak cabang
Contoh penerapan algoritma dalam pemrograman adalah...
Menggambar flowchart
Menentukan langkah-langkah menghitung luas segitiga
Menulis laporan praktikum
Mendesain tampilan aplikasi
Membuat grafik data
Urutan algoritma menghitung luas segitiga adalah...
Input → Output → Hitung
Mulai → Proses → Input → Output
Mulai → Input → Hitung → Output
Input → Mulai → Output
Mulai → Hitung → Input
Jika sebuah percabangan memiliki dua cabang, maka...
Program harus diulang
Harus ada kondisi Ya/Tidak
Program langsung selesai
Algoritma tidak dapat dilanjutkan
Harus kembali ke awal
Kelebihan dari pseudocode adalah...
Hanya dipahami programmer ahli
Bergantung pada bahasa tertentu
Mengabaikan logika dan fokus sintaks
Mudah dipahami lintas Bahasa
Hanya untuk proyek besar
Simbol terminator dalam flowchart digunakan untuk...
Proses
Pengulangan
Mulai dan selesai
Input
Penyimpanan
Jika dalam flowchart terdapat langkah "Input angka A dan B", langkah logis berikutnya adalah...
Hapus variable
Hitung sesuai kebutuhan
Tampilkan gambar
Keluar program
Kembali ke awal
Tipe data untuk nilai desimal adalah...
Integer
Float
Boolean
String
Char
Representasi algoritma paling cocok untuk menggambarkan alur proses adalah...
Tabel
Flowchart
Paragraf
Rumus
Gambar bebas
Contoh penulisan pseudocode yang benar adalah...
start: {print “halo”}
BEGIN PRINT “halo” END
run halo()
OUTPUT: start()
Sebuah algoritma menambah nilai x dengan 5 lalu mengalikannya dengan 2. Jika x = 3, hasilnya adalah...
6
8
10
16
18
Jika flowchart menunjukkan proses "C = A + B", maka...
Nilai A dikurangi B
Nilai C adalah hasil penjumlahan A dan B
Nilai B dikalikan A
Nilai B dibagi A
A menjadi nol
Perintah for i in range(4): akan mengulang sebanyak...
1 kali
2 kali
3 kali
4 kali
0 kali
Jika kondisi if umur >= 17: benar, maka program akan...
Menghentikan program
Masuk ke blok if
Masuk ke blok else
Mengulang program
Menghapus variable
Pseudocode berikut memiliki kesalahan: BEGIN INPUT A OUTPUT A + END Kesalahan terletak pada...
Tidak ada END
Kurangnya nilai setelah operator +
Salah menggunakan BEGIN
INPUT tidak boleh digunakan
OUTPUT tidak boleh berada di akhir
Output dari kode berikut adalah: for i in range(5): print("X")
X
XX
XXXXX
Tidak tampil
Error
Jika kondisi dalam flowchart adalah "A > B" dan A = 3, B = 6, maka alur yang dipilih adalah...
True
False
Loop
Input ulang
Error
Perintah "Masukkan angka N" merupakan bagian dari...
Proses
Output
Input
Penyimpanan
Terminator
Kode berikut menghasilkan error: print("Halo" Kesalahan terjadi karena...
Variabel tidak ada
Tanda kutip salah
Tanda kurung kurang
print tidak boleh pakai tanda kutip
print harus diawali dengan END
Masalah yang cocok diselesaikan dengan DP adalah yang memiliki...
Solusi acak
Greedy choice property
Overlapping subproblems
Tidak memerlukan memori
Data sangat sedikit
Rekursi tidak efektif digunakan jika...
Masalah sederhana
Basis kecil
Kedalaman rekursi sangat besar
Rekursi menggunakan parameter
Fungsi memiliki satu return
Mengapa DP lebih cepat daripada rekursi biasa pada Fibonacci?
Karena memakai memori lebih kecil
Menyimpan hasil submasalah sebelumnya
Tidak memakai perulangan
Mengubah fungsi menjadi iterative
Memotong input
Dalam memilih paket internet terbaik, seseorang memilih paket dengan kuota terbesar per rupiah. Keputusan ini berdasarkan...
DP optimization
Fractional knapsack greedy
Rekursi
Full search
Hashing
Untuk memasukkan sebanyak mungkin rapat ke dalam sehari, kita memilih rapat dengan waktu selesai tercepat. Ini adalah...
Activity Selection Greedy
Prim Algorithm
Dynamic Programming
Dijkstra Full
BFS
Seseorang ingin menghemat biaya listrik bulanan secara optimal dengan menyimpan hasil perhitungan konsumsi harian. Pendekatan ini termasuk...
Greedy
Divide & Conquer
Memoization (DP)
Sorting
BFS
Untuk menghitung jumlah cara menaiki tangga dengan n anak tangga, metode paling efisien adalah...
Menguji semua kemungkinan
Greedy
Dynamic Programming (tabulasi)
Binary search
BFS
Apa yang dimaksud dengan rekursi dalam pemrograman?
Fungsi yang memanggil dirinya sendiri
Proses mengulang data tanpa batas
Proses penyimpanan hasil sementara
Langkah perulangan yang tetap
Metode memori dinamis
Salah satu keuntungan menggunakan rekursi adalah...
Mempermudah pemecahan masalah yang berulang
Menghemat memori
Menghindari base case
Mengurangi waktu komputasi
Meningkatkan efisiensi I/O
Algoritma Greedy membuat keputusan berdasarkan...
Solusi global terbaik
Pilihan lokal terbaik di setiap langkah
Perbandingan semua kemungkinan
Hasil dari rekursi sebelumnya
Nilai maksimum dan minimum
Pemrograman Dinamis digunakan ketika...
Sub-masalah saling tumpang tindih
Masalah tidak memiliki solusi optimal
Tidak ada rekursi yang digunakan
Data bersifat acak
Solusi hanya ditemukan secara manual
Teknik memoization digunakan untuk...
Menghapus data lama
Menyimpan hasil sub-masalah agar tidak dihitung ulang
Menyalin data dari satu array ke array lain
Menunda proses komputasi
Menjalankan loop berulang
Mengapa rekursi yang tidak dioptimalkan dapat menyebabkan Stack Overflow?
Karena fungsi memanggil dirinya terus tanpa base case
Karena menggunakan loop terlalu banyak
Karena tidak memiliki return value
Karena kekurangan variabel
Karena kesalahan logika
Perbedaan utama antara Greedy dan DP adalah...
DP menyimpan hasil sub-masalah, Greedy tidak
Greedy menyimpan hasil, DP tidak
Greedy lebih lambat dari DP
Keduanya selalu memberikan solusi optimal
DP tidak memiliki sub-masalah
Dalam konteks DP, pendekatan Bottom-Up berarti...
Membangun solusi dari sub-masalah terkecil ke terbesar
Menghitung semua nilai secara acak
Menghindari penggunaan tabel
Menghapus sub-masalah
Menggunakan loop tak terbatas
Mengapa greedy sering gagal memberikan solusi optimal global?
Karena tidak mempertimbangkan konsekuensi jangka panjang
Karena menghitung ulang nilai sub-masalah
Karena menyimpan hasil di tabel
Karena menggunakan iterasi
Karena terlalu kompleks
Rekursi Fibonacci tanpa DP memiliki kompleksitas waktu...
Eksponensial
Linear
Logaritmik
Konstan
Kuantitatif
DP lebih efisien daripada rekursi murni karena...
Menghindari perhitungan ulang dengan menyimpan hasil sebelumnya
Menghapus semua hasil perhitungan
Menjalankan fungsi lebih banyak
Tidak memerlukan struktur data
Menghindari looping
Masalah Knapsack lebih cocok diselesaikan dengan DP daripada Greedy karena...
Greedy tidak mempertimbangkan kombinasi optimal global
Greedy selalu cepat
DP lebih sederhana
Greedy menggunakan memori besar
DP tidak menggunakan tabel
Dalam implementasi memoization, hasil disimpan dalam...
Struktur data seperti dictionary atau array
Loop
Stack sistem
Pointer
Fungsi void
Sebuah fungsi rekursif dijalankan tanpa base case. Apa akibatnya?
Program akan mengalami stack overflow
Program berhenti dengan hasil nol
Fungsi hanya berjalan sekali
Nilai akan konstan
Bagaimana cara mengubah solusi rekursif menjadi DP?
Dengan menyimpan hasil sub-masalah dalam tabel
Dengan menambahkan loop for tanpa memori
Dengan menggandakan fungsi
Dengan membuat banyak base case
Dengan menghapus return
Pada masalah Fibonacci, bagaimana DP meningkatkan efisiensi?
Dengan menghindari perhitungan ulang nilai sebelumnya
Dengan menambah iterasi
Dengan memperbanyak fungsi rekursi
Dengan memotong nilai secara acak
Dengan menghapus base case
Mengapa pendekatan Greedy gagal pada beberapa kasus Knapsack?
Karena memilih rasio nilai/bobot terbaik belum tentu solusi optimal
Karena terlalu banyak iterasi
Karena tidak ada base case
Karena tidak menggunakan tabel DP
Karena menghitung ulang nilai
Bagaimana cara menentukan apakah suatu masalah cocok diselesaikan dengan DP?
Jika memiliki sub-masalah tumpang tindih dan struktur optimal
Jika semua keputusan bersifat acak
Jika tidak ada relasi antar sub-masalah
Jika hanya butuh solusi lokal
Jika tidak memerlukan optimasi
Pada masalah optimasi kompleks, kombinasi Greedy dan DP bisa digunakan untuk...
Menghasilkan solusi cepat dengan pendekatan adaptif
Mengurangi jumlah base case
Menghapus kebutuhan rekursi
Menghindari pemakaian memori
Membuat kode lebih panjang
