Visualisasi Data Kelompok 2
Visualisasi Data Numerik
Diagram Batang Variabel SD
## [1] 38
ggplot(data_pendidikan,aes(Provinsi, SD, fill = Provinsi)) +
geom_bar(stat = "Identity", width = 0.5)
Informasi berdasarkan diagram batang tersebut dengan total jumlah
Sekolah Dasar (SD) sebanyak 72.490 sekolah, di mana jumlah sekolah
terbanyak berada di provinsi Jawa timur dengan jumlah 8442 sekolah, dan
jumlah SD paling sedikit berada di provinsi DKI Jakarta dengan jumlah
sebanyak 264 sekolah.
Perbandingan angka yang sangat besar, walaupun berada dalam pulau yang sama, namun hal tersebut bisa terjadi karena berbagai faktor seperti luas wilayah dan jumlah penduduk yang dapat menentukan sebaran sekolah pada wilayah tersebut.
Diagram Batang Variabel SMP
## [1] 38
ggplot(data_pendidikan,aes(Provinsi, SMP, fill = Provinsi)) +
geom_bar(stat = "Identity", width = 0.5)
Terkait Sekolah Menengah Pertama (SMP) brdasarkan diagram batang
tersebut diperoleh informasi bahwa total sebaran SMP pada 38 provinsi
berjumlah 39.175 sekolah, dengan sebaran terbanyak masih berada di
provinsi Jawa Timur (4.961 sekolah),Jawa Barat (4.356 sekolah), dan Jawa
Tengah (3.701 sekolah). Sedangkan Provinsi dengan sebaran sekolah paling
sedikit berada di provinsi Papua Selatan sebanyak 113 sekolah.
Perbandingan yang terjadi disebbabkan oleh beberapa faktor seperti kepadatan penduduk, dan kondisi geografis di provinsi Papua masih rendah termasuk Papua Pegunugan. Beda hal nya dengan provinsi yang berada di Jawa, selain memiliki luas daerah yang besar provinsi di Jawa juga memiliki kepadatan penduduk yang lebih besar.
Boxplot Variabel SMA
library(ggplot2)
ggplot(data = data_pendidikan, mapping = aes(x = SMA)) +
geom_boxplot(color = "black", fill = "pink")Diagram boxplot tersebut menggambarkan data variabel sebaran Sekolah Menengah Atas (SMA) diperoleh informasi nilai kuartil 1 sebesar 138.25, median sebesar 290.5, dan kuartil 3 sebesar 675.00. terlihat garis yang berada di tengah (median) cenderung dekat dengan nilai kuartil 1 yang artinya data terpusat pada angka 290.5.
Pada data terdapat dua titik outlier yang melewati angka 2000, dua titik outlier tersebut melewati nilai maksimal boxplot, dapat di asumsikan bahwa terdapat dua nilai besar yang jauh dari data lainnya. Apabila di tinjau melalui data dua nilai paling besar adalah jumlah sebaran SMA di provinsi Jawa Timur sebanyak 2.620 sekolah dan provinsi Jawa Barat dengan jumlah 2.255 sekolah.
Boxplot Variabel SMK
ggplot(data = data_pendidikan, mapping = aes(x = SMK)) +
geom_boxplot(color = "grey", fill = "skyblue")Boxplot tersebut menggambarkan variabel Sekolah Menengah Kejuruan (SMK) yang memuat informasi seperti nimai minimal sebesar 17.00, nilai kuartil 1 sebesar 69.75, nilai median sebesar 154.00 , nilai kuartil 3 sebesar 267.00 , dan nilai maksimal sebesar 2051.00. Distribusi boxplot berada pada rentang 17 sampai 540 dengan median yang cenderung dekat dengan nilai kuartil 1, artinya data terpusat pada angka 154.00.
Terlihat pada diagram bahwa terdapat empat titik outlier yang melewati nilai maksimum data, sehingga dapat diasumsikan bahwa terdapat nilai yang besar dan jauh dari nilai data yang lainnya. Apabila ditinjau melalui data nilai tersebut merupakan nilai sebaran SMK paling besar yang tersebar di provinsi Sumatra Utara sebanyak 703 sekolah, Jawa Tengah sebanyak 1.185 sekolah, Jawa Timursebanyak 1.698 sekolah, dan Jawa Barat sebanyak 2.051 sekolah.
Boxplot Variabel Perguruan_Tinggi
library(ggplot2)
ggplot(data = data_pendidikan, mapping = aes(x = Perguruan_Tinggi)) +
geom_boxplot(color = "black", fill = "grey")Boxplot tersebut menggambarkan data variabel Perguruan Tinggi Negeri maupun Swasta di 38 provinsi di Indonesia. Informasi yang dapat diperoleh seperti nimai minimal sebesar 8.0, nilai kuartil 1 sebesar 24.00, nilai median sebesar 46.5 , nilai kuartil 3 sebesar 96.0 , dan nilai maksimal sebesar 481.00. Data berdistribusi pada rentang angka 8 hingga angka 201 dengan median yang cenderung dekat dengan nilai kuartil 1, yag artinya data terpusat pada nilai 46.5.
Pada diagram terlihat ada beberapa titik outlier data yang melewati batas atas data, hal ini dapat diasumsikan bahwa terdapat nilai besar yang jauh dari niliai data lainnya. Apabila di tinjau melalui data, titik-titik tesebut merupakan sebaran Perguruan Tinggi terbanyak yang tersebar di provinsi Jawa Tengah sebanyak 294, Jawa Timur sebanyak 465, dan Jawa Barat sebanyak 481 Perguruan Tinggi.
Scatter Plot Hubungan SMA dan SMK
Scatter plot ini digunakan untuk melihat hubungan antara jumlah SMA dan SMK di 38 provinsi di Indonesia.
# Baca data
data_sekolah <- read_excel("C:/Users/ASUS/OneDrive - untirta.ac.id/Kuliah Mutiara/Semester 4/Eksplorasi dan Visualisasi Data/Visualisasi data kategorik 38 prov/Data Sekolah 38 Provinsi_Cleaning2.xlsx", sheet = "Sheet1")
data_nasional <- read_excel("C:/Users/ASUS/OneDrive - untirta.ac.id/Kuliah Mutiara/Semester 4/Eksplorasi dan Visualisasi Data/Visualisasi data kategorik 38 prov/Data Sekolah 38 Provinsi_Cleaning2.xlsx", sheet = "Sheet2")
DT::datatable(data_sekolah)# Scatter Plot 1: Hubungan SMA dan SMK
ggplot(data = data_sekolah, mapping = aes(x = SMA, y = SMK)) +
geom_point(color = "blue", size = 3, alpha = 0.7) +
geom_smooth(method = "lm", se = TRUE, color = "red") +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "Jumlah SMA",
y = "Jumlah SMK",
title = "Scatter Plot: Hubungan Jumlah SMA dan SMK",
subtitle = "Setiap titik mewakili 1 provinsi")## `geom_smooth()` using formula = 'y ~ x'
Scatter plot ini menunjukkan hubungan antara jumlah SMA dan jumlah SMK di 38 provinsi Indonesia, di mana setiap titik mewakili satu provinsi. Berdasarkan pola sebaran titik, terlihat bahwa secara umum semakin tinggi jumlah SMA, semakin tinggi pula jumlah SMK. Hal ini ditunjukkan oleh garis regresi berwarna merah yang memiliki kemiringan positif dari kiri bawah ke kanan atas. Sebagian besar provinsi (sekitar 30 provinsi) mengelompok di area kiri bawah dengan jumlah SMA kurang dari 1000 dan jumlah SMK kurang dari 500. Ini menunjukkan bahwa mayoritas provinsi di Indonesia masih memiliki jumlah SMA dan SMK yang relatif rendah.
Terdapat beberapa provinsi yang berada di pojok kanan atas dengan jumlah SMA di atas 2000 dan jumlah SMK di atas 1000. Provinsi-provinsi ini merupakan outlier dengan jumlah sekolah menengah yang jauh lebih tinggi dibanding provinsi lainnya. Secara keseluruhan, scatter plot ini mengindikasikan adanya hubungan positif yang kuat antara ketersediaan SMA dan SMK, namun juga menunjukkan ketimpangan yang cukup besar antar provinsi di Indonesia.
Scatter Plot Hubungan SD dan Perguruan Tinggi
Scatter plot berikut digunakan untuk melihat hubungan antara jumlah Sekolah Dasar (SD) dan jumlah Perguruan Tinggi di 38 provinsi di Indonesia.
# Scatter Plot 2: Hubungan SD dan Perguruan Tinggi
ggplot(data = data_sekolah, mapping = aes(x = SD, y = perguruan_tinggi)) +
geom_point(color = "darkgreen", size = 3, alpha = 0.7) +
geom_smooth(method = "lm", se = TRUE, color = "orange") +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "Jumlah SD",
y = "Jumlah Perguruan Tinggi",
title = "Scatter Plot: Hubungan Jumlah SD dan Perguruan Tinggi")## `geom_smooth()` using formula = 'y ~ x'
Scatter plot ini menunjukkan hubungan antara jumlah SD dan jumlah Perguruan Tinggi di 38 provinsi Indonesia. Setiap titik hijau mewakili satu provinsi. Berdasarkan pola sebaran titik, terlihat bahwa secara umum semakin tinggi jumlah SD, cenderung semakin tinggi pula jumlah Perguruan Tinggi, meskipun hubungannya tidak sekuat seperti pada jenjang SMA dan SMK. Hal ini ditunjukkan oleh garis tren berwarna oranye yang memiliki kemiringan positif dari kiri bawah ke kanan atas.
Area abu-abu di sekitar garis oranye merupakan interval kepercayaan (confidence interval) yang menunjukkan tingkat keyakinan terhadap garis tren tersebut. Semakin lebar area ini, semakin besar ketidakpastian prediksi hubungan antara kedua variabel Sebagian besar provinsi mengelompok di area kiri bawah dengan jumlah SD kurang dari 4000 dan jumlah Perguruan Tinggi kurang dari 200. Ini menunjukkan bahwa mayoritas provinsi di Indonesia masih memiliki jumlah SD yang bervariasi namun dengan jumlah perguruan tinggi yang relatif terbatas.
Secara keseluruhan, scatter plot ini menunjukkan bahwa hubungan antara ketersediaan SD dan perguruan tinggi tidak selalu linear sempurna. Faktor lain seperti kebijakan pendidikan, konsentrasi perkotaan, dan sejarah pengembangan pendidikan tinggi mungkin mempengaruhi pola ini.
# Membuat kolom wilayah berdasarkan provinsi
data_sekolah <- data_sekolah %>%
mutate(wilayah = case_when(
`38 Provinsi` %in% c("ACEH", "SUMATERA UTARA", "SUMATERA BARAT", "RIAU",
"JAMBI", "SUMATERA SELATAN", "BENGKULU", "LAMPUNG",
"KEP. BANGKA BELITUNG", "KEP. RIAU") ~ "Sumatera",
`38 Provinsi` %in% c("DKI JAKARTA", "JAWA BARAT", "JAWA TENGAH",
"DI YOGYAKARTA", "JAWA TIMUR", "BANTEN") ~ "Jawa",
`38 Provinsi` %in% c("BALI", "NUSA TENGGARA BARAT", "NUSA TENGGARA TIMUR") ~ "Bali & Nusa Tenggara",
`38 Provinsi` %in% c("KALIMANTAN BARAT", "KALIMANTAN TENGAH", "KALIMANTAN SELATAN",
"KALIMANTAN TIMUR", "KALIMANTAN UTARA") ~ "Kalimantan",
`38 Provinsi` %in% c("SULAWESI UTARA", "SULAWESI TENGAH", "SULAWESI SELATAN",
"SULAWESI TENGGARA", "GORONTALO", "SULAWESI BARAT") ~ "Sulawesi",
`38 Provinsi` %in% c("MALUKU", "MALUKU UTARA") ~ "Maluku",
`38 Provinsi` %in% c("PAPUA BARAT", "PAPUA BARAT DAYA", "PAPUA",
"PAPUA SELATAN", "PAPUA TENGAH", "PAPUA PEGUNUNGAN") ~ "Papua",
TRUE ~ "Lainnya"
))
# Mengecek kolom wilayah
names(data_sekolah)## [1] "38 Provinsi" "SD" "SMP" "SMA"
## [5] "SMK" "perguruan_tinggi" "wilayah"
Scatter Plot Dengan warna berdasarkan wilayah
Scatter plot berikut menampilkan hubungan antara jumlah SMP dan SMA di 38 provinsi di Indonesia dengan penambahan warna berdasarkan wilayah. Pewarnaan ini bertujuan untuk memudahkan dalam melihat perbedaan pola distribusi jumlah sekolah antar wilayah di Indonesia, seperti Sumatera, Jawa, Kalimantan, Sulawesi, Bali & Nusa Tenggara, Maluku, dan Papua.
# Scatter Plot 3: Dengan warna berdasarkan wilayah
ggplot(data = data_sekolah, mapping = aes(x = SMP, y = SMA, color = wilayah)) +
geom_point(size = 3, alpha = 0.8) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "Jumlah SMP",
y = "Jumlah SMA",
color = "Wilayah",
title = "Scatter Plot: Hubungan SMP dan SMA Berdasarkan Wilayah")Scatter plot ini menunjukkan hubungan antara jumlah SMP dan SMA di 38 provinsi Indonesia, dengan warna titik berdasarkan wilayah (Sumatera, Jawa, Kalimantan, Sulawesi, Bali & Nusa Tenggara, Maluku, dan Papua). Dari gambar terlihat bahwa secara umum terdapat hubungan positif antara jumlah SMP dan SMA. Provinsi dengan jumlah SMP yang banyak cenderung memiliki jumlah SMA yang banyak pula.
Wilayah Jawa mendominasi di pojok kanan atas dengan jumlah SMP 3000-5000 dan jumlah SMA 1500-4500, jauh di atas wilayah lainnya. Kemudian wilayah Sumatera berada di posisi menengah dengan sebaran bervariasi, beberapa provinsi mendekati 2000 SMP dan 1000 SMA. Wilayah Sulawesi, Kalimantan, dan Bali & Nusa Tenggara mengelompok di area tengah dengan jumlah SMP 500-1500 dan jumlah SMA 200-800. Dan Wilayah Maluku dan Papua berada di pojok kiri bawah dengan jumlah SMP di bawah 500 dan jumlah SMA di bawah 300.
Secara keseluruhan scatter plot ini tidak hanya menunjukkan hubungan positif antara SMP dan SMA, tetapi juga memperlihatkan ketimpangan pendidikan antar wilayah di Indonesia, dengan Jawa paling maju dan Papua paling tertinggal.
Dot Plot Jumlah Perguruan Tinggi per Provinsi
Dot plot digunakan untuk menampilkan perbandingan jumlah perguruan tinggi di 38 provinsi di Indonesia. Setiap titik merepresentasikan satu provinsi, sedangkan posisi titik pada sumbu horizontal menunjukkan jumlah perguruan tinggi yang dimiliki oleh provinsi tersebut.
ggplot(data_sekolah, aes(x = perguruan_tinggi,
y = reorder(`38 Provinsi`, perguruan_tinggi))) +
geom_point(color = "purple", size = 3) +
scale_x_continuous(labels = comma) +
labs(
x = "Jumlah Perguruan Tinggi",
y = "Provinsi",
title = "Dot Plot: Jumlah Perguruan Tinggi di 38 Provinsi"
) +
theme_minimal()Dot plot ini menampilkan jumlah perguruan tinggi di 38 provinsi Indonesia, dengan provinsi diurutkan dari jumlah perguruan tinggi paling sedikit hingga paling banyak. Melalui visualisasi ini, perbandingan jumlah perguruan tinggi antar provinsi dapat terlihat dengan lebih jelas. Terlihat bahwa beberapa provinsi besar seperti Jawa Barat dan Jawa Timur memiliki jumlah perguruan tinggi yang paling tinggi dibandingkan provinsi lainnya.
Sementara itu, sebagian besar provinsi lainnya memiliki jumlah perguruan tinggi yang relatif lebih sedikit dan cenderung berada pada kelompok menengah. Beberapa provinsi di wilayah timur Indonesia seperti Papua Pegunungan, Papua Selatan, serta beberapa provinsi lainnya berada pada posisi dengan jumlah perguruan tinggi yang paling rendah.
Secara keseluruhan, dot plot ini menunjukkan bahwa distribusi perguruan tinggi di Indonesia belum merata. Provinsi-provinsi di Pulau Jawa cenderung memiliki jumlah perguruan tinggi yang lebih banyak dibandingkan provinsi di wilayah lainnya, sedangkan beberapa provinsi di wilayah timur Indonesia memiliki jumlah yang relatif lebih sedikit.
Dot Plot Jumlah SMA per Provinsi
Dot plot berikut menampilkan perbandingan jumlah Sekolah Menengah Atas (SMA) di 38 provinsi di Indonesia. Setiap titik pada grafik merepresentasikan satu provinsi, sedangkan posisi titik pada sumbu horizontal menunjukkan jumlah SMA yang terdapat di provinsi tersebut.
ggplot(data_sekolah, aes(x = SMA,
y = reorder(`38 Provinsi`, SMA))) +
geom_point(color = "darkblue", size = 3) +
scale_x_continuous(labels = comma) +
labs(
x = "Jumlah SMA",
y = "Provinsi",
title = "Dot Plot: Jumlah SMA di 38 Provinsi"
) +
theme_minimal()Dot plot ini menampilkan jumlah SMA di 38 provinsi Indonesia, dengan provinsi diurutkan dari jumlah SMA paling sedikit hingga paling banyak. Melalui visualisasi ini, perbandingan jumlah SMA antar provinsi dapat terlihat dengan lebih jelas. Terlihat bahwa beberapa provinsi besar seperti Jawa Timur dan Jawa Barat berada pada posisi dengan jumlah SMA yang paling tinggi dibandingkan provinsi lainnya. Beberapa provinsi di Sumatera juga berada pada kelompok dengan jumlah SMA yang relatif tinggi.
Sementara itu, beberapa provinsi di wilayah Kalimantan dan Sulawesi berada pada kelompok menengah dengan jumlah SMA yang tidak terlalu tinggi namun juga tidak terlalu rendah. Di sisi lain, provinsi-provinsi di wilayah timur Indonesia seperti Papua dan beberapa provinsi di sekitarnya cenderung berada pada posisi dengan jumlah SMA yang lebih sedikit.
Secara keseluruhan, dot plot ini menunjukkan bahwa jumlah SMA antar provinsi di Indonesia tidak merata. Provinsi-provinsi yang berada di Pulau Jawa dan sebagian wilayah Sumatera cenderung memiliki jumlah SMA yang lebih banyak dibandingkan provinsi lainnya. Sebaliknya, beberapa provinsi di wilayah timur Indonesia masih memiliki jumlah SMA yang relatif lebih sedikit, yang menunjukkan adanya perbedaan distribusi jumlah SMA antar provinsi.
Visualisasi Data Kategorik
# Import Data
data_sekolah <- read_xlsx("C:/Users/ASUS/OneDrive - untirta.ac.id/Kuliah Mutiara/Semester 4/Eksplorasi dan Visualisasi Data/Visualisasi data kategorik 38 prov/Data Sekolah 38 Provinsi_Cleaning2.xlsx")
# Rename kolom provinsi
colnames(data_sekolah)[1] <- "Provinsi"
# Menambah kolom total
data_sekolah <- data_sekolah %>%
mutate(total = SD + SMP + SMA + SMK + perguruan_tinggi)
DT::datatable(data_sekolah)Bar Chart
Bar Chart digunakan untuk membandingkan jumlah atau frekuensi antar kategori. Pada bagian ini, bar chart digunakan untuk melihat perbandingan jumlah sekolah berdasarkan jenjang pendidikan di seluruh Indonesia.
# Hitung total per jenjang
total_jenjang <- data.frame(
Jenjang = c("SD", "SMP", "SMA", "SMK", "Perguruan Tinggi"),
Jumlah = c(
sum(data_sekolah$SD),
sum(data_sekolah$SMP),
sum(data_sekolah$SMA),
sum(data_sekolah$SMK),
sum(data_sekolah$perguruan_tinggi)
)
)
total_jenjang## Jenjang Jumlah
## 1 SD 72490
## 2 SMP 39175
## 3 SMA 18477
## 4 SMK 11014
## 5 Perguruan Tinggi 3233
ggplot(total_jenjang, aes(x = factor(Jenjang, levels = c("SD", "SMP", "SMA", "SMK", "Perguruan Tinggi")),
y = Jumlah, fill = Jenjang)) +
geom_col(alpha = 0.85) +
geom_text(aes(label = format(Jumlah, big.mark = ",")), vjust = -0.4, size = 3.5) +
labs(
title = "Jumlah Sekolah Berdasarkan Jenjang Pendidikan",
subtitle = "38 Provinsi di Indonesia",
x = "Jenjang Pendidikan",
y = "Jumlah Sekolah"
) +
scale_fill_brewer(palette = "RdPu") +
theme_minimal() +
theme(legend.position = "none")Berdasarkan bar chart yang ditampilkan, terlihat perbedaan jumlah sekolah pada setiap jenjang pendidikan di Indonesia. SD memiliki jumlah yang jauh lebih banyak dibandingkan jenjang yang lain. Hal ini wajar mengingat SD merupakan jenjang pendidikan dasar yang wajib ditempuh oleh seluruh anak usia sekolah, sehingga sebarannya pun lebih merata hingga ke pelosok daerah. Sebaliknya, jumlah Perguruan Tinggi tercatat paling sedikit karena tidak semua daerah memiliki fasilitas pendidikan tinggi.
Needle Chart
Needle Chart menampilkan data dalam bentuk garis vertikal seperti jarum yang membentang dari sumbu horizontal ke titik nilai tertentu. Chart ini cocok digunakan untuk membandingkan nilai antar kategori secara lebih ringkas. Berikut adalah needle chart jumlah sekolah per jenjang pendidikan.
ggplot(total_jenjang,
mapping = aes(x = reorder(Jenjang, Jumlah), y = Jumlah)) +
geom_segment(aes(x = reorder(Jenjang, Jumlah),
xend = reorder(Jenjang, Jumlah),
y = 0, yend = Jumlah),
color = "steelblue", linewidth = 1) +
geom_point(color = "darkblue", size = 5, alpha = 0.7) +
geom_text(aes(label = format(Jumlah, big.mark = ".")), hjust = -0.3, size = 3.5) +
coord_flip() +
labs(
title = "Jumlah Sekolah per Jenjang Pendidikan",
subtitle = "38 Provinsi di Indonesia",
x = "Jenjang Pendidikan",
y = "Jumlah Sekolah"
) +
theme_minimal()## Warning in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
## 'big.mark' and 'decimal.mark' are both '.', which could be confusing
Dari needle chart tersebut terlihat dengan jelas urutan jenjang pendidikan dari yang paling sedikit hingga terbanyak. SD mendominasi secara signifikan, diikuti SMP, SMA, SMK, dan Perguruan Tinggi. Perbedaan yang cukup besar antara SD dan jenjang lainnya menunjukkan bahwa fasilitas pendidikan dasar di Indonesia tersebar lebih luas dibandingkan jenjang pendidikan yang lebih tinggi.
Grouped Bar Chart
Grouped Bar Chart digunakan untuk membandingkan beberapa kategori secara berdampingan dalam satu grafik. Pada bagian ini, ditampilkan perbandingan jumlah SD dan SMP antar pulau besar di Indonesia, untuk melihat distribusi sekolah dasar dan menengah pertama secara regional.
# Kelompokkan per pulau
data_pulau <- data_sekolah %>%
mutate(Pulau = case_when(
Provinsi %in% c("ACEH", "SUMATERA UTARA", "SUMATERA BARAT", "RIAU",
"JAMBI", "SUMATERA SELATAN", "BENGKULU", "LAMPUNG",
"KEP. BANGKA BELITUNG", "KEP. RIAU") ~ "Sumatera",
Provinsi %in% c("DKI JAKARTA", "JAWA BARAT", "JAWA TENGAH",
"DI YOGYAKARTA", "JAWA TIMUR", "BANTEN") ~ "Jawa",
Provinsi %in% c("KALIMANTAN BARAT", "KALIMANTAN TENGAH",
"KALIMANTAN SELATAN", "KALIMANTAN TIMUR",
"KALIMANTAN UTARA") ~ "Kalimantan",
Provinsi %in% c("SULAWESI UTARA", "SULAWESI TENGAH", "SULAWESI SELATAN",
"SULAWESI TENGGARA", "GORONTALO",
"SULAWESI BARAT") ~ "Sulawesi",
Provinsi %in% c("BALI", "NUSA TENGGARA BARAT",
"NUSA TENGGARA TIMUR") ~ "Bali & Nusa Tenggara",
TRUE ~ "Maluku & Papua"
)) %>%
group_by(Pulau) %>%
summarise(SD = sum(SD), SMP = sum(SMP))
# Ubah ke format panjang
library(tidyr)
data_long <- data_pulau %>%
pivot_longer(cols = c(SD, SMP), names_to = "Jenjang", values_to = "Jumlah")
ggplot(data_long, aes(x = Pulau, y = Jumlah,
fill = factor(Jenjang, levels = c("SD", "SMP")))) +
geom_bar(position = "dodge", stat = "identity", alpha = 0.85) +
labs(
title = "Komposisi Sekolah per Jenjang Pendidikan Berdasarkan Pulau",
subtitle = "38 Provinsi di Indonesia",
x = "Pulau",
y = "Jumlah Sekolah",
fill = "Jenjang"
) +
scale_fill_brewer(palette = "Paired") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 20, hjust = 1))Grafik di atas menunjukkan bahwa Pulau Jawa mendominasi jumlah SD maupun SMP dibandingkan pulau lainnya. Hal ini erat kaitannya dengan tingginya kepadatan penduduk di Pulau Jawa. Sementara itu, wilayah Maluku dan Papua mencatatkan jumlah sekolah yang paling sedikit, yang mencerminkan tantangan distribusi fasilitas pendidikan di wilayah timur Indonesia yang secara geografis lebih terpencil (sulit dijangkau) dan luas.
Stacked Bar Chart
Stacked Bar Chart menampilkan data komposisi dalam satu batang yang bertumpuk. Dengan chart ini dapat dilihat proporsi masing-masing jenjang pendidikan dalam total sekolah per pulau.
data_pulau_lengkap <- data_sekolah %>%
mutate(Pulau = case_when(
Provinsi %in% c("ACEH", "SUMATERA UTARA", "SUMATERA BARAT", "RIAU",
"JAMBI", "SUMATERA SELATAN", "BENGKULU", "LAMPUNG",
"KEP. BANGKA BELITUNG", "KEP. RIAU") ~ "Sumatera",
Provinsi %in% c("DKI JAKARTA", "JAWA BARAT", "JAWA TENGAH",
"DI YOGYAKARTA", "JAWA TIMUR", "BANTEN") ~ "Jawa",
Provinsi %in% c("KALIMANTAN BARAT", "KALIMANTAN TENGAH",
"KALIMANTAN SELATAN", "KALIMANTAN TIMUR",
"KALIMANTAN UTARA") ~ "Kalimantan",
Provinsi %in% c("SULAWESI UTARA", "SULAWESI TENGAH", "SULAWESI SELATAN",
"SULAWESI TENGGARA", "GORONTALO",
"SULAWESI BARAT") ~ "Sulawesi",
Provinsi %in% c("BALI", "NUSA TENGGARA BARAT",
"NUSA TENGGARA TIMUR") ~ "Bali & Nusa Tenggara",
TRUE ~ "Maluku & Papua"
)) %>%
group_by(Pulau) %>%
summarise(SD = sum(SD), SMP = sum(SMP), SMA = sum(SMA),
SMK = sum(SMK), PT = sum(perguruan_tinggi))
data_stack <- data_pulau_lengkap %>%
pivot_longer(cols = c(SD, SMP, SMA, SMK, PT),
names_to = "Jenjang", values_to = "Jumlah") %>%
mutate(Jenjang = factor(Jenjang, levels = c("PT", "SMK", "SMA", "SMP", "SD")))
ggplot(data_stack, aes(x = Pulau, y = Jumlah, fill = Jenjang)) +
geom_bar(position = "stack", stat = "identity", alpha = 0.85) +
labs(
title = "Komposisi Sekolah per Jenjang Pendidikan Berdasarkan Pulau",
subtitle = "38 Provinsi di Indonesia",
x = "Pulau",
y = "Jumlah Sekolah",
fill = "Jenjang"
) +
scale_fill_brewer(palette = "Set2") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 20, hjust = 1))Dari stacked bar chart di atas terlihat bahwa SD mendominasi komposisi di seluruh pulau. Pulau Jawa jelas memiliki total sekolah tertinggi dengan tumpukan yang jauh lebih besar dibandingkan wilayah lain. Pola ini terlihat hampir di semua pulau, di mana SD menjadi jenjang dengan jumlah sekolah paling banyak, diikuti SMP, kemudian SMA, SMK, dan Perguruan Tinggi.
Pie Chart
Pie Chart digunakan untuk menggambarkan proporsi atau persentase dari setiap kategori terhadap keseluruhan data. Berikut adalah pie chart yang menampilkan proporsi jumlah sekolah berdasarkan jenjang pendidikan di Indonesia.
df_pie <- total_jenjang %>%
mutate(Jenjang = factor(Jenjang, levels = c("SD", "SMP", "SMA", "SMK", "Perguruan Tinggi"))) %>%
arrange(Jenjang) %>%
mutate(
prop = round(Jumlah * 100 / sum(Jumlah), 1),
lab.ypos = cumsum(prop) - 0.5 * prop
)
ggplot(df_pie, aes(x = "", y = prop, fill = Jenjang)) +
geom_bar(width = 1, stat = "identity", color = "white") +
geom_text(aes(y = lab.ypos, label = paste0(prop, "%")), color = "white", size = 4) +
coord_polar("y", start = 0) +
ggpubr::fill_palette("Pastel1") +
labs(
title = "Proporsi Jumlah Sekolah Berdasarkan Jenjang Pendidikan",
fill = "Jenjang"
) +
theme_void()Pie chart di atas ini menunjukkan bahwa semakin tinggi jenjang pendidikan, jumlah institusinya cenderung semakin sedikit. Kondisi ini dapat dipengaruhi oleh keterbatasan fasilitas pendidikan tinggi, akses wilayah, serta minat masyarakat untuk melanjutkan pendidikan ke jenjang yang lebih tinggi.
Peta Spasial
Siapkan adalah data excel dan peta SHP. Download data excel disini Download peta shp disini
Langkah 1: Import Data Excel dan SHP
Pertama, kita import data excel dan peta SHP menggunakan perintah
read_xlsx() dan read_sf().
library(sf)
#Import Data Excel
data_spasial <- read_xlsx("C:/Users/ASUS/OneDrive - untirta.ac.id/Kuliah Mutiara/Semester 4/Eksplorasi dan Visualisasi Data/Visualisasi data kategorik 38 prov/Data Sekolah 38 Provinsi_Cleaning2.xlsx")
data_pt <- data_spasial %>%
select(`38 Provinsi`, perguruan_tinggi)
#Import Peta SHP
shp <- read_sf("C:/Users/ASUS/OneDrive - untirta.ac.id/Kuliah Mutiara/Semester 4/Eksplorasi dan Visualisasi Data/Visualisasi data kategorik 38 prov/gadm41_IDN_shp/gadm41_IDN_1.shp")Dari semua kolom di data_spasial, pilih hanya dua kolom:
38 Provinsi (nama provinsi), dan perguruan_tinggi (jumlah perguruan
tinggi). Lalu hasilnya disimpan ke data_pt.
Selanjutnya gabungkan data Excel ke dalam data SHP dengan perintah
left_join(). Dalam proses penggabungan ini menggunakan
variabel kunci Provinsi. Artinya dalam data excel dan
peta SHP ada variabel Provinsi sehingga kedua data
tersebut dapat digabungkan. Variabel Provinsi merupakan
kode nama PROVINSI untuk mewakili setiap lokasi/wilayah yang akan
dipetakan.
## [1] "Aceh" "Bali" "Bangka Belitung"
## [4] "Banten" "Bengkulu" "Gorontalo"
## [7] "Jakarta Raya" "Jambi" "Jawa Barat"
## [10] "Jawa Tengah" "Jawa Timur" "Kalimantan Barat"
## [13] "Kalimantan Selatan" "Kalimantan Tengah" "Kalimantan Timur"
## [16] "Kalimantan Utara" "Kepulauan Riau" "Lampung"
## [19] "Maluku" "Maluku Utara" "Nusa Tenggara Barat"
## [22] "Nusa Tenggara Timur" "Papua" "Papua Barat"
## [25] "Riau" "Sulawesi Barat" "Sulawesi Selatan"
## [28] "Sulawesi Tengah" "Sulawesi Tenggara" "Sulawesi Utara"
## [31] "Sumatera Barat" "Sumatera Selatan" "Sumatera Utara"
## [34] "Yogyakarta"
## [1] "ACEH" "SUMATERA UTARA" "SUMATERA BARAT"
## [4] "RIAU" "JAMBI" "SUMATERA SELATAN"
## [7] "BENGKULU" "LAMPUNG" "KEP. BANGKA BELITUNG"
## [10] "KEP. RIAU" "DKI JAKARTA" "JAWA BARAT"
## [13] "JAWA TENGAH" "DI YOGYAKARTA" "JAWA TIMUR"
## [16] "BANTEN" "BALI" "NUSA TENGGARA BARAT"
## [19] "NUSA TENGGARA TIMUR" "KALIMANTAN BARAT" "KALIMANTAN TENGAH"
## [22] "KALIMANTAN SELATAN" "KALIMANTAN TIMUR" "KALIMANTAN UTARA"
## [25] "SULAWESI UTARA" "SULAWESI TENGAH" "SULAWESI SELATAN"
## [28] "SULAWESI TENGGARA" "GORONTALO" "SULAWESI BARAT"
## [31] "MALUKU" "MALUKU UTARA" "PAPUA BARAT"
## [34] "PAPUA BARAT DAYA" "PAPUA" "PAPUA SELATAN"
## [37] "PAPUA TENGAH" "PAPUA PEGUNUNGAN"
shp$NAME_1 <- toupper(trimws(shp$NAME_1))
data_pt$`38 Provinsi` <- toupper(trimws(data_pt$`38 Provinsi`))
shp_gabung <- left_join(shp, data_pt, by = c("NAME_1" = "38 Provinsi"))
shp_gabung %>% select(NAME_1, perguruan_tinggi)## Simple feature collection with 34 features and 2 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 95.00971 ymin: -11.00761 xmax: 141.0194 ymax: 6.076941
## Geodetic CRS: WGS 84
## # A tibble: 34 × 3
## NAME_1 perguruan_tinggi geometry
## <chr> <dbl> <MULTIPOLYGON [°]>
## 1 ACEH 113 (((98.14903 2.136268, 98.14943 2.135682, 98…
## 2 BALI 43 (((115.5257 -8.804456, 115.5254 -8.804564, …
## 3 BANGKA BELITUNG NA (((107.9614 -3.416193, 107.9608 -3.41582, 1…
## 4 BANTEN 128 (((106.3868 -6.9907, 106.3865 -6.99097, 106…
## 5 BENGKULU 24 (((103.573 -4.923029, 103.5729 -4.923119, 1…
## 6 GORONTALO 15 (((123.5491 0.432505, 123.5488 0.4322961, 1…
## 7 JAKARTA RAYA NA (((106.8672 -6.354619, 106.8671 -6.354667, …
## 8 JAMBI 42 (((101.8718 -2.729188, 101.8664 -2.726553, …
## 9 JAWA BARAT 481 (((108.1331 -7.783423, 108.1324 -7.783314, …
## 10 JAWA TENGAH 294 (((110.0044 -7.88545, 110.0039 -7.886271, 1…
## # ℹ 24 more rows
Cek nama provinsi di kedua dataset. Tujuannya untuk memastikan bahwa
nama provinsi di shapefile (shp) dan Excel
(data_pt) sama, dan kemudian bisa digabung. Gunakan
unique() untuk menampilkan daftar provinsi unik tanpa
duplikasi. Lalu dengan perintah toupper() ubah semua huruf
menjadi kapital, agar nama provinsi cocok walau huruf besar/kecil
berbeda, dan juga perintah trimws() untuk menghapus spasi
di awal/akhir teks, supaya nama “JAWA BARAT” dan “JAWA BARAT” dianggap
sama. Terakhir, gunakan by = c("NAME_1" = "38 Provinsi")
yang artinya kolom NAME_1 di shapefile cocok dengan
kolom 38 Provinsi di Excel. Hasilnya akan berupa
shp_gabung, yaitu shapefile dengan tambahan kolom
perguruan_tinggi dari Excel. Hal ini untuk menampilkan
nama provinsi dan jumlah perguruan tinggi saja.
Langkah 2: Pemetaan data Spasial
Selanjutnya dilakukan pemetaan dengan perintah
geom_sf(). Misal akan dipetakan
perguruan_tinggi di 38 Provinsi.
Hasilnya adalah sebagai berikut.
ggplot(data = shp_gabung) +
geom_sf(aes(fill = perguruan_tinggi)) + # kolom numeric
scale_fill_gradient(low = "lightyellow", high = "darkred") +
theme_minimal() +
labs(fill = "Jumlah Perguruan Tinggi")Peta Spasial ini menjelaskan jumlah sekolah perguruan tertinggi di tiap provinsi. Berdasarkan data dan visulisasinya, provinsi Jawa Barat dan Jawa Timur merupakan yang terbanyak memiliki Perguruan Tinggi di Indonesia.
Terimakasih.