Call us now:
Menjelang ujian semester 2 tahun 2026, siswa kelas 11 jurusan Rekayasa Perangkat Lunak (RPL) mulai genCar mempersiapkan diri. Salah satu mata pelajaran yang memerlukan pemahaman mendalam adalah Pemograman Desktop Lunak. Artikel ini menyajikan sepuluh contoh soal lengkap dengan kunci jawabannya untuk memfasilitasi latihan mandiri di rumah.
Soal-soal berikut dirancang dengan level kognitif tingkat tinggi atau Higher Order Thinking Skills (HOTS). Dengan demikian, siswa tidak hanya dituntut menghafal sintaks melainkan juga mampu menganalisis, mengevaluasi, dan menciptakan solusi dari kasus pemrograman nyata. Mari simak kumpulan soalnya satu per satu.
Konsep Dasar dan Struktur Bahasa Pemograman Desktop
Bagian pertama ini menguji kemampuan siswa dalam memahami struktur dasar, variabel, serta tipe data yang biasa dipakai dalam aplikasi desktop. Penguasaan konsep ini menjadi fondasi untuk mempelajari materi yang lebih kompleks.
Perhatikan bahwa soal-soal di bawah menggunakan bahasa Java dan C sebagai perwakilan bahasa pemrograman desktop. Namun prinsip yang diujikan dapat diterapkan pada bahasa lain selama sintaksnya disesuaikan.
Soal 1: Deklarasi Variabel dan Tipe Data
Seorang programmer ingin menyimpan data gaji karyawan yang memiliki nilai desimal, nomor induk pegawai yang terdiri dari lima digit angka, dan status pernikahan yang berupa teks. Tentukan deklarasi variabel yang tepat untuk ketiga data tersebut dalam bahasa Java.
A. int gaji; char nip; String status;
B. double gaji; int nip; String status;
C. float gaji; String nip; char status;
D. double gaji; String nip; boolean status;
Kunci Jawaban: B. double gaji; int nip; String status;
Penjelasan: Gaji yang memiliki desimal cocok menggunakan double. Nomor induk pegawai yang tidak digunakan untuk operasi aritmatika sebaiknya disimpan sebagai int atau String, tetapi dalam pilihan yang tersedia int adalah yang benar. Status pernikahan dengan teks lebih cocok menggunakan String.
Soal 2: Struktur Perulangan Do-While
Sebuah aplikasi kasir ingin menampilkan menu utama berulang kali selama pengguna belum memilih opsi keluar. Struktur perulangan manakah yang paling tepat digunakan agar blok kode dijamin dijalankan minimal satu kali?
A. for (int i=0; i<10; i++)
B. while (pilihan != 0)
C. do { … } while (pilihan != 0)
D. switch-case
Kunci Jawaban: C. do { … } while (pilihan != 0)
Dengan do-while, menu akan muncul setidaknya satu kali sebelum kondisi diperiksa. Ini sangat sesuai dengan kebutuhan aplikasi menu interaktif.
Penerapan Struktur Data dan Algoritma dalam Aplikasi Desktop
Setelah menguasai dasar, siswa perlu menerapkan struktur data seperti array dan algoritma pengurutan. Soal-soal berikut menguji kemampuan dalam implementasi sorting dan searching.
Kemampuan untuk memilih algoritma yang efisien sangat penting dalam pengembangan perangkat lunak desktop karena langsung mempengaruhi performa aplikasi saat menangani data dalam jumlah besar.
Soal 3: Algoritma Pencarian pada Array
Seorang developer memiliki array berisi 3.000 data pelanggan yang sudah terurut berdasarkan nama. Ia ingin mencari data pelanggan dengan nama “Budi”. Manakah metode pencarian yang paling efisien dilakukan dalam kasus ini?
A. Sequential search
B. Binary search
C. Interpolation search
D. Linear search
Kunci Jawaban: B. Binary search
Karena data sudah terurut, binary search dapat memangkas area pencarian menjadi setengahnya setiap langkah. Metode ini hanya membutuhkan sekitar 12 langkah untuk 3.000 data, jauh lebih cepat dibandingkan sequential search.
Soal 4: Sorting dengan Metode Insertion Sort
Diberikan array data nilai ujian: [87, 65, 92, 73, 81]. Jika diterapkan algoritma insertion sort secara ascending, bagaimanakah urutan array tersebut setelah melewati iterasi ke-3 (pergeseran elemen ketiga)?
A. [65, 87, 92, 73, 81]
B. [65, 73, 81, 87, 92]
C. [65, 73, 87, 92, 81]
D. [73, 65, 87, 92, 81]
Kunci Jawaban: C. [65, 73, 87, 92, 81]
Penjelasan: Elemen ke-0 (87) dianggap sorted. Iterasi 1: 65 87, tetap. Iterasi 3: 73, disisipkan antara 65 dan 87 sehingga menjadi [65, 73, 87, 92, 81].
Pemrograman Event-Driven pada Aplikasi Desktop
Kelas 11 semester 2 juga mempelajari konsep event-driven programming yang menjadi ciri khas aplikasi desktop berbasis GUI. Siswa harus memahami bagaimana komponen merespon aksi pengguna seperti klik tombol atau input teks.
Soal berikut menguji logika pada penulisan event handler dan penggunaan properti komponen dengan benar dalam framework seperti Swing (Java) atau Windows Forms (C).
Soal 5: Mengganti Label Saat Tombol Diklik
Pada form terdapat sebuah label dengan nama lblHasil dan sebuah tombol btnProses. Kode berikut ditulis dalam event handler klik tombol: lblHasil.setForeground(Color.RED); lblHasil.setText(“Data berhasil disimpan”);.
Apa yang akan terjadi saat user menekan tombol tersebut?
A. Tombol berubah warna menjadi merah
B.
Label berubah teks menjadi “Data berhasil disimpan” dan warna font menjadi merah
C. Muncul pesan error karena properti setForeground tidak dikenali
D.
Label menghilang dari form
Kunci Jawaban: B. Label berubah teks menjadi “Data berhasil disimpan” dan warna font menjadi merah
Properti setForeground digunakan untuk mengubah warna teks, sedangkan setText untuk mengganti isi label. Keduanya adalah method standar dari komponen label di Swing.

Soal 6: Validasi Input Form
Seorang pengembang membuat form input data dengan kolom txtUmur. Jika user memasukkan teks kosong lalu menekan tombol “Simpan”, aplikasi seharusnya menampilkan peringatan. Potongan kode manakah yang tepat untuk melakukan validasi tersebut?
A. if (txtUmur.getText().isEmpty()) { JOptionPane.showMessageDialog(this, “Umur harus diisi”); }
B. if (txtUmur.getText().equals(“”)) { System.out.println(“Error”); }
C. if (txtUmur.getText().length() == 0) { txtUmur.setVisible(false); }
D. if (txtUmur.getText() == null) { txtUmur.requestFocus(); }
Kunci Jawaban: A. if (txtUmur.getText(). showMessageDialog(this, “Umur harus diisi”); }
Metode isEmpty() mengembalikan true jika panjang teks nol. JOptionPane.showMessageDialog menampilkan jendela pesan yang informatif kepada user.
Konektivitas Database dan Pelaporan
Topik koneksi database ke aplikasi desktop menjadi materi wajib di semester 2. Siswa harus mampu menuliskan koneksi menggunakan JDBC atau ADO.NET serta melakukan operasi CRUD (Create, Read, Update, Delete).
Selain itu, pembuatan laporan sederhana menggunakan library seperti iReport atau Crystal Reports juga mulai diperkenalkan. Soal terakhir akan menguji kemampuan menulis kueri SQL yang benar.
Soal 7: Menjalin Koneksi ke MySQL
String koneksi berikut digunakan untuk menghubungkan aplikasi Java ke database MySQL: String url = “jdbc:mysql://localhost:3306/siswa_db”; String user = “root”; String password = “”;. Manakah dari pernyataan berikut yang benar tentang potongan kode tersebut?
A.
Nama database adalah “root”
B. Port default yang digunakan adalah 3306
C.
Tabel yang akan diakses adalah “siswa_db”
D. User dan password harus diisi dengan nilai yang sama
Kunci Jawaban: B.
Port default yang digunakan adalah 3306
Dalam URL JDBC untuk MySQL, nomor port dinyatakan setelah localhost. Nama database yang benar adalah “siswa_db”, bukan “root”. User adalah “root” dengan password kosong.
Soal 8: Operasi Delete Data
Perintah SQL manakah yang digunakan untuk menghapus data seluruh siswa yang berusia lebih dari 18 tahun dari tabel tbl_siswa?
A. DELETE FROM tbl_siswa WHERE usia > 18
B. REMOVE FROM tbl_siswa WHERE usia > 18
C. DROP TABLE tbl_siswa WHERE usia > 18
D. DELETE FROM tbl_siswa IF usia > 18
Kunci Jawaban: A. DELETE FROM tbl_siswa WHERE usia > 18
Perintah DELETE FROM dengan klausa WHERE akan menghapus baris yang memenuhi kondisi. DROP TABLE akan menghapus seluruh tabel, bukan data tertentu.
Soal 9: Membuat Laporan Pencarian
Seorang staf ingin mencetak laporan data barang hanya yang stoknya di bawah 10 unit. Kueri SQL manakah yang menghasilkan data tersebut jika kolom stok bernama stok_barang?
A.
SELECT FROM barang WHERE stok_barang < 10
B. SELECT FROM barang HAVING stok_barang < 10
C.
SELECT FROM barang WHERE stok_barang BETWEEN 1 AND 10
D. SELECT FROM barang ORDER BY stok_barang DESC
Kunci Jawaban: A.
SELECT FROM barang WHERE stok_barang < 10
Klausa WHERE digunakan untuk menyaring baris sebelum pengelompokan. Opsi C akan menyertakan stok tepat 10, yang tidak diminta. Opsi D hanya mengurutkan tanpa menyaring.
Soal 10: Error Handling Koneksi Database
Jika terjadi kesalahan saat menjalankan perintah SQL melalui Statement di Java, exception class apa yang harus ditangkap?
A. ClassNotFoundException
B. FileNotFoundException
C. SQLException
D. NullPointerException
Kunci Jawaban: C. SQLException
SQLException adalah kelas di Java yang digunakan untuk menangani kesalahan yang berkaitan dengan database, seperti query salah atau koneksi terputus. ClassNotFoundException digunakan saat driver tidak ditemukan, tetapi ini lebih jarang terjadi jika kode sudah benar.
Kesimpulan
Sepuluh contoh soal di atas mencakup empat pilar utama pemograman desktop lunak: dasar bahasa, algoritma sorting, pemrograman event-driven, hingga integrasi dengan database. Dengan berlatih mengerjakan soal-soal semacam ini, siswa kelas 11 RPL dapat mengukur sejauh mana pemahaman mereka terhadap materi semester 2.
Guru juga dapat menggunakan kumpulan soal ini sebagai referensi untuk ujian tengah semester atau penilaian akhir tahun. Pastikan untuk selalu memperbarui pengetahuan, karena praktik pemrograman desktop terus berevolusi mengikuti kebutuhan industri.
