# 1. LOAD LIBRARY
library(readxl)
library(dplyr)
library(ggplot2)
library(tidyr)
library(scales)

file_path <- "Jumlah Tenaga Kerja Industri Skala Mikro dan Kecil Menurut 2-digit KBLI, 2025.xlsx"

data_kbli <- read_excel(file_path, skip = 3, col_names = FALSE) %>%
  select(KBLI = 1, Mikro = 2, Kecil = 3) %>%
  filter(!is.na(KBLI), KBLI != "JUMLAH") %>%
  mutate(
    Mikro = as.numeric(Mikro),
    Kecil = as.numeric(Kecil),
    Total = Mikro + Kecil,
    KBLI_Bersih = gsub("^[0-9]+\\s*", "", KBLI),
    KBLI_Label = ifelse(nchar(KBLI_Bersih) > 22, paste0(substr(KBLI_Bersih, 1, 20), "..."), KBLI_Bersih)
  )

top10_kbli <- data_kbli %>%
  slice_max(order_by = Total, n = 10)

top10_long <- top10_kbli %>%
  pivot_longer(cols = c(Mikro, Kecil), names_to = "Skala", values_to = "Jumlah")

data_long <- data_kbli %>%
  pivot_longer(cols = c(Mikro, Kecil), names_to = "Skala", values_to = "Jumlah")


# KATEGORIK Horizontal Bar Chart
p1 <- ggplot(top10_kbli, aes(x = reorder(KBLI_Label, Total), y = Total)) +
  geom_col(fill = "#2c3e50") +
  coord_flip() +
  scale_y_continuous(labels = comma) +
  labs(
    title = "1. Top 10 Kelompok Industri Berdasarkan Total Tenaga Kerja (2025)",
    x = "Kelompok Industri (KBLI)",
    y = "Jumlah Tenaga Kerja (Orang)"
  ) +
  theme_minimal()
print(p1)

1.Top 10 industri (total tenaga kerja)

Karena nama sektor itu data kategorik (bukan angka), cara yang bener buat bandingin antar sektor ya pakai diagram batang, bukan histogram. Hasilnya: sektor Makanan jauh paling gede, sekitar 4 juta orang gabungan Mikro+Kecil — jauh di atas sektor lain.

# Stacked Bar Chart 
p2 <- ggplot(top10_long, aes(x = reorder(KBLI_Label, Jumlah), y = Jumlah, fill = Skala)) +
  geom_bar(stat = "identity", position = "stack") +
  coord_flip() +
  scale_y_continuous(labels = comma) +
  scale_fill_manual(values = c("Mikro" = "#2980b9", "Kecil" = "#e67e22")) +
  labs(
    title = "2. Komposisi Tenaga Kerja Mikro dan Kecil pada Top 10 Industri",
    x = "Kelompok Industri (KBLI)",
    y = "Jumlah Tenaga Kerja (Orang)",
    fill = "Skala Usaha"
  ) +
  theme_minimal()
print(p2)

2. komposisi Mikro vs Kecil

Ini nunjukkin dari 10 sektor terbesar, berapa porsi Mikro vs Kecil-nya. Kebanyakan sektor didominasi Mikro, tapi ada anomali menarik: sektor Pengolahan Tembakau malah kebalik — Kecil (±769rb) jauh lebih gede dari Mikro (±173rb).

# NUMERIK Boxplot

p3 <- ggplot(data_long, aes(x = Skala, y = Jumlah, fill = Skala)) +
  geom_boxplot(alpha = 0.7, outlier.color = "red") +
  scale_y_log10(labels = comma) +
  scale_fill_manual(values = c("Mikro" = "#2ecc71", "Kecil" = "#8e44ad")) +
  labs(
    title = "3. Sebaran Jumlah Tenaga Kerja Berdasarkan Skala Usaha (Skala Log10)",
    x = "Skala Usaha",
    y = "Jumlah Tenaga Kerja (Orang)"
  ) +
  theme_minimal() +
  theme(legend.position = "none")
print(p3)
## Warning in scale_y_log10(labels = comma): log-10 transformation introduced
## infinite values.
## Warning: Removed 2 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

3.sebaran data numerik

Mikro dan Kecil itu variabel numerik, jadi boxplot dipakai buat liat sebarannya. Sumbu-y gw bikin skala log10 karena rentang datanya kejauhan (dari puluhan ribu sampai jutaan) — kalau nggak di-log, boxplot-nya bakal keliatan gepeng doang. Titik merah = outlier, sektor yang jumlahnya jauh di atas rata-rata sesama skalanya.

# Scatter Plot 
p4 <- ggplot(data_kbli, aes(x = Mikro, y = Kecil)) +
  geom_point(color = "#c0392b", size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = FALSE, color = "#34495e", linetype = "dashed") +
  scale_x_continuous(labels = comma) +
  scale_y_continuous(labels = comma) +
  labs(
    title = "4. Hubungan Jumlah Tenaga Kerja Usaha Mikro dan Kecil per KBLI",
    x = "Jumlah Tenaga Kerja Mikro (Orang)",
    y = "Jumlah Tenaga Kerja Kecil (Orang)"
  ) +
  theme_minimal()
print(p4)
## `geom_smooth()` using formula = 'y ~ x'

4.Mikro vs Kecil

Ngecek apakah sektor yang tenaga kerja Mikro-nya banyak, Kecil-nya juga ikutan banyak. Hasil korelasinya ±0.70 — artinya hubungannya positif, sedang ke kuat. Sektor Tembakau lagi-lagi jadi titik yang menyimpang jauh dari pola umum.