← Back to list

Tugas Pemograman dan Data Raya Lanjutan

Dosen Pengampu : Sabo Hermawan, S.Kom, M.Si

Sitiarterina · 2026-05-26 01:03 · 0 claps · 5.7 min read
#data #data-raya #pemograman #streamlit #git
Open on Medium ↗
Wiki topics: 🔓 · Open Source

Tugas Pemograman dan Data Raya Lanjutan

Dosen Pengampu : Sabo Hermawan, S.Kom, M.Si

Nama : Siti Arterina Annisa Hasanah Bisnis Digital Universitas Negeri Jakarta

A. Menyelami Framework Streamlit: Mengubah Script Data Menjadi Dashboard Interaktif

Jika di bab-bab sebelumnya saya belajar cara mengolah dan mengambil data, di Bab 8 ini saya mulai memahami bagaimana menyajikan data tersebut agar bisa dinikmati oleh orang lain. Selama ini, tantangan terbesar seorang analis data adalah ketika harus membagikan hasil temuannya ke pihak manajemen atau klien. Memperlihatkan baris kode Python yang rumit tentu bukan pilihan yang bijak. Di sinilah saya menyadari betapa pentingnya peran Streamlit.

Streamlit adalah framework open-source berbasis Python yang dirancang khusus untuk membangun aplikasi web interaktif dengan fokus pada kemudahan penggunaan. Kehadiran library ini mengubah paradigma saya tentang pengembangan web. Dulu, untuk membuat sebuah dashboard interaktif yang cantik, kita harus pusing memikirkan HTML, CSS, atau JavaScript. Namun dengan Streamlit, saya bisa menyulap script Python murni menjadi aplikasi web yang siap pakai hanya dalam hitungan menit. Karakteristiknya yang gratis, berbasis Python murni, serta memiliki fitur hot-reload otomatis membuat proses pembuatan prototipe menjadi sangat efisien.

Saya juga belajar mengenai arsitektur dan logika kerja yang berjalan di belakang layar Streamlit. Framework ini mengusung konsep Reactive Programming. Konsep ini memiliki cara kerja yang unik: setiap kali pengguna berinteraksi dengan komponen di web (seperti menggeser slider atau mencentang opsi), Streamlit akan membaca perubahan tersebut dan mengulang eksekusi seluruh kode dari atas ke bawah. Tujuannya adalah agar data yang ditampilkan selalu paling baru (up-to-date). Agar aplikasi tidak lemot saat menangani data besar akibat proses running yang berulang-ulang, saya diperkenalkan dengan fitur Caching (@st.cache). Fitur ini bertindak sebagai memori jangka pendek yang menyimpan hasil perhitungan lama, sehingga komputer tidak perlu menghitung ulang hal yang sama dari nol.

B. Komponen Interaktif dan Visualisasi Data: Jembatan Komunikasi Pengguna

Aplikasi yang interaktif tentu membutuhkan komponen yang mempermudah pengguna untuk mengulik data. Di materi ini, saya mempelajari berbagai elemen kontrol yang disebut sebagai Widgets. Beberapa yang paling sering digunakan antara lain:

  • Slider: Sangat nyaman digunakan untuk menyaring data yang sifatnya rentang angka, seperti memfilter data berdasarkan tahun atau batasan harga.
  • Dropdown (Selectbox): Pilihan cerdas untuk menghemat ruang tampilan ketika kita memiliki daftar opsi yang sangat panjang.
  • Checkbox dan Radio Button: Digunakan untuk pilihan biner (ya/tidak) atau ketika pengguna hanya boleh memilih satu dari beberapa opsi yang tersedia.

Selain widget penangkap input, poin krusial dari sebuah dashboard bisnis adalah kemampuannya dalam menyajikan grafik. Saya sangat terkesan melihat bagaimana Streamlit bisa terintegrasi secara mulus dengan berbagai library visualisasi populer di Python, mulai dari Matplotlib, Seaborn, Plotly, Bokeh, hingga PyDeck untuk visualisasi 3D.

Grafik-grafik ini bersifat reaktif. Artinya, ketika pengguna mengubah input melalui widget, grafik akan langsung menyesuaikan tampilannya secara real-time. Beberapa jenis visualisasi data yang sering saya gunakan di sini meliputi:

  • Line Chart untuk melihat pergerakan tren dari waktu ke waktu.
  • Bar Chart untuk membandingkan performa antar kategori.
  • Pie Chart untuk melihat proporsi atau kontribusi nilai.
  • Scatter Plot untuk melihat sebaran dan hubungan antar variabel.

C. Mengatur Struktur Aplikasi: Layout, Navigasi, dan Batasan Sistem

Seiring dengan bertambahnya fitur, tata letak aplikasi menjadi hal yang tidak boleh diabaikan agar pengguna tidak kebingungan. Saya belajar bagaimana mengatur komponen web menggunakan sistem layout bawaan Streamlit:

  • Sidebar: Panel di sisi samping yang sangat ideal untuk menaruh tombol filter global atau menu utama.
  • Columns & Tabs: Alat bantu untuk membagi layar secara horizontal atau menumpuk konten ke dalam tab berbeda demi menghemat ruang vertikal.
  • Expander & Container: Berguna untuk mengelompokkan elemen secara rapi atau menyembunyikan informasi detail yang hanya muncul ketika diklik.

Ketika proyek dashboard bisnis ini semakin kompleks, saya tidak bisa lagi menumpuk semua kode dalam satu file tunggal. Di sinilah konsep Multi-Page Apps menjadi penyelamat. Hanya dengan membuat folder bernama pages/, Streamlit secara otomatis akan mengenali file di dalamnya sebagai halaman baru dan membuatkan menu navigasinya di sidebar tanpa perlu setup yang rumit.

Namun, di balik segala kemudahannya, saya juga harus realistis mengenai keterbatasan Streamlit. Desain antarmuka (UI) framework ini cenderung kaku (opinionated), yang berarti kita tidak bisa bebas mengubah desain visual sesuka hati seperti saat menggunakan CSS murni. Selain itu, performanya bisa menurun drastis jika dipaksa mengolah dataset berukuran raksasa tanpa manajemen cache yang ketat, serta belum tersedianya sistem autentikasi pengguna bawaan yang matang.

D. Manajemen Versi Kode dengan Git & GitHub: Fondasi Kolaborasi Modern

Melangkah ke Bab 9, fokus saya beralih dari sekadar menulis kode ke bagaimana mengelola dan meluncurkan proyek tersebut ke dunia nyata. Tahap awal yang wajib dikuasai adalah manajemen versi kode menggunakan Git dan GitHub. Saya menyadari bahwa dalam industri profesional, kita tidak pernah bekerja sendirian. Tanpa sistem manajemen yang baik, kode antar anggota tim akan rawan bertabrakan.

Git bertindak sebagai sistem lokal yang melacak dan mencatat setiap perubahan pada file proyek kita (Version Control System). Jika suatu hari kode saya rusak atau mengalami error parah, Git memungkinkan saya untuk melakukan rollback atau kembali ke versi stabil sebelumnya dengan aman. Sementara itu, GitHub adalah platform berbasis cloud yang menjadi rumah bagi repositori Git kita, tempat di mana seluruh tim bisa saling berkolaborasi dan meninjau kode.

Ada tiga konsep keramat di Git yang kini menjadi makanan sehari-hari saya:

  1. Commit: Proses merekam perubahan kode pada momen tertentu, mirip seperti membuat save point pada game, yang wajib disertai dengan pesan deskriptif.
  2. Branch: Membuat jalur kerja cabang yang terpisah dari jalur utama (main branch). Ini sangat berguna saat saya ingin bereksperimen membuat fitur baru tanpa takut merusak kode aplikasi yang sudah berjalan.
  3. Merge: Menyatukan kembali kode dari branch eksperimen ke branch utama setelah dipastikan kodenya aman dan bebas dari bug.

Di platform GitHub sendiri, saya mengenal istilah Repository sebagai tempat penyimpanan proyek online, Fork untuk menyalin proyek orang lain ke akun kita sendiri agar bisa dimodifikasi tanpa merusak aslinya, serta Pull Request (PR) yang menjadi sarana formal untuk mengajukan perubahan kode kita agar ditinjau oleh tim sebelum digabungkan.

Dari pengalaman praktis ini, saya memetik beberapa tips penting: selalu tulis pesan commit yang jelas dan bermakna (misalnya menggunakan kalimat perintah seperti “Add sidebar filter”), gunakan penamaan branch yang konsisten (seperti feature/ atau bugfix/), dan manfaatkan file .gitignore untuk mencegah file sampah atau data rahasia (credentials) ikut terunggah ke internet.

E. Meluncurkan Aplikasi ke Streamlit Cloud: Dari Komputer Lokal ke Publik

Setelah dashboard selesai dibuat dan kodenya tertata rapi di GitHub, tantangan berikutnya adalah menghadirkannya agar bisa diakses oleh publik melalui internet. Pilihan terbaik dan paling efisien yang saya pelajari adalah menggunakan Streamlit Cloud. Platform ini merupakan jalur cepat bagi para pengembang data untuk mempublikasikan karyanya tanpa harus dipusingkan oleh urusan konfigurasi server atau infrastruktur yang rumit.

Salah satu keunggulan utama Streamlit Cloud adalah integrasinya yang mulus dengan GitHub. Melalui sistem Continuous Deployment, setiap kali saya melakukan git push atau memperbarui kode di repositori GitHub, aplikasi web yang live di internet akan otomatis memperbarui dirinya sendiri. Platform ini juga menyediakan URL publik gratis serta fitur Management Secrets untuk menyimpan data sensitif atau API key dengan aman.

Proses peluncurannya sendiri sangat sistematis:

  1. Validasi Lokal: Memastikan aplikasi berjalan tanpa kendala di komputer sendiri menggunakan perintah streamlit run app.py.
  2. Daftar Dependensi: Membuat file requirements.txt yang berisi semua daftar library Python yang dibutuhkan aplikasi agar server internet tahu apa saja yang harus diinstal.
  3. Unggah ke GitHub: Memasukkan seluruh file proyek ke repositori online.
  4. Koneksi dan Deploy: Menghubungkan akun Streamlit Cloud dengan GitHub, memilih repositori yang sesuai, dan menekan tombol Deploy.

Meskipun Streamlit Cloud sangat cocok untuk portofolio, prototipe, atau tim berskala kecil, saya juga diajarkan untuk melihat masa depan. Jika suatu saat aplikasi bisnis ini berkembang pesat, memiliki trafik pengunjung yang sangat tinggi, atau membutuhkan komputasi tingkat dewa, maka saya harus siap bermigrasi ke platform container yang lebih tangguh seperti Google Cloud Run yang mendukung auto-scaling menggunakan Docker. Untuk menjaga aplikasi tetap ringan, saya harus selalu disiplin menggunakan Virtual Environment, tidak mengunggah data raksasa langsung ke GitHub (melainkan menyimpannya di cloud storage seperti AWS S3 atau Google Drive), serta memaksimalkan penggunaan @st.cache_data dan @st.cache_resource.

F. Demo Day: Seni Menyampaikan Nilai di Balik Produk Data

Poin terakhir yang menutup rangkaian pembelajaran ini adalah persiapan menghadapi Demo Day atau presentasi produk akhir. Di sini saya disadarkan pada sebuah realitas penting: sebuah aplikasi atau model data yang hebat secara teknis tidak akan ada gunanya jika kita gagal mengomunikasikan nilainya kepada orang lain.

Presentasi produk data yang sukses tidak berfokus pada pamer baris kode atau algoritma yang rumit, melainkan pada seni Storytelling yang berorientasi pada masalah (Problem-Centric). Saya belajar bahwa audiens — baik itu investor, dosen pengampu, maupun calon pengguna — lebih peduli pada aspek praktis:

  • Masalah nyata apa yang sedang terjadi di lapangan?
  • Bagaimana aplikasi data yang saya bangun hadir sebagai solusi atas masalah tersebut?
  • Bagaimana pembuktiannya secara langsung melalui Live Demo yang lancar?

Dengan menyajikan visualisasi data yang menarik, mengantisipasi pertanyaan dengan persiapan yang matang, serta menyampaikan batasan aplikasi secara jujur, sebuah presentasi Demo Day akan mampu menciptakan dampak yang nyata. Materi ini membuka mata saya bahwa menjadi seorang profesional di bidang Bisnis Digital menuntut keseimbangan yang utuh: kita harus kuat secara teknis untuk membangun solusi, kokoh dalam berkolaborasi lewat manajemen kode, dan lihai dalam berkomunikasi untuk menyampaikan nilai dari produk data yang kita ciptakan.


메타데이터
post_id
8be4eac4abf6
slug
tugas-pemograman-dan-data-raya-lanjutan-8be4eac4abf6
url
https://medium.com/@sitiarterina26/tugas-pemograman-dan-data-raya-lanjutan-8be4eac4abf6
canonical_url
https://medium.com/@sitiarterina26/tugas-pemograman-dan-data-raya-lanjutan-8be4eac4abf6
author_url
https://medium.com/@sitiarterina26
status
ok
fetched_at
2026-06-09 15:37:30