Habis nonton tutorial Java di YouTube, eh pas buka modul malah bingung bedain array di Modul 3 sama konsep kelas di Modul 7. Dua topik ini kelihatan teknis banget tapi ternyata saling terkait di MSIM4301 Pemrograman Berbasis Desktop. Padahal baru mau mulai ngerjain latihan. Halaman ini nyediain soal Universitas Terbuka yang fokus ke KB-KB yang sering bikin kamu mengernyitkan dahi.
Modul 5 tentang perulangan while dan Modul 8 yang membahas polymorphism jadi momok tersendiri karena beda pendekatan. Bukan karena susah, tapi butuh kebiasaan mikir logis. Cobain deh kerjakan soal per modul dulu. Kumpulan latihan soal Sistem Informasi ini dikelompokkan biar kamu nggak loncat-loncat materi.
Soal UAS UT di bawah ini membahas inti tiap KB, dari UML di Modul 6 sampai exception di Modul 8. Setiap soal dilengkapi kunci jawaban sama pembahasan, bukan cuma centang jawaban aja.
Soal UT MSIM4301 Pemrograman Berbasis Desktop
Apa yang dimaksud dengan pemrograman berorientasi objek (OOP)?
OOP adalah paradigma yang menggunakan objek sebagai komponen utama, bukan fungsi atau prosedur.
Manakah dari berikut ini yang merupakan prinsip utama dalam OOP?
Prinsip utama OOP meliputi polimorfisme, pewarisan (inheritance), dan enkapsulasi.
Apa fungsi dari objek dalam OOP?
Objek dalam OOP digunakan untuk merepresentasikan entitas dengan atribut (data) dan metode (perilaku).
Manakah contoh yang paling tepat untuk menggambarkan konsep kelas dan objek?
Kelas berfungsi sebagai cetak biru untuk membuat objek, dan objek adalah instance konkret dari kelas tersebut.
Apa perbedaan utama antara kelas dan objek dalam OOP?
Kelas adalah definisi abstrak, sedangkan objek adalah wujud nyata dari kelas dengan nilai atribut spesifik.
Mengapa OOP dianggap lebih efektif untuk pengembangan perangkat lunak skala besar?
OOP meningkatkan modularitas, reuse kode melalui pewarisan, dan kemudahan pemeliharaan.
Langkah pertama yang harus dilakukan saat menginstal Java Development Kit (JDK) adalah?
Langkah awal instalasi JDK adalah mengunduh installer dari sumber resmi sebelum langkah lainnya.
Apa fungsi dari variabel lingkungan PATH dalam instalasi Java?
PATH memungkinkan OS menemukan executable seperti javac dan java tanpa perlu direktori lengkap.
Perintah apa yang digunakan untuk memverifikasi bahwa JDK telah terinstal dengan benar?
Perintah "java -version" menampilkan versi Java yang terinstal, menandakan instalasi berhasil.
Apa yang dimaksud dengan Java Runtime Environment (JRE)?
JRE menyediakan pustaka dan JVM untuk menjalankan aplikasi Java, bukan untuk pengembangan.
Mengapa penting untuk menginstal JDK, bukan hanya JRE, saat belajar pemrograman Java?
JDK menyertakan compiler dan alat yang dibutuhkan untuk menulis serta mengkompilasi kode Java.
Apa yang harus dilakukan setelah mengunduh installer JDK?
Setelah mengunduh, langkah selanjutnya adalah menjalankan installer untuk menyelesaikan instalasi.
Tipe data manakah yang digunakan untuk menyimpan nilai benar atau salah dalam Java?
Tipe boolean hanya memiliki dua nilai: true atau false.
Manakah dari berikut ini yang merupakan identifier yang valid dalam Java?
Identifier tidak boleh diawali angka, bukan kata kunci (seperti class), dan tidak boleh mengandung tanda hubung. nilai_saya memenuhi aturan.
Apa yang dimaksud dengan keyword dalam Java?
Keyword adalah kata cadangan dengan fungsi tertentu, seperti if, else, class, dan tidak bisa digunakan sebagai identifier.
Manakah pernyataan yang benar tentang tipe data float di Java?
float menyimpan angka desimal presisi tunggal dan perlu akhiran f (misal 3.14f).
Apa perbedaan antara variabel lokal dan variabel instance dalam Java?
Variabel lokal didefinisikan dalam metode dan hanya berlaku di sana, sedangkan variabel instance dideklarasikan di kelas dan dimiliki oleh objek.
Dalam Java, mana dari berikut ini yang merupakan contoh identifier yang valid?
Identifier dalam Java harus dimulai dengan huruf, underscore, atau tanda dollar. Opsi B memenuhi aturan tersebut.
Diberikan class Mahasiswa dengan atribut String nama dan int umur. Bagaimana cara mendeklarasikan objek baru dan mengisi atribut nama dengan 'Andi'?
Deklarasi objek menggunakan new diikuti konstruktor, dan string harus diapit tanda petik ganda.
Dalam method hitungLuas yang menerima parameter int panjang dan int lebar, bagaimana cara memanggil method tersebut jika objek bernama ruang?
Pemanggilan method dilakukan dengan objek diikuti titik dan method, parameter dipisah koma tanpa spasi berlebih.
Jika ada class Mobil dengan method void bergerak(), dan objek mobil1, pernyataan mana yang benar untuk memanggil method tersebut?
Method instance dipanggil melalui objek, bukan class.
Dalam Java, tipe data boolean digunakan untuk menyimpan nilai apa?
Tipe boolean hanya menyimpan true atau false.
Diberikan class Buku dengan atribut String judul dan method void setJudul(String j). Bagaimana cara mengisi atribut judul dengan nilai 'Java'?
Method setJudul menggunakan parameter String, nilainya harus dalam tanda petik ganda.
Jika ada int[] angka = {1, 2, 3, 4, 5};, berapa nilai dari angka[2]?
Indeks array dimulai dari 0, sehingga indeks ke-2 adalah elemen ketiga yaitu 3.
Diberikan String kata = "Pemrograman";, method apa yang digunakan untuk mengambil karakter pada indeks ke-4?
charAt() digunakan untuk mengambil karakter pada indeks tertentu.
Array dua dimensi int[][] matriks = new int[3][4]; memiliki jumlah baris dan kolom berapa?
Deklarasi new int[3][4] berarti 3 baris dan 4 kolom.
Jika String s1 = "Halo"; String s2 = "halo";, manakah pernyataan yang benar?
equalsIgnoreCase membandingkan tanpa memperhatikan huruf besar kecil, sehingga 'Halo' dan 'halo' dianggap sama.
Array String[] nama = {"Ali", "Budi", "Cici"};, bagaimana cara mengubah elemen pertama menjadi 'Doni'?
Elemen array diubah dengan indeks yang sesuai, dan string harus diapit tanda petik ganda.
Method length() pada String digunakan untuk apa?
Method length() pada String mengembalikan jumlah karakter.
Jika String teks = "Java";, bagaimana cara mendapatkan substring "av"?
substring(1,3) mengambil karakter dari indeks 1 hingga 2, menghasilkan 'av'.
Array int[] data = {10, 20, 30, 40};, berapa nilai dari data.length?
Array data memiliki 4 elemen, sehingga length bernilai 4.
Method toUpperCase() pada String akan mengembalikan string baru dengan karakter apa?
toUpperCase() mengubah semua huruf menjadi kapital.
Jika String str = "Pemrograman Berbasis Desktop";, method indexOf('B') akan mengembalikan nilai berapa?
Karakter 'B' berada pada indeks ke-13 (indeks dimulai 0).
Array char[] huruf = {'a', 'b', 'c'};, bagaimana cara mengakses elemen 'b'?
Indeks dimulai dari 0, sehingga 'b' ada di indeks 1.
Perhatikan kode berikut: public class Main { public static void main(String[] args) { int[] angka = {1,3,5,7,9}; System.out.println(angka.length); } } Apa output dari kode tersebut?
Method length pada array mengembalikan jumlah elemen, yaitu 5.
Dalam struktur if, operator yang digunakan untuk memeriksa apakah dua nilai tidak sama adalah…
Operator != digunakan untuk memeriksa ketidaksamaan.
int x = 10; if (x > 5) { System.out.println("A"); } else if (x > 15) { System.out.println("B"); } Apa output dari kode di atas?
Karena x=10 lebih besar dari 5, maka blok if pertama dieksekusi, mencetak A.
int nilai = 75; if (nilai >= 80) { System.out.println("Lulus"); } else if (nilai >= 60) { System.out.println("Remidi"); } else { System.out.println("Tidak lulus"); } Apa output dari kode di atas?
Karena nilai 75 lebih dari atau sama dengan 60 tetapi kurang dari 80, maka blok else if dieksekusi, mencetak Remidi.
String hasil; int a = 10, b = 20; if (a > b) { hasil = "a lebih besar"; } else { hasil = "b lebih besar atau sama"; } System.out.println(hasil); Apa output dari kode di atas?
Karena 10 tidak lebih besar dari 20, maka blok else dieksekusi, mencetak b lebih besar atau sama.
int bilangan = 7; if (bilangan % 2 == 0) { System.out.println("Genap"); } else { System.out.println("Ganjil"); } Apa output dari kode di atas?
Karena 7 modulo 2 menghasilkan 1, tidak sama dengan 0, maka blok else dieksekusi, mencetak Ganjil.
Dalam struktur switch case, statement yang digunakan untuk keluar dari blok switch setelah suatu case dieksekusi adalah…
Keyword break digunakan untuk menghentikan eksekusi switch.
int hari = 3; switch (hari) { case 1: System.out.println("Senin"); break; case 2: System.out.println("Selasa"); break; case 3: System.out.println("Rabu"); break; default: System.out.println("Hari lain"); } Apa output dari kode di atas?
Karena hari=3, maka case 3 dieksekusi, mencetak Rabu.
char nilai = 'B'; switch (nilai) { case 'A': System.out.println("Sangat baik"); break; case 'B': System.out.println("Baik"); break; case 'C': System.out.println("Cukup"); break; default: System.out.println("Kurang"); } Apa output dari kode di atas?
Karena nilai='B', maka case B dieksekusi, mencetak Baik.
String warna = "merah"; switch (warna) { case "merah": System.out.println("Berhenti"); break; case "kuning": System.out.println("Hati-hati"); break; case "hijau": System.out.println("Jalan"); break; default: System.out.println("Warna tidak dikenal"); } Apa output dari kode di atas?
Karena warna="merah", maka case "merah" dieksekusi, mencetak Berhenti.
int pilihan = 2; switch (pilihan) { case 1: System.out.println("Pertama"); break; case 2: System.out.println("Kedua"); break; case 3: System.out.println("Ketiga"); break; default: System.out.println("Tidak ada"); } Apa output dari kode di atas?
Karena pilihan=2, maka case 2 dieksekusi, mencetak Kedua.
Perhatikan kode berikut: for (int i = 0; i < 5; i++) { System.out.print(i + " "); } Apa output dari kode di atas?
Perulangan for dari i=0 hingga i<5 mencetak nilai i yaitu 0,1,2,3,4.
int sum = 0; for (int i = 1; i <= 4; i++) { sum += i; } System.out.println(sum); Apa output dari kode di atas?
Penjumlahan dari 1+2+3+4=10.
String teks = "Java"; for (int i = 0; i < teks.length(); i++) { System.out.print(teks.charAt(i) + " "); } Apa output dari kode di atas?
Perulangan for mencetak karakter string 'Java' satu per satu dengan spasi: J a v a.
int hasil = 1; for (int i = 1; i <= 3; i++) { hasil *= i; } System.out.println(hasil); Apa output dari kode di atas?
Perkalian 1*1*2*3=6.
for (int i = 2; i <= 8; i += 2) { System.out.print(i + " "); } Apa output dari kode di atas?
Perulangan for dengan increment 2 dari 2 hingga 8 menghasilkan 2,4,6,8.
int i = 0; while (i < 3) { System.out.print(i + " "); i++; } Apa output dari kode di atas?
Perulangan while dieksekusi selama i<3, dengan i dimulai 0, mencetak 0,1,2.
Perulangan while pada Java akan terus berjalan selama apa?
Perulangan while akan terus mengeksekusi blok kode selama kondisi yang diberikan bernilai true. Jika kondisi false, perulangan berhenti.
Apa yang terjadi jika kondisi pada perulangan while sejak awal bernilai false?
Jika kondisi awal while false, blok kode di dalam perulangan tidak akan dieksekusi sama sekali.
Perhatikan kode berikut: int i = 0; while (i < 5) { i++; } Setelah perulangan selesai, berapa nilai i?
Perulangan while berjalan selama i < 5. Setiap iterasi i bertambah 1, sehingga setelah i=5 kondisi false dan perulangan berhenti. Nilai akhir i adalah 5.
Apa fungsi pernyataan break di dalam perulangan while?
Pernyataan break digunakan untuk keluar dari perulangan while secara paksa sebelum kondisi menjadi false.
Apa singkatan dari UML?
UML adalah singkatan dari Unified Modeling Language, sebuah bahasa pemodelan standar untuk pengembangan perangkat lunak.
Diagram UML yang digunakan untuk menggambarkan interaksi antar objek berdasarkan urutan waktu adalah?
Sequence diagram menggambarkan interaksi antar objek dalam urutan waktu tertentu.
Jenis diagram UML yang menunjukkan hubungan antar kelas adalah?
Class diagram digunakan untuk menunjukkan struktur statis sistem dengan hubungan antar kelas.
Apa tujuan utama dari use case diagram?
Use case diagram menggambarkan fungsionalitas sistem dari sudut pandang pengguna atau aktor.
Dalam UML, apa yang dimaksud dengan aktor?
Aktor adalah entitas eksternal, seperti pengguna atau sistem lain, yang berinteraksi dengan sistem.
Langkah pertama dalam perancangan dengan UML adalah?
Perancangan dengan UML dimulai dengan mengidentifikasi kebutuhan sistem untuk memahami apa yang harus dilakukan sistem.
Diagram UML yang menggambarkan aliran aktivitas dalam sistem adalah?
Activity diagram menunjukkan aliran aktivitas atau proses dalam sistem.
Dalam perancangan UML, hubungan generalization antara kelas menunjukkan?
Generalization dalam UML mewakili hubungan pewarisan (inheritance) antara kelas induk dan kelas anak.
Apa yang dimaksud dengan multiplicity dalam class diagram?
Multiplicity menentukan jumlah objek yang berpartisipasi dalam hubungan antar kelas.
Apa yang dimaksud dengan abstraction dalam pemrograman berorientasi objek?
Abstraction adalah konsep menyembunyikan detail kompleks dan hanya menampilkan fungsionalitas esensial.
Interface dalam Java mendefinisikan?
Interface hanya mendeklarasikan metode abstrak yang harus diimplementasikan oleh kelas yang menggunakannya.
Sebuah kelas yang mengimplementasikan interface harus?
Kelas yang mengimplementasikan interface wajib menyediakan implementasi untuk semua metode abstrak yang dideklarasikan di interface.
Kata kunci yang digunakan untuk mengimplementasikan interface dalam Java adalah?
Kata kunci implements digunakan oleh kelas untuk mengimplementasikan interface.
Dalam konsep abstraction pada pemrograman berorientasi objek Java, bagaimana cara mendeklarasikan sebuah kelas abstrak?
Kelas abstrak dideklarasikan dengan keyword 'abstract' sebelum 'class'.
Interface dalam Java mendefinisikan kontrak yang harus diimplementasikan oleh kelas. Manakah pernyataan yang benar mengenai interface?
Sejak Java 8, interface dapat memiliki method default dengan implementasi.
Dalam inheritance, hubungan antara kelas induk dan kelas anak disebut sebagai relasi?
Inheritance adalah pewarisan sifat dari kelas induk ke kelas anak.
Jika kelas B merupakan subclass dari kelas A, dan kelas A memiliki method 'tampil()' yang bersifat public, maka di kelas B:
Method public di kelas induk diwariskan ke subclass.
Keyword yang digunakan untuk memanggil konstruktor kelas induk dari kelas anak adalah?
Keyword 'super' digunakan untuk merujuk ke kelas induk.
Jika kelas induk memiliki konstruktor berparameter, bagaimana cara memanggilnya dari konstruktor kelas anak?
Konstruktor induk dipanggil dengan 'super(parameter)' di baris pertama.
Dalam inheritance, manakah pernyataan yang benar mengenai method overriding?
Overriding memungkinkan implementasi ulang method dengan nama dan parameter sama.
Encapsulation dalam OOP bertujuan untuk:
Encapsulation menyembunyikan data dan hanya menyediakan akses melalui method.
Untuk menerapkan encapsulation, atribut dalam kelas sebaiknya memiliki akses modifier:
Atribut private hanya dapat diakses dari dalam kelas itu sendiri.
Method yang digunakan untuk mengakses nilai atribut private disebut:
Getter method digunakan untuk mengambil nilai atribut private.
Jika sebuah atribut private ingin diubah nilainya dari luar kelas, maka harus disediakan:
Setter method digunakan untuk mengubah nilai atribut private.
Manakah contoh yang benar dari enkapsulasi dalam kode Java?
Atribut private dengan getter dan setter adalah contoh enkapsulasi.
Polymorphism dalam OOP memungkinkan:
Polymorphism berarti banyak bentuk, biasanya melalui overriding atau overloading.
Contoh polymorphism melalui method overloading adalah:
Overloading adalah method dengan nama sama tapi parameter berbeda dalam satu kelas.
Untuk mencapai polymorphism melalui inheritance, method di kelas induk harus bersifat:
Method yang dapat di-override memungkinkan polimorfisme dinamis.
Jika sebuah method di kelas induk ditandai dengan 'final', maka method tersebut:
Method final tidak dapat di-override untuk menjaga implementasi tetap.
Dalam konsep polymorphism, method yang dapat dipanggil pada suatu objek ditentukan oleh tipe referensi, bukan oleh tipe objek sebenarnya. Manakah pernyataan berikut yang benar terkait polymorphism di Java?
Method overriding pada subclass memungkinkan method yang sama memiliki perilaku berbeda tergantung class objek, ini adalah inti polymorphism.
Ketika terjadi eksepsi (exception) pada blok try-catch, apa yang terjadi jika tidak ada blok catch yang sesuai dengan tipe eksepsi tersebut?
Jika tidak ada catch yang cocok, eksepsi akan menyebar ke pemanggil method dan biasanya menyebabkan program berhenti dengan pesan error.
Statement manakah yang digunakan untuk menulis data ke dalam file teks di Java menggunakan kelas FileWriter?
FileWriter memiliki method write(String) untuk menulis teks ke file. Method print, appendLine, dan output tidak tersedia di kelas FileWriter.
Apa fungsi dari blok finally dalam penanganan eksepsi?
Blok finally selalu dieksekusi setelah blok try-catch selesai, terlepas dari apakah eksepsi terjadi atau tidak, untuk membersihkan sumber daya.
Perhatikan kode berikut: try { int hasil = 10 / 0; } catch (ArithmeticException e) { System.out.println("Error"); } finally { System.out.println("Selesai"); } Output yang akan muncul adalah?
Pembagian dengan nol memicu ArithmeticException, blok catch menangkapnya dan mencetak 'Error', kemudian blok finally mencetak 'Selesai'.
Kelas manakah di Java yang digunakan untuk membaca input dari file teks dengan menggunakan buffer?
BufferedReader, biasanya dikombinasikan dengan FileReader, digunakan untuk membaca teks dari file secara efisien dengan buffering.
Apa kepanjangan dari GUI dalam pengembangan aplikasi desktop?
GUI singkatan dari Graphical User Interface, yaitu antarmuka pengguna berbasis grafis yang memungkinkan interaksi melalui elemen visual.
Komponen Swing manakah yang digunakan untuk menampilkan teks dalam satu baris dan memiliki label?
JLabel adalah komponen Swing untuk menampilkan teks pendek, biasanya sebagai label. JTextField untuk input satu baris, JTextArea untuk input banyak baris.
Untuk menangani event klik tombol di Swing, interface yang harus diimplementasikan adalah?
ActionListener digunakan untuk menangani aksi seperti klik tombol, dengan method actionPerformed. MouseListener lebih spesifik untuk mouse.
Method apa yang digunakan untuk mengatur agar jendela aplikasi Swing muncul di tengah layar?
setLocationRelativeTo(null) akan memposisikan jendela di tengah layar. Method lain untuk visibility, close operation, dan ukuran.
Apa fungsi dari layout manager BorderLayout dalam Swing?
BorderLayout membagi panel menjadi lima region (North, South, East, West, Center). FlowLayout untuk baris, GridLayout untuk grid.
Dalam JDBC, langkah pertama yang harus dilakukan sebelum mengeksekusi query SQL adalah?
Langkah pertama adalah membuat koneksi ke database menggunakan DriverManager.getConnection, lalu baru membuat statement dan eksekusi.
Driver JDBC yang digunakan untuk menghubungkan Java dengan MySQL adalah?
Driver untuk MySQL versi terkini adalah com.mysql.cj.jdbc.Driver. Untuk versi lama menggunakan com.mysql.jdbc.Driver, tetapi versi baru menggunakan cj.
Method manakah dari interface Statement yang digunakan untuk menjalankan query SELECT di JDBC?
executeQuery() digunakan untuk query SELECT yang mengembalikan ResultSet. executeUpdate() untuk INSERT/UPDATE/DELETE.
Apa yang dimaksud dengan SQL Injection dan cara pencegahannya?
SQL injection adalah serangan dengan menyisipkan perintah SQL berbahaya melalui input pengguna. Dicegah menggunakan PreparedStatement dengan parameter binding.
Setelah selesai menggunakan koneksi database, langkah yang tepat adalah?
Urutan penutupan yang benar adalah ResultSet, Statement, lalu Connection. Ini memastikan sumber daya dibebaskan dengan benar tanpa error.
Tiap kali lihat soal inheritance, baru sadar UML itu ternyata sering dipakai buat nentuin struktur kodenya. Banyak yang akhirnya nggak bisa bedain kapan pakai abstraction dan kapan perlu polymorphism pas ngerjain studi kasus. Nah soal di atas itu contoh nyata yang bikin kita paham kaitan antar modul dari Java dasar sampai OOP lanjutan. Ada banyak bank soal UAS UT lain kalau mau cek variasi soal serupa biar nggak kaget pas ujian.
Di MSIM4301 Pemrograman Berbasis Desktop, bagian GUI dan database sering muncul bareng di soal UO yang butuh analisis koneksi keduanya. Sementara soal UTM diem-diem nguji pemahaman tipedata sama perulangan lewat potongan kode singkat. Yang repetitif kayak exception handling juga wajib dicermati karena bentuknya beda tiap semester. Intinya latihan soal ini jadi bekal buat ngehadapin pola yang nggak akan jauh dari yang sudah dikerjakan.




