B12R2

Eksplorasi

#Import Data
library(readxl)
data.pkl64 <- read_excel("D:/Mata Kuliah STIS/Semester 6/PKL 64/Eksplorasi/Data PKL 64.xlsx",
  sheet = "Root")
head(data.pkl64)
## # A tibble: 6 × 321
##   assignment_date_modi…¹ assignment_id assignment_id_timest…² assignment_listing
##   <chr>                  <chr>         <chr>                               <dbl>
## 1 20/2/2025 14:05:47.238 0012578c-bad… 0012578c-bad1-4f10-b2…                  0
## 2 19/2/2025 14:01:43.418 00171103-52c… 00171103-52c6-45bb-8b…                  0
## 3 20/2/2025 00:11:43.019 001f951a-841… 001f951a-8411-4cf5-ae…                  0
## 4 18/2/2025 13:18:06.661 003a174f-41d… 003a174f-41d5-41ea-b4…                  0
## 5 18/2/2025 02:38:26.863 0042bb4c-129… 0042bb4c-129e-4a36-bf…                  0
## 6 20/2/2025 01:20:37.133 0045541a-9fc… 0045541a-9fcd-4861-8b…                  0
## # ℹ abbreviated names: ¹​assignment_date_modified, ²​assignment_id_timestamp
## # ℹ 317 more variables: assignment_status_alias <chr>,
## #   assignment_status_id <dbl>, b10r1001_label <chr>, b10r1001_value <dbl>,
## #   b10r1003 <dbl>, b10r1004_label <chr>, b10r1004_value <dbl>,
## #   b10r1005_a <dbl>, b10r1005_b <dbl>, b10r1006_label <chr>,
## #   b10r1006_value <dbl>, b10r1008 <dbl>, b10r1009_a <dbl>, b10r1009_b <dbl>,
## #   b10r1011_a_label <chr>, b10r1011_a_value <dbl>, b10r1011_c <dbl>, …
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Hitung jumlah masing-masing kategori
data.summary <- data.pkl64 %>%
  count(b12r1202_value) %>%
  mutate(label = ifelse(b12r1202_value == 1, "Benar", "Salah"),
         percentage = round(n / sum(n) * 100, 1))
data.summary
## # A tibble: 2 × 4
##   b12r1202_value     n label percentage
##            <dbl> <int> <chr>      <dbl>
## 1              1  4077 Benar       87.4
## 2              2   589 Salah       12.6

Visualisasi

Pie Chart

library(ggplot2)

# Buat pie chart
plot1 <- ggplot(data.summary, aes(x = "", y = n, fill = label)) +
  geom_bar(stat = "identity", width = 1, color = "black") +
  coord_polar(theta = "y", start = 0) +
  geom_text(aes(label = paste0(label, "\n", percentage, "%")), 
            position = position_stack(vjust = 0.5),
            color = "white", size = 5, fontface = "bold") +
  scale_fill_manual(values = c("Benar" = "#4a3d99", "Salah" = "#ffa18e")) +
  theme_void() +
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, face = "bold", size = 14)) +
  ggtitle("Persentase Total Jawaban Benar dan Salah B12R02")

# Tampilkan plot
plot1

ggsave("D:/pie_chart_b12r02.png", plot = plot1, width = 10, height = 6, dpi = 300)

Stacked Bar Chart

library(dplyr)

# Hitung persentase jawaban benar dan salah per KBLI di tiap kab/kota
data.summary2 <- data.pkl64 %>%
  count(b1r102, b3r302_b_value, b12r1202_value) %>%
  group_by(b1r102, b3r302_b_value) %>%
  mutate(percentage = n / sum(n) * 100, 
         label = ifelse(b12r1202_value == 1, "Benar", "Salah"))
data.summary2
## # A tibble: 99 × 6
## # Groups:   b1r102, b3r302_b_value [63]
##    b1r102    b3r302_b_value b12r1202_value     n percentage label
##    <chr>     <chr>                   <dbl> <int>      <dbl> <chr>
##  1 OGAN ILIR C                           1   146       82.5 Benar
##  2 OGAN ILIR C                           2    31       17.5 Salah
##  3 OGAN ILIR E                           1     3      100   Benar
##  4 OGAN ILIR F                           1     9       81.8 Benar
##  5 OGAN ILIR F                           2     2       18.2 Salah
##  6 OGAN ILIR G                           1   414       85.2 Benar
##  7 OGAN ILIR G                           2    72       14.8 Salah
##  8 OGAN ILIR H                           1    53       89.8 Benar
##  9 OGAN ILIR H                           2     6       10.2 Salah
## 10 OGAN ILIR I                           1   136       88.3 Benar
## # ℹ 89 more rows
library(ggplot2)

# Buat stacked bar chart
plot2 <- ggplot(data.summary2, aes(x = b3r302_b_value, y = percentage, fill = label)) +
  geom_bar(stat = "identity", position = "stack", color = "black") +
  facet_wrap(~b1r102) +
  geom_text(aes(label = paste0(round(percentage, 1), "%")), 
            position = position_stack(vjust = 0.5),
            color = "white", size = 4, fontface = "bold") +
  scale_fill_manual(values = c("Benar" = "#4a3d99", "Salah" = "#ffa18e")) +
  labs(title = "Persentase Jawaban Benar dan Salah Berdasarkan KBLI di Setiap Kab/Kota",
       x = "Kode KBLI", y = "Persentase", fill = "Keterangan") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        panel.grid.major = element_blank(),  # Menghilangkan garis grid utama
        panel.grid.minor = element_blank(),  # Menghilangkan garis grid minor
        axis.line = element_line(color = "black")) +  # Menampilkan garis sumbu x dan y
    theme(panel.border = element_blank())

# Tampilkan plot
plot2

ggsave("D:/stacked_bar_chart_b12r02.png", plot = plot2, width = 18, height = 6, dpi = 300)