INPUT DATA

library(tidyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(tidyverse) 
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ lubridate 1.9.3     ✔ stringr   1.5.1
## ✔ purrr     1.0.2     ✔ tibble    3.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggridges)
library(GGally) 
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
library(plotly) 
## 
## Attaching package: 'plotly'
## 
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following object is masked from 'package:graphics':
## 
##     layout
library(readxl)
data <- read_xlsx("C:/Users/asus/Documents/Semester 4/Visualisasi Data/TUGAS/praktikum.xlsx")
data
## # A tibble: 25,890 × 5
##    Kabupaten Daerah Bahan_atap tangki_septik air_minum
##        <dbl>  <dbl>      <dbl>         <dbl>     <dbl>
##  1         7      2          2            98       998
##  2        72      1          3             0         0
##  3         6      2          2            20         0
##  4        72      1          2            98        10
##  5        77      1          2            98         0
##  6        77      1          2            98         0
##  7        75      1          2            98         0
##  8        11      2          2            98       998
##  9        10      2          2             0         0
## 10         1      1          1             8         0
## # ℹ 25,880 more rows

VISUALISASI BESARAN

Grafik Batang

data_kabupaten <- data.frame(
  kode_kabupaten = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,71,72,73,74,75,76,77,78,79),
  nama_kabupaten = c("KAB. BOGOR", "KAB. SUKABUMI", "KAB. CIANJUR", "KAB. BANDUNG", "KAB. GARUT", "KAB. TASIKMALAYA", "KAB. CIAMIS", "KAB. KUNINGAN", "KAB. CIREBON", "KAB. MAJALENGKA", "KAB. SUMEDANG", "KAB. INDRAMAYU", "KAB. SUBANG", "KAB. PURWAKARTA", "KAB. KARAWANG", "KAB. BEKASI", "KAB. BANDUNG BARAT", "KAB. PANGANDARAN", "KOTA BOGOR", "KOTA SUKABUMI", "KOTA BANDUNG", "KOTA CIREBON", "KOTA BEKASI", "KOTA DEPOK", "KOTA CIMAHI", "KOTA TASIKMALAYA", "KOTA BANJAR")
)

Databesaran1 <- left_join(data, data_kabupaten, by = c("Kabupaten"= "kode_kabupaten"))
str(Databesaran1)
## tibble [25,890 × 6] (S3: tbl_df/tbl/data.frame)
##  $ Kabupaten     : num [1:25890] 7 72 6 72 77 77 75 11 10 1 ...
##  $ Daerah        : num [1:25890] 2 1 2 1 1 1 1 2 2 1 ...
##  $ Bahan_atap    : num [1:25890] 2 3 2 2 2 2 2 2 2 1 ...
##  $ tangki_septik : num [1:25890] 98 0 20 98 98 98 98 98 0 8 ...
##  $ air_minum     : num [1:25890] 998 0 0 10 0 0 0 998 0 0 ...
##  $ nama_kabupaten: chr [1:25890] "KAB. CIAMIS" "KOTA SUKABUMI" "KAB. TASIKMALAYA" "KOTA SUKABUMI" ...
ggplot(Databesaran1, aes(x = nama_kabupaten)) +
  geom_bar(fill = "steelblue") +
  labs(title = "Jumalah Responden Setiap Kabupaten/Kota di Jawa Barat", x = "Kabupaten", y = "Jumlah Responden") +
  theme_classic() +
  coord_flip()

Databesaran1%>%count(nama_kabupaten)%>%
ggplot()+
  geom_col(aes(x=fct_reorder(as.factor(nama_kabupaten),n),y=n), fill="pink", 
           width=0.4) +
    scale_y_continuous(expand = c(0,0))+
    coord_flip() +
    ggtitle("Jumlah Responden Setiap Kabupaten/Kota di Jawa Barat") +
    xlab("") +
    ylab("Jumlah Responden") +
    theme_classic() +
    theme(plot.title = element_text(hjust = .5, size = 10))

Berdasarkan grafik tersebut dapat diketahui bahwa responden di Jawa Barat terbanyak di Kabupaten Bogor dengan jumlah lebih dari 1250 responden.

Stacked Chart

data_stacked <- data.frame(kode_Daerah = c(1,2), nama_daerah = c("Perkotaan", "Perdesaan"))
Data_stacked <- left_join(Databesaran1, data_stacked, by = c("Daerah"= "kode_Daerah"))
str(Data_stacked)
## tibble [25,890 × 7] (S3: tbl_df/tbl/data.frame)
##  $ Kabupaten     : num [1:25890] 7 72 6 72 77 77 75 11 10 1 ...
##  $ Daerah        : num [1:25890] 2 1 2 1 1 1 1 2 2 1 ...
##  $ Bahan_atap    : num [1:25890] 2 3 2 2 2 2 2 2 2 1 ...
##  $ tangki_septik : num [1:25890] 98 0 20 98 98 98 98 98 0 8 ...
##  $ air_minum     : num [1:25890] 998 0 0 10 0 0 0 998 0 0 ...
##  $ nama_kabupaten: chr [1:25890] "KAB. CIAMIS" "KOTA SUKABUMI" "KAB. TASIKMALAYA" "KOTA SUKABUMI" ...
##  $ nama_daerah   : chr [1:25890] "Perdesaan" "Perkotaan" "Perdesaan" "Perkotaan" ...
data_stacked2 <- data.frame(Bahan_atap = c(1,2,3,4,5,6,7,8), nama_bahan = c("Beton", "Genteng", "Seng", "Asbes", "Bambu", "Kayu", "Jerami", "lainnya"))
Data_stacked2 <- left_join(Data_stacked, data_stacked2, by = c("Bahan_atap"= "Bahan_atap"))
str(Data_stacked2)
## tibble [25,890 × 8] (S3: tbl_df/tbl/data.frame)
##  $ Kabupaten     : num [1:25890] 7 72 6 72 77 77 75 11 10 1 ...
##  $ Daerah        : num [1:25890] 2 1 2 1 1 1 1 2 2 1 ...
##  $ Bahan_atap    : num [1:25890] 2 3 2 2 2 2 2 2 2 1 ...
##  $ tangki_septik : num [1:25890] 98 0 20 98 98 98 98 98 0 8 ...
##  $ air_minum     : num [1:25890] 998 0 0 10 0 0 0 998 0 0 ...
##  $ nama_kabupaten: chr [1:25890] "KAB. CIAMIS" "KOTA SUKABUMI" "KAB. TASIKMALAYA" "KOTA SUKABUMI" ...
##  $ nama_daerah   : chr [1:25890] "Perdesaan" "Perkotaan" "Perdesaan" "Perkotaan" ...
##  $ nama_bahan    : chr [1:25890] "Genteng" "Seng" "Genteng" "Genteng" ...
ggplot(Data_stacked2, aes(x = nama_bahan, fill = factor(nama_daerah))) +
  geom_bar(position = "stack") +
  labs(x = "Daerah", y = "Jumlah", fill = "Bahan Atap") +
  theme_minimal()

Berdasarkan grafik tersebut dapat dilihat bahwa bangunan utama atap rumah di Jawa Barat paling banyak menggunakan genteng. Selain itu juga dapat lihat bahwa penggunaan genteng di perdesaan lebih banyak daripada perkotaan.

Histogram

DataDensity2 <- data %>%
  filter(!air_minum %in% c(0, 998))
DataDensity2
## # A tibble: 12,908 × 5
##    Kabupaten Daerah Bahan_atap tangki_septik air_minum
##        <dbl>  <dbl>      <dbl>         <dbl>     <dbl>
##  1        72      1          2            98        10
##  2         1      1          2            12         7
##  3         6      2          2            10        10
##  4         2      1          2            13        10
##  5        16      1          2             5        15
##  6         4      1          2             0        60
##  7        16      1          2             5         5
##  8         2      1          2             2         1
##  9        77      1          4            98        15
## 10        13      1          2            15        10
## # ℹ 12,898 more rows
ggplot(DataDensity2)+
  geom_histogram(aes(x = air_minum),fill="#69b3a2", color="#e9ecef", alpha=0.8)+
  labs(title="")+
  xlab("Lama Tempuh")+
  ylab("Jumlah")+
  xlim(0,35)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 134 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 2 rows containing missing values (`geom_bar()`).

Grafik tersebut memiliki sebran bimodal karena memiliki dua puncak.

Density Plot

DataDensity <- data %>%
  filter(!tangki_septik %in% c(0, 98))
DataDensity
## # A tibble: 10,791 × 5
##    Kabupaten Daerah Bahan_atap tangki_septik air_minum
##        <dbl>  <dbl>      <dbl>         <dbl>     <dbl>
##  1         6      2          2            20         0
##  2         1      1          1             8         0
##  3        16      1          2             6         0
##  4         1      1          2            12         7
##  5         6      2          2            10        10
##  6         2      1          2            13        10
##  7        16      1          2             5        15
##  8         2      2          2             8         0
##  9         4      1          2            17         0
## 10        12      1          2             3         0
## # ℹ 10,781 more rows
ggplot(DataDensity)+
  geom_density(aes(x=tangki_septik,fill= "Lama Bangunan" ),color="#e9ecef", alpha=0.4)+
  labs(title="Density Sebaran Lama Bangunan Tangki Septik")+
  xlab("Lama dalam Tahun")+
  ylab("Jumlah")+
  xlim(0, 50)
## Warning: Removed 54 rows containing non-finite values (`stat_density()`).

Berdasarkan Density Plot tersebut dapat dilihat bahwa sebaran datanya menjulur ke kanan dengan frekuensi terbanyak pada kurun waktu kurang lebih 10 tahun

Pie Chart

Pie_chart <- data.frame(
  Daerah  = c("Perkotaan", "Pedesaan"),
  count = table(cut(Databesaran1$Daerah, breaks=c(-Inf,1,2), labels=c("Perkotaan", "Pedesaan")))
)
Pie_chart
##      Daerah count.Var1 count.Freq
## 1 Perkotaan  Perkotaan      16953
## 2  Pedesaan   Pedesaan       8937
ggplot(Pie_chart, aes(x = "", y = count.Freq , fill = Daerah  )) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_brewer("Blues")+
  theme_void() +
  theme(legend.position = "right") +
  labs(title = "Komposisi Daerah", fill = "Perkotaan/Pedesaan") +
  geom_text(aes(label = count.Freq), position = position_stack(vjust = 0.5))

Berdasarkan Pie Chart di atas dapat diketahui bahwa komposisi di perkotaan lebih besar daripada di pedesaan

Pie_chart <- data.frame(
  Bahan  = c("Beton", "Genteng", "Seng", "Asbes", "Bambu", "Kayu", "Jerami", "lainnya"),
  count = table(cut(Data_stacked2$Bahan_atap, breaks=c(-Inf,1,2,3,4,5,6,7,8), labels=c("Beton", "Genteng", "Seng", "Asbes", "Bambu", "Kayu", "Jerami", "lainnya")))
)
Pie_chart
##     Bahan count.Var1 count.Freq
## 1   Beton      Beton        793
## 2 Genteng    Genteng      21151
## 3    Seng       Seng        436
## 4   Asbes      Asbes       3308
## 5   Bambu      Bambu        149
## 6    Kayu       Kayu          4
## 7  Jerami     Jerami          7
## 8 lainnya    lainnya         42
ggplot(Pie_chart, aes(x = "", y = count.Freq , fill = Bahan  )) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_brewer("purples")+
  theme_void() +
  theme(legend.position = "right") +
  labs(title = "Komposisi Bahan Atap", fill = "Bahan Atap") +
  geom_text(aes(label = count.Freq), position = position_stack(vjust = 0.5))

Berdasarkan grafik tersebut dapat dilihat bahwa Warga Jawa Barat mayoritas menggunakan bahan atap berupa genteng.