Tutorial Lengkap Streamlit Advanced: Build Production-Ready ML Apps

# Tutorial Lengkap Streamlit Advanced: Build Production-Ready ML Apps Streamlit adalah library Python yang powerful untuk membangun aplikasi web interaktif untuk machine learning dan data science. Tu...

By Ruby Abdullah · · tutorial
StreamlitML AppDashboardPythonWeb DevelopmentMachine Learning

Tutorial Lengkap Streamlit Advanced: Build Production-Ready ML Apps

Streamlit adalah library Python yang powerful untuk membangun aplikasi web interaktif untuk machine learning dan data science. Tutorial advanced ini mencakup production patterns, optimasi performa, dan fitur enterprise.

Mengapa Streamlit untuk Production?

Keunggulan Streamlit:
  • Rapid development: Build apps dalam hitungan jam
  • Pure Python: Tidak perlu frontend knowledge
  • Interactive widgets: Rich UI components
  • Easy deployment: Streamlit Cloud, Docker, Kubernetes
  • Active ecosystem: Community components dan integrasi

Use Cases:
  • ML model demos dan dashboards
  • Data exploration tools
  • Internal analytics apps
  • Customer-facing applications
  • Prototyping dan MVPs

Instalasi

pip install streamlit

Dengan fitur tambahan

pip install streamlit-extras

pip install streamlit-aggrid

pip install plotly

Verify installation

streamlit --version

App Architecture

1. Multi-Page Apps

# pages/1Home.py

import streamlit as st

st.setpageconfig(

pagetitle="ML Dashboard",

pageicon="🤖",

layout="wide",

)

st.title("Welcome to ML Dashboard")

st.write("Navigate menggunakan sidebar")

# pages/2DataExplorer.py

import streamlit as st

import pandas as pd

st.title("Data Explorer")

uploadedfile = st.fileuploader("Upload CSV", type="csv")

if uploadedfile:

df = pd.readcsv(uploadedfile)

st.dataframe(df)

# pages/3ModelInference.py

import streamlit as st

st.title("Model Inference")

Model inference code disini

2. Session State Management

import streamlit as st

Initialize session state

if 'counter' not in st.sessionstate:

st.sessionstate.counter = 0

if 'userdata' not in st.sessionstate:

st.sessionstate.userdata = {}

Update session state

def increment():

st.sessionstate.counter += 1

st.button("Increment", onclick=increment)

st.write(f"Counter: {st.sessionstate.counter}")

Store user data

name = st.textinput("Name", key="nameinput")

if name:

st.sessionstate.userdata['name'] = name

Access across pages

st.write(st.sessionstate.userdata)

3. Callbacks dan Events

import streamlit as st

Callback function

def onsubmit():

st.sessionstate.submitted = True

st.sessionstate.result = f"Hello, {st.sessionstate.namefield}!"

Form dengan callback

with st.form("myform"):

st.textinput("Name", key="namefield")

submitted = st.formsubmitbutton("Submit", onclick=onsubmit)

if st.sessionstate.get('submitted'):

st.success(st.sessionstate.result)

Multiple callbacks

def clearform():

st.sessionstate.namefield = ""

st.sessionstate.submitted = False

st.button("Clear", onclick=clearform)

Caching dan Performance

1. Cache Data

import streamlit as st

import pandas as pd

@st.cachedata(ttl=3600) # Cache selama 1 jam

def loaddata(url):

"""Load dan cache data"""

return pd.readcsv(url)

@st.cachedata(showspinner="Loading data...")

def expensivecomputation(df):

"""Expensive computation dengan spinner"""

# Simulate long computation

import time

time.sleep(5)

return df.describe()

Gunakan cached functions

df = loaddata("https://example.com/data.csv")

stats = expensivecomputation(df)

2. Cache Resources

import streamlit as st

from transformers import pipeline

import joblib

@st.cacheresource

def loadmodel():

"""Cache ML model (singleton)"""

return joblib.load("model.joblib")

@st.cacheresource

Artikel Terkait

Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

Tutorial SHAP: Explainable AI dan Interpretasi Model

SHAP - Panduan Praktis Explainable AI dan Interpretabilitas Model Model machine learning makin sering dipakai untuk meng...

Tutorial PyOD: Deteksi Anomali dan Outlier dengan Python

Deteksi Anomali di Python dengan PyOD: Panduan Praktis Sebagian besar dataset di dunia nyata mengandung sebagian kecil d...

Tutorial spaCy: NLP Berskala Industri dengan Python

spaCy: NLP Kelas Industri di Python spaCy adalah pustaka open-source untuk pemrosesan bahasa alami (NLP) yang dirancang ...