# Data PDRB Atas Dasar Harga Berlaku 38 Provinsi, 2024 (miliar rupiah)
pdrb <- data.frame(
  provinsi = c("Aceh","Sumatera Utara","Sumatera Barat","Riau","Jambi",
               "Sumatera Selatan","Bengkulu","Lampung","Kep. Bangka Belitung","Kep. Riau",
               "DKI Jakarta","Jawa Barat","Jawa Tengah","DI Yogyakarta","Jawa Timur","Banten",
               "Bali","Nusa Tenggara Barat","Nusa Tenggara Timur",
               "Kalimantan Barat","Kalimantan Tengah","Kalimantan Selatan",
               "Kalimantan Timur","Kalimantan Utara",
               "Sulawesi Utara","Sulawesi Tengah","Sulawesi Selatan","Sulawesi Tenggara",
               "Gorontalo","Sulawesi Barat",
               "Maluku","Maluku Utara","Papua Barat","Papua",
               "Papua Selatan","Papua Tengah","Papua Pegunungan","Papua Barat Daya"),
  pulau = c(rep("Sumatera", 10),
            rep("Jawa", 6),
            rep("Bali-Nusra", 3),
            rep("Kalimantan", 5),
            rep("Sulawesi", 6),
            rep("Maluku-Papua", 8)),
  pdrb_miliar = c(243000, 1146000, 333000, 1112000, 322000,
                  663000, 104000, 483000, 107000, 352000,
                  3679000, 2823000, 1817000, 193000, 3168000, 873000,
                  299000, 182000, 132000,
                  300000, 223000, 287000, 858000, 147000,
                  187000, 377000, 696000, 189000, 54000, 64000,
                  63000, 95000, 113000, 320000,
                  38000, 45000, 25000, 32000)
)

str(pdrb)
## 'data.frame':    38 obs. of  3 variables:
##  $ provinsi   : chr  "Aceh" "Sumatera Utara" "Sumatera Barat" "Riau" ...
##  $ pulau      : chr  "Sumatera" "Sumatera" "Sumatera" "Sumatera" ...
##  $ pdrb_miliar: num  243000 1146000 333000 1112000 322000 ...
head(pdrb, 10)
##                provinsi    pulau pdrb_miliar
## 1                  Aceh Sumatera      243000
## 2        Sumatera Utara Sumatera     1146000
## 3        Sumatera Barat Sumatera      333000
## 4                  Riau Sumatera     1112000
## 5                 Jambi Sumatera      322000
## 6      Sumatera Selatan Sumatera      663000
## 7              Bengkulu Sumatera      104000
## 8               Lampung Sumatera      483000
## 9  Kep. Bangka Belitung Sumatera      107000
## 10            Kep. Riau Sumatera      352000
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
## 
## 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
top10 <- pdrb %>% arrange(desc(pdrb_miliar)) %>% slice_head(n = 10)

ggplot(top10, aes(x = reorder(provinsi, pdrb_miliar), y = pdrb_miliar / 1000)) +
  geom_col(fill = "#2C7FB8") +
  coord_flip() +
  labs(title = "10 Provinsi dengan PDRB Atas Dasar Harga Berlaku Tertinggi, 2024",
       x = "Provinsi", y = "PDRB (triliun rupiah)",
       caption = "Sumber: BPS, PDRB ADHB Menurut Provinsi 2024") +
  theme_minimal(base_size = 12)

agregat_pulau <- pdrb %>%
  group_by(pulau) %>%
  summarise(total_pdrb = sum(pdrb_miliar) / 1000,
            jumlah_provinsi = n()) %>%
  arrange(desc(total_pdrb))

agregat_pulau$pulau <- factor(agregat_pulau$pulau, levels = agregat_pulau$pulau)

ggplot(agregat_pulau, aes(x = pulau, y = total_pdrb, fill = pulau)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = round(total_pdrb, 0)), vjust = -0.4, size = 3.5) +
  labs(title = "Total PDRB Atas Dasar Harga Berlaku Menurut Pulau, 2024",
       x = "Pulau/Gugusan Pulau", y = "Total PDRB (triliun rupiah)",
       caption = "Sumber: BPS, PDRB ADHB Menurut Provinsi 2024, diolah") +
  theme_minimal(base_size = 12)

kalimantan <- pdrb %>% filter(pulau == "Kalimantan") %>% arrange(desc(pdrb_miliar))

ggplot(kalimantan, aes(x = reorder(provinsi, pdrb_miliar), y = pdrb_miliar / 1000)) +
  geom_col(fill = "#31A354") +
  geom_text(aes(label = round(pdrb_miliar / 1000, 0)), hjust = -0.15, size = 3.5) +
  coord_flip(ylim = c(0, max(kalimantan$pdrb_miliar) / 1000 * 1.15)) +
  labs(title = "PDRB Atas Dasar Harga Berlaku 5 Provinsi di Kalimantan, 2024",
       x = "Provinsi", y = "PDRB (triliun rupiah)",
       caption = "Sumber: BPS, PDRB ADHB Menurut Provinsi 2024") +
  theme_minimal(base_size = 12)