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.
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
Portal resmi BPS: https://www.bps.go.id
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 |
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" ...
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")
| 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) |
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"
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
data_inflasi %>%
count(tahun, bulan) %>%
rapi_tabel(caption = "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.
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 | 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 |
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.
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 (%)"
)
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 | 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.
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.
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.
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")
| 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.
Status inflasi dibuat menjadi empat kategori:
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
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"))
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")
| 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% |
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")
| Provinsi | Tingkat Inflasi (%) |
|---|---|
| Papua Pegunungan | 5.36 |
| Papua Tengah | 3.27 |
| Papua Barat | 2.53 |
| Bali | 2.34 |
| Aceh | 2.17 |
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")
| Provinsi | Tingkat Inflasi (%) |
|---|---|
| Gorontalo | -0.79 |
| Sulawesi Utara | 0.44 |
| Kepulauan Bangka Belitung | 0.75 |
| Bengkulu | 0.84 |
| Sumatera Barat | 0.89 |
Berdasarkan analisis terhadap data inflasi year-on-year 38 provinsi di Indonesia periode Desember 2024, dapat disimpulkan bahwa:
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.
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