Package instalation

library (tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'ggplot2' was built under R version 4.3.2
## Warning: package 'tibble' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## âś” dplyr     1.1.4     âś” readr     2.1.4
## âś” forcats   1.0.0     âś” stringr   1.5.1
## âś” ggplot2   3.4.4     âś” tibble    3.2.1
## âś” lubridate 1.9.3     âś” tidyr     1.3.0
## âś” purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## âś– dplyr::filter() masks stats::filter()
## âś– dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library (ggridges)
library (treemap)
## Warning: package 'treemap' was built under R version 4.3.2
library (treemapify)
## Warning: package 'treemapify' was built under R version 4.3.2
library (ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.3.2
library (GGally)
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## 
## Attaching package: 'GGally'
## 
## The following object is masked from 'package:ggmosaic':
## 
##     happy
library (plotly)
## Warning: package 'plotly' was built under R version 4.3.2
## 
## Attaching package: 'plotly'
## 
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following object is masked from 'package:graphics':
## 
##     layout
library (readxl)
library (ggplot2)

Data

data <- read.csv("D:/visdat/data susenas.csv")
str(data)
## 'data.frame':    84688 obs. of  100 variables:
##  $ X    : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ URUT : int  500001 500001 500001 500001 500002 500002 500003 500003 500003 500004 ...
##  $ PSU  : int  12448 12448 12448 12448 31373 31373 12092 12092 12092 31135 ...
##  $ SSU  : int  123442 123442 123442 123442 311039 311039 119908 119908 119908 308689 ...
##  $ WI1  : int  12435 12435 12435 12435 31360 31360 12079 12079 12079 31122 ...
##  $ WI2  : int  123427 123427 123427 123427 311024 311024 119893 119893 119893 308674 ...
##  $ R101 : int  32 32 32 32 32 32 32 32 32 32 ...
##  $ R102 : int  7 7 7 7 72 72 6 6 6 72 ...
##  $ R105 : int  2 2 2 2 1 1 2 2 2 1 ...
##  $ R401 : int  1 2 3 4 1 2 1 2 3 1 ...
##  $ R403 : int  1 3 6 6 1 3 1 2 3 1 ...
##  $ R404 : int  4 2 1 1 3 1 2 2 1 2 ...
##  $ R405 : int  2 2 2 1 2 1 1 2 2 1 ...
##  $ R407 : int  68 46 16 6 62 38 54 41 10 40 ...
##  $ R408 : int  0 5 0 0 0 0 1 1 0 1 ...
##  $ R409 : int  20 22 0 0 16 0 27 18 0 16 ...
##  $ R406A: int  5 2 23 17 6 28 10 12 21 26 ...
##  $ R406B: int  4 10 1 8 12 7 11 11 4 3 ...
##  $ R406C: int  1954 1976 2007 2016 1960 1984 1968 1981 2012 1982 ...
##  $ R410 : int  2 2 2 2 1 1 2 2 2 2 ...
##  $ R501 : int  1 1 0 0 2 0 1 1 0 1 ...
##  $ R502 : int  1 2 3 4 1 1 1 1 1 1 ...
##  $ R503 : int  0 1 2 2 0 1 0 0 2 0 ...
##  $ R504 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R506 : int  2 2 2 1 2 1 1 2 2 1 ...
##  $ R507 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R508 : int  5 2 2 2 2 1 5 5 1 1 ...
##  $ R509 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R601 : int  32 32 32 32 32 32 32 32 32 32 ...
##  $ R602 : int  7 7 7 7 72 72 6 6 6 72 ...
##  $ R603 : int  32 32 32 32 32 32 32 32 32 32 ...
##  $ R604 : int  7 7 7 7 72 72 6 6 6 72 ...
##  $ R605 : int  0 0 0 3 0 0 0 0 4 0 ...
##  $ R606 : int  0 0 0 1 0 0 0 0 0 0 ...
##  $ R607 : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R608 : int  1 1 1 1 5 5 1 1 1 1 ...
##  $ R609 : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ R610 : int  3 3 3 2 3 3 3 3 2 3 ...
##  $ R611 : int  0 0 0 1 0 0 0 0 1 0 ...
##  $ R612 : int  3 19 15 3 3 3 13 8 3 8 ...
##  $ R613 : int  8 8 1 1 8 8 8 8 5 8 ...
##  $ R614 : int  3 19 8 25 3 3 13 8 25 8 ...
##  $ R615 : int  0 0 5 5 0 0 0 0 5 0 ...
##  $ R616 : int  0 0 5 5 0 0 0 0 5 0 ...
##  $ R617 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R618 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R619 : int  0 0 3 1 0 0 0 0 2 0 ...
##  $ R620 : int  0 0 0 0 0 0 0 0 3 0 ...
##  $ R621 : int  0 0 0 0 0 0 0 0 4 0 ...
##  $ R701 : int  1 1 5 5 5 1 1 5 5 1 ...
##  $ R702 : int  1 5 5 5 5 5 1 5 5 1 ...
##  $ R704 : int  3 3 3 0 3 1 1 3 2 1 ...
##  $ R705 : int  5 5 5 0 5 0 0 5 5 0 ...
##  $ R706 : int  0 0 0 0 0 11 12 0 0 13 ...
##  $ R707 : int  0 0 0 0 0 5 1 0 0 4 ...
##  $ R708 : int  0 0 0 0 0 48 50 0 0 48 ...
##  $ R709 : int  0 0 0 0 0 48 50 0 0 97 ...
##  $ R801 : int  5 1 1 5 1 1 1 1 1 1 ...
##  $ R802 : int  5 1 1 5 1 1 1 1 1 1 ...
##  $ R808 : int  5 1 1 5 5 5 1 1 1 1 ...
##  $ R812 : int  5 5 1 5 5 5 5 5 5 5 ...
##  $ R901 : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ R902 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R903 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R904 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R905 : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ R906 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R907 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R908 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R909 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R910 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R911 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R912 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R913 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R914 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R915 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R916 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R1001: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R1002: int  4 4 4 4 4 4 4 4 4 4 ...
##  $ R1003: int  8 8 8 8 8 8 8 8 8 8 ...
##  $ R1004: int  4 4 4 4 4 4 4 4 4 4 ...
##  $ R1005: int  8 8 8 8 8 8 8 8 8 8 ...
##  $ R1006: int  4 4 4 4 4 4 4 4 4 4 ...
##  $ R1007: int  8 8 8 8 8 8 8 8 8 8 ...
##  $ R1008: int  4 4 4 4 4 4 4 4 4 4 ...
##  $ R1009: int  8 8 8 8 8 8 8 8 8 8 ...
##  $ R1010: int  5 5 5 5 5 5 5 5 5 5 ...
##  $ R1102: int  5 5 1 1 5 5 5 5 5 5 ...
##  $ R1103: int  0 0 5 5 0 0 0 0 0 0 ...
##  $ R1104: int  0 0 1 1 0 0 0 0 0 0 ...
##  $ R1105: int  0 0 5 5 0 0 0 0 0 0 ...
##  $ R1106: int  0 0 5 5 0 0 0 0 0 0 ...
##  $ R1108: int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R1201: int  5 5 5 5 5 5 5 5 5 5 ...
##  $ R1203: int  0 0 0 0 0 0 0 0 0 0 ...
##  $ R1206: int  5 5 5 5 5 5 5 5 5 5 ...
##  $ R1207: int  5 5 5 5 5 1 1 5 5 1 ...
##  $ R1208: int  0 0 0 0 0 35 49 0 0 112 ...
##  $ R1209: int  5 5 5 5 5 1 1 5 5 1 ...
##   [list output truncated]
data1 <- data.frame(data$R607, data$R608, data$R609, data$R709)
data1 <- subset(data1, data$R607 != 0)
data1 <- subset(data1,data$R608 != 0)
data1 <- subset(data1, data$R609 != 0)
data1 <- subset(data1, data$R709 != 0)

Visualisasi Besaran Data

1. Bar Chart

Frekuensi ART Berumur 0-10 Tahun yang mengikuti Pendidikan Pra-sekolah
dataprasekolah <- subset(data, R606 != 0)

ggplot(dataprasekolah, aes(x = factor(R606))) +
  geom_bar(fill = "steelblue", width = 0.8) +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5) +
  labs(title = "Jumlah ART Berumur 0-10 Tahun yang Mengikuti Pendidikan Pra-sekolah", x = "Jenis Pra-sekolah", y = "Frekuensi") +
  theme_classic()

Dari bar chart di atas, dapat dilihat bahwa mayoritas anggota rumah tangga di Jawa Barat yang berumur 0-10 tahun mengikuti pendidikan pra-sekolah dengan kode 1 yaitu Taman Kanak-Kanan sebanyak 3599 individu. Kemudian, diikuti dengan pendidikan pra-sekolah dengan kode 4, yaitu satuan PAUD sejenis (PAUD terintegrasi BKB/Taman Posyandu, PAUD-TAAM, PAUD-PAK, PAUD-BIA, TKQ, dll) sebanyak 2487 individu. Hanya sebanyak 20 individu yang mengikuti pendidikan pra-sekolah dengan kode 6 yaitu, Taman Penitipan Anak.

Top 10 Total Jam Kerja dalam Seminggu dari Pekerjaan Utama
data_top10 <- subset(data, R708 != 0)

data_top10 %>%
  count(R708) %>%
  slice_max(n = 10, order_by = n) %>% 
  ggplot() +
  geom_col(aes(x = fct_reorder(as.factor(R708), n), y = n), fill = "#008080", width = 0.4) +
  geom_text(aes(x = fct_reorder(as.factor(R708), n), y = n, label = n),
            position = position_stack(vjust = 0.5), color = "white", size = 3) +
  scale_y_continuous(expand = c(0, 0)) +
  coord_flip() +
  ggtitle("Top 10 Total Jam Kerja dalam Seminggu dari Pekerjaan Utama") +
  xlab("Jumlah Jam Kerja dalam Seminggu") +
  ylab("Frekuensi") +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5, size = 15))

Berdasarkan bar chart di atas, terlihat bahwa mayoritas penduduk di Jawa Barat yaitu sebanyak 6297 individu memiliki total jam kerja selama 48 jam dalam seminggu dari pekerjaan utama. Kemudian, diikuti dengan penduduk yang memiliki total jam kerja selama 40 jam dalam seminggu dari pekerjaan utama yaitu sebanyak 3100 individu. Di urutan ketiga, terdapat sebanyak 3025 individu yang memiliki total jam kerja selama 56 jam dalam seminggu dari pekerjaan utama.

Jenjang Pendidikan vs Jumlah Jam Kerja dalam Seminggu dari Seluruh Pekerjaan
data %>%
  group_by(R612) %>%
  summarize(total_jam=mean(R709)) %>%
  arrange(desc(total_jam)) %>%
  slice_head (n = 10) %>%
  ggplot(aes(x = reorder(R612, total_jam), y = total_jam)) +
  geom_col(fill = "#81D8D0") +
  geom_text(aes(label = round(total_jam, 1)), vjust = -0.5, color = "black", size = 3) +
  scale_y_continuous(limits = c(0, 40)) +
  coord_flip() +
  ggtitle("Jenjang Pendidikan vs Jumlah Jam Kerja dalam Seminggu dari Seluruh Pekerjaan") +
  xlab("Jenjang Pendidikan") +
  ylab("Jumlah Jam Kerja dalam Seminggu dari Seluruh Pekerjaan") +
  theme_bw()+
  theme(plot.title = element_text(size = 12))
## Warning: Removed 1 rows containing missing values (`position_stack()`).
## Warning: Removed 1 rows containing missing values (`geom_text()`).

Berdasarkan bar chart di atas, dapat dilihat bahwa jenjang pendidikan dengan kode 24, yaitu jenjang pendidikan S3 memiliki rata-rata jam kerja selama 35.7 jam dalam seminggu dari seluruh pekerjaan. Kemudian, diikuti oleh jenjang pendidikan dengan kode 23, yaitu jenjang pendidikan S2 memiliki rata-rata jam kerja selama 32.3 jam dalam seminggu dari seluruh pekerjaan. Jenjang pendidikan dengan kode 20 (D4) dan jenjang pendidikan dengan kode 19 (D3) memiliki rata-rata jam kerja yang sama yaitu selama 31.6 jam dalam seminggu dari seluruh pekerjaan.

2. Lollipop Chart

Jumlah Jam Kerja dalam Seminggu dari Seluruh Pekerjaan
data2 <- subset(data, R709 != 0)

data2 %>%
  count(R709) %>%
  slice_max(n = 10, order_by = n) %>% 
  arrange(desc(n)) %>% 
  ggplot() +
  geom_segment(aes(x = fct_reorder(as.factor(R709), n), xend = fct_reorder(as.factor(R709), n), y = 0, yend = n), color = "skyblue") +
  geom_point(aes(x = fct_reorder(as.factor(R709), n), y = n), color = "coral", size = 2) +
  geom_text(aes(x = fct_reorder(as.factor(R709), n), y = n, label = n), position = position_stack( vjust = 0.5), color = "black", hjust = 1, size = 3) + 
  scale_y_continuous(limits = c(0, 7000)) +
  coord_flip() +
  ggtitle("Top 10 Jumlah Jam Kerja dalam Seminggu dari Seluruh Pekerjaan") +
  xlab("Jumlah Jam Kerja") +
  ylab("Frekuensi") +
  theme_light() +
  theme(plot.title = element_text(hjust = 0.5))

Dari lollipop chart di atas, terlihat bahwa mayoritas penduduk di Jawa Barat yaitu sebanyak 6003 individu memiliki total jam kerja selama 48 jam dalam seminggu dari seluruh pekerjaan. Kemudian, sebanyak 3149 individu memiliki total jam kerja selama 56 jam dalam seminggu dari seluruh pekerjaan. Pada urutan ketiga, sebanyak 3036 individu memiliki total jam kerja selama 40 jam dalam seminggu dari seluruh pekerjaan.

Visualisasi Sebaran Data

1. Histogram

Sebaran Jumlah Jam Kerja dari Seluruh Pekerjaan Selama Seminggu
data3 <- data.frame(R709 = ifelse(data$R709 != 0, data$R709, NA))

histdata3 <- ggplot(data3, aes(x = R709)) +
  geom_histogram(binwidth = 3, fill = "#69b3a2", alpha = 1) +
  labs(title = "Histogram Sebaran Jumlah Jam Kerja dari Seluruh Pekerjaan Selama Seminggu",
       x = "Jumlah Jam Kerja",
       y = "Frekuensi") +
  theme_minimal()
histdata3
## Warning: Removed 46465 rows containing non-finite values (`stat_bin()`).

Berdasarkan histogram di atas dapat dilihat bahwa mayoritas data jumlah jam kerja dari seluruh pekerjaan dalam seminggu menyebar diantara 37.5-62.5 jam. Histogram menunjukkan jumlah jam kerja dari seluruh pekerjaan dalam seminggu bervariasi secara merata dan stabil di seluruh rentang nilai. Selain itu, dapat dilihat bahwa distribusi data mendekati normal.

2. Density Plot

Sebaran Jumlah Jam Kerja dari Seluruh Pekerjaan Selama Seminggu
data3 <- data.frame(R709 = ifelse(data$R709 != 0, data$R709, NA))

ggplot(data3, aes(x = as.numeric(R709), fill = "Jumlah Jam Kerja")) +
  geom_density(color = "#e9ecef", alpha = 0.8) +
  labs(title = "Density Plot Sebaran Jumlah Jam Kerja dari Seluruh Pekerjaan Selama Seminggu", x = "Jumlah Jam Kerja", y = "Density")
## Warning: Removed 46465 rows containing non-finite values (`stat_density()`).

Dari density plot di atas, dapat dilihat bahwa data jumlah jam kerja dari seluruh pekerjaan selama seminggu memiliki bentuk kurva yang menyerupai lonceng dengan puncak di tengah menunjukkan sebaran yang cenderung normal dan simetris. Terdapat satu puncak dari density plot tersebut, menunjukkan mayoritas penduduk memiliki jumlah jam kerja dari seluruh pekerjaan selama seminggu adalah sekitar 40 jam.

Visualisasi Komposisi Data

1. Pie chart

Komposisi anggota rumah tangga (ART) berumur di atas 5 tahun bisa membaca dan menulis dengan huruf latin/alfabet
data$R607 <- as.numeric(data$R607)
data_pie <- data %>%
  mutate(R607 = ifelse(R607==1, "yes", "no")) %>%
  count (R607) %>%
  mutate(percentage=prop.table(n)*100)

colors <- c("yes" = "cornflowerblue", "no" = "#A1CAF1")

ggplot(data_pie, aes(x = "", y = percentage, fill = factor(R607))) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_manual(values = colors)  +
  theme_void() +
  theme(legend.position = "right", plot.title = element_text(size = 10)) +
  labs(title = "Komposisi ART berumur di atas 5 tahun bisa membaca dan menulis dengan huruf latin", fill = "yes/no", fontzise=8) +
  geom_text(aes(label = paste0(round(percentage), "%")), position = position_stack(vjust = 0.5))

Berdasarkan pie chart di atas, dapat dilihat bahwa sekitar 10% sampel anggota rumah tangga (ART) berumur di atas 5 tahun di Jawa Barat belum bisa membaca dan menulis kalimat sederhana dalam bahasa sehari-hari dengan menggunakan huruf latin, sedangkan mayoritas sisanya yaitu sekitar 90% sampel sudah bisa membaca dan menulis kalimat sederhana dalam bahasa sehari-hari dengan menggunakan dengan huruf latin.

Komposisi anggota rumah tangga (ART) berumur di atas 5 tahun bisa membaca dan menulis dengan huruf arab/hijaiyah
data$R608 <- as.numeric(data$R608)
data_pie <- data %>%
  mutate(R608 = ifelse(R608==1, "yes", "no")) %>%
  count (R608) %>%
  mutate(percentage=prop.table(n)*100)

ggplot(data_pie, aes(x = "", y = percentage, fill = factor(R608))) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_brewer(palette = "Set3") +
  theme_void() +
  theme(legend.position = "right", plot.title = element_text(size = 10)) +
  labs(title = "Komposisi ART berumur di atas 5 tahun bisa membaca dan menulis dengan huruf arab", fill = "yes/no") +
  geom_text(aes(label = paste0(round(percentage), "%")), position = position_stack(vjust = 0.5))

Berdasarkan pie chart di atas, dapat dilihat bahwa sekitar 33% sampel anggota rumah tangga (ART) berumur di atas 5 tahun di Jawa Barat belum bisa membaca dan menulis kalimat sederhana dalam bahasa sehari-hari dengan menggunakan huruf arab, sedangkan mayoritas sisanya yaitu sekitar 67% sampel sudah bisa membaca dan menulis kalimat sederhana dalam bahasa sehari-hari dengan menggunakan huruf arab.

Komposisi anggota rumah tangga (ART) berumur di atas 5 tahun bisa membaca dan menulis dengan huruf lainnya
data$R609 <- as.numeric(data$R609)
data_pie <- data %>%
  mutate(R609 = ifelse(R609==1, "yes", "no")) %>%
  count (R609) %>%
  mutate(percentage=prop.table(n)*100)

colors <- c("yes" = "#B2FFFF", "no" = "turquoise")

ggplot(data_pie, aes(x = "", y = percentage, fill = factor(R609))) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_manual(values = colors) +  
  theme_void() +
  theme(legend.position = "right", plot.title = element_text(size = 10)) +
  labs(title = "Komposisi ART berumur di atas 5 tahun bisa membaca dan menulis dengan huruf lainnya", fill = "yes/no") +
  geom_text(aes(label = paste0(round(percentage), "%")), position = position_stack(vjust = 0.5))

Berdasarkan pie chart di atas, dapat dilihat bahwa mayoritas sampel yaitu sekitar 97% sampel anggota rumah tangga (ART) berumur di atas 5 tahun di Jawa Barat belum bisa membaca dan menulis kalimat sederhana dalam bahasa sehari-hari dengan menggunakan huruf lainnya (jawa, kanji, cina, dll), sedangkan sisanya yaitu sekitar 3% sampel sudah bisa membaca dan menulis kalimat sederhana dalam bahasa sehari-hari dengan menggunakan huruf lainnya (jawa, kanji, cina, dll).

2. Treemap

Penerima PIP berdasarkan wilayah dan jenjang pendidikan tertinggi yang pernah/sedang dijalani
datakabkota <- read_excel("D:/visdat/data kabkota.xlsx")
merged_data <- merge(data, datakabkota, by.x = "R102", by.y = "KODE", all.x = TRUE)
merged_data$R102 <- ifelse(!is.na(merged_data$Kab), merged_data$Kab, merged_data$R102)
merged_data <- merged_data[, !names(merged_data) %in% c("Kab")]
databaru <- merged_data

treemap(
  databaru, 
  index = c("R102", "R612"),
  vSize = "R616",
  algorithm = "pivotSize",
  draw = TRUE,
  title = "Treemap: Penerima PIP berdasarkan wilayah dan jenjang pendidikan tertinggi yang pernah/sedang dijalani",
  fontsize.title = 10,
  fontsize.labels = 8,
  fontcolor.labels = "white"
)

Treemap di atas menggambarkan Penerima PIP berdasarkan wilayah dan jenjang pendidikan tertinggi yang pernah/sedang dijalani. Terlihat bahwa mayoritas penerima PIP merupakan penduduk wilayah Kabupaten Bogor dilihat dari kode jenjang pendidikan dengan urutan paling banyak menerima adalah 3 (SD), 13(SMA), 15 (SMK), 8 (SMP), 21(S1), 4(MI), 9(MTs), 11(Paket C), 14(MA), 6(Paket B), dan 1(Paket A). Sedangkan kota dengan penerima PIP paling sedikit adalah Kota Banjar dilihat dari kode jenjang pendidikan dengan urutan paling banyak menerima adalah 3 (SD), 8(SMP), 15(SMK), 13 (SMA), 21 (S1), 9 (MTs), 11 (Paket C), dan 14 (MA).