16.2 Editor yang Mengerti Konteks

Rina membuka file lama itu di editor. Kode berisi tiga kelas yang saling memanggil, satu utility function yang dipakai di beberapa tempat, dan sebuah konfigurasi yang disembunyikan di dalam method panjang. Ia perlu memahami semuanya sebelum berani menyentuh satu baris pun.

Berikut perbandingan alur kerja saat Rina membaca dan memodifikasi kode, dengan dan tanpa bantuan AI yang menjaga konteks lokal.

flowchart TD A[Mulai: Buka file] --> B{Ada AI?} B -- Ya --> C[AI baca konteks lokal] C --> D[Sorot kode mencurigakan] D --> E[AI tampilkan saran inline] E --> F[Terima / Tolak / Modifikasi] F --> G[Selesai: konteks terjaga] B -- Tidak --> H[Baca manual seluruh file] H --> I[Buka file lain cari definisi] I --> J[Kembali ke file awal] J --> K[Kelebihan tab, konteks hilang] K --> L[Butuh waktu lebih untuk pahami ulang] L --> M[Selesai: beban kognitif tinggi]

Biasanya, Rina akan menghabiskan lima belas menit pertama hanya untuk membaca ulang file, melompat ke definisi fungsi, mencari tahu parameter apa yang masuk dan keluar. Kadang ia harus membuka file lain, lalu kembali lagi, lalu kehilangan konteks karena terlalu banyak tab terbuka. Ini bukan soal malas membaca kode. Ini soal beban kognitif yang menumpuk setiap kali konteks harus dibangun ulang dari nol.

Di sinilah AI assistant di dalam editor mulai terasa berbeda dari tool lama. Bukan karena ia bisa menulis kode cepat. Tapi karena ia membaca file yang sedang dibuka, memahami isinya, dan menjaga konteks lokal tanpa perlu Rina menjelaskan ulang.

Rina menyorot satu blok kode yang mencurigakan. AI assistant langsung menampilkan saran perubahan inline — bukan di panel samping, bukan di jendela terpisah, melainkan langsung di baris yang sama, dengan tanda plus dan minus seperti diff biasa. Sarannya pendek: mengganti satu kondisi, menghapus variabel yang tidak terpakai, menambahkan guard clause. Perubahan kecil yang tidak mengubah logika utama, tetapi membuat kode lebih mudah dibaca.

Berikut contoh kode yang disorot Rina dan saran inline yang muncul dari AI assistant.

// Kode asli
function processOrder(order) {
  if (order && order.items && order.items.length > 0) {
    // logika utama sepanjang 30 baris
    let total = 0;
    for (let item of order.items) {
      total += item.price * item.quantity;
    }
    // ... lebih banyak logika
    return total;
  }
  return 0;
}

// Saran inline AI (tampil sebagai diff)
function processOrder(order) {
  if (!order || !order.items || order.items.length === 0) {
    return 0; // guard clause: keluar lebih awal
  }
  // logika utama tanpa nesting dalam
  let total = 0;
  for (let item of order.items) {
    total += item.price * item.quantity;
  }
  return total;
}

Rina bisa menerima, menolak, atau memodifikasi saran itu. Tidak ada pop-up yang mengganggu. Tidak ada notifikasi yang memecah konsentrasi. AI assistant bekerja seperti rekan yang diam, menunggu, dan hanya bicara saat diminta atau saat melihat sesuatu yang jelas bisa diperbaiki.

Kapabilitas semacam ini disebut sebagai kemampuan menjaga konteks lokal. Artinya, AI tidak hanya melihat satu baris yang sedang diketik, tetapi membaca seluruh file yang terbuka, memahami struktur kelas, mengenali nama fungsi, dan tahu bagian mana yang saling terkait. Ia tidak perlu Rina menempelkan potongan kode ke prompt terpisah. Ia sudah ada di sana, membaca hal yang sama dengan yang dibaca Rina.

Saat Rina memutuskan untuk melakukan refactor kecil — misalnya memisahkan satu method panjang menjadi tiga fungsi yang lebih fokus — AI assistant bisa membantunya tanpa mengubah perilaku kode. Ia menyarankan nama fungsi yang konsisten dengan gaya penamaan di file lain, memastikan parameter tidak berubah secara tidak sengaja, dan menunjukkan bagian mana yang perlu disesuaikan setelah refactor. Ini bukan refactor besar yang mengubah arsitektur. Ini refactor harian yang membuat kode lebih terawat.

Yang paling terasa adalah alur berpikir Rina tidak terputus. Ia tidak perlu membuka browser, tidak perlu mengetik ulang konteks ke tool terpisah, tidak perlu menunggu respons dari rekan tim. Semua terjadi di tempat yang sama: editor tempat ia bekerja setiap hari.

Bagi seorang arsitek, kemampuan ini penting bukan karena membuat kode lebih cepat selesai. Tapi karena waktu yang dulu dipakai untuk membaca ulang dan memahami konteks bisa dialihkan ke hal yang lebih strategis: memeriksa apakah desain yang dipilih masih sesuai, apakah ada trade-off yang terlewat, atau apakah kode yang ditulis tim sudah selaras dengan keputusan arsitektur yang dibuat sebelumnya.

Editor yang mengerti konteks bukanlah alat ajaib. Ia tetap membutuhkan manusia yang tahu apa yang ingin dicapai. Tapi ia menghilangkan gesekan kecil yang selama ini menguras energi tanpa disadari.

Setelah Rina selesai dengan refactor kecil itu, ia perlu menjalankan pengujian dan melihat apakah perubahannya berdampak ke bagian lain dari repositori. Di sinilah AI tidak lagi bekerja di satu file, tetapi mulai membaca seluruh codebase. Kita akan melihat bagaimana AI membantu di level yang lebih luas — terminal dan repositori yang bisa diajak bicara.