Bermain dengan R Shiny

RB Fajriya Hakim
4 min readDec 1, 2019

--

berkenalan awal dengan R Shiny

Assalamuálaikum teman-teman yang suka data…

Kali ini kita mencoba berkenalan dengan R Shiny, apa itu R Shiny?

Shiny adalah sebuah paket dalam R yang mengijinkan penggunanya membangun web apps yang interaktif. Shiny menggabungkan antara kekuatan komputasi statistika R dan interaksinya dengan web modern.

Sebelumnya mari kita pahami terlebih dahulu struktur dari aplikasi dengan R Shiny ini. Shiny terdiri dari 3 komponen, yaitu

  1. User Interface (ui)
  2. Server (server)
  3. ShinyApp (shinyapp)

User Interface (ui) merupakan fungsi yang mendefinisikan tampilan web dari aplikasi kita. Fungsinya memuat seluruh input dan output yang akan ditampilkan dalam app.

Server merupakan fungsi yang mendefinisikan logika kerja analysis dari sisi server pada aplikasi.

ShinyApp merupakan fungsi dari aplikasi yang memanggil UI dan Server untuk menjalankan aplikasi.

Kita bisa segera langsung mencoba Shiny,

Pertama kita buka terlebih dahulu R Studio, kemudian klik File, New File, pilih Shiny Web App..

kemudian akan muncul seperti berikut, sebelumnya buatlah folder di C:/cobashiny, untuk saat ini kita klik “Single File (app.R)” terlebih dahulu

kemudian klik “Create” sehingga layar RStudio akan memberikan tampilan seperti berikut,

jika dicermati berikut gambaran umumnya,

Jika kita klik “Run App” maka koding tersebut akan segera diproses dengan hasil seperti berikut,

klik “Save selected” dan terlihat sebuah file “app.R” (koding yang disimpan dalam file sebaiknya diberi nama “app.R”) telah terbentuk, kemudian nampak gambar seperti berikut,

maka nampaklah histogram yang interaktif, dari sini nampak bahwa tugas dari “ui” adalah tampilan depan aplikasi (website) sebagai user interface dan tugas dari “server” adalah dapur belakang pemrosesan dan pemodelan.

Jika kita ingin lanjutkan sampai di publish maka klik publish pada pojok kanan, akan muncul sebagai berikut,

dan muncul

tinggal kita ikuti langkah-langkah yang dipaparkan dalam setiap jendela kecil yang muncul sampai nanti dapat di publish.

Namun, pada materi ini kita mencoba membuat aplikasi sederhana yang baru, sehingga kita kembali lagi pada jendela yang sebelumnya,

kemudian kita hilangkan semuanya sehingga nampak seperti berikut,

kemudian pada bagian ui dan server kita berikan koding seperti berikut,

library(shiny)ui <- fluidPage(titlePanel("Jumlahan dua bilangan bulat"),
#membuat kolom input pengisian
sidebarLayout(
sidebarPanel(
textInput("satu", "bilangan bulat pertama"),
textInput("dua", "bilangan bulat kedua"),
actionButton("add","Tambah")
),
#tunjukkan hasilnya
mainPanel(
textOutput("sum")
)
)
)
server <- function(input, output, session) {
#jika tanda Tambah diklik maka jalankan reaktif
observeEvent( input$add,{
x<-as.numeric(input$satu)
y<-as.numeric(input$dua)
#reactive expression
n<-x+y
output$sum<-renderPrint(n)
}
)
}
# Run the application
shinyApp(ui = ui, server = server)

kemudian klik “Run App”, muncul jendela kecil, klik “Save selected” hingga nampak tampilan seperti berikut,

kemudian kita juga bisa dari menu “open in browser”, maka dari web browsing akan muncul seperti berikut,

tombol merah kecil akan terus menyala sampai jendela hasil Run App ditutup.

Jika akan kita kembangkan lagi dengan menambahkan perhitungan rata-rata, maka dapat gunakan perintah seperti berikut,

library(shiny)ui <- fluidPage(titlePanel("Jumlahan dua bilangan bulat"),
#membuat kolom input pengisian
sidebarLayout(
sidebarPanel(
textInput("satu", "bilangan bulat pertama"),
textInput("dua", "bilangan bulat kedua"),
actionButton("hitung","Hitung")
),
#tunjukkan hasilnya
mainPanel(
tags$h5('jumlahnya adalah:'),
verbatimTextOutput("sum"),

tags$h5("reratanya adalah:"),
verbatimTextOutput("mean")

)
)
)
server <- function(input, output, session) {
#jika tanda Tambah diklik maka jalankan reaktif
observeEvent( input$hitung,{
x<-as.numeric(input$satu)
y<-as.numeric(input$dua)
#reactive expression
n<-x+y
m<-n/2
output$sum<-renderPrint(n)
output$mean<-renderPrint(m)

}
)
}
# Run the application
shinyApp(ui = ui, server = server)

kemudian klik “Run App” dan klik “Save Selected” maka akan muncul jendela seperti berikut,

jika kita buka browser dan ketikkan “http://127.0.0.1:4830” akan muncul seperti berikut,

berhasil !

silahkan anda kembangkan lagi menjadi suatu aplikasi yang menarik.

Demikian

--

--