library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
Data <- read.delim(file.choose(), header = FALSE, fill = TRUE,
                   col.names = c("Provinsi", "Sanitasi"))

Data$Provinsi <- trimws(Data$Provinsi)
Data$Sanitasi <- as.numeric(Data$Sanitasi)
## Warning: NAs introduced by coercion
Data <- Data[!is.na(Data$Sanitasi) & Data$Provinsi != "INDONESIA", ]
Data
##                Provinsi Sanitasi
## 2                  ACEH    82.21
## 3        SUMATERA UTARA    87.47
## 4        SUMATERA BARAT    74.59
## 5                  RIAU    91.21
## 6                 JAMBI    85.88
## 7      SUMATERA SELATAN    85.50
## 8              BENGKULU    85.75
## 9               LAMPUNG    87.29
## 10 KEP. BANGKA BELITUNG    96.45
## 11            KEP. RIAU    90.96
## 12          DKI JAKARTA    93.98
## 13           JAWA BARAT    76.20
## 14          JAWA TENGAH    87.51
## 15        DI YOGYAKARTA    96.94
## 16           JAWA TIMUR    88.26
## 17               BANTEN    90.71
## 18                 BALI    98.20
## 19  NUSA TENGGARA BARAT    88.29
## 20  NUSA TENGGARA TIMUR    80.80
## 21     KALIMANTAN BARAT    88.37
## 22    KALIMANTAN TENGAH    83.14
## 23   KALIMANTAN SELATAN    86.80
## 24     KALIMANTAN TIMUR    92.57
## 25     KALIMANTAN UTARA    86.00
## 26       SULAWESI UTARA    87.72
## 27      SULAWESI TENGAH    79.62
## 28     SULAWESI SELATAN    94.19
## 29    SULAWESI TENGGARA    91.96
## 30            GORONTALO    84.70
## 31       SULAWESI BARAT    85.98
## 32               MALUKU    83.09
## 33         MALUKU UTARA    84.12
## 34          PAPUA BARAT    78.55
## 35     PAPUA BARAT DAYA    79.56
## 36                PAPUA    76.71
## 37        PAPUA SELATAN    65.06
## 38         PAPUA TENGAH    39.73
## 39     PAPUA PEGUNUNGAN    16.34
str(Data)
## 'data.frame':    38 obs. of  2 variables:
##  $ Provinsi: chr  "ACEH" "SUMATERA UTARA" "SUMATERA BARAT" "RIAU" ...
##  $ Sanitasi: num  82.2 87.5 74.6 91.2 85.9 ...
nrow(Data)
## [1] 38
length(Data$Sanitasi)
## [1] 38
min(Data$Sanitasi, na.rm = TRUE)
## [1] 16.34
max(Data$Sanitasi, na.rm = TRUE)
## [1] 98.2
range(Data$Sanitasi, na.rm = TRUE)
## [1] 16.34 98.20
max(Data$Sanitasi, na.rm = TRUE) - min(Data$Sanitasi, na.rm = TRUE)
## [1] 81.86
mean(Data$Sanitasi, na.rm = TRUE)
## [1] 82.95816
median(Data$Sanitasi, na.rm = TRUE)
## [1] 85.99
var(Data$Sanitasi, na.rm = TRUE)
## [1] 223.8079
sd(Data$Sanitasi, na.rm = TRUE)
## [1] 14.96021
quantile(Data$Sanitasi, na.rm = TRUE)
##      0%     25%     50%     75%    100% 
## 16.3400 81.1525 85.9900 90.1250 98.2000
summary(Data$Sanitasi)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   16.34   81.15   85.99   82.96   90.12   98.20
ggplot(Data, aes(x = Sanitasi)) +
  geom_histogram(binwidth = 10, boundary = 0,
                 fill = "steelblue",
                 color = "white",
                 na.rm = TRUE) +
  labs(
    title = "Histogram Persentase Rumah Tangga dengan Akses Sanitasi Layak",
    x = "Persentase Akses Sanitasi Layak (%)",
    y = "Frekuensi"
  )

ggplot(Data, aes(y = Sanitasi)) +
  geom_boxplot(fill = "lemonchiffon1",
               color = "lemonchiffon4",
               na.rm = TRUE) +
  labs(
    title = "Boxplot Persentase Rumah Tangga dengan Akses Sanitasi Layak",
    y = "Persentase Akses Sanitasi Layak (%)"
  )

Data_Kalimantan <- Data[grepl("KALIMANTAN", Data$Provinsi), ]
Data_Kalimantan
##              Provinsi Sanitasi
## 21   KALIMANTAN BARAT    88.37
## 22  KALIMANTAN TENGAH    83.14
## 23 KALIMANTAN SELATAN    86.80
## 24   KALIMANTAN TIMUR    92.57
## 25   KALIMANTAN UTARA    86.00
ggplot(Data_Kalimantan, aes(x = Provinsi, y = Sanitasi, fill = Provinsi)) +
  geom_col(na.rm = TRUE) +
  geom_text(aes(label = Sanitasi), vjust = -0.3) +
  labs(
    title = "Persentase Rumah Tangga dengan Akses Sanitasi Layak di Kalimantan",
    x = "Provinsi",
    y = "Persentase Akses Sanitasi Layak (%)"
  ) +
  theme(axis.text.x = element_text(angle = 30, hjust = 1))