Dashboard 1

Kolom 1

Data Arduiono Matana

Grafik Garis (Line-Chart)

Kolom 2

Grafik Batang (Bar-Chart)

Dashboard 2

Kolom

Data Indonesia

Map Indonesia

Zoom Matana

---
title: "AirQ_Dashboard"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
    theme: yeti
    source_code: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(plotly)
library(DT)
library(highcharter)
```


# Dashboard 1 

## Kolom 1 {.tabset .tabset-fade} 

### Data Arduiono Matana {data-height=580}

```{r}
# import data sampel dari Arduino 
dt_matana <- read.csv("data_arduino.csv")

# Menampilkan Data dalam bentuk tabel
datatable(dt_matana,
          options=list(scrollX=TRUE),
          caption = htmltools::tags$caption(
            style = 'caption-side: bottom; text-align: center;',
            'Table: ', htmltools::em('Kualitas Udara Indonesia')
          ))
```

### Grafik Garis (Line-Chart) {data-height=580}

```{r}
# Membuat Grafik Kosong
highchart() %>%
  
# Menambahkan Grafik Pertama Opsi: "line" dan "areaspline"
hc_add_series(dt_matana, 
              type = "line",  
              hcaes(x = Timestamp, y = CO),
              name = "Karbon Monoksida",
              color="#FF3C6B") %>%

# Menambahkan Grafik Kedua 
hc_add_series(dt_matana, 
              type = "line",  
              hcaes(x = Timestamp, y = H2), 
              name = "Hidrogen",
              color="#FFCE0B") %>%
  
# Menambahkan Grafik Ketiga
hc_add_series(dt_matana, 
              type = "line", 
              hcaes(x = Timestamp, y = CO2),
              name = "Karbon Dioksida",
              color="#38D138") %>%
  
# Sesuaikan judul/subjudul grafik dan label masing-masing sumbu
hc_title(text = "Data Rekaman Arduino 900 Detik",
         style = list(fontSize = '20px', fontWeight = 'bold')) %>%
hc_subtitle(text = 'Universitas Matana',
              style = list(fontSize = '16px')) %>%
hc_xAxis(title = list(text = "Timestamp")) %>%
hc_yAxis(title = list(text = "Nilai Palutan")) %>%

# Atur posisi Keterangan (Legend)
hc_legend(
  layout = "vertical",       # Opsi: "horizontal" or "vertical"
  align = "right",           # Opsi: "left", "center", "right"
  verticalAlign = "middle"   # Opsi: "top", "middle", "bottom"
  ) %>% 

# Menambahkan tooltip 
hc_tooltip(sort = TRUE) %>% 

# Menambahkan referensi/tagging
hc_credits(enabled = TRUE, text = 'Referensi Warna', 
           href = "https://color.adobe.com/create/color-contrast-analyzer")
```

## Kolom 2 

### Grafik Batang (Bar-Chart) {data-height=580}

```{r}
# Hitung masing-masing rerata palutan
rerata_CO <- mean(dt_matana$CO)
rerata_H2 <- mean(dt_matana$H2)
rerata_CO2 <- mean(dt_matana$CO2)

# Masukkan dalam Data Frame
data_rerata <- data.frame(
  Palutan = c("CO", "H2", "CO2"),
  Rerata = c(rerata_CO, rerata_H2, rerata_CO2)
)

# warna grafik secara manual 
warna = c("#FF3C6B","#FFCE0B", "#38D138" )

# Membuat Grafik Batang  (Opsinya: column, bar, dan lollipop)
data_rerata %>% 
  arrange(desc(Rerata)) %>% 
  hchart('column', hcaes(x = Palutan, y = Rerata, color = warna)) %>%
  hc_add_theme(hc_theme_google()) %>% 
  hc_tooltip(pointFormat = '<b>Rerata Kualitas Udara: </b> {point.y} <br>') %>% 
  hc_title(text = 'Rata-rata Sampel Kualitas di Udara Matana', 
           style = list(fontSize = '20px', fontWeight = 'bold')) %>% 
  hc_subtitle(text = 'Masing-masing Kategori Palutan',
              style = list(fontSize = '16px')) %>% 
  
# Menambahkan referensi/tagging
hc_credits(enabled = TRUE, text = 'Referensi Warna', 
           href = "https://color.adobe.com/create/color-contrast-analyzer")
```

# Dashboard 2 

## Kolom {.tabset .tabset-fade} 

### Data Indonesia {data-height=580}

```{r}
# data kabupaten kota di Indonesia
# https://raw.githubusercontent.com/dsciencelabs/dataset/master/kabko_id.csv

dt_kabko <- read.csv2("kabko_id.csv")

# data dummy kualitas udara di kabko
n_kabko <- nrow(dt_kabko)                               # banyaknya kabupaten kota
CO <- round(runif(n_kabko, min=0, max=100), digits = 2) # CO (Karbon Monoksida) 
H2 <- round(runif(n_kabko, min=0, max=100), digits = 2) # H2 (Hidrogen) 
CO2<- round(runif(n_kabko, min=0, max=400), digits = 2) # CO2 (Karbon Dioksida) 

# Buat data frame kualitas udara harian
data_id <- data.frame(dt_kabko, CO, H2, CO2)

# kumpulkan data kualitas udara matana
matana = c("Matana University", 
           -6.243763872691305, 
           106.62500553068874, 
           rerata_CO, 
           rerata_H2, 
           rerata_CO2)

# gabungkan data kualitas udara Indonesia dan Matana
data_id_matana = rbind(data_id, matana)

# Menambahkan kolom baru berdasarkan tiga kondisi kolom lainnya
data_id_matana_kategori <- data_id_matana %>%
mutate(Kategori = ifelse(CO2 > 0 & CO2 <= 50, "Baik",
                  ifelse(CO2 > 50 & CO2 <= 100, "Sedang",
                  ifelse(CO2 > 100 & CO2 <= 150, "Tidak Sehat (Sensitif)",
                  ifelse(CO2 > 150 & CO2 <= 200, "Tidak Sehat",
                  ifelse(CO2 > 200 & CO2 <= 300, "Sangat Tidak Sehat",
                  "Bahaya"))))))

# Menampilkan Data dalam bentuk tabel
datatable(data_id_matana_kategori,
          options=list(scrollX=TRUE),
          caption = htmltools::tags$caption(
            style = 'caption-side: bottom; text-align: center;',
            'Table: ', htmltools::em('Kualitas Udara Indonesia + Matana + Kategori')
          ))
```


### Map Indonesia {data-height=580}

```{r}
library(plotly)
library(leaflet)  

# Buat peta Plotly
map <- data_id_matana_kategori %>%
       plot_ly(x = ~long, y = ~lat, type = "scattermapbox", mode = "markers",
        text = ~paste("Kabupaten Kota: ", kabko, 
                      "<br>CO: ", CO,
                      "<br>H2: ", H2,
                      "<br>CO2: ", CO2,
                      "<br>Kualitas Udara:", Kategori),
        marker = list(size = 7, color = ~CO2)) %>%
        layout(
        mapbox = list(center = list(lat = -2, lon = 118),
        zoom = 4, style = "open-street-map"),
          title = "Kualitas Udara di Indonesia",
          geo = list(scope = "asia",showland = TRUE)
        )

map
```


### Zoom Matana {data-height=580}

```{r}
library(plotly)
library(leaflet)  

# Buat peta Plotly
map <- data_id_matana_kategori %>%
       plot_ly(x = ~long, y = ~lat, type = "scattermapbox", mode = "markers",
        text = ~paste("Kabupaten Kota: ", kabko, 
                      "<br>CO: ", CO,
                      "<br>H2: ", H2,
                      "<br>CO2: ", CO2,
                      "<br>Kualitas Udara:", Kategori),
        marker = list(size = 7, color = ~CO2)) %>%  
        layout(
        mapbox = list(center = list(lat = -6.244572116187856, lon = 106.62467647870157),
        zoom = 16, style = "open-street-map"),
          title = "Zoom Kualitas Udara di Matana",
          geo = list(scope = "asia",showland = TRUE)
        )

map
```