A. Pengantar
Pada pertemuan sebelumnya kita telah membahas bahwa proyek perangkat lunak bukan hanya aktivitas membuat program atau menulis kode. Sebuah perangkat lunak harus dibuat berdasarkan masalah nyata, memiliki pengguna, mempunyai tujuan yang jelas, dikembangkan secara terencana, diuji, digunakan, dan selanjutnya dipelihara.
Dalam perkembangan industri saat ini, proses tersebut semakin menarik karena pengembang perangkat lunak dapat memanfaatkan Artificial Intelligence (AI) untuk membantu berbagai tahapan pengembangan.
AI dapat membantu programmer membuat rancangan database, membuat struktur kode Laravel, menjelaskan error, membuat test case, melakukan refactoring, membuat dokumentasi, hingga membantu melakukan code review.
Namun terdapat satu prinsip penting: AI membantu developer, bukan menggantikan tanggung jawab developer.
Mahasiswa tetap harus memahami apa yang sedang dibuat, mengapa fitur tersebut dibuat, bagaimana kode bekerja, bagaimana database dirancang, dan bagaimana memastikan aplikasi yang dihasilkan aman serta sesuai kebutuhan pengguna.
B. SDLC dalam Proyek Perangkat Lunak
SDLC atau Software Development Life Cycle adalah siklus yang digunakan untuk mengembangkan perangkat lunak secara sistematis.
Secara sederhana, prosesnya dapat digambarkan sebagai:
Misalnya mahasiswa ingin membuat: Sistem Informasi Penjualan UMKM. Prosesnya tidak langsung dimulai dengan:
"Buatkan saya aplikasi Laravel."
Tetapi dimulai dengan pertanyaan:
- Apa masalah UMKM tersebut?
- Siapa pengguna aplikasinya?
- Bagaimana proses bisnisnya sekarang?
- Apa yang ingin diperbaiki?
- Data apa saja yang diperlukan?
- Fitur apa yang benar-benar dibutuhkan?
Setelah itu barulah mahasiswa masuk ke tahap perancangan dan pengembangan. Dengan demikian, coding sebenarnya hanya salah satu bagian dari keseluruhan proyek perangkat lunak.
C. Waterfall dan Agile
Dalam pengembangan perangkat lunak terdapat berbagai pendekatan. Dua pendekatan yang perlu dipahami adalah Waterfall dan Agile.
1. Waterfall
Waterfall merupakan pendekatan pengembangan yang dilakukan secara berurutan. Contohnya:
Artinya, pengembang menyelesaikan tahap requirement terlebih dahulu sebelum masuk ke desain, kemudian coding, testing, dan seterusnya. Pendekatan ini cukup mudah dipahami karena alurnya jelas. Namun terdapat kelemahan: apabila kebutuhan pengguna berubah ketika aplikasi sudah selesai dibuat, pengembang dapat mengalami kesulitan karena harus kembali ke tahap sebelumnya.
2. Agile
Agile menggunakan pendekatan yang lebih fleksibel. Aplikasi tidak harus langsung selesai seluruhnya. Pengembangan dilakukan secara bertahap dan berulang. Contohnya:
- Sprint 1: Membuat login dan manajemen pengguna.
- Sprint 2: Membuat produk dan kategori.
- Sprint 3: Membuat transaksi penjualan.
- Sprint 4: Membuat laporan.
Dengan pendekatan tersebut, aplikasi dapat berkembang sedikit demi sedikit. Mahasiswa juga dapat memperoleh feedback dari pengguna atau dosen setelah setiap bagian selesai.
D. Scrum
Salah satu framework yang banyak digunakan untuk menerapkan prinsip Agile adalah Scrum. Scrum membantu tim mengatur pekerjaan menjadi bagian-bagian kecil yang dapat diselesaikan dalam periode tertentu yang disebut Sprint.
Alur sederhananya:
Dalam proyek mahasiswa, konsep tersebut dapat disederhanakan. Misalnya kelompok membuat aplikasi Sistem Informasi Pengelolaan KKN. Daftar Product Backlog disusun: Login, Manajemen mahasiswa, Manajemen kelompok, Manajemen DPL, Penempatan mahasiswa, Absensi, Laporan kegiatan, Upload dokumentasi, Dashboard, dan Cetak laporan. Daftar tersebut kemudian diprioritaskan, karena tidak semua fitur harus dibuat sekaligus.
E. Fitur, Product Backlog, dan Sprint
Sering kali mahasiswa tertukar antara apa itu fitur, backlog, dan sprint. Ketiganya memiliki peran yang berbeda namun saling berkaitan erat dalam siklus Agile:
1. Fitur Utama
Fungsi atau kemampuan utama yang dimiliki aplikasi untuk menyelesaikan kebutuhan pengguna.
Contoh: Login & Manajemen User, Data Produk, Transaksi, Laporan.
2. Product Backlog
Daftar pekerjaan yang harus dilakukan untuk membangun dan menyelesaikan fitur aplikasi.
Contoh Fitur (Data Produk): Membuat database produk, migration, model, controller, halaman CRUD, hingga testing.
3. Sprint
Periode atau tahap pengerjaan untuk menyelesaikan beberapa pekerjaan dari Product Backlog.
Contoh:
Sprint 1: Login + User
Sprint 2: Produk + Kategori
Sprint 3: Transaksi
Sprint 4: Laporan + Testing
Hubungan Ketiganya
Rumus sederhana bagi mahasiswa:
"Fitur adalah kemampuan aplikasi, Backlog adalah daftar pekerjaannya, dan Sprint adalah pembagian pekerjaan berdasarkan tahap/waktu pengerjaan."
F. Product Backlog
Product Backlog merupakan daftar pekerjaan atau kebutuhan yang harus dikerjakan dalam proyek. Backlog sebaiknya tidak hanya berupa "Buat aplikasi KKN", tetapi harus dipecah menjadi pekerjaan yang lebih jelas.
Contoh daftar backlog terurut prioritas:
| No | Backlog | Prioritas |
|---|---|---|
| 1 | Login pengguna | Tinggi |
| 2 | Role pengguna | Tinggi |
| 3 | Data mahasiswa | Tinggi |
| 4 | Data kelompok | Tinggi |
| 5 | Data DPL | Tinggi |
| 6 | Penempatan mahasiswa | Tinggi |
| 7 | Absensi | Sedang |
| 8 | Laporan | Sedang |
| 9 | Dashboard | Sedang |
| 10 | Export PDF | Rendah |
Dengan backlog tersebut, mahasiswa dapat menentukan pekerjaan mana yang harus dikerjakan terlebih dahulu.
G. User Story
Product Backlog dapat dikembangkan menjadi User Story dengan format sederhana:
Sebagai [pengguna], saya ingin [fitur], sehingga [tujuan].
Contoh penerapan:
- "Sebagai admin, saya ingin mengelola data mahasiswa sehingga data mahasiswa dapat digunakan dalam proses pembagian kelompok KKN."
- "Sebagai mahasiswa, saya ingin melihat kelompok KKN saya sehingga saya mengetahui anggota kelompok dan DPL yang membimbing saya."
User Story membuat mahasiswa berpikir dari perspektif pengguna, bukan hanya dari perspektif programmer.
H. Dari User Story Menjadi Task
User Story kemudian dipecah menjadi pekerjaan teknis. Contoh:
User Story: Sebagai admin, saya ingin mengelola data mahasiswa sehingga data mahasiswa dapat digunakan dalam proses pembagian kelompok.
Task teknis:
- Membuat tabel mahasiswa.
- Membuat migration.
- Membuat model Mahasiswa.
- Membuat controller.
- Membuat route.
- Membuat halaman daftar mahasiswa.
- Membuat form tambah mahasiswa.
- Membuat fitur edit.
- Membuat fitur hapus.
- Melakukan testing.
Di sinilah AI mulai dapat digunakan secara efektif.
I. AI dalam SDLC
AI dapat digunakan hampir di seluruh tahapan SDLC. Namun penggunaan AI harus dilakukan secara bertahap.
- Tahap Analisis: Menemukan kebutuhan sistem, membuat daftar pertanyaan wawancara, membuat user story, membuat use case, dan mengidentifikasi aktor sistem.
- Tahap Perancangan: Membuat ERD, menentukan tabel database, menentukan relasi, membuat struktur menu, membuat rancangan API, dan membuat struktur folder aplikasi.
- Tahap Development: Membuat migration Laravel, membuat model, controller, Blade view, validation, API, menjelaskan kode, dan memperbaiki error.
- Tahap Testing: Membuat test case, data pengujian, mencari kemungkinan bug, membuat PHPUnit test, dan skenario pengujian.
- Tahap Deployment: Membuat konfigurasi deployment, menjelaskan error server, menyusun checklist deployment, dan konfigurasi environment.
- Tahap Maintenance: Refactoring kode, optimasi query, membuat dokumentasi, analisis error, dan peningkatan performa.
J. Vibe Coding
Salah satu pendekatan pengembangan yang berkembang saat ini adalah Vibe Coding. Secara sederhana, developer memberikan instruksi menggunakan bahasa natural kepada AI untuk menghasilkan atau memodifikasi kode.
Contoh instruksi: "Buatkan halaman CRUD data mahasiswa menggunakan Laravel dengan field NIM, nama, program studi, email, dan nomor HP."
AI kemudian dapat menghasilkan struktur kode. Namun prosesnya tidak berhenti pada hasil dari AI. Workflow yang benar adalah:
Jadi Vibe Coding bukan berarti: "Saya tidak perlu belajar coding karena AI yang mengerjakan semuanya." Justru mahasiswa harus mampu mengendalikan AI.
K. Prinsip Penting dalam Menggunakan AI
Ada prinsip sederhana yang perlu ditanamkan kepada mahasiswa: Jangan meminta AI membuat seluruh aplikasi sekaligus.
Prompt seperti "Buatkan saya aplikasi Laravel lengkap sistem akademik" biasanya menghasilkan kode yang terlalu besar, tidak terstruktur, dan sulit dikontrol. Lebih baik proyek dipecah menjadi bagian kecil:
Prompt 1 – Analisis
Saya ingin membuat Sistem Informasi Akademik menggunakan Laravel dan MySQL. Pengguna sistem terdiri dari Admin, Dosen, dan Mahasiswa. Bantu saya menganalisis kebutuhan sistem dan buatkan daftar fitur berdasarkan masing-masing role. Jangan membuat kode terlebih dahulu.
Prompt 2 – Database
Berdasarkan kebutuhan sistem sebelumnya, buat rancangan database MySQL. Tentukan tabel, field, primary key, foreign key, dan relasi antar tabel. Jelaskan alasan setiap tabel dibuat. Jangan membuat kode Laravel terlebih dahulu.
Prompt 3 – Migration
Berdasarkan rancangan database yang telah dibuat, buatkan Laravel Migration untuk tabel mahasiswa. Gunakan Laravel Eloquent convention dan berikan penjelasan setiap field.
Prompt 4 – Model
Berdasarkan migration tabel mahasiswa tersebut, buatkan Model Mahasiswa Laravel menggunakan Eloquent. Jelaskan fillable, relationship jika diperlukan, dan alasan penggunaannya.
Prompt 5 – Controller
Buatkan MahasiswaController untuk operasi CRUD menggunakan Laravel. Terapkan validation untuk NIM, nama, email, dan program studi. Gunakan pendekatan yang sederhana dan aman.
Prompt 6 – View
Buatkan halaman Blade untuk menampilkan data mahasiswa dalam bentuk tabel. Sediakan tombol tambah, edit, hapus, pencarian, dan pagination.
Dengan cara ini AI bekerja secara terarah dan bertahap.
L. Rumus Sederhana Membuat Prompt AI
Mahasiswa dapat menggunakan formula:
- Konteks: Jelaskan proyek. (Contoh: Saya sedang mengembangkan Sistem Informasi Akademik menggunakan Laravel 12 dan MySQL.)
- Peran: Berikan posisi AI. (Contoh: Bertindak sebagai software architect dan Laravel developer senior.)
- Tujuan: Jelaskan apa yang ingin dicapai. (Contoh: Saya ingin membuat modul pengelolaan data mahasiswa.)
- Data: Berikan informasi yang dibutuhkan. (Contoh: Data mahasiswa terdiri dari NIM, nama, email, program studi, dan angkatan.)
- Batasan: Berikan aturan. (Contoh: Gunakan Laravel MVC, Eloquent ORM, Form Request Validation, dan Blade. Jangan menggunakan package tambahan.)
- Output: Tentukan hasil yang diinginkan. (Contoh: Berikan migration, model, controller, route, dan struktur Blade secara bertahap serta jelaskan fungsi setiap bagian.)
M. Contoh Prompt yang Baik
Contoh prompt lengkap:
Anda bertindak sebagai Laravel Developer Senior.
Saya sedang mengembangkan Sistem Informasi Akademik menggunakan Laravel dan MySQL.
Modul yang sedang dikembangkan adalah Data Mahasiswa.
Data mahasiswa terdiri dari:
- NIM
- Nama
- Email
- Program Studi
- Angkatan
Gunakan konsep MVC Laravel, Eloquent ORM, Form Request Validation, Blade, dan RESTful routing.
Buatkan pengembangan secara bertahap:
1. Migration
2. Model
3. Form Request
4. Controller
5. Route
6. Blade
Jangan langsung memberikan seluruh kode sekaligus. Mulai dari rancangan migration terlebih dahulu.
Setelah selesai, jelaskan alasan desain tersebut dan kemungkinan masalah yang perlu diperhatikan.
Prompt tersebut jauh lebih baik dibandingkan "Buatkan CRUD mahasiswa Laravel" karena AI mendapatkan konteks, tujuan, teknologi, batasan, dan format output yang jelas.
N. Teknik Prompt Bertahap
Mahasiswa dapat menggunakan teknik: Prompt → Review → Lanjutkan
- Tahap 1: Analisis kebutuhan modul mahasiswa.
- Tahap 2: Berdasarkan analisis tersebut, minta rancangan database.
- Tahap 3: Review rancangan database tersebut: minta AI mencari kemungkinan redundansi, kesalahan relasi, dan masalah normalisasi.
- Tahap 4: Setelah rancangan diperbaiki, minta AI membuatkan Laravel migration.
- Tahap 5: Minta AI mereview migration tersebut sebagai Laravel Developer Senior untuk mencari kemungkinan masalah keamanan, integritas data, dan performa.
Dengan cara tersebut mahasiswa bukan hanya meminta kode, tetapi melakukan proses engineering.
O. Prompt untuk Debugging
AI juga sangat berguna ketika menemukan error. Jangan hanya memberikan kalimat: "Laravel saya error, tolong perbaiki." Berikan informasi secara lengkap:
Saya menggunakan Laravel dan mendapatkan error berikut:
SQLSTATE[42S22]: Column not found
Error terjadi ketika menjalankan halaman daftar mahasiswa.
Struktur tabel mahasiswa:
- id
- nim
- nama
- email
Query/controller yang digunakan adalah:
[tempelkan kode]
Tolong:
1. Identifikasi penyebab error.
2. Jelaskan bagian kode yang bermasalah.
3. Berikan solusi.
4. Berikan versi kode yang telah diperbaiki.
5. Jelaskan bagaimana mencegah error yang sama terjadi lagi.
Prompt seperti ini akan menghasilkan jawaban yang jauh lebih akurat.
P. Prompt untuk Code Review
AI dapat digunakan sebagai reviewer independen:
Bertindak sebagai Senior Laravel Developer dan Security Reviewer.
Review kode controller berikut.
Fokus pemeriksaan:
- SQL Injection
- Mass Assignment
- Validation
- Authorization
- Authentication
- Error handling
- Query efficiency
- Duplicate code
- Clean Code
Jangan langsung mengubah kode. Identifikasi terlebih dahulu masalah yang ditemukan dan jelaskan tingkat risikonya.
Dengan demikian mahasiswa belajar melakukan peninjauan kode (*code review*) secara terstandar.
Q. Prompt untuk Optimasi Performa
Dalam proyek perangkat lunak modern, aplikasi tidak cukup hanya "bisa berjalan". Aplikasi juga harus diperhatikan dari sisi performa dan efisiensi.
Bertindak sebagai Laravel Performance Engineer.
Analisis kode berikut untuk mencari kemungkinan masalah performa.
Periksa:
- N+1 Query
- Jumlah query database
- Penggunaan eager loading
- Pagination
- Caching
- Ukuran response
- Query yang tidak menggunakan index
Jelaskan: masalah yang ditemukan, penyebabnya, dampaknya, solusi, serta contoh kode sebelum dan sesudah optimasi.
R. Prompt untuk Dokumentasi
AI juga dapat membantu menghasilkan dokumentasi proyek teknis:
Berdasarkan sistem yang telah dibuat, buat dokumentasi teknis yang berisi:
1. Deskripsi sistem
2. Tujuan sistem
3. Teknologi yang digunakan
4. Arsitektur aplikasi
5. Struktur database
6. Struktur folder Laravel
7. Daftar fitur
8. Hak akses setiap role
9. Cara instalasi
10. Cara menjalankan aplikasi
11. Cara deployment
Gunakan bahasa teknis yang mudah dipahami mahasiswa dan developer lain.
S. Kiat Penting Menggunakan AI untuk Coding
- Jangan memberikan prompt terlalu umum: Hindari "Buat aplikasi Laravel". Gunakan batasan field dan tujuan modul yang spesifik.
- Pecah proyek menjadi modul: Gunakan rute modular:
Authentication → User → Mahasiswa → Dosen → Mata Kuliah → KRS → Nilai → Laporan. - Berikan konteks kode: Cantumkan pesan error, kode terkait, skema tabel, dan versi framework.
- Minta AI menjelaskan: Minta AI memaparkan alasan logika di balik baris kode agar pengembang tetap paham.
- Minta AI melakukan review: Uji kembali potensi bug, isu keamanan, dan performa dari kode yang di-generate.
- Jangan langsung percaya hasil AI: Kode dari AI tetap wajib melalui tahapan:
Dibaca → Dipahami → Diuji → Diverifikasi. - Gunakan GitHub: Simpan setiap perkembangan dengan rapi menggunakan Git commit sebagai histori dan portofolio profesional.
T. AI dan GitHub dalam Proyek
Penggunaan AI sebaiknya tetap terintegrasi dengan alur kerja Git:
Contoh penulisan commit yang rapi:
git add .
git commit -m "feat: menambahkan modul data mahasiswa"
git commit -m "fix: memperbaiki validasi email mahasiswa"
git commit -m "refactor: optimasi query data mahasiswa"
git commit -m "test: menambahkan pengujian mahasiswa"
git commit -m "docs: memperbarui dokumentasi instalasi"
git push
Dengan demikian terlihat bahwa mahasiswa tidak hanya menghasilkan aplikasi, tetapi juga memahami proses rekayasa perangkat lunak profesional.
U. Contoh Alur Proyek Mahasiswa
Studi Kasus: Sistem Informasi Pengelolaan UMKM
- Tahap 1 – Problem: UMKM masih mencatat transaksi secara manual.
- Tahap 2 – Requirement: Mengidentifikasi pengguna (Admin, Kasir, Pemilik).
- Tahap 3 – Backlog: Menyusun modul Login, Produk, Kategori, Transaksi, Pelanggan, Laporan, Dashboard.
- Tahap 4 – Design: Merancang Use Case, Activity Diagram, ERD, dan struktur database.
- Tahap 5 – Development: Implementasi menggunakan Laravel, PHP, MySQL, Blade, Git/GitHub, dan AI Coding Assistant.
- Tahap 6 – Testing: Menjalankan Functional Testing, Validation Testing, Security Review, dan UAT.
- Tahap 7 – Deployment: Publikasi ke hosting/server, domain, dan konfigurasi Cloudflare.
- Tahap 8 – Evaluation: Mengukur response time, jumlah query, page size, dan performa bandwidth.
- Tahap 9 – Documentation: Menyusun file README, dokumentasi teknis, dan petunjuk penggunaan.
- Tahap 10 – Publication: Mengembangkan laporan proyek menjadi Book Chapter atau artikel jurnal ilmiah.
V. Konsep Penting yang Harus Dipahami Mahasiswa
Pada akhir pertemuan, mahasiswa harus memahami bahwa:
- SDLC menjelaskan siklus pengembangan perangkat lunak secara utuh.
- Agile merupakan pendekatan pengembangan yang fleksibel dan iteratif.
- Scrum merupakan framework untuk mengelola pengembangan secara bertahap melalui Sprint.
- Laravel merupakan teknologi framework untuk implementasi aplikasi.
- Git/GitHub digunakan untuk version control, kolaborasi, dan rekam portofolio.
- AI digunakan untuk membantu analisis, desain, coding, testing, debugging, dokumentasi, dan optimasi.
- Vibe Coding memungkinkan pengembang memberi instruksi bahasa natural untuk memodifikasi kode, namun kontrol arsitektural tetap dipegang oleh developer.
AI menulis kode, tetapi developer yang bertanggung jawab terhadap hasilnya.
W. Kiat Utama untuk Mahasiswa
Gunakan prinsip kerja 5 langkah berikut:
- THINK: Pahami terlebih dahulu masalah nyata yang ingin diselesaikan.
- PROMPT: Berikan instruksi yang jelas, terstruktur, dan berkonteks kepada AI.
- REVIEW: Periksa kode, relasi, dan rancangan yang dihasilkan oleh AI secara kritis.
- TEST: Jalankan dan uji aplikasi di lingkungan lokal secara langsung.
- COMMIT: Simpan hasil pekerjaan yang berhasil dan bersih ke repositori GitHub.
Dengan pola tersebut, mahasiswa tidak menjadi "tukang copy-paste kode dari AI", melainkan berkembang menjadi software developer profesional yang mampu menggunakan AI sebagai instrumen kerja.
X. Diskusi Kelas
Dosen dapat memantik forum kelas dengan pertanyaan kunci:
"Jika AI sekarang sudah mampu membuat kode Laravel, apakah mahasiswa Sistem dan Teknologi Informasi masih perlu belajar programming?"
Arahkan diskusi ke sudut pandang kritis berikut:
- Apakah AI selalu menghasilkan kode yang benar?
- Siapa yang bertanggung jawab ketika aplikasi mengalami error atau kebocoran data?
- Apakah AI memahami kebutuhan bisnis pengguna tanpa diberikan konteks yang tepat?
- Apa risiko langsung melakukan copy-paste kode dari AI tanpa pemeriksaan?
- Apakah programmer masa depan akan digantikan AI atau justru bekerja bersama AI?
- Skill apa yang paling krusial dimiliki developer di era kehadiran AI?
Kesimpulan Diskusi: Mahasiswa tidak cukup hanya mampu menulis kode. Mahasiswa harus mampu memahami masalah → merancang solusi → mengarahkan AI → memahami kode → menguji → memperbaiki → melakukan deployment → hingga mengevaluasi hasil. Inilah kompetensi utama mata kuliah Proyek Perangkat Lunak.