Tabel Interaktif dengan DT
Penjelasan
renderTable()/tableOutput() bawaan Shiny hanya menampilkan tabel statis. Untuk tabel interaktif — bisa di-sort per kolom, dicari, dan dipaginasi otomatis di browser — komunitas R umumnya pakai package DT (wrapper dari library JavaScript DataTables). Pasangannya adalah renderDataTable({...}) di server dan DTOutput("id") di UI (versi lama Shiny memakai dataTableOutput(), keduanya masih valid). DT juga mendukung berbagai opsi kustomisasi lewat parameter options, misalnya jumlah baris per halaman atau bahasa tabel.
Contoh Konsep
# install.packages("DT")
library(shiny)
library(DT)
ui <- fluidPage(
DTOutput("tabel_mobil")
)
server <- function(input, output) {
output$tabel_mobil <- renderDT({
mtcars
}, options = list(pageLength = 5))
}
shinyApp(ui = ui, server = server)
Praktikum
Lengkapi agar tabel hanya menampilkan baris mtcars dengan mpg lebih besar dari input 'mpg_min'.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau tabelnya besar, gunakan opsi server = TRUE pada renderDT() supaya paginasi dan pencarian diproses di sisi R (server-side), bukan mengirim semua baris sekaligus ke browser.