Pendidikan
Menguji Kompetensi Pengembang Muda: Contoh Soal Ujian Praktikum Bergerak Kelas 3 SMK Semester 1

Menguji Kompetensi Pengembang Muda: Contoh Soal Ujian Praktikum Bergerak Kelas 3 SMK Semester 1

Menguji Kompetensi Pengembang Muda: Contoh Soal Ujian Praktikum Bergerak Kelas 3 SMK Semester 1

Pendahuluan

Di era digital yang serba cepat ini, teknologi perangkat bergerak (mobile) telah menjadi tulang punggung kehidupan sehari-hari. Dari komunikasi, hiburan, hingga produktivitas, aplikasi mobile memainkan peran sentral. Oleh karena itu, kurikulum Sekolah Menengah Kejuruan (SMK) di bidang Rekayasa Perangkat Lunak (RPL) atau Teknik Komputer dan Jaringan (TKJ) semakin mengedepankan kompetensi pengembangan aplikasi bergerak. Kelas 3 SMK Semester 1 adalah fase krusial di mana siswa diharapkan mampu mengaplikasikan berbagai konsep yang telah dipelajari ke dalam proyek nyata yang lebih kompleks.

Menguji Kompetensi Pengembang Muda: Contoh Soal Ujian Praktikum Bergerak Kelas 3 SMK Semester 1

Ujian praktikum bergerak bukan hanya sekadar menguji kemampuan coding, tetapi juga mengukur pemahaman siswa terhadap arsitektur aplikasi, user interface (UI) dan user experience (UX), penanganan data, integrasi fitur perangkat keras, hingga kemampuan debugging dan pemecahan masalah. Artikel ini akan membahas secara mendalam contoh soal ujian praktikum bergerak yang relevatif untuk siswa kelas 3 SMK semester 1, dilengkapi dengan rubrik penilaian dan tips persiapan.

Tujuan Ujian Praktikum Bergerak untuk Kelas 3 SMK Semester 1

Ujian praktikum bergerak dirancang untuk mencapai beberapa tujuan utama, antara lain:

  1. Mengukur Kemampuan Implementasi: Memastikan siswa mampu menerjemahkan desain dan spesifikasi ke dalam kode program yang fungsional menggunakan Android Studio (atau platform lain yang relevan).
  2. Memahami Konsep Inti: Menguji pemahaman siswa tentang komponen-komponen dasar Android seperti Activity, Intent, Layouts, Widgets, Service, Broadcast Receiver, serta penyimpanan data (Shared Preferences, SQLite).
  3. Keterampilan Pemecahan Masalah: Mengembangkan kemampuan siswa dalam mengidentifikasi dan memperbaiki kesalahan (debugging) dalam kode mereka.
  4. Desain UI/UX Sederhana: Menilai kemampuan siswa dalam merancang antarmuka pengguna yang intuitif dan menarik, meskipun dalam batasan sederhana.
  5. Manajemen Proyek Mini: Menguji kemampuan siswa dalam mengelola struktur proyek, penamaan file, dan kebersihan kode.
  6. Kemandirian dan Kreativitas: Mendorong siswa untuk bekerja secara mandiri dan menemukan solusi inovatif dalam batasan masalah yang diberikan.

Materi Pokok yang Diuji pada Semester 1 Kelas 3 SMK

Sebelum masuk ke contoh soal, penting untuk mengetahui materi pokok yang umumnya menjadi fokus di semester ini:

  1. Pengantar Android Studio & Gradle: Penggunaan IDE, struktur proyek, manifest file.
  2. Komponen UI Dasar: LinearLayout, RelativeLayout, ConstraintLayout, TextView, EditText, Button, ImageView, CheckBox, RadioButton, Spinner.
  3. Activity dan Lifecycle: Pemahaman siklus hidup Activity, perpindahan antar Activity.
  4. Intent: Explicit Intent (perpindahan Activity), Implicit Intent (membuka aplikasi lain, mengirim data).
  5. Penyimpanan Data Lokal Sederhana:
    • Shared Preferences: Untuk menyimpan data konfigurasi atau data kecil lainnya.
    • SQLite Database: Untuk menyimpan data terstruktur dalam jumlah yang lebih besar (CRUD: Create, Read, Update, Delete).
  6. RecyclerView/ListView: Menampilkan daftar data yang dinamis secara efisien.
  7. Toast & Snackbar: Menampilkan pesan singkat kepada pengguna.
  8. Dialogs: AlertDialog, DatePickerDialog, TimePickerDialog.
  9. Permissions: Permintaan izin akses ke fitur perangkat (kamera, lokasi, penyimpanan).
  10. Debugging: Menggunakan Logcat dan Breakpoints.

Format Ujian Praktikum

Ujian praktikum bergerak umumnya dilaksanakan dalam waktu 3-5 jam di laboratorium komputer dengan akses internet terbatas (hanya untuk referensi dokumentasi resmi atau Stack Overflow yang relevan, bukan untuk copy-paste mentah). Setiap siswa akan diberikan satu set soal yang harus diselesaikan secara mandiri. Hasil akhir yang dikumpulkan biasanya berupa:

  • File proyek Android Studio yang lengkap (source code).
  • File APK yang sudah bisa diinstal dan dijalankan.
  • Laporan singkat (opsional, tergantung instruksi guru) yang menjelaskan fitur dan cara penggunaan aplikasi.

Contoh Soal Ujian Praktikum Bergerak Kelas 3 SMK Semester 1

Berikut adalah tiga skenario soal dengan tingkat kesulitan yang meningkat, mencakup materi-materi yang telah disebutkan.

Soal 1: Aplikasi Data Diri & Kalkulator Sederhana (Bobot: 30%)

Tujuan: Menguji pemahaman dasar UI, Intent eksplisit dan implisit, serta penanganan input sederhana.

Skenario:
Anda diminta untuk membuat aplikasi Android yang terdiri dari dua Activity:

  1. Activity Utama (MainActivity): Berisi formulir data diri dan tombol untuk berpindah ke Activity Kalkulator.
  2. Activity Kalkulator (CalculatorActivity): Berisi dua input angka, empat tombol operasi (tambah, kurang, kali, bagi), dan satu TextView untuk menampilkan hasil.

Detail Tugas:

Bagian A: MainActivity

  1. Desain UI:
    • Buat layout menggunakan LinearLayout atau ConstraintLayout.
    • Tambahkan TextView sebagai "Formulir Data Diri".
    • Tambahkan EditText untuk input:
      • Nama Lengkap (type: text)
      • Nomor Induk Siswa (NIS) (type: number)
      • Kelas (type: text)
      • Alamat Email (type: textEmailAddress)
    • Tambahkan Button dengan teks "Lihat Data & Hitung".
    • Tambahkan Button dengan teks "Hubungi Developer" yang akan membuka aplikasi email dengan alamat email developer tertentu.
  2. Fungsionalitas:
    • Ketika tombol "Lihat Data & Hitung" diklik:
      • Validasi input: Pastikan semua EditText tidak kosong. Jika ada yang kosong, tampilkan Toast peringatan.
      • Jika semua input terisi, kirimkan data Nama, NIS, dan Kelas ke CalculatorActivity menggunakan Explicit Intent.
      • Pindah ke CalculatorActivity.
    • Ketika tombol "Hubungi Developer" diklik:
      • Gunakan Implicit Intent untuk membuka aplikasi email default.
      • Atur penerima email ke [email protected] dan subjek "Pertanyaan Aplikasi".

Bagian B: CalculatorActivity

  1. Desain UI:
    • Buat layout yang menampilkan TextView untuk menyambut pengguna (misal: "Halo, [Nama Siswa] dari Kelas [Kelas Siswa]!"). Data Nama dan Kelas diambil dari MainActivity.
    • Tambahkan dua EditText untuk input angka (type: numberDecimal).
    • Tambahkan empat Button untuk operasi: Tambah (+), Kurang (-), Kali (x), Bagi (/).
    • Tambahkan TextView untuk menampilkan hasil perhitungan.
    • Tambahkan Button untuk kembali ke MainActivity.
  2. Fungsionalitas:
    • Terima data Nama dan Kelas dari MainActivity dan tampilkan di TextView sambutan.
    • Ketika salah satu tombol operasi (+, -, x, /) diklik:
      • Ambil nilai dari kedua EditText angka.
      • Lakukan operasi matematika yang sesuai.
      • Tampilkan hasilnya di TextView hasil.
      • Tangani kasus pembagian dengan nol dengan menampilkan Toast peringatan "Tidak bisa dibagi nol!".
    • Ketika tombol "Kembali" diklik, tutup CalculatorActivity dan kembali ke MainActivity.

Soal 2: Aplikasi Manajemen Catatan Harian Sederhana (Bobot: 40%)

Tujuan: Menguji kemampuan penggunaan RecyclerView, SQLite Database (CRUD), Dialog, dan Shared Preferences.

Skenario:
Anda diminta untuk membuat aplikasi manajemen catatan harian yang memungkinkan pengguna menambah, melihat, mengedit, dan menghapus catatan. Aplikasi ini juga harus memiliki fitur pengaturan tema (terang/gelap) yang disimpan secara permanen.

Detail Tugas:

Bagian A: Daftar Catatan (MainActivity)

  1. Desain UI:
    • Gunakan RecyclerView untuk menampilkan daftar catatan. Setiap item catatan harus menampilkan judul dan tanggal/waktu pembuatan.
    • Tambahkan FloatingActionButton (FAB) di pojok kanan bawah untuk menambah catatan baru.
    • Tambahkan Toolbar di bagian atas dengan judul "Catatan Harian" dan sebuah ikon menu (misal: tiga titik vertikal) untuk "Pengaturan".
  2. Fungsionalitas:
    • SQLite Database:
      • Buat database SQLite dengan tabel catatan yang memiliki kolom: id (PRIMARY KEY AUTOINCREMENT), judul (TEXT), isi (TEXT), tanggal (TEXT).
      • Buat DatabaseHelper untuk mengelola operasi database (tambah, baca, update, hapus).
    • RecyclerView:
      • Tampilkan semua catatan dari database ke RecyclerView.
      • Ketika FAB diklik, buka Activity baru (AddEditNoteActivity) untuk menambah catatan.
      • Ketika item catatan di RecyclerView diklik, buka AddEditNoteActivity dengan data catatan yang dipilih untuk mengedit.
      • Ketika item catatan ditekan lama (long press), tampilkan AlertDialog konfirmasi untuk menghapus catatan tersebut.
    • Toolbar Menu:
      • Ketika menu "Pengaturan" di Toolbar diklik, buka Activity baru (SettingsActivity).

Bagian B: Tambah/Edit Catatan (AddEditNoteActivity)

  1. Desain UI:
    • Tambahkan EditText untuk judul catatan.
    • Tambahkan EditText (multiline) untuk isi catatan.
    • Tambahkan Button "Simpan Catatan".
  2. Fungsionalitas:
    • Jika Activity dibuka dari FAB (mode tambah), EditText kosong.
    • Jika Activity dibuka dari klik item RecyclerView (mode edit), tampilkan data catatan yang diterima dari MainActivity di EditText yang sesuai.
    • Ketika tombol "Simpan Catatan" diklik:
      • Validasi: Pastikan judul tidak kosong.
      • Jika mode tambah, simpan catatan baru ke database SQLite.
      • Jika mode edit, update catatan yang ada di database SQLite.
      • Setelah berhasil disimpan/diupdate, tampilkan Toast konfirmasi dan kembali ke MainActivity (yang akan otomatis me-refresh daftar catatan).

Bagian C: Pengaturan (SettingsActivity)

  1. Desain UI:
    • Tambahkan Switch atau RadioGroup untuk pilihan tema: "Terang" dan "Gelap".
  2. Fungsionalitas:
    • Gunakan Shared Preferences untuk menyimpan pilihan tema pengguna.
    • Ketika pilihan tema diubah, simpan nilai ke Shared Preferences.
    • Di MainActivity (dan AddEditNoteActivity jika memungkinkan), terapkan tema yang dipilih dari Shared Preferences saat Activity dibuat (misalnya dengan AppCompatDelegate.setDefaultNightMode).

Soal 3: Aplikasi Katalog Produk dengan Fitur Gambar & Pencarian (Bobot: 30%)

Tujuan: Menguji kemampuan integrasi SQLite dengan data gambar, RecyclerView yang lebih kompleks, Permissions, dan fitur SearchView.

Skenario:
Anda diminta untuk mengembangkan aplikasi katalog produk sederhana. Pengguna dapat menambah produk baru dengan nama, deskripsi, harga, dan gambar. Produk-produk ini akan ditampilkan dalam daftar, dapat dicari, dan diedit/dihapus.

Detail Tugas:

Bagian A: Daftar Produk (MainActivity)

  1. Desain UI:
    • Gunakan RecyclerView untuk menampilkan daftar produk. Setiap item produk harus menampilkan gambar, nama produk, dan harga.
    • Tambahkan FloatingActionButton (FAB) untuk menambah produk baru.
    • Tambahkan Toolbar di bagian atas dengan judul "Katalog Produk" dan sebuah SearchView yang terintegrasi.
  2. Fungsionalitas:
    • SQLite Database:
      • Buat database SQLite dengan tabel produk yang memiliki kolom: id (PRIMARY KEY AUTOINCREMENT), nama (TEXT), deskripsi (TEXT), harga (REAL), image_path (TEXT). image_path akan menyimpan URI/path gambar lokal.
      • Buat DatabaseHelper untuk operasi CRUD produk.
    • RecyclerView:
      • Tampilkan semua produk dari database ke RecyclerView.
      • Untuk gambar produk, gunakan ImageView dan muat gambar dari image_path yang tersimpan di database. Jika image_path kosong atau tidak valid, tampilkan gambar placeholder default.
      • Ketika FAB diklik, buka Activity baru (AddEditProductActivity) untuk menambah produk.
      • Ketika item produk di RecyclerView diklik, buka AddEditProductActivity dengan data produk yang dipilih untuk mengedit.
      • Ketika item produk ditekan lama, tampilkan AlertDialog konfirmasi untuk menghapus produk.
    • SearchView:
      • Implementasikan SearchView di Toolbar untuk memfilter daftar produk berdasarkan nama produk.
      • Ketika teks pencarian berubah, RecyclerView harus diperbarui secara dinamis untuk hanya menampilkan produk yang cocok.

Bagian B: Tambah/Edit Produk (AddEditProductActivity)

  1. Desain UI:
    • Tambahkan EditText untuk nama produk.
    • Tambahkan EditText untuk deskripsi produk (multiline).
    • Tambahkan EditText untuk harga produk (type: numberDecimal).
    • Tambahkan ImageView untuk menampilkan gambar produk yang dipilih.
    • Tambahkan Button "Pilih Gambar" yang akan membuka galeri atau kamera (pilih salah satu, atau keduanya melalui AlertDialog).
    • Tambahkan Button "Simpan Produk".
  2. Fungsionalitas:
    • Jika Activity dibuka dari FAB (mode tambah), EditText dan ImageView kosong.
    • Jika Activity dibuka dari klik item RecyclerView (mode edit), tampilkan data produk yang diterima dari MainActivity di EditText yang sesuai, dan muat gambar produk ke ImageView.
    • Pilih Gambar:
      • Ketika tombol "Pilih Gambar" diklik, minta izin READ_EXTERNAL_STORAGE dan CAMERA (jika memilih dari kamera).
      • Setelah izin diberikan, gunakan Implicit Intent (Intent.ACTION_PICK untuk galeri atau MediaStore.ACTION_IMAGE_CAPTURE untuk kamera) untuk mendapatkan gambar.
      • Tangani hasil pemilihan gambar di onActivityResult atau registerForActivityResult.
      • Tampilkan gambar yang dipilih di ImageView dan simpan URI/path gambar secara sementara.
    • Ketika tombol "Simpan Produk" diklik:
      • Validasi: Pastikan nama produk dan harga tidak kosong.
      • Jika mode tambah, simpan produk baru ke database SQLite, termasuk path gambar yang dipilih.
      • Jika mode edit, update produk yang ada di database SQLite, termasuk path gambar (jika ada perubahan).
      • Setelah berhasil disimpan/diupdate, tampilkan Toast konfirmasi dan kembali ke MainActivity.

Rubrik Penilaian Ujian Praktikum

Penilaian akan didasarkan pada beberapa aspek berikut, dengan bobot yang dapat disesuaikan oleh penguji:

  1. Fungsionalitas (40%):
    • Semua fitur yang diminta berfungsi dengan baik tanpa crash.
    • Validasi input berjalan sesuai harapan.
    • Operasi CRUD database berjalan lancar.
    • Intent (eksplisit & implisit) bekerja dengan benar.
    • Pengelolaan izin (permissions) dilakukan dengan tepat.
    • Fitur pencarian berfungsi.
  2. Desain UI/UX (25%):
    • Tata letak (layout) rapi dan responsif.
    • Komponen UI digunakan dengan benar dan sesuai konteks.
    • Navigasi antar Activity jelas.
    • Tampilan konsisten dan enak dilihat.
    • Penggunaan Toast/Snackbar/Dialog yang tepat untuk feedback pengguna.
  3. Kualitas Kode (25%):
    • Kode bersih, terstruktur, dan mudah dibaca.
    • Penggunaan nama variabel, metode, dan kelas yang deskriptif.
    • Tidak ada kode yang redundan atau tidak perlu.
    • Penanganan error yang memadai (misalnya try-catch untuk operasi kritis).
    • Pemisahan logika (misal: DatabaseHelper terpisah dari Activity).
  4. Kepatuhan Instruksi & Kreativitas (10%):
    • Semua instruksi dalam soal diikuti.
    • Ada usaha untuk menambahkan fitur kecil atau penyempurnaan di luar instruksi (nilai plus).
    • Ketepatan waktu pengerjaan.

Tips Persiapan untuk Siswa

  1. Pahami Konsep, Bukan Hanya Hafal Kode: Mengerti mengapa suatu kode ditulis dan bagaimana komponen bekerja akan lebih membantu daripada hanya menghafal sintaks.
  2. Latihan Mandiri: Kerjakan proyek-proyek kecil secara rutin. Ulangi materi yang dirasa sulit.
  3. Gunakan Dokumentasi Resmi: Biasakan membaca dokumentasi Android Developers. Ini adalah sumber informasi terbaik.
  4. Debugging adalah Kunci: Pelajari cara menggunakan Logcat dan breakpoints di Android Studio untuk menemukan dan memperbaiki kesalahan.
  5. Manajemen Waktu: Alokasikan waktu untuk setiap bagian soal. Jangan terpaku pada satu masalah terlalu lama.
  6. Istirahat Cukup: Kondisi fisik dan mental yang prima sangat penting saat ujian.
  7. Simulasi Ujian: Coba kerjakan soal-soal latihan dalam batas waktu yang ditentukan untuk melatih kecepatan dan ketepatan.

Kesimpulan

Ujian praktikum bergerak di kelas 3 SMK semester 1 adalah momen penting untuk mengukur kesiapan siswa menjadi seorang pengembang aplikasi mobile yang kompeten. Soal-soal yang diberikan dirancang untuk menguji berbagai aspek, mulai dari dasar-dasar UI hingga integrasi database dan fitur perangkat keras. Dengan persiapan yang matang, pemahaman konsep yang kuat, dan kemampuan pemecahan masalah yang baik, siswa SMK diharapkan mampu melewati ujian ini dengan sukses dan siap menghadapi tantangan pengembangan aplikasi bergerak di masa depan. Kemampuan ini tidak hanya relevan untuk dunia kerja, tetapi juga membuka pintu ke jenjang pendidikan yang lebih tinggi di bidang teknologi.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *