Back Kembali ke Daftar 📅 19 Feb 2025

Antarmuka Streamlit

Artikel terbaru dari MahirGroups

 Streamlit adalah framework Python yang memungkinkan pengembang membuat antarmuka pengguna (UI) interaktif dan responsif dengan mudah untuk aplikasi data. Berikut adalah beberapa fitur utama dalam tampilan Streamlit:

1. Komponen Input

  • Teks: st.text_input(), st.text_area()
  • Pilihan:
    • Dropdown: st.selectbox()
    • Multi-select: st.multiselect()
  • Tombol: st.button()
  • Slider:
    • Nilai numerik: st.slider()
    • Rentang: st.slider() (dengan parameter range)
  • Checkbox: st.checkbox()
  • Radio Button: st.radio()
  • Tanggal/Waktu:
    • Tanggal: st.date_input()
    • Waktu: st.time_input()
  • File Upload: st.file_uploader()
  • Password Input: st.text_input(type="password")
2. Komponen Output

  • Teks dan Markdown:
    • Teks: st.write(), st.text()
    • Markdown: st.markdown()
  • Header/Subheader: st.header(), st.subheader()
  • Keterangan (Caption): st.caption()
  • Kode:
    • Menampilkan kode: st.code()
    • Highlighter Python: st.syntax_highlight()
  • Notifikasi:
    • Success, error, warning: st.success(), st.error(), st.warning()
    • Informasi: st.info()
  • Progress bar dan Spinner:
    • st.progress()
    • st.spinner()
3. Visualisasi Data

  • Grafik interaktif:
    • Matplotlib: st.pyplot()
    • Seaborn: st.pyplot()
    • Plotly: st.plotly_chart()
    • Altair: st.altair_chart()
  • Tabel:
    • DataFrame: st.dataframe()
    • Statis: st.table()
4. Layout

  • Sidebar: Elemen interaktif dapat dipindahkan ke sidebar dengan st.sidebar.<komponen>().
  • Kolom: Membagi layout ke kolom dengan st.columns().
  • Tab: Membuat tab dengan st.tabs().
  • Expandable: Elemen yang dapat diperluas atau disembunyikan dengan st.expander().
5. Interaktivitas

  • State Management: Melacak variabel melalui st.session_state.
  • Callbacks: Menjalankan fungsi khusus saat suatu elemen diubah.
6. Multimedia

  • Gambar: st.image()
  • Audio: st.audio()
  • Video: st.video()
7. Tema Kustomisasi

  • Tema bawaan: Mode terang dan gelap.
  • Kustomisasi tema: Bisa diatur melalui file konfigurasi config.toml.
Dengan fitur-fitur ini, Streamlit sangat cocok untuk membuat dashboard data atau aplikasi analitik interaktif. Anda dapat mengintegrasikannya dengan berbagai library Python seperti Pandas, NumPy, dan scikit-learn untuk mendukung analisis data dan machine learning. 

contoh code streamlit

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# Judul aplikasi
st.title("Contoh Penggunaan Fungsi Streamlit")

# Sidebar
st.sidebar.header("Input Parameter")
name = st.sidebar.text_input("Masukkan Nama Anda", "Pengguna")
age = st.sidebar.slider("Usia Anda", 1, 100, 25)
hobby = st.sidebar.multiselect(
    "Hobi Anda",
    ["Membaca", "Bersepeda", "Memasak", "Berenang", "Lainnya"],
    default=["Membaca"]
)

# Header dan Subheader
st.header("Halo, Selamat Datang!")
st.subheader(f"Nama Anda: {name}")
st.write(f"Usia Anda: {age} tahun")
st.write(f"Hobi Anda: {', '.join(hobby)}")

# Expander untuk informasi tambahan
with st.expander("Klik untuk lihat info tambahan"):
    st.info("Aplikasi ini dibuat untuk mendemonstrasikan fungsi-fungsi Streamlit.")

# Input file
uploaded_file = st.file_uploader("Unggah file CSV", type=["csv"])
if uploaded_file is not None:
    data = pd.read_csv(uploaded_file)
    st.write("Data Anda:")
    st.dataframe(data)

# Menampilkan data statis
if uploaded_file is not None:
    st.subheader("Statistik Deskriptif")
    st.table(data.describe())

# Grafik sederhana
st.header("Contoh Grafik")
x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title("Grafik Sine Wave")
ax.set_xlabel("X-axis")
ax.set_ylabel("Y-axis")
st.pyplot(fig)

# Checkbox untuk menunjukkan/hide elemen
if st.checkbox("Tampilkan teks tambahan"):
    st.write("Streamlit sangat mudah digunakan!")

# Radio button untuk memilih tampilan
chart_option = st.radio(
    "Pilih jenis visualisasi:",
    ["Bar Chart", "Line Chart"]
)

# Random data
data = pd.DataFrame(
    np.random.randn(10, 3),
    columns=["A", "B", "C"]
)

if chart_option == "Bar Chart":
    st.bar_chart(data)
else:
    st.line_chart(data)

# Progress Bar
st.header("Progress Bar")
import time
progress_bar = st.progress(0)
for i in range(101):
    time.sleep(0.01)
    progress_bar.progress(i)

st.success("Selesai!")

# Footer
st.caption("Dibuat menggunakan Streamlit.")


Bagikan artikel ini: