install library

beberapa library yang perlu diinstal sebagai berikut:

library(ggplot2)
library(readxl)
library(ggthemes)
library(gridExtra)

import data

data diinput dari microsoft excel dengan syntax

setwd ("C:/Users/Erlangga/Documents/prosta")
data<-read_excel("data_kclkaaan_faktorpenyebab.xlsx")
head(data)
## # A tibble: 6 × 6
##   `Tahun pengamatan` `Jumlah Kecelakaan` `Faktor Pengemudi` `Faktor Kendaraan`
##                <dbl>               <dbl>              <dbl>              <dbl>
## 1                 NA                  NA                 NA                 NA
## 2               2008                  67                 42                 19
## 3               2009                  34                 21                  9
## 4               2010                  39                 26                 10
## 5               2011                  72                 49                 16
## 6               2012                  81                 58                 19
## # ℹ 2 more variables: `Faktor Cuaca` <dbl>, `Faktor Jalan` <dbl>

Data tersebut bersumber dari Satlantas Polres Semarang di dalam buku Diklat Jalan Keselamatan Modul 3 yang berjudul Data Kecelakaan Lalu Lintas 2016.

1. Pie Chart

Dari data tersebut, akan disajikan visualisasi data dalam bentuk Pie Chart. Berikut terlampir hasil visualisasi data distribusi faktor pengemudi berdasarkan tahun.

data <- na.omit(data)
pie_chart <- ggplot(data, aes(x = "", y = `Faktor Pengemudi`, fill = `Tahun pengamatan`)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  theme_minimal() +
  labs(title = "Distribusi Faktor Pengemudi Berdasarkan Tahun") +
  theme(axis.text.x = element_blank())

pie_chart

Statistik Deskriptif:

Diagram menunjukkan distribusi faktor pengemudi dalam kecelakaan berdasarkan tahun pengamatan. Warna yang berbeda merepresentasikan tahun yang berbeda. Proporsi terbesar terlihat pada tahun 2012, yang memiliki kontribusi terbesar dibanding tahun lainnya, sementara tahun 2008 dan 2009 memiliki proporsi yang lebih kecil.

Statistik Inferensia:

Visualisasi ini menunjukkan bahwa faktor pengemudi sebagai penyebab kecelakaan mengalami peningkatan seiring waktu, dengan tahun 2012 sebagai puncaknya. Hal ini mengindikasikan bahwa pola kecelakaan akibat faktor pengemudi cenderung meningkat di tahun-tahun terakhir dibandingkan tahun-tahun sebelumnya.

2. Bar Chart

Dari data tersebut, akan disajikan visualisasi data dalam bentuk Bar Chart. Berikut terlampir hasil visualisasi data jumlah kecelakaan per tahun.

data <- na.omit(data)
data$`Tahun pengamatan` <- as.factor(data$`Tahun pengamatan`)
bar_chart <- ggplot(data, aes(x = `Tahun pengamatan`, y = `Jumlah Kecelakaan`, fill = `Tahun pengamatan`)) +
  geom_col() + 
  theme_minimal() +
  labs(title = "Jumlah Kecelakaan per Tahun\n",
       x = "Tahun Pengamatan",
       y = "Jumlah Kecelakaan")

bar_chart

Statistik Deskriptif:

Bar chart menunjukkan bahwa jumlah kecelakaan per tahun mengalami fluktuasi. Tahun 2008 memiliki angka kecelakaan yang cukup tinggi, diikuti oleh penurunan pada tahun 2009. Namun, kecelakaan kembali meningkat secara bertahap pada tahun 2010 dan mencapai puncaknya di tahun 2012.

Statistik Inferensia:

Tren yang terlihat dalam bar chart ini menunjukkan bahwa setelah mengalami penurunan pada tahun 2009, jumlah kecelakaan meningkat secara konsisten hingga tahun 2012. Hal ini bisa menunjukkan adanya faktor-faktor lain yang berkontribusi terhadap meningkatnya jumlah kecelakaan di tahun-tahun terakhir, seperti peningkatan jumlah kendaraan atau perubahan kondisi lalu lintas.

3. Histogram

Dari data tersebut, akan disajikan visualisasi data dalam bentuk Histogram. Berikut terlampir hasil visualisasi data faktor cuaca dalam kecelakaan.

data <- na.omit(data)
data$`Faktor Cuaca` <- as.numeric(as.character(data$`Faktor Cuaca`))

histogram <- ggplot(data, aes(x = `Faktor Cuaca`)) +
  geom_histogram(binwidth = diff(range(data$`Faktor Pengemudi`)) / 10, 
                 fill = "blue", color = "black", alpha = 0.7) +
  theme_minimal() +
  labs(title = "Histogram: Faktor Cuaca dalam Kecelakaan",
       x = "Jumlah Kecelakaan",
       y = "Frekuensi")

histogram

Statistik Deskriptif:

Histogram menunjukkan distribusi jumlah kecelakaan yang disebabkan oleh faktor cuaca. Data terkonsentrasi pada kisaran jumlah kecelakaan tertentu, dengan sebagian besar frekuensi berkumpul di sekitar nilai tengah.

Statistik Inferensia:

Dari distribusi yang ditampilkan, terlihat bahwa faktor cuaca memiliki peran dalam kecelakaan, tetapi tidak menunjukkan pola yang ekstrem. Hal ini bisa berarti bahwa faktor cuaca memiliki kontribusi yang stabil terhadap kecelakaan, tanpa adanya lonjakan signifikan dalam jumlah kasus.

4. Boxplot

Dari data tersebut, akan disajikan visualisasi data dalam bentuk Boxplot. Berikut terlampir hasil visualisasi data faktor jalan dalam kecelakaan.

data <- na.omit(data)
data$`Faktor Jalan` <- as.numeric(as.character(data$`Faktor Jalan`))
data <- na.omit(data)  


boxplot_data <- ggplot(data, aes(y = `Faktor Pengemudi`, fill = "Faktor Jalan")) +
  geom_boxplot(alpha = 0.6, outlier.colour = "red", outlier.shape = 16) +
  theme_minimal() +
  labs(title = "Boxplot: Faktor Jalan dalam Kecelakaan", 
       y = "Jumlah Kecelakaan", 
       fill = "Kategori") +
  theme(legend.position = "none") 

boxplot_data

Statistik Deskriptif: Boxplot memperlihatkan persebaran jumlah kecelakaan yang dipengaruhi oleh faktor jalan. Nilai median berada di sekitar titik tengah distribusi, dengan rentang interkuartil yang cukup luas. Beberapa outlier juga terlihat pada bagian atas dan bawah grafik, menunjukkan bahwa ada beberapa kasus kecelakaan yang memiliki jumlah sangat tinggi atau sangat rendah dibandingkan mayoritas data lainnya.

Statistik Inferensia: Keberadaan outlier pada boxplot menunjukkan bahwa ada beberapa tahun dengan jumlah kecelakaan akibat faktor jalan yang jauh lebih tinggi atau lebih rendah dari nilai rata-rata. Ini bisa mengindikasikan bahwa di tahun-tahun tertentu, kondisi jalan menjadi faktor signifikan dalam meningkatkan risiko kecelakaan.

5. Density Plot

Dari data tersebut, akan disajikan visualisasi data dalam bentuk Density Plot. Berikut terlampir hasil visualisasi data faktor kendaraan dalam kecelakaan.

data <- na.omit(data)
density_plot <- ggplot(data, aes(x = `Faktor Kendaraan`, fill = "Faktor Kendaraan")) +
  geom_density(alpha = 0.5, color = "black") +
  theme_minimal() +
  labs(title = "Density Plot: Faktor Kendaraan dalam Kecelakaan",
       x = "Jumlah Kecelakaan",
       y = "Kepadatan") +
  theme(legend.position = "none")  # Hilangkan legenda jika hanya satu kategori

density_plot

Statistik Deskriptif:

Density plot menunjukkan distribusi kepadatan jumlah kecelakaan yang disebabkan oleh faktor kendaraan. Grafik ini memperlihatkan bahwa sebagian besar data terkonsentrasi dalam rentang tertentu, dengan kepadatan tertinggi pada kisaran jumlah kecelakaan tertentu.

Statistik Inferensia:

Dari pola yang terlihat, mayoritas kecelakaan akibat faktor kendaraan terjadi dalam rentang jumlah tertentu, dengan beberapa kasus yang menyebar di luar rentang utama. Ini menunjukkan bahwa meskipun faktor kendaraan memiliki peran besar dalam kecelakaan, intensitasnya tidak merata dan dapat bervariasi dari tahun ke tahun.

6. Menampilkan semua plot

Dari data tersebut, akan disajikan berbagai visualisasi data dalam bentuk pie chart, bar chart, histogram, boxplot, dan density plot untuk memberikan gambaran mengenai faktor-faktor yang berkontribusi terhadap jumlah kecelakaan.

grid.arrange(pie_chart, bar_chart, histogram, boxplot_data, density_plot, ncol=2, nrow=3)

Hasil visualisasi ini membantu dalam memahami pola distribusi kecelakaan serta faktor-faktor yang berkontribusi terhadap peningkatan jumlah kecelakaan setiap tahunnya.

7. Mean

Rata-rata (mean) digunakan untuk mengetahui nilai tengah dari data kecelakaan dan faktor-faktor yang mempengaruhinya. Berikut hasil perhitungannya:

mean(data$`Jumlah Kecelakaan`)
## [1] 58.6
mean(data$`Faktor Pengemudi`)
## [1] 39.2
mean(data$`Faktor Kendaraan`)
## [1] 14.6
mean(data$`Faktor Cuaca`)
## [1] 1.6
mean(data$`Faktor Jalan`)
## [1] 3.2

8. Median

Median digunakan untuk mengetahui nilai tengah dari data yang telah diurutkan, sehingga tidak terpengaruh oleh nilai ekstrem. Berikut hasil median untuk setiap faktor:

median(data$`Jumlah Kecelakaan`)
## [1] 67
median(data$`Faktor Pengemudi`)
## [1] 42
median(data$`Faktor Kendaraan`)
## [1] 16
median(data$`Faktor Cuaca`)
## [1] 2
median(data$`Faktor Jalan`)
## [1] 3

9. Modus

Modus adalah nilai yang paling sering muncul dalam dataset. Berikut adalah modus dari jumlah kecelakaan dan faktor-faktornya:

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

modus(data$`Jumlah Kecelakaan`)
## [1] 67
modus(data$`Faktor Pengemudi`)
## [1] 42
modus(data$`Faktor Kendaraan`)
## [1] 19
modus(data$`Faktor Cuaca`)
## [1] 2
modus(data$`Faktor Jalan`)
## [1] 3

10. Q1 & Q3 (Statistik 5 Serangkai)

Kuartil digunakan untuk melihat persebaran data dalam lima bagian utama atau dikenal sebagai statistik lima serangkai (minimum, Q1, median, Q3, maksimum).

summary(data$`Jumlah Kecelakaan`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    34.0    39.0    67.0    58.6    72.0    81.0
summary(data$`Faktor Pengemudi`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    21.0    26.0    42.0    39.2    49.0    58.0
summary(data$`Faktor Kendaraan`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     9.0    10.0    16.0    14.6    19.0    19.0
summary(data$`Faktor Cuaca`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0     1.0     2.0     1.6     2.0     2.0
summary(data$`Faktor Jalan`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     1.0     3.0     3.0     3.2     4.0     5.0

11. Range

Range digunakan untuk mengetahui selisih antara nilai maksimum dan minimum dalam dataset, yang menunjukkan sebaran data kecelakaan dan faktor-faktornya. Berikut hasil perhitungannya :

diff(range(data$`Jumlah Kecelakaan`))
## [1] 47
diff(range(data$`Faktor Pengemudi`))
## [1] 37
diff(range(data$`Faktor Kendaraan`))
## [1] 10
diff(range(data$`Faktor Cuaca`))
## [1] 1
diff(range(data$`Faktor Jalan`))
## [1] 4
range(data$`Faktor Jalan`)
## [1] 1 5

12. Varians

Varians menggambarkan sejauh mana data tersebar dari rata-ratanya. Berikut hasil perhitungan varians untuk setiap faktor:

var(data$`Jumlah Kecelakaan`)
## [1] 435.3
var(data$`Faktor Pengemudi`)
## [1] 240.7
var(data$`Faktor Kendaraan`)
## [1] 23.3
var(data$`Faktor Cuaca`)
## [1] 0.3
var(data$`Faktor Jalan`)
## [1] 2.2

13. Standar deviation

Standar deviasi menunjukkan tingkat penyebaran data terhadap mean. Nilai yang lebih besar menunjukkan bahwa data lebih tersebar, sedangkan nilai kecil menunjukkan data lebih terkonsentrasi di sekitar rata-rata.

sd(data$`Jumlah Kecelakaan`)
## [1] 20.86384
sd(data$`Faktor Pengemudi`)
## [1] 15.51451
sd(data$`Faktor Kendaraan`)
## [1] 4.827007
sd(data$`Faktor Cuaca`)
## [1] 0.5477226
sd(data$`Faktor Jalan`)
## [1] 1.48324

Dari hasil visualisasi dan analisis statistik seperti mean, median, modus, serta standar deviasi, terlihat bahwa faktor pengemudi memiliki dampak terbesar terhadap kecelakaan, diikuti oleh faktor kendaraan dan jalan.

Rata-rata dan median memberikan gambaran umum jumlah kecelakaan, sementara varians dan standar deviasi menunjukkan sebaran datanya. Hasil analisis ini memberikan informasi penting mengenai faktor-faktor yang berkontribusi terhadap kecelakaan.