Visualisasi Data Numerik dan Kategorik
KELOMPOK 4
Anggota kelompok :
3338240005 Nazwa Khoirina
3338240012 Najwa Alyafitri
3338240024 Rajwa Rizki Kurniawan
3338240025 Sofi Cahya Utami
Link Data
Pada pembuatan visualisasi data kategorik yang meliputi bar chart, pie chart, dan peta spasial terkait bidang ekonomi, data yang perlu disiapkan berupa file Excel, antara lain data upah kerja, inflasi, dan data kemiskinan Data tersebut dapat diakses melalui disini.
NUMERIK
Sumber Data
Data yang digunakan dalam analisis ini berasal dari dataset Inflation Price Indonesia 2006–2024 from BPS yang tersedia di platform Kaggle. Dataset tersebut berisi informasi mengenai tingkat inflasi di Indonesia dalam periode 2006–2024.Data dapat di download disini
Data inflasi yang digunakan didasarkan pada Indeks Harga Konsumen (IHK) yang menggambarkan perubahan harga barang dan jasa yang dikonsumsi masyarakat dari waktu ke waktu. Data ini mencakup informasi inflasi bulanan atau tahunan di Indonesia sehingga dapat digunakan untuk menganalisis pola distribusi inflasi, tren perubahan inflasi dari waktu ke waktu, serta hubungan antara variabel yang berkaitan dengan inflasi.
Dengan menggunakan dataset ini, berbagai jenis visualisasi dapat dilakukan seperti histogram, boxplot, density plot, dan scatter plot untuk memahami karakteristik serta dinamika inflasi di Indonesia selama periode 2006-2024
Deskripsi data
Data yang digunakan berupa data numerik inflasi yang dikelompokkan berdasarkan tahun dan bulan. Data ini dipilih karena bersifat kuantitatif dan kontinu, sehingga dapat divisualisasikan dengan berbagai jenis grafik statistik. Penggunaan data ini memungkinkan analisis terhadap pola distribusi, variasi, serta hubungan antar variabel yang terdapat dalam dataset.
Berbagai jenis plot seperti histogram, density plot, boxplot, violin plot, QQ plot, dan scatter plot digunakan untuk memperoleh pemahaman mengenai karakteristik data. Histogram dan density plot membantu melihat distribusi nilai inflasi, sedangkan boxplot dan violin plot digunakan untuk melihat penyebaran data serta kemungkinan adanya outlier. QQ plot digunakan untuk menguji apakah data mengikuti distribusi normal, sementara scatter plot digunakan untuk mengidentifikasi hubungan atau pola antara variabel.
Dengan menggunakan beberapa jenis visualisasi tersebut, analisis data menjadi lebih jelas karena setiap plot memberikan perspektif yang berbeda terhadap karakteristik data yang sama.
Input Data
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'readxl' was built under R version 4.4.3
Histogram
## Warning: package 'scales' was built under R version 4.4.3
ggplot(data = inflasi, mapping = aes(x = inflation)) +
geom_histogram(bins = 20, color = "white", fill = "brown1") +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "inflation",
y = "Frekuensi")Interpretasi Histogram
Histogram menunjukkan distribusi frekuensi nilai inflasi Indonesia selama periode 2006–2024. Dari grafik terlihat bahwa sebagian besar nilai inflasi berada pada kisaran tingkat inflasi menengah, sedangkan nilai inflasi yang sangat tinggi maupun sangat rendah muncul dengan frekuensi yang lebih sedikit.
Distribusi data terlihat cukup terkonsentrasi di sekitar nilai rata-rata inflasi. Hal ini menunjukkan bahwa dalam sebagian besar periode, inflasi Indonesia berada pada tingkat yang relatif stabil, meskipun pada beberapa waktu tertentu terjadi lonjakan inflasi yang lebih tinggi dibandingkan periode lainnya.
Desnity Plot
ggplot(data = inflasi, mapping = aes(x = inflation, fill = factor(year), color = factor(year))) +
geom_density(alpha = 0.7) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "Inflation")Interpretasi Density Plot
Dari grafik density plot diatas, terlihat bahwa tahun-tahun tertentu memiliki distribusi inflasi yang lebih sempit, yang menunjukkan variasi inflasi yang relatif kecil dalam tahun tersebut. Sementara itu, pada tahun-tahun yang lainnya distribusi inflasi lebih lebar, yang menunjukkan adanya fluktuasi inflasi yang lebih besar sepanjang tahun.
Berikut density plot untuk tigkat inflasi setiap tahunnya.
## Warning: package 'ggridges' was built under R version 4.4.3
ggplot(data = inflasi, mapping = aes(x = inflation, y = factor(year), fill = factor(year))) +
geom_density_ridges() +
labs(x = "Inflasi", y = "Tahun")## Picking joint bandwidth of 0.187
Interpretasi Density Plot Per Tahun
Dari grafik Density ridgeline plot tersebut dapat diamati bahwa pola inflasi antar tahun cenderung berbeda. Beberapa tahun menunjukkan distribusi yang lebih tinggi atau lebih menyebar dibandingkan tahun lainnya. Hal ini menunjukkan adanya perubahan dinamika inflasi dari tahun ke tahun, yang dapat dipengaruhi oleh kondisi ekonomi, kebijakan pemerintah, maupun faktor eksternal lainnya.
Boxplot
ggplot(data = inflasi, mapping = aes(x = inflation, y = factor(year), fill = factor(year))) +
geom_boxplot()Interpretasi Boxplot
Dari boxplot diatas dapat terlihat bahwa nilai median inflasi pada setiap tahun berada pada tingkat yang berbeda. Beberapa tahun memiliki rentang interkuartil yang lebih lebar, yang menunjukkan variasi inflasi yang lebih besar dalam tahun tersebut. Selain itu, adanya titik di luar whisker menunjukkan kemungkinan adanya outlier atau nilai inflasi yang ekstrem pada periode tertentu.
Violin Plot
ggplot(data = inflasi, mapping = aes(x = inflation,y="all")) +
geom_violin(fill="green",alpha=0.5) +
geom_boxplot(fill="blue",width=0.1) +
scale_x_continuous(labels = comma) Grafik ini memperlihatkan kepadatan distribusi inflasi secara keseluruhan. Bagian violin yang lebih lebar menunjukkan nilai inflasi yang lebih sering muncul, sedangkan bagian yang lebih sempit menunjukkan nilai yang jarang terjadi. Dari grafik ini dapat terlihat bahwa sebagian besar data inflasi terkonsentrasi pada rentang nilai tertentu, sementara nilai ekstrem muncul dengan frekuensi yang lebih kecil.
QQ-Plot
ggplot(data = inflasi, aes(sample = inflation)) +
stat_qq(col="cyan4", cex=0.9) +
stat_qq_line(col="darkred", lwd=1)Interpretasi QQ-Plot
Berdasarkan QQ-Plot yang dihasilkan, terlihat bahwa sebagian besar titik berada cukup dekat dengan garis diagonal di bagian tengah grafik. Hal ini menunjukkan bahwa sebagian besar data inflasi memiliki pola yang mendekati distribusi normal. Namun, terdapat beberapa titik yang menyimpang dari garis pada bagian ekor distribusi, yang mengindikasikan adanya nilai inflasi yang relatif lebih ekstrem dibandingkan nilai lainnya.
Dengan demikian, dapat disimpulkan bahwa distribusi data inflasi Indonesia pada periode tersebut cenderung mendekati distribusi normal, meskipun terdapat sedikit penyimpangan pada bagian ekor distribusi yang menunjukkan adanya variasi nilai inflasi yang lebih tinggi atau lebih rendah pada beberapa periode tertentu.
Scatter plot
ggplot(data = inflasi, mapping = aes(x = inflation, y = factor(year), color = factor(month))) +
geom_point()Dari grafik ini dapat dilihat bagaimana nilai inflasi tersebar pada setiap tahun dan bulan. Penyebaran titik yang bervariasi menunjukkan bahwa inflasi mengalami fluktuasi sepanjang waktu. Beberapa bulan pada tahun tertentu mungkin menunjukkan inflasi yang lebih tinggi dibandingkan bulan lainnya, yang menggambarkan adanya pola musiman dalam inflasi.
Line chart Dasar
Grafik ini nunjukin perubahan nilai inflasi tiap bulan. Sumbu X berisi bulan, sumbu Y berisi nilai inflasi. Garis yang terbentuk nunjukin pola naik turun inflasi sepanjang bulan dalam data yang dipakai.
# Memanggil library untuk membuat grafik
library(ggplot2)
# Mengubah tanda koma pada data inflasi menjadi titik agar terbaca sebagai numerik
inflasi$inflation <- as.numeric(gsub(",", ".", inflasi$inflation))
# Menggabungkan tahun dan bulan menjadi format tanggal (time series)
# Ini penting agar urutan grafik mengikuti waktu dari 2006–2024
inflasi$date <- as.Date(paste(inflasi$year, inflasi$month, "1"), format = "%Y %b %d")
# Membuat line chart inflasi bulanan
ggplot(inflasi, aes(x = date, y = inflation)) +
geom_line(color = "blue") + # Membuat garis grafik
labs(
title = "Line Chart Inflasi Bulanan 2006–2024", # Judul grafik
x = "Tahun", # Label sumbu X
y = "Inflasi (%)" # Label sumbu Y
) +
theme_minimal() # Menggunakan tema grafik yang lebih bersih## Warning: Removed 76 rows containing missing values or values outside the scale range
## (`geom_line()`).
Area Plot
Area plot hampir sama kayak line chart, tapi area di bawah garis diisi warna. Bentuk ini bikin perubahan nilai inflasi lebih keliatan karena bagian bawah garis jadi bidang yang terisi.
# memanggil library visualisasi
library(ggplot2)
# mengubah tanda koma menjadi titik agar terbaca sebagai numerik
inflasi$inflation <- as.numeric(gsub(",", ".", inflasi$inflation))
# membuat variabel tanggal dari gabungan tahun dan bulan
inflasi$date <- as.Date(paste(inflasi$year, inflasi$month, "1"), format = "%Y %b %d")
# membuat area plot dengan warna isi dan garis
ggplot(inflasi, aes(x = date, y = inflation)) +
geom_area(
fill = "lightblue",
color = "blue",
alpha = 0.7
) +
labs(
title = "Area Plot Inflasi Bulanan 2006–2024",
x = "Tahun",
y = "Inflasi (%)"
) +
theme_minimal()## Warning: Removed 76 rows containing non-finite outside the scale range
## (`stat_align()`).
Interpretasi Line Chart
Berdasarkan visualisasi inflasi bulanan tahun 2006–2024, terlihat bahwa inflasi mengalami fluktuasi dari waktu ke waktu dengan beberapa periode kenaikan dan penurunan. Pada periode awal 2006–2010, inflasi cenderung lebih bergejolak, dengan lonjakan cukup tinggi seperti pada Juni 2008 (2,46%). Puncak inflasi tertinggi terjadi pada Juli 2013 sebesar 3,29%.
Pada periode 2015–2019, inflasi relatif lebih stabil dan umumnya berada di kisaran 0%–1%. Memasuki 2020–2021, inflasi cenderung lebih rendah dan beberapa bulan mengalami deflasi. Kemudian pada 2022 terjadi sedikit peningkatan inflasi, sebelum kembali lebih stabil pada 2023–2024, meskipun masih terdapat beberapa bulan dengan nilai negatif.
Secara keseluruhan, inflasi bulanan menunjukkan pola fluktuatif dengan kecenderungan lebih stabil pada tahun-tahun terakhir.
Multiple Line Chart
Grafik ini nampilin beberapa garis sekaligus. Setiap garis mewakili satu tahun yang beda. Sumbu X berisi bulan, sumbu Y nilai inflasi. Cara ini dipakai buat bandingin pola inflasi tiap tahun dalam satu grafik.
# memanggil library untuk visualisasi
library(ggplot2)
# mengubah tanda koma menjadi titik agar data inflasi terbaca sebagai numerik
inflasi$inflation <- as.numeric(gsub(",", ".", inflasi$inflation))
# mengatur urutan bulan agar grafik tidak acak
inflasi$month <- factor(
inflasi$month,
levels = c("Jan","Feb","Mr","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Des")
)
# membuat multiple line chart inflasi per tahun
ggplot(inflasi, aes(x = month, y = inflation, group = year, color = factor(year))) +
geom_line(size = 1) + # membuat garis untuk tiap tahun
labs(
title = "Multiple Line Chart Inflasi Bulanan per Tahun",
x = "Bulan",
y = "Inflasi (%)",
color = "Tahun"
) +
theme_minimal()## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Interpretasi Multiple Line Chart Inflasi Bulanan per Tahun
Grafik multiple line chart tersebut menunjukkan perkembangan tingkat inflasi bulanan di Indonesia dari tahun 2006 hingga 2024. Setiap garis pada grafik merepresentasikan tahun tertentu, sedangkan sumbu horizontal menunjukkan bulan dan sumbu vertikal menunjukkan tingkat inflasi dalam persen.
Secara umum, grafik menunjukkan bahwa inflasi bulanan di Indonesia mengalami fluktuasi sepanjang tahun. Pada sebagian besar tahun, inflasi cenderung berada pada kisaran yang relatif rendah, yaitu di sekitar 0% hingga 1%. Hal ini menunjukkan bahwa dalam banyak periode, perubahan harga relatif stabil. Grafik menunjukkan bahwa inflasi bulanan di Indonesia memiliki pola fluktuatif dengan kecenderungan meningkat pada periode tertentu, namun sebagian besar nilai inflasi masih berada dalam rentang yang relatif terkendali. Grafik ini juga memudahkan untuk membandingkan pola inflasi antar tahun dan mengidentifikasi periode dengan kenaikan inflasi yang lebih tinggi.
KATEGORIK
Bar Chart
Sumber Data Barchart
Data upah rata-rata per jam pekerja menurut provinsi (Rupiah/jam) diperoleh dari Badan Pusat Statistik (BPS). Data bersifat dinamis dan diambil dari kategori Statistik Ekonomi → Biaya Tenaga Kerja → Upah Rata-Rata per Jam Pekerja Menurut Provinsi untuk periode 2022–2024, mencakup 38 provinsi. Data dapat diakses disini (diakses 6 Maret 2026).
Review Singkat Pemilihan Data
Data upah rata-rata per jam pekerja menurut provinsi dipilih karena merupakan data ekonomi di bidang ketenagakerjaan yang dapat digunakan untuk melihat perkembangan tingkat upah dari tahun ke tahun. Data ini penting dalam menganalisis tren perubahan upah serta menggambarkan kondisi kesejahteraan tenaga kerja di setiap provinsi. Selain itu, data ini bersumber dari Badan Pusat Statistik (BPS) sehingga memiliki kredibilitas dan relevan untuk mendukung analisis perkembangan ekonomi di tingkat provinsi.
Menyiapkan Data
# Import Data
library(readxl)
data_pekerja <- read_excel(
"C:/Users/user/OneDrive - untirta.ac.id/SEMESTER 4/KUMPULAN MATERI KULIAH/Eksplorasi dan Visualisasi Data/Data Kategorik EVD.xlsx",
sheet = "Upah Pekerja"
)library(DT)
datatable(
data_pekerja,
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center; font-weight: bold;',
'Tabel Data Upah Rata-Rata Per Jam Pekerja Menurut Provinsi Tahun 2022–2024 (Rupiah/Jam)'
),
options = list(pageLength = 10)
)## [1] "38 Provinsi" "2022" "2023" "2024"
Mengatur urutan provinsi agar sesuai dengan data yang ada
data_pekerja$`38 Provinsi` <- factor(
data_pekerja$`38 Provinsi`,
levels = data_pekerja$`38 Provinsi`
)# Membuat kolom baru 'kategori_upah' yang mengelompokkan upah tahun 2024 menjadi tiga kategori:
# "Rendah" untuk upah <= 20.000
# "Sedang" untuk upah antara 20.001 hingga 27.000
# "Tinggi" untuk upah > 27.000
data_pekerja$kategori_upah <- cut(
data_pekerja$`2024`,
breaks = c(0, 20000, 27000, Inf),
labels = c("Rendah", "Sedang", "Tinggi")
)plot_ly(
data = data_pekerja,
x = ~`2024`,
y = ~`38 Provinsi`,
type = "bar",
orientation = "h",
color = ~kategori_upah,
colors = c("#B7E4C7", "#2A9D8F", "#1B5E20")
) %>%
layout(
title = "Upah Rata-Rata Per Jam Pekerja Menurut Provinsi Tahun 2024",
xaxis = list(title = "Rupiah/Jam", tickprefix = "Rp ", tickformat = ","),
yaxis = list(title = "Provinsi"),
height = 1200
)## Warning: Specifying width/height in layout() is now deprecated.
## Please specify in ggplotly() or plot_ly()
Memilih 10 provinsi dengan upah tertinggi tahun 2024
# Mengurutkan data berdasarkan upah tahun 2024 dari yang paling besar
data_urut <- data_pekerja[order(data_pekerja$`2024`, decreasing = TRUE), ]
# Mengambil 10 provinsi dengan upah tertinggi
top10 <- head(data_urut, 10)
# Mengatur urutan provinsi agar grafik tampil dari tertinggi ke bawah
top10$`38 Provinsi` <- factor(top10$`38 Provinsi`, levels = rev(top10$`38 Provinsi`))Membuat Bar Chart 10 provinsi dengan upah tertinggi
plot_ly(
data = top10,
x = ~`2024`,
y = ~`38 Provinsi`,
type = "bar",
orientation = "h",
marker = list(color = "#E76F51")
) %>%
layout(
title = "10 Provinsi dengan Upah Rata-Rata Per Jam Tertinggi Tahun 2024",
xaxis = list(title = "Rupiah/Jam", tickprefix = "Rp ", tickformat = ","),
yaxis = list(title = "Provinsi"),
height = 450
)## Warning: Specifying width/height in layout() is now deprecated.
## Please specify in ggplotly() or plot_ly()
Interpretasi 10 Provinsi dengan Upah Rata-Rata Per Jam Tertinggi Tahun 2024
Berdasarkan visualisasi 10 provinsi dengan upah rata-rata per jam tertinggi pada tahun 2024, terlihat bahwa DKI Jakarta menempati posisi pertama dengan upah sekitar Rp 35.281 per jam. Posisi kedua ditempati oleh Papua Pegunungan dengan upah sekitar Rp 34.588 per jam, yang menunjukkan bahwa beberapa wilayah di Indonesia timur juga memiliki tingkat upah yang tinggi.
Selain itu, beberapa provinsi lain di wilayah Papua seperti Papua Tengah, Papua Barat, Papua, Papua Barat Daya, dan Papua Selatan juga termasuk dalam daftar sepuluh provinsi dengan upah tertinggi. Hal ini menunjukkan bahwa wilayah Papua mendominasi kelompok provinsi dengan upah per jam yang relatif tinggi.
Di luar wilayah Papua, terdapat beberapa provinsi dengan tingkat aktivitas ekonomi yang cukup tinggi seperti Kepulauan Riau, Banten, dan Kalimantan Timur yang juga masuk dalam daftar 10 besar. Provinsi-provinsi ini umumnya memiliki kawasan industri, perdagangan, atau pusat kegiatan ekonomi yang berkembang.
Secara keseluruhan, visualisasi ini memperlihatkan bahwa provinsi dengan aktivitas ekonomi yang kuat maupun wilayah dengan karakteristik ekonomi tertentu dapat memiliki tingkat upah pekerja per jam yang lebih tinggi dibandingkan provinsi lainnya.
Bar Chart dengan tabel frekuensi
Membuat tabel frekuensi
library(dplyr)
# Ubah kolom 2022 menjadi numerik
data_pekerja$`2022` <- as.numeric(data_pekerja$`2022`)
# supaya angka tidak pakai scientific notation
options(scipen = 999)
# membuat batas kelas
batas_kelas <- pretty(data_pekerja$`2022`, n = 6)
# membuat label interval
label_kelas <- paste(
format(batas_kelas[-length(batas_kelas)], big.mark = ".", scientific = FALSE),
"-",
format(batas_kelas[-1], big.mark = ".", scientific = FALSE)
)
# membuat kelas interval
kelas <- cut(
data_pekerja$`2022`,
breaks = batas_kelas,
include.lowest = TRUE,
labels = label_kelas
)
# tabel frekuensi
tabel_frekuensi <- table(kelas)
# ubah ke data frame
tabel_freq_df <- as.data.frame(tabel_frekuensi)
# tampilkan tabel
library(knitr)
kable(
tabel_freq_df,
col.names = c("Kelas Interval Upah (Rp)", "Frekuensi"),
caption = "Distribusi Frekuensi Upah Rata-Rata Per Jam Pekerja Menurut Provinsi Tahun 2022"
)| Kelas Interval Upah (Rp) | Frekuensi |
|---|---|
| 10.000 - 15.000 | 7 |
| 15.000 - 20.000 | 20 |
| 20.000 - 25.000 | 6 |
| 25.000 - 30.000 | 0 |
| 30.000 - 35.000 | 1 |
Membuat Bar Chart
# Buat kategori frekuensi
tabel_freq_df <- tabel_freq_df %>%
mutate(
kategori_freq = case_when(
Freq == 0 ~ "0",
Freq >= 1 & Freq <= 5 ~ "1–5",
Freq >= 6 & Freq <= 10 ~ "6–10",
Freq >= 11 & Freq <= 15 ~ "11–15",
Freq >= 16 & Freq <= 20 ~ "16–20"
),
kategori_freq = factor(
kategori_freq,
levels = c("0","1–5","6–10","11–15","16–20")
)
)
plot_ly(
data = tabel_freq_df,
x = ~kelas,
y = ~Freq,
type = "bar",
color = ~kategori_freq,
colors = c("#E0E0E0","#E3F2FD","#90CAF9","#42A5F5","#1565C0"),
text = ~Freq,
texttemplate = "%{text}",
textposition = "outside",
textfont = list(color = "black"),
hovertemplate = paste(
"<b>Kelas Interval:</b> %{x}",
"<br><b>Frekuensi:</b> %{y}",
"<extra></extra>"
)
) %>%
layout(
title = "Distribusi Frekuensi Upah Rata-Rata Per Jam Pekerja Tahun 2022",
xaxis = list(title = "Kelas Interval Upah (Rp)", tickangle = -30),
yaxis = list(title = "Frekuensi"),
legend = list(title = list(text = "Kategori Frekuensi"))
)Interpretasi Distribusi Frekuensi Upah Rata-Rata Per Jam Pekerja Tahun 2022
Berdasarkan visualisasi distribusi frekuensi upah rata-rata per jam pekerja tahun 2022 di 38 provinsi, terlihat bahwa sebagian besar provinsi memiliki tingkat upah yang berada pada kisaran Rp15.000–Rp20.000 per jam. Kelompok ini merupakan yang paling dominan dengan 20 provinsi, sehingga dapat dikatakan bahwa rentang upah tersebut menjadi kisaran upah yang paling umum di Indonesia pada tahun 2022.
Selanjutnya, terdapat 7 provinsi yang berada pada interval Rp10.000–Rp15.000 per jam, yang menunjukkan masih ada sejumlah daerah dengan tingkat upah relatif lebih rendah. Sementara itu, 6 provinsi berada pada rentang Rp20.000–Rp25.000 per jam, menandakan adanya beberapa wilayah dengan tingkat upah yang lebih tinggi dibanding mayoritas provinsi lainnya. Pada interval Rp25.000–Rp30.000 per jam tidak terdapat provinsi sama sekali, sedangkan hanya 1 provinsi yang memiliki upah sangat tinggi pada kisaran Rp30.000–Rp35.000 per jam, yaitu DKI Jakarta.
Secara keseluruhan, distribusi ini menunjukkan bahwa upah rata-rata per jam pekerja di Indonesia pada tahun 2022 cenderung terkonsentrasi pada kisaran Rp15.000–Rp20.000, dengan hanya sedikit provinsi yang memiliki tingkat upah jauh lebih tinggi. Hal ini juga menggambarkan adanya perbedaan tingkat kesejahteraan atau struktur ekonomi antarprovinsi di Indonesia.
Needle Chart
Persiapan
Membuat Needle Chart
ggplot(
data = data_pekerja,
aes(x = reorder(`38 Provinsi`, `2023`), y = `2023`)
) +
geom_segment(
aes(xend = reorder(`38 Provinsi`, `2023`),
y = 0, yend = `2023`),
color = "#F4A261"
) +
geom_point(color = "#E76F51", size = 4) +
geom_text(aes(label = `2023`), vjust = -0.8, size = 3) +
coord_flip() +
labs(
title = "Upah Rata-Rata Per Jam Pekerja Menurut Provinsi Tahun 2023",
x = "Provinsi",
y = "Upah (Rupiah)"
) +
theme_minimal()Grouped Bar Chart
Persiapan
Membuat Grouped Bar Chart
p <- ggplot(
data_long,
aes(
x = `38 Provinsi`,
y = Upah,
fill = Tahun,
text = paste(
"Provinsi:", `38 Provinsi`,
"<br>Tahun:", Tahun,
"<br>Upah:", Upah, "Rupiah/Jam"
)
)
) +
geom_bar(stat = "identity", position = "dodge", width = 0.8) +
scale_fill_manual(values = c(
"2022" = "#1D3557",
"2023" = "#457B9D",
"2024" = "#A8DADC"
)) +
labs(
title = "Upah Rata-Rata Per Jam Pekerja Menurut Provinsi Tahun 2022-2024",
x = "Provinsi",
y = "Upah (Rupiah/Jam)",
fill = "Tahun"
) +
theme_minimal() +
theme(
plot.title = element_text(size = 16, face = "bold"),
axis.text.x = element_text(angle = 60, hjust = 1)
)
# Modifikasi Grouped Bar Chart
Grouped_bar <- plotly::ggplotly(p, tooltip = "text")
Grouped_barStacked Bar Chart
Persiapan
# ganti "-" jadi 0
data_pekerja[data_pekerja == "-"] <- 0
# ubah ke numeric
data_pekerja$`2022` <- as.numeric(data_pekerja$`2022`)
data_pekerja$`2023` <- as.numeric(data_pekerja$`2023`)
# ubah ke format long
data_long <- pivot_longer(
data_pekerja,
cols = c(`2022`,`2023`),
names_to = "Tahun",
values_to = "Upah"
)
# stacked bar chart
plot_ly(
data = data_long,
x = ~`38 Provinsi`,
y = ~Upah,
color = ~Tahun,
type = "bar",
colors = c("#D9A3A3","#7A2E2E"),
hovertemplate = paste(
"<b>Provinsi:</b> %{x}",
"<br><b>Upah:</b> Rp %{y:,}",
"<extra></extra>"
)
) %>%
layout(
barmode = "stack",
title = "Perbandingan Upah 2022 dan 2023 per Provinsi",
xaxis = list(title = "Provinsi", tickangle = -45),
yaxis = list(
title = "Upah (Rp)",
tickformat = ",d"
),
height = 600
)## Warning: Specifying width/height in layout() is now deprecated.
## Please specify in ggplotly() or plot_ly()
## Warning: Ignoring 4 observations
Interpretasi Perbandingan Upah 2022 dan 2023 per Provinsi
Interpretasi Perbandingan Upah 2022 dan 2023 per Provinsi Berdasarkan visualisasi perbandingan upah rata-rata per jam pekerja tahun 2022 dan 2023 menurut provinsi, terlihat bahwa sebagian besar provinsi mengalami peningkatan upah pada tahun 2023 dibandingkan tahun 2022. Kenaikan ini menunjukkan adanya perbaikan tingkat pendapatan pekerja di banyak wilayah Indonesia.
Provinsi dengan upah tertinggi pada kedua tahun tersebut adalah DKI Jakarta, yaitu meningkat dari Rp32.685 per jam pada tahun 2022 menjadi Rp42.354 per jam pada tahun 2023. Kenaikan yang cukup besar juga terlihat pada beberapa provinsi lain seperti Maluku Utara yang meningkat dari Rp18.278 menjadi Rp27.078, Papua dari Rp24.097 menjadi Rp28.570, serta Kepulauan Riau dari Rp23.528 menjadi Rp27.640. Hal ini menunjukkan bahwa wilayah-wilayah tersebut mengalami peningkatan upah yang cukup signifikan.
Di sisi lain, terdapat beberapa provinsi yang mengalami kenaikan tetapi tidak terlalu besar, misalnya Jawa Timur yang hanya meningkat sedikit dari Rp15.119 menjadi Rp15.155, serta Maluku dari Rp17.006 menjadi Rp17.156. Selain itu, Riau menjadi salah satu provinsi yang mengalami penurunan upah, yaitu dari Rp18.626 pada tahun 2022 menjadi Rp18.413 pada tahun 2023.
Secara umum, sebagian besar provinsi memiliki tingkat upah pada kisaran Rp15.000 hingga Rp22.000 per jam, baik pada tahun 2022 maupun 2023. Namun, beberapa provinsi seperti DKI Jakarta, Papua, Kepulauan Riau, dan Maluku Utara memiliki tingkat upah yang jauh lebih tinggi dibandingkan provinsi lainnya.
Selain itu, pada visualisasi juga terlihat beberapa provinsi baru di wilayah Papua seperti Papua Barat Daya, Papua Selatan, Papua Tengah, dan Papua Pegunungan belum memiliki data upah pada kedua tahun tersebut, sehingga tidak ditampilkan dalam perbandingan nilai upah.
Secara keseluruhan, grafik ini menunjukkan bahwa terjadi kecenderungan peningkatan upah pekerja dari tahun 2022 ke tahun 2023 di sebagian besar provinsi di Indonesia, meskipun besarnya kenaikan berbeda-beda di setiap wilayah.
Pie Chart
Sumber Data Pie Chart
Data persentase penduduk miskin menurut kabupaten/kota di Provinsi Jawa Timur tahun 2025 diperoleh dari Badan Pusat Statistik (BPS). Data tersebut mencakup seluruh 38 kabupaten/kota di Jawa Timur dan memuat informasi mengenai persentase penduduk miskin pada masing-masing wilayah. Data ini digunakan untuk melihat distribusi tingkat kemiskinan antar kabupaten/kota serta sebagai dasar dalam proses pengelompokan kategori kemiskinan dan pembuatan visualisasi data. Data dapat diakses disini
Review singkat data
Data persentase penduduk miskin menurut kabupaten/kota di Provinsi Jawa Timur dipilih karena dapat menggambarkan kondisi tingkat kemiskinan di setiap wilayah. Data ini digunakan untuk melihat distribusi tingkat kemiskinan antar kabupaten/kota serta untuk mengelompokkan wilayah ke dalam kategori kemiskinan rendah, sedang, dan tinggi yang kemudian divisualisasikan menggunakan pie chart. Selain itu, data ini bersumber dari Badan Pusat Statistik (BPS) sehingga memiliki kredibilitas dan relevan untuk mendukung analisis kondisi sosial ekonomi di Jawa Timur.
Import Data dari Excel
library(readxl)
library(dplyr)
library(ggplot2)
data_miskin <- read_excel("C:/Users/user/OneDrive - untirta.ac.id/SEMESTER 4/KUMPULAN MATERI KULIAH/Eksplorasi dan Visualisasi Data/Data Kategorik EVD.xlsx",
sheet = "Kemiskinan"
)
# Mengambil kolom kab/kota dan persentase
data_miskin <- data_miskin[3:40, c(1,2)]
colnames(data_miskin) <- c("KabKota","Persentase")
data_miskin$Persentase <- as.numeric(data_miskin$Persentase)
head(data_miskin)## # A tibble: 6 × 2
## KabKota Persentase
## <chr> <dbl>
## 1 Pacitan 13.0
## 2 Ponorogo 8.86
## 3 Trenggalek 10.3
## 4 Tulungagung 5.96
## 5 Blitar 7.57
## 6 Kediri 9.81
terlihat bahwa data yang digunakan memuat dua variabel yaitu KabKota yang menunjukkan nama kabupaten/kota dan Persentase yang menunjukkan persentase penduduk miskin pada masing-masing wilayah. Beberapa baris pertama data menampilkan nilai persentase penduduk miskin di beberapa kabupaten/kota di Jawa Timur tahun 2025. Data ini kemudian digunakan sebagai dasar untuk analisis dan visualisasi tingkat kemiskinan pada kabupaten/kota di Provinsi Jawa Timur.
Membuat katagori miskin
data_miskin <- data_miskin %>%
mutate(Kategori = case_when(
Persentase > 12 ~ "Tinggi (>12%)",
Persentase >= 8 & Persentase <= 12 ~ "Sedang (8-12%)",
Persentase < 8 ~ "Rendah (<8%)"
))
table(data_miskin$Kategori)##
## Rendah (<8%) Sedang (8-12%) Tinggi (>12%)
## 13 15 10
data persentase penduduk miskin pada setiap kabupaten/kota dikelompokkan ke dalam tiga kategori, yaitu tinggi (>12%), sedang (8–12%), dan rendah (<8%). Pengelompokan ini dilakukan berdasarkan nilai persentase penduduk miskin pada masing-masing wilayah.
Membuat tabel frekuensi
## Var1 Freq
## 1 Rendah (<8%) 13
## 2 Sedang (8-12%) 15
## 3 Tinggi (>12%) 10
Berdasarkan hasil yang diperoleh, dibuat tabel frekuensi untuk mengetahui jumlah kabupaten/kota pada setiap kategori kemiskinan. Tabel tersebut menampilkan distribusi jumlah daerah yang termasuk dalam kategori kemiskinan tinggi, sedang, dan rendah. Informasi ini digunakan untuk melihat persebaran tingkat kemiskinan di kabupaten/kota Provinsi Jawa Timur tahun 2025 serta menjadi dasar dalam pembuatan visualisasi pie chart.
Hitung persentase dan posisi label
freq_kategori <- freq_kategori %>%
mutate(prop = round(Freq*100/sum(Freq),1),
lab.ypos = cumsum(prop) - 0.5*prop)Berdasarkan hasil pengolahan data, dihitung persentase jumlah kabupaten/kota pada setiap kategori kemiskinan dari total wilayah yang dianalisis. Selain itu, juga ditentukan posisi label pada grafik agar nilai persentase dapat ditampilkan dengan jelas pada setiap bagian pie chart. Hasil perhitungan ini kemudian digunakan dalam proses pembuatan visualisasi pie chart.
Membuat Pie chart
ggplot(freq_kategori, aes(x = "", y = prop, fill = Var1)) +
geom_bar(stat = "identity", width = 1, color = "white") +
geom_text(aes(y = lab.ypos, label = paste0(prop,"%")),
color = "white", size = 5) +
coord_polar("y", start = 0) +
labs(
title = "Persentase Kategori Kemiskinan Kabupaten/Kota di Jawa Timur 2025",
fill = "Kategori Kemiskinan"
) +
scale_fill_manual(values = c(
"#FFB6C1", # pink pastel
"#B5DEFF", # baby blue
"#B8F2E6" # mint
)) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5, size = 16, face = "bold")
)Interpretasi Persentase Kategori Kemiskinan Kabupaten/Kota di Jawa Timur 2025
Pie chart menunjukkan distribusi kabupaten/kota di Jawa Timur berdasarkan kategori tingkat kemiskinan pada tahun 2025.
Berdasarkan hasil visualisasi, sebagian besar kabupaten/kota berada pada kategori kemiskinan sedang (8–12%), yaitu sebanyak 15 daerah atau sekitar 39,5% dari total kabupaten/kota. Hal ini menunjukkan bahwa mayoritas wilayah di Jawa Timur memiliki tingkat kemiskinan pada tingkat menengah.
Selanjutnya, kategori kemiskinan rendah (<8%) mencakup 13 kabupaten/kota atau sekitar 34,2%, yang menunjukkan bahwa cukup banyak daerah yang memiliki tingkat kemiskinan relatif lebih rendah.
Sementara itu, kategori kemiskinan tinggi (>12%) terdapat pada 10 kabupaten/kota atau sekitar 26,3%. Meskipun jumlahnya lebih sedikit dibandingkan kategori lainnya, kondisi ini tetap menunjukkan bahwa masih terdapat beberapa wilayah di Jawa Timur dengan tingkat kemiskinan yang cukup tinggi.
Secara keseluruhan, distribusi ini menunjukkan bahwa tingkat kemiskinan di kabupaten/kota Jawa Timur pada tahun 2025 lebih banyak berada pada kategori sedang, dengan proporsi yang cukup besar juga pada kategori rendah dan sebagian kecil pada kategori tinggi.
Peta Spasial
Sumber data Peta
Data Indeks Harga Konsumen (IHK) dan tingkat inflasi kabupaten/kota di Provinsi Jawa Timur periode Januari 2026 diperoleh dari publikasi Badan Pusat Statistik (BPS). Data ini mencakup beberapa kabupaten/kota yang menjadi wilayah pengamatan inflasi di Jawa Timur, dengan informasi berupa nilai IHK, inflasi tahunan (year-on-year), dan inflasi bulanan (month-to-month). Data tersebut kemudian digunakan sebagai atribut untuk pemetaan spasial dengan menggabungkannya pada data batas wilayah kabupaten/kota dalam format shapefile (shp), sehingga dapat divisualisasikan dalam bentuk peta tematik. Data dapat diakses disini
Review singkat data
Data Indeks Harga Konsumen (IHK) dan tingkat inflasi kabupaten/kota di Provinsi Jawa Timur dipilih karena dapat menggambarkan kondisi inflasi di beberapa wilayah pengamatan di Jawa Timur. Data ini digunakan sebagai atribut dalam pembuatan peta tematik dengan menggabungkannya dengan data batas wilayah dalam format shapefile (shp), sehingga distribusi inflasi antar wilayah dapat divisualisasikan secara spasial. Selain itu, data ini bersumber dari Badan Pusat Statistik (BPS) sehingga memiliki kredibilitas dan relevan untuk analisis kondisi ekonomi wilayah.
Mempersiapkan Data
library(readxl)
library(DT)
# baca data Excel
data_inflasi <- read_excel(
"C:/Users/user/OneDrive - untirta.ac.id/SEMESTER 4/KUMPULAN MATERI KULIAH/Eksplorasi dan Visualisasi Data/Data Kategorik EVD.xlsx",
sheet = "Inflasi"
)
# tampilkan tabel
datatable(
data_inflasi,
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center; font-weight: bold;',
'Tabel Tingkat Inflasi Januari 2026 Kabupaten/Kota di Provinsi Jawa Timur (%)'
),
options = list(pageLength = 10)
)Tahapan-Tahapan Membuat Peta Spasial
# Mengambil shapefile batas administrasi kabupaten/kota di Indonesia dari database GADM
indo <- geodata::gadm(country = "IDN", level = 2, path = ".")
# Mengubah data menjadi format sf agar bisa diproses secara spasial
indo_sf <- st_as_sf(indo)# Memilih wilayah Provinsi Jawa Timur saja
jatim <- indo_sf %>% filter(NAME_1 == "Jawa Timur")
nrow(jatim)## [1] 38
# Membersihkan nama wilayah pada shapefile agar sama dengan nama wilayah pada data inflasi (menghapus kata Kabupaten dan Kota)
jatim$wilayah <- gsub("Kabupaten ", "", jatim$NAME_2)
jatim$wilayah <- gsub("Kota ", "", jatim$wilayah)# Memastikan hanya 11 kab/kota dari data inflasi
peta_inflasi_11 <- jatim %>%
filter(wilayah %in% data_inflasi$wilayah) %>%
distinct(wilayah, .keep_all = TRUE)# Mengganti nama kolom agar lebih mudah digunakan
names(data_inflasi)[2] <- "wilayah"
names(data_inflasi)[3] <- "inflasi"# Membersihkan nama wilayah pada data inflasi Excel
# (menghapus tulisan Kab. dan Kota agar cocok dengan nama wilayah pada peta)
data_inflasi$wilayah <- gsub("Kab\\.", "", data_inflasi$wilayah)
data_inflasi$wilayah <- gsub("Kota", "", data_inflasi$wilayah)
# Menghapus spasi atau enter yang tidak diperlukan
data_inflasi$wilayah <- trimws(data_inflasi$wilayah)# Mengubah angka inflasi dari format koma ke titik agar dapat dibaca sebagai numerik oleh R
data_inflasi$inflasi <- as.numeric(gsub(",", ".", data_inflasi$inflasi))# Menggabungkan data inflasi dengan data spasial Jawa Timur berdasarkan nama wilayah
peta_inflasi <- jatim %>%
left_join(data_inflasi, by = "wilayah")Membuat Peta Spasial
# Membuat peta tematik tingkat inflasi
# dengan 3 klasifikasi (rendah, sedang, tinggi)
tm_shape(peta_inflasi) +
tm_polygons(
col = "inflasi",
breaks = c(2.30, 3.00, 3.50, 5.10), # batas klasifikasi inflasi
labels = c("Rendah", "Sedang", "Tinggi"), # nama kategori
palette = "YlOrRd",
border.col = "white", # garis batas wilayah
title = "Inflasi (%)"
) +
tm_layout(
title = "Tingkat Inflasi Januari 2026 Kabupaten/Kota di Provinsi Jawa Timur",
legend.outside = TRUE
)Peta berikut menunjukkan persebaran tingkat inflasi Kabupaten/Kota di Provinsi Jawa Timur pada Januari 2026. Pada peta ini tidak ditampilkan nama wilayah secara lengkap, sehingga untuk melihat lokasi kabupaten/kota dapat merujuk pada gambar berikut.
Interpretasi Tingkat Inflasi Januari 2026 Kabupaten/Kota di Provinsi Jawa Timur
Berdasarka peta spasial tingkat inflasi Januari 2026 kabupaten/kota di Provinsi Jawa Timur, terlihat adanya perbedaan tingkat inflasi antarwilayah yang dapat diamati baik secara numerik maupun secara spasial pada peta.
Secara umum, inflasi tahunan (year-on-year) di sebagian besar kabupaten/kota berada pada kisaran sekitar 2,8%–3,5%, yang menunjukkan kondisi inflasi yang relatif stabil dan moderat di wilayah Jawa Timur. Nilai inflasi provinsi tercatat sebesar 3,29%, sehingga sebagian besar daerah memiliki tingkat inflasi yang tidak jauh berbeda dari rata-rata provinsi.
Namun, terdapat satu wilayah yang menonjol dengan inflasi paling tinggi, yaitu Kabupaten Sumenep dengan inflasi 5,06%. Pada peta spasial, wilayah ini ditandai dengan warna merah (kategori tinggi). Hal ini menunjukkan bahwa tekanan kenaikan harga di wilayah tersebut lebih besar dibandingkan daerah lainnya. Secara geografis, Sumenep berada di wilayah Pulau Madura, yang pada peta terlihat terpisah dari sebagian besar wilayah Jawa Timur di Pulau Jawa. Kondisi ini bisa mengindikasikan adanya faktor distribusi barang, biaya transportasi, atau dinamika pasar lokal yang mempengaruhi tingkat harga di wilayah tersebut.
Sementara itu, beberapa wilayah seperti Malang, Kediri, Probolinggo, Banyuwangi, dan Tulungagung termasuk dalam kategori inflasi sedang, yang pada peta ditunjukkan dengan warna oranye. Wilayah-wilayah ini tersebar di bagian selatan hingga timur Jawa Timur, sehingga menunjukkan bahwa tekanan inflasi di area tersebut relatif berada pada tingkat menengah.
Di sisi lain, beberapa wilayah seperti Jember, Bojonegoro, Gresik, dan Madiun termasuk dalam kategori inflasi rendah yang ditunjukkan dengan warna kuning pada peta. Hal ini menunjukkan bahwa kenaikan harga di wilayah tersebut relatif lebih terkendali dibandingkan daerah lainnya.
Selain itu, terdapat beberapa wilayah yang berwarna abu-abu (missing) pada peta, yang menunjukkan bahwa wilayah tersebut tidak termasuk dalam sampel penghitungan inflasi atau tidak memiliki data inflasi yang tersedia dalam tabel.
Secara spasial, pola yang terlihat menunjukkan bahwa sebagian besar wilayah Jawa Timur memiliki inflasi rendah hingga sedang, dengan konsentrasi inflasi tinggi hanya terjadi di wilayah tertentu, yaitu Sumenep. Hal ini menunjukkan bahwa tekanan inflasi di Jawa Timur pada Januari 2026 relatif merata dan terkendali, meskipun terdapat beberapa wilayah dengan dinamika harga yang lebih tinggi dibandingkan daerah lainnya.