MSIM4203 — Algoritma Dan Pemrograman
1. Apa yang dimaksud dengan algoritma dalam pemrograman komputer?
- A. Urutan langkah logis dan sistematis untuk memecahkan masalah
- B. Kumpulan perangkat keras komputer
- C. Bahasa pemrograman tingkat tinggi
- D. Sistem operasi komputer
2. Siapa yang dikenal sebagai penemu konsep algoritma modern?
- A. Al-Khawarizmi
- B. Alan Turing
- C. Charles Babbage
- D. Ada Lovelace
3. Manakah pernyataan yang benar tentang pemrograman komputer?
- A. Pemrograman hanya membutuhkan perangkat lunak tanpa perangkat keras
- B. Pemrograman hanya dilakukan oleh insinyur listrik
- C. Pemrograman adalah proses menulis algoritma dalam bahasa yang dimengerti komputer
- D. Pemrograman tidak memerlukan logika matematika
4. Apa fungsi utama dari algoritma dalam konteks pemecahan masalah?
- A. Memberikan solusi langkah demi langkah untuk masalah yang diberikan
- B. Menyimpan data secara permanen
- C. Mempercantik tampilan program
- D. Menghubungkan internet ke komputer
5. Manakah contoh penerapan algoritma dalam kehidupan sehari-hari?
- A. Mengganti wallpaper komputer
- B. Memasak mie instan dengan langkah-langkah tertentu
- C. Mendengarkan musik melalui radio
- D. Mematikan komputer dengan paksa
6. Apa karakteristik utama dari algoritma yang baik?
- A. Menggunakan bahasa yang sulit dipahami
- B. Memiliki langkah yang ambigu
- C. Tergantung pada data input yang tidak terbatas
- D. Finis atau berhenti setelah sejumlah langkah tertentu
7. Manakah yang termasuk struktur dasar algoritma?
- A. Perulangan, percabangan, dan urutan
- B. Variabel dan konstanta
- C. Array dan string
- D. Fungsi dan prosedur
8. Dalam struktur dasar algoritma, apa yang dimaksud dengan percabangan?
- A. Pemilihan jalur eksekusi berdasarkan kondisi tertentu
- B. Eksekusi instruksi secara berurutan
- C. Pengulangan instruksi hingga kondisi terpenuhi
- D. Penyimpanan data sementara
9. Contoh struktur perulangan dalam algoritma adalah:
- A. if-then-else
- B. for dan while
- C. switch-case
- D. input-output
10. Dalam algoritma, apa fungsi dari simbol untuk proses pada flowchart?
- A. Menandakan awal atau akhir program
- B. Menampilkan input atau output data
- C. Menentukan keputusan berdasarkan kondisi
- D. Melakukan operasi atau perhitungan
11. Simbol flowchart yang berbentuk belah ketupat digunakan untuk:
- A. Menandakan awal program
- B. Menampilkan output
- C. Menyambungkan flowchart antar halaman
- D. Menentukan kondisi atau keputusan
12. Apa perbedaan utama antara flowchart dan pseudocode?
- A. Flowchart menggunakan bahasa alami, pseudocode menggunakan simbol
- B. Flowchart menggunakan simbol grafis, pseudocode menggunakan teks deskriptif
- C. Flowchart tidak dapat digunakan untuk algoritma kompleks
- D. Pseudocode lebih sulit dipahami daripada flowchart
13. Dalam flowchart, simbol lingkaran atau elips digunakan untuk:
- A. Menandakan input data
- B. Menandakan proses perhitungan
- C. Menandakan awal atau akhir program
- D. Menandakan keputusan
14. Apa arti dari simbol persegi panjang dalam flowchart?
- A. Konektor antar halaman
- B. Input atau output data
- C. Proses atau langkah perhitungan
- D. Keputusan logika
15. Dalam flowchart, simbol jajar genjang digunakan untuk:
- A. Menandakan awal program
- B. Menandakan proses perulangan
- C. Menandakan keputusan
- D. Menandakan input atau output data
16. Manakah pernyataan yang benar tentang flowchart?
- A. Flowchart hanya bisa digambar di atas kertas
- B. Flowchart membantu memvisualisasikan aliran logika algoritma
- C. Flowchart tidak memerlukan simbol standar
- D. Flowchart hanya digunakan untuk bahasa pemrograman Java
17. Apa yang digunakan untuk menghubungkan flowchart yang terputus ke halaman lain?
- A. Simbol segitiga
- B. Simbol belah ketupat
- C. Simbol konektor berbentuk lingkaran kecil
- D. Simbol persegi panjang
18. Simbol mana yang digunakan dalam flowchart untuk menyatakan proses atau operasi yang dilakukan oleh program?
- A. Terminator
- B. Process
- C. Decision
- D. Input/Output
19. Apa fungsi dari simbol Decision dalam flowchart?
- A. Memulai atau mengakhiri program
- B. Menampilkan hasil ke layar
- C. Memeriksa kondisi logika untuk menentukan alur
- D. Melakukan perulangan
20. Dalam pseudocode, perintah yang digunakan untuk menampilkan teks ke layar adalah?
- A. INPUT
- B. READ
- C. OUTPUT
- D. DISPLAY
21. Manakah penulisan pseudocode yang tepat untuk membaca input dari pengguna?
- A. OUTPUT 'Masukkan angka'
- B. INPUT x
- C. DISPLAY x
- D. READY x
22. Dalam pseudocode, pernyataan IF … THEN … ELSE digunakan untuk?
- A. Perulangan
- B. Inisialisasi variabel
- C. Percabangan
- D. Deklarasi fungsi
23. Apa notasi yang benar dalam pseudocode untuk menyatakan perulangan dengan jumlah iterasi yang diketahui?
- A. FOR i = 1 TO n DO … ENDFOR
- B. REPEAT … UNTIL (kondisi)
- C. WHILE (kondisi) DO … ENDWHILE
- D. LOOP … ENDLOOP
24. Bagaimana cara mendeklarasikan array dalam pseudocode?
- A. namaArray = array[n]
- B. ARRAY namaArray[n]
- C. DEKLARASI namaArray : array[n]
- D. int namaArray[n]
25. Dalam pseudocode, operator yang digunakan untuk perbandingan 'tidak sama dengan' adalah?
- A. <>
- B. !=
- C. ==
- D. =
26. Apa fungsi dari tool 'Draw' dalam draw.io saat membuat flowchart?
- A. Menggambar garis panah
- B. Membuat bentuk geometri baru
- C. Menambahkan teks bebas
- D. Menghubungkan simbol
27. Langkah pertama saat membuat flowchart di draw.io adalah?
- A. Menambahkan simbol Start
- B. Memilih template
- C. Menyimpan file
- D. Mengatur konektor
28. Bagaimana cara menghubungkan dua simbol dalam draw.io?
- A. Klik simbol lalu pilih Connect
- B. Ketik tanda panah di keyboard
- C. Gunakan tool Line atau drag konektor dari titik sambung
- D. Pilih menu Insert > Arrow
29. Apa fungsi dari IDE Eclipse dalam pemrograman Java?
- A. Mengedit dan mengompilasi kode program
- B. Menjalankan browser
- C. Merancang flowchart
- D. Membuat database
30. Setelah menulis kode Java di Eclipse, langkah selanjutnya untuk menjalankan program adalah?
- A. Klik Build > Compile
- B. Klik Save dan tekan F5
- C. Pilih Debug > Start
- D. Klik Run atau tekan Ctrl + F11
31. File yang dihasilkan setelah kompilasi program Java berekstensi?
- A. .class
- B. .java
- C. .exe
- D. .jar
32. Java adalah bahasa pemrograman yang bersifat?
- A. Terstruktur
- B. Prosedural
- C. Fungsional
- D. Berorientasi objek
33. Apa komponen utama yang harus ada dalam setiap program Java?
- A. Package
- B. Constructor
- C. Library
- D. Method main
34. Manakah pernyataan yang benar tentang Java?
- A. Java hanya bisa berjalan di Windows
- B. Java tidak memerlukan compiler
- C. Java menggunakan interpreter langsung
- D. Java adalah platform independent karena menggunakan JVM
35. Apa yang dimaksud dengan Java dalam konteks pemrograman?
- A. Bahasa pemrograman tingkat rendah
- B. Perangkat keras komputer
- C. Sistem operasi
- D. Bahasa pemrograman berorientasi objek
36. Dalam struktur program Java, bagian mana yang berfungsi sebagai titik awal eksekusi program?
- A. Method main
- B. Class utama
- C. Package
- D. Import statement
37. Perhatikan kode berikut: public class Contoh { }. Kata kunci 'public' pada deklarasi class menunjukkan bahwa class tersebut memiliki akses?
- A. Terbatas hanya dalam package yang sama
- B. Hanya untuk kelas turunan
- C. Bebas diakses dari kelas mana pun
- D. Tidak dapat diakses sama sekali
38. Dalam sebuah program Java, pernyataan digunakan untuk mengimpor kelas dari package lain?
- A. import
- B. package
- C. include
- D. using
39. Perhatikan kode berikut: System.out.println("Halo");. Apa fungsi dari objek 'out' dalam statement tersebut?
- A. Membaca input dari keyboard
- B. Mencetak output ke konsol
- C. Menulis ke file
- D. Mengirim data ke jaringan
40. Apa yang dimaksud dengan block komentar dalam Java?
- A. Komentar yang diawali /* dan diakhiri */
- B. Komentar yang diawali //
- C. Komentar yang diawali #
- D. Komentar yang diawali
41. Tipe data manakah yang digunakan untuk menyimpan nilai bilangan bulat dalam Java?
- A. char
- B. double
- C. int
- D. boolean
42. Variabel dengan tipe data double digunakan untuk menyimpan?
- A. Bilangan bulat
- B. Bilangan desimal
- C. Karakter
- D. Nilai boolean
43. Perhatikan kode: char huruf = 'A';. Berapa ukuran memori yang digunakan oleh variabel huruf?
- A. 1 byte
- B. 8 byte
- C. 4 byte
- D. 2 byte
44. Manakah dari berikut ini yang merupakan cara mendeklarasikan variabel boolean?
- A. boolean status = true;
- B. boolean status = "true";
- C. boolean status = 1;
- D. boolean status = 'true';
45. Apa yang terjadi jika kita mencoba menyimpan nilai 3.14 ke dalam variabel bertipe int?
- A. Nilai disimpan sebagai 3
- B. Nilai disimpan sebagai 3.14
- C. Terjadi error kompilasi
- D. Nilai disimpan sebagai 4
46. Operator yang digunakan untuk penjumlahan dalam Java adalah?
- A. –
- B. +
- C. *
- D. /
47. Apa hasil dari ekspresi 10 % 3 dalam Java?
- A. 0
- B. 2
- C. 3
- D. 1
48. Operator logika AND dalam Java ditulis dengan?
- A. !
- B. ||
- C. &&
- D. &
49. Apa hasil dari ekspresi (5 > 3) && (2 < 4)?
- A. null
- B. false
- C. error
- D. true
50. Operator increment ++ digunakan untuk?
- A. Menambah nilai variabel sebesar 1
- B. Mengurangi nilai variabel sebesar 1
- C. Mengalikan nilai variabel dengan 2
- D. Membagi nilai variabel dengan 2
51. Perulangan for dalam Java digunakan untuk?
- A. Mengulang tanpa batas
- B. Mengulang sejumlah iterasi yang diketahui
- C. Mengulang berdasarkan kondisi
- D. Mengulang sekali saja
52. Perhatikan kode berikut: for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } Apa output dari kode tersebut?
- A. 0 1 2 3 4
- B. 1 2 3 4 5
- C. 1 2 3 4
- D. 2 3 4 5
53. Perhatikan kode berikut: int i = 1; while (i <= 3) { System.out.print(i); i++; } Apa output dari kode tersebut?
- A. 123
- B. 1234
- C. 12
- D. 1
54. Perhatikan kode berikut: int i = 5; do { System.out.print(i + " "); i–; } while (i > 2); Apa output dari kode tersebut?
- A. 5 4 3 2
- B. 5 4 3
- C. 4 3 2
- D. 5 4
55. Perhatikan kode berikut: for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { System.out.print("*"); } } Berapa banyak bintang yang dicetak?
- A. 2
- B. 5
- C. 3
- D. 6
56. Perhatikan kode berikut: int x = 5; if (x > 3) { System.out.println("Besar"); } else { System.out.println("Kecil"); } Apa output dari kode tersebut?
- A. Error kompilasi
- B. Kecil
- C. Tidak ada output
- D. Besar
57. Perhatikan kode berikut: int nilai = 75; if (nilai >= 80) { System.out.println("A"); } else if (nilai >= 70) { System.out.println("B"); } else if (nilai >= 60) { System.out.println("C"); } else { System.out.println("D"); } Apa output dari kode tersebut?
- A. B
- B. A
- C. C
- D. D
58. Perhatikan kode berikut: int a = 10; int b = 20; if (a > b) { System.out.println("a lebih besar"); } else if (a == b) { System.out.println("sama"); } else { System.out.println("a lebih kecil"); } Apa output dari kode tersebut?
- A. a lebih kecil
- B. a lebih besar
- C. sama
- D. tidak ada yang sesuai
59. Perhatikan kode berikut: boolean isRainy = true; if (isRainy) { System.out.println("Bawa payung"); } else { System.out.println("Tidak perlu payung"); } Apa output dari kode tersebut?
- A. Error kompilasi
- B. Tidak perlu payung
- C. Tidak ada output
- D. Bawa payung
60. Perhatikan kode berikut: int x = 7; if (x % 2 == 0) { System.out.println("Genap"); } else { System.out.println("Ganjil"); } Apa output dari kode tersebut?
- A. Error kompilasi
- B. Genap
- C. Tidak ada output
- D. Ganjil
61. Perhatikan kode berikut: String nama = "Java"; if (nama.equals("Java")) { System.out.println("Benar"); } else { System.out.println("Salah"); } Apa output dari kode tersebut?
- A. Tidak ada output
- B. Salah
- C. Benar
- D. Error kompilasi
62. Perhatikan kode berikut: int a = 3; int b = 5; int hasil = a + b * 2; System.out.println(hasil); Apa output dari kode tersebut?
- A. 16
- B. 13
- C. 10
- D. 8
63. Perhatikan kode berikut: int x = 10; x += 5; System.out.println(x); Apa output dari kode tersebut?
- A. 5
- B. 10
- C. 15
- D. 20
64. Perhatikan kode berikut: String s = "Halo"; System.out.println(s.length()); Apa output dari kode tersebut?
- A. 5
- B. 4
- C. 3
- D. 2
65. Perhatikan kode berikut: int[] arr = {2, 4, 6, 8}; System.out.println(arr[2]); Apa output dari kode tersebut?
- A. 2
- B. 4
- C. 6
- D. 8
66. Perhatikan kode berikut: int[] nums = {1, 2, 3}; for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]); } Apa output dari kode tersebut?
- A. 123
- B. 012
- C. 321
- D. 0
67. Perhatikan kode berikut: int[] data = {5, 10, 15}; int total = 0; for (int nilai : data) { total += nilai; } System.out.println(total); Apa output dari kode tersebut?
- A. 0
- B. 15
- C. 30
- D. 25
68. Perhatikan kode berikut: int[] arr = new int[3]; arr[0] = 7; arr[1] = 8; arr[2] = 9; System.out.println(arr[0] + arr[2]); Apa output dari kode tersebut?
- A. 16
- B. 17
- C. 15
- D. 7
69. Deklarasi array satu dimensi untuk menyimpan 5 bilangan bulat dalam Java yang benar adalah…
- A. int[] angka = new int[5];
- B. int angka = new int[5];
- C. int angka[] = new int;
- D. array int angka = new int[5];
70. Indeks array dalam Java dimulai dari…
- A. 1
- B. 0
- C. -1
- D. tergantung deklarasi
71. Method dalam Java yang tidak mengembalikan nilai memiliki tipe kembalian…
- A. int
- B. void
- C. String
- D. boolean
72. Jika sebuah method memiliki parameter, maka saat pemanggilan method, argumen yang diberikan harus sesuai dengan…
- A. nama parameter
- B. tipe data parameter
- C. jumlah dan tipe data parameter
- D. nama variabel parameter
73. Kata kunci untuk mengembalikan nilai dari suatu method adalah…
- A. return
- B. void
- C. break
- D. continue
74. Method yang dapat dipanggil tanpa membuat objek dari kelas disebut…
- A. method void
- B. method static
- C. method private
- D. method konstruktor
75. Overloading method terjadi ketika…
- A. dua method memiliki nama sama dan parameter berbeda
- B. dua method memiliki nama dan parameter sama
- C. method dipanggil secara rekursif
- D. method mengembalikan tipe data berbeda
76. Blok try-catch digunakan untuk…
- A. mendefinisikan method
- B. menangani eksepsi
- C. mendeklarasikan array
- D. mengulang pernyataan
77. Eksepsi yang terjadi karena pembagian bilangan bulat dengan nol adalah…
- A. NullPointerException
- B. ArrayIndexOutOfBoundsException
- C. ArithmeticException
- D. IOException
78. Pernyataan yang digunakan untuk melemparkan eksepsi secara eksplisit adalah…
- A. try
- B. catch
- C. throw
- D. throws
79. Jika suatu method dapat melemparkan eksepsi, deklarasi method harus menyertakan…
- A. try
- B. catch
- C. finally
- D. throws
80. Blok finally akan selalu dijalankan…
- A. hanya jika terjadi eksepsi
- B. hanya jika tidak ada eksepsi
- C. terlepas dari ada atau tidaknya eksepsi
- D. hanya jika ada return di try atau catch
81. Metode yang digunakan untuk mendapatkan panjang dari objek String adalah…
- A. size()
- B. length()
- C. getSize()
- D. len()
82. Untuk menggabungkan dua string dalam Java, operator yang tepat adalah…
- A. +
- B. &
- C. concat()
- D. append()
83. Kelas StringBuffer di Java bersifat…
- A. immutable
- B. mutable
- C. final
- D. abstract
84. Metode dari kelas Math untuk menghasilkan nilai maksimum dari dua angka adalah…
- A. max()
- B. min()
- C. abs()
- D. pow()
85. Untuk menggabungkan dua objek String menjadi satu, method apa yang paling tepat digunakan di Java?
- A. append()
- B. concat()
- C. merge()
- D. join()
86. Dalam pemrograman Java, objek StringBuffer dibuat dengan tujuan utama agar?
- A. Dapat diubah ukurannya secara otomatis
- B. Dapat menyimpan karakter lebih cepat
- C. Dapat diakses secara acak
- D. Dapat diubah isinya tanpa membuat objek baru
87. Method apakah yang digunakan untuk menambahkan string ke akhir objek StringBuffer di Java?
- A. insert()
- B. append()
- C. add()
- D. concat()
88. Apa fungsi method delete(int start, int end) pada kelas StringBuffer?
- A. Menghapus karakter dari indeks start hingga sebelum end
- B. Menghapus semua karakter dari buffer
- C. Menghapus karakter dari indeks start hingga end termasuk end
- D. Menghapus karakter hanya pada indeks start
89. Perhatikan kode berikut: StringBuffer sb = new StringBuffer("UT"); sb.append(" Buka").append(" Akses"); System.out.println(sb); Output yang dihasilkan adalah?
- A. UT Buka
- B. Buka Akses
- C. UTBukaAkses
- D. UT Buka Akses
90. Method apa pada StringBuffer yang berfungsi untuk menyisipkan string pada posisi tertentu?
- A. insert()
- B. setCharAt()
- C. append()
- D. replace()
91. Kelas Math dalam Java menyediakan method untuk menghitung nilai mutlak. Method yang tepat adalah?
- A. abs()
- B. floor()
- C. ceil()
- D. round()
92. Untuk membulatkan bilangan 4.7 ke atas menjadi 5, method Math yang digunakan adalah?
- A. round(4.7)
- B. floor(4.7)
- C. ceil(4.7)
- D. rint(4.7)
93. Method Math.sqrt(25) akan menghasilkan nilai?
- A. 12.5
- B. 5
- C. 5.0
- D. 25
94. Untuk menghasilkan bilangan acak antara 0.0 dan 1.0, method dari kelas Math yang digunakan adalah?
- A. Math.round()
- B. Math.random()
- C. Math.abs()
- D. Math.pow()
95. Berapakah hasil dari Math.pow(2, 3)?
- A. 6
- B. 8
- C. 9
- D. 5
96. Dalam praktikum membuat program Java, langkah pertama yang harus dilakukan adalah?
- A. Menulis kode program
- B. Mengompilasi program
- C. Membuat flowchart terlebih dahulu
- D. Menjalankan program
97. Deklarasi array int[] nilai = new int[5]; akan mengalokasikan memori untuk berapa elemen?
- A. 4
- B. 10
- C. 6
- D. 5
98. Method dalam Java yang tidak mengembalikan nilai memiliki tipe data?
- A. int
- B. boolean
- C. String
- D. void
99. Blok try-catch digunakan untuk menangani apa dalam pemrograman Java?
- A. Eksepsi atau exception
- B. Kesalahan sintaks
- C. Looping tak terbatas
- D. Deklarasi variabel
100. Dalam membuat program Java, setelah menulis kode langkah berikutnya adalah?
- A. Menjalankan program
- B. Membuat flowchart
- C. Mengompilasi kode
- D. Mendebug program
Latihan Tambahan dengan AI
Salin prompt di bawah ini, lalu tempelkan ke ChatGPT, Gemini, Claude, atau AI lainnya untuk mendapatkan 50 soal latihan baru dengan materi yang sama. Soal yang dihasilkan AI akan berbeda dari soal di halaman ini.