AI Mastering For Software Development
Pilihan yang sangat tepat. Struktur materi pada gambar tersebut sangat spesifik dan berfokus pada penggunaan praktis **Roo Code** (sebuah ekstensi AI *coding assistant* yang luar biasa di VS Code) sebagai alat utama untuk mempercepat dan mengotomatisasi pengembangan perangkat lunak.
Mari kita mulai menulis buku panduan ini. Berikut adalah penjabaran lengkap untuk **BAGIAN I**.
---
# BAGIAN I: PONDASI (SETUP & KONFIGURASI)
Bagian ini adalah fondasi krusial sebelum Anda mulai menyuruh AI menulis barisan kode. Pengaturan yang benar di awal akan menentukan seberapa efisien dan aman AI bekerja di dalam sistem Anda.
## BAB 1: PERSIAPAN LINGKUNGAN KERJA
Sebelum AI bisa membantu Anda, ia membutuhkan "rumah" dan "meja kerja" yang terstruktur.
### 1.1. Instalasi Visual Studio Code (VS Code)
VS Code adalah *code editor* gratis dan sangat ringan buatan Microsoft. Ini adalah ekosistem terbaik saat ini untuk integrasi AI.
* **Langkah Instalasi:** Kunjungi situs resmi `code.visualstudio.com`, unduh versi yang sesuai dengan sistem operasi Anda (Windows, Mac, atau Linux), dan lakukan instalasi standar.
* **Kenapa VS Code?** Dukungan ekstensinya sangat masif, dan alat AI generasi terbaru (seperti Roo Code) dibangun secara spesifik untuk memanfaatkan API yang ada di dalam VS Code.
### 1.2. Instalasi Ekstensi Roo Code
Roo Code (sebelumnya dikenal dengan ekosistem serupa seperti Cline atau Roo Cline) adalah ekstensi agen AI otonom. Tidak seperti ChatGPT biasa yang hanya membalas obrolan, Roo Code bisa membaca file Anda, menulis kode langsung ke file, dan menjalankan perintah di terminal.
* **Cara Instalasi:** 1. Buka VS Code.
2. Pergi ke menu **Extensions** (ikon kotak-kotak di panel kiri atau tekan `Ctrl+Shift+X`).
3. Ketik **"Roo Code"** di kolom pencarian.
4. Klik **Install** pada ekstensi yang resmi.
5. Setelah terpasang, ikon Roo Code (biasanya berbentuk kepala hewan/robot) akan muncul di panel sebelah kiri.
### 1.3. Pengaturan Folder Proyek (*Workspace*)
AI membaca konteks dari folder tempat Anda bekerja. Jika folder berantakan, AI akan kebingungan.
* **Buat Folder Khusus:** Selalu buat satu folder kosong khusus untuk satu proyek. Misalnya, jika Anda sedang mengerjakan proyek Python untuk pengolahan data atau membangun sistem informasi menggunakan CodeIgniter, buat folder khusus bernama `sistem_informasi_ci` atau `python_automation`.
* **Buka di VS Code:** Buka folder tersebut di VS Code (File > Open Folder). Ini menjadikan folder tersebut sebagai *Workspace* atau ruang kerja Anda.
* **Pentingnya Konteks:** Saat Roo Code diaktifkan, ia hanya memiliki akses dan konteks ke dalam folder *workspace* ini. Ini menjaga keamanan agar AI tidak memodifikasi file penting di luar folder proyek Anda.
---
## BAB 2: MENGUASAI SETTING AI
Roo Code tidak memiliki "otaknya" sendiri; ia adalah perantara yang membutuhkan koneksi ke model LLM (*Large Language Model*) dan izin dari Anda untuk bertindak.
### 2.1. Auto Approve (Izin Penuh) dan Implikasinya
Roo Code dirancang sebagai agen otonom. Ia bisa membuat file, menulis kode, dan menjalankan perintah terminal (seperti `npm install` atau `python script.py`). Secara bawaan, ia akan meminta izin (klik "Approve") untuk setiap tindakan.
* **Apa itu Auto Approve?** Anda bisa mencentang opsi agar Roo Code berjalan otomatis tanpa bertanya kepada Anda untuk setiap langkah kecil.
* **Kelebihan (Pro):** Kecepatan luar biasa. Anda bisa memberikan satu *prompt* besar (misal: "Buatkan halaman login lengkap dengan database sqlite"), dan Anda tinggal duduk santai melihat ia bekerja sendiri membuat belasan file.
* **Kelemahan (Kontra):** Risiko tinggi jika *prompt* Anda salah. Ia bisa menghapus file penting atau menjalankan perintah terminal yang merusak jika dibiarkan tanpa pengawasan.
* **Saran Praktik Terbaik:** Matikan *Auto Approve* saat pertama kali belajar. Nyalakan hanya jika Anda sudah terbiasa dan menggunakan Git (Version Control) sehingga Anda bisa mengembalikan (*rollback*) kode jika AI membuat kesalahan fatal.
### 2.2. Memilih Model LLM (AI) yang Tepat
Anda harus memasukkan API Key dari penyedia LLM ke dalam pengaturan Roo Code. Pemilihan model ini sangat krusial.
* **Claude 3.5 Sonnet (Anthropic):** Saat ini adalah model **terbaik dan paling direkomendasikan** untuk *coding*. Ia sangat pintar memahami arsitektur proyek yang kompleks, jarang melakukan halusinasi kode, dan sangat efisien.
* **GPT-4o (OpenAI):** Alternatif yang sangat kuat, cepat, dan serbaguna. Cocok untuk logika umum dan *debugging*.
* **Gemini 1.5 Pro (Google):** Memiliki keunggulan pada *context window* yang sangat besar. Sangat berguna jika Anda memiliki proyek dengan ratusan file kode dan ingin AI menganalisis semuanya sekaligus.
* **Model Lokal (Ollama):** Jika Anda memiliki spesifikasi komputer atau server yang tinggi, Anda bisa menjalankan model secara lokal secara gratis. Keamanannya terjamin 100% karena kode Anda tidak dikirim ke internet, namun biasanya tidak sepintar model berbayar (API).
---
Itu adalah cakupan lengkap untuk **Bagian I**.
Apakah Anda ingin kita langsung melanjutkan ke **BAGIAN II: JANTUNG ROO CODE (ALUR KERJA & MODE)** untuk membedah langkah demi langkah cara penggunaannya di mode Architect, Code, Debug, dan Ask?
Apabila ai melakukan beberapa kali kesalahan perubahan saat saya merestore nya dengan github apakah ai akan menyadarinya kodenya telah di follback apa yang harus dilakukan?
Pertanyaan yang sangat bagus dan sangat realistis. Ini adalah salah satu situasi yang paling sering dialami oleh *developer* saat menggunakan AI.
Jawaban singkatnya: **Tidak secara otomatis.** AI tidak akan langsung menyadari bahwa Anda telah melakukan *rollback* atau *restore* kode menggunakan Git/GitHub.
Berikut adalah penjelasan mengapa hal itu terjadi dan langkah demi langkah apa yang **harus** Anda lakukan untuk mengatasi masalah ini.
### Mengapa AI Tidak Menyadari Rollback Anda?
Roo Code (dan AI pada umumnya) bekerja berdasarkan dua hal:
1. **File Sistem Saat Ini:** Ia bisa melihat isi file Anda yang sekarang (yang sudah di-restore).
2. **Konteks Obrolan (Chat History):** Ini adalah "ingatan" AI. Di dalam riwayat obrolannya, AI masih mengingat bahwa ia baru saja menulis kode, mencoba memperbaikinya 4 kali, dan memiliki logika tertentu di kepalanya.
Ketika Anda me-restore file menggunakan Git, file fisiknya berubah kembali ke versi lama, tetapi **ingatan AI di obrolan tersebut tidak ikut terhapus**. Akibatnya, AI akan kebingungan (halusinasi). Ia mungkin mengira perbaikannya yang ke-4 masih ada di dalam file, atau ia akan mencoba memaksakan logika salah yang sama untuk ke-5 kalinya.
---
### Apa yang Harus Dilakukan? (Langkah Penyelamatan)
Jika AI sudah gagal 4 kali dan Anda sudah melakukan *rollback* via Git, lakukan langkah-langkah berikut agar tidak terjebak dalam lingkaran setan (*looping error*):
#### 1. Mulai Tugas Baru (*Start New Task / Clear Chat*) - **SANGAT PENTING**
Jangan teruskan obrolan di jendela *chat* yang sama! Riwayat obrolan yang berisi 4 kegagalan tersebut sudah menjadi "sampah memori" yang akan membuat AI semakin bingung dan merusak *context window*.
* **Tindakan:** Tutup *task* yang sedang berjalan di Roo Code dan klik tombol **New Task** (+). Mulailah dengan lembaran memori yang baru.
#### 2. Deklarasikan Situasi Saat Ini (Beri Tahu AI)
Di *prompt* atau obrolan yang baru, beri tahu AI secara eksplisit tentang keadaan file saat ini agar ia bisa mensinkronkan ulang pemahamannya.
* **Contoh Prompt:** *"Saya baru saja melakukan rollback kode pada file `index.php` ke versi yang stabil. Kondisi file sekarang adalah versi sebelum kita mencoba menambahkan fitur X."*
#### 3. Ubah Strategi Pendekatan (Gunakan Mode Architect)
Jika AI gagal sampai 4 kali, itu adalah indikator kuat bahwa instruksi Anda sebelumnya mungkin terlalu kompleks, kurang spesifik, atau AI tidak memahami arsitektur proyek Anda. Jangan langsung menyuruhnya *coding* lagi.
* **Tindakan:** Ubah mode Roo Code Anda menjadi **Mode Architect** (seperti yang ada di Bab 4 gambar Anda).
* **Contoh Prompt:** *"Saya ingin menambahkan fitur X ke dalam file `index.php`. Sebelumnya fitur ini gagal dibuat karena menyebabkan error Y. Sebagai Architect, tolong analisis file `index.php` saat ini dan berikan rencana langkah demi langkah bagaimana kita harus menyisipkan fitur X dengan aman tanpa merusak logika yang sudah ada. Jangan tulis kode dulu, berikan rencananya saja."*
#### 4. Eksekusi Langkah Demi Langkah (*Baby Steps*)
Setelah AI (di Mode Architect) memberikan rencana yang logis dan Anda setuju, barulah pindah ke **Mode Code**. Jangan suruh AI menulis 100 baris kode sekaligus. Suruh ia mengerjakan rencana tersebut satu per satu.
#### 5. Berikan Log Error (Jika Ada)
Jika kegagalan sebelumnya menghasilkan pesan *error* (misalnya di terminal atau *browser*), *copy-paste* pesan *error* tersebut di tugas yang baru. AI jauh lebih pintar memperbaiki kode jika ia membaca *error log* aslinya, daripada hanya diberitahu "kodemu salah".
**Intinya:** Git/GitHub adalah jaring pengaman Anda. Tindakan Anda melakukan *rollback* sudah sangat tepat. Yang perlu disesuaikan hanyalah "me-reset" otak AI agar ia tidak membawa kebingungan dari kegagalan sebelumnya ke dalam tugas yang baru.
Sip, mari kita bedah **BAGIAN II**. Bagian ini adalah inti dari buku panduan ini. Di sinilah Anda akan belajar bahwa *prompting* AI untuk *software development* bukanlah sekadar memberikan satu perintah panjang, melainkan sebuah orkestrasi alur kerja yang terstruktur.
---
# BAGIAN II: JANTUNG ROO CODE (ALUR KERJA & MODE)
Rahasia utama menggunakan AI otonom seperti Roo Code bukanlah pada seberapa pintar AI-nya, melainkan seberapa disiplin Anda mengatur alur kerjanya. Roo Code memiliki sistem "Mode" yang membagi AI menjadi beberapa persona spesialis.
## BAB 3: ALUR KERJA LENGKAP: DARI INISIALISASI HINGGA DEBUG
Berikut adalah standar operasional prosedur (SOP) saat Anda ingin memulai sebuah proyek baru atau menambahkan fitur besar (misalnya, membuat modul rekapitulasi data otomatis berbasis CodeIgniter atau Python).
### 3.1. Langkah 1: Persiapan Awal Proyek (Terminal)
Sebelum melibatkan AI, pastikan fondasi proyek Anda sudah siap di terminal VS Code.
* Buka terminal di VS Code (`Ctrl` + `~`).
* Jika menggunakan *framework*, lakukan instalasi dasar (misal: `composer create-project codeigniter4/appstarter rekap_app`).
* Inisialisasi Git (`git init`, `git add .`, `git commit -m "Initial commit"`). Ini adalah jaring pengaman Anda seperti yang kita bahas sebelumnya.
### 3.2. Langkah 2: Memindai Proyek (Perintah /init)
Roo Code perlu "membaca peta" sebelum berjalan.
* Buka panel Roo Code.
* Ketik perintah awal, misalnya: *"Pelajari struktur folder proyek ini. Ini adalah aplikasi web menggunakan CodeIgniter 4. Jangan lakukan perubahan apa pun, cukup pahami arsitekturnya."*
* Roo Code akan menggunakan alat bacanya untuk memindai struktur direktori, membaca file konfigurasi (seperti `.env` atau `composer.json`), dan memahami *stack* teknologi yang Anda gunakan.
### 3.3. Langkah 3: Perencanaan Arsitektur (Mode Architect)
Jangan biarkan AI langsung menulis kode. Pindahkan Roo Code ke **Mode Architect**.
* **Prompt:** *"Saya ingin membuat fitur upload file Excel (.xlsx) untuk otomatis direkap ke dalam database MySQL. Buatkan rencana struktur file apa saja yang perlu dibuat (Controller, Model, View) dan library apa yang dibutuhkan."*
* AI akan merespons dengan desain sistem, alur data, dan daftar tugas (*todo list*). Evaluasi rencana ini. Jika ada yang kurang pas, perbaiki rencananya di tahap ini.
### 3.4. Langkah 4: Eksekusi Kode (Mode Code)
Setelah rencana disetujui, ubah Roo Code ke **Mode Code**. Eksekusi rencana dari Mode Architect secara bertahap (satu per satu).
* **Prompt:** *"Berdasarkan rencana tadi, mari mulai dari langkah 1: Buatkan file Model beserta struktur tabel migrasinya. Jika sudah selesai, berhenti dan tunggu instruksi saya."*
* AI akan menulis kode, membuat file, dan menyimpannya. Lakukan *commit* di Git setiap kali satu fitur berhasil berjalan dengan baik.
### 3.5. Langkah 5: Debugging dan Perbaikan (Mode Debug)
*Error* pasti akan terjadi. Saat Anda menguji aplikasi di *browser* atau terminal dan menemukan masalah, pindah ke **Mode Debug**.
* **Prompt:** *"Saat saya mencoba mengunggah file, muncul error: [Paste pesan error dari layar]. Tolong analisis Controller dan Model terkait, temukan penyebabnya, dan berikan solusinya."*
* Di mode ini, AI akan fokus menelusuri jejak *error* (*stack trace*) tanpa mencoba menambahkan fitur baru yang tidak perlu.
### 3.6. Langkah 6: Penjelasan dan Dokumentasi (Mode Ask)
Setelah fitur selesai, pindah ke **Mode Ask**.
* **Prompt:** *"Tolong buatkan komentar dokumentasi (DocBlocks) pada setiap fungsi di Controller yang baru saja kita buat. Lalu, jelaskan secara singkat bagaimana alur fungsi `process_recap()` bekerja agar saya memahaminya."*
---
## BAB 4: PENGENALAN MODE SPESIALIS ROO CODE
Mengapa Roo Code membagi AI menjadi beberapa mode? Karena sebuah model LLM (seperti Claude 3.5 Sonnet) akan bekerja jauh lebih akurat jika ia diberi "peran" (*role-playing*) yang spesifik. Instruksi di latar belakang (*system prompt*) untuk masing-masing mode ini berbeda.
### 4.1. Mode Architect: Peran Perencana Sistem
* **Fokus:** Berpikir *high-level*, merancang arsitektur perangkat lunak, memilih teknologi, dan membuat *blueprint*.
* **Pantangan:** Ia tidak diizinkan untuk menulis atau mengedit file kode produksi. Ia hanya membuat file dokumentasi (seperti `.md`) atau memberikan teks di obrolan.
* **Kapan digunakan:** Di awal fitur baru, saat merancang struktur *database*, atau saat memecahkan masalah arsitektur yang kompleks (misal: "Bagaimana cara terbaik menghubungkan server lokal ke layanan cloud?").
### 4.2. Mode Code: Peran Developer Full-Stack
* **Fokus:** Eksekusi brutal. Menulis kode yang bersih, efisien, dan sesuai dengan rencana. Ia diizinkan membaca, membuat, memodifikasi, dan menghapus file kode.
* **Sifat:** Ia lebih fokus pada "bagaimana cara membuatnya" daripada "apakah ini ide yang bagus". Oleh karena itu, ia butuh arahan yang jelas.
* **Kapan digunakan:** Saat Anda sudah memiliki rencana yang matang dan hanya butuh "tangan" untuk mengetik kode dengan cepat.
### 4.3. Mode Debug: Peran Spesialis QA dan Troubleshooter
* **Fokus:** Berpikir analitis, mencari jarum di tumpukan jerami. *System prompt* di mode ini dioptimalkan untuk membaca *log error*, membandingkan versi kode, dan menemukan cacat logika (*bug*).
* **Sifat:** Sangat berhati-hati. Sebelum mengubah kode untuk memperbaiki *bug*, ia akan membaca banyak file terkait untuk memastikan perbaikannya tidak merusak bagian lain.
* **Kapan digunakan:** Saat layar Anda merah penuh *error*, atau saat aplikasi berjalan tidak sesuai ekspektasi (logika salah).
### 4.4. Mode Ask: Peran Asisten Teknis dan Dokumentasi
* **Fokus:** Menjawab pertanyaan, menjelaskan konsep, dan merapikan.
* **Sifat:** Mode ini *read-only* (hanya membaca). Ia tidak akan memodifikasi kode Anda sama sekali. Sangat aman digunakan.
* **Kapan digunakan:** Saat Anda menemukan kode lama yang Anda lupa fungsinya, atau saat meminta AI membuatkan file `README.md` berdasarkan struktur proyek Anda yang sudah jadi.
Bagus, mari kita selesaikan buku panduan ini. Bagian terakhir ini adalah kunci di mana Anda mengubah AI dari sekadar "mesin penjawab" menjadi asisten *developer* senior.
---
# BAGIAN III: MASTERING PROMPT ENGINEERING
*Prompt Engineering* dalam *software development* bukanlah tentang merangkai kata-kata yang puitis. Ini tentang kejelasan, spesifikasi, dan memberikan batasan (*constraints*) yang tegas agar AI tidak berhalusinasi atau menulis kode yang keluar dari standar proyek Anda.
## BAB 5: PROMPT POWERFULL UNTUK SETIAP MODE
Memberikan perintah yang salah di mode yang salah akan menghasilkan kode yang berantakan. Berikut adalah formula *prompt* yang kuat yang disesuaikan untuk masing-masing peran Roo Code.
### 5.1. Prompt untuk Mode Architect
Tujuan di sini adalah perencanaan makro. Jangan meminta kode, mintalah struktur dan logika.
> **Contoh Prompt Optimal:**
> "Bertindaklah sebagai System Architect. Saya ingin membangun modul baru di dalam aplikasi CodeIgniter 4 yang sudah ada. Modul ini bertujuan untuk mengotomatiskan rekapitulasi SPJ bulanan untuk 5 *media outlet* dan pemrosesan *payroll* untuk 7 pegawai.
>
> Tolong berikan rencana arsitektur yang mencakup:
> 1. Struktur tabel MySQL yang dinormalisasi.
> 2. Alur logika MVC (Model-View-Controller) yang akan digunakan.
> Jangan tulis kode implementasi dulu, berikan *blueprint* sistemnya saja."
### 5.2. Prompt untuk Mode Code
Di mode ini, perintah harus sangat spesifik, terisolasi, dan berorientasi pada eksekusi teknis.
> **Contoh Prompt Optimal:**
> "Berdasarkan rencana arsitektur yang sudah kita sepakati, tolong buatkan file `SpjController.php` dan `SpjModel.php`.
>
> Aturan tambahan:
> - Gunakan standar *Query Builder* bawaan CodeIgniter 4.
> - Tambahkan validasi form dasar untuk memastikan input nominal SPJ tidak boleh kosong dan harus berupa angka.
> - Jika sudah selesai membuat dua file ini, berhenti dan tunggu instruksi selanjutnya."
### 5.3. Prompt untuk Mode Debug
AI membutuhkan konteks logis dan jejak *error* untuk memperbaiki masalah tanpa merusak fitur lain.
> **Contoh Prompt Optimal:**
> "Saat saya menjalankan skrip Python untuk merekap data bulanan dari *server* Ubuntu di `home/ubuntu/Downloads`, *script* berhenti dan memunculkan *error* ini: `[paste error log dari terminal]`.
>
> Tolong analisis *file* `rekap_otomatis.py`. Fokus pada fungsi yang membaca direktori tersebut. Jelaskan apa penyebab *error*-nya dan berikan baris kode yang perlu diperbaiki."
### 5.4. Prompt untuk Mode Ask
Gunakan mode ini untuk ekstraksi informasi atau pembuatan dokumentasi rutin.
> **Contoh Prompt Optimal:**
> "Tolong baca file `PayrollModel.php`. Buatkan saya draf surat resmi (dalam bahasa Indonesia yang formal) atau laporan dokumentasi teknis yang menjelaskan bagaimana algoritma perhitungan *payroll* di dalam kode tersebut bekerja."
---
## BAB 6: BEST PRACTICE & KUALITAS KODE TINGGI
AI bisa menulis kode dengan sangat cepat, tetapi kecepatan tanpa kontrol akan menghasilkan *technical debt* (tumpukan kode buruk yang sulit dipelihara).
### 6.1. Best Practice (Latihan Terbaik)
* **Aturan "Baby Steps" (Langkah Kecil):** Jangan pernah meminta AI membangun seluruh aplikasi dalam satu *prompt*. Pecah menjadi tugas-tugas mikro (misal: "Buat database dulu", lalu "Buat Controller", lalu "Buat UI").
* **Commit Sesering Mungkin:** Seperti yang kita bahas sebelumnya, jadikan Git sebagai *checkpoint* Anda. Lakukan *commit* setiap kali AI berhasil menyelesaikan satu komponen dengan benar.
* **Jangan Asumsikan AI Tahu Semuanya:** Jika Anda menggunakan *library* spesifik, sebutkan versinya (misalnya, "Gunakan Bootstrap 5" atau "Gunakan Python Pandas versi terbaru").
### 6.2. Struktur Prompt Final (Role & Detail)
Untuk mendapatkan respons tingkat senior dari AI, gunakan kerangka formula **[Role] + [Task] + [Context] + [Constraint]**:
* **Role (Peran):** "Kamu adalah seorang *Senior Backend Developer*..."
* **Task (Tugas):** "...buatkan API endpoint untuk mengambil data absensi..."
* **Context (Konteks):** "...sistem ini menggunakan PHP dan mengembalikan data dalam format JSON..."
* **Constraint (Batasan):** "...pastikan kode ini aman dari SQL Injection dan jangan gunakan *library* eksternal."
---
## PENUTUP
Menguasai AI dalam pengembangan perangkat lunak bukan berarti membiarkan mesin mengambil alih seluruh pekerjaan Anda. Roo Code dan LLM adalah "alat kerja berat"—seperti ekskavator. Anda tetaplah insinyur dan pilot yang harus mengarahkannya, memahami medannya, dan memastikan fondasinya kokoh.
Dengan mengikuti struktur *setup* yang benar di Bagian I, disiplin memisahkan tugas menggunakan Mode di Bagian II, dan berkomunikasi dengan instruksi yang tajam di Bagian III, waktu yang sebelumnya habis untuk mengetik kode *boilerplate* berulang-ulang kini bisa Anda gunakan untuk fokus pada solusi bisnis dan inovasi logika.
---
Berikut tools pembantu yang sangat berguna agar hemat token ai disini
0 Comments