Idenya
Kamu sudah menulis Python yang mencetak hasil di konsol. Itu cukup untukmu, tapi manajermu tidak akan membuka terminal. Streamlit adalah library Python yang mengubah script menjadi aplikasi web interaktif: halaman dengan judul, tabel, grafik, tombol dan slider yang bisa dibuka siapa pun di browser. Kamu tidak menulis HTML, CSS atau JavaScript sama sekali. Kamu menulis Python, dan Streamlit membangun halamannya.
Itulah sebabnya tim data menyukainya. Dashboard penjualan, alat "upload CSV-mu dan dapatkan file yang sudah dibersihkan", demo singkat sebuah model: masing-masing cukup satu sore dengan Streamlit alih-alih seminggu pengembangan web.
Kalau Flask adalah dapur restoran lengkap di mana kamu membuat setiap hidangan dari nol, Streamlit adalah paket bahan masak siap olah: kendalinya lebih sedikit, tapi dua puluh menit kemudian kamu sudah makan.
Aplikasi pertamamu
Aplikasi Streamlit hanyalah sebuah file Python. Ini contoh lengkapnya:
import streamlit as st
st.title("Toko Kita Dashboard")
st.write("Welcome back! Here's how the shop is doing today.")
import streamlit as stadalah import standarnya, dan setiap perintah dimulai denganst..st.title()menampilkan judul halaman yang besar.st.write()menampilkan teks di bawahnya.
Tekan Try it, lalu lihat tab App di bawah editor. Itulah aplikasimu.
Menjalankannya di komputermu sendiri
Simpan kodenya sebagai app.py di proyek uv, tambahkan Streamlit sekali, lalu jalankan dari terminal:
uv add streamlit
uv run streamlit run app.py
Streamlit menjalankan server web kecil dan membuka http://localhost:8501 di browser-mu. Perhatikan bahwa perintahnya streamlit run app.py (di sini lewat uv run), bukan python app.py: menjalankan file dengan Python biasa tidak melakukan apa pun yang berguna, karena server Streamlit-lah yang mengubah perintah-perintahmu menjadi halaman.
Streamlit sungguhan butuh server, yang tidak bisa berjalan di dalam website ini. Tab App memakai simulator yang menjalankan kodemu dengan aturan yang sama seperti Streamlit dan menggambar hasilnya dalam urutan yang sama. Semua yang kamu pelajari di sini berfungsi sama di versi aslinya.
st.write: pisau lipat serbaguna
st.write() melihat apa yang kamu berikan dan memilih cara yang masuk akal untuk menampilkannya. Itulah sebabnya ia biasanya menjadi perintah pertama yang dipelajari orang.
import streamlit as st
import pandas as pd
st.write("Plain text, and **Markdown** works too.")
st.write(42)
st.write({"orders": 40, "customers": 12})
sales = pd.DataFrame({
"category": ["Coffee", "Kitchen", "Stationery"],
"revenue": [1_520_000, 2_365_000, 694_000],
})
st.write(sales)
- String ditampilkan sebagai Markdown, bahasa format yang sederhana:
**tebal**,*miring*,`kode`dan# judulsemuanya berfungsi. - Angka ditampilkan sebagai teks.
- Dictionary atau list ditampilkan sebagai data yang terindentasi rapi (JSON).
- DataFrame menjadi tabel interaktif.
Kamu juga bisa memberikan beberapa hal sekaligus: st.write("Total revenue:", 4_579_000).
Python mengizinkanmu menulis 1_520_000 dengan garis bawah supaya angka besar mudah dibaca. Garis bawahnya diabaikan, jadi sama dengan 1520000.
Perintah teks dengan tujuan yang jelas
st.write() itu fleksibel, tapi saat kamu tahu persis apa yang kamu tampilkan, perintah yang spesifik membuat kodemu lebih jelas:
import streamlit as st
st.title("Toko Kita Dashboard") # judul halaman, sekali saja
st.header("Sales") # judul bagian
st.subheader("This month") # judul yang lebih kecil
st.markdown("Revenue is **up 12%** on last month.")
st.caption("Data refreshed at 08:00 WIB") # teks kecil berwarna abu-abu
Perintah-perintah ini memetakan kerangka sebuah dokumen, sama seperti <h1>, <h2> dan <p> di HTML. Pembaca kodemu bisa melihat struktur halamannya tanpa menjalankannya.
Urutan adalah segalanya
Streamlit menggambar elemen sesuai urutan kodemu menjalankannya, dari atas ke bawah. Pindahkan satu baris ke atas dan elemennya ikut naik di halaman. Tidak ada file layout terpisah yang harus diselaraskan: script-nya adalah layout-nya.
import streamlit as st
total = 4_579_000
st.title("Daily report")
st.write(f"Total revenue: Rp {total:,}")
f-string dengan {total:,} menambahkan pemisah ribuan, jadi halamannya menampilkan Total revenue: Rp 4,579,000. Kamu akan mempelajari f-string dengan benar di track Python; untuk sekarang, bacalah sebagai "taruh nilai total di sini, dengan koma".
Streamlit punya fitur bernama "magic" di mana sebuah variabel yang ditulis sendirian di satu baris akan ditampilkan. Praktis untuk eksperimen cepat tapi menyembunyikan apa yang dilakukan kodemu, dan tidak didukung di simulator ini. Tulis st.write(sales) secara eksplisit alih-alih hanya sales.
Mengapa ini penting untuk kode yang bersih
Script Streamlit terbaca dari atas ke bawah seperti halaman yang dihasilkannya, jadi pertahankan seperti itu: import dulu, lalu pemuatan data, lalu halaman sesuai urutan tampilan. Pakai perintah spesifik (st.title, st.header) alih-alih st.write untuk struktur, dan beri variabel datamu nama yang sungguhan (sales, bukan df). Dirimu di masa depan akan menggulir file ini mencari "bagian yang menggambar tabel revenue", jadi buat agar mudah ditemukan.
Rangkuman
- Streamlit mengubah script Python menjadi aplikasi web. Jalankan dengan
streamlit run app.py. import streamlit as st, lalu setiap perintah berbentukst.something().st.write()menampilkan teks (sebagai Markdown), angka, dict, list dan DataFrame.st.title,st.header,st.subheader,st.markdowndanst.captionmemberi halamanmu struktur yang jelas.- Elemen muncul sesuai urutan kodemu menjalankannya.