Cara Bangun Dashboard di Jupyter Pakai Solara

ID • 1 year ago • 8 min read • 2817 views
Cara Bangun Dashboard di Jupyter Pakai Solara

Cara Bangun Dashboard di Jupyter Pakai Solara

id8 min read • 2817 views

Cara Bangun Dashboard di Jupyter Pakai Solara

Halo, Sobat Data!

Selamat datang di bagian pertama dari seri artikel yang bakal ngajarin lo cara bikin dashboard di Jupyter, trus deploy jadi web app yang stand-alone. Yang keren, lo nggak perlu repot-repot belajar framework baru buat nge-deploy ini. Semuanya full Python, nggak ada JavaScript, nggak ada CSS, cuma fokus ke kode Python aja. Sounds good, kan?

 

Kenapa Jupyter?

Kita semua tahu, Jupyter Notebook tuh senjata wajib buat para data scientist, analis, atau siapa pun yang suka main-main sama data. Kombinasi kode, visualisasi, dan narasi dalam satu dokumen bikin Jupyter jadi tool yang serbaguna. Tapi, masalahnya, gimana kalau insight yang kita dapat dari data ini pengennya disampaikan ke orang-orang non-teknis? Nggak mungkin dong mereka harus lihat kode Python yang ribet? Di sinilah dashboard main peran.

Kenalan Dulu Sama Solara

Nah, di artikel ini, kita bakal bahas framework bernama Solara. Framework ini berbasis di atas ipywidgets (itu lho, library buat bikin widget interaktif di Jupyter). Selain gampang dipakai, Solara juga open-source. Jadi, selain lo bisa pake gratis, lo juga bisa ngoprek kalau mau.

Bukan cuma itu, Solara juga fleksibel banget. Lo bisa pake di Jupyter Notebook, Jupyter Lab, atau bahkan deploy aplikasinya pake Solara server. Keunggulan ini bikin Solara jadi solusi ciamik buat bikin dashboard atau aplikasi data interaktif.

Baca Juga

 

Persiapan Awal: Apa Aja yang Perlu Lo Siapin?

Sebelum kita mulai buat dashboard Jupyter di solara, pastikan lo udah instal beberapa library berikut:

pip install pandas matplotlib folium solara

Kalau lo kerja di dalam notebook, tinggal pakai magic command ini:

  • %pip install pandas matplotlib folium solara

Udah diinstal? Sip. Sekarang, kita lanjut ke langkah selanjutnya.

 

Langkah 1: Siapin Data yang Mau Dipakai

Di contoh ini, kita bakal pake dataset kejahatan dari San Francisco (SF Crime Dataset). Dataset ini berisi informasi tentang jenis kejahatan dan lokasi di mana kejahatan itu terjadi.

Lo bisa download file CSV-nya manual atau biarin kode di bawah ini yang ngatur:

import pandas as pd
from pathlib import Path
import solara


ROOT = Path(solara.__file__).parent / "website" / "pages" / "docs" / "content" / "04-tutorial"
path = ROOT / Path("SF_crime_sample.csv.gz")
url = "https://raw.githubusercontent.com/widgetti/solara/master/solara/website/pages/docs/content/04-tutorial/SF_crime_sample.csv"


if path.exists():
    df_crime = pd.read_csv(path)
else:
    df_crime = pd.read_csv(url)


df_crime

Hasilnya, dataset kita udah siap buat diolah. Tapi tunggu, kita perlu rapiin dulu kolom Category dan PdDistrict biar formatnya lebih enak dibaca:

df_crime["Category"] = df_crime["Category"].str.title()
df_crime["PdDistrict"] = df_crime["PdDistrict"].str.title()

Nah, data kita sekarang lebih kece dengan format Title Case.

 

Langkah 2: Filter Data Sesuai Kebutuhan

Gue punya analogi buat lo: Bayangin data ini kayak sepiring nasi goreng. Nggak semua bumbu di dalamnya sesuai selera lo, kan? Jadi kita perlu "filter" dulu.

Kita bikin fungsi buat filter data berdasarkan distrik dan kategori kejahatan tertentu:

def crime_filter(df, district_values, category_values):
    df_dist = df.loc[df["PdDistrict"].isin(district_values)]
    df_category = df_dist.loc[df_dist["Category"].isin(category_values)]
    return df_category

Sekarang, coba kita filter data buat kategori kejahatan Vandalism, Assault, dan Robbery di distrik Bayview dan Northern:

dff_crime = crime_filter(df_crime, ["Bayview", "Northern"], ["Vandalism", "Assault", "Robbery"])

 

Langkah 3: Bikin Visualisasi Interaktif

Visualisasi tuh ibarat makeup buat data lo, bro. Tanpa visualisasi, data lo bakal datar kayak jalan tol. Yuk, kita bikin dua bar chart:

import matplotlib.pyplot as plt


def crime_charts(df):
    cat_unique = df["Category"].value_counts().reset_index()
    dist_unique = df["PdDistrict"].value_counts().reset_index()


    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(20, 10))
    ax1.bar(cat_unique["Category"], cat_unique["count"])
    ax1.set_title("Jumlah Kejahatan Berdasarkan Kategori")
    ax2.bar(dist_unique["PdDistrict"], dist_unique["count"])
    ax2.set_title("Jumlah Kejahatan di Distrik Terpilih")
    plt.show()


crime_charts(dff_crime)

Cakep, kan? Dua grafik ini bakal ngasih lo insight tentang kejahatan di area tertentu.

 

Langkah 4: Tambahin Peta Interaktif

Lo tahu nggak? Nggak ada yang lebih keren daripada peta interaktif buat presentasi data lokasi. Kita bakal pake Folium buat ini:

import folium
import folium.plugins


def crime_map(df):
    latitude = 37.77
    longitude = -122.42
    sanfran_map = folium.Map(location=[latitude, longitude], zoom_start=12)
    incidents = folium.plugins.MarkerCluster().add_to(sanfran_map)


    for lat, lng, label in zip(df.Y, df.X, df.Category):
        folium.Marker(location=[lat, lng], popup=label).add_to(incidents)


    display(sanfran_map)


crime_map(dff_crime.iloc[0:50, :])

Sekarang lo punya peta interaktif yang nunjukin lokasi kejahatan. Seru, kan?

 

Langkah 5: Bikin UI Interaktif Pakai Solara

Lo pasti udah nggak sabar bikin semuanya jadi interaktif. Yuk, kita mulai dengan bikin variabel reaktif:

import solara


districts = solara.reactive(["Bayview", "Northern"])
categories = solara.reactive(["Vandalism", "Assault", "Robbery"])
limit = solara.reactive(50)

Variabel reaktif ini bakal ngasih kita kemampuan buat nge-update UI secara otomatis kalau ada perubahan. Sekarang, kita gabungin semuanya dalam satu komponen:

@solara.component
def View():
    dff = crime_filter(df_crime, districts.value, categories.value)
    row_count = len(dff)
    if row_count > limit.value:
        solara.Warning(f"Menampilkan {limit.value} dari {row_count} kejahatan")
    crime_map(dff.iloc[: limit.value])
    if row_count > 0:
        crime_charts(dff)
    else:
        solara.Warning("Data terlalu difilter, nggak ada yang bisa ditampilkan")

 

Langkah 6: Tambahin Kontrol UI

Lo nggak perlu ribet-ribet ganti variabel lewat kode. Solara punya elemen UI yang super simpel:

@solara.component
def Controls():
    solara.SelectMultiple("District", all_values=[str(k) for k in df_crime["PdDistrict"].unique().tolist()], values=districts)
    solara.SelectMultiple("Category", all_values=[str(k) for k in df_crime["Category"].unique().tolist()], values=categories)
    solara.SliderInt("Jumlah Maksimal Data", value=limit, min=1, max=100)

 

Langkah Terakhir: Gabungkan Semua

@solara.component
def Page():
    with solara.Sidebar():
        Controls()
    View()


Page()

 

Kesimpulan

Selamat! Lo baru aja berhasil bikin dashboard interaktif di Jupyter Notebook pake Solara. Lo nggak cuma bikin visualisasi data yang keren, tapi juga nambahin elemen interaktif yang bikin dashboard lo jadi lebih hidup dan dinamis. Prosesnya simpel, fun, dan full Python.

Di artikel berikutnya, kita bakal ngebahas langkah-langkah buat nge-deploy dashboard ini jadi web app stand-alone, yang bisa diakses siapa aja tanpa perlu repot ngubah kodenya. Lo bakal belajar cara bikin aplikasi yang nggak cuma berguna, tapi juga keliatan profesional.

Tetap semangat, Sobat Data! Jangan lupa eksperimen dengan fitur-fitur lain dari Solara dan nikmati setiap proses belajarnya. Ingat, dunia data science itu luas, dan lo udah bikin langkah besar dengan bikin dashboard interaktif pertama lo.

Sampai jumpa di artikel selanjutnya! Jangan lupa siapin kopi buat eksplor lebih jauh.

Series: Python
  1. Pengertian dan Kegunaan Bahasa Pemrograman Python
  2. Phyton 1 : Tutorial Pengenalan Dasar
  3. Phyton 2 : Macam Penulisan Sintaks
  4. Phyton 3 : Konsep Variabel dan Data
  5. Phyton 4 - Cara Mengambil Input dan Output
  6. Phyton 5 : Jenis-jenis Operator
  7. Phyton 6 - Percabangan
  8. Phyton 7 - Perulangan
  9. Phyton 8 - Struktur Data List
  10. 4 Variasi Fungsi Print () Pada Phyton
  11. Tutorial Python: Struktur Data Dictionary
  12. Phyton 9 - Struktur Data Tuple
  13. Phyton 9 : Struktur Data Tuple Part 2
  14. 5 Variasi Coding Python dengan Fungsi Concatenate, Yuk, Coba
  15. PyScript: Masa Depan Python di Browser ?
  16. 7 Hal Dasar yang Harus Diketahui Tentang Dictionary pada Python
  17. Memahami Fungsi dan Prosedur pada Python
  18. 6 Proyek Coding Python untuk Meningkatkan Portofolio Anda
  19. Tutorial Python: Membaca dan Menulis File dengan Lebih Mendalam
  20. Cara Baca Dan Parse File CSV di Python
  21. 7 Teknik Membuat Dictionary di Python dengan Data dari Berbagai Sumber
  22. 5 Kesalahan Umum dalam Menggunakan Dictionary di Python dan Cara Menghindarinya
  23. Belajar Python: Proses Data JSON dari File dan API Web
  24. Belajar Python: Buat Fungsi Dengan Lambda Expression
  25. Apa Maksud dari *args dan kwargs pada Python?
  26. Tutorial Membuat 3 Jenis Kalkulator Dengan Python
  27. Panduan Lengkap: Cara Menghapus Item di List Python Tanpa Drama
  28. Cara Bangun Dashboard di Jupyter Pakai Solara
  29. 6 Perintah pip yang Harus Diketahui Setiap Developer Python
  30. Panduan Lengkap Menggunakan pip: Manajer Paket Python yang Wajib Dikuasai
  31. Rekomendasi 6 Framework Terbaik untuk Python: Dari Santai Sampai Superhero!
  32. Benar Nggak Sih Python Ramah untuk Programmer Pemula?
  33. Optimasi Performa Perbandingan Dokumen di Python: Ketika CPU Lo Kerja Rodi!
  34. Mengupas Tuntas Cara Mengiterasi Dictionary di Python: Panduan Lengkap yang Gak Bikin Pusing!
  35. 5 Proyek AI Seru yang Bisa Lo Bangun Weekend Ini dengan Python
  36. Rust vs Python: Duel Sengit Bahasa Pemrograman! Mana yang Cocok Buat Lo?
  37. 6 Trik Python Terbaru 2025 yang Wajib Dicoba Programmer
  38. Tutorial Lengkap Membuat News Aggregator Menggunakan Python
  39. Stop Nulis Function Python Kayak Gini, Bro!
  40. 7 Python Decorators yang Bikin Kode Lo Makin Canggih
  41. Trik Python debugging yang wajib lo coba.
  42. Membangun List di Python: Filosofi, Teknik, dan Tips Anti-Kudet
  43. DERET FAKTORIAL: SI "BAHAN VIRAL" MATEMATIKA YANG BIKIN KODE LO NAIK LEVEL!
  44. Project Python Seru: Bikin Script Otomatisasi Pengorganisir File (Biar Folder Download Nggak Kayak Gudang)
  45. Automating Email Sending Via Phyton – Biar Jempol Lo Pensiun Dini
  46. Project 2: Automating Web Scraping for Data Collection dengan Python
  47. Automatisasi Tugas GUI dengan PyAutoGUI
  48. Cara Lama vs Cara Kekinian: Belajar dataclass Python
  49. Automatisasi Laporan PDF dengan Python
  50. Membongkar Rahasia field() di Python: Kendali Penuh atas Dataclass
  51. Praktik Lanjutan Menulis Kode Python yang Bersih dan Ramah Pemula
  52. Python Function Annotations: Fitur Keren yang Sering Diremehkan, Padahal Bikin Kamu Terlihat Programmer Cerdas
  53. Python Keyword Arguments: Panduan Bad Boy Buat Programmer Biar Nggak Salah Urus Function
  54. Belajar Fungsi Tanpa Parameter Python dari Nol: Panduan Lengkap Buat Pemula Sampai Nyantol di Kepala
  55. Tutorial Coding: Keluar dari Plateau of False Competence di Python
  56. Plotting Graph Menggunakan Seaborn di Python
  57. Mutable vs Immutable Objects di Python: Konsep Dasar yang Sering Diremehkan
  58. Python time.sleep() – Cara Mudah Memberi Jeda pada Program Kamu
  59. Mengapa Saya Berhenti Menggunakan Class di Python (Dan Apa yang Saya Gunakan Sebagai Gantinya)
  60. Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program
  61. Mengenal Python math Module: Panduan Lengkap untuk Operasi Matematika di Python
Published on March 12, 2025
Last updated on June 03, 2026

If you like this post and want to support us, you can support us via buymeacoffee or trakteer.