Data=read.table(file.choose(),header=T,sep="\t")
Data
##                Provinsi Jumlah_PT
## 1                  Aceh        77
## 2        Sumatera Utara       191
## 3        Sumatera Barat        85
## 4                  Riau        65
## 5                 Jambi        34
## 6      Sumatera Selatan        80
## 7              Bengkulu        16
## 8               Lampung        59
## 9  Kep. Bangka Belitung        12
## 10            Kep. Riau        28
## 11          DKI Jakarta       241
## 12           Jawa Barat       360
## 13          Jawa Tengah       237
## 14        DI Yogyakarta       106
## 15           Jawa Timur       335
## 16               Banten        96
## 17                 Bali        55
## 18  Nusa Tenggara Barat        57
## 19  Nusa Tenggara Timur        61
## 20     Kalimantan Barat        45
## 21    Kalimantan Tengah        26
## 22   Kalimantan Selatan        50
## 23     Kalimantan Timur        49
## 24     Kalimantan Utara         9
## 25       Sulawesi Utara        47
## 26      Sulawesi Tengah        33
## 27     Sulawesi Selatan       174
## 28    Sulawesi Tenggara        49
## 29            Gorontalo        13
## 30       Sulawesi Barat        18
## 31               Maluku        29
## 32         Maluku Utara        21
## 33          Papua Barat        12
## 34     Papua Barat Daya        12
## 35                Papua        29
## 36         Papua Tengah         8
## 37     Papua Pegunungan        13
## 38        Papua Selatan         8
length(Data$Jumlah_PT)
## [1] 38
mean(Data$Jumlah_PT)
## [1] 74.73684
median(Data$Jumlah_PT)
## [1] 48
range(Data$Jumlah_PT)
## [1]   8 360
max(Data$Jumlah_PT)-min(Data$Jumlah_PT)
## [1] 352
max(Data$Jumlah_PT)
## [1] 360
min(Data$Jumlah_PT)
## [1] 8
var(Data$Jumlah_PT)
## [1] 7762.415
sd(Data$Jumlah_PT)
## [1] 88.10457
quantile(Data$Jumlah_PT)
##     0%    25%    50%    75%   100% 
##   8.00  18.75  48.00  79.25 360.00
library(ggplot2)

ggplot(Data, aes(x = Jumlah_PT)) +
  geom_histogram(
    binwidth = 25,
    color = "black"
  ) +
  labs(
    title = "Distribusi Jumlah Perguruan Tinggi di Indonesia Tahun 2025",
    x = "Jumlah Perguruan Tinggi",
    y = "Frekuensi"
  ) +
  theme_classic() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5),
    plot.title = element_text(
      hjust = 0.5,
      face = "bold"
    )
  )

ggplot(Data, aes(x = "", y = Jumlah_PT)) +
  geom_boxplot() +
  labs(
    title = "Boxplot Jumlah Perguruan Tinggi di Indonesia Tahun 2025",
    x = "",
    y = "Jumlah Perguruan Tinggi"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(
      hjust = 0.5,
      face = "bold"
    )
  )

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(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ lubridate 1.9.5     ✔ tibble    3.3.1
## ✔ purrr     1.2.2     ✔ tidyr     1.3.2
## ✔ readr     2.2.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(ggplot2)

Data_Kalimantan <- Data %>%
  filter(str_starts(Provinsi, "Kalimantan"))

Data_Kalimantan
##             Provinsi Jumlah_PT
## 1   Kalimantan Barat        45
## 2  Kalimantan Tengah        26
## 3 Kalimantan Selatan        50
## 4   Kalimantan Timur        49
## 5   Kalimantan Utara         9
ggplot(
  Data_Kalimantan,
  aes(x = Provinsi, y = Jumlah_PT, fill = Provinsi)
) +
  geom_col() +
  labs(
    title = "Jumlah Perguruan Tinggi di Pulau Kalimantan Tahun 2025",
    x = "Provinsi",
    y = "Jumlah Perguruan Tinggi"
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(
      angle = 45,
      hjust = 1
    ),
    plot.title = element_text(
      hjust = 0.5,
      face = "bold"
    ),
    legend.position = "none"
  )