> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mertani.co.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Dataset Kalibrasi

Menu **Dataset Kalibrasi** digunakan untuk menyimpan tabel referensi (CSV) yang digunakan dalam proses kalibrasi sensor berbasis lookup.

Dataset diperlukan ketika hubungan antara nilai sensor dan nilai sebenarnya **tidak linear**, sehingga tidak dapat direpresentasikan dengan rumus matematika sederhana.

**Contoh kasus penggunaan:**

* Konversi tinggi muka air → luas penampang basah
* Konversi tinggi air → debit (rating curve)
* Kalibrasi sensor berbasis tabel pabrikan

***

## Cara Kerja

Dataset bekerja dengan prinsip **lookup table**: sistem mencocokkan nilai input dari sensor dengan baris di kolom pertama dataset, lalu mengembalikan nilai dari kolom output yang ditentukan.

**Contoh:**

| water\_level | area | volume |
| ------------ | ---- | ------ |
| 4.0          | 40.4 | 100.2  |
| 3.9          | 39.0 | 97.5   |
| 3.8          | 37.7 | 95.1   |

Jika sensor membaca nilai `3.9`, maka:

* `DATASET("slug", 3.9, "area")` → mengembalikan **39.0**
* `DATASET("slug", 3.9, "volume")` → mengembalikan **97.5**

Penggunaan dalam rumus kalibrasi:

```
DATASET("penampang_basah_1cm", [RYG8-flLev] / 100, "area")
```

| Argumen   | Nilai                   | Keterangan                           |
| --------- | ----------------------- | ------------------------------------ |
| Argumen 1 | `"penampang_basah_1cm"` | Slug dataset                         |
| Argumen 2 | `[RYG8-flLev] / 100`    | Nilai input (tinggi air dalam meter) |
| Argumen 3 | `"area"`                | Kolom output yang diambil            |

***

## Struktur File CSV

Dataset harus diunggah dalam format **CSV** dengan ketentuan berikut:

| Ketentuan        | Detail                                                                        |
| ---------------- | ----------------------------------------------------------------------------- |
| Format file      | `.csv` (Comma-Separated Values)                                               |
| Encoding         | UTF-8                                                                         |
| Baris pertama    | **Wajib header**, digunakan sebagai nama kolom dalam fungsi `DATASET()`       |
| Kolom pertama    | **Wajib referensi (input lookup)**, nilai sensor akan dicocokkan ke kolom ini |
| Kolom berikutnya | Kolom output, dapat lebih dari satu                                           |
| Urutan data      | Disarankan terurut ascending atau descending                                  |
| Nilai duplikat   | Tidak disarankan pada kolom referensi                                         |

**Contoh CSV yang valid:**

```csv theme={null}
water_level,area,volume
4.0,40.4,100.2
3.9,39.0,97.5
3.8,37.7,95.1
```

<Warning>
  Pastikan nilai input sensor berada dalam **range yang tercakup oleh dataset**. Nilai di luar range dapat menghasilkan output kosong atau tidak akurat karena sistem tidak melakukan interpolasi otomatis di luar batas data.
</Warning>

***

## Cara Menambahkan Dataset

<Steps>
  <Step title="Buka halaman Manajemen Device">
    Masuk ke menu **Manajemen Device** dan pilih device yang akan ditambahkan datasetnya.
  </Step>

  <Step title="Buka menu Dataset Kalibrasi">
    Pada halaman detail device, masuk ke tab atau menu **Dataset Kalibrasi**.
  </Step>

  <Step title="Klik Tambah Dataset">
    Klik tombol **"Tambah Dataset Kalibrasi"** untuk membuka form penambahan.
  </Step>

  <Step title="Upload file CSV">
    Unggah file CSV sesuai format yang telah ditentukan di atas.
  </Step>

  <Step title="Isi slug dataset">
    Masukkan **slug** sebagai identifier unik dataset. Slug ini yang akan digunakan dalam fungsi `DATASET()` di rumus kalibrasi.

    Gunakan slug yang deskriptif dan konsisten, misalnya:

    * `penampang_basah_sungai_hulu`
    * `rating_curve_pos_duga`
    * `tabel_konversi_sensor_a`
  </Step>

  <Step title="Simpan dataset">
    Klik **"Simpan"**. Dataset siap digunakan dalam rumus kalibrasi sensor.

    <Frame>
      <video src="https://mintcdn.com/mertani/s_1RXp64XZSqMTTx/assets/dashboard-guides/configs/manage-dataset.webm?fit=max&auto=format&n=s_1RXp64XZSqMTTx&q=85&s=a6655cfcf443055e4f606e351d87b5c5" controls autoPlay loop playsInline muted data-path="assets/dashboard-guides/configs/manage-dataset.webm" />
    </Frame>
  </Step>
</Steps>

***

## Ketentuan & Batasan

| Aspek                        | Ketentuan                                                                |
| ---------------------------- | ------------------------------------------------------------------------ |
| **Berlaku untuk**            | Data baru setelah konfigurasi disimpan                                   |
| **Data historis**            | Tidak berubah                                                            |
| **Interpolasi**              | Sistem mencocokkan nilai yang tersedia, nilai di luar range dapat kosong |
| **Slug**                     | Harus unik per device                                                    |
| **Duplikat kolom referensi** | Tidak disarankan, hasil lookup bisa tidak konsisten                      |

***

## Integrasi dengan Kalibrasi Sensor

Dataset yang sudah ditambahkan dapat langsung digunakan di rumus kalibrasi menggunakan fungsi `DATASET()`. Saat menginput rumus kalibrasi, ketik `=` untuk melihat daftar dataset yang tersedia dan menyisipkan slug-nya secara otomatis.

<Card title="Kalibrasi Sensor" icon="calculator" href="../configuration/kalibrasi-sensor">
  Panduan lengkap penggunaan fungsi `DATASET()` dalam kalibrasi sensor
</Card>
