Memasuki akhir semester genap di Kelas 1 SMK, siswa jurusan Teknik Komputer dan Jaringan (TKJ), Rekayasa Perangkat Lunak (RPL), dan jurusan lain yang terkait dengan teknologi informasi pasti akan menghadapi Ujian Akhir Semester (UAS) untuk mata pelajaran Pemrograman Dasar. Mata pelajaran ini menjadi fondasi penting dalam perjalanan mereka di dunia pengembangan perangkat lunak. Memahami konsep-konsep dasar pemrograman, algoritma, dan logika adalah kunci keberhasilan.
Artikel ini hadir sebagai panduan komprehensif untuk membantu Anda mempersiapkan diri menghadapi UAS Pemrograman Dasar. Kita akan membahas berbagai topik penting yang umumnya diujikan, serta menyajikan contoh-contoh soal yang bervariasi dalam formatnya, mulai dari pilihan ganda, isian singkat, hingga soal esai yang membutuhkan pemahaman mendalam dan kemampuan analisis.
Pentingnya Pemrograman Dasar untuk Kelas 1 SMK
Pemrograman Dasar bukan sekadar mata pelajaran hafalan. Ini adalah tentang melatih cara berpikir logis, memecahkan masalah secara sistematis, dan menerjemahkan ide menjadi instruksi yang dapat dipahami oleh komputer. Konsep-konsep seperti variabel, tipe data, operator, struktur kontrol (percabangan dan perulangan), serta fungsi akan menjadi dasar untuk mempelajari bahasa pemrograman yang lebih kompleks di semester-semester berikutnya.
Bagi siswa SMK, penguasaan Pemrograman Dasar akan membuka pintu untuk berbagai peluang, baik melanjutkan studi ke jenjang yang lebih tinggi maupun langsung terjun ke dunia kerja. Kemampuan memecahkan masalah dan membuat solusi melalui kode adalah aset yang sangat berharga di era digital ini.
Topik-Topik Kunci yang Sering Diujikan
Sebelum kita masuk ke contoh soal, mari kita ulas kembali topik-topik utama yang perlu Anda kuasai:
-
Konsep Dasar Algoritma:
- Pengertian algoritma.
- Ciri-ciri algoritma yang baik.
- Representasi algoritma: pseudocode, flowchart.
- Contoh-contoh algoritma sederhana (misalnya, algoritma menghitung luas persegi panjang).
-
Variabel dan Tipe Data:
- Pengertian variabel.
- Aturan penamaan variabel.
- Tipe data primitif: integer (bilangan bulat), float/double (bilangan desimal), boolean (benar/salah), character (karakter tunggal), string (rangkaian karakter).
- Pentingnya deklarasi variabel.
-
Operator:
- Operator Aritmatika (+, -, *, /, %).
- Operator Relasional (>, <, >=, <=, ==, !=).
- Operator Logika (AND, OR, NOT).
- Operator Penugasan (=, +=, -=, dll.).
-
Struktur Kontrol:
- Percabangan (Conditional Statements):
ifstatement.if-elsestatement.if-else if-elsestatement (nested if).switch-casestatement.
- Perulangan (Looping Statements):
forloop.whileloop.do-whileloop.- Penggunaan
breakdancontinue.
- Percabangan (Conditional Statements):
-
Array (Opsional, tergantung kurikulum spesifik):
- Pengertian array.
- Deklarasi dan inisialisasi array.
- Akses elemen array.
-
Fungsi/Prosedur (Opsional, tergantung kurikulum spesifik):
- Pengertian fungsi/prosedur.
- Perbedaan fungsi dan prosedur.
- Parameter dan nilai kembali.
Contoh Soal UAS Pemrograman Dasar Kelas 1 SMK Semester 2
Berikut adalah contoh-contoh soal yang mencakup berbagai topik dan format. Soal-soal ini dibuat untuk mensimulasikan tingkat kesulitan dan jenis pertanyaan yang mungkin Anda temui.
Bagian I: Pilihan Ganda (Bobot 40%)
Pilihlah satu jawaban yang paling tepat.
-
Suatu langkah-langkah logis yang disusun secara sistematis untuk menyelesaikan suatu masalah disebut…
a. Program
b. Kode
c. Algoritma
d. Aplikasi -
Manakah dari berikut ini yang bukan merupakan ciri algoritma yang baik?
a. Memiliki titik berhenti (finite).
b. Setiap langkahnya ambigu.
c. Memiliki input dan output yang jelas.
d. Setiap langkahnya efektif dan jelas. -
Dalam pseudocode, kata kunci yang digunakan untuk menampilkan output adalah…
a. INPUT
b. PROCESS
c. OUTPUT
d. DECLARE -
Manakah dari berikut ini yang merupakan contoh penamaan variabel yang tidak valid?
a.namaSiswa
b.123total
c.jumlah_item
d.hargaBeli -
Tipe data yang digunakan untuk menyimpan bilangan bulat adalah…
a.float
b.boolean
c.integer
d.string -
Operator yang digunakan untuk melakukan operasi pembagian adalah…
a.%
b./
c.*
d.+ -
Jika
x = 10dany = 5, maka hasil darix > yadalah…
a. True
b. False
c. 15
d. 5 -
Manakah dari struktur kontrol berikut yang digunakan untuk menjalankan blok kode hanya jika suatu kondisi bernilai benar?
a.forloop
b.whileloop
c.ifstatement
d.do-whileloop -
Struktur kontrol
forbiasanya digunakan ketika jumlah perulangan…
a. Tidak diketahui sebelumnya.
b. Diketahui atau dapat ditentukan dengan pasti.
c. Bergantung pada kondisi tertentu.
d. Akan dieksekusi setidaknya satu kali. -
Perintah
breakdalam sebuah perulangan berfungsi untuk…
a. Melanjutkan ke iterasi berikutnya.
b. Menghentikan eksekusi perulangan secara keseluruhan.
c. Memulai kembali perulangan dari awal.
d. Melewati satu iterasi. -
Dalam sebuah program, deklarasi
int nilai;berarti kita sedang membuat variabel bernamanilaiyang bertipe…
a. Bilangan desimal
b. Nilai benar/salah
c. Bilangan bulat
d. Teks -
Operator
==digunakan untuk…
a. Memberikan nilai
b. Memeriksa kesamaan
c. Melakukan operasi penambahan
d. Melakukan operasi pengurangan -
Manakah pseudocode berikut yang paling tepat untuk menghitung luas persegi panjang dengan panjang
pdan lebarl?
a.
READ p
READ l
luas = p * l
PRINT luas
b.
INPUT p, l
CALCULATE luas = p + l
DISPLAY luas
c.
SET p, l
CALCULATE luas = p / l
SHOW luas
d.
DEFINE p, l
CALCULATE luas = p – l
PRINT luas -
Struktur
if-else if-elsecocok digunakan ketika kita perlu memeriksa…
a. Satu kondisi saja.
b. Dua pilihan kondisi.
c. Banyak pilihan kondisi secara berurutan.
d. Kondisi yang selalu benar. -
Jika kita ingin mengulang blok kode sebanyak 10 kali, struktur perulangan yang paling efisien adalah…
a.whileloop
b.do-whileloop
c.forloop
d.ifstatement -
Pseudocode:
counter = 0 WHILE counter < 5 DO PRINT "Halo" counter = counter + 1 END WHILEBerapa kali kata "Halo" akan dicetak?
a. 4
b. 5
c. 6
d. Tidak akan dicetak -
Operator logika
&&(AND) akan menghasilkanTruejika…
a. Salah satu operand bernilaiTrue.
b. Kedua operand bernilaiTrue.
c. Salah satu operand bernilaiFalse.
d. Kedua operand bernilaiFalse. -
Jika sebuah program menghitung rata-rata nilai siswa, tipe data yang paling sesuai untuk variabel rata-rata adalah…
a.integer
b.boolean
c.char
d.floatataudouble -
Perhatikan flowchart berikut:
-> -> / Yes No / /Struktur kontrol yang merepresentasikan flowchart di atas adalah…
a.forloop
b.whileloop
c.if-elsestatement
d.switch-casestatement -
Perintah
continuedalam sebuah perulangan berfungsi untuk…
a. Menghentikan eksekusi perulangan.
b. Melanjutkan eksekusi ke iterasi berikutnya, melewati sisa kode dalam blok iterasi saat ini.
c. Memulai kembali perulangan dari awal.
d. Memberikan nilai default.
Bagian II: Isian Singkat (Bobot 30%)
Isilah titik-titik di bawah ini dengan jawaban yang tepat.
- Representasi algoritma menggunakan simbol-simbol grafis disebut __.
- Sebuah variabel yang menyimpan nilai benar atau salah memiliki tipe data __.
- Operator yang digunakan untuk mencari sisa pembagian disebut operator __.
- Jika
nilai = 20, maka hasil darinilai++adalah __. - Struktur perulangan
do-whileakan selalu mengeksekusi blok kodenya minimal sebanyak ____ kali. - Dalam pseudocode, kata kunci untuk menerima input dari pengguna biasanya adalah ____ atau ____.
- Perbedaan utama antara
ifstatement danif-elsestatement adalahif-elsemenyediakan blok kode alternatif untuk dieksekusi ketika kondisi ____ bernilaifalse. - Untuk mendeklarasikan variabel bertipe teks atau rangkaian karakter, kita biasanya menggunakan tipe data ____.
- Operator relasional yang digunakan untuk memeriksa apakah dua nilai tidak sama adalah ____.
- Pseudocode berikut akan mencetak angka dari 1 hingga 3:
FOR i FROM 1 TO 3 DO PRINT i END FOROutput dari pseudocode di atas adalah: , , ____.
Bagian III: Soal Esai / Uraian (Bobot 30%)
Jawablah pertanyaan-pertanyaan berikut dengan jelas dan terstruktur.
-
Jelaskan perbedaan antara
whileloop dando-whileloop. Berikan contoh kasus kapan Anda akan memilih menggunakanwhileloop dan kapan menggunakando-whileloop.
(Skor: 10) -
Buatlah pseudocode dan flowchart untuk menghitung luas segitiga. Diketahui rumus luas segitiga adalah
1/2 * alas * tinggi. Pastikan pseudocode dan flowchart Anda mencakup proses input alas dan tinggi, perhitungan luas, dan output luas segitiga.
(Skor: 10) -
Diberikan sebuah program sederhana yang menghitung diskon berdasarkan total belanja.
- Jika total belanja >= 100.000, maka diskon adalah 10%.
- Jika total belanja < 100.000, maka tidak ada diskon.
Buatlah pseudocode untuk program tersebut. Jelaskan langkah-langkahnya secara rinci.
(Skor: 10)
Kunci Jawaban (Untuk Guru/Referensi)
Bagian I: Pilihan Ganda
- c, 2. b, 3. c, 4. b, 5. c, 6. b, 7. a, 8. c, 9. b, 10. b, 11. c, 12. b, 13. a, 14. c, 15. c, 16. b, 17. b, 18. d, 19. c, 20. b.
Bagian II: Isian Singkat
- Flowchart, 2. Boolean, 3. Modulo (%), 4. 21, 5. Satu, 6. READ/INPUT, 7. Benar, 8. String, 9. != (tidak sama dengan), 10. 1, 2, 3.
Bagian III: Soal Esai / Uraian (Contoh Jawaban)
-
Perbedaan
whiledando-whileloop:-
whileloop: Mengecek kondisi sebelum menjalankan blok kode. Jika kondisi awal sudahfalse, blok kode tidak akan pernah dieksekusi. -
do-whileloop: Mengeksekusi blok kode terlebih dahulu, baru kemudian mengecek kondisi. Oleh karena itu, blok kode dalamdo-whileloop akan selalu dieksekusi minimal satu kali, bahkan jika kondisi awalnyafalse. -
Contoh kasus
whileloop: Menunggu input pengguna yang valid. Misalnya, meminta pengguna memasukkan angka positif. Kita akan terus meminta input selama input yang diberikan adalah negatif atau nol. -
Contoh kasus
do-whileloop: Menampilkan menu utama program. Kita ingin menu selalu tampil setidaknya satu kali agar pengguna bisa melihat pilihan, lalu kemudian program akan menanyakan apakah pengguna ingin keluar atau melanjutkan.
-
-
Pseudocode dan Flowchart Luas Segitiga:
Pseudocode:
// Program Menghitung Luas Segitiga // Deskripsi: Menghitung luas segitiga berdasarkan alas dan tinggi yang diinputkan pengguna. PROGRAM LuasSegitiga // Deklarasi variabel DECLARE alas : REAL DECLARE tinggi : REAL DECLARE luas : REAL // Memulai proses START // Input OUTPUT "Masukkan panjang alas segitiga: " INPUT alas OUTPUT "Masukkan tinggi segitiga: " INPUT tinggi // Proses perhitungan luas = 0.5 * alas * tinggi // Output hasil OUTPUT "Luas segitiga adalah: ", luas // Mengakhiri proses ENDFlowchart:
graph TD A --> BInput Alas; B --> CInput Tinggi; C --> D; D --> EOutput Luas; E --> F; -
Pseudocode Program Diskon:
// Program Menghitung Diskon Belanja // Deskripsi: Menghitung diskon berdasarkan total belanja pelanggan. PROGRAM DiskonBelanja // Deklarasi variabel DECLARE totalBelanja : REAL DECLARE diskon : REAL DECLARE totalBayar : REAL // Memulai proses START // Input OUTPUT "Masukkan total belanja Anda: " INPUT totalBelanja // Proses Percabangan (Conditional Statement) IF totalBelanja >= 100000 THEN // Menghitung diskon jika total belanja memenuhi syarat diskon = 0.10 * totalBelanja // 10% diskon totalBayar = totalBelanja - diskon OUTPUT "Anda mendapatkan diskon sebesar: ", diskon OUTPUT "Total yang harus dibayar adalah: ", totalBayar ELSE // Tidak ada diskon jika total belanja di bawah syarat totalBayar = totalBelanja OUTPUT "Maaf, Anda tidak mendapatkan diskon." OUTPUT "Total yang harus dibayar adalah: ", totalBayar END IF // Mengakhiri proses END
Tips Tambahan untuk Persiapan UAS:
- Pahami Konsep, Jangan Hanya Menghafal: Fokuslah pada pemahaman logika di balik setiap konsep. Mengapa variabel penting? Bagaimana struktur kontrol bekerja?
- Latihan Soal Secara Konsisten: Kerjakan berbagai macam soal, baik dari buku teks, modul, maupun contoh soal latihan. Semakin banyak berlatih, semakin terbiasa Anda dengan berbagai tipe pertanyaan.
- Buat Ringkasan Materi: Buatlah catatan ringkas atau peta konsep dari setiap topik. Ini membantu Anda mengingat poin-poin penting.
- Pahami Pseudocode dan Flowchart: Latihlah diri Anda untuk membaca dan membuat pseudocode serta flowchart. Keduanya adalah alat penting untuk merepresentasikan algoritma.
- Simulasikan Ujian: Coba kerjakan contoh soal ini dalam batas waktu tertentu untuk melatih manajemen waktu Anda saat ujian sebenarnya.
- Bertanya Jika Ada yang Tidak Jelas: Jangan ragu untuk bertanya kepada guru atau teman jika ada materi yang masih membingungkan.
Semoga artikel ini bermanfaat dan memberikan gambaran yang jelas tentang apa yang perlu Anda persiapkan untuk UAS Pemrograman Dasar. Selamat belajar dan semoga sukses!
