PERTEMUAN 9 • PROYEK PERANGKAT LUNAK
Cantik Belum Tentu Benar
Pengujian, Debugging, dan Keamanan: Mengapa Kita Tidak Boleh Langsung Percaya pada AI Coding Agent
Sistem dan Teknologi Informasi • Laravel • MySQL • Git/GitHub • Vibe Coding
Pembicara: ALIMIN, M.Kom
Klik judul tiap slide untuk membuka isinya. Alur: Pembuka (cerita) → Masalah → Gagasan → Bukti dan praktik → Ajakan bertindak.
Slide 1 — Judul: Cantik Belum Tentu Benar
POIN UTAMA
- Judul sebagai teka-teki: apakah aplikasi yang tampil bagus pasti benar?
- Kenalkan tema: menguji, memperbaiki, mengamankan, dan memvalidasi hasil AI
- Tidak ada teori di slide ini, cukup satu pertanyaan besar
CONTOH DATA / METAFORA
Metafora pembuka: kue yang cantik di etalase, tetapi belum ada yang pernah mencicipinya.
🎂 ❓
Cantik di etalase. Rasanya? Belum ada yang mencoba.
Kue cantik belum tentu enak; aplikasi cantik belum tentu benar
SARAN GAMBAR VISUAL
Layar gelap, satu foto close-up kue tart sempurna dengan garpu yang belum menyentuhnya. Judul besar putih di tengah, nama pembicara di pojok kanan bawah.
NARASI PEMBICARA
“Selamat pagi. Hari ini saya mulai dengan satu pertanyaan sederhana: kalau sebuah kue terlihat sempurna, apakah rasanya pasti enak?”
Slide 2 — Pembuka: Stok yang Menjadi Negatif
POIN UTAMA
- AI berhasil membuat aplikasi penjualan UMKM: tampilan bagus, tombol lengkap, login berfungsi
- Dua kasir membeli produk terakhir secara bersamaan
- Hasilnya: stok produk menjadi negatif
- Pertanyaan: apakah aplikasi ini sudah benar?
CONTOH DATA / METAFORA
Data perumpamaan: stok Kaos Polos M = 1. Kasir A menjual 1, Kasir B menjual 1. Stok akhir = -1. Satu pelanggan akan kecewa karena barangnya tidak ada.
|
🖥️ Dashboard Kasir Kaos Polos MBayar
Kaos Polos L
Topi Hitam
Tampilan rapi dan menarik |
vs |
Stok akhir -1 Dua kasir, satu barang Kenyataan di data |
Tampilan bagus tidak menjamin logika benar
SARAN GAMBAR VISUAL
Layar terbelah: kiri dashboard aplikasi yang rapi dan berwarna, kanan angka merah besar “-1” yang berkedip. Kontras tampilan vs kenyataan.
NARASI PEMBICARA
“Bayangkan AI membuat aplikasi kasir untuk toko UMKM. Cantik. Lalu di hari sibuk, dua kasir menjual barang terakhir di detik yang sama. Stoknya: minus satu. Apakah aplikasi ini sudah benar? Jawabannya: belum.”
Slide 3 — Perjalanan Hari Ini: Apa yang Akan Anda Bawa Pulang
POIN UTAMA
- Memahami konsep pengujian perangkat lunak
- Menguji fitur terhadap requirement dan User Story
- Mengidentifikasi dan memperbaiki kesalahan (debugging)
- Memanfaatkan AI untuk pengujian tanpa langsung memercayai seluruh hasilnya
- Memeriksa validasi input, keamanan akses, dan konsistensi database
CONTOH DATA / METAFORA
Metafora: peta perjalanan dengan lima pos pemberhentian. Tiap capaian adalah satu pos yang harus dilewati sebelum aplikasi layak dirilis.
Lima pos perjalanan menuju aplikasi yang layak
|
1
Konsep |
➜ |
2
Uji fitur |
➜ |
3
Debugging |
➜ |
4
Validasi AI |
➜ |
5
Keamanan |
Lima capaian pembelajaran sebagai peta perjalanan
SARAN GAMBAR VISUAL
Infografis jalur berkelok dengan lima penanda lokasi bernomor 1–5, ikon kecil di tiap pos (kaca pembesar, centang, kunci, robot, database).
NARASI PEMBICARA
“Ada lima hal yang ingin saya titipkan hari ini. Anggap sebagai lima pos di perjalanan kita menuju aplikasi yang benar-benar layak.”
Slide 4 — Gagasan Utama: Tampilan vs Pengujian
POIN UTAMA
- Tampilan menjawab: apakah halaman rapi dan menarik?
- Pengujian menjawab: apakah logika, data, dan keamanan benar?
- Prinsip: aplikasi layak bukan karena berhasil dibuat, tetapi karena hasil pengujiannya membuktikan ia memenuhi kebutuhan
CONTOH DATA / METAFORA
Metafora: uji tabrak (crash test) mobil. Mobil mengilap di dealer belum tentu selamat saat tabrakan. Kepercayaan lahir dari hasil uji, bukan dari cat yang mengilap.
|
TAMPILAN 🎨 📱 🖱️ Rapi, berwarna, tombol lengkap |
≠ |
PENGUJIAN ✅ Logika benar? ✅ Data konsisten? ✅ Akses aman? Bukti, bukan penampilan |
Tampilan menjawab: rapi? Pengujian menjawab: benar dan aman?
SARAN GAMBAR VISUAL
Dua panel: mobil mengilap di showroom vs boneka uji tabrak di laboratorium dengan sensor. Teks di bawah: “Bukti, bukan penampilan”.
NARASI PEMBICARA
“Tidak ada orang yang membeli mobil hanya karena catnya. Kita percaya karena ada uji tabrak. Aplikasi juga begitu: kelayakannya dibuktikan, bukan dikira-kira.”
Slide 5 — Empat Cara Menguji
POIN UTAMA
- Unit Testing: menguji bagian kecil secara terpisah
- Integration Testing: beberapa komponen bekerja bersama (Controller, Eloquent, MySQL)
- Functional Testing: fitur sesuai requirement
- Security Testing: hak akses, validasi input, autentikasi, perlindungan data
CONTOH DATA / METAFORA
Metafora dapur restoran: Unit = mencicipi bumbu satu per satu. Integration = mencicipi kuah setelah semua bahan menyatu. Functional = memastikan pesanan sesuai menu. Security = memastikan pintu dapur terkunci dari orang luar.
| Jenis | Contoh data |
|---|---|
| Unit | Rp50.000 x 2 = Rp100.000 sebelum diskon |
| Integration | Transaksi tersimpan dan detail barangnya tercatat konsisten |
| Functional | Admin bisa menambah produk; pengguna biasa tidak bisa mengubah stok |
| Security | Pengguna yang belum login tidak boleh membuka halaman admin |
|
Unit 🥄 Sendok icip 1 fungsi |
Integration 🍲 Kuah menyatu Controller + Model + DB |
Functional 📋 Pesanan sesuai menu Fitur vs requirement |
Security 🔒 Pintu terkunci Akses, input, data |
Empat jenis pengujian dengan perumpamaan dapur restoran
SARAN GAMBAR VISUAL
Empat ikon besar bergaya flat: sendok icip, panci berisi kuah, nota pesanan dengan centang, dan gembok di pintu dapur.
NARASI PEMBICARA
“Menguji itu seperti mengelola dapur. Cicipi bumbunya, cicipi kuahnya, cocokkan dengan pesanan, dan kunci pintunya.”
Slide 6 — Skenario Pengujian: Menulis Bukti
POIN UTAMA
- Skenario = daftar kondisi untuk membuktikan fitur bekerja benar
- Tulis kondisi, hasil diharapkan, hasil aktual, status, dan bukti
- “Sudah diuji” saja tidak cukup
CONTOH DATA / METAFORA
Metafora: daftar periksa pilot sebelum lepas landas. Pilot tidak berkata “kayaknya aman”; ia mencentang satu per satu.
| Skenario | Input/kondisi | Hasil diharapkan |
|---|---|---|
| Login berhasil | Email dan password benar | Masuk ke dashboard |
| Password salah | Password tidak sesuai | Login ditolak |
| Data kosong | Email atau password kosong | Validasi ditampilkan |
| Akses tanpa login | Buka halaman admin langsung | Ditolak / diarahkan ke login |
| Hak akses berbeda | Pengguna biasa buka fitur admin | Akses ditolak |
Alur satu skenario pengujian
|
Kondisi Password salah |
➜ |
Diharapkan Login ditolak |
➜ |
Aktual Login ditolak |
➜ |
Status + bukti ✅ LULUS + screenshot |
Bandingkan hasil diharapkan dengan hasil aktual
Setiap pengujian dicatat: kondisi, diharapkan, aktual, status, bukti
SARAN GAMBAR VISUAL
Foto kokpit dengan checklist, lalu transisi ke tabel pengujian login dengan kolom Status berwarna hijau/merah.
NARASI PEMBICARA
“Tidak ada pilot yang lepas landas dengan firasat. Ada daftar periksa. Begitu pula pengembang: setiap pengujian harus meninggalkan jejak bukti.”
Slide 7 — AI Sebagai Asisten Penguji, Bukan Hakim
POIN UTAMA
- AI dapat membaca kode, menemukan potensi kesalahan, menyusun test case, menjelaskan error, dan mengusulkan perbaikan
- Namun AI tidak selalu benar: perbaikan yang masuk akal bisa menimbulkan bug baru
- Minta AI menjelaskan temuan dulu sebelum mengubah kode, lalu verifikasi hasilnya
CONTOH DATA / METAFORA
Metafora: magang yang sangat cepat tetapi belum berpengalaman. Ia cekatan, tetapi pekerjaannya tetap Anda periksa sebelum dikirim ke klien.
CONTOH PROMPT PENGUJIAN
Klik kotak, Ctrl+A, lalu Ctrl+C untuk menyalin.
AI mengusulkan, manusia membuktikan
|
🤖 AI (magang) |
➜ |
📄 Draf kode / perbaikan |
➜ |
👩💻 Manusia memeriksa ✅ DIVERIFIKASI |
Tanda tangan terakhir tetap milik pengembang
AI sebagai asisten, bukan hakim
SARAN GAMBAR VISUAL
Ilustrasi robot magang membawa tumpukan kertas ke meja manusia yang memegang stempel “DIVERIFIKASI”.
NARASI PEMBICARA
“AI itu magang yang luar biasa cepat. Tetapi tanda tangan terakhir tetap milik Anda.”
Slide 8 — Siklus Debugging yang Sehat
POIN UTAMA
- Temukan gejala → pahami penyebab → usulkan perbaikan → terapkan → uji ulang
- Setelah AI memperbaiki, jalankan ulang seluruh pengujian agar fitur lain tidak rusak
- Laporkan hasil aktual, test yang gagal, dan risiko yang tersisa
CONTOH DATA / METAFORA
Metafora: dokter. Ia tidak langsung memberi obat; ia memeriksa gejala, menegakkan penyebab, memberi terapi, lalu kontrol ulang.
Siklus debugging
|
1
Temukan gejala |
➜ |
2
Pahami penyebab |
➜ |
3
Usulkan perbaikan |
➜ |
4
Terapkan |
➜ |
5
Uji ulang |
↺ Jika uji ulang masih gagal, kembali ke langkah 1
Setelah uji ulang, ulangi bila masih ada kegagalan
SARAN GAMBAR VISUAL
Diagram lingkaran lima langkah bergaya stetoskop; panah kembali ke “Uji ulang”.
NARASI PEMBICARA
“Memperbaiki bug itu seperti dokter. Obat tanpa diagnosis bisa membuat pasien lebih buruk. Dan setelah diobati, selalu ada kontrol ulang.”
Slide 9 — Studi Kasus: Kursi Terakhir
POIN UTAMA
- Stok satu unit; dua kasir bertransaksi hampir bersamaan
- Tanpa pengendalian konkurensi, keduanya bisa berhasil menjual barang yang sama
- Dengan transaksi database dan penguncian yang tepat, satu berhasil dan yang berikutnya memeriksa stok terbaru
- Pengujian harus mencakup kondisi normal dan akses bersamaan
CONTOH DATA / METAFORA
Metafora: satu kursi terakhir di bioskop. Dua orang menekan “beli” di detik yang sama; sistem yang baik hanya meloloskan satu.
| Langkah | Tanpa kendali | Dengan transaksi + kunci |
|---|---|---|
| Kasir A baca stok | 1 | 1 (data dikunci) |
| Kasir B baca stok | 1 | Menunggu |
| Kasir A jual | Stok 0 | Stok 0 |
| Kasir B jual | Stok -1 (bug) | Baca ulang: stok 0, transaksi ditolak |
|
Tanpa kendali 👤 Kasir A: baca stok = 1 👤 Kasir B: baca stok = 1 Kasir A jual, Kasir B jual Stok = -1 ❌ Barang terjual dua kali |
Transaksi + kunci 👤 Kasir A: baca stok = 1 (dikunci) 👤 Kasir B: menunggu Kasir A jual; B baca ulang: stok 0 Ditolak ✅ Stok tetap 0, data konsisten |
Kursi terakhir: hanya satu transaksi yang boleh berhasil
SARAN GAMBAR VISUAL
Animasi/ilustrasi dua tangan menekan tombol pada satu kursi merah. Bagian bawah: dua jalur, kiri “Tanpa kunci” (dua tiket, tanda silang), kanan “Dengan kunci” (satu tiket, centang).
NARASI PEMBICARA
“Satu kursi, dua pembeli, detik yang sama. Sistem yang diuji akan berkata: maaf, kursi ini sudah terjual.”
Slide 10 — Tantangan Anda: Tugas Pertemuan 9
POIN UTAMA
- Pilih minimal dua fitur utama proyek
- Susun minimal lima skenario pengujian
- Catat hasil diharapkan vs hasil aktual
- Temukan minimal satu potensi kesalahan/risiko; jika tidak ada bug, jelaskan pemeriksaannya
- Gunakan AI Coding Agent untuk analisis/perbaikan, lalu verifikasi
- Lampirkan bukti: tabel, tangkapan layar, atau hasil automated test
CONTOH DATA / METAFORA
Metafora: menjadi detektif aplikasi sendiri. Luaran: dokumen skenario, bukti hasil, dokumentasi bantuan AI, dan daftar perbaikan.
Alur pengerjaan tugas
|
1
Pilih 2 fitur |
2
5 skenario |
3
Uji + catat |
|
4
Cari bug / risiko |
5
AI + verifikasi |
6
Lampirkan bukti |
Enam langkah tugas Pertemuan 9
SARAN GAMBAR VISUAL
Siluet detektif dengan kaca pembesar di atas layar laptop berisi kode; di sudut ada papan bukti dengan foto dan benang merah.
NARASI PEMBICARA
“Sekarang giliran Anda. Jadilah detektif bagi aplikasi Anda sendiri, dan bawa buktinya.”
Slide 11 — Kesimpulan dan Ajakan Bertindak
POIN UTAMA
- Pengembangan tidak berhenti saat kode selesai: uji, perbaiki, amankan
- AI mempercepat proses, tetapi tanggung jawab kualitas tetap pada pengembang
- Layak karena terbukti, bukan karena cantik
CONTOH DATA / METAFORA
Kembali ke pembuka: kue yang cantik kini sudah dicicipi, dan kita tahu rasanya.
CALL TO ACTION
Pilih satu fitur hari ini. Tulis lima skenario. Jalankan. Catat buktinya. Lalu diskusikan di forum LMS: apakah aplikasi yang cantik tetapi belum diuji layak digunakan?
🎂 ✅
Sudah dicicipi: rasanya terbukti
Jangan percaya. Buktikan.
SARAN GAMBAR VISUAL
Kembali ke foto kue pembuka, kini dengan satu potong terambil dan tanda centang hijau. Teks akhir besar: “Jangan percaya. Buktikan.”
NARASI PEMBICARA
“Kita mulai dengan kue yang cantik. Saya harap kini Anda tahu: jangan tertipu tampilan. Pekan ini, pilih satu fitur di proyek Anda, tulis lima skenario pengujiannya, dan buktikan bahwa aplikasi Anda benar.”