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)