Study
Shiny

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'.

Editor Latihan

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.