library(readr)
library(readxl)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ purrr 1.0.2
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ── 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)
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.2
##
## 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(ggplot2)
library(dplyr)
library(treemap)
## Warning: package 'treemap' was built under R version 4.3.2
Dataset yang digunakan adalah bagian data dari SUSENAS (Survei Sosial dan Ekonomi Nasional) yaitu KOR Rumah Tangga pada tahun 2023. Sebelum digunakan, dilakukan proses pembersihan terhadap data untuk memperoleh variabel-variabel yang diperlukan maupun melakukan perubahan format. Hasil dari proses pembersihan data ini kemudian disimpan dalam format file Excel.
susenaskorrt<-read_xlsx("C:/Users/user/OneDrive/Dokumen/semester 4/visdat/SusenasKORRumahTangga.xlsx")
## Warning: Expecting numeric in F5299 / R5299C6: got '1300 +'
## Warning: Expecting numeric in F6853 / R6853C6: got '1300 +'
## Warning: Expecting numeric in F8171 / R8171C6: got '1300 +'
susenaskorrt
## # A tibble: 25,890 × 10
## LokasiTinggal JumlahAnggotaKeluarga KepemilikanAC DayaMeteran1 DayaMeteran2
## <chr> <dbl> <chr> <chr> <chr>
## 1 desa 1 Tidak Memiliki 450 0
## 2 kota 1 Tidak Memiliki 450 0
## 3 desa 1 Tidak Memiliki 450 450
## 4 kota 2 Tidak Memiliki 900 0
## 5 kota 1 Tidak Memiliki 450 0
## 6 kota 1 Memiliki 1300 + 0
## 7 kota 1 Tidak Memiliki 1300 + 0
## 8 desa 2 Tidak Memiliki 450 0
## 9 desa 1 Tidak Memiliki 450 0
## 10 kota 1 Tidak Memiliki 450 0
## # ℹ 25,880 more rows
## # ℹ 5 more variables: DayaMeteran3 <dbl>, SUMemasak <dbl>, SUPenerangan <dbl>,
## # KepemilikanKulkas <chr>, KepemilikanWaterHeater <chr>
view(susenaskorrt)
Pada kasus ini, dilakukan perbandingan sampel jumlah masyarakat Jawa Barat tahun 2023 yang tinggal di desa dan di kota.
ggplot(susenaskorrt, aes(x = LokasiTinggal)) +
geom_bar(fill = "darkorange") +
labs(title = "Lokasi Tempat Tinggal", x = "Lokasi", y = "Jumlah") +
theme_light() +
coord_cartesian()
Berdasarkan diagram batang tersebut, sampel masyarakat Jawa Barat pada
tahun 2023 yang tinggal di kota lebih banyak daripada yang tinggal di
desa.
Kemudian, dilakukan perbandingan intensitas dari jumlah anggota keluarga di Jawa Barat tahun 2023 dan diurutkan dari yang terbesar.
susenaskorrt %>%
count(JumlahAnggotaKeluarga) %>%
arrange(desc(n)) %>% #
ggplot() +
geom_segment(aes(x = fct_reorder(as.factor(JumlahAnggotaKeluarga), n), xend = fct_reorder(as.factor(JumlahAnggotaKeluarga), n), y = 0, yend = n), color = "black") +
geom_point(aes(x = fct_reorder(as.factor(JumlahAnggotaKeluarga), n), y = n), color = "darkorange", size = 2) +
scale_y_continuous(expand = c(0, 0)) +
coord_flip() +
ggtitle("Urutan Jumlah Anggota Keluarga dari Intensitas yang Terbanyak") +
xlab("") +
ylab("Jumlah") +
theme_light() +
theme(plot.title = element_text(hjust = 0.1))
Berdasarkan diagram tersebut, sampel masyarakat Jawa Barat pada tahun
2023 memiliki satu anggota keluarga paling banyak. Disusul dengan 2
anggoota keluarga, 0 anggota keluarga, 3 anggota keluarga, 4 anggota
keluarga, 5 anggota keluarga dan yang terakhir 6 anggota keluarga.
data <- data.frame(
LokasiTinggal = as.factor(susenaskorrt$LokasiTinggal),
JumlahAnggotaKeluarga = as.numeric(susenaskorrt$JumlahAnggotaKeluarga)
)
ggplot(data, aes(x = LokasiTinggal, y = JumlahAnggotaKeluarga)) +
geom_boxplot(fill = "lightblue", color = "darkblue", alpha = 0.7) +
labs(title = "Sebaran Jumlah Anggota Keluarga Berdasarkan Lokasi Tinggal",
x = "Lokasi Tinggal",
y = "Jumlah Anggota Keluarga") +
theme_classic()
Sebaran jumlah anggota keluarga antara di desa dan di kota di Jawa Barat
pada tahun 2023 hampir sama.
data <- data.frame(
SUPenerangan = as.factor(susenaskorrt$DayaMeteran1),
JumlahAnggotaKeluarga = as.numeric(susenaskorrt$JumlahAnggotaKeluarga)
)
ggplot(data, aes(x = factor(SUPenerangan), y = JumlahAnggotaKeluarga)) +
geom_violin(fill = "darkblue") +
labs(title = "Daya Listrik Pada Meteran 1 Berdasarkan Jumlah Anggota Keluarga",
x = "Daya Meteran 1",
y = "Jumlah Anggota Keluarga") +
theme_minimal()
Sebaran jumlah anggota keluarga terhadap penggunaan daya pada meteran 1
untuk daya 450 watt memiliki lebar yang lebih besar dibanding yang
lainnya. Untuk jarak antarkuartilnya relatif sama namun garis yang
menghubungkan dengan titik ekstrem relatif beragam.
datatm <- as.data.frame(
dtm <- table(susenaskorrt$SUPenerangan,susenaskorrt$LokasiTinggal)
)
datatm$Var1 <- as.character(datatm$Var1)
map_kegiatan <- c("1"="LPLNM", "2"="LPLNnM", "3"="LnPLN", "4"="BL")
datatm_modified <- filter(datatm,Var1!=0) %>%
mutate(Var1 = case_when(
Var1 %in% names(map_kegiatan) ~ map_kegiatan[Var1]
))
treemap(datatm_modified,
index = c("Var1","Var2"),
vSize = "Freq",
draw=TRUE,
title="Sumber Utama Penerangan berdasarkan Lokasi Tinggal",
fontsize.title=20,
fontsize.labels=8,
fontcolor.labels="white",
width = 21000,
height = 12000,
fontsize.legend = 8,
vLabel.rot = 1)
Pada treemap dapat dilihat bahwa pada penggunaan listrik PLN dengan
meteran di kota lebih banyak dibandingkan dengan di desa, sedangkan pada
penggunaan yang lain seperti listrik PLN tanpa meteran, listrik non PLN
dan tanpa listrik kurang terlihat proporsinya karena didominasi oleh
penggunaan listrik PLN dengan meteran.
daya <- data.frame(
data <- table(susenaskorrt$DayaMeteran1)
)
daya <- susenaskorrt %>%
count(DayaMeteran1) %>%
rename(Var1 = DayaMeteran1, count = n)
daya$fraction <- daya$count / sum(daya$count)
daya$ymax <- cumsum(daya$fraction)
daya$ymin <- c(0, head(daya$ymax, n=-1))
ggplot(daya, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=Var1)) +
geom_rect() +
coord_polar(theta="y") +
xlim(c(0, 4)) +
scale_fill_brewer(palette = "Set2")+
labs(title = "Penggunaan Daya Pada Meteran 1",fill="Daya")+
theme_void()
Dari diagram tersebut, dapat diketahui bahwa hampir sekitar 50% pengguna
listrik menggunakan daya sebesar 450 watt pada meteran 1. Kemudian,
disusul dengan penggunaan daya sebesar 900 watt, 1300 + watt dan yang
terakhir 0 watt atau bisa diasumsikan mereka bukan pengguna listrik pada
meteran tersebut.
daya <- data.frame(
data <- table(susenaskorrt$DayaMeteran2)
)
daya %>%
filter(Var1 != 0) %>%
ggplot(aes(x="", y=Freq, fill =Var1))+
scale_fill_brewer(palette = "Set2") +
geom_bar(stat= "identity",width =2)+
coord_polar("y",start=0)+
labs(title = "Penggunaan Daya Pada Meteran 2",fill="Daya")+
theme_void()
Karena pengguna listrik pada meteran 2 didominasi oleh nilai 0 yang
diasumsikan bahwa mereka bukan pengguna listrik pada meteran tersebut
sebesar 90%, maka nilai tersebut dibuang agar daya lainnya dapat
diketahui besarnya. Kemudian, dilakukan visualisasi komposisi terhadap 3
daya yaitu 450, 900 dan 1300 +. Sehingga diperoleh urutan daya yang
digunakan pada meteran 2 yaitu 900 watt, 450 watt dan yang terakhir 1300
+ watt.