Input Data

Data diinput dari Microsoft excel dengan syntax sebagai berikut

setwd("D:/APK/Tugas_R")
data <- read_excel("JumlahKasusdanKorban.xlsx")
head(data)
## # A tibble: 6 × 5
##   `Tempat Kejadian`      `Jumlah Kasus` `Jumlah Korban` `Jenis Kekerasan` Jumlah
##   <chr>                           <dbl>           <dbl> <chr>              <dbl>
## 1 Rumah Tangga                     2663            2848 Fisik               1538
## 2 Tempat Kerja                       71              71 Psikis              1429
## 3 Lainnya                           984            1029 Seksual             1890
## 4 Sekolah                           224             257 Eksploitasi           63
## 5 Fasilitas Umum                    362             399 Trafficking           84
## 6 Lembaga Pendidikan Ki…              4               6 Penelantaran         386

Data ini bersumber dari https://kekerasan.kemenpppa.go.id/ringkasan.

data <- na.omit(data)

Pie Chart

Dari data tersebut akan disajikan visualisasi data dalam bentuk Pie Chart. berikut terlampir hasil visualisasi datanya:

pie_chart <- ggplot(data, aes(x = "", y = Jumlah, fill = `Jenis Kekerasan`)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  theme_minimal() +
  labs(title = "Distribusi Kasus Berdasarkan Jenis kekerasan") +
  theme(axis.text.x = element_blank())

pie_chart

Berdasarkan grafik di atas, kasus kekerasan didominasi oleh kekerasan seksual, lalu diikuti oleh kekerasan fisik, psikis, dan penelantaran. Sementara itu, eksploitasi dan trafficking memiliki jumlah paling sedikit, namun tetap penting untuk diperhatikan karena dampaknya yang sangat serius.

Bar Chart

Dari data tersebut akan disajikan visualisasi data dalam bentuk Bar Chart. berikut terlampir hasil visualisasi datanya:

Berdasarkan grafik di atas menunjukkan bahwa Kasus Kekerasan di Rumah Tangga memiliki presentase jumlah kasus dan jumlah korban terbanyak. dalam satu kasus kekerasan itu bisa terdapat lebih dari 1 korban. Sedangkan untuk Kasus Kekerasan di Lembaga Pendidikan Kilat memiliki presentase jumlah kasus dan jumlah korban terendah. Selain itu, data juga menunjukkan bahwa dalam satu kasus kekerasan, sering kali terdapat lebih dari satu korban

Dot Plot

Dari data tersebut akan disajikan visualisasi data dalam bentuk Dot Plot. berikut terlampir hasil visualisasi datanya:

dot_plot <- ggplot(data, aes(x = `Jumlah Kasus`, y = `Jumlah Korban`)) +
  geom_point(color = "blue", size = 3) +
  theme_minimal() +
  labs(title = "Dot Plot: Jumlah Kasus vs Jumlah Korban", x = "Jumlah Kasus", y = "Jumlah Korban")

dot_plot

Visualisasi di atas menunjukkan bahwa seiring dengan meningkatnya jumlah kasus, jumlah korban juga ikut meningkat. Beberapa titik pada grafik memperlihatkan jumlah korban yang jauh lebih banyak dibandingkan jumlah kasus, yang mengindikasikan bahwa dalam satu kasus bisa ada lebih dari satu korban.

Histogram

Dari data tersebut akan disajikan visualisasi data dalam bentuk Histogram. berikut terlampir hasil visualisasi datanya:

histogram <- ggplot(data, aes(x = `Jumlah Kasus`)) +
  geom_histogram(binwidth = 500, fill = "blue", color = "black", alpha = 0.7) +
  theme_minimal() +
  labs(title = "Histogram: Distribusi Jumlah Kasus", x = "Jumlah Kasus", y = "Frekuensi")

histogram

Grafik Histogram ini menunjukkan bahwa sebagian besar kasus berada di angka yang rendah, sementara ada beberapa lonjakan dengan jumlah kasus yang jauh lebih tinggi. Frekuensi tertinggi terjadi di kategori dengan kasus kecil, sedangkan kasus besar jarang muncul. Pola ini mengindikasikan distribusi yang tidak merata, dengan adanya beberapa nilai ekstrem (outlier) yang bisa jadi dipengaruhi oleh faktor tertentu. Secara keseluruhan, histogram ini menggambarkan bahwa meskipun sebagian besar kasus relatif sedikit, ada beberapa kejadian dengan jumlah yang sangat tinggi yang perlu diperhatikan lebih lanjut.

Boxplot

Dari data tersebut akan disajikan visualisasi data dalam bentuk Boxplot. berikut terlampir hasil visualisasi datanya:

boxplot_data <- ggplot(data, aes(y = `Jumlah Kasus`, x = "", fill = "Jumlah Kasus")) +
  geom_boxplot(alpha = 0.6) +
  theme_minimal() +
  labs(title = "Boxplot: Variasi Jumlah Kasus", y = "Jumlah Kasus", x = "")

boxplot_data

Berdasarkan Visualisasi Boxplot di atas, menunjukkan bahwa jumlah kasus bervariasi cukup luas, dengan sebagian besar data berada di kisaran rendah hingga menengah. Garis median yang lebih dekat ke bagian bawah kotak menunjukkan bahwa sebagian besar kasus cenderung lebih kecil, sementara ada beberapa yang lebih besar. Selain itu, ada satu outlier yang jumlahnya jauh lebih tinggi dari yang lain, menandakan adanya kejadian luar biasa yang tidak umum. Secara keseluruhan, grafik ini menunjukkan bahwa mayoritas kasus tersebar dalam kisaran tertentu, tetapi ada satu kasus yang sangat tinggi dibandingkan dengan yang lain.

Density Plot

Dari data tersebut akan disajikan visualisasi data dalam bentuk Density Plot. berikut terlampir hasil visualisasi datanya:

density_plot <- ggplot(data, aes(x = `Jumlah Korban`, fill = "Jumlah Korban")) +
  geom_density(alpha = 0.5) +
  theme_minimal() +
  labs(title = "Density Plot: Distribusi Jumlah Korban", x = "Jumlah Korban", y = "Density")

density_plot

Berdasarkan visualisasi di atas, distribusi jumlah korban tampak tidak merata, dengan kepadatan tertinggi pada jumlah korban yang rendah dan semakin menurun seiring bertambahnya jumlah korban. Grafik ini menunjukkan penurunan tajam setelah puncak awal, namun ada sedikit peningkatan pada kisaran jumlah korban yang lebih tinggi, yang menunjukkan adanya beberapa kejadian dengan jumlah korban yang cukup besar. Secara keseluruhan, distribusi ini cenderung skewed ke kanan, yang berarti sebagian besar data terkonsentrasi di angka yang lebih kecil, namun ada beberapa kasus dengan jumlah korban yang jauh lebih tinggi, yang mungkin merupakan outlier atau kejadian khusus.

Ukuran Pemusatan Data

1. Menghitung Rata - Rata (mean)

Berikut adalah rata rata dari data Jumlah Kasus

mean(data$`Jumlah Kasus`)
## [1] 718

2. Menghitung Median

Berikut adalah Median dari data Jumlah kasus

median(data$`Jumlah Kasus`)
## [1] 293

3. Menghitung Modus

Berikut adalah Modus dari data Jumlah jenis kekerasan

modus <- function(x){
  uniqx <- unique(x)
  uniqx [which.max(tabulate(match(x,uniqx)))]
}

modus(data$Jumlah)
## [1] 1538

4. Menghitung Quartil 1 dan Quartil 3

Berikut adalah quartil 1 dan quartil 3 dari data Jumlah korban

jumlah_korban <- data$`Jumlah Korban`
q1 <- quantile(jumlah_korban, 0.25)
q3 <- quantile(jumlah_korban, 0.75)

print(q1)
##   25% 
## 117.5
print(q3)
##   75% 
## 871.5

5. Menghitung Range

Berikut adalah range dari data Jumlah korban

print(max(data$`Jumlah Korban`)-min(data$`Jumlah Korban`))
## [1] 2842

6. Menghitung varians

Berikut adalah varians dari data Jumlah Korban

var(data$`Jumlah Korban`)
## [1] 1171651

7. Menghitung Standar Deviasi

Berikut adalah standar deviasi dari data Jumlah korban

sd(data$`Jumlah Korban`)
## [1] 1082.428