1. Pendahuluan

Inflasi merupakan salah satu indikator ekonomi yang menunjukkan perubahan tingkat harga barang dan jasa yang dikonsumsi masyarakat. Nilai inflasi yang tinggi di suatu wilayah menunjukkan kenaikan harga yang cukup signifikan, sedangkan nilai negatif (deflasi) menunjukkan penurunan harga secara umum.

Pada tugas ini, kami menganalisis data inflasi year-on-year (y-on-y) Desember 2024 untuk seluruh provinsi di Indonesia, bersumber dari Badan Pusat Statistik (BPS). Analisis dilakukan untuk melihat penyebaran tingkat inflasi antarprovinsi serta mengelompokkan provinsi berdasarkan status inflasinya.

1.1 Sumber Data

Data bersumber dari rilis resmi Berita Resmi Statistik (BRS) Badan Pusat Statistik Republik Indonesia:

“Inflasi Year-on-Year (y-on-y) Desember 2024 sebesar 1,57 Persen. Inflasi Provinsi y-on-y Tertinggi Terjadi di Provinsi Papua Pegunungan sebesar 5,36 Persen dan Terendah Terjadi di Provinsi Sulawesi Utara sebesar 0,44 Persen.” Tanggal rilis: 2 Januari 2025

Tautan: https://www.bps.go.id/id/pressrelease/2025/01/02/2397/inflasi-year-on-year--y-on-y--desember-2024-sebesar-1-57-persen--inflasi-provinsi-y-on-y-tertinggi-terjadi-di-provinsi-papua-pegunungan-sebesar-5-36-persen-dan-dan-terendah-terjadi-di-provinsi-sulawesi-utara-sebesar-0-44-persen-.html

Portal resmi BPS: https://www.bps.go.id

1.2 Tujuan Analisis

  1. Mengetahui penyebaran tingkat inflasi antarprovinsi.
  2. Mengetahui nilai rata-rata, median, standar deviasi, minimum, dan maksimum.
  3. Membandingkan tingkat inflasi antarprovinsi dan antarpulau.
  4. Mengelompokkan provinsi berdasarkan status inflasi.
  5. Menampilkan hasil analisis dalam bentuk visualisasi data numerik dan kategorik.

2. Import dan Pemeriksaan Data

Data dibaca dari file data/data.csv.

data_inflasi <- read.csv(
  "data.csv",
  sep = ";",
  dec = ".",
  stringsAsFactors = FALSE,
  fileEncoding = "UTF-8-BOM"
)

head(data_inflasi) %>% rapi_tabel()
bps_kode_provinsi bps_nama_provinsi tahun bulan inflasi satuan
11 Aceh 2024 Desember 2.17 persen
12 Sumatera Utara 2024 Desember 2.12 persen
13 Sumatera Barat 2024 Desember 0.89 persen
14 Riau 2024 Desember 1.25 persen
15 Jambi 2024 Desember 1.43 persen
16 Sumatera Selatan 2024 Desember 1.20 persen

2.1 Struktur Data

str(data_inflasi)
## 'data.frame':    38 obs. of  6 variables:
##  $ bps_kode_provinsi: int  11 12 13 14 15 16 17 18 19 21 ...
##  $ bps_nama_provinsi: chr  "Aceh" "Sumatera Utara" "Sumatera Barat" "Riau" ...
##  $ tahun            : int  2024 2024 2024 2024 2024 2024 2024 2024 2024 2024 ...
##  $ bulan            : chr  "Desember" "Desember" "Desember" "Desember" ...
##  $ inflasi          : num  2.17 2.12 0.89 1.25 1.43 1.2 0.84 1.57 0.75 2.09 ...
##  $ satuan           : chr  "persen" "persen" "persen" "persen" ...

2.2 Penjelasan Variabel

data.frame(
  Kolom = c("bps_kode_provinsi", "bps_nama_provinsi", "tahun", "bulan", "inflasi", "satuan"),
  Keterangan = c(
    "Kode wilayah provinsi menurut BPS",
    "Nama provinsi",
    "Tahun periode data",
    "Bulan periode data",
    "Tingkat inflasi year-on-year (y-on-y)",
    "Satuan nilai inflasi (persen)"
  )
) %>%
  rapi_tabel(caption = "Data Dictionary")
Data Dictionary
Kolom Keterangan
bps_kode_provinsi Kode wilayah provinsi menurut BPS
bps_nama_provinsi Nama provinsi
tahun Tahun periode data
bulan Bulan periode data
inflasi Tingkat inflasi year-on-year (y-on-y)
satuan Satuan nilai inflasi (persen)

2.3 Jumlah Data dan Nama Kolom

cat("Jumlah baris:", nrow(data_inflasi), "\n")
## Jumlah baris: 38
cat("Jumlah kolom:", ncol(data_inflasi), "\n")
## Jumlah kolom: 6
names(data_inflasi)
## [1] "bps_kode_provinsi" "bps_nama_provinsi" "tahun"            
## [4] "bulan"             "inflasi"           "satuan"

2.4 Ringkasan Data

summary(data_inflasi)
##  bps_kode_provinsi bps_nama_provinsi     tahun            bulan   
##  Min.   :11.00     Length   :38      Min.   :2024   Length   :38  
##  1st Qu.:23.50     N.unique :38      1st Qu.:2024   N.unique : 1  
##  Median :57.00     N.blank  : 0      Median :2024   N.blank  : 0  
##  Mean   :52.55     Min.nchar: 4      Mean   :2024   Min.nchar: 8  
##  3rd Qu.:74.75     Max.nchar:25      3rd Qu.:2024   Max.nchar: 8  
##  Max.   :97.00                       Max.   :2024                 
##     inflasi             satuan  
##  Min.   :-0.790   Length   :38  
##  1st Qu.: 1.235   N.unique : 1  
##  Median : 1.485   N.blank  : 0  
##  Mean   : 1.581   Min.nchar: 6  
##  3rd Qu.: 1.847   Max.nchar: 6  
##  Max.   : 5.360

2.5 Pemeriksaan Tahun dan Bulan

data_inflasi %>%
  count(tahun, bulan) %>%
  rapi_tabel(caption = "Cakupan Periode Data")
Cakupan Periode Data
tahun bulan n
2024 Desember 38

Data ini merupakan snapshot satu periode (Desember 2024) untuk seluruh provinsi, bukan data deret waktu multi-bulan. Oleh karena itu, analisis tren waktu tidak relevan di sini, dan sebagai gantinya kami menambahkan perbandingan antarpulau pada bagian 4.5.

3. Statistik Deskriptif

Statistik deskriptif digunakan untuk mengetahui gambaran umum tingkat inflasi dalam data.

statistik <- data.frame(
  Statistik = c(
    "Rata-rata (Mean)",
    "Median",
    "Standar Deviasi",
    "Nilai Minimum",
    "Nilai Maksimum",
    "Jumlah Provinsi"
  ),
  Nilai = c(
    mean(data_inflasi$inflasi, na.rm = TRUE),
    median(data_inflasi$inflasi, na.rm = TRUE),
    sd(data_inflasi$inflasi, na.rm = TRUE),
    min(data_inflasi$inflasi, na.rm = TRUE),
    max(data_inflasi$inflasi, na.rm = TRUE),
    nrow(data_inflasi)
  )
)

statistik %>%
  rapi_tabel(digits = 2, caption = "Statistik Deskriptif Tingkat Inflasi (%)")
Statistik Deskriptif Tingkat Inflasi (%)
Statistik Nilai
Rata-rata (Mean) 1.58
Median 1.48
Standar Deviasi 0.90
Nilai Minimum -0.79
Nilai Maksimum 5.36
Jumlah Provinsi 38.00

4. Visualisasi Data Numerik

4.1 Histogram Tingkat Inflasi

Histogram digunakan untuk melihat penyebaran nilai inflasi antarprovinsi.

ggplot(data_inflasi, aes(x = inflasi)) +
  geom_histogram(bins = 10, fill = "steelblue", color = "white") +
  labs(
    title = "Distribusi Tingkat Inflasi Antarprovinsi",
    subtitle = "Year-on-Year, Desember 2024",
    x = "Tingkat Inflasi (%)",
    y = "Frekuensi (Jumlah Provinsi)"
  ) +
  theme_minimal()

Interpretasi: Histogram menunjukkan bagaimana nilai inflasi tersebar antarprovinsi. Sebagian besar provinsi berada pada rentang inflasi yang relatif rendah (sekitar 1%–2%), sedangkan beberapa provinsi di wilayah timur Indonesia memiliki nilai yang jauh lebih tinggi.

4.2 Boxplot Tingkat Inflasi

Boxplot digunakan untuk melihat median, penyebaran data, serta kemungkinan adanya nilai pencilan (outlier).

boxplot(
  data_inflasi$inflasi,
  horizontal = TRUE,
  col = "lightblue",
  main = "Boxplot Tingkat Inflasi Antarprovinsi",
  xlab = "Tingkat Inflasi (%)"
)

Nilai Outlier

outlier_vals <- boxplot.stats(data_inflasi$inflasi)$out

data_inflasi %>%
  filter(inflasi %in% outlier_vals) %>%
  select(Provinsi = bps_nama_provinsi, `Inflasi (%)` = inflasi) %>%
  arrange(desc(`Inflasi (%)`)) %>%
  rapi_tabel(caption = "Provinsi dengan Nilai Outlier")
Provinsi dengan Nilai Outlier
Provinsi Inflasi (%)
Papua Pegunungan 5.36
Papua Tengah 3.27
Gorontalo -0.79

Interpretasi: Nilai yang berada di luar batas boxplot dapat dianggap sebagai outlier, yaitu provinsi dengan inflasi yang jauh lebih tinggi dibandingkan sebagian besar provinsi lainnya — umumnya provinsi di wilayah Papua.

4.3 Poligon Frekuensi

Poligon frekuensi digunakan untuk menghaluskan bentuk histogram sehingga pola sebaran data lebih mudah dibaca.

ggplot(data_inflasi, aes(x = inflasi)) +
  geom_freqpoly(bins = 10, color = "steelblue", linewidth = 1) +
  geom_point(stat = "bin", bins = 10, color = "steelblue", size = 2) +
  labs(
    title = "Poligon Frekuensi Tingkat Inflasi Antarprovinsi",
    x = "Tingkat Inflasi (%)",
    y = "Frekuensi"
  ) +
  theme_minimal()

Interpretasi: Poligon frekuensi memperlihatkan sebaran data condong ke kanan (right-skewed) — mayoritas provinsi berkumpul di nilai inflasi rendah, dengan sedikit provinsi bernilai tinggi yang menarik ekor distribusi ke kanan.

4.4 Ogive (Frekuensi Kumulatif)

Ogive digunakan untuk menunjukkan frekuensi kumulatif data inflasi.

breaks_ogive <- pretty(data_inflasi$inflasi, n = 10)

data_ogive <- data_inflasi %>%
  mutate(kelas = cut(inflasi, breaks = breaks_ogive, include.lowest = TRUE)) %>%
  count(kelas, .drop = FALSE) %>%
  mutate(
    batas_atas = breaks_ogive[-1],
    frek_kumulatif = cumsum(n)
  )

ggplot(data_ogive, aes(x = batas_atas, y = frek_kumulatif)) +
  geom_line(color = "darkorange", linewidth = 1) +
  geom_point(color = "darkorange", size = 2) +
  labs(
    title = "Ogive Tingkat Inflasi Antarprovinsi",
    x = "Batas Atas Kelas Inflasi (%)",
    y = "Frekuensi Kumulatif (Jumlah Provinsi)"
  ) +
  theme_minimal()

Interpretasi: Ogive menunjukkan jumlah provinsi kumulatif yang memiliki tingkat inflasi hingga suatu batas nilai tertentu. Kenaikan tajam di rentang nilai rendah menunjukkan sebagian besar provinsi terkonsentrasi di sana.

4.5 Perbandingan Rata-rata Inflasi Antarpulau

Karena data hanya mencakup satu periode waktu, perbandingan yang lebih informatif dilakukan antarwilayah kepulauan (berdasarkan kode provinsi BPS) alih-alih tren waktu.

data_pulau <- data_inflasi %>%
  mutate(
    pulau = case_when(
      bps_kode_provinsi %in% 11:19 ~ "Sumatera",
      bps_kode_provinsi %in% 21    ~ "Sumatera",
      bps_kode_provinsi %in% 31:36 ~ "Jawa",
      bps_kode_provinsi %in% 51:53 ~ "Bali & Nusa Tenggara",
      bps_kode_provinsi %in% 61:65 ~ "Kalimantan",
      bps_kode_provinsi %in% 71:76 ~ "Sulawesi",
      bps_kode_provinsi %in% 81:82 ~ "Maluku",
      bps_kode_provinsi %in% 91:97 ~ "Papua",
      TRUE ~ "Lainnya"
    )
  )

ringkasan_pulau <- data_pulau %>%
  group_by(pulau) %>%
  summarise(
    jumlah_provinsi = n(),
    rata_rata_inflasi = mean(inflasi, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(desc(rata_rata_inflasi))

ggplot(ringkasan_pulau, aes(x = reorder(pulau, rata_rata_inflasi), y = rata_rata_inflasi, fill = rata_rata_inflasi)) +
  geom_col() +
  geom_text(aes(label = round(rata_rata_inflasi, 2)), hjust = -0.15, size = 3.5) +
  coord_flip() +
  scale_fill_gradient(low = "steelblue", high = "tomato", guide = "none") +
  labs(
    title = "Rata-rata Inflasi Antarpulau",
    x = "Wilayah",
    y = "Rata-rata Inflasi (%)"
  ) +
  theme_minimal() +
  expand_limits(y = max(ringkasan_pulau$rata_rata_inflasi) * 1.15)

ringkasan_pulau %>%
  select(Wilayah = pulau, `Jumlah Provinsi` = jumlah_provinsi, `Rata-rata Inflasi (%)` = rata_rata_inflasi) %>%
  rapi_tabel(digits = 2, caption = "Rata-rata Inflasi per Wilayah Kepulauan")
Rata-rata Inflasi per Wilayah Kepulauan
Wilayah Jumlah Provinsi Rata-rata Inflasi (%)
Papua 6 2.76
Bali & Nusa Tenggara 3 1.60
Jawa 6 1.58
Kalimantan 5 1.49
Sumatera 10 1.43
Maluku 2 1.39
Sulawesi 6 0.78

Interpretasi: Wilayah Papua memiliki rata-rata inflasi tertinggi dibandingkan wilayah lain, sejalan dengan temuan outlier pada boxplot sebelumnya. Hal ini konsisten dengan pola historis BPS yang mencatat provinsi-provinsi di Papua sebagai wilayah dengan inflasi y-on-y tertinggi.

5. Visualisasi Data Kategorik

5.1 Diagram Batang Tingkat Inflasi Menurut Provinsi

data_urut <- data_inflasi %>%
  arrange(inflasi)

ggplot(
  data_urut,
  aes(
    x = inflasi,
    y = reorder(bps_nama_provinsi, inflasi),
    fill = inflasi < 0
  )
) +
  geom_col() +
  geom_vline(xintercept = 0, linetype = "dashed") +
  scale_fill_manual(
    values = c("FALSE" = "steelblue", "TRUE" = "tomato"),
    guide = "none"
  ) +
  labs(
    title = "Tingkat Inflasi Menurut Provinsi",
    x = "Tingkat Inflasi (%)",
    y = "Provinsi"
  ) +
  theme_minimal()

Interpretasi: Diagram batang memperlihatkan perbedaan tingkat inflasi antarprovinsi secara rinci. Batang dengan nilai negatif (merah) menunjukkan deflasi, sedangkan nilai positif (biru) menunjukkan inflasi.

5.2 Kategori Status Inflasi

Status inflasi dibuat menjadi empat kategori:

  • Deflasi: nilai inflasi < 0%.
  • Inflasi 0 sampai <2%.
  • Inflasi 2 sampai <4%.
  • Inflasi >=4%.
data_inflasi$status_inflasi <- cut(
  data_inflasi$inflasi,
  breaks = c(-Inf, 0, 2, 4, Inf),
  labels = c(
    "Deflasi",
    "Inflasi 0 sampai <2%",
    "Inflasi 2 sampai <4%",
    "Inflasi >=4%"
  ),
  right = FALSE
)

table(data_inflasi$status_inflasi)
## 
##              Deflasi Inflasi 0 sampai <2% Inflasi 2 sampai <4% 
##                    1                   30                    6 
##         Inflasi >=4% 
##                    1

6. Pie Chart Status Inflasi

Pie chart digunakan untuk menunjukkan proporsi jumlah provinsi pada setiap kategori status inflasi.

status_data <- data_inflasi %>%
  count(status_inflasi) %>%
  mutate(
    persentase = n / sum(n),
    label = paste0(n, " provinsi\n", percent(persentase, accuracy = 0.1)),
    ypos = cumsum(n) - 0.5 * n
  )

ggplot(status_data, aes(x = "", y = n, fill = status_inflasi)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  geom_label_repel(
    aes(y = ypos, label = label),
    size = 3.8,
    nudge_x = 0.7,
    show.legend = FALSE,
    segment.color = "grey50",
    direction = "y"
  ) +
  labs(
    title = "Proporsi Provinsi Berdasarkan Status Inflasi",
    fill = "Status Inflasi"
  ) +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

6.1 Tabel Jumlah dan Persentase

status_data %>%
  select(
    `Status Inflasi` = status_inflasi,
    `Jumlah Provinsi` = n,
    `Persentase` = persentase
  ) %>%
  mutate(Persentase = percent(Persentase, accuracy = 0.1)) %>%
  rapi_tabel(caption = "Jumlah dan Persentase Provinsi Berdasarkan Status Inflasi")
Jumlah dan Persentase Provinsi Berdasarkan Status Inflasi
Status Inflasi Jumlah Provinsi Persentase
Deflasi 1 2.6%
Inflasi 0 sampai <2% 30 78.9%
Inflasi 2 sampai <4% 6 15.8%
Inflasi >=4% 1 2.6%

7. Provinsi dengan Inflasi Tertinggi dan Terendah

7.1 Lima Provinsi dengan Inflasi Tertinggi

data_inflasi %>%
  slice_max(inflasi, n = 5, with_ties = FALSE) %>%
  select(Provinsi = bps_nama_provinsi, `Tingkat Inflasi (%)` = inflasi) %>%
  rapi_tabel(digits = 2, caption = "5 Provinsi dengan Inflasi Tertinggi")
5 Provinsi dengan Inflasi Tertinggi
Provinsi Tingkat Inflasi (%)
Papua Pegunungan 5.36
Papua Tengah 3.27
Papua Barat 2.53
Bali 2.34
Aceh 2.17

7.2 Lima Provinsi dengan Inflasi Terendah

data_inflasi %>%
  slice_min(inflasi, n = 5, with_ties = FALSE) %>%
  select(Provinsi = bps_nama_provinsi, `Tingkat Inflasi (%)` = inflasi) %>%
  rapi_tabel(digits = 2, caption = "5 Provinsi dengan Inflasi Terendah")
5 Provinsi dengan Inflasi Terendah
Provinsi Tingkat Inflasi (%)
Gorontalo -0.79
Sulawesi Utara 0.44
Kepulauan Bangka Belitung 0.75
Bengkulu 0.84
Sumatera Barat 0.89

8. Kesimpulan

Berdasarkan analisis terhadap data inflasi year-on-year 38 provinsi di Indonesia periode Desember 2024, dapat disimpulkan bahwa:

  1. Tingkat inflasi antarprovinsi cukup bervariasi, dengan rata-rata sekitar 1,5%–1,6% dan sebaran yang condong ke kanan (beberapa provinsi bernilai jauh lebih tinggi dari mayoritas).
  2. Provinsi-provinsi di wilayah Papua — khususnya Papua Pegunungan dan Papua Tengah — menjadi outlier dengan inflasi tertinggi, sementara Sulawesi Utara dan Gorontalo (deflasi) mencatat nilai terendah.
  3. Perbandingan antarpulau menegaskan bahwa wilayah timur Indonesia (Papua) secara konsisten memiliki tekanan inflasi lebih tinggi dibandingkan wilayah barat.
  4. Mayoritas provinsi (sekitar 78,9%) berada pada kategori inflasi ringan (0%–<2%), menunjukkan kondisi harga yang relatif stabil di sebagian besar wilayah Indonesia pada periode ini.

Dengan demikian, visualisasi data numerik (histogram, boxplot, poligon frekuensi, ogive) dan kategorik (diagram batang, pie chart) saling melengkapi untuk memberikan gambaran menyeluruh mengenai kondisi inflasi antarprovinsi di Indonesia pada Desember 2024.


Referensi

Badan Pusat Statistik. (2025). Inflasi Year-on-Year (y-on-y) Desember 2024 sebesar 1,57 Persen. Inflasi Provinsi y-on-y Tertinggi Terjadi di Provinsi Papua Pegunungan sebesar 5,36 Persen dan Terendah Terjadi di Provinsi Sulawesi Utara sebesar 0,44 Persen. Diakses dari https://www.bps.go.id/id/pressrelease/2025/01/02/2397/inflasi-year-on-year--y-on-y--desember-2024-sebesar-1-57-persen--inflasi-provinsi-y-on-y-tertinggi-terjadi-di-provinsi-papua-pegunungan-sebesar-5-36-persen-dan-dan-terendah-terjadi-di-provinsi-sulawesi-utara-sebesar-0-44-persen-.html