Populasi merujuk pada keseluruhan subjek yang menjadi sasaran penelitian, sementara sampel adalah bagian dari populasi yang dipilih untuk dianalisis. Hal ini ingin membuktikan bahwa populasi dan sampel berjalan secara bersamaan. Sehingga, pada implementasi dalam penelitian jika seorang peneliti atau ahli menggunakan teknik sampling itu adalah hal yang normalisasi karena hasil penelitian dari sampel dapat merepresentasikan suatu populasi. Secara eksplisit juga menyakinkan bahwa sampel adalah sebuah turunan dan memiliki korelasi dengan populasi. Akan tetapi dalam proses Analisis Data Eksploratif (Exploratory Data Analysis/EDA) ingin menekankan bahwa Skepticism represents the analyst’s healthy dose of distrust in single numeric summaries.Statistics provide fast and concise summaries of data. However, this efficiency is achieved by omitting large quantities of information. When crucial bits are ignored or obscured, the summaries they provide can be highly different than what is actually occurring in the data (e.g., the mean of a skewed distribution being unrepresentative of central tendency). Melalui pernyataan ini, mengindikasikan bahwa analisis yang berarti proses memecah informasi yang baik adalah dengan mengambil seluruh populasi agar mendapatkan informasi yang lebih luas dan akurat. Dengan memperhatikan ketersediaan data populasi dengan arus teknologi modern juga mendukung bahwa analisis data populasi dapat relevan untuk dilakukan. Sehingga ikut membuktikan definisi dari EDA is best described as an overarching analytic attitude characterized as “detective work designed to reveal the structure or patterns in the data”(Haig, 2005, p. 375; Tukey, 1980). Di dalam proses analisis data eksploratif terdapat proses data preprocessing yang merupakan serangkaian proses untuk mempersiapkan data agar memiliki kualitas, struktur, dan bentuk yang sesuai dengan tujuan analisis. Han, Kamber, dan Pei menggunakan tiga masalah utama yaitu incomplete, noisy, dan inconsistent untuk menjelaskan mengapa preprocessing diperlukan. Menurut Han, Kamber, dan Pei, preprocessing mencakup beberapa aktivitas utama seperti data cleaning, data integration, data transformation, dan data reduction. Oleh sebab itu dengan pedoman studi kasus dalam bidang kepolisian atau kasus kriminalitas, segala tahap processing dalam penelitian ini menggunakan metode deskriptif kuantitatif dan jumlah keseluruhan data kriminalitas (population).
Pada tahap awal ini, kita mengidentifikasi struktur dasar dataset yang digunakan. Bidang ilmu atau topik yang dikaji dalam data tersebut berhubungan dengan informasi kasus kriminalitas atau kejahatan yang mengganggu rasa aman dan nyaman orang-orang sekitar. Sehingga instansi yang memegang peran untuk bertugas mengumpulkan dan menjadi evaluasi atas kebijakan keamanan dan menjaga stabilitas negara adalah pihak kepolisian. Melalui data ini juga dapat menjadi uji coba atau bahan analisis dalam disiplin ilmu pendidikan untuk eksplorasi pesan eksplisit dari data dan menemukan profil kejahatan dan dampak ekonominya. Berikut identifikasi dan eksplorasi informasi data secara ringkas :
a. Nama Dataset : crime_incidents_messy.csv b. Jumlah Data : 5.250 baris c. Jumlah Variabel : 33 variabel
| No | Nama Variabel(Header) |
|---|---|
| 1 | incident_id |
| 2 | crime_type |
| 3 | district |
| 4 | city |
| 5 | state |
| 6 | addres |
| 7 | lattitude |
| 8 | longitude |
| 9 | incident_datetime |
| 10 | officer_id |
| 11 | officer_first_name |
| 12 | officer_last_name |
| 13 | badge_number |
| 14 | suspect_id |
| 15 | suspect_first_name |
| 16 | suspect_last_name |
| 17 | suspect_age |
| 18 | suspect_gender |
| 19 | suspect_race |
| 20 | victim__id |
| 21 | victim_first_name |
| 22 | victim_last_name |
| 23 | victim_age |
| 24 | victim_gender |
| 25 | victim_phone |
| 26 | weapon_used |
| 27 | severity |
| 28 | case_status |
| 29 | resolution |
| 30 | num_arrests |
| 31 | property_loss_usd |
| 32 | reported_online |
| 33 | notes |
d. Klasifikasi Jenis Data : Data Eksternal, karena data didapat dari luar organisasi atau institusi. Data kriminalitas diwilayah Amerika Serikat ini dapat di jumpai dalam halaman website kaggle. Serta topik data yang berkaitan erat dengan keamanan menyebabkan data ini dikumpulkan oleh pihat yang berwenang yaitu kepolisian Amerika Serikat. Oleh sebab itu, data ini juga bersifat sekunder karena data dikumpulkan oleh pihak lain dan menjadi bahan analisis dalam dunia pendidikan. e. Tujuan Analisis: Mengandalkan data eksploratif untuk memetakan profil beban kasus kejahatan serta mengukur besarnya dampak finansial berdasarkan jenis kejahatan dan jenis kelamin korban. f. Data Kriminalitas Di Amerika Serikat
library(dplyr)
df_raw <- read.csv("C:/Users/Lenovo/Documents/crime_incidents_messy.csv", stringsAsFactors = FALSE)
# Menampilkan dimensi data (Jumlah Baris dan Kolom)
dim(df_raw)## [1] 5250 33
## 'data.frame': 5250 obs. of 33 variables:
## $ incident_id : chr "INC001115" "INC004706" "INC002249" "INC000021" ...
## $ crime_type : chr "asslt" "burglary" "Homocide" "Property Damage" ...
## $ district : chr "Sou" " southeast" "Southwest " "Cen" ...
## $ city : chr "Maplewood" "Maplewood" "Lakewood" "Springfield" ...
## $ state : chr "GA" "OH" "AZ" "AZ" ...
## $ address : chr "2830 Cedar Lane" "2361 Park Rd" "1067 Main St" "4713 Washington Ave" ...
## $ latitude : num 170.3 29.4 39.4 28.6 34.2 ...
## $ longitude : num -77.5 -77.2 -98.6 -99 -121.6 ...
## $ incident_datetime : chr "2024-04-16 08:45:03" "2022-01-11 22:03:29" "2022-04-14 11:39:24" "2020-12-09 15:14:24" ...
## $ officer_id : chr "OFF0078" "OFF0059" "OFF0088" "OFF0077" ...
## $ officer_first_name: chr "Emily" "Michelle" "Michael" "Chris" ...
## $ officer_last_name : chr "Davis" "Green" "White" "Jackson" ...
## $ badge_number : int 1342 5133 7781 5097 6220 7082 7747 7869 8229 7242 ...
## $ suspect_id : chr "SUS00281" "SUS00376" "SUS00560" "SUS00468" ...
## $ suspect_first_name: chr "Barbara" "Barbara" "Richard" "Michael" ...
## $ suspect_last_name : chr "Thomas" "Harris" "Scott" "Thomas" ...
## $ suspect_age : num 51 -28 19 262 75 73 58 73 26 NA ...
## $ suspect_gender : chr "MALE" "Other" "F" "MALE" ...
## $ suspect_race : chr "asian" "Black" "asian" "Black" ...
## $ victim_id : chr "VIC00642" "VIC00262" "VIC00518" "VIC00243" ...
## $ victim_first_name : chr "Robert" "John" "Richard" "Susan" ...
## $ victim_last_name : chr "Torres" "Martin" "Hill" "Young" ...
## $ victim_age : num 51 231 29 243 51 15 72 NA 55 10 ...
## $ victim_gender : chr "Unknown" "" "Other" "N/A" ...
## $ victim_phone : chr "6223265920" "241-973-4826" "244-584-7696" "5021227484" ...
## $ weapon_used : chr "Firearm" "Firearm" "KNIFE" "hands" ...
## $ severity : chr "2" "3" "1" "Low" ...
## $ case_status : chr "Open" "N/A" "CLOSED" "Resolved" ...
## $ resolution : chr "No Arrest" "" "warning" "N/A" ...
## $ num_arrests : num NA 2 2 5 2 1 3 2 0 5 ...
## $ property_loss_usd : chr "" "44839.49" "15963.38" "48680.14" ...
## $ reported_online : chr "True" "yes" "YES" "False" ...
## $ notes : chr "Incident at 2830 Cedar Lane. Officer responded at scene." "Incident at 2361 Park Rd. Officer responded at scene." "Incident at 1067 Main St. Officer responded at scene." "Incident at 4713 Washington Ave. Officer responded at scene." ...
## incident_id crime_type district city state
## 1 INC001115 asslt Sou Maplewood GA
## 2 INC004706 burglary southeast Maplewood OH
## 3 INC002249 Homocide Southwest Lakewood AZ
## 4 INC000021 Property Damage Cen Springfield AZ
## 5 INC000488 Domestc Violence North Lakewood PA
## address latitude longitude incident_datetime officer_id
## 1 2830 Cedar Lane 170.28410 -77.50071 2024-04-16 08:45:03 OFF0078
## 2 2361 Park Rd 29.42272 -77.16702 2022-01-11 22:03:29 OFF0059
## 3 1067 Main St 39.41146 -98.61530 2022-04-14 11:39:24 OFF0088
## 4 4713 Washington Ave 28.63344 -99.03005 2020-12-09 15:14:24 OFF0077
## 5 1371 River Rd 34.21785 -121.61473 2021-07-24 20:08:13 OFF0083
## officer_first_name officer_last_name badge_number suspect_id
## 1 Emily Davis 1342 SUS00281
## 2 Michelle Green 5133 SUS00376
## 3 Michael White 7781 SUS00560
## 4 Chris Jackson 5097 SUS00468
## 5 Susan Flores 6220 SUS00751
## suspect_first_name suspect_last_name suspect_age suspect_gender suspect_race
## 1 Barbara Thomas 51 MALE asian
## 2 Barbara Harris -28 Other Black
## 3 Richard Scott 19 F asian
## 4 Michael Thomas 262 MALE Black
## 5 Thomas Jackson 75 female white
## victim_id victim_first_name victim_last_name victim_age victim_gender
## 1 VIC00642 Robert Torres 51 Unknown
## 2 VIC00262 John Martin 231
## 3 VIC00518 Richard Hill 29 Other
## 4 VIC00243 Susan Young 243 N/A
## 5 VIC00512 Thomas Thomas 51 M
## victim_phone weapon_used severity case_status resolution num_arrests
## 1 6223265920 Firearm 2 Open No Arrest NA
## 2 241-973-4826 Firearm 3 N/A 2
## 3 244-584-7696 KNIFE 1 CLOSED warning 2
## 4 5021227484 hands Low Resolved N/A 5
## 5 9698766873 Unarmed MEDIUM Closed Warning Issued 2
## property_loss_usd reported_online
## 1 True
## 2 44839.49 yes
## 3 15963.38 YES
## 4 48680.14 False
## 5 23513.01 YES
## notes
## 1 Incident at 2830 Cedar Lane. Officer responded at scene.
## 2 Incident at 2361 Park Rd. Officer responded at scene.
## 3 Incident at 1067 Main St. Officer responded at scene.
## 4 Incident at 4713 Washington Ave. Officer responded at scene.
## 5
## [1] 5250 33
## Rows: 5,250
## Columns: 33
## $ incident_id <chr> "INC001115", "INC004706", "INC002249", "INC000021",…
## $ crime_type <chr> "asslt", "burglary", "Homocide", "Property Damage",…
## $ district <chr> "Sou", " southeast", "Southwest ", "Cen", " North"…
## $ city <chr> "Maplewood", "Maplewood", "Lakewood", "Springfield"…
## $ state <chr> "GA", "OH", "AZ", "AZ", "PA", "CA", "TX", "IL", "OH…
## $ address <chr> "2830 Cedar Lane", "2361 Park Rd", "1067 Main St", …
## $ latitude <dbl> 170.28410, 29.42272, 39.41146, 28.63344, 34.21785, …
## $ longitude <dbl> -77.50071, -77.16702, -98.61530, -99.03005, -121.61…
## $ incident_datetime <chr> "2024-04-16 08:45:03", "2022-01-11 22:03:29", "2022…
## $ officer_id <chr> "OFF0078", "OFF0059", "OFF0088", "OFF0077", "OFF008…
## $ officer_first_name <chr> "Emily", "Michelle", "Michael", "Chris", "Susan", "…
## $ officer_last_name <chr> "Davis", "Green", "White", "Jackson", "Flores", "Gr…
## $ badge_number <int> 1342, 5133, 7781, 5097, 6220, 7082, 7747, 7869, 822…
## $ suspect_id <chr> "SUS00281", "SUS00376", "SUS00560", "SUS00468", "SU…
## $ suspect_first_name <chr> "Barbara", "Barbara", "Richard", "Michael", "Thomas…
## $ suspect_last_name <chr> "Thomas", "Harris", "Scott", "Thomas", "Jackson", "…
## $ suspect_age <dbl> 51, -28, 19, 262, 75, 73, 58, 73, 26, NA, 49, NA, 3…
## $ suspect_gender <chr> "MALE", "Other", "F", "MALE", "female", "N/A", "Fem…
## $ suspect_race <chr> "asian", "Black", "asian", "Black", "white", "White…
## $ victim_id <chr> "VIC00642", "VIC00262", "VIC00518", "VIC00243", "VI…
## $ victim_first_name <chr> "Robert", "John", "Richard", "Susan", "Thomas", "An…
## $ victim_last_name <chr> "Torres", "Martin", "Hill", "Young", "Thomas", "Wil…
## $ victim_age <dbl> 51, 231, 29, 243, 51, 15, 72, NA, 55, 10, 47, 35, 5…
## $ victim_gender <chr> "Unknown", "", "Other", "N/A", "M", "N/A", "female"…
## $ victim_phone <chr> "6223265920", "241-973-4826", "244-584-7696", "5021…
## $ weapon_used <chr> "Firearm", "Firearm", "KNIFE", "hands", "Unarmed", …
## $ severity <chr> "2", "3", "1", "Low", "MEDIUM", "high", "", "1", "C…
## $ case_status <chr> "Open", "N/A", "CLOSED", "Resolved", "Closed", "und…
## $ resolution <chr> "No Arrest", "", "warning", "N/A", "Warning Issued"…
## $ num_arrests <dbl> NA, 2, 2, 5, 2, 1, 3, 2, 0, 5, 0, -5, 2, 2, 3, NA, …
## $ property_loss_usd <chr> "", "44839.49", "15963.38", "48680.14", "23513.01",…
## $ reported_online <chr> "True", "yes", "YES", "False", "YES", "YES", "YES",…
## $ notes <chr> "Incident at 2830 Cedar Lane. Officer responded at …
Metadata adalah deskrisi lengkap dan bersifat umum melalui data analisis yang berupa sumber, metode, lokasi, kualitas, format, asal-usul (provenance) dan konteks penggunaan data. Sehingga alat atau sarana dalam menyajikan meta data dapat melalui pertanyaan 5 W dan 1 H. Berikut ini adalah deksripsi umum data kriminalitas Amerika Serikat, yaitu :
| Pertanyaan | Penjelasan |
|---|---|
| What | Dataset ini berhubungan dengan insiden tindak kriminal dan terjadi di daerah kawasan Amerika Serikat yang di catat oleh pihak berwenang yang bertugas dalam bidang keamanan |
| Where | Negara- negara bagian (states) di Amerika Serikat yang digunakannotasi. Sehingga meliputi negara bagian tersebut yaitu GA (Georgia), OH (Ohio), AZ (Arizona), PA (Pennsylvania), CA (California), TX (Texas), IL (Illinois), NY (New York), FL (Florida), NC (North Carolina) dan lain sebagainya(50 negara bagian yang diakui di Amerika Serikat) |
| Who | Data ini dikumpulkan oleh pihak kepolisian setempat atau lembaga penegak hukum berdasarkan kota tempat terjadinya peristiwa kejahatan |
| When | 1/24/2018 15:33 sampai 11/14/2024 6:49 |
| Why | Merekam secara resmi setiap laporan kejahatan agar bisa digunakan dalam penyelidikan, penuntutan, serta pembuatan catatan medis dan hukum perkara tersebut |
| How | Data dikumpulkan dengan cara pencatatan setiap kejadian kejahatan (crime incident) yang terjadi. Data kemudian disusun ke dalam tabel berdasarkan informasi yang tersedia seperti jenis kejahatan, lokasi kejadian,tanggal kejadian, data korban dan tersangka, senjata yang digunakan, serta status kasus.Data dapat berasal dari hasil pencatatan atau laporan mengenai kejadian kejahatan. |
| Unit | Unit observasi dalam dataset ini adalah satu kejadian kejahatan (crime incident). Artinya, 1 baris data mewakili 1 kasus atau kejadian kejahatan yang dicatat. Setiap kejadian memiliki informasi yang berbeda-beda sesuai dengan variabel yang tersedia, seperti jenis kejahatan, lokasi, tanggal kejadian, jenis kelamin korban/tersangka, umur, senjata, tingkat keparahan, dan status kasus. |
| Format | Data disajikan dalam bentuk tabel/dataset yang terdiri dari 5.250 baris dan 33 kolom. Setiap kolom berisi variabel atau informasi tertentu mengenai kejadian kejahatan. Format data dapat digunakan dalam bentuk CSV atau Excel sehingga mudah diolah menggunakan aplikasi seperti Microsoft Excel atau RStudio. |
Data dictionary adalah salah satu dokummentasi yang sering menyertai sebuat kumpulan data. Sehinga, data dictionary dapat dikategorikan sebagai segala terminologi atau istilah yang terdapat dalam data yang akan dianalisis. Berikut ini adalah terminologi yang digunakan pada data kriminalitas Di Amerika Serikat, yaitu :
| No | Nama Variabel | Deskripsi | Tipe | Satuan |
|---|---|---|---|---|
| 1 | incident_id | ID unik untuk setiap kejadian kriminal | Kategorik/ID | - |
| 2 | crime_type | Jenis atau kategori tindak kriminal | Kategorik | - |
| 3 | district | Wilayah atau distrik tempat kejadian | Kategorik | - |
| 4 | city | Wilayah atau distrik tempat kejadian | Kategorik | - |
| 5 | state | Negara bagian lokasi kejadian | Kategorik | kode wilayah |
| 6 | address | Alamat lokasi kejadian | Kategorik | - |
| 7 | latitude | Koordinat lintang lokasi kejadian | Numerik | Derajat |
| 8 | longitude | Koordinat bujur lokasi kejadian | Numerik | Derajat |
| 9 | incident_datetime | Tanggal dan waktu kejadian kriminal | Tanggal/Waktu | Tanggal & waktu |
| 10 | officer_id | ID unik petugas yang menangani kejadian | Kategorik/ID | - |
| 11 | officer_first_name | Nama depan petugas | Kategorik/Teks | - |
| 12 | officer_last_name | Nama belakang petugas | Kategorik/Teks | - |
| 13 | badge_number | Nomor lencana petugas | Numerik/ID | - |
| 14 | suspect_id | ID unik tersangka | Kategorik/ID | - |
| 15 | suspect_first_name | Nama depan tersangka | Kategorik/Teks | - |
| 16 | suspect_last_name | Nama belakang tersangka | Kategorik/Teks | - |
| 17 | suspect_age | Usia tersangka saat kejadian | Numerik | Tahun |
| 18 | suspect_gender | Jenis kelamin dari pelaku kejahatan | Kategorik | - |
| 19 | suspect_race | Ras/kelompok etnis tersangka pada data awal | Kategorik/ID | - |
| 20 | victim_id | ID unik korban | Kategorik/ID | - |
| 21 | victim_first_name | Nama depan korban | Kategorik/Teks | - |
| 22 | victim_last_name | Nama belakang korban | Kategorik/Teks | - |
| 23 | victim_age | Usia korban pada data awal | Numerik | Tahun |
| 24 | victim_gender | Jenis kelamin korban pada data awal | Kategorik | - |
| 25 | victim_phone | Nomor telepon korban | Kategorik/Teks | Nomor Telepon |
| 26 | weapon_used | Jenis senjata yang digunakan dalam kejadian | Kategorik | - |
| 27 | severity | Tingkat keparahan kejadian | Kategorik/Ordinal | Skor |
| 28 | case_status | Status penanganan kasus | Kategorik | - |
| 29 | resolution | Hasil atau penyelesaian kasus | Kategorik | - |
| 30 | num_arrests | Jumlah penangkapan yang terkait dengan kasus | Numerik | Orang |
| 31 | property_loss_usd | Nilai kerugian properti akibat kejadian | Numerik | USD |
| 32 | reported_online | Indikator apakah kejadian dilaporkan secara online | Kategorik/Biner | Ya/Tidak |
| 33 | notes | Catatan atau keterangan tambahan mengenai kejadian | Teks | - |
Adapun variabel yang diseleksi sesuai dengan tujuan analisis adalah sebagai berikut :
| Variabel yang relevan | Deskripsi | Tipe |
|---|---|---|
| Crime type clean | Jenis kejahatan yang telah distandarisasi | Kategorik |
| Victim gender clean | Jenis kelamin korban | Kategorik |
| Property loss usd | Nilai kerugian finasial akibat kejahatan | Numerik |
| Victim age | Usia korban yang tedampak kasus kejahatan | Numerik |
| Tingkat_resiko | Tingkat resiko kejahatan yang didapatkan dalam proses integrasi | Kategorik ordinal |
Sebelum pada tindakan analisis data yang bertumpuh pada suatu tujuan yang ingin dibuktikan, kita perlu melakukan tindakan processing sebagai serangkaian proses untuk mempersiapkan data memiliki kualitas, struktur dan bentuk yang tidak memenuhi accuracy, completeness, consistency, timeliness, believability, dan interpretability. Sehingga dapat kepada prosedur analisis yang telah dirancang dalam suatu tujuan. Oleh sebab itu, pada tahap ini, kita mengeksekusi sintaks R untuk mengidentifikasi kesalahan yang tedapat dalam data kriminalitas yang berupa :
a. Missing value atau nilai yang hilang b. Outlier yang berarti melanggar validitas dan keakuratan informasi c. Tidak konsisten dalam informasi yang disampaikan d. Nilai Numerik yang valid
##
## Jumlah Missing value per kolom
## incident_id crime_type district city
## 0 0 0 0
## state address latitude longitude
## 0 0 258 289
## incident_datetime officer_id officer_first_name officer_last_name
## 0 0 0 0
## badge_number suspect_id suspect_first_name suspect_last_name
## 312 0 0 0
## suspect_age suspect_gender suspect_race victim_id
## 1097 0 0 0
## victim_first_name victim_last_name victim_age victim_gender
## 0 0 562 0
## victim_phone weapon_used severity case_status
## 0 0 0 0
## resolution num_arrests property_loss_usd reported_online
## 0 333 0 0
## notes
## 0
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -90.00 27.75 49.00 52.35 71.00 298.00 562
##
## Kategori Gender korban Mentah
##
## f F female Female FEMALE m M male Male
## 635 342 323 363 326 329 360 376 345 394
## MALE N/A Other Unknown <NA>
## 349 365 360 383 0
# d. Melihat contoh variasi penulisan crime_type
cat("sample variasi Penulisan tidak konsisten pada variabel crime_type Mentah\n")## sample variasi Penulisan tidak konsisten pada variabel crime_type Mentah
## [1] "asslt" "burglary" "Homocide"
## [4] "Property Damage" "Domestc Violence" "Breaking & Entering"
## [7] "robbery" "manslaughter" "B&E"
## [10] "Narcotics" "Burglry" "THEFT"
## [13] "Fraudulent Activity" "Drug Offense" "Armed Robbery"
## [16] "Arsen" "Abduction" "Graffiti"
## [19] "Trespass" "CYBER CRIME"
Diketahui dalam identifikassi kelayakan kualitass dari data kriminalitas di wilayah Amerika Serikat ini belum memenuhi standar untuk dapat dilakukan suatu analisis karena masih terdapat penyimpangan atau kesalahan accuracy, completeness, consistency, timeliness, believability, dan interpretability. Sehingga tahap pembersihan perlu digunakan agar data dapat memenuhi syarat untuk melalui tindakam analisis. Adapun tidakan cleaning yang dapat digunakan dengan memperhatikan masalah kualitas pada data kriminalitas ini adalah sebagai berikut :
| Masalah | Contoh | Tindakan yang mungkin |
|---|---|---|
| Missing Value | Ras Pelaku kosong | Imputasi, Menghapus observasi / variabel, atau membiarkannya |
| Outlier | Umur pelaku 262 | Investigasi terlebih dahulu |
| Format tidak konsisten | L, Laki-laki, P, Perempuan( gender pelaku ) | Standarisasi |
| Nilai Tidak Valid | Umur dari pelaku yaitu -28 | Koreksi / konfirmasi / tandai |
df_clean <- df_raw %>%
# A. Bersihkan spasi berlebih dan ubah ke huruf kecil (lowercase)
mutate(
crime_type_clean = str_squish(tolower(crime_type)),
victim_gender_clean = str_squish(tolower(victim_gender))
) %>%
# B. Standarisasi Ketidakkonsistenan Variasi Teks pada `crime_type`
mutate(crime_type_clean = case_when(
str_detect(crime_type_clean, "asslt|assault|battery") ~ "Assault & Battery",
str_detect(crime_type_clean, "arson|arsen|fire setting") ~ "Arson",
str_detect(crime_type_clean, "burg|b&e|breaking") ~ "Burglary & B&E",
str_detect(crime_type_clean, "cyber|hack") ~ "Cybercrime & Hacking",
str_detect(crime_type_clean, "dom|dv") ~ "Domestic Violence",
str_detect(crime_type_clean, "drug|narcotics") ~ "Drug Offense",
str_detect(crime_type_clean, "dui|dwi|drunk") ~ "DUI / Drunk Driving",
str_detect(crime_type_clean, "fraud|deception|scam") ~ "Fraud & Deception",
str_detect(crime_type_clean, "homicide|homocide|murder|manslaughter") ~ "Homicide",
str_detect(crime_type_clean, "kidnap|abduction") ~ "Kidnapping & Abduction",
str_detect(crime_type_clean, "rob") ~ "Robbery",
str_detect(crime_type_clean, "sex|sa") ~ "Sexual Assault",
str_detect(crime_type_clean, "theft|larceny|steal") ~ "Theft & Larceny",
str_detect(crime_type_clean, "trespass") ~ "Trespassing",
str_detect(crime_type_clean, "vandal|graffiti|property damage") ~ "Vandalism & Property Damage",
TRUE ~ "Other"
)) %>%
# C. Standarisasi Gender Korban
mutate(victim_gender_clean = case_when(
victim_gender_clean %in% c("f", "female") ~ "Perempuan",
victim_gender_clean %in% c("m", "male") ~ "Laki-laki",
TRUE ~ NA_character_
)) %>%
# D. Pembersihan Outlier Usia (Nilai < 0 atau > 100 diubah jadi NA)
mutate(victim_age_clean = ifelse(victim_age < 0 | victim_age > 100, NA, victim_age)) %>%
# E. Imputasi Missing Value dengan Median
mutate(
property_loss_usd = ifelse(is.na(property_loss_usd), median(property_loss_usd, na.rm = TRUE), property_loss_usd),
victim_age_clean = ifelse(is.na(victim_age_clean), median(victim_age_clean, na.rm = TRUE), victim_age_clean)
)
#Hasil Kategori Jenis Kejahatan Bersih
cat("--- Ringkasan Jenis Kejahatan Setelah Cleaning ---\n")## --- Ringkasan Jenis Kejahatan Setelah Cleaning ---
##
## Arson Assault & Battery
## 369 556
## Burglary & B&E Cybercrime & Hacking
## 329 318
## Domestic Violence Drug Offense
## 329 362
## DUI / Drunk Driving Fraud & Deception
## 307 457
## Homicide Kidnapping & Abduction
## 357 343
## Other Robbery
## 189 334
## Sexual Assault Theft & Larceny
## 105 348
## Trespassing Vandalism & Property Damage
## 277 270
Distribusi data adalah arah penyebaran suatu variabel untuk memperlihatkan lokasi atau posisi dan bentuk yang dipengaruhi oleh nilai ektremnya. Pemeriksaan distribusi variabel kuantitatif ini difokuskan pada variabel property_loss_usd untuk mengevaluasi bentuk sebaran data.
a. Uji Normalitas Kerugian Finansial Uji Normalitas adalah suatu prosedur yang digunakan untuk mengetahui apakah data berasal dari populasi yang terdistribusi normal atau berada dalam sebaran data normal. Sehingga melalui visualisasi distribusi normalitas dari variabel property_loss_usd dapat mendapatkan karakteristik variabel tersebut itu memiliki mean,modus dan median yang berada dipusat atau titik nol.
# 1. Pastikan kolom property_loss_usd diubah ke numerik (angka)
df_clean <- df_clean %>%
mutate(property_loss_usd = as.numeric(gsub("[^0-9.]", "", property_loss_usd)))
# Histogram dan Plot Kepadatan (Density)
ggplot(df_clean, aes(x = property_loss_usd)) +
geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "thistle", color = "purple", na.rm = TRUE) +
geom_density(color = "darkviolet", linewidth = 1, na.rm = TRUE) +
theme_minimal() +
labs(
title = "Distribusi Kerugian Finansial (USD)",
x = "Kerugian Finansial ($)",
y = "Kepadatan"
)b. Variasi Antar Kelompok Gender Korban Setelah melihat ukuran oemusatan data dikategorikan sama denga menggunakan distribusi normal. Kita harus mendekteksi keragaman data dari variabel terhadap rata-ratanya. Hal ini dimaksudkan untuk memberikan keyakinan bahwa data yang dianalisis berasal dari populasi yang memiliki keragaman atau penyebaran data yang tidak jauh berberbeda. Adapun untuk mendeteksi homogenitas antar kelompok dapat dilakukan dengan Boxplot dan Lavene Test.Dan uji hogenitas ini dilakukan pada variabel victim gender dan property_loss_usd untuk Boxplot serta Lavene Test hanya dilakukan pada variabel property_loss_usd.
# Boxplot Kerugian Finansial Berdasarkan Gender Korban
df_clean %>%
filter(!is.na(victim_gender_clean), !is.na(property_loss_usd)) %>%
ggplot(aes(x = victim_gender_clean, y = property_loss_usd, fill = victim_gender_clean)) +
geom_boxplot() +
theme_minimal() +
labs(
title = "Variasi Kerugian Finansial Berdasarkan Gender Korban",
x = "Gender Korban",
y = "Kerugian ($)"
)# Uji Homogenitas Varians (Levene's Test)
leveneTest(property_loss_usd ~ as.factor(victim_gender_clean), data = df_clean)## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 1 0.0011 0.9737
## 3153
Melalui visualisasi diatas ingin memberikan suatu pesan secara eksplisit yang berupa :
1) Histogram dan Density Plot Berdasarkan gambar Histogram dan Density Plot, distribusi variabel kerugian finansial (property_loss_usd) menunjukkan bentuk yang cenderung datar di sepanjang rentang nilai 0 hingga 50.000. Garis kepadatan (density curve) terlihat relatif konstan di sekitar nilai 2.0 ^{-5} tanpa adanya satu puncak tunggal di tengah. Hal ini mengindikasikan bahwa data kerugian finansial tidak berdistribusi normal, melainkan mendekati distribusi seragam (uniform distribution).
2) Distribusi Normal atau Q-Q Plot Berdasarkan tampilan Normal Q-Q Plot, titik-titik sampel (sample quantiles) membentuk pola melengkung menyerupai huruf S dan menyimpang secara signifikan dari garis referensi acuan (garis merah). Penyimpangan yang sangat jelas pada kedua ekor distribusi (ujung kiri dan ujung kanan) memperkuat kesimpulan visual bahwa variabel kerugian finansial tidak memenuhi asumsi normalitas.
3) Boxplot Berdasarkan visualisasi Boxplot, perbandingan nilai kerugian finansial antara kelompok gender korban (Laki-laki dan Perempuan) menunjukkan pola yang sangat serupa yaitu Garis tengah di dalam kotak (median) untuk kelompok Laki-laki dan Perempuan berada pada rentang nilai kerugian yang hampir sama (sekitar $25.000).Diikuti dengan ukuran dan rentang kotak untuk kedua kelompok gender sangat simetris dan seimbang, menunjukkan bahwa sebaran data pada kedua kelompok relatif identik.
4) Uji Homogenitas Varians (Levene’s Test)
Hipotesis Uji:
a) H_0: Varians kerugian finansial antara kelompok Laki-laki dan Perempuan adalah homogen * (sama).
b) H_1: Varians kerugian finansial antara kelompok Laki-laki dan Perempuan adalah tidak homogen (berbeda).
c) Hasil Statistik: Nilai F = 0.0011 dengan p = 0.9737 (Pr(>F)).
d) Kesimpulan: Karena nilai p (0.9737) > 0.05, maka gagal tolak H_0. Hal ini membuktikan bahwa varians kerugian finansial antara kelompok gender Laki-laki dan Perempuan terbukti homogen (asumsi homogenitas varians terpenuhi).
Integrasi secara etimologis didefinisikan sebagai proses untuk menyatukan atau menggabungkan sesuatu hal sifatnya berbeda atau setara. Integrasi pada eksploratif data berbeda dengan cara kerja integrasi dalam realita kehidupan sehari-hari yang hanya membutuhkan suatu dialog atau komunikasi. Dalam data integrasi dapat dilakukan dengan proses join baik left join, right join, full join dan inner join. Dengan perbedaan dari keempat proses join hanya terfokus pada arah variabel yang dipertahankan dan terlibat dari proses integrasi. Didalam tahapan integrasi, kita membutuhkan suatu identifier yang digunakan dalam proses join sebagai variabel penghubung antara variabel yang akan digabungkan. Pada jenis data kriminalitas di wilayah Amerika Serikat ini adalah menggabungkan dataset kejahatan populasi bersiap pakai dengan tabel referensi tingkat risiko kejahatan. Sehingga variabel yang digunakan sebagai penghubung dalam proses normalisasi atau integrasi adalah crime_type yang sudah dilakukan cleaning dengan jenis integrasi yang dilakukan adalah Left Join. Proses integrasi lebih disarankan dikarenakan dapat menghemat kode dan memiliki sifat pewarisan (mudah diperbaharui) akibat penggabungan dengan menggunakan satu alat sebagai penghubung yang peka terhadap perubahan yang fleksibel.
# Tabel Referensi Risiko Kejahatan
df_risiko_ref <- data.frame(
crime_type_clean = c("Arson", "Assault & Battery", "Burglary & B&E", "Cybercrime & Hacking",
"Domestic Violence", "Drug Offense", "DUI / Drunk Driving", "Fraud & Deception",
"Homicide", "Kidnapping & Abduction", "Robbery", "Sexual Assault",
"Theft & Larceny", "Trespassing", "Vandalism & Property Damage", "Other"),
tingkat_risiko = c("Tinggi", "Sedang", "Sedang", "Sedang",
"Tinggi", "Sedang", "Sedang", "Rendah",
"Sangat Tinggi", "Sangat Tinggi", "Tinggi", "Sangat Tinggi",
"Rendah", "Rendah", "Rendah", "Sedang")
)
# Integrasi menggunakan Left Join
df_joined <- df_clean %>%
left_join(df_risiko_ref, by = "crime_type_clean")
# Validasi Jumlah Baris
cat("Jumlah baris data awal :", nrow(df_clean), "\n")## Jumlah baris data awal : 5250
## Jumlah baris setelah join: 5250
Encoding adalah proses merubah bentuk atau representasi suatu data ke kode tertentu sesuai tujuan anlisis. Hal yang perlu menjadi catatan adalah proses encoding tidak mengubah makna atau informasi yang tersimpan dalam suatu data set. Adapun jenis dari transformasi data yaitu transformasi data Kategorik kedalam bentuk numerik yang meliputi 3 teknik yaitu Label Encoding, Ordinal Encoding, dan One-Hot Encoding. Pada data kriminalitas ini, implementasi dari transformasi kategori adalah pada variabel yang berasal dari proses join yaitu tingkat resiko dengan teknik ordinal encoding, varibel gender korban dengan teknik label encoding dan tiga kategori utama dari variabel crime type yang sudah dilakukan pembersihan dengan teknik one hot. Ketiga teknik tersebut berbeda dari segi prosedur dan hasil, untuk ordinal encoding merepresentasikan kategori mengikuti urutan tingkatan kategori. Sedangkan label encoding adalah transformassi data dengan memberikan satu kode numerik antara 0,1 dan 2. Dan one hot encoding adalah memberikan representasi kategori tanpa memberikan urutan numerik.
# 1. Ordinal Encoding & Binary Label Encoding
df_encoded <- df_joined %>%
mutate(
# A. Ordinal Encoding untuk Tingkat Risiko (Rendah=1 s.d. Sangat Tinggi=4)
risiko_code = case_when(
tolower(trimws(tingkat_risiko)) == "rendah" ~ 1,
tolower(trimws(tingkat_risiko)) == "sedang" ~ 2,
tolower(trimws(tingkat_risiko)) == "tinggi" ~ 3,
tolower(trimws(tingkat_risiko)) == "sangat tinggi" ~ 4,
TRUE ~ NA_real_
),
# B. Label/Binary Encoding untuk Gender Korban (Perempuan=1, Laki-laki=0, NA=NA)
gender_code = case_when(
tolower(trimws(victim_gender_clean)) == "perempuan" ~ 1,
tolower(trimws(victim_gender_clean)) %in% c("laki-laki", "male", "l") ~ 0,
TRUE ~ NA_real_ # Tetap NA jika data aslinya missing/kosong
)
)
# 2. One-Hot Encoding untuk 3 Kategori Utama Kejahatan
df_onehot <- df_encoded %>%
mutate(
is_fraud = if_else(tolower(trimws(crime_type_clean)) == "fraud & deception", 1, 0, missing = 0),
is_theft = if_else(tolower(trimws(crime_type_clean)) == "theft & larceny", 1, 0, missing = 0),
is_robbery = if_else(tolower(trimws(crime_type_clean)) == "robbery", 1, 0, missing = 0)
)
# 3. Menampilkan Hasil Encoding Lengkap ke Tabel HTML
df_onehot %>%
select(
incident_id,
crime_type_clean,
tingkat_risiko,
risiko_code,
victim_gender_clean,
gender_code,
is_fraud,
is_theft,
is_robbery
) %>%
head(10) %>%
knitr::kable(
caption = "Hasil Gabungan Ordinal, Label, dan One-Hot Encoding Variabel Kategorik",
align = "c"
)| incident_id | crime_type_clean | tingkat_risiko | risiko_code | victim_gender_clean | gender_code | is_fraud | is_theft | is_robbery |
|---|---|---|---|---|---|---|---|---|
| INC001115 | Assault & Battery | Sedang | 2 | NA | NA | 0 | 0 | 0 |
| INC004706 | Burglary & B&E | Sedang | 2 | NA | NA | 0 | 0 | 0 |
| INC002249 | Homicide | Sangat Tinggi | 4 | NA | NA | 0 | 0 | 0 |
| INC000021 | Vandalism & Property Damage | Rendah | 1 | NA | NA | 0 | 0 | 0 |
| INC000488 | Domestic Violence | Tinggi | 3 | Laki-laki | 0 | 0 | 0 | 0 |
| INC000661 | Burglary & B&E | Sedang | 2 | NA | NA | 0 | 0 | 0 |
| INC001727 | Robbery | Tinggi | 3 | Perempuan | 1 | 0 | 0 | 1 |
| INC003981 | Homicide | Sangat Tinggi | 4 | Perempuan | 1 | 0 | 0 | 0 |
| INC001205 | Burglary & B&E | Sedang | 2 | NA | NA | 0 | 0 | 0 |
| INC000972 | Homicide | Sangat Tinggi | 4 | NA | NA | 0 | 0 | 0 |
Pada tahap penutup ini, kita masuk ke studi kasus khusus menggunakan data yang telah dibersihkan dan telah dilakukan proses transformasi untuk memetakan profil kerugian finansial serta mengaplikasikan transformasi numerik (Log Transformation). Transformasi berbasis log di pilih bukan dengan tanpa dasar, melainkan transformasi log paling efektif untukk mengatasi data yang memiliki outlier sehingga sebaran data tidak normal atau distribusi melenceng (skewness). Karena transformasi log mampu menarik mekerengan distribusi data tidak normal kembali kepusat yang tidak mampu dilakukan oleh Min / Max dan Z-Score.
# 1. Memilih sub-dataset & Transformasi Logaritma (Pembersihan Tipe Data Numerik)
df_studi <- df_onehot %>%
filter(!is.na(victim_gender_clean)) %>%
mutate(
# Konversi murni ke numerik agar tidak error saat dihitung
property_loss_usd = as.numeric(gsub("[^0-9.]", "", as.character(property_loss_usd))),
victim_age_clean = as.numeric(as.character(victim_age)),
# Transformasi Logaritma
log_property_loss = log(property_loss_usd + 1)
)
# 2. Tabel Ringkasan Profil Beban Kasus & Dampak Finansial (Solusi NA dengan na.rm = TRUE)
profil_kasus <- df_studi %>%
group_by(crime_type_clean, victim_gender_clean) %>%
summarise(
Jumlah_Kasus = n(),
Rata_kerugian_USD = round(mean(property_loss_usd, na.rm = TRUE), 2),
Median_kerugian_USD = round(median(property_loss_usd, na.rm = TRUE), 2),
Rata_Usia_Korban = round(mean(victim_age_clean, na.rm = TRUE), 1),
.groups = "drop"
)
# Menampilkan Tabel Profil
knitr::kable(profil_kasus, caption = "Tabel Profil Beban Kasus & Dampak Finansial Kejahatan")| crime_type_clean | victim_gender_clean | Jumlah_Kasus | Rata_kerugian_USD | Median_kerugian_USD | Rata_Usia_Korban |
|---|---|---|---|---|---|
| Arson | Laki-laki | 134 | 23013.52 | 21617.60 | 60.3 |
| Arson | Perempuan | 109 | 25654.84 | 26392.99 | 52.8 |
| Assault & Battery | Laki-laki | 183 | 24712.15 | 24497.14 | 51.6 |
| Assault & Battery | Perempuan | 188 | 25391.93 | 24345.26 | 54.9 |
| Burglary & B&E | Laki-laki | 91 | 25815.28 | 26303.36 | 61.2 |
| Burglary & B&E | Perempuan | 98 | 24109.37 | 23864.40 | 51.2 |
| Cybercrime & Hacking | Laki-laki | 120 | 26082.41 | 26525.55 | 55.1 |
| Cybercrime & Hacking | Perempuan | 91 | 24514.20 | 23853.82 | 51.7 |
| DUI / Drunk Driving | Laki-laki | 99 | 26910.97 | 25973.72 | 45.2 |
| DUI / Drunk Driving | Perempuan | 95 | 23584.75 | 20930.51 | 52.6 |
| Domestic Violence | Laki-laki | 121 | 26481.82 | 26403.01 | 50.2 |
| Domestic Violence | Perempuan | 94 | 26516.30 | 26609.86 | 51.4 |
| Drug Offense | Laki-laki | 125 | 24483.49 | 22212.71 | 50.4 |
| Drug Offense | Perempuan | 134 | 24525.82 | 24466.58 | 50.8 |
| Fraud & Deception | Laki-laki | 166 | 23885.23 | 23988.91 | 57.4 |
| Fraud & Deception | Perempuan | 144 | 24243.10 | 24427.20 | 47.1 |
| Homicide | Laki-laki | 122 | 23803.74 | 23235.41 | 54.1 |
| Homicide | Perempuan | 127 | 23061.15 | 23808.53 | 64.6 |
| Kidnapping & Abduction | Laki-laki | 116 | 28500.04 | 29423.76 | 51.1 |
| Kidnapping & Abduction | Perempuan | 119 | 23106.84 | 23292.89 | 59.4 |
| Other | Laki-laki | 65 | 26932.79 | 27899.72 | 48.4 |
| Other | Perempuan | 61 | 25070.81 | 24215.12 | 44.5 |
| Robbery | Laki-laki | 115 | 25003.65 | 23341.17 | 57.3 |
| Robbery | Perempuan | 110 | 26018.64 | 24593.65 | 51.2 |
| Sexual Assault | Laki-laki | 39 | 29042.04 | 29768.94 | 52.4 |
| Sexual Assault | Perempuan | 40 | 26402.27 | 25851.16 | 47.7 |
| Theft & Larceny | Laki-laki | 134 | 23086.56 | 23409.14 | 44.3 |
| Theft & Larceny | Perempuan | 101 | 23198.98 | 21319.26 | 45.2 |
| Trespassing | Laki-laki | 96 | 26364.82 | 28168.84 | 42.2 |
| Trespassing | Perempuan | 90 | 24108.84 | 25024.33 | 45.9 |
| Vandalism & Property Damage | Laki-laki | 98 | 25744.61 | 24973.34 | 49.4 |
| Vandalism & Property Damage | Perempuan | 82 | 26047.33 | 25564.80 | 49.1 |
# 3. Visualisasi Kurva Kepadatan Setelah Transformasi Numerik
ggplot(df_studi, aes(x = log_property_loss, fill = victim_gender_clean)) +
geom_density(alpha = 0.5, na.rm = TRUE) +
theme_minimal() +
labs(
title = "Distribusi Log-Kerugian Finansial Berdasarkan Gender Korban",
x = "Log(Kerugian Finansial + 1)",
y = "Kepadatan",
fill = "Gender Korban"
)Afandi, M. R., Rizqullah, M. N., & Arifin, J. (2025). Peran polisi dalam mencegah kriminalitas: Studi kasus tindakan pencegahan kantor polisi sektor Lea-Lea. Jurnal Geuthèë: Penelitian Multidisiplin, 8(3), 177–185. https://doi.org/10.52626/jg.v8i3.394
Jebb, A. T., Parrigon, S., & Woo, S. E. (2016). Exploratory data analysis as a foundation of inductive research. Human Resource Management Review, 27(2), 265–276. https://doi.org/10.1016/j.hrmr.2016.08.003
Mardhiyah, Dinilhaq, N. A., Amelia, Y., Arini, A., Hidayatullah, R., & Harmonedi. (2025). Populasi dan sampel dalam penelitian pendidikan: Memahami perbedaan, implikasi, dan strategi pemilihan yang tepat. Katalis Pendidikan: Jurnal Ilmu Pendidikan dan Matematika, 2(2), 208–218. https://doi.org/10.62383/katalis.v2i2.1670
Nuryadi, Astuti, T. D., Utami, E. S., & Budiantara, M. (2018). Dasar-dasar statistik penelitian. Gramasuryan / Universitas Mercu Buana Yogyakarta.