Pengujian Perangkat Lunak, Debugging, Keamanan, dan Validasi Hasil AI Coding Agent

Pengujian Perangkat Lunak, Debugging, Keamanan, dan Validasi Hasil AI Coding Agent

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.”