# Membuat laporan

Laporan memberi Anda cara terstruktur untuk menganalisis data IoT Query melalui tiga tampilan yang terkoordinasi dari satu kueri SQL: tabel data berpaginasi, grafik, dan peta interaktif. Gunakan laporan ketika Anda memerlukan keluaran tetap yang dapat diekspor daripada kanvas dasbor bebas.

Laporan SQL kustom beradaptasi secara instan terhadap setiap pertanyaan bisnis dengan menyesuaikan kueri dan parameter:

* **Otomatisasi** menghemat waktu dengan menggunakan ulang kueri dan mengintegrasikan dengan alat BI untuk pembaruan cepat.
* **Analisis mendalam** dimungkinkan dengan menggabungkan, mengagregasi, dan mensegmentasi data dari berbagai sumber.
* **Akurasi dan relevansi** dijamin dengan bekerja langsung menggunakan informasi basis data mentah yang mutakhir.
* **Visualisasi interaktif** memungkinkan pengguna menjelajahi data secara dinamis dengan mengubah sumbu, filter, dan metrik.

Tonton video ini untuk membiasakan diri dengan pembuatan laporan dalam antarmuka aplikasi Dashboard Studio:

{% embed url="<https://youtu.be/o2j96_0gp-w?si=yBE9SrsET6gZa-EN>" %}
Membuat laporan di Dashboard Studio langkah demi langkah
{% endembed %}

## Laporan vs. dasbor

Baik laporan maupun dasbor menjalankan kueri SQL terhadap basis data IoT Query Anda dan merender hasil sebagai visualisasi. Perbedaan utama adalah pada cara kueri dan keluaran disusun:

|                  | Laporan                                    | Dasbor                                 |
| ---------------- | ------------------------------------------ | -------------------------------------- |
| Kueri SQL        | Satu kueri menggerakkan semua tampilan     | Setiap komponen memiliki kueri sendiri |
| Tata letak       | Tetap: tabel data, grafik, peta lokasi     | Kanvas seret-dan-letakkan              |
| Ekspor           | HTML, Excel, PDF                           | Hanya skema JSON                       |
| Kasus penggunaan | Analisis satu set data yang dapat diekspor | Pemantauan operasional multi-panel     |

Gunakan laporan ketika satu set data perlu dieksplorasi sebagai tabel, divisualisasikan sebagai grafik, dan dipetakan secara bersamaan, atau ketika keluaran perlu diekspor dan dibagikan di luar Dashboard Studio. Gunakan dasbor ketika Anda memerlukan beberapa visualisasi independen pada satu kanvas, misalnya: menggabungkan ubin statistik ringkasan perjalanan, grafik konsumsi bahan bakar, dan tabel kunjungan zona dalam satu tampilan.

Untuk detail tentang membuat dasbor, lihat [Membuat dasbor](https://www.navixy.com/docs/analytics/id/dashboard-studio/membuat-dasbor).

## Cara membuat laporan

{% stepper %}
{% step %}

### Langkah 1: Buka editor laporan

Di bilah sisi kiri, klik **Alat**, lalu pilih **Laporan baru**.

Dashboard Studio akan meminta Anda memilih sebuah bagian dari struktur menu bersama Anda. Pilih bagian yang ada atau pilih Root untuk menempatkan laporan di tingkat teratas.
{% endstep %}

{% step %}

### Langkah 2: Masukkan informasi dasar

Editor terbuka dengan dua bidang di bagian atas:

* **Judul** (wajib): nama yang ditampilkan di menu dan header ekspor.
* **Deskripsi** (opsional): konteks tambahan yang terlihat di editor.
  {% endstep %}

{% step %}

### Langkah 3: Tulis kueri SQL

1. Klik tab **Kueri SQL** dan masukkan pernyataan SELECT terhadap tabel IoT Query Anda. Kueri menentukan ketiga komponen (tabel, grafik, dan peta), jadi sertakan setiap kolom yang Anda rencanakan untuk digunakan di semua tampilan, misalnya:

{% code title="Contoh kueri laporan dasar" expandable="true" %}

```sql
SELECT
    t.device_id,
    o.object_label,
    -- Konversi koordinat integer berskala ke derajat desimal
    t.latitude::float / 10000000 AS latitude,
    t.longitude::float / 10000000 AS longitude,
    -- Konversi kecepatan integer berskala ke km/h
    t.speed::float / 100 AS speed,
    t.device_time
FROM raw_telematics_data.tracking_data_core t
JOIN raw_business_data.objects o ON t.device_id = o.device_id
LIMIT 1000
```

{% endcode %}

{% hint style="info" icon="lightbulb-exclamation" %}

### Beberapa tips untuk membangun kueri:

* Tambahkan klausa LIMIT saat mengonfigurasi laporan. Ini mengurangi waktu eksekusi kueri dan mempercepat pratinjau komponen. Hapus atau tingkatkan limit sebelum menyimpan jika Anda memerlukan seluruh set data untuk diunduh.
* Setelah menulis kueri, Anda dapat mengklik **Detect Columns** untuk memeriksa kolom apa yang sebenarnya diambil dengan kueri ini. Ini membantu menyiapkan pemilih kolom di **Components** tab. Langkah ini opsional. Anda dapat mengonfigurasi komponen secara manual, tetapi menjalankannya terlebih dahulu mempermudah pemilihan sumbu dan bidang.
* Kueri SQL apa pun yang digunakan di panel dasbor adalah titik awal yang valid untuk laporan. Salin kueri dari panel dan sesuaikan agar sesuai tujuan laporan. Misalnya, menambahkan kolom yang diperlukan untuk peta lokasi, atau menghapus agregasi yang tidak berlaku untuk tampilan tabel.
* Buku Resep Kueri IoT berisi contoh kueri umum dan khusus industri yang siap digunakan sebagai dasar untuk laporan. Lihat [SQL Recipe Book](https://app.gitbook.com/s/oFNFEIINiGFbhi3Px3dE/example-queries) untuk daftar lengkap.
  {% endhint %}
  {% endstep %}

{% step %}

### Langkah 4: Konfigurasikan komponen

Klik tab **Components** tab. Tiga komponen tersedia: **Table**, **Chart**, dan **Map**. Masing‑masing memiliki tombol untuk menyertakan atau mengecualikannya dari laporan. Anda dapat menghapus komponen mana pun yang tidak diperlukan.

{% tabs %}
{% tab title="Tabel data" %}
Tabel data menampilkan hasil kueri dalam baris yang dipaginasi.

* **Page Size**: mengatur berapa banyak baris yang muncul per halaman dalam tampilan interaktif. Ini tidak memengaruhi ekspor, yang selalu berisi seluruh himpunan hasil.
* **Show Totals Row**: menambahkan baris ringkasan di bagian bawah tabel saat diaktifkan.
  {% endtab %}

{% tab title="Chart" %}
Dua jenis grafik tersedia:

* **Time series (line)**: cocok untuk data yang diplot sepanjang waktu.
* **Bar chart**: cocok untuk perbandingan kategorikal (juga disebut grafik kolom).

Konfigurasikan sumbu:

* **X-axis column**: biasanya kolom waktu seperti `device_time`.
* **Y-axis columns**: satu atau lebih kolom numerik, seperti speed atau `fuel_level`.
* **Group by**: opsional memisahkan seri berdasarkan kolom kategorikal, seperti `object_label`, untuk menampilkan baris atau grup batang terpisah per perangkat.
  {% endtab %}

{% tab title="Peta lokasi" %}
Peta lokasi memplot titik data menggunakan koordinat GPS.&#x20;

Dashboard Studio dapat mendeteksi kolom lintang dan bujur secara otomatis dari hasil kueri Anda. Ketika **Deteksi otomatis kolom GPS** sakelar diaktifkan, kolom yang diperlukan untuk menentukan lokasi (biasanya `lintang` dan `bujur`) dipilih secara otomatis jika kueri Anda mengembalikannya.

Anda juga dapat menonaktifkan **Deteksi otomatis** opsi dan memilih kolom yang diperlukan secara manual.
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### Langkah 5: Simpan laporan

Klik Simpan. Laporan muncul di bagian menu yang Anda pilih pada langkah 1 dan dapat diakses oleh semua pengguna yang memiliki akses ke bagian tersebut.
{% endstep %}
{% endstepper %}

## Melihat laporan

Setelah Anda membuat laporan, laporan terbuka segera. Anda akan melihat semua komponen yang dikonfigurasi ditampilkan dengan data langsung dari database IoT Query Anda. Header laporan menampilkan cap waktu pembaruan terakhir, jumlah baris total, dan waktu eksekusi kueri.&#x20;

Halaman laporan juga menampilkan kueri SQL secara langsung, sehingga Anda dapat memperbaruinya kapan pun diperlukan.

1. Perluas **Kueri SQL** bagian untuk melihat atau mengedit pernyataan secara inline.&#x20;
2. Terapkan perubahan:
   1. Klik **Simpan** untuk menyimpan perubahan tanpa menjalankan. Anda perlu mengklik **Segarkan** untuk mengeksekusi ulang kueri dan memperbarui semua tampilan dengan data saat ini.
   2. **Simpan & Jalankan** untuk menerapkan kueri yang diperbarui segera.

### Tabel data

Bagian **Tabel Data** menampilkan hasil kueri dengan header bagian yang menampilkan jumlah baris total yang dikembalikan oleh kueri. Tampilan interaktif menampilkan hanya sejumlah baris terbatas, footer mengonfirmasi jumlah yang tepat. Gunakan **Unduh** dropdown untuk mengekspor set hasil lengkap sebagai Excel (.xlsx) atau CSV (.csv) terlepas dari berapa banyak baris yang ditampilkan oleh tampilan interaktif.

Jika Anda memerlukan lokasi alih-alih koordinat mentah, centang **Geocode ke alamat** kotak di kanan atas **Tabel Data** header. Ketika diaktifkan, itu menyelesaikan kolom koordinat menjadi alamat jalan yang dapat dibaca.

{% hint style="warning" %}
Resolusi alamat memberikan beban yang signifikan pada server. Gunakan opsi ini hanya dengan dataset yang telah diagregasi atau difilter. Untuk data telematika mentah dengan puluhan ribu baris, simpan koordinat dalam bentuk numerik.
{% endhint %}

### Chart

Bagian Grafik dirender di bawah tabel data. Bagian ini mewarisi pengaturan yang Anda terapkan di editor laporan, tetapi Anda juga dapat menyesuaikan konfigurasi sumbu langsung di tampilan:

* **Sumbu X**: pilih kolom untuk dipetakan pada sumbu horizontal.
* **Sumbu Y**: pilih kolom untuk dipetakan pada sumbu vertikal.
* **Group by**: opsional memisahkan seri berdasarkan kolom kategorikal, seperti `object_label`, untuk menampilkan baris atau grup batang terpisah per perangkat.

Grafik menampilkan judul yang dihasilkan secara otomatis yang menjelaskan pemilihan sumbu dan pengelompokan saat ini, misalnya: `kecepatan terhadap device_time (dikelompokkan berdasarkan object_label)`. Ketika Anda mengubah pengaturan sumbu tanpa menyimpan, sebuah **Perubahan belum disimpan** indikator muncul di samping **Simpan Pengaturan Grafik** tombol. Klik untuk menyimpan perubahan konfigurasi dalam laporan.

### Peta lokasi

Bagian **Peta Lokasi** bagian menampilkan setiap baris kueri sebagai titik pada koordinat GPS-nya. Header bagian menunjukkan jumlah titik yang dipetakan. Kolom GPS didefinisikan saat pembuatan laporan (secara otomatis atau manual), tidak mungkin mengubahnya setelah itu. Jika kueri tidak mengembalikan kolom koordinat yang dikenali, bagian akan menampilkan "Tidak ada koordinat GPS terdeteksi dalam hasil kueri."

Untuk data telematika bertanda waktu, titik-titik yang dipetakan merepresentasikan jalur penuh suatu objek selama periode yang dikueri.

{% hint style="info" %}
Peta bersifat interaktif: perbesar dan geser untuk memeriksa titik individu. Klik **Tampilkan semua** untuk memperkecil dan menyesuaikan semua titik yang dipetakan ke dalam area peta yang terlihat.
{% endhint %}

## Mengekspor laporan

Dashboard Studio menyediakan dua tingkat ekspor.

### Ekspor tabel data

Gunakan **Unduh** menu tarik-turun dalam **Tabel Data** bagian untuk mengekspor hanya data tabel. Ekspor selalu berisi keseluruhan set hasil yang dikembalikan oleh kueri, terlepas dari batas tampilan dalam tampilan interaktif.

### Ekspor laporan penuh

Gunakan tombol di header laporan untuk mengekspor semua komponen secara bersama-sama.

| Tombol                | Keluaran                                                     |
| --------------------- | ------------------------------------------------------------ |
| Excel → Excel (.xlsx) | Spreadsheet dengan tabel data lengkap                        |
| Excel → CSV (.csv)    | Berkas nilai yang dipisahkan koma dengan tabel data lengkap  |
| HTML                  | Berkas interaktif dengan tabel data, grafik, dan peta lokasi |
| PDF                   | Dokumen statis dengan tabel data, grafik, dan peta lokasi    |

{% hint style="info" %}
Berkas HTML yang diekspor mempertahankan interaktivitas: grafik mendukung tooltip saat hover dan peta lokasi mendukung perbesaran dan penggeseran.
{% endhint %}

## Mengedit dan menghapus laporan

Untuk mengedit laporan yang disimpan, Anda tidak lagi memerlukan dialog editor terpisah. Buka laporan dari menu dan ubah kueri SQL atau pengaturan komponen langsung di dalamnya. Satu-satunya pengecualian adalah kolom lokasi, yang didefinisikan sekali saat pembuatan laporan.

Untuk menghapus laporan, klik **Alat** di bilah sisi kiri, lalu pilih **Menu Edit**. Temukan laporan dalam pohon menu dan klik menu tiga titik di samping namanya, lalu konfirmasi penghapusan.
