Study
Shiny

File Upload dengan fileInput

Penjelasan

fileInput(inputId, label) menampilkan tombol upload file di UI. Setelah user memilih file, input$inputId di server berisi data frame kecil dengan kolom name (nama file asli), size (ukuran dalam byte), type (MIME type), dan datapath (lokasi file sementara di server tempat isinya bisa dibaca, misalnya lewat read.csv(input$file$datapath)). Karena input$file bisa NULL sebelum user memilih apapun, hampir selalu perlu dipasangkan dengan req(input$file) di awal blok reactive supaya aplikasi tidak error saat pertama dimuat.

Contoh Konsep

library(shiny)

ui <- fluidPage(
  fileInput("file_csv", "Upload file CSV:", accept = ".csv"),
  tableOutput("pratinjau")
)

server <- function(input, output) {
  output$pratinjau <- renderTable({
    req(input$file_csv)
    data <- read.csv(input$file_csv$datapath)
    head(data, 5)
  })
}

shinyApp(ui = ui, server = server)

Praktikum

Lengkapi server agar menampilkan jumlah baris dari file CSV yang diupload lewat input 'file_data'.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Batasi jenis file yang diterima lewat parameter accept (misalnya accept = c(".csv", ".xlsx")), dan pertimbangkan validasi ukuran file dengan opsi global options(shiny.maxRequestSize = ...) kalau file bisa besar.