Mereka yang berpengalaman bekerja dengan R kemungkinan besar pernah mendengar tentang paket Shiny, yang memungkinkan Anda membuat aplikasi web interaktif. R Shiny dirilis pada 2012, dan permintaannya tumbuh pesat setelah disadari bahwa paket yang mudah digunakan ini memungkinkan ilmuwan dan analis membuat model dan dashboard yang lebih interaktif.
Pada 2023, Shiny untuk Python keluar dari tahap alpha, menyediakan kerangka kerja reaktif serupa untuk bahasa Python. Shiny terkenal karena kesederhanaan dan efektivitasnya dalam membuat dashboard dan aplikasi berbasis web tanpa perlu keahlian pengembangan web yang mendalam.
Apa itu Shiny?
Shiny adalah kerangka kerja aplikasi web sumber terbuka untuk R dan, dengan perkembangan terbaru, untuk Python. Ini memungkinkan profesional data mengubah analisis mereka menjadi aplikasi web interaktif. Inti dari Shiny berpusat pada konsep pemrograman reaktif, di mana perubahan pada masukan (seperti slider atau tombol) memicu pembaruan otomatis pada keluaran (seperti plot atau tabel).
Ada banyak manfaat dari kerangka kerja Shiny untuk membuat aplikasi berbasis web. Shiny memanfaatkan pemrograman reaktif, memungkinkan Anda membangun aplikasi yang merespons secara dinamis terhadap masukan pengguna, menciptakan pengalaman yang lebih menarik dan personal. Shiny memiliki pustaka yang ramah pengguna dan dokumentasi yang komprehensif, memungkinkan mereka yang memiliki pengetahuan pemrograman dasar untuk membuat aplikasi yang interaktif dan menarik secara visual. Bagi penggemar Python, Shiny kini menawarkan jembatan antara ekosistem sains data Python yang kaya dan kemampuan pengembangan web Shiny.
Berikut beberapa contoh di mana kerangka kerja Shiny akan bermanfaat:
Dashboard Interaktif: Shiny sangat cocok untuk membangun dashboard interaktif yang memungkinkan pengguna menelusuri dan memvisualisasikan data secara real time. Anda dapat menggunakan kiat ini untuk merancang dashboard yang apik.
Eksplorasi Data: Analis dapat menggunakan Shiny untuk membuat aplikasi yang memungkinkan pengguna menelusuri set data secara interaktif, menyesuaikan parameter dan visualisasi secara langsung.
SistemPendukung Keputusan: Shiny dapat dimanfaatkan untuk mengembangkan sistem pendukung keputusan, memfasilitasi pengambilan keputusan berbasis data dengan menyediakan insight dinamis.
Alat Edukasi: Shiny bernilai dalam konteks pendidikan, memungkinkan pembuatan materi pengajaran dan demonstrasi interaktif.
Catatan: Penting untuk dipahami bahwa Shiny untuk R dan Shiny untuk Python berbeda. Meskipun memiliki konsep dasar yang serupa, sintaks dan istilahnya tidak dapat dipertukarkan. Jika Anda tahu cara menggunakan Shiny untuk R, Anda akan memiliki keunggulan saat mempelajari Shiny untuk Python, tetapi Anda tetap perlu mempelajari perbedaan yang diperkenalkan untuk menyesuaikan dengan Python.
Perbandingan Shiny dengan kerangka aplikasi web lainnya
Saat mempertimbangkan pengembangan aplikasi web untuk sains data, ada baiknya memahami bagaimana posisi Shiny dibandingkan kerangka lainnya.
Shiny menawarkan kombinasi unik antara kesederhanaan dan fleksibilitas. Namun, versi Python relatif baru dibandingkan kerangka lainnya. Shiny dirancang untuk memudahkan siapa pun yang memiliki pengetahuan pengkodean Python dalam mengembangkan aplikasi web.
Selain kemudahannya, Shiny dirancang untuk mendukung penskalaan yang mulus, memanfaatkan caching dan reaktivitas selektif untuk menjaga kerangka reaktifnya tetap efisien. Ini memberinya keunggulan dibandingkan beberapa kerangka desain web lainnya. Sintaks deklaratif dan model pemrograman reaktifnya juga membuatnya mudah diakses oleh analis data, memungkinkan mereka membuat aplikasi interaktif tanpa keahlian pengembangan web yang mendalam.
Sebaliknya, kerangka lain seperti Dash dan Streamlit menawarkan kekuatan yang berbeda. Dash menggunakan sintaks Pythonic dan menekankan pengembangan cepat. Streamlit unggul dalam pembuatan prototipe cepat dengan rendering otomatis tetapi akan menjalankan ulang seluruh program saat masukan berubah, yang menyebabkan ketidakefisienan ketika aplikasi diskalakan. Flask dan Django adalah kerangka web tujuan umum yang menawarkan fleksibilitas dan kontrol, tetapi sering kali membutuhkan lebih banyak keahlian pengembangan web. Jika Anda tertarik mempelajarinya, Anda dapat membaca tutorial Django dari DataCamp.
Selain platform pengembangan web berbasis kode, analis data juga menggunakan Tableau dan Power BI untuk tujuan pembuatan dashboard serupa. Ini adalah platform visualisasi data yang menyediakan alat yang kuat tetapi memiliki biaya lisensi. Program-program ini juga memiliki fitur analisis yang terbatas dibandingkan kode murni dan mengharuskan pemodelan serta analisis yang lebih kompleks diselesaikan di tempat lain. Anda dapat mempelajari lebih lanjut tentang Power BI di DataCamp.
Penting untuk mempertimbangkan kebutuhan proyek, preferensi bahasa, dan kebutuhan fitur khusus saat memilih kerangka paling sesuai untuk aplikasi sains data tertentu. Sementara kerangka lain memiliki keunggulannya, perpaduan unik antara kesederhanaan dan fleksibilitas pada Shiny, ditambah integrasinya dengan Python, menjadikannya pilihan menarik bagi siapa pun yang ingin meningkatkan proyek sains data mereka.
Kerangka
Fitur Utama
Dukungan Bahasa
Kurva Pembelajaran
Penggunaan
Shiny
Sederhana dan serbaguna
R, Python
Rendah
Aplikasi dan visualisasi interaktif
Dash
Sintaks Pythonic
Python
Sedang
Pengembangan cepat aplikasi web ringan
Streamlit
Prototipe cepat dengan rendering otomatis
Python
Rendah
Prototipe cepat untuk aplikasi data
Flask
Kerangka web tujuan umum
Python
Sedang hingga Tinggi
Aplikasi web layanan lengkap
Django
Kerangka web Python tingkat tinggi
Python
Sedang hingga Tinggi
Aplikasi dan layanan web yang dapat diskalakan
Tableau/Power BI
Platform visualisasi data
Tidak Berlaku
Rendah
Visualisasi Business Intelligence
Menyiapkan Lingkungan Pengembangan
Salah satu hal hebat tentang Shiny untuk Python adalah adanya editor web tempat Anda dapat membuat aplikasi tanpa mengunduh atau menginstal apa pun. Editor web ini dilengkapi dengan beberapa contoh aplikasi dan fungsionalitas yang dapat Anda gunakan untuk memulai dan mencoba aplikasi Shiny baru Anda.
Namun, akan tiba saatnya dalam pengembangan ketika Anda mungkin ingin menjalankan Shiny di perangkat lokal Anda. Bagian ini akan memandu Anda melalui pemasangan Python, Shiny, dan dependensi masing-masing, serta konfigurasi yang diperlukan agar lingkungan lokal Anda berjalan lancar.
Instalasi Python
Untuk mulai bekerja dengan Shiny secara offline, Anda perlu memasang Python di komputer Anda. Jika Anda belum memasang Python, kunjungi situs resmi Python di python.org dan unduh versi terbaru Python untuk sistem operasi Anda. Jika Anda sebelumnya telah memasang Python, saya sarankan memperbarui ke versi terbaru agar Shiny berjalan dengan benar.
Jalankan installer yang diunduh dan centang kotak "Add Python to PATH" selama proses instalasi. Ini memudahkan menjalankan Python dari baris perintah. Buka command prompt atau terminal dan ketik python --version untuk memverifikasi bahwa Python telah terpasang dengan sukses. Anda seharusnya melihat nomor versi ditampilkan. Anda juga dapat memilih memasang Integrated Development Environment (IDE) untuk kenyamanan.
Instalasi Shiny
Setelah Python siap, Anda dapat memasang Shiny. Selama Anda memiliki versi Python terbaru, Anda dapat membuka command prompt atau terminal dan menggunakan perintah berikut untuk memasang pustaka Shiny untuk Python menggunakan pip:
Shiny mungkin memiliki dependensi tambahan berdasarkan konfigurasi sistem Anda. Pastikan dependensi ini terpasang dengan mengikuti petunjuk yang diberikan dalam dokumentasi Shiny.
Konfigurasi lingkungan pengembangan
Now that you have Python and Shiny installed, there are three more topics you need to address.
IDE: Jika Anda menggunakan IDE, seperti VS Code, maka Anda dapat memilih untuk memasang ekstensi agar keluaran Shiny dapat dirender di dalam IDE.
Kendali Versi: Pertimbangkan untuk menggunakan sistem kendali versi seperti Git untuk melacak perubahan pada kode Anda. Inisialisasi repositori Git di folder proyek Anda agar mudah mengelola dan berkolaborasi pada aplikasi Shiny Anda.
Struktur Kode: Atur struktur proyek Anda. Buat folder terpisah untuk aplikasi Shiny, set data, dan sumber daya tambahan lainnya. Ini membantu menjaga basis kode tetap rapi dan terorganisasi, yang merupakan praktik terbaik untuk proyek pengkodean apa pun.
Dengan lingkungan pengembangan yang kini sudah siap dan terkonfigurasi, Anda siap mulai membangun aplikasi web interaktif dengan Shiny untuk Python.
Membuat Aplikasi Shiny Dasar
Memahami struktur aplikasi Shiny
Aplikasi Shiny terdiri atas dua komponen utama: antarmuka pengguna (UI) dan logika server.
UI menentukan tampilan aplikasi dan elemen apa saja yang tersedia untuk interaksi pengguna. Apa pun yang dapat dilihat atau digunakan pengguna adalah bagian dari UI, termasuk elemen seperti slider, tombol, dan plot.
UI dibuat menggunakan fungsi yang diawali dengan "ui.", seperti ui.input_numeric, ui.input_slider, dan ui.output_text. Fungsi-fungsi ini dibungkus dalam fungsi halaman, biasanya ui.page_fluid, yang menjelaskan tata letak dasar halaman.
Logika server menentukan bagaimana aplikasi berperilaku dan merespons masukan pengguna. Terdiri atas fungsi yang mengambil masukan pengguna dari UI, memprosesnya, dan memperbarui elemen keluaran sesuai. Logika server dibuat menggunakan fungsi server dan mencakup ekspresi reaktif untuk menangani masukan dan keluaran.
Setelah UI dan logika server didefinisikan, kita menghubungkannya dalam aplikasi yang lengkap, yang harus diberi nama "app".
Contoh ini mengambil masukan pengguna dari sebuah slider dan menggunakannya untuk melakukan perhitungan yang ditampilkan di kotak teks di bawah slider. Contoh yang sangat sederhana ini berjalan di peramban sederhana pada local host di VS Code.
Seperti yang dapat Anda lihat dari demonstrasi sederhana ini, keajaiban Shiny terletak pada interaktivitasnya. Mesin di balik interaktivitas Shiny berada pada model pemrograman reaktifnya. Di Shiny, kita mendefinisikan ekspresi reaktif untuk membuat rantai ketergantungan antara masukan dan keluaran. Ketika suatu masukan berubah, semua ekspresi reaktif dan keluaran yang bergantung padanya akan diperbarui secara otomatis. Reaktivitas ini adalah inti dari Shiny. Anda dapat membaca detail lebih lanjut tentang reaktivitas Shiny di sini.
Ada beberapa elemen kunci yang membuat reaktivitas ini mungkin.
Pertama, adalah perhitungan reaktif, atau reactive.Calc. Ini adalah perhitungan berdasarkan suatu masukan. Perhitungan ini menyimpan tembolok nilai yang dikembalikannya hingga masukan diubah, saat itu ia akan berjalan ulang dengan masukan baru. Ini memungkinkan aplikasi Anda merespons masukan pengguna secara efisien. Perhitungan reaktif menggunakan dekorator @reactive.Calc, seperti pada contoh di bawah.
@reactive.Calcdefdouble_number():returninput.number()*2Didukung oleh
Elemen reaktif lain adalah efek reaktif, atau reactive.Effect. Efek reaktif tidak mengembalikan nilai saat berjalan. Sebagai gantinya, ia memicu sebuah efek, seperti memodifikasi variabel atau menyimpan berkas. Ia juga berjalan ulang saat masukan berubah. Reactive.Effect yang paling umum adalah dekorator @output, yang menambahkan string berisi hasil ke antrean pesan, seperti pada contoh di bawah.
@output@render.textdeftxt():returnf"The value of x is {input.x()}"Didukung oleh
Terkadang, Anda mungkin tidak ingin reaktivitas aplikasi Anda begitu instan. Misalnya, jika Anda memiliki model yang mahal secara komputasi, Anda mungkin ingin menunggu hingga beberapa parameter diperbarui sebelum menjalankan ulang model. Dalam kasus ini, reactive.event() atau dengan reactive.isolate() menawarkan opsi untuk membatasi reaktivitas aplikasi Anda.
Menambahkan Interaktivitas ke Aplikasi Shiny Anda
Saat Anda memerlukan aplikasi yang lebih kompleks
Dengan logika reaktivitas ini, Shiny untuk Python dapat membuat aplikasi yang sesederhana atau sekompleks yang Anda butuhkan. Anda dapat menambahkan tombol radio, kotak centang, slider, kotak masukan teks, grafik, peta, dan banyak lagi! Berikut contoh yang sedikit lebih kompleks dari dokumentasi Shiny.
Dalam contoh ini, kami membuat peta panas dari beberapa data acak. Ada pilihan tombol radio untuk gaya peta panas yang ingin dilihat pengguna, dan fungsi slider mengubah rentang warna pada peta panas. Posit (perusahaan yang membuat Shiny) menyediakan beberapa contoh lagi di situs mereka, termasuk klon Wordle yang seru ini.
Meskipun jenis interaktivitas ini menyenangkan untuk dicoba, ada juga banyak penerapan yang berguna. Anda bisa merancang model yang mengambil faktor lingkungan seperti salinitas dan suhu dan menggunakannya untuk memprediksi ledakan alga. Seorang peneliti di lapangan dapat memasukkan nilai saat ini ke aplikasi Shiny Anda, dan aplikasi tersebut akan memberikan prediksi waktu nyata kepada peneliti.
Anda bisa merancang model yang menunjukkan proyeksi pendapatan tahunan jika kondisi tertentu terpenuhi. Kemudian, manajer dapat menggunakan aplikasi Anda untuk memainkan berbagai skenario dengan memasukkan jumlah penjualan yang berbeda atau mencentang kotak untuk produk yang mereka tawarkan, dan mereka akan melihat hasil prediksi diperbarui seketika.
Kasus penggunaannya banyak di berbagai industri.
Jenis masukan dan keluaran
Shiny menyediakan beragam opsi masukan dan keluaran untuk memenuhi berbagai kebutuhan visualisasi dan interaksi data. Berikut tabel sederhana mengenai masukan dan keluaran umum yang tersedia di Shiny untuk Python.
Masukan
Apa fungsinya?
Action Button Input
Menyediakan tombol untuk dipilih pengguna.
Action Link Input
Memungkinkan pengguna mengeklik sebuah tautan.
Text input
Menyediakan kotak teks untuk satu baris teks sederhana.
Numeric input
Menyediakan kotak masukan numerik dengan panah atas dan bawah.
Slider input
Membuat slider numerik.
Checkbox input
Menghasilkan satu kotak centang untuk aplikasi Benar/Salah.
Switch input
Menghasilkan satu tombol sakelar hidup/mati.
Checkbox group input
Membuat beberapa kotak centang untuk pilihan berganda.
Select input
Menyediakan menu dropdown pilihan.
Radio buttons input
Membuat pilihan tombol radio, memaksa satu pilihan.
Text area input
Menyediakan kotak teks lebih besar dengan jendela yang dapat diubah ukurannya untuk masukan teks yang lebih panjang.
Date input
Membuat kotak masukan tanggal dengan kalender untuk memilih tanggal.
Date range input
Pada dasarnya dua kotak masukan tanggal berpasangan yang memungkinkan rentang dimasukkan.
Password input
Membuat kotak teks yang menyembunyikan teks masukan.
———————————————————————————————————————
Keluaran
Apa fungsinya?
Text output
Menulis teks dalam HTML biasa.
Verbatim text output
Menulis teks dalam blok kode dengan huruf lebar tetap.
UI output
Memungkinkan UI yang lebih dinamis berdasarkan masukan pengguna.
Plot output
Menghasilkan plot menggunakan pustaka Python umum, seperti matplotlib.
Table output
Membuat tabel sederhana dengan judul kolom.
Data Frame / Grid output
Membuat tabel yang dapat disesuaikan dengan filter, garis kisi, dan batas baris.
Kustomisasi Antarmuka Pengguna di Shiny untuk Python
Tata letak dan tema
Shiny menawarkan fleksibilitas dalam menyesuaikan antarmuka pengguna melalui berbagai tata letak menggunakan fungsi halaman. Fungsi halaman yang paling umum digunakan adalah page_fluid(), yang menyediakan desain responsif yang menyesuaikan dengan berbagai ukuran layar. Tata letak lebar tetap, cocok untuk aplikasi dengan kebutuhan desain spesifik, dapat dicapai menggunakan fungsi halaman page_fixed().
Shiny memanfaatkan HTML untuk membuat aplikasi berbasis web. Ini berarti Anda dapat menggunakan tema CSS untuk menata aplikasi Anda. Menambahkan gaya CSS kustom memungkinkan Anda menyesuaikan tampilan aplikasi Shiny agar sesuai dengan preferensi estetika atau identitas merek perusahaan Anda.
Penerapan widget dan ekstensi kustom
Shiny mendukung ipywidgets untuk berbagai plot interaktif, peta, visualisasi 3D, dan streaming media. Shiny juga memiliki beberapa fungsionalitas untuk widget Python lain yang dapat disimpan sebagai berkas HTML. Dengan memasukkan widget kustom, Anda dapat menyesuaikan aplikasi Shiny dengan kasus penggunaan spesifik dan menciptakan pengalaman pengguna yang lebih personal.
Mendeploy Aplikasi Shiny untuk Python Anda
Penjelasan berbagai opsi deployment
Setelah Anda membuat aplikasi Shiny yang menarik, Anda mungkin ingin membagikannya ke audiens yang lebih luas, baik untuk portofolio Anda maupun untuk klien, dengan mendeploy-nya ke web. Shiny mendukung berbagai opsi deployment untuk memenuhi kebutuhan yang berbeda.
Deployment Lokal: Anda dapat mendeploy aplikasi Shiny di server lokal, sehingga dapat diakses dalam organisasi Anda atau oleh kelompok pengguna tertentu.
Platform Berbasis Cloud: Platform cloud menawarkan solusi yang dapat diskalakan dan mudah diakses untuk mendeploy aplikasi Shiny. Pilihan populer meliputi:
Shinyapps.io: Platform milik Posit yang dirancang khusus untuk hosting aplikasi Shiny.
Heroku: Platform cloud yang mendukung deployment aplikasi Shiny.
AWS, Azure, dan Google Cloud: Penyedia cloud utama yang memungkinkan Anda mendeploy aplikasi Shiny pada mesin virtual atau container.
ShinyLive: Shiny menawarkan cara baru untuk menjalankan aplikasi Shiny di dalam peramban web tanpa server terpisah yang menjalankan Python. Ini menggabungkan web assembly dan pyodide untuk memungkinkan aplikasi Shiny berjalan tanpa memasang Python atau Shiny di komputer Anda. Platform ini membatasi paket Python yang tersedia dan mungkin tidak seaman platform lain, tetapi merupakan cara yang baik untuk berbagi kode non-sensitif dengan cepat.
Kesimpulan
Shiny untuk Python adalah pemain baru yang menarik di dunia pengembangan aplikasi web. Penggunaannya dapat secara signifikan meningkatkan proyek data Anda tanpa investasi waktu yang besar untuk mempelajari pengembangan web. Jika Anda tertarik mencoba Shiny untuk R, lihat kursus fundamental Shiny dari DataCamp dan kursus tentang membuat dashboard dengan R Shiny ini. Setelah Anda menguasai dasarnya, latih keterampilan baru Anda dengan studi kasus Shiny!
Saya seorang PhD dengan pengalaman 13 tahun bekerja dengan data di lingkungan riset biologi. Saya membuat perangkat lunak dalam beberapa bahasa pemrograman termasuk Python, MATLAB, dan R. Saya bersemangat membagikan kecintaan saya terhadap pembelajaran kepada dunia.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Pelajari cara menggunakan Shiny, paket R yang populer, untuk membangun aplikasi web yang sangat interaktif dan membagikan analisis Anda dalam bentuk dashboard dan visualisasi.
Pengantar Shiny dan Manfaatnya
Mereka yang berpengalaman bekerja dengan R kemungkinan besar pernah mendengar tentang paket Shiny, yang memungkinkan Anda membuat aplikasi web interaktif. R Shiny dirilis pada 2012, dan permintaannya tumbuh pesat setelah disadari bahwa paket yang mudah digunakan ini memungkinkan ilmuwan dan analis membuat model dan dashboard yang lebih interaktif.
Pada 2023, Shiny untuk Python keluar dari tahap alpha, menyediakan kerangka kerja reaktif serupa untuk bahasa Python. Shiny terkenal karena kesederhanaan dan efektivitasnya dalam membuat dashboard dan aplikasi berbasis web tanpa perlu keahlian pengembangan web yang mendalam.
Apa itu Shiny?
Shiny adalah kerangka kerja aplikasi web sumber terbuka untuk R dan, dengan perkembangan terbaru, untuk Python. Ini memungkinkan profesional data mengubah analisis mereka menjadi aplikasi web interaktif. Inti dari Shiny berpusat pada konsep pemrograman reaktif, di mana perubahan pada masukan (seperti slider atau tombol) memicu pembaruan otomatis pada keluaran (seperti plot atau tabel).
Ada banyak manfaat dari kerangka kerja Shiny untuk membuat aplikasi berbasis web. Shiny memanfaatkan pemrograman reaktif, memungkinkan Anda membangun aplikasi yang merespons secara dinamis terhadap masukan pengguna, menciptakan pengalaman yang lebih menarik dan personal. Shiny memiliki pustaka yang ramah pengguna dan dokumentasi yang komprehensif, memungkinkan mereka yang memiliki pengetahuan pemrograman dasar untuk membuat aplikasi yang interaktif dan menarik secara visual. Bagi penggemar Python, Shiny kini menawarkan jembatan antara ekosistem sains data Python yang kaya dan kemampuan pengembangan web Shiny.
Berikut beberapa contoh di mana kerangka kerja Shiny akan bermanfaat:
Catatan: Penting untuk dipahami bahwa Shiny untuk R dan Shiny untuk Python berbeda. Meskipun memiliki konsep dasar yang serupa, sintaks dan istilahnya tidak dapat dipertukarkan. Jika Anda tahu cara menggunakan Shiny untuk R, Anda akan memiliki keunggulan saat mempelajari Shiny untuk Python, tetapi Anda tetap perlu mempelajari perbedaan yang diperkenalkan untuk menyesuaikan dengan Python.
Perbandingan Shiny dengan kerangka aplikasi web lainnya
Saat mempertimbangkan pengembangan aplikasi web untuk sains data, ada baiknya memahami bagaimana posisi Shiny dibandingkan kerangka lainnya.
Shiny menawarkan kombinasi unik antara kesederhanaan dan fleksibilitas. Namun, versi Python relatif baru dibandingkan kerangka lainnya. Shiny dirancang untuk memudahkan siapa pun yang memiliki pengetahuan pengkodean Python dalam mengembangkan aplikasi web.
Selain kemudahannya, Shiny dirancang untuk mendukung penskalaan yang mulus, memanfaatkan caching dan reaktivitas selektif untuk menjaga kerangka reaktifnya tetap efisien. Ini memberinya keunggulan dibandingkan beberapa kerangka desain web lainnya. Sintaks deklaratif dan model pemrograman reaktifnya juga membuatnya mudah diakses oleh analis data, memungkinkan mereka membuat aplikasi interaktif tanpa keahlian pengembangan web yang mendalam.
Sebaliknya, kerangka lain seperti Dash dan Streamlit menawarkan kekuatan yang berbeda. Dash menggunakan sintaks Pythonic dan menekankan pengembangan cepat. Streamlit unggul dalam pembuatan prototipe cepat dengan rendering otomatis tetapi akan menjalankan ulang seluruh program saat masukan berubah, yang menyebabkan ketidakefisienan ketika aplikasi diskalakan. Flask dan Django adalah kerangka web tujuan umum yang menawarkan fleksibilitas dan kontrol, tetapi sering kali membutuhkan lebih banyak keahlian pengembangan web. Jika Anda tertarik mempelajarinya, Anda dapat membaca tutorial Django dari DataCamp.
Selain platform pengembangan web berbasis kode, analis data juga menggunakan Tableau dan Power BI untuk tujuan pembuatan dashboard serupa. Ini adalah platform visualisasi data yang menyediakan alat yang kuat tetapi memiliki biaya lisensi. Program-program ini juga memiliki fitur analisis yang terbatas dibandingkan kode murni dan mengharuskan pemodelan serta analisis yang lebih kompleks diselesaikan di tempat lain. Anda dapat mempelajari lebih lanjut tentang Power BI di DataCamp.
Penting untuk mempertimbangkan kebutuhan proyek, preferensi bahasa, dan kebutuhan fitur khusus saat memilih kerangka paling sesuai untuk aplikasi sains data tertentu. Sementara kerangka lain memiliki keunggulannya, perpaduan unik antara kesederhanaan dan fleksibilitas pada Shiny, ditambah integrasinya dengan Python, menjadikannya pilihan menarik bagi siapa pun yang ingin meningkatkan proyek sains data mereka.
Kerangka
Fitur Utama
Dukungan Bahasa
Kurva Pembelajaran
Penggunaan
Shiny
Sederhana dan serbaguna
R, Python
Rendah
Aplikasi dan visualisasi interaktif
Dash
Sintaks Pythonic
Python
Sedang
Pengembangan cepat aplikasi web ringan
Streamlit
Prototipe cepat dengan rendering otomatis
Python
Rendah
Prototipe cepat untuk aplikasi data
Flask
Kerangka web tujuan umum
Python
Sedang hingga Tinggi
Aplikasi web layanan lengkap
Django
Kerangka web Python tingkat tinggi
Python
Sedang hingga Tinggi
Aplikasi dan layanan web yang dapat diskalakan
Tableau/Power BI
Platform visualisasi data
Tidak Berlaku
Rendah
Visualisasi Business Intelligence
Menyiapkan Lingkungan Pengembangan
Salah satu hal hebat tentang Shiny untuk Python adalah adanya editor web tempat Anda dapat membuat aplikasi tanpa mengunduh atau menginstal apa pun. Editor web ini dilengkapi dengan beberapa contoh aplikasi dan fungsionalitas yang dapat Anda gunakan untuk memulai dan mencoba aplikasi Shiny baru Anda.
Namun, akan tiba saatnya dalam pengembangan ketika Anda mungkin ingin menjalankan Shiny di perangkat lokal Anda. Bagian ini akan memandu Anda melalui pemasangan Python, Shiny, dan dependensi masing-masing, serta konfigurasi yang diperlukan agar lingkungan lokal Anda berjalan lancar.
Instalasi Python
Untuk mulai bekerja dengan Shiny secara offline, Anda perlu memasang Python di komputer Anda. Jika Anda belum memasang Python, kunjungi situs resmi Python di python.org dan unduh versi terbaru Python untuk sistem operasi Anda. Jika Anda sebelumnya telah memasang Python, saya sarankan memperbarui ke versi terbaru agar Shiny berjalan dengan benar.
Jalankan installer yang diunduh dan centang kotak "Add Python to PATH" selama proses instalasi. Ini memudahkan menjalankan Python dari baris perintah. Buka command prompt atau terminal dan ketik python --version untuk memverifikasi bahwa Python telah terpasang dengan sukses. Anda seharusnya melihat nomor versi ditampilkan. Anda juga dapat memilih memasang Integrated Development Environment (IDE) untuk kenyamanan.
Instalasi Shiny
Setelah Python siap, Anda dapat memasang Shiny. Selama Anda memiliki versi Python terbaru, Anda dapat membuka command prompt atau terminal dan menggunakan perintah berikut untuk memasang pustaka Shiny untuk Python menggunakan pip:
Jika Anda menggunakan conda alih-alih pip, gunakan perintah ini:
Shiny mungkin memiliki dependensi tambahan berdasarkan konfigurasi sistem Anda. Pastikan dependensi ini terpasang dengan mengikuti petunjuk yang diberikan dalam dokumentasi Shiny.
Konfigurasi lingkungan pengembangan
Now that you have Python and Shiny installed, there are three more topics you need to address.
Dengan lingkungan pengembangan yang kini sudah siap dan terkonfigurasi, Anda siap mulai membangun aplikasi web interaktif dengan Shiny untuk Python.
Membuat Aplikasi Shiny Dasar
Memahami struktur aplikasi Shiny
Aplikasi Shiny terdiri atas dua komponen utama: antarmuka pengguna (UI) dan logika server.
UI menentukan tampilan aplikasi dan elemen apa saja yang tersedia untuk interaksi pengguna. Apa pun yang dapat dilihat atau digunakan pengguna adalah bagian dari UI, termasuk elemen seperti slider, tombol, dan plot.
UI dibuat menggunakan fungsi yang diawali dengan "ui.", seperti ui.input_numeric, ui.input_slider, dan ui.output_text. Fungsi-fungsi ini dibungkus dalam fungsi halaman, biasanya ui.page_fluid, yang menjelaskan tata letak dasar halaman.
Logika server menentukan bagaimana aplikasi berperilaku dan merespons masukan pengguna. Terdiri atas fungsi yang mengambil masukan pengguna dari UI, memprosesnya, dan memperbarui elemen keluaran sesuai. Logika server dibuat menggunakan fungsi server dan mencakup ekspresi reaktif untuk menangani masukan dan keluaran.
Setelah UI dan logika server didefinisikan, kita menghubungkannya dalam aplikasi yang lengkap, yang harus diberi nama "app".
Memahami model pemrograman reaktif
Pertimbangkan contoh berikut dari dokumentasi Shiny.
Contoh ini mengambil masukan pengguna dari sebuah slider dan menggunakannya untuk melakukan perhitungan yang ditampilkan di kotak teks di bawah slider. Contoh yang sangat sederhana ini berjalan di peramban sederhana pada local host di VS Code.
Seperti yang dapat Anda lihat dari demonstrasi sederhana ini, keajaiban Shiny terletak pada interaktivitasnya. Mesin di balik interaktivitas Shiny berada pada model pemrograman reaktifnya. Di Shiny, kita mendefinisikan ekspresi reaktif untuk membuat rantai ketergantungan antara masukan dan keluaran. Ketika suatu masukan berubah, semua ekspresi reaktif dan keluaran yang bergantung padanya akan diperbarui secara otomatis. Reaktivitas ini adalah inti dari Shiny. Anda dapat membaca detail lebih lanjut tentang reaktivitas Shiny di sini.
Ada beberapa elemen kunci yang membuat reaktivitas ini mungkin.
Pertama, adalah perhitungan reaktif, atau
reactive.Calc. Ini adalah perhitungan berdasarkan suatu masukan. Perhitungan ini menyimpan tembolok nilai yang dikembalikannya hingga masukan diubah, saat itu ia akan berjalan ulang dengan masukan baru. Ini memungkinkan aplikasi Anda merespons masukan pengguna secara efisien. Perhitungan reaktif menggunakan dekorator @reactive.Calc, seperti pada contoh di bawah.Elemen reaktif lain adalah efek reaktif, atau
reactive.Effect. Efek reaktif tidak mengembalikan nilai saat berjalan. Sebagai gantinya, ia memicu sebuah efek, seperti memodifikasi variabel atau menyimpan berkas. Ia juga berjalan ulang saat masukan berubah. Reactive.Effect yang paling umum adalah dekorator @output, yang menambahkan string berisi hasil ke antrean pesan, seperti pada contoh di bawah.Terkadang, Anda mungkin tidak ingin reaktivitas aplikasi Anda begitu instan. Misalnya, jika Anda memiliki model yang mahal secara komputasi, Anda mungkin ingin menunggu hingga beberapa parameter diperbarui sebelum menjalankan ulang model. Dalam kasus ini, reactive.event() atau dengan reactive.isolate() menawarkan opsi untuk membatasi reaktivitas aplikasi Anda.
Menambahkan Interaktivitas ke Aplikasi Shiny Anda
Saat Anda memerlukan aplikasi yang lebih kompleks
Dengan logika reaktivitas ini, Shiny untuk Python dapat membuat aplikasi yang sesederhana atau sekompleks yang Anda butuhkan. Anda dapat menambahkan tombol radio, kotak centang, slider, kotak masukan teks, grafik, peta, dan banyak lagi! Berikut contoh yang sedikit lebih kompleks dari dokumentasi Shiny.
Dalam contoh ini, kami membuat peta panas dari beberapa data acak. Ada pilihan tombol radio untuk gaya peta panas yang ingin dilihat pengguna, dan fungsi slider mengubah rentang warna pada peta panas. Posit (perusahaan yang membuat Shiny) menyediakan beberapa contoh lagi di situs mereka, termasuk klon Wordle yang seru ini.
Meskipun jenis interaktivitas ini menyenangkan untuk dicoba, ada juga banyak penerapan yang berguna. Anda bisa merancang model yang mengambil faktor lingkungan seperti salinitas dan suhu dan menggunakannya untuk memprediksi ledakan alga. Seorang peneliti di lapangan dapat memasukkan nilai saat ini ke aplikasi Shiny Anda, dan aplikasi tersebut akan memberikan prediksi waktu nyata kepada peneliti.
Anda bisa merancang model yang menunjukkan proyeksi pendapatan tahunan jika kondisi tertentu terpenuhi. Kemudian, manajer dapat menggunakan aplikasi Anda untuk memainkan berbagai skenario dengan memasukkan jumlah penjualan yang berbeda atau mencentang kotak untuk produk yang mereka tawarkan, dan mereka akan melihat hasil prediksi diperbarui seketika.
Kasus penggunaannya banyak di berbagai industri.
Jenis masukan dan keluaran
Shiny menyediakan beragam opsi masukan dan keluaran untuk memenuhi berbagai kebutuhan visualisasi dan interaksi data. Berikut tabel sederhana mengenai masukan dan keluaran umum yang tersedia di Shiny untuk Python.
Masukan
Apa fungsinya?
Action Button Input
Menyediakan tombol untuk dipilih pengguna.
Action Link Input
Memungkinkan pengguna mengeklik sebuah tautan.
Text input
Menyediakan kotak teks untuk satu baris teks sederhana.
Numeric input
Menyediakan kotak masukan numerik dengan panah atas dan bawah.
Slider input
Membuat slider numerik.
Checkbox input
Menghasilkan satu kotak centang untuk aplikasi Benar/Salah.
Switch input
Menghasilkan satu tombol sakelar hidup/mati.
Checkbox group input
Membuat beberapa kotak centang untuk pilihan berganda.
Select input
Menyediakan menu dropdown pilihan.
Radio buttons input
Membuat pilihan tombol radio, memaksa satu pilihan.
Text area input
Menyediakan kotak teks lebih besar dengan jendela yang dapat diubah ukurannya untuk masukan teks yang lebih panjang.
Date input
Membuat kotak masukan tanggal dengan kalender untuk memilih tanggal.
Date range input
Pada dasarnya dua kotak masukan tanggal berpasangan yang memungkinkan rentang dimasukkan.
Password input
Membuat kotak teks yang menyembunyikan teks masukan.
———————————————————————————————————————
Keluaran
Apa fungsinya?
Text output
Menulis teks dalam HTML biasa.
Verbatim text output
Menulis teks dalam blok kode dengan huruf lebar tetap.
UI output
Memungkinkan UI yang lebih dinamis berdasarkan masukan pengguna.
Plot output
Menghasilkan plot menggunakan pustaka Python umum, seperti matplotlib.
Table output
Membuat tabel sederhana dengan judul kolom.
Data Frame / Grid output
Membuat tabel yang dapat disesuaikan dengan filter, garis kisi, dan batas baris.
Untuk daftar lengkap komponen Shiny, lihat halaman ini.
Kustomisasi Antarmuka Pengguna di Shiny untuk Python
Tata letak dan tema
Shiny menawarkan fleksibilitas dalam menyesuaikan antarmuka pengguna melalui berbagai tata letak menggunakan fungsi halaman. Fungsi halaman yang paling umum digunakan adalah page_fluid(), yang menyediakan desain responsif yang menyesuaikan dengan berbagai ukuran layar. Tata letak lebar tetap, cocok untuk aplikasi dengan kebutuhan desain spesifik, dapat dicapai menggunakan fungsi halaman page_fixed().
Shiny memanfaatkan HTML untuk membuat aplikasi berbasis web. Ini berarti Anda dapat menggunakan tema CSS untuk menata aplikasi Anda. Menambahkan gaya CSS kustom memungkinkan Anda menyesuaikan tampilan aplikasi Shiny agar sesuai dengan preferensi estetika atau identitas merek perusahaan Anda.
Penerapan widget dan ekstensi kustom
Shiny mendukung ipywidgets untuk berbagai plot interaktif, peta, visualisasi 3D, dan streaming media. Shiny juga memiliki beberapa fungsionalitas untuk widget Python lain yang dapat disimpan sebagai berkas HTML. Dengan memasukkan widget kustom, Anda dapat menyesuaikan aplikasi Shiny dengan kasus penggunaan spesifik dan menciptakan pengalaman pengguna yang lebih personal.
Mendeploy Aplikasi Shiny untuk Python Anda
Penjelasan berbagai opsi deployment
Setelah Anda membuat aplikasi Shiny yang menarik, Anda mungkin ingin membagikannya ke audiens yang lebih luas, baik untuk portofolio Anda maupun untuk klien, dengan mendeploy-nya ke web. Shiny mendukung berbagai opsi deployment untuk memenuhi kebutuhan yang berbeda.
Deployment Lokal: Anda dapat mendeploy aplikasi Shiny di server lokal, sehingga dapat diakses dalam organisasi Anda atau oleh kelompok pengguna tertentu.
Platform Berbasis Cloud: Platform cloud menawarkan solusi yang dapat diskalakan dan mudah diakses untuk mendeploy aplikasi Shiny. Pilihan populer meliputi:
ShinyLive: Shiny menawarkan cara baru untuk menjalankan aplikasi Shiny di dalam peramban web tanpa server terpisah yang menjalankan Python. Ini menggabungkan web assembly dan pyodide untuk memungkinkan aplikasi Shiny berjalan tanpa memasang Python atau Shiny di komputer Anda. Platform ini membatasi paket Python yang tersedia dan mungkin tidak seaman platform lain, tetapi merupakan cara yang baik untuk berbagi kode non-sensitif dengan cepat.
Kesimpulan
Shiny untuk Python adalah pemain baru yang menarik di dunia pengembangan aplikasi web. Penggunaannya dapat secara signifikan meningkatkan proyek data Anda tanpa investasi waktu yang besar untuk mempelajari pengembangan web. Jika Anda tertarik mencoba Shiny untuk R, lihat kursus fundamental Shiny dari DataCamp dan kursus tentang membuat dashboard dengan R Shiny ini. Setelah Anda menguasai dasarnya, latih keterampilan baru Anda dengan studi kasus Shiny!