> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/analytics/id/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md).

# Menghubungkan Streamlit

Buat aplikasi Streamlit kustom yang terhubung ke IoT Query melalui PostgreSQL. Kueri data pelacak dalam Python dan tampilkan status armada langsung di dasbor kustom

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

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

## Fitur dasbor

* Menampilkan jumlah total objek
* Visualisasikan status Gerakan (Bergerak/Berhenti/Parkir)
* Memvisualisasikan status koneksi (aktif/menganggur/luring)
* Tabel terperinci dengan status terkini semua kendaraan
* Penyaringan berdasarkan jenis kendaraan, kelompok, status gerakan, dan status koneksi
* Penyegaran data otomatis setiap 5 menit
* Beralih antara tema terang dan gelap

## Persyaratan teknis

* Python 3.8+
* Akses internet untuk koneksi basis data
* Minimal 2 GB RAM

## Instalasi dan penyiapan

### 1. Klon repositori

```sh
git clone https://github.com/Navixy/bi-integrations.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 baru. 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 basis data

### 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> dalam <code>.env</code> file</td><td>Alamat server basis data yang diberikan dalam email sambutan Anda</td></tr><tr><td><strong>Port</strong></td><td><code>DB_PORT</code> dalam <code>.env</code> file</td><td>Nilai default adalah 5432 untuk PostgreSQL</td></tr><tr><td><strong>Nama basis data</strong></td><td><code>DB_NAME</code> dalam <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> dalam <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> dalam <code>.env</code> file</td><td>Kata sandi basis data aman Anda</td></tr><tr><td><strong>Mode SSL</strong></td><td>String koneksi dalam kode Python</td><td>Atur ke <strong>require</strong> di string koneksi</td></tr><tr><td><strong>Skema</strong></td><td><code>DB_SCHEMA</code> dalam <code>.env</code> file</td><td>Tentukan skema (<strong>raw_business_data</strong> atau <strong>raw_telematics_data</strong>)</td></tr></tbody></table>

### 2. Mendapatkan kredensial

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

{% hint style="info" %}
Ini `.env` Berkas tidak boleh disertakan dalam kontrol versi (GitHub) untuk memastikan keamanan kredensial. Itu `.gitignore` Berkas sudah dikonfigurasi untuk mengecualikan berkas ini.
{% endhint %}

## Menjalankan dasbor

Setelah menyiapkan koneksi basis data, jalankan dasbor 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 peramban Anda.

  URL lokal: http://localhost:8501
  URL jaringan: http://192.168.1.5:8501
```

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

## Mengembangkan komponen kustom

Jika Anda ingin mengubah dasbor atau membuat komponen baru:

### 1. Mengubah dasbor yang ada

Streamlit secara otomatis memuat ulang aplikasi saat Anda mengubah kode sumber. Cukup edit `Bergerak_status_dashboard.py` Berkas 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='Status kendaraan')
st.plotly_chart(fig, use_container_width=True)
```

### 3. Penelusuran galat

Untuk penelusuran galat, gunakan

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

# Keluarkan ke konsol
print(f"Galat konsol: {your_variable}")

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

## Pemecahan masalah

### Masalah koneksi basis data

* **Galat koneksi:** Periksa kebenaran kredensial dalam `.env` berkas dan ketersediaan basis data
* **Galat SSL:** Pastikan IP Anda ada dalam daftar izin untuk akses basis data
* **Galat batas waktu:** Periksa kestabilan koneksi internet dan pengaturan firewall Anda

### Masalah dependensi

**Galat 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 kiat yang dapat membantu Anda memperbaiki masalah umum:

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

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

4. Galat cache Streamlit: hentikan aplikasi dan jalankan dengan `--clear_cache` penanda:

```
streamlit run Bergerak_status_dashboard.py --clear_cache
```

## Langkah berikutnya

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

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

### **Dukungan**

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
