{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Mulai Cepat — Notebook PSD\n",
    "\n",
    "Notebook ini menunjukkan cara memakai **SDK `psd://`** untuk mengakses dataset dan\n",
    "alur dasar menyimpan & mendorong (push) ke repository di Projek Sains Data (PSD).\n",
    "\n",
    "> Notebook berjalan **CPU-only**. Batas CPU/RAM mengikuti tier Anda, dan server akan\n",
    "> berhenti otomatis setelah idle (hemat sumber daya). Pekerjaan tersimpan di `~/work`."
   ],
   "id": "427db3b3"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. SDK PSD sudah terpasang\n",
    "\n",
    "Image notebook PSD sudah memuat `psd`. Kredensial (`PSD_API_BASE`, `PSD_TOKEN`)\n",
    "diinjeksikan otomatis saat server dijalankan — Anda tidak perlu menyetelnya."
   ],
   "id": "d9b4c102"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import psd\n",
    "print('SDK PSD siap.')"
   ],
   "id": "29cfe440"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Memuat dataset dengan URI `psd://`\n",
    "\n",
    "Format URI: `psd://<pemilik>/<dataset>/<path/berkas>`.\n",
    "`psd.load(...)` mengembalikan DataFrame (csv/parquet/json)."
   ],
   "id": "fa7128ad"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = psd.load(\"psd://contoh/iris/iris.csv\")\n",
    "df.head()"
   ],
   "id": "fd55e02b"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Bila butuh berkasnya secara lokal (mis. data besar), gunakan `psd.download`:"
   ],
   "id": "1b1448bc"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "path = psd.download(\"psd://contoh/iris/iris.csv\")\n",
    "print('Tersimpan di:', path)"
   ],
   "id": "8252a796"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Menyimpan & mendorong ke repository\n",
    "\n",
    "Notebook tersimpan di `~/work`. Untuk mendorong ke repo Anda, gunakan terminal\n",
    "(File → New → Terminal) atau jalankan sel di bawah. **Bersihkan output** sebelum commit\n",
    "(Kernel → Restart & Clear Output) agar diff bersih.\n",
    "\n",
    "Lihat dokumentasi *Git push untuk pengguna* untuk menyiapkan SSH key / token."
   ],
   "id": "e2d9fd5f"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Contoh (ganti dengan repo Anda). Jalankan di terminal lebih disarankan.\n",
    "# !git clone git@git.psd.example:budi/proyek-saya.git ~/work/proyek-saya\n",
    "# %cd ~/work/proyek-saya\n",
    "# !git add analisis.ipynb && git commit -m 'Tambah analisis' && git push"
   ],
   "id": "57a931cb"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tips\n",
    "- Untuk berkas data besar, pakai **Git LFS** (jangan commit data mentah besar ke git biasa).\n",
    "- Tambahkan `.gitignore` untuk berkas sementara & data lokal.\n",
    "- Akses dataset lewat `psd://`, bukan menyalin file besar ke repo."
   ],
   "id": "5120e985"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}