NEW
Font size
WorksheetsSoal Berpikir Komputasional dan Algoritma
Total questions: 50
Worksheet time: 50mins
Dalam konteks berpikir komputasional, kemampuan untuk mengidentifikasi pola umum antar beberapa permasalahan serupa untuk merancang solusi yang generik disebut:
Decomposition
Pattern Recognition
Abstraction
Generalized Computing
Algorithmic Thinking
Seorang mahasiswa mencoba menyelesaikan masalah dengan cara menyusun langkah-langkah penyelesaian secara detail, sistematis, dan berurutan hingga menghasilkan output. Proses ini paling tepat mendefinisikan:
Sistem Informasi
Pemrograman Deklaratif
Algoritma
Kompilasi Program
Machine Execution Flow
Berikut ini manakah yang menunjukkan contoh abstraction dalam berpikir komputasional?
Mengabaikan detail warna dan bentuk unik setiap jenis mobil saat merancang sistem parkir otomatis.
Memecah proses memasak menjadi langkah-langkah kecil.
Mengidentifikasi pola dalam data penjualan harian.
Menulis langkah algoritmik secara urut langkah demi langkah.
Menghubungkan output dari satu proses ke proses lainnya.
Pernyataan berikut adalah algoritma dalam bentuk narasi: 1. Ambil angka input 2. Jika angka ganjil, kalikan dua 3. Jika angka genap, tambahkan tiga 4. Cetak hasil Pernyataan manakah yang benar terkait algoritma tersebut?
Tidak memiliki final state
Tidak dapat dikonversi ke kode program karena tidak ada struktur percabangan
Memenuhi kriteria keterbatasan langkah
Tidak memiliki yrytan penuesuaian
Tidak mungkin menghasilkan output
Dalam struktur sistem secara umum (Input → Process → Output), bagian Process dalam konteks komputasi sangat erat kaitannya dengan:
Penyimpanan hasil
Instruksi dalam algoritma
Penulisan variabel
Definisi tipe data
Penjabaran kebutuhan input
Komputer hanya dapat memahami instruksi yang telah diterjemahkan ke dalam:
Bahasa tingkat tinggi
Bahasa assembly
Bahasa sistem
Bahasa mesin (binary)
Bahasa scripting
Berikut ini pasangan komponen berpikir komputasional dan analogi yang tepat adalah:
Decomposition – Menyusun langkah-langkah solusi tanpa memecah masalah
Pattern Recognition – Menghindari pola berulang
Abstraction – Melihat detail spesifik agar solusi lebih sempit
Algorithm – Menuliskan instruksi langkah demi langkah
Decomposition – Melakukan kesimpulan akhir dari pola
Jika suatu algoritma memiliki langkah-langkah yang tidak terbatas dan terus berulang tanpa kondisi berhenti, maka:
Tetap dianggap algoritma selama memiliki input
Tidak dianggap algoritma karena tidak memenuhi syarat keterbatasan langkah
Masih valid karena menghasilkan output
Hubungan antara komputer dan programmer dalam materi pertemuan pertama adalah:
Komputer dapat memahami ide manusia tanpa diterjemahkan
Programmer bertugas merancang sistem, tidak membuat algoritma
Komputer hanya menjalankan instruksi dalam algoritma yang diterjemahkan ke bahasa yang dipahaminya
Programmer hanya bertanggung jawab terhadap desain grafis aplikasi
Komputer dapat menganalisis masalah tanpa algoritma
Konsep “komputer hanya tahu apa yang diperintahkan” menunjukkan sifat komputer sebagai:
Sistem otomatis yang memiliki intuisi
Mesin deterministik yang bergantung pada instruksi eksplisit
Alat analitis dengan kemampuan memutuskan tanpa input
Entitas kognitif dalam tingkat tinggi
Sistem interpretatif bebas konteks
Dalam paradigma komputasi, komputer mampu melakukan miliaran kalkulasi per detik. Fungsi ini secara konseptual mendukung definisi komputer sebagai:
Mesin pengolah teks secara otomatis
Sistem yang hanya meniru kecerdasan manusia
Alat elektronik yang melakukan perhitungan dan penyimpanan data
Perangkat yang mampu membuat algoritma sendiri
Sistem adaptif yang bekerja tanpa instruksi
Notasi “1 + 2 + 3 = Algoritma” dalam konteks definisi algoritma pada materi menunjukkan bahwa algoritma adalah gabungan dari:
Input, output, dan proses statis
Urutan langkah, relasi logika, dan hasil akhir
Urutan langkah sederhana, alur kontrol, dan kondisi berhenti
Kode program, interpreter, dan compiler
Seorang mahasiswa mengembangkan solusi untuk beberapa permasalahan berbeda, lalu menyadari bahwa semua dapat diselesaikan dengan struktur urut yang sama tetapi hanya mengganti nilai input. Ini adalah penerapan:
Abstraction
Pattern recognition
Generalization over branching
Sequential dominance
Iterative relational structure
Pernyataan berikut manakah yang paling akurat membedakan information dari data?
Data adalah fakta mentah, informasi adalah hasil manipulasi atau pengolahan data menjadi bermakna
Data adalah hasil olahan, informasi adalah masukan
Data selalu berbentuk angka, informasi selalu berbasis teks
Informasi tidak dapat digunakan untuk pengambilan keputusan
Informasi tidak memerlukan proses untuk terbentuk
Pada arsitektur dasar mesin komputer, di mana bahasa tingkat tinggi diterjemahkan menjadi bahasa mesin sebelum dijalankan?
Di dalam CPU
Pada proses kompilasi dan linking
Dalam memory allocation
Pada runtime execution tanpa proses awal
Langsung dievaluasi tanpa konversi
Contoh berikut yang menunjukkan kesenjangan sintaks (syntax error) dalam bahasa pemrograman adalah:
A. 3 + “hello”
B. print(“Hello”
int x=5
2+5*100
3>2
Berikut ini merupakan pernyataan semantik tidak valid dalam konteks pemrograman:
3 + 5
3 + “hi”
2 * 7
a = b + c
x = 10
Dalam siklus berpikir komputasional, di tahap manakah algoritma disusun setelah pemisahan masalah menjadi bagian kecil dan pengenalan pola dilakukan?
Setelah abstraction
Sebelum decomposition
Setelah algorithmic thinking
Sebelum pattern recognition
Setelah generalization
Mengapa algoritma harus memiliki final state yang jelas?
Agar program bisa diproses oleh linker
Untuk menghindari infinite loop dan memastikan penyelesaian
Agar instruksi selalu dievaluasi ulang
Supaya compiler dapat mengulang proses kompilasi
Agar variabel dapat diinisialisasi ulang
Algoritma berikut dinyatakan tidak efektif karena tidak memenuhi kriteria apa?
1. Masukkan nilai X
2. Jika X > 0 maka ulangi langkah 1
3. Cetak "selesai"
Tidak memiliki input
Tidak memiliki output
Tidak memiliki batas eksekusi (termination)
Hanya menggunakan 1 jenis kontrol
Tidak dapat dikonversi dalam kode program
Dalam konteks pemrograman, sebuah compiler memiliki fungsi utama:
Menerjemahkan perintah satu per satu saat runtime
Menghapus komentar sebelum kode dijalankan
Menghasilkan kode objek yang siap dilink menjadi executable
Memastikan algoritma memiliki final state
Menjaga algoritma tetap abstrak
Jika sebuah bahasa pemrograman memiliki sintaks yang mirip dengan bahasa manusia dan dijalankan melalui proses kompilasi, maka bahasa tersebut dikategorikan sebagai:
Bahasa tingkat rendah
Bahasa tingkat menengah
Bahasa tingkat tinggi
Bahasa mesin
Bahasa simbolik langsung
Seorang mahasiswa menulis perintah a = b + c; dalam C++. Secara konseptual, ini menunjukkan bahwa:
Nilai b dan c dibandingkan
A diberikan nilai hasil operasi penjumlahan dari b dan c
A menunjukkan alamat b ditambah alamat c
A diuji apakah sama dengan b + c
Operasi dilakukan dua arah
Jika variabel umur belum diinisialisasi sebelumnya, maka:
Program tetap berjalan dengan nilai default = 0
Hasil akhir pasti 5
Akan menghasilkan hasil acak atau undefined behavior
Compiler otomatis memberi nilai awal
Program gagal dikompilasi
Manakah dari berikut ini yang bukan merupakan tipe data primitif dalam C++?
int
double
bool
struct
char
Dalam konsep algoritmik, assignment memiliki bentuk umum
==
.:=
=
->
<>
Manakah yang benar mengenai komentar dalam C++?
Komentar selalu dieksekusi oleh compiler
Komentar diperlukan agar program berjalan
Komentar dapat berupa satu baris (//) atau banyak baris (/* */)
Komentar harus ditempatkan setelah setiap baris kode
Komentar hanya digunakan dalam pseudocode
Dalam konteks deklarasi dan inisialisasi, pernyataan berikut yang benar adalah:
int x = 10; adalah deklarasi saja
int x; adalah deklarasi tanpa alokasi memori
int x = 10; adalah deklarasi sekaligus inisialisasi
x = 10; dapat dilakukan tanpa deklarasi
Deklarasi tidak membutuhkan tipe data
Manakah alasan utama mengapa reserved word tidak boleh digunakan sebagai nama variabel?
Karena reserved word selalu bertipe integer
Karena reserved word sudah memiliki makna sintaks tertentu dalam bahasa
Karena reserved word hanya digunakan untuk konstanta
Karena reserved word otomatis dihapus oleh compiler
Karena reserved word hanya digunakan dalam interpreter
Struktur dasar program C++ selalu diawali dengan:
Fungsi main()
Header library seperti #include
Keyword return
Statement assignment
Deklarasi kelas
Dalam proses eksekusi program C++, urutan tahapan yang benar adalah:
Linking → Compilation → Execution → Preprocessing
Preprocessing → Compilation → Linking → Execution
Compilation → Preprocessing → Execution → Linking
Execution → Linking → Compilation → Preprocessing
Preprocessing → Execution → Compilation → Linking
Pernyataan berikut menunjukkan kesalahan semantik statis dalam C++:
cout << "Halo";
int a = "Hello";
/* komentar */
int x = 7;
return 0;
Sebuah program tidak dapat dilink jika:
Tidak memiliki fungsi main()
Tidak memiliki #include
Tidak memiliki assignment
Tidak memiliki variabel
Tidak memiliki komentar
Dalam konsep C++, output berikut berasal dari baris program: cout << "Hello world!" << endl; Peran endl adalah:
Menunjukkan akhir program
Menyisipkan karakter newline dan flush buffer
Menghapus memori sementara
Mengirim output dalam bentuk integer
Menandakan proses selesai
Apabila seorang programmer menulis program dengan menggunakan interpreter, maka konsekuensinya:
Program akan berjalan lebih cepat dibanding compiler
Program dijalankan baris demi baris tanpa menghasilkan file executable
Interpreter hanya digunakan untuk bahasa mesin
Kode sumber tidak boleh mengandung variabel
Tidak memerlukan sintaks
Dalam C++, pernyataan berikut: int a, b = 10; berarti:
a dan b sama-sama diinisialisasi ke 10
hanya a yang diinisialisasi
a tidak diinisialisasi, b bernilai 10
a dan b tidak dialokasikan memory
keduanya akan bernilai tidak terdefinisi
Suatu variabel tidak dapat digunakan sebelum deklarasi karena:
Variabel harus ditulis di akhir program
Compiler membutuhkan informasi tipe dan alokasi memori sebelum penggunaan
Variabel hanya bisa digunakan setelah return 0
Semua variabel otomatis bertipe integer
Variabel hanya boleh digunakan dalam komentar
Manakah contoh inisialisasi yang valid dalam C++?
x = int 10;
int y = 5;
float z = x 7.5;
:= char z 'A';
integer x = 1;
Dalam struktur program C++ berikut:
#include
Program tetap jalan normal
Compiler tidak dapat melakukan linking
Programmer harus menggunakan std::cout
Fungsi main tidak dikenali
Variabel x akan menjadi global
Manakah konsep yang paling menggambarkan “program penyimpanan komputer”?
Program dijalankan dari media eksternal tanpa perlu tersimpan
Urutan instruksi disimpan dalam memori untuk dieksekusi sesuai aliran kontrol
Program hanya dieksekusi saat diberi input langsung
Eksekusi tidak memerlukan kontrol alur
Algoritma tidak memerlukan struktur memori
Simbol flowchart yang digunakan untuk menampilkan hasil pada layar monitor adalah:
Terminal
Decision
Display
Document
Process
Pada flowchart, simbol belah ketupat digunakan untuk:
Mengakhiri program
Membaca input manual
Memberi nilai awal variabel
Mengambil keputusan (percabangan)
Memanggil subprogram
Sebuah flowchart memiliki kondisi x > 10. Jika kondisi bernilai salah, program akan:
Berhenti tanpa melanjutkan
Masuk ke jalur alternatif selain kondisi benar
Masuk ke looping secara otomatis
Me-reset variabel X
Kembali ke START
Jika a = 3 dan b = 7, maka nilai hasil adalah:
-4
4
10
3
7
Hasil dari ekspresi berikut: (5 > 3) && (2 > 4) adalah:
true
false
error sintaks
true jika OR digunakan
bernilai 2
Diketahui ekspresi logika: !(x == 5 || y < 10) Jika x = 5 dan y = 9, maka hasil ekspresi adalah:
true
false
tergantung compiler
error
menghasilkan nilai 5
Pada percabangan bersarang (nested-if), kondisi paling dalam akan dievaluasi jika:
Salah satu kondisi luar bernilai false
Semua kondisi sebelumnya bernilai true
Kondisi pertama bernilai false
Tidak ada kondisi else
Hanya jika ada operator NOT
1. Input nilai N 2. Jika N genap dan N > 10, tampilkan “A” 3. Jika N genap dan N ≤ 10, tampilkan “B” 4. Jika N ganjil dan N < 5, tampilkan “C” 5. Jika tidak, tampilkan “D” Output untuk N = 11 adalah:
A
B
C
D
Error karena tidak ada kondisi ganjil > 5
Potongan kode berikut: cpp if (x > 10) if (y < 5) z = x + y; else z = x - y; Jika x = 12 dan y = 7, maka nilai z adalah:
17
5
19
-5
Tidak terdefinisi
Flowchart berikut menunjukkan algoritma: START → Baca X → X > 0? (ya → Cetak “Positif”) (tidak → Cetak “Bukan Positif”) → END Algoritma tersebut memiliki:
Dua percabangan dan satu output
Satu percabangan dan dua kemungkinan output
Dua percabangan bersarang
Tiga proses
Tidak ada kondisi
