Cara Menulis Kode dengan Cursor
(arguingwithalgorithms.com)Apa itu Cursor
- Cursor adalah fork dari Visual Studio Code (VS Code), dengan fitur berbasis Large Language Model (LLM) yang terintegrasi ke UI inti
- Ini adalah produk proprietari dengan tier gratis dan opsi berlangganan
- Fitur utama:
- Autocomplete Tab: model fine-tuning proprietari untuk pelengkapan kode dan berpindah ke tindakan berikutnya yang direkomendasikan, hanya tersedia untuk pelanggan berbayar
- Edit inline: antarmuka berbasis chat yang dapat digunakan pengguna gratis maupun berbayar untuk mengedit kode yang dipilih menggunakan tampilan diff
- Sidebar chat: antarmuka berbasis chat yang dapat digunakan pengguna gratis maupun berbayar, menyediakan ruang untuk diskusi yang lebih panjang
- Composer: antarmuka berbasis chat yang dirancang untuk refactoring berskala besar di banyak file, dapat digunakan oleh pengguna gratis maupun berbayar
Autocomplete Tab
- Fitur yang paling alami digunakan saat menulis kode dan paling banyak menghemat waktu
- Tidak hanya menyarankan pelengkapan untuk satu baris, beberapa baris, atau seluruh fungsi, tetapi juga menyarankan baris berikutnya untuk dipindahi demi edit berikutnya
- Dengan menekan tombol Tab berulang kali, perubahan terkait di seluruh file dapat dilengkapi secara otomatis
- Bisa digunakan sebagai alat refactoring kode
- Kadang-kadang juga menemukan bug secara mandiri dan menyarankan perbaikannya
- Jika string dibungkus dengan tanda kutip, isinya akan di-escape dengan tepat
- Seluruh fungsi dapat ditulis hanya dengan signature fungsi dan docstring opsional
- Saran pelengkapannya sangat cepat
- Kekurangan:
- Jika tidak melihat saran tepat waktu dan terus mengetik, saran pelengkapan akan hilang
- Terkadang setelah sengaja menolak pelengkapan yang salah, ketika nanti menerima pelengkapan lain, saran yang sebelumnya ditolak diam-diam ikut diterapkan
Edit inline, sidebar chat, Composer
- Interaksi dengan model dasar (terutama menggunakan Claude 3.5 Sonnet) sangat mirip, perbedaannya ada pada antarmuka pengguna
- Edit inline dipanggil dengan menekan Ctrl-K/Cmd-K, lalu Anda bisa memasukkan perubahan yang diinginkan dan mendapatkan diff yang dapat diterima atau ditolak
- Sidebar chat dibuka dengan Ctrl+L/Cmd+L dan memberi lebih banyak ruang untuk melakukan percakapan beberapa kali
- Composer dirancang untuk refactoring lintas banyak file dan menawarkan pengalaman pengguna yang lebih baik untuk meninjau diff beberapa file satu per satu
File .cursorrules
- Isi file .cursorrules yang berada di root workspace selalu disertakan dalam berbagai format chat untuk memberikan konteks tambahan
- Digunakan untuk memberi tahu LLM tentang standar coding repositori, paket umum, dan dokumentasi lainnya
- Dapat membantu mengatasi salah satu hambatan besar Cursor, yaitu tidak mengikuti gaya dan pola coding kecuali hal itu sudah ada di file yang sedang diedit
- Saat ini hanya ada satu file per workspace, sehingga monorepo yang berisi kode dalam banyak bahasa lebih sulit diatur dibanding repositori kecil dengan kumpulan kode yang kecil dan bergaya konsisten
- File .cursorrules hanya digunakan untuk format chat dan tidak digunakan untuk autocomplete Tab
Perubahan pada workflow
- Hal paling menarik bukanlah bahwa kode bisa ditulis lebih cepat
- Pada kenyataannya, menulis kode itu sendiri bukan bottleneck
- Nilai sebenarnya terletak pada perubahan cara menulis kode
- Hal yang berubah:
- Jauh lebih kecil kemungkinan untuk mencari library atau framework baru
- Untuk utilitas kecil, lebih mudah membiarkan LLM menulis sesuatu yang sesuai kebutuhan khusus dibanding mengimpor library umum
- Banyak library hanya ada untuk mengurangi boilerplate, tetapi karena LLM bisa menggantikannya, biayanya terasa tidak lagi sepadan
- Lebih sedikit khawatir untuk berpegang pada prinsip DRY (Don't Repeat Yourself) di kode sendiri
- Mendefinisikan abstraksi terlalu dini bisa menimbulkan banyak utang teknis di kemudian hari
- Fleksibilitas menjadi lebih tinggi karena banyak kode bisa dibuat dengan merujuk ke kode lain tanpa harus lebih dulu memaksanya menjadi fungsi atau class
- Jauh lebih bersedia menggunakan bahasa atau framework yang kurang familiar
- Misalnya, dulu ada kesulitan menggunakan R, tetapi sekarang cukup menjelaskan visualisasi yang diinginkan untuk mendapatkan manipulasi data yang benar dan visualisasi ggplot
- Melakukan iterasi cepat pada komponen kecil sebelum mengintegrasikannya ke codebase yang lebih besar
- Ini juga untuk mengatasi keterbatasan LLM, tetapi sekaligus membuka cara kerja menarik yang sebelumnya tidak terpikirkan
- Jauh lebih kecil kemungkinan untuk mencari library atau framework baru
Ringkasan
- Untuk saat ini, Cursor adalah contoh terbaik yang menunjukkan potensi asisten coding berbasis LLM
- Jika ingin mengeksplorasi bagaimana alat semacam ini bisa bernilai, ada baiknya mencoba Cursor
Opini GN⁺
- Cursor tampak sebagai contoh yang baik dalam menunjukkan potensi alat coding berbasis LLM
- Khususnya, fitur autocomplete Tab menarik karena dapat digunakan secara alami saat menulis kode dan sangat menghemat waktu
- Fitur berbasis chat juga tampaknya dapat berguna untuk refactoring atau transformasi kode
- Namun, karena masih berada pada tahap awal, tampaknya masih ada keterbatasan
- Sulit menerapkan gaya coding yang konsisten
- Masalah kegunaan pada struktur proyek yang kompleks seperti monorepo
- Hal seperti perbedaan fitur antara pengguna gratis dan berbayar yang belum jelas
- Alat lain dengan fungsi serupa antara lain GitHub Copilot, Tabnine, dan Kite
- Karena setiap alat memiliki kelebihan dan kekurangan masing-masing, sebaiknya pilih sesuai karakteristik proyek atau preferensi pribadi
- Saat mengadopsi alat coding berbasis LLM, ada beberapa hal berikut yang layak dipertimbangkan
- Penerimaan tim pengembang: apakah ada penolakan terhadap adopsi alat baru
- Biaya pembelajaran: berapa lama waktu yang dibutuhkan untuk mempelajari cara menggunakan alat
- Maintainability: apakah kode yang dihasilkan alat mudah dipahami dan dipelihara
- Kualitas kode: apakah benar-benar membantu meningkatkan kualitas kode
- Efektivitas biaya: apakah peningkatan produktivitas cukup untuk menutupi biaya adopsi/pemeliharaan
6 komentar
Cursor chatadalah kuncinya. Fitur untuk membuatdocstringitu sangat praktis.Setelah mencoba cursor, auto-complete milik copilot terasa sangat lambat. hiks hiks
Apakah pelengkapan otomatis tab hanya tersedia untuk pengguna berbayar?
Memang benar ini hanya tersedia untuk pelanggan, tetapi ada langganan gratis yang menyediakan 2000 penyelesaian otomatis per bulan. Saya sudah menggunakannya seperti itu selama 3 bulan.
https://www.cursor.com/pricing
Ya
Sudah tertulis di artikelnya wkwk