Layout Lanjutan: tabsetPanel & navbarPage
Penjelasan
Untuk aplikasi dengan banyak bagian konten, sidebarLayout saja kurang cukup. tabsetPanel() membuat beberapa tabPanel("Judul Tab", ...konten...) yang bisa diklik bergantian di dalam satu halaman — cocok ditaruh di dalam mainPanel(). Untuk aplikasi yang benar-benar terasa seperti punya banyak 'halaman', navbarPage(title, tabPanel(...), tabPanel(...)) menggantikan fluidPage() sepenuhnya sebagai fungsi UI utama, menghasilkan navbar horizontal di bagian atas layaknya website multi-halaman, walau tetap satu aplikasi Shiny yang sama.
Contoh Konsep
library(shiny)
ui <- navbarPage("Dashboard Toko",
tabPanel("Ringkasan",
h3("Ringkasan Penjualan")
),
tabPanel("Grafik",
tabsetPanel(
tabPanel("Bulanan", plotOutput("plot_bulanan")),
tabPanel("Tahunan", plotOutput("plot_tahunan"))
)
),
tabPanel("Pengaturan",
h3("Pengaturan Aplikasi")
)
)
server <- function(input, output) {
}
shinyApp(ui = ui, server = server)
Praktikum
Buat navbarPage berjudul 'Analitik' dengan dua tabPanel: 'Beranda' dan 'Data'.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Karena semua tabPanel dalam satu navbarPage dimuat di halaman yang sama (bukan reload seperti website multi-page), state input di satu tab tetap tersimpan walau kamu berpindah ke tab lain lalu kembali lagi.