# Menghubungkan Streamlit

Dalam artikel ini, kita akan membahas proses membangun dashboard menggunakan Streamlit. Agar lebih ilustratif, kita akan membuat dashboard yang terhubung ke basis data analitik dan memantau status kendaraan secara real-time.

{% hint style="info" %}
Panduan ini merupakan bagian dari **IoT Query** rangkaian dokumentasi dan secara khusus membahas penghubungan Power BI ke data warehouse Anda. Jika Anda masih memutuskan alat BI mana yang akan digunakan, rujuk ke [Memilih alat BI](/docs/analytics/id/iot-query/connection-setup/selecting-bi-tools.md) ikhtisar.
{% endhint %}

## Fitur dashboard

* Menampilkan jumlah total objek
* Visualisasikan status pergerakan (bergerak/berhenti/parkir)
* Memvisualisasikan status koneksi (aktif/siaga/offline)
* Tabel terperinci dengan status terkini semua kendaraan
* Penyaringan berdasarkan jenis kendaraan, grup, status pergerakan, dan status koneksi
* Penyegaran data otomatis setiap 5 menit
* Beralih antara tema terang dan gelap

## Persyaratan teknis

* Python 3.8+
* Akses internet untuk koneksi database
* RAM minimum 2 GB

## Instalasi dan penyiapan

### 1. Klon repositori

```sh
git clone https://github.com/SquareGPS/bi-intergrations.git
```

### 2. Buat lingkungan virtual

```
# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python -m venv venv
source venv/bin/activate
```

{% hint style="danger" %}
Pastikan Anda telah menginstal Python 3.8 atau yang lebih tinggi. Anda dapat memeriksa versinya dengan perintah `python --version`.
{% endhint %}

### 3. Instal dependensi

Setelah mengaktifkan lingkungan virtual, instal semua pustaka yang diperlukan:

```sh
pip install -r requirements.txt
```

## Koneksi database

### 1. Buat file konfigurasi

Buat sebuah `.env` file di direktori root proyek:

```
DB_HOST=your_db_host
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASS=your_db_password
DB_PORT=5432
DB_SCHEMA=raw_business_data
```

#### Referensi parameter koneksi

<table><thead><tr><th width="188.81817626953125">Parameter Lakehouse</th><th>Lokasi Pengaturan Streamlit</th><th>Catatan</th></tr></thead><tbody><tr><td><strong>Host</strong></td><td><code>DB_HOST</code> di <code>.env</code> file</td><td>Alamat server database yang disediakan dalam email sambutan Anda</td></tr><tr><td><strong>Port</strong></td><td><code>DB_PORT</code> di <code>.env</code> file</td><td>Default-nya adalah 5432 untuk PostgreSQL</td></tr><tr><td><strong>Nama basis data</strong></td><td><code>DB_NAME</code> di <code>.env</code> file</td><td>Nama basis data yang ditetapkan untuk Anda</td></tr><tr><td><strong>Nama pengguna</strong></td><td><code>DB_USER</code> di <code>.env</code> file</td><td>Nama pengguna basis data Anda</td></tr><tr><td><strong>Kata sandi</strong></td><td><code>DB_PASS</code> di <code>.env</code> file</td><td>Kata sandi basis data Anda yang aman</td></tr><tr><td><strong>Mode SSL</strong></td><td>String koneksi dalam kode Python</td><td>Diatur ke <strong>require</strong> dalam string koneksi</td></tr><tr><td><strong>Skema</strong></td><td><code>DB_SCHEMA</code> di <code>.env</code> file</td><td>Tentukan skema (<strong>raw_business_data</strong> atau <strong>raw_telematics_data</strong>)</td></tr></tbody></table>

### 2. Memperoleh kredensial

Minta kredensial untuk terhubung ke basis data demonstrasi dengan menghubungi administrator.

{% hint style="info" %}
Buku Resep SQL `.env` file tidak boleh disertakan dalam version control (GitHub) untuk memastikan keamanan kredensial. File `.gitignore` sudah dikonfigurasi untuk mengecualikan file ini.
{% endhint %}

## Menjalankan dashboard

Setelah menyiapkan koneksi basis data, mulai dashboard dengan perintah:

```
streamlit run moving_status_dashboard.py
```

Setelah diluncurkan, Anda akan melihat pesan yang serupa dengan:

```
  Anda sekarang dapat melihat aplikasi Streamlit Anda di browser.

  URL Lokal: http://localhost:8501
  URL Jaringan: http://192.168.1.5:8501
```

Buka URL yang ditentukan di browser Anda. Dashboard akan tersedia di <http://localhost:8501> (atau di URL jaringan jika Anda ingin membukanya dari perangkat lain di jaringan).

## Mengembangkan komponen khusus

Jika Anda ingin memodifikasi dashboard atau membuat komponen baru:

### 1. Memodifikasi dashboard yang sudah ada

Streamlit secara otomatis memuat ulang aplikasi ketika Anda mengubah kode sumber. Cukup edit file `moving_status_dashboard.py` dan simpan perubahan Anda.

### 2. Menambahkan visualisasi baru

Untuk menambahkan bagan dan diagram baru, gunakan pustaka:

* Plotly: `import plotly.express as px` atau `import plotly.graph_objects as go`
* Visualisasi bawaan Streamlit: `st.bar_chart()`, `st.line_chart()`, dll.

Contoh menambahkan bagan baru:

```python
import plotly.express as px

# Ambil data dari basis data
df = ... # kueri basis data Anda

# Buat bagan
fig = px.pie(df, values='count', names='status', title='Vehicle Statuses')
st.plotly_chart(fig, use_container_width=True)
```

### 3. Debugging

Untuk debugging, gunakan

```python
# Keluaran ke antarmuka Streamlit
st.write(f"Debug: {your_variable}")

# Keluaran ke konsol
print(f"Console debug: {your_variable}")

# Keluaran data yang diperluas
st.json(data_dict)
st.dataframe(pandas_dataframe)
```

## Pemecahan masalah

### Masalah koneksi database

* **Kesalahan koneksi:** Periksa kebenaran kredensial dalam `.env` file dan ketersediaan basis data
* **Kesalahan SSL:** Pastikan IP Anda ada dalam allowlist untuk akses basis data
* **Kesalahan timeout:** Periksa kestabilan koneksi internet dan pengaturan firewall Anda

### Masalah dependensi

**Kesalahan saat menginstal psycopg2-binary:**

* Windows: `pip install pipwin && pipwin install psycopg2-binary`
* Linux: `sudo apt install python3-dev libpq-dev`
* macOS: `brew install postgresql`

**Konflik dependensi:**

* Buat lingkungan virtual baru
* Instal dependensi satu per satu, mulai dengan streamlit

### Masalah lainnya

Berikut beberapa trik yang dapat membantu Anda memperbaiki masalah umum:

1. Perbarui dependensi: `pip install -r requirements.txt --upgrade`
2. Periksa kompatibilitas Python: `python --version` (harus 3.8+)
3. Saat mengubah kode, sertakan pesan debugging:

```
st.write(f"Debug: {your_variable}")
```

4. Kesalahan cache Streamlit: hentikan aplikasi dan jalankan dengan flag `--clear_cache` :

```
streamlit run moving_status_dashboard.py --clear_cache
```

## Langkah berikutnya

Setelah berhasil menghubungkan Power BI ke instance Private Telematics Lakehouse Anda, kami menyarankan Anda untuk:

* Jelajahi skema data yang tersedia dengan meninjau bagian [Ikhtisar schema](/docs/analytics/id/iot-query/schema-overview.md) untuk lebih memahami struktur dan relasi data.
* Mulailah dengan kueri sederhana yang berfokus pada entitas bisnis tertentu sebelum membangun dashboard yang kompleks - periksa [contoh kueri](/docs/analytics/id/example-queries.md) sebagai referensi.

### **Dukungan**

Untuk pertanyaan teknis atau permintaan akses ke database demonstrasi, silakan hubungi: <support@squaregps.com>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://navixy.com/docs/analytics/id/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
