Cursor menyediakan tooling terintegrasi untuk pengembangan data science melalui environment yang dapat direplikasi, dukungan notebook, dan bantuan kode bertenaga AI. Panduan ini membahas pola penyiapan esensial untuk alur kerja Python, R, dan SQL.

Pengembangan notebook

Untuk dukungan notebook penuh, unduh ekstensi Jupyter (id: ms-toolsai.jupyter) yang dirilis oleh ms-toolsai.
Cursor mendukung file .ipynb dan .py dengan eksekusi sel terintegrasi. Tab, Inline Edit, dan Agent berfungsi di dalam notebook, sama seperti pada file kode lainnya. Kemampuan utama:
  • Eksekusi sel inline menjalankan kode langsung di antarmuka editor
  • Tab, Inline Edit, dan Agent memahami pustaka data science termasuk pandas, NumPy, scikit-learn, serta perintah SQL magic

Integrasi database

Database bisa diintegrasikan dengan Cursor lewat dua mekanisme utama: MCP server dan Extension.
  • MCP Server bikin Agents kamu bisa terhubung ke database
  • Extension mengintegrasikan IDE kamu secara menyeluruh dengan database

Via MCP

MCP server memungkinkan agent kamu menjalankan query langsung ke database. Ini bikin agent kamu bisa milih untuk nge-query database, nulis query yang sesuai, jalanin perintah, dan analisis output, semuanya sebagai bagian dari task yang lagi berjalan. Contohnya, kamu bisa nyambungin database Postgres ke instance Cursor kamu dengan nambahin konfigurasi MCP berikut ke Cursor:
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}
Buat info lebih lanjut tentang MCP, cek dokumentasi MCP kami.

Via Extensions

Install extension khusus database (PostgreSQL, BigQuery, SQLite, Snowflake) buat eksekusi query langsung dari editor. Ini ngilangin context switching antar tool dan ngaktifin bantuan AI buat optimasi query.
-- Cursor kasih saran untuk index, window function, dan optimasi query
SELECT
    user_id,
    event_type,
    COUNT(*) as event_count,
    RANK() OVER (PARTITION BY user_id ORDER BY COUNT(*) DESC) as frequency_rank
FROM events
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY user_id, event_type;
Pakai Agents buat analisis query yang lambat, ngasih saran peningkatan performa, atau ngehasilin kode visualisasi buat hasil query. Cursor paham konteks SQL dan bisa ngerekomendasiin tipe chart yang pas berdasarkan struktur data kamu.
Snowflake Extension

Visualisasi data

Bantuan AI dari Cursor mencakup library visualisasi data seperti Matplotlib, Plotly, dan Seaborn. Agen bisa menghasilkan kode untuk visualisasi data, bantu kamu mengeksplorasi data dengan cepat dan mudah, sekaligus membuat artefak yang bisa direplikasi dan dibagikan.
import plotly.express as px
import pandas as pd

# AI menyarankan jenis plot yang relevan berdasarkan kolom data
df = pd.read_csv('sales_data.csv')
fig = px.scatter(df, x='advertising_spend', y='revenue',
                 color='region', size='customer_count',
                 title='Revenue vs Advertising Spend by Region')
fig.show()

Pertanyaan yang sering diajukan

Bisa nggak aku pakai Jupyter notebook yang sudah ada? Bisa, Cursor membuka file .ipynb dengan eksekusi sel penuh dan dukungan AI untuk completion. Gimana cara menangani dataset besar yang nggak muat di memori? Pakai pustaka komputasi terdistribusi seperti Dask, atau sambungkan ke klaster Spark lewat koneksi Remote-SSH ke mesin yang lebih besar. Apakah Cursor mendukung file R dan SQL? Ya, Cursor menyediakan bantuan AI dan penyorotan sintaks untuk skrip R (.R) dan file SQL (.sql). Apa cara yang direkomendasikan buat berbagi environment pengembangan? Commit folder .devcontainer ke version control. Anggota tim bisa membangun ulang environment secara otomatis saat membuka proyek. Gimana cara nge-debug pipeline pemrosesan data? Gunakan debugger terintegrasi Cursor dengan breakpoint di skrip Python, atau manfaatkan Agent untuk menganalisis dan menjelaskan transformasi data yang kompleks langkah demi langkah.

Reproducibilitas environment

Development container

Development container bantu kamu memastikan runtime dan dependency yang konsisten di seluruh anggota tim dan environment deployment. Ini bisa menghilangkan bug spesifik environment dan mengurangi waktu onboarding untuk anggota tim baru. Untuk memakai development container, mulai dengan membuat folder .devcontainer di root repository kamu. Selanjutnya, buat file devcontainer.json, Dockerfile, dan requirements.txt.
// .devcontainer/devcontainer.json
{
  "name": "ds-env",
  "build": { "dockerfile": "Dockerfile" },
  "features": {
    "ghcr.io/devcontainers/features/python:1": { "version": "3.11" }
  },
  "postCreateCommand": "pip install -r requirements.txt"
}
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/python:3.11
COPY requirements.txt .
RUN pip install --upgrade pip && \
    pip install -r requirements.txt
# requirements.txt
pandas==2.3.0
numpy
# tambahkan dependency lain yang kamu butuhkan untuk project kamu
Cursor akan otomatis mendeteksi devcontainer dan ngeprompt kamu buat buka ulang project di dalam container. Atau, kamu bisa buka ulang secara manual di container lewat Command Palette (Ctrl+Shift+P) dan cari Reopen in Container. Development container memberikan beberapa keuntungan:
  • Isolasi dependency mencegah konflik antar-project
  • Build yang dapat direproduksi memastikan perilaku konsisten di environment development dan production
  • Onboarding yang sederhana memungkinkan anggota tim baru langsung mulai tanpa setup manual

Remote development dengan SSH

Saat analisismu butuh resource komputasi tambahan, GPU, atau akses ke dataset privat, sambungkan ke mesin remote sambil tetap mempertahankan environment development lokal kamu.
  1. Sediakan instance cloud atau akses server on-premises dengan resource yang dibutuhin
  2. Clone repository kamu ke mesin remote, termasuk konfigurasi .devcontainer
  3. Terhubung lewat Cursor: Ctrl+Shift+P → “Remote-SSH: Connect to Host”
Pendekatan ini mempertahankan tooling yang konsisten sambil menskalakan resource komputasi sesuai kebutuhan. Konfigurasi development container yang sama berlaku di environment lokal maupun remote.