0 dari 5 soal kertas sudah kamu periksa sendiri (evaluasi mandiri)
Beberapa soal belum dikerjakan. Kamu tetap bisa membaca panduan, tetapi sebaiknya kerjakan dulu agar evaluasi lebih bermakna.
Angka di atas menunjukkan aktivitas dan penilaian dirimu, bukan nilai penguasaan materi.
Soal 1: Uji multi-skenario sistem penarikan uang di ATM
Belum dikerjakan
Deskripsi soal
Sebuah bank merancang sistem mesin ATM dengan aturan penarikan uang tunai sebagai berikut:
- Saldo rekening nasabah tidak boleh bersisa kurang dari batas minimal Rp50.000.
- Pecahan uang yang tersedia di mesin hanya Rp50.000 dan Rp100.000.
- Batas maksimal penarikan harian per kartu adalah Rp5.000.000.
- Mesin ATM hanya mengeluarkan uang jika fisik lembaran uang di dalam brankas mesin mencukupi.
Tugas analisis di kertas:
1. Buatlah tabel matriks pengujian yang mencakup minimal 5 skenario uji berbeda (misal: penarikan normal, penarikan saldo pas-pasan, penarikan melebihi batas harian, penarikan nominal pecahan tidak valid, dan brankas mesin kosong/kurang).
2. Untuk setiap skenario, tuliskan: Nilai Input, Kondisi Awal, Hasil yang Diharapkan (Sukses/Gagal), dan Alasan Logisnya.
3. Identifikasi urutan pengecekan kondisi pada algoritma agar tidak terjadi kesalahan pemotongan saldo saat uang fisik tidak keluar.
Tujuan latihan
Melatih merancang test matrix komprehensif yang menguji kombinasi berbagai batasan dan mencegah transaksi inkonsisten.
Panduan jawaban / contoh solusi
Matriks Skenario Pengujian Minimal 5 Kasus:
1. Kasus Normal (Happy Path): Saldo Rp1.000.000, tarik Rp200.000, limit harian terpakai Rp0, brankas ada. Hasil: SUKSES, saldo sisa Rp800.000, uang keluar.
2. Kasus Batas Saldo Minimal: Saldo Rp240.000, tarik Rp200.000. Hasil: GAGAL, saldo sisa akan menjadi Rp40.000 (< batas minimum Rp50.000).
3. Kasus Pecahan Tidak Valid: Tarik Rp75.000. Hasil: GAGAL di awal, nominal bukan kelipatan pecahan yang didukung (50.000/100.000).
4. Kasus Limit Harian Terlampaui: Tarik Rp1.000.000, akumulasi penarikan hari ini sudah Rp4.500.000. Hasil: GAGAL, total Rp5.500.000 melebihi limit harian Rp5.000.000.
5. Kasus Uang Fisik Kurang: Saldo cukup Rp5.000.000, tarik Rp1.000.000, tetapi lembaran di mesin hanya tersisa Rp400.000. Hasil: GAGAL, transaksi dibatalkan tanpa memotong saldo rekening.
Urutan validasi yang wajib:
Validasi kelipatan pecahan -> Validasi limit harian -> Validasi saldo rekening sisa >= 50.000 -> Validasi ketersediaan fisik uang di dispenser -> Eksekusi pengeluaran fisik uang -> Debet saldo rekening nasabah.
Poin penting yang seharusnya ada
Menyusun minimal 5 skenario uji yang mencakup happy path, boundary, dan failure modes.
Mencantumkan data input, kondisi awal, dan hasil harapan secara spesifik.
Menegaskan bahwa ketersediaan fisik uang harus diverifikasi sebelum saldo nasabah terdebet.
Menguji aturan saldo minimal Rp50.000 dan limit harian Rp5.000.000.
Kriteria evaluasi
Kejelasan dan ketepatan pemahaman masalah
Kelogisan alur pemikiran dan tahapan solusi
Kesesuaian solusi dengan seluruh aturan dan batasan yang ditentukan
Soal 2: Menemukan kegagalan pemesanan kursi tiket bioskop serentak
Belum dikerjakan
Deskripsi soal
Sebuah aplikasi pemesanan tiket bioskop online memiliki alur sistem saat ini:
1. Pengguna membuka denah studio dan memilih kursi yang berwarna hijau (status: "Tersedia").
2. Pengguna mengisi data diri dan menekan tombol "Lanjut ke Pembayaran".
3. Pengguna diberi waktu 10 menit untuk menyelesaikan transfer di aplikasi perbankan.
4. Setelah notifikasi pembayaran berhasil diterima server, status kursi di database diubah menjadi "Terjual".
Gejala masalah: Pada penayangan perdana film laris, terjadi ratusan keluhan dari penonton. Banyak penonton yang sudah membayar sukses ternyata mendapati kursi yang mereka bayar telah diberikan kepada penonton lain (double booking / bentrok tiket).
Tuliskan di kertas: (1) pada titik mana letak kegagalan algoritma tersebut, (2) bagaimana dua orang bisa membayar kursi yang sama secara bersamaan, (3) rancangan perbaikan alur dengan mekanisme penguncian sementara (temporary seat holding) dan pembatalan otomatis.
Tujuan latihan
Menganalisis kegagalan logika konkurensi (pemesanan serentak tanpa proteksi locking) dan merancang mekanisme reservasi sementara.
Panduan jawaban / contoh solusi
Titik kegagalan algoritma:
- Kegagalan terjadi karena status kursi dibiarkan tetap "Tersedia" selama rentang waktu 10 menit pembayaran.
- Jika Pengguna A dan Pengguna B sama-sama memilih Kursi C-12, keduanya bisa masuk ke halaman pembayaran. Siapa pun yang menyelesaikan pembayaran lebih dulu (atau jika keduanya membayar hampir bersamaan), status baru diubah, sehingga terjadi double booking.
Rancangan perbaikan alur yang tepat:
1. Saat kursi dipilih dan pengguna klik bayar: lakukan penguncian atomik (atomic lock).
2. Periksa apakah status kursi saat ini benar-benar "Tersedia".
3. Jika ya, ubah status menjadi "Dicadangkan" (Reserved) dan catat waktu kunci (misal batas kedaluwarsa 10 menit). Pengguna lain tidak bisa memilih kursi ini.
4. Jika pembayaran sukses dalam 10 menit: ubah status kursi dari "Dicadangkan" menjadi "Terjual".
5. Jika batas waktu 10 menit habis tanpa konfirmasi pembayaran: lepaskan kunci, kembalikan status kursi menjadi "Tersedia" agar bisa dipesan orang lain.
Poin penting yang seharusnya ada
Menjelaskan celah waktu (gap 10 menit) saat kursi masih berstatus Tersedia sebagai penyebab bentrok.
Menjelaskan skenario dua pengguna memilih kursi yang sama.
Merancang status perantara "Dicadangkan Sementara" dengan batas waktu kedaluwarsa.
Menyediakan alur pelepasan kursi otomatis jika waktu pembayaran habis.
Kriteria evaluasi
Kejelasan dan ketepatan pemahaman masalah
Kelogisan alur pemikiran dan tahapan solusi
Kesesuaian solusi dengan seluruh aturan dan batasan yang ditentukan
Soal 3: Menyelesaikan konflik prioritas alokasi tempat tidur rumah sakit
Belum dikerjakan
Deskripsi soal
Sebuah rumah sakit tipe B menghadapi kondisi keterbatasan tempat tidur rawat inap.
Aturan alokasi yang ada:
- Pasien operasi elektif (terjadwal) sudah memesan kamar sejak 2 hari sebelumnya dan akan tiba dalam 2 jam.
- Pasien Instalasi Gawat Darurat (IGD) yang mengalami serangan jantung kritis tiba mendadak dan membutuhkan perawatan intensif dalam hitungan menit untuk menyelamatkan nyawa.
- Pasien penyakit infeksi menular memerlukan ruang isolasi khusus bertekanan negatif.
Kasus darurat: Satu-satunya kamar kosong yang tersisa adalah kamar yang sudah disiapkan untuk pasien operasi elektif. Di saat yang sama, seorang pasien IGD kritis tiba dan membutuhkan kamar tersebut segera.
Tuliskan di kertas: (1) analisis konflik kepentingan antara hak reservasi pasien terjadwal versus keselamatan pasien gawat darurat, (2) skenario kegagalan jika salah satu aturan diterapkan secara kaku, (3) rancangan algoritma triase alokasi yang etis, aman, dan meminimalkan dampak buruk bagi kedua pihak.
Tujuan latihan
Melatih menyelesaikan konflik prioritas multitarget dengan menyusun hierarki keputusan berbasis mitigasi risiko kematian dan keselamatan.
Panduan jawaban / contoh solusi
Analisis konflik prioritas:
- Pasien terjadwal memiliki hak kontraktual reservasi. Jika kamar diambil, operasinya berisiko tertunda dan timbul ketidakpuasan pasien.
- Namun, pasien IGD kritis menghadapi risiko kematian langsung (ancaman nyawa dalam hitungan menit). Berdasarkan etika kedokteran dan hukum, penyelamatan nyawa (life-saving) berada di atas reservasi elektif.
Skenario kegagalan jika kaku:
- Kaku pada reservasi: Pasien IGD meninggal saat menunggu kamar kosong, RS melanggar kewajiban penanganan darurat.
- Kaku membatalkan pasien elektif tanpa solusi: Pasien elektif telantar tanpa kepastian jadwal pengganti.
Rancangan algoritma triase alokasi:
1. Evaluasi tingkat kegawatan pasien IGD: jika kategori merah (kritis), prioritaskan penempatan darurat di kamar yang tersedia.
2. Segera gunakan kamar untuk stabilisasi pasien kritis.
3. Secara paralel, sistem mengaktifkan protokol kontingensi untuk pasien terjadwal: cari kamar alternatif yang sedang dalam proses kepulangan (discharge), tawarkan upgrade kelas kamar tanpa biaya tambahan, atau koordinasikan penjadwalan ulang bersama dokter bedah sebelum pasien tiba.
Poin penting yang seharusnya ada
Menyusun hierarki prioritas: penyelamatan nyawa pasien darurat di atas reservasi elektif.
Menjelaskan dampak dan risiko hukum/medis jika aturan diterapkan secara kaku.
Menyusun solusi mitigasi bagi pasien operasi terjadwal (upgrade kamar/kontingensi bed).
Membuat alur keputusan yang sistematis dan terkoordinasi.
Kriteria evaluasi
Kejelasan dan ketepatan pemahaman masalah
Kelogisan alur pemikiran dan tahapan solusi
Kesesuaian solusi dengan seluruh aturan dan batasan yang ditentukan
Soal 4: Validasi defensif sistem pengajuan pinjaman kredit mikro
Belum dikerjakan
Deskripsi soal
Sebuah formulir online pinjaman mikro menerima 3 input dari pemohon:
2. Jika cicilan_per_bulan <= penghasilan_bulanan * 0.30:
Status = "Disetujui"
3. Jika tidak: Status = "Ditolak"
Masalah: Sistem berulang kali crash dan menghasilkan keputusan aneh saat diuji dengan data pengguna yang tidak biasa.
Tuliskan di kertas: (1) minimal 5 jenis input anomali/tidak valid yang dapat merusak algoritma di atas (misal: angka negatif, tenor 0, nilai huruf, angka raksasa), (2) apa akibat yang terjadi pada masing-masing anomali jika algoritma tetap berjalan, (3) susun algoritma validasi defensif lengkap yang menolak input tidak valid sebelum rumus cicilan dihitung.
Tujuan latihan
Melatih kemampuan berpikir defensif terhadap berbagai anomali masukan dan menerapkan pola validasi fail-fast.
Panduan jawaban / contoh solusi
Daftar 5 Jenis Anomali Input dan Akibatnya:
1. tenor_bulan = 0: Mengakibatkan error Division by Zero pada baris 1 (crash fatal).
2. tenor_bulan atau penghasilan bernilai negatif (misal -12): Cicilan menjadi negatif, sehingga kondisi `<= penghasilan * 0.3` bisa salah disetujui.
3. Nilai berupa teks/kosong (string kosong / bukan angka): Memicu TypeError saat operasi aritmetika.
4. Tenor berbentuk bilangan desimal (misal 2.5 bulan): Menghasilkan jangka waktu angsuran yang tidak realistis.
5. Jumlah pinjaman melebihi batas batas wajar (misal 100 triliun): Menyebabkan integer overflow atau pembobolan plafon kredit.
Algoritma Validasi Defensif:
1. Periksa format: pastikan ketiga input adalah bilangan numerik.
Usulan awal pengawas: "Antar selalu paket dengan durasi tercepat/jarak terdekat terlebih dahulu."
Tuliskan di kertas: (1) evaluasi mengapa strategi usulan pengawas gagal memaksimalkan efisiensi dan dapat menimbulkan total denda besar, (2) uji kombinasi paket yang memenuhi batasan muatan (<= 20 kg) dan waktu (<= 240 menit), (3) rancang urutan pengantaran paket yang paling tepat untuk meminimalkan denda.
Tujuan latihan
Menganalisis kelemahan algoritma greedy sederhana terhadap masalah optimasi multi-kendala dan merancang solusi evaluatif.
Panduan jawaban / contoh solusi
Kelemahan Strategi Durasi Tercepat Murni:
- Strategi hanya melihat durasi tanpa mempertimbangkan denda keterlambatan dan kapasitas beban. Paket dengan durasi sedikit lebih lama tetapi denda sangat besar bisa terabaikan, menyebabkan total denda membengkak.
Evaluasi Kombinasi Muatan (Batas <= 20 kg dan Waktu <= 240 menit):
- Total seluruh 5 paket: 4 + 12 + 6 + 8 + 5 = 35 kg (tidak mungkin dibawa sekaligus).
- Opsi paket yang dipilih harus bernilai denda terbesar dan memenuhi berat <= 20 kg serta waktu <= 240 menit.
- Pilihan Paket C (6kg, 45m, 80rb) + D (8kg, 60m, 70rb) + E (5kg, 40m, 60rb): Total berat = 19 kg (aman <= 20 kg). Total waktu = 145 menit (aman <= 240 menit). Total denda yang terselamatkan = Rp210.000.
- Menambahkan Paket A (4kg): berat jadi 23 kg (kelebihan muatan).
Rancangan Urutan Pengantaran:
1. Bawa Paket C, D, dan E dalam satu perjalanan awal.
2. Urutan antar dari yang dendanya paling tinggi / paling kritis: C (45 menit) -> D (60 menit) -> E (40 menit).
3. Sisa paket (A dan B) dijadwalkan pada perjalanan sif berikutnya atau didelegasikan ke kurir lain.
Poin penting yang seharusnya ada
Menjelaskan kelemahan algoritma greedy lokal (hanya durasi tercepat).
Menghitung total berat kombinasi agar tidak melebihi kapasitas 20 kg.
Menghitung akumulasi waktu agar tidak melebihi 240 menit.
Memilih kombinasi paket yang menyelamatkan denda keterlambatan terbesar.
Kriteria evaluasi
Kejelasan dan ketepatan pemahaman masalah
Kelogisan alur pemikiran dan tahapan solusi
Kesesuaian solusi dengan seluruh aturan dan batasan yang ditentukan