Analisis dan Penanganan Data Bermasalah pada Dataset Mahasiswa
1 Pendahuluan
1.1 Latar Belakang
Data mahasiswa tidak hanya berisi identitas dan nilai. Data juga mencatat kebiasaan sehari-hari, seperti lama belajar, penggunaan internet, dan jam tidur, serta kepuasan mahasiswa terhadap perkuliahan. Dengan data seperti ini, kondisi mahasiswa dapat dilihat dari sisi akademik sekaligus kebiasaannya.
Meski begitu, data tidak selalu siap dianalisis begitu diperoleh. Isinya bisa saja ada yang kosong, ditulis dengan cara berbeda-beda, tercatat dua kali, atau berisi angka yang tidak masuk akal. Jika data seperti ini langsung dipakai, hasil analisisnya bisa menyesatkan. Karena itu, data perlu diperiksa dan dibersihkan lebih dulu.
Pada tugas project kali ini digunakan dataset mahasiswa yang terdiri dari 1.215 baris dan 15 variabel, mencakup identitas, karakteristik demografi, informasi akademik, kebiasaan belajar, penggunaan internet, jam tidur, serta kepuasan terhadap perkuliahan. Dataset ini bukan hasil pengumpulan data sendiri, sehingga kondisinya perlu diperiksa terlebih dahulu. Hasil pemeriksaan awal menunjukkan beberapa masalah, yaitu 46 nilai kosong, penulisan Gender dan Kota_Asal yang tidak seragam, 15 ID mahasiswa yang muncul lebih dari satu kali, serta nilai yang tidak masuk akal seperti umur -3 dan 150 tahun, kehadiran hingga 125 persen, dan penggunaan internet 30 jam dalam sehari.
Dengan kondisi tersebut, data tidak bisa langsung dianalisis. Karena itu, pada project berisi tentang bagaimana mengerjakan pemeriksaan masalah data, pembersihan dengan R, dan pengecekan validitas. Data yang sudah bersih kemudian dipakai untuk melihat apakah jam belajar dan penggunaan internet berhubungan dengan jam tidur mahasiswa. Di bagian akhir, jam belajar dikelompokkan menjadi kategori dan digabungkan ke dalam satu tabel agar siap dipakai pada analisis selanjutnya.
1.2 Rumusan Masalah
- Bagaimana gambaran umum dataset mahasiswa yang digunakan?
- Permasalahan apa saja yang terdapat pada dataset tersebut?
- Bagaimana tahapan data wrangling untuk membersihkan dan merapikan dataset?
- Apakah data yang telah dibersihkan valid dan layak digunakan untuk analisis?
- Bagaimana hubungan jam belajar dan penggunaan internet dengan jam tidur mahasiswa?
- Bagaimana proses integrasi dan encoding data agar data siap digunakan pada analisis selanjutnya?
1.3 Tujuan
Mengetahui gambaran umum dataset mahasiswa yang digunakan.
Mengidentifikasi permasalahan yang terdapat pada dataset, seperti missing value, inkonsistensi, duplikasi, dan data noisy.
Melakukan proses data wrangling untuk membersihkan dan merapikan dataset.
Memastikan data yang telah dibersihkan valid dan memenuhi asumsi untuk analisis regresi.
Menganalisis hubungan jam belajar dan penggunaan internet dengan jam tidur mahasiswa.
Melakukan integrasi dan encoding data untuk menghasilkan data yang lebih siap digunakan dalam analisis selanjutnya.
2 Gambaran Dataset
Bab ini memaparkan gambaran dataset sebelum pemeriksaan masalah data dilakukan, meliputi isi data, sumber data, jenis data, dan cara data dimasukkan ke R. Dengan mengenal karakteristik data lebih dulu, proses pembersihan dan analisis dapat dilakukan dengan lebih terarah.
2.1 Informasi Dataset
Dataset yang digunakan merupakan data mahasiswa dengan jumlah awal sebanyak 1.215 baris dan 15 variabel. Data ini memuat informasi mengenai identitas mahasiswa, karakteristik demografi, akademik, kebiasaan belajar, penggunaan internet, jam tidur, dan kepuasan kuliah. Variabel-variabel tersebut dapat dikelompokkan berdasarkan jenis data dan fungsinya sebagai berikut:
| No | Variabel | Jenis | Keterangan |
|---|---|---|---|
| 1 | ID_Mahasiswa | Identitas | Kode unik untuk setiap mahasiswa dan digunakan sebagai kunci dalam penggabungan data |
| 2 | Nama | Identitas | Nama mahasiswa |
| 3 | Gender | Kategorik | Jenis kelamin mahasiswa, yaitu Laki-laki atau Perempuan |
| 4 | Umur | Numerik | Umur mahasiswa dalam satuan tahun |
| 5 | Semester | Numerik | Semester yang sedang ditempuh mahasiswa |
| 6 | Program_Studi | Kategorik | Program studi yang ditempuh mahasiswa |
| 7 | Kota_Asal | Kategorik | Kota asal mahasiswa |
| 8 | Jam_Belajar_per_Minggu | Numerik | Total waktu belajar mahasiswa dalam satu minggu |
| 9 | Kehadiran_Persen | Numerik | Persentase kehadiran mahasiswa dengan rentang 0–100 |
| 10 | Nilai_Tugas | Numerik | Nilai tugas mahasiswa dengan skala 0–100 |
| 11 | Nilai_Ujian | Numerik | Nilai ujian mahasiswa dengan skala 0–100 |
| 12 | Nilai_Akhir | Numerik | Nilai akhir mahasiswa dengan skala 0–100 |
| 13 | Jam_Internet_per_Hari | Numerik | Lama penggunaan internet dalam satu hari, dalam satuan jam |
| 14 | Jam_Tidur_per_Hari | Numerik | Lama tidur mahasiswa dalam satu hari, dalam satuan jam |
| 15 | Kepuasan_Kuliah | Numerik (skala) | Tingkat kepuasan mahasiswa terhadap perkuliahan dengan skala 1–5 |
Dapat dilihat bahwa dataset ini memiliki variabel dengan bentuk yang berbeda-beda. Variabel seperti Gender, Program_Studi, dan Kota_Asal merupakan data kategorik, sedangkan sebaagian besar variabel lainnya berbentuk numerik.
2.2 Sumber Data
Dataset yang digunakan dalam project ini merupakan data sekunder dan data eksternal. Data tidak diperoleh secara langsung dari subjek penelitian (mahasiswa).Dataset ini memang digunakan sebagai data simulasi untuk keperluan pembelajaran mengenai proses eksplorasi, pembersihan, validasi, analisis, dan integrasi data.
2.3 Jenis Data
Berdasarkan bentuk dan sumbernya, dataset yang digunakan dapat dikategorikan sebagai berikut:
- Data sekunder, karena data tidak dikumpulkan secara langsung dari subjek yang diteliti atau mahasiswa nya langsung oleh kelompok peneliti.
- Data eksternal, karena dataset diperoleh dari sumber lain di luar proses pengumpulan data yang dilakukan oleh kelompok peneliti sendiri.
- Data terstruktur, karena data disusun dalam bentuk baris dan kolom dengan variabel yang dapat diidentifikasi.
2.4 Import Data
Dataset yang digunakan dalam project ini berbentuk file Excel.
Sebelum data dapat diperiksa dan diolah menggunnakan R, data kemudian
diimpor ke dalam R menggunakan package readxl dan disimpan
dalam objek bernama df. Proses import data ini dilakukan
sebagai tahap awal sebelum data diperiksa dan diolah lebih lanjut.
Dataset berupa file Excel. Data diimpor ke R menggunakan paket
readxl lalu disimpan dalam objek df sebagai
bahan pemeriksaan dan pengolahan selanjutnya.
## ID_Mahasiswa Nama Gender Umur
## Min. :100001 Length:1215 Length:1215 Min. : -3.00
## 1st Qu.:100302 Class :character Class :character 1st Qu.: 20.00
## Median :100601 Mode :character Mode :character Median : 21.00
## Mean :100601 Mean : 20.69
## 3rd Qu.:100901 3rd Qu.: 22.00
## Max. :101200 Max. :150.00
##
## Semester Program_Studi Kota_Asal Jam_Belajar_per_Minggu
## Min. :3.000 Length:1215 Length:1215 Min. : 2.00
## 1st Qu.:3.000 Class :character Class :character 1st Qu.:10.50
## Median :3.000 Mode :character Mode :character Median :13.90
## Mean :3.375 Mean :13.85
## 3rd Qu.:4.000 3rd Qu.:17.20
## Max. :5.000 Max. :29.60
## NA's :12
## Kehadiran_Persen Nilai_Tugas Nilai_Ujian Nilai_Akhir
## Min. :-10.00 Length:1215 Length:1215 Min. : -8.00
## 1st Qu.: 82.90 Class :character Class :character 1st Qu.: 81.80
## Median : 87.70 Mode :character Mode :character Median : 86.10
## Mean : 87.69 Mean : 85.48
## 3rd Qu.: 93.00 3rd Qu.: 89.80
## Max. :125.00 Max. :120.00
## NA's :10
## Jam_Internet_per_Hari Jam_Tidur_per_Hari Kepuasan_Kuliah
## Min. :-1.000 Min. : 1.000 Min. :0.00
## 1st Qu.: 3.400 1st Qu.: 6.000 1st Qu.:3.00
## Median : 4.500 Median : 6.700 Median :4.00
## Mean : 4.552 Mean : 6.724 Mean :3.62
## 3rd Qu.: 5.700 3rd Qu.: 7.400 3rd Qu.:4.00
## Max. :30.000 Max. :20.000 Max. :8.00
## NA's :8
Hasil import data menunjukkan bahwa dataset memiliki 1.215 baris dan 15 variabel. Lima baris pertama pada tabel berikut memberi gambaran bentuk data yang digunakan. Dataset memuat variabel identitas, demografi, akademik, kebiasaan belajar, penggunaan internet, jam tidur, dan kepuasan kuliah.
| ID_Mahasiswa | Nama | Gender | Umur | Semester | Program_Studi | Kota_Asal | Jam_Belajar_per_Minggu | Kehadiran_Persen | Nilai_Tugas | Nilai_Ujian | Nilai_Akhir | Jam_Internet_per_Hari | Jam_Tidur_per_Hari | Kepuasan_Kuliah |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 100740 | Mahasiswa_0740 | Laki-laki | 20 | 3 | Statistika | Pekanbaru | 3.6 | 90.0 | 45 | 95.2 | 78.6 | 5.8 | 4.9 | 5 |
| 100789 | Mahasiswa_0789 | Perempuan | 21 | 3 | Statistika | Dumai | 13.0 | 81.0 | 74.7 | 81.599999999999994 | 81.1 | 3.4 | 7.7 | 4 |
| 100044 | Mahasiswa_0044 | Perempuan | 19 | 3 | Matematika | Pekanbaru | 13.3 | 83.4 | 76.900000000000006 | 94.3 | 86.7 | 4.4 | 5.6 | 4 |
| 100156 | Mahasiswa_0156 | Laki-laki | 24 | 5 | Statistika | Pekanbaru | 11.8 | 87.9 | 55.4 | 93.4 | 80.0 | 4.6 | 7.5 | 3 |
| 100495 | Mahasiswa_0495 | Perempuan | 20 | 5 | Statistika | Pekanbaru | 13.8 | 93.8 | 83.7 | 100 | 93.8 | 5.6 | 6.3 | 5 |
Sebagian variabel yang seharusnya berisi angka dapat terbaca sebagai
teks karena ada karakter yang tidak diharapkan, misalnya spasi tambahan
atau tanda persen seperti “100%”. Variabel seperti ini tidak dapat
dihitung rata-rata atau mediannya, dan tidak bisa dimasukkan ke model
regresi. Karena itu, sepuluh kolom yang seharusnya numerik diubah
menggunakan as.numeric(). Bentuk
as.numeric(as.character(.x)) dipakai agar konversi tetap
aman walaupun kolom awalnya bertipe faktor atau teks.
## Umur Semester Jam_Belajar_per_Minggu
## 0 0 12
## Kehadiran_Persen Nilai_Tugas Nilai_Ujian
## 10 8 8
## Nilai_Akhir Jam_Internet_per_Hari Jam_Tidur_per_Hari
## 0 0 0
## Kepuasan_Kuliah
## 8
| Variabel | Tipe_Data | |
|---|---|---|
| Umur | Umur | numeric |
| Semester | Semester | numeric |
| Jam_Belajar_per_Minggu | Jam_Belajar_per_Minggu | numeric |
| Kehadiran_Persen | Kehadiran_Persen | numeric |
| Nilai_Tugas | Nilai_Tugas | numeric |
| Nilai_Ujian | Nilai_Ujian | numeric |
| Nilai_Akhir | Nilai_Akhir | numeric |
| Jam_Internet_per_Hari | Jam_Internet_per_Hari | numeric |
| Jam_Tidur_per_Hari | Jam_Tidur_per_Hari | numeric |
| Kepuasan_Kuliah | Kepuasan_Kuliah | numeric |
3 Permasalahan Data
Hasil eksplorasi menunjukkan adanya empat permasalahan utama pada dataset ini, yaitu missing value, inkonsistensi data, duplikasi data, dan data noisy.
3.1 Missing Value
Missing value merupakan kondisi ketika terdapat nilai yang tidak tersedia atau kosong pada suatu variabel. Keberadaan missing value perlu diperiksa karena dapat memengaruhi proses analisis apabila tidak ditangani dengan tepat.
Pada pemeriksaan awal, sejumlah variabel diketahui memiliki nilai
kosong. Jumlahnya dihitung dengan fungsi is.na() dan
colSums(), lalu ditampilkan pada tabel berikut.
mv <- colSums(is.na(df))
mv_tabel <- data.frame(Variabel = names(mv[mv > 0]), Jumlah_Missing_Value = as.numeric(mv[mv > 0]))
knitr::kable(mv_tabel, caption = "Jumlah Missing Value per Variabel")| Variabel | Jumlah_Missing_Value |
|---|---|
| Jam_Belajar_per_Minggu | 12 |
| Kehadiran_Persen | 10 |
| Nilai_Tugas | 8 |
| Nilai_Ujian | 8 |
| Kepuasan_Kuliah | 8 |
## [1] 46
Berdasarkan tabel tersebut, terdapat 46 missing
value pada lima variabel. Missing value paling
banyak ditemukan pada variabel Jam_Belajar_per_Minggu,
yaitu sebanyak 12 nilai. Selanjutnya, Kehadiran_Persen
memiliki 10 missing value, sedangkan Nilai_Tugas,
Nilai_Ujian, dan Kepuasan_Kuliah masing-masing
memiliki 8 missing value.
3.2 Inkonsistensi Data
Inkonsistensi data terjadi ketika suatu nilai ditulis dalam bentuk yang berbeda, tetapi memiliki makna yang sama. Kondisi ini perlu diperiksa karena dapat menyebabkan kategori yang seharusnya sama terbaca sebagai kategori yang berbeda saat dilakukan analisis.
Pada dataset mahasiswa, ditemukan inkonsistensi terutama pada
variabel Gender dan Kota_Asal. Untuk
mengetahui bentuk penulisan yang terdapat pada kedua variabel tersebut,
dilakukan pemeriksaan menggunakan R.
3.2.1 Inkonsistensi Gender
Pada variabel Gender ditemukan penulisan yang beragam
meskipun memiliki arti ataupun makna yang sama.
a. Laki-laki ditulis sebagai Laki-laki, Male, Pria, L.
b. Perempuan ditulis sebagai Perempuan, Female, Wanita, P.
##
## Female L Laki-laki Male P Perempuan Pria Wanita
## 6 2 539 4 8 646 3 7
Berdasarkan hasil pemeriksaan pada variabel Gender,
terlihat bahwa terdapat beberapa bentuk penulisan yang berbeda untuk
kategori yang memiliki makna sama. Hal ini menunjukkan adanya
inkonsistensi penulisan pada variabel Gender.
3.2.2 Inkonsistensi Kota_Asal
Pada variabel Kota_Asal ditemukan penulisan besar kecil
huruf yang berbeda.
a. Pekanbaru: Pekanbaru, pekanbaru, PEKANBARU.
b. Padang: Padang, padang, PADANG.
c. Jambi: Jambi, jambi, JAMBI.
d. Dumai: Dumai, DUMAI.
e. Medan: Medan, MEDAN.
##
## Dumai DUMAI jambi Jambi JAMBI Medan MEDAN padang
## 133 3 4 121 4 179 1 6
## Padang PADANG pekanbaru Pekanbaru PEKANBARU
## 206 2 7 546 3
Kondisi ini menunjukkan bahwa data belum memiliki format penulisan yang seragam. Inkonsistensi tersebut tidak menunjukkan perbedaan informasi, tetapi hanya perbedaan dalam penulisan kategori. Oleh karena itu, kategori yang memiliki makna sama perlu diseragamkan pada tahap data wrangling agar tidak dianggap sebagai kategori yang berbeda dalam proses analisis.
3.3 Duplikasi Data
Duplikasi data merupakan kondisi ketika terdapat data yang tercatat lebih dari satu kali. Pemeriksaan duplikasi dilakukan untuk memastikan setiap data mahasiswa tidak tercatat secara berulang dan untuk menghindari data yang sama dihitung lebih dari satu kali dalam analisis.
## Jumlah baris duplikat: 14
## # A tibble: 15 × 2
## ID_Mahasiswa n
## <dbl> <int>
## 1 100032 2
## 2 100096 2
## 3 100213 2
## 4 100425 2
## 5 100435 2
## 6 100443 2
## 7 100557 2
## 8 100761 2
## 9 100769 2
## 10 100844 2
## 11 100866 2
## 12 100947 2
## 13 100994 2
## 14 101011 2
## 15 101086 2
Berdasarkan hasil pemeriksaan, terdapat 14 baris yang
teridentifikasi sebagai duplikasi identik atau sama persis.
Selain itu, pemeriksaan berdasarkan ID_Mahasiswa
menunjukkan terdapat 15 ID mahasiswa yang muncul lebih dari satu
kali, dengan masing-masing ID tercatat sebanyak dua kali.
Hasil tersebut menunjukkan bahwa terdapat data yang tercatat berulang dalam dataset. Duplikasi ini perlu diperiksa agar setiap mahasiswa tidak dihitung lebih dari satu kali dalam proses analisis. Data yang terbukti merupakan duplikasi akan ditangani pada tahap Data Wrangling, yaitu dengan menghapus data yang muncul secara berulang.
3.4 Data Noisy
Data noisy merupakan data yang memiliki nilai tidak wajar atau berada di luar rentang yang seharusnya. Nilai seperti ini perlu diperiksa karena dapat memengaruhi hasil analisis nantinya apabila langsung digunakan.
Pemeriksaan dilakukan dengan membandingkan nilai pada beberapa
variabel dengan rentang yang seharusnya. Variabel yang diperiksa
meliputi Umur, Kehadiran_Persen,
Nilai_Tugas, Nilai_Ujian,
Nilai_Akhir, Kepuasan_Kuliah, dan
Jam_Internet_per_Hari.
3.4.1 Pemeriksaan Data Noisy
noisy_data <- data.frame(
Variabel = c(
"Umur",
"Kehadiran_Persen",
"Nilai_Tugas",
"Nilai_Ujian",
"Nilai_Akhir",
"Kepuasan_Kuliah",
"Jam_Internet_per_Hari"
),
Nilai_Tidak_Wajar = c(
sum(df$Umur < 15 | df$Umur > 60, na.rm = TRUE),
sum(df$Kehadiran_Persen < 0 | df$Kehadiran_Persen > 100, na.rm = TRUE),
sum(df$Nilai_Tugas < 0 | df$Nilai_Tugas > 100, na.rm = TRUE),
sum(df$Nilai_Ujian < 0 | df$Nilai_Ujian > 100, na.rm = TRUE),
sum(df$Nilai_Akhir < 0 | df$Nilai_Akhir > 100, na.rm = TRUE),
sum(df$Kepuasan_Kuliah < 1 | df$Kepuasan_Kuliah > 5, na.rm = TRUE),
sum(df$Jam_Internet_per_Hari < 0 | df$Jam_Internet_per_Hari > 24, na.rm = TRUE)
)
)
knitr::kable(
noisy_data,
caption = "Jumlah Data dengan Nilai Tidak Wajar"
)| Variabel | Nilai_Tidak_Wajar |
|---|---|
| Umur | 2 |
| Kehadiran_Persen | 2 |
| Nilai_Tugas | 2 |
| Nilai_Ujian | 2 |
| Nilai_Akhir | 2 |
| Kepuasan_Kuliah | 2 |
| Jam_Internet_per_Hari | 2 |
summary(df[, c("Umur", "Kehadiran_Persen", "Nilai_Tugas", "Nilai_Ujian",
"Nilai_Akhir", "Jam_Internet_per_Hari", "Kepuasan_Kuliah")])## Umur Kehadiran_Persen Nilai_Tugas Nilai_Ujian
## Min. : -3.00 Min. :-10.00 Min. : -5.00 Min. : -2.00
## 1st Qu.: 20.00 1st Qu.: 82.90 1st Qu.: 62.60 1st Qu.: 92.00
## Median : 21.00 Median : 87.70 Median : 69.70 Median : 98.00
## Mean : 20.69 Mean : 87.69 Mean : 69.62 Mean : 95.43
## 3rd Qu.: 22.00 3rd Qu.: 93.00 3rd Qu.: 76.60 3rd Qu.:100.00
## Max. :150.00 Max. :125.00 Max. :105.00 Max. :150.00
## NA's :10 NA's :8 NA's :8
## Nilai_Akhir Jam_Internet_per_Hari Kepuasan_Kuliah
## Min. : -8.00 Min. :-1.000 Min. :0.00
## 1st Qu.: 81.80 1st Qu.: 3.400 1st Qu.:3.00
## Median : 86.10 Median : 4.500 Median :4.00
## Mean : 85.48 Mean : 4.552 Mean :3.62
## 3rd Qu.: 89.80 3rd Qu.: 5.700 3rd Qu.:4.00
## Max. :120.00 Max. :30.000 Max. :8.00
## NA's :8
1. Umur
Ditemukan nilai umur yang tidak wajar, yaitu -3 hingga 150 tahun. Umur
-3 tahun tidak mungkin secara logis, sedangkan umur 150 tahun tidak
wajar untuk karakteristik data mahasiswa.
2. Kehadiran_Persen
Ditemukan nilai kehadiran yang berada di luar rentang yang seharusnya,
yaitu -10% hingga 125%. Persentase kehadiran seharusnya berada pada
rentang 0% - 100%. Nilai negatif maupun nilai di atas 100% menunjukkan
adanya data tidak valid.
3. Nilai (Nilai_Tugas, Nilai_Ujian,
Nilai_Akhir)
Ditemukan beberapa nilai akademik yang berada di luar rentang, yaitu -2,
-5, -8, 105, 120, dan 150. Karena skala nilai yang digunakan adalah
0–100, nilai-nilai tersebut termasuk data tidak valid.
4. Kepuasan_Kuliah
Variabel ini menggunakan skala 1 sampai 5. Namun, ditemukan nilai 0 dan
8 yang berada di luar rentang skala kepuasan yang telah ditentukan. Hal
ini menunjukkan adanya data tidak valid pada variabel tersebut.
5. Jam_Internet_per_Hari
Ditemukan nilai yang tidak logis, yaitu -1 jam dan 30 jam. Dalam satu
hari terdapat maksimal 24 jam, sehingga nilai -1 jam tidak mungkin
terjadi, dan nilai 30 jam melebihi waktu yang tersedia dalam satu
hari.
Berdasarkan hasil pemeriksaan, ditemukan beberapa nilai yang berada di luar rentang yang seharusnya pada beberapa variabel. Nilai tersebut termasuk data noisy dan akan ditangani pada tahap Data Wrangling agar data lebih sesuai untuk digunakan dalam analisis.
4 Data Wrangling
Data wrangling merupakan proses menyiapkan dan memperbaiki data agar memiliki struktur dan juga kualitas data yang lebih baik sebelum digunakan dalam analisis. Pada laporan ini, urutan pembersihan yang dijalankan adalah sebagai berikut
- Menghapus data duplikat.
- Menyeragamkan penulisan kolom kategorik (Gender, Kota_Asal,
Program_Studi).
- Mengubah nilai tidak wajar (noisy) menjadi
NA.
- Mengisi seluruh nilai kosong dengan median.
Duplikat dihapus lebih dulu agar perhitungan median tidak terpengaruh
oleh baris ganda. Penulisan kategori diseragamkan sebelum data
dikelompokkan dan dianalisis. Nilai tidak wajar diubah menjadi
NA sebelum pengisian, sehingga nilai kosong asli dan nilai
tidak wajar dapat diisi bersama-sama dalam satu langkah, dan median
dihitung hanya dari nilai-nilai yang valid.
4.1 Menghapus Duplikat
Data yang tercatat lebih dari satu kali perlu dihapus agar mahasiswa
yang sama tidak terhitung berulang ataupun terhitung lebih dari satu
kali dalam analisis. Langkah di Excel: Berikut adalah
cara menghapus data yang duplikat di dalam Excel.
1. Tekan CTRL + A untuk memblok seluruh data.
2. Buka tab Data, pilih Remove Duplicates,
centang “My data has headers” dan semua kolom, lalu klik
OK.
4. Setelah proses ini, tersisa 1.200 baris data.
Duplikasi data perlu dihapus agar data yang sama tidak dihitung lebih dari satu kali dalam analisis.
Langkah di R
df <- df %>%
distinct(ID_Mahasiswa, .keep_all = TRUE)
cat("Jumlah baris setelah menghapus duplikat:", nrow(df))## Jumlah baris setelah menghapus duplikat: 1200
Setelah proses penghapusan duplikat berdasarkan
ID_Mahasiswa, setiap mahasiswa hanya memiliki satu data.
Dengan demikian, data yang berulang tidak ikut digunakan dalam proses
analisis selanjutnya.
4.2 Standarisasi Data
Standarisasi data dilakukan untuk menyamakan format penulisan pada data yang memiliki makna yang sama. Tahap ini penting terutama pada variabel kategorik, karena perbedaan penulisan dapat menyebabkan kategori yang seharusnya sama terbaca sebagai kategori yang berbeda.
Langkah standarisasi di R:
df <- df %>%
mutate(
Gender = str_trim(Gender),
Gender = case_when(
Gender %in% c("L", "Laki-laki", "Male", "Pria") ~ "Laki-laki",
Gender %in% c("P", "Perempuan", "Female", "Wanita") ~ "Perempuan",
TRUE ~ NA_character_
),
Kota_Asal = str_trim(Kota_Asal),
Kota_Asal = str_to_title(Kota_Asal),
Program_Studi = str_trim(Program_Studi),
Program_Studi = str_to_title(Program_Studi)
)
table(df$Gender)##
## Laki-laki Perempuan
## 539 661
##
## Dumai Jambi Medan Padang Pekanbaru
## 136 127 177 210 550
Setelah dilakukan standarisasi, penulisan kategori pada
Gender, Kota_Asal, dan
Program_Studi menjadi lebih seragam. Dengan demikian,
kategori yang sama tidak lagi terbaca sebagai kategori yang berbeda
akibat perbedaan penulisan.
Langkah standarisasi di Excel:
- Pilih kolom
Gender.
- Gunakan Find and Replace untuk mengganti
Male,Pria, danLmenjadiLaki-laki.
- Ganti
Female,Wanita, danPmenjadiPerempuan.
- Untuk
Kota_Asal, gunakan format penulisan yang seragam, misalnyaPekanbaru,Padang,Jambi,Dumai, danMedan.
- Lakukan hal yang sama pada
Program_Studi.
- Periksa kembali kategori setelah proses standarisasi.
4.3 Menghapus Data Noisy
Pada tahap ini, nilai yang tidak sesuai dengan rentang yang telah
ditentukan akan diubah menjadi NA, sedangkan data pada
baris lainnya tetap dipertahankan. Nilai NA tersebut
kemudian akan ditangani pada tahap pengisian missing value.
Penghapusan nilai tidak wajar ini bisa dilakukan di R maupun Excel.
Langkah di Excel yaitu sebagai berikut:
1. Tentukan terlebih dahulu rentang valid setiap variabel.
2. Gunakan Filter untuk menemukan nilai di luar rentang.
3. Periksa nilai yang tidak wajar.
4. Kosongkan nilai tersebut sehingga menjadi sel kosong.
5. Jangan menghapus seluruh baris data.
6. Nilai yang sudah dikosongkan kemudian ditangani pada tahap imputasi
missing value.
Contohnya, jika Nilai_Ujian = 120, maka nilai 120 dikosongkan karena berada di luar rentang 0–100.
Langkah di R:
df <- df %>%
mutate(
Umur = ifelse(Umur < 15 | Umur > 60, NA, Umur),
Kehadiran_Persen = ifelse(
Kehadiran_Persen < 0 | Kehadiran_Persen > 100,
NA, Kehadiran_Persen
),
Nilai_Tugas = ifelse(
Nilai_Tugas < 0 | Nilai_Tugas > 100,
NA, Nilai_Tugas
),
Nilai_Ujian = ifelse(
Nilai_Ujian < 0 | Nilai_Ujian > 100,
NA, Nilai_Ujian
),
Nilai_Akhir = ifelse(
Nilai_Akhir < 0 | Nilai_Akhir > 100,
NA, Nilai_Akhir
),
Kepuasan_Kuliah = ifelse(
Kepuasan_Kuliah < 1 | Kepuasan_Kuliah > 5,
NA, Kepuasan_Kuliah
),
Jam_Internet_per_Hari = ifelse(
Jam_Internet_per_Hari < 0 | Jam_Internet_per_Hari > 24,
NA, Jam_Internet_per_Hari
)
)Setelah data noisy ditangani, nilai yang berada di luar
batas wajar diubah menjadi NA. Data tersebut selanjutnya
akan ditangani pada tahap pengisian missing value.
4.4 Mengisi Missing Value
Missing value yang ditemukan pada tahap pemeriksaan dan
nilai NA yang dihasilkan dari penanganan data
noisy perlu diisi agar data dapat digunakan secara lebih lengkap
dalam analisis. Pada project ini, missing value pada variabel
numerik ditangani menggunakan median karena median adalah nilai tengah
yang tidak terpengaruh oleh nilai ekstrem. Missing value hasil
pemeriksaan dan nilai NA hasil penanganan data
noisy perlu diisi agar data lengkap saat dianalisis. Pada variabel
numerik, pengisian memakai median, yaitu nilai tengah data. Median
dipilih karena tidak mudah terpengaruh nilai ekstrem, sedangkan
rata-rata dapat bergeser jauh oleh satu nilai yang sangat besar atau
sangat kecil. Hal ini penting karena data masih mungkin mengandung
pencilan. Langkah mengisi missing value di Excel:
- Tentukan kolom yang memiliki missing value.
- Hitung median menggunakan rumus
=MEDIAN(range).
- Cari sel yang kosong pada kolom tersebut.
- Isi sel kosong dengan nilai median yang diperoleh.
- Lakukan langkah yang sama pada variabel numerik lainnya.
Langkah mengisi missing value di R:
kolom_numerik <- df %>%
select(where(is.numeric)) %>%
names()
for (kolom in kolom_numerik) {
median_val <- median(df[[kolom]], na.rm = TRUE)
df[[kolom]][is.na(df[[kolom]])] <- median_val
}
colSums(is.na(df))## ID_Mahasiswa Nama Gender
## 0 0 0
## Umur Semester Program_Studi
## 0 0 0
## Kota_Asal Jam_Belajar_per_Minggu Kehadiran_Persen
## 0 0 0
## Nilai_Tugas Nilai_Ujian Nilai_Akhir
## 0 0 0
## Jam_Internet_per_Hari Jam_Tidur_per_Hari Kepuasan_Kuliah
## 0 0 0
Setelah missing value diisi menggunakan nilai median, pemeriksaan kembali dilakukan untuk memastikan tidak ada lagi nilai kosong pada variabel numerik.
4.5 Hasil Akhir Pembersihan
Setelah proses penghapusan duplikat, standarisasi data, penanganan data noisy, dan pengisian missing value dilakukan, data perlu diperiksa kembali. Pemeriksaan akhir ini bertujuan untuk memastikan bahwa permasalahan yang ditemukan sebelumnya telah ditangani dan dataset siap digunakan untuk tahap analisis.
hasil_akhir <- data.frame(
Keterangan = c(
"Jumlah baris",
"Jumlah variabel",
"Total missing value",
"Total duplikasi"
),
Jumlah = c(
nrow(df),
ncol(df),
sum(is.na(df)),
sum(duplicated(df))
)
)
knitr::kable(
hasil_akhir,
caption = "Hasil Akhir Data Setelah Data Wrangling"
)| Keterangan | Jumlah |
|---|---|
| Jumlah baris | 1200 |
| Jumlah variabel | 15 |
| Total missing value | 0 |
| Total duplikasi | 0 |
Setelah proses data wrangling selesai, dataset telah dibersihkan dari duplikasi, data noisy, dan missing value sehingga siap digunakan untuk tahap analisis selanjutnya.
5 Tujuan Analisis
Analisis dilakukan untuk mengetahui hubungan antara Jam_Belajar_per_Minggu dan Jam_Internet_per_Hari dengan Jam_Tidur_per_Hari mahasiswa.
Variabel yang digunakan dalam analisis adalah:
- Variabel dependen atau variabel terikat (Y):
Jam_Tidur_per_Hari - Variabel prediktor atau variabel independen (X1):
Jam_Belajar_per_Minggu - Variabel prediktor atau variabel independen(X2):
Jam_Internet_per_Hari
Metode yang digunakan adalah regresi linear berganda dengan model:
model <- lm(Jam_Tidur_per_Hari ~ Jam_Belajar_per_Minggu + Jam_Internet_per_Hari, data = df)
residu <- residuals(model)Analisis ini digunakan untuk melihat apakah jam belajar dan penggunaan internet memiliki hubungan dengan ataupun berpengaruh terhadap jam tidur mahasiswa.
6 Validitas Data
Validitas data dilakukan untuk memastikan data yang digunakan sesuai
dengan tujuan analisis dan nilainya masuk akal. Variabel yang dipakai
adalah Jam_Tidur_per_Hari sebagai variabel dependen atau
variabel terikat, serta Jam_Belajar_per_Minggu dan
Jam_Internet_per_Hari sebagai variabel prediktor atau
variabel bebas. Ketiganya dipilih karena sesuai dengan tujuan analisis,
yaitu melihat hubungan jam belajar dan penggunaan internet terhadap jam
tidur mahasiswa.
Pemeriksaan dilakukan dari tiga sisi, yaitu tipe data, kelengkapan data (ada tidaknya nilai kosong), dan kewajaran nilai berdasarkan rentang yang masuk akal.
6.1 Ringkasan Statistik dan Nilai Kosong
variabel_analisis <- c("Jam_Tidur_per_Hari", "Jam_Belajar_per_Minggu", "Jam_Internet_per_Hari")
summary(df[variabel_analisis])## Jam_Tidur_per_Hari Jam_Belajar_per_Minggu Jam_Internet_per_Hari
## Min. : 1.000 Min. : 2.00 Min. : 0.500
## 1st Qu.: 6.000 1st Qu.:10.50 1st Qu.: 3.400
## Median : 6.700 Median :13.90 Median : 4.500
## Mean : 6.724 Mean :13.83 Mean : 4.538
## 3rd Qu.: 7.400 3rd Qu.:17.10 3rd Qu.: 5.700
## Max. :20.000 Max. :29.60 Max. :10.000
## Jam_Tidur_per_Hari Jam_Belajar_per_Minggu Jam_Internet_per_Hari
## 0 0 0
Output di atas menunjukkan bahwa jam tidur berkisar antara 1,0 sampai 20,0 jam per hari dengan median 6,7 jam. Jam belajar berkisar antara 2,0 sampai 29,6 jam per minggu dengan median 13,9 jam, dan jam internet berkisar antara 0,5 sampai 10,0 jam per hari dengan median 4,5 jam. Selain itu, ketiga variabel tidak memiliki nilai kosong.
6.2 Pemeriksaan Rentang Nilai
Nilai setiap variabel dibandingkan dengan batas yang masuk akal. Jam tidur dan jam internet per hari tidak mungkin melebihi 24 jam, sedangkan jam belajar per minggu tidak mungkin melebihi 168 jam (24 jam × 7 hari).
batas_atas <- c(24, 168, 24)
tabel_validitas <- data.frame(
Variabel = variabel_analisis,
Tipe_Data = sapply(df[variabel_analisis], class),
Batas_Wajar = c("0 - 24", "0 - 168", "0 - 24"),
Minimum = sapply(df[variabel_analisis], min),
Maksimum = sapply(df[variabel_analisis], max),
Missing_Value = colSums(is.na(df[variabel_analisis]))
)
tabel_validitas$Status <- ifelse(
tabel_validitas$Minimum >= 0 &
tabel_validitas$Maksimum <= batas_atas &
tabel_validitas$Missing_Value == 0,
"Valid", "Perlu diperiksa"
)
knitr::kable(
tabel_validitas,
row.names = FALSE,
caption = "Hasil Pemeriksaan Validitas Variabel Analisis"
)| Variabel | Tipe_Data | Batas_Wajar | Minimum | Maksimum | Missing_Value | Status |
|---|---|---|---|---|---|---|
| Jam_Tidur_per_Hari | numeric | 0 - 24 | 1.0 | 20.0 | 0 | Valid |
| Jam_Belajar_per_Minggu | numeric | 0 - 168 | 2.0 | 29.6 | 0 | Valid |
| Jam_Internet_per_Hari | numeric | 0 - 24 | 0.5 | 10.0 | 0 | Valid |
Berdasarkan tabel di atas, ketiga variabel bertipe numerik, tidak memiliki nilai kosong, dan seluruh nilainya berada dalam batas wajar. Nilai tidak wajar pada data awal, misalnya jam internet -1 jam dan 30 jam, sudah tidak ditemukan setelah proses data wrangling.
6.3 Pemeriksaan Nilai Ekstrem pada Jam Tidur
Walaupun masih berada dalam rentang 0 sampai 24 jam, nilai minimum jam tidur (1 jam) dan maksimumnya (20 jam) tampak jauh dari pusat data. Median jam tidur adalah 6,7 jam, dan separuh data berada di antara 6,0 dan 7,4 jam. Untuk memastikannya, sebaran jam tidur dilihat menggunakan boxplot.
boxplot(df$Jam_Tidur_per_Hari, horizontal = TRUE, col = "#AED6F1", main = "Sebaran Jam Tidur per Hari", xlab = "Jam")## [1] 1 20
Pada boxplot 2 menandai bahwa nilai jam tidur sebagai nilai ekstrem, termasuk nilai 1 jam dan 20 jam. Nilai tersebut tetap dipertahankan karena masih mungkin terjadi dalam satu hari dan tidak termasuk data yang mustahil.
6.4 Kesimpulan Validitas
Ketiga variabel yang digunakan, yaitu
Jam_Tidur_per_Hari, Jam_Belajar_per_Minggu,
dan Jam_Internet_per_Hari, dinyatakan valid karena bertipe
numerik, tidak memiliki nilai kosong, dan seluruh nilainya berada dalam
rentang yang masuk akal. Dengan demikian, data layak digunakan untuk
analisis regresi linear berganda pada tahap selanjutnya.
7 Uji Asumsi
7.1 Uji Normalitas
Uji normalitas dilakukan untuk mengetahui apakah residual dari model regresi berdistribusi normal. Pada project ini, normalitas residual diperiksa menggunakan uji Kolmogorov-Smirnov.
Tujuannya yaitu, menguji apakah residual model regresi berdistribusi normal. Asumsi ini penting terutama agar uji t dan uji F pada regresi dapat diandalkan.
Hipotesis.
H0: residual berdistribusi normal H1: residual tidak berdistribusi normal
Kriteria keputusan: H₀ ditolak jika p-value < 0,05.
| Statistik | p.value |
|---|---|
| Kolmogorov-Smirnov | 0.162 |
Berdasarkan uji Kolmogorov-Smirnov diperoleh p-value sebesar 0,1845 > 0,05 sehingga H₀ tidak ditolak. Dengan demikian, residual dapat dianggap berdistribusi normal. Hal ini juga didukung oleh Q-Q plot, di mana sebagian besar titik berada di sekitar garis diagonal, meskipun terdapat beberapa penyimpangan pada bagian ujung.
7.2 Uji Heteroskedastisitas
Uji heteroskedastisitas dilakukan untuk mengetahui apakah varians residual pada model regresi bersifat konstan atau tidak. Model regresi yang baik diharapkan memiliki varians residual yang konstan atau disebut homoskedastisitas. Pada project ini, uji heteroskedastisitas dilakukan menggunakan Breusch-Pagan.
Uji ini bertujuan untuk mengetahui apakah terdapat perbedaan varians
residual pada model regresi yang digunakan.
H₀: Tidak terdapat heteroskedastisitas pada residual atau varians
residual konstan.
H₁: Terdapat heteroskedastisitas pada residual atau varians residual
tidak konstan.
| Statistik | Nilai |
|---|---|
| Breusch-Pagan | 0.6724 |
| df | 2.0000 |
| p-value | 0.7145 |
Dari hasil pengujian yang didapat, nilai dari p-value 0,7159 > 0,05, maka keputusan yang diambil adalah gagal menolak H₀. Maka, tidak terdapat bukti yang cukup untuk menyatakan bahwa terjadi heteroskedastisitas pada residual model. Dengan demikian, residual model dapat dianggap memiliki varians yang konstan atau homoskedastisitas, sehingga asumsi heteroskedastisitas terpenuhi.
7.3 Hasil Regresi dan Koefisien Determinasi (R²) R
Koefisien determinasi (R²) digunakan untuk menunjukkan seberapa besar variasi pada variabel terikat (Y) yang dapat dijelaskan oleh variabel-variabel prediktor dalam model regresi. Nilai R² berada pada rentang 0 sampai 1. Semakin besar nilai R², semakin besar pula proporsi variasi Y yang dapat dijelaskan oleh model. Namun, nilai R² dapat meningkat ketika variabel prediktor ditambahkan ke dalam model, meskipun variabel tersebut belum tentu memberikan kontribusi yang berarti.
korelasi <- lm(
df$Jam_Tidur_per_Hari ~
df$Jam_Belajar_per_Minggu +
df$Jam_Internet_per_Hari,
data = df
)
summary(korelasi)##
## Call:
## lm(formula = df$Jam_Tidur_per_Hari ~ df$Jam_Belajar_per_Minggu +
## df$Jam_Internet_per_Hari, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.7468 -0.6773 -0.0123 0.6585 13.2195
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.477673 0.122042 53.078 <2e-16 ***
## df$Jam_Belajar_per_Minggu 0.013990 0.006252 2.238 0.0254 *
## df$Jam_Internet_per_Hari 0.011610 0.017832 0.651 0.5151
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.078 on 1197 degrees of freedom
## Multiple R-squared: 0.004534, Adjusted R-squared: 0.002871
## F-statistic: 2.726 on 2 and 1197 DF, p-value: 0.06588
Berdasarkan output dapat dilihat bahwa nilai konstanta sebesar 6,48 menunjukkan bahwa ketika jam belajar dan penggunaan internet bernilai nol, perkiraan jam tidur adalah sekitar 6,48 jam per hari.
Variabel Jam_Belajar_per_Minggu memiliki koefisien positif sebesar 0,014 dengan p-value 0,0254 < 0,05. Artinya, jam belajar memiliki hubungan yang signifikan dengan jam tidur, dengan setiap kenaikan 1 jam belajar per minggu diperkirakan meningkatkan jam tidur sekitar 0,014 jam per hari. Sementara itu, Jam_Internet_per_Hari memiliki p-value 0,5151 > 0,05, sehingga belum terdapat hubungan yang signifikan dengan jam tidur.
Hasil uji F menunjukkan p-value sebesar 0,06588 > 0,05. Artinya, kedua variabel tersebut secara bersama-sama belum menunjukkan hubungan yang signifikan dengan jam tidur. Nilai R² sebesar 0,004534 menunjukkan bahwa model hanya mampu menjelaskan sekitar 0,45% variasi jam tidur, sedangkan 99,55% lainnya dijelaskan oleh faktor di luar model.
8 Integrasi Data
8.1 Defenisi Integrasi Data
Pada tahap ini, variabel yang diperlukan untuk analisis dikumpulkan
dalam satu tabel menggunakan ID_Mahasiswa sebagai penanda
mahasiswa, sehingga informasi jam tidur, jam belajar, jam internet, dan
hasil encoding dapat dilihat bersama. Proses ini diperlukan ketika
informasi yang dibutuhkan untuk analisis tidak terdapat dalam satu tabel
yang sama.
Pada project ini, integrasi dilakukan dengan menggunakan ID_Mahasiswa sebagai kunci penghubung antar data. ID_Mahasiswa digunakan karena setiap mahasiswa memiliki identitas yang dapat digunakan untuk mencocokkan informasi dari tabel yang berbeda.
Integrasi dilakukan agar informasi mengenai mahasiswa dapat digabungkan secara lebih lengkap. Dengan adanya proses ini, variabel dari tabel yang berbeda dapat digunakan secara bersamaan dalam tahap analisis maupun pengolahan data selanjutnya.
8.2 Tujuan Integrasi data
Integrasi data dilakukan untuk menggabungkan informasi dari beberapa tabel yang memiliki keterkaitan berdasarkan ID_Mahasiswa. Dengan adanya integrasi, data yang sebelumnya terpisah dapat digunakan secara bersamaan sehingga informasi yang diperoleh menjadi lebih lengkap.
Secara khusus, tujuan integrasi data pada project ini adalah:
- Menggabungkan data berdasarkan ID_Mahasiswa sebagai kunci
penghubung.
- Melengkapi informasi mahasiswa dengan menggabungkan variabel dari
tabel yang berbeda.
- Mempermudah proses analisis karena variabel yang diperlukan dapat
tersedia dalam satu dataset.
- Mengurangi pemisahan informasi antar tabel sehingga data lebih terstruktur dan siap digunakan untuk tahap selanjutnya.
8.3 Encoding Jam_Belajar
Pada tahap ini, variabel Jam_Belajar_per_Minggu diubah menjadi data kategorik berdasarkan jumlah jam belajar mahasiswa dalam satu minggu. Pengelompokan dilakukan menjadi tiga kategori, yaitu Rendah, Sedang, dan Tinggi.
| Kategori | Kode |
|---|---|
| Rendah | 1 |
| Sedang | 2 |
| Tinggi | 3 |
Proses encoding dilakukan dengan memberikan kode numerik pada setiap kategori. Kode tersebut digunakan sebagai representasi dari kategori jam belajar sehingga variabel dapat digunakan dalam proses pengolahan dan analisis data selanjutnya.
8.4 Visualisasi
Berdasarkan grafik di atas, dapat dilihat jumlah mahasiswa pada masing-masing kategori jam belajarnya. Kategori dengan jumlah mahasiswa paling tinggi menunjukkan kelompok mahasiswa yang paling banyak berdasarkan rentang jam belajar yang telah ditentukan.
8.5 Data Gabungan
Data 1 dan Data 2 digabung menggunakan ID_Mahasiswa sebagai kunci utama (Primary Key), sehingga informasi Kategori_Belajar dapat ditambahkan ke Data 1 tanpa menghilangkan informasi yang sudah ada.
| ID_Mahasiswa | Jam_Tidur_per_Hari | Jam_Belajar_per_Minggu | Jam_Internet_per_Hari | Jam_Belajar_Factor | Jam_Belajar_Code |
|---|---|---|---|---|---|
| 100740 | 4.9 | 3.6 | 5.8 | Rendah | 1 |
| 100789 | 7.7 | 13.0 | 3.4 | Sedang | 2 |
| 100044 | 5.6 | 13.3 | 4.4 | Sedang | 2 |
| 100156 | 7.5 | 11.8 | 4.6 | Sedang | 2 |
| 100495 | 6.3 | 13.8 | 5.6 | Sedang | 2 |
| 100971 | 6.3 | 20.1 | 5.9 | Tinggi | 3 |
Hasil penggabungan menunjukkan bahwa variabel yang diperlukan telah
berada dalam satu tabel berdasarkan ID_Mahasiswa. Data
gabungan ini selanjutnya dapat digunakan untuk proses analisis dan
pengolahan data berikutnya.
9 Integrasi Data II
Integrasi Data II merupakan proses menggabungkan kembali data yang telah dipisahkan menjadi beberapa bagian, dengan tetap menggunakan ID_Mahasiswa sebagai kunci penghubung. Pada tahap ini, data dibagi menjadi Data 1 dan Data 2, kemudian digabungkan kembali untuk menghasilkan data yang lebih lengkap.
Penggabungan ini dilakukan agar informasi dari kedua data dapat digunakan secara bersamaan. Selain itu, proses ini juga memastikan bahwa data hasil encoding tetap terhubung dengan informasi mahasiswa yang sesuai.
9.1 Encoding Faktor
Pada tahap integrasi data kedua, dilakukan pengubahan variabel pada
Jam_Belajar_Per_Minggu ke dalam bentuk Faktor
berurutan (ordered factor).
Penggunaan faktor berurutan dilakukan karena kategori jam belajar
memiliki tingkatan, yaitu Rendah.
Sedang, dan Tinggi.
Proses encoding ini dilakukan dengan menjadikan kategori jam belajar sebagai faktor yang berurutan. Selanjutnya, setiap kategori diberikan kode numerik sesuai dengan urutannya.
| Kategori | Kode |
|---|---|
| Rendah | 1 |
| Sedang | 2 |
| Tinggi | 3 |
Hasil encoding menunjukkan bahwa kategori jam belajar memiliki urutan dari Rendah, Sedang, hingga Tinggi. Pemberian kode 1, 2, dan 3 mengikuti urutan tersebut sehingga informasi tingkatan pada variabel tetap dipertahankan.
9.2 Membuat Data 1 dan Data 2
Pada tahap ini, dataset yang tadi sudah dibersihkan dan ei encoding
kemudian dipisahkan menjadi dua data dengan cara memilih dua variabel
yang akan digunakan pada masing-masing data.
Data 1: berisi ID_Mahasiswa,
Jam_Tidur_per_Hari,
Jam_Internet_per_Hari, danJam_Belajar_per_Minggu. **Data 2:** berisiID_Mahasiswa,Jam_Belajar_Factor, danJam_Belajar_Code`.
| ID_Mahasiswa | Jam_Tidur_per_Hari | Jam_Internet_per_Hari | Jam_Belajar_per_Minggu |
|---|---|---|---|
| 100740 | 4.9 | 5.8 | 3.6 |
| 100789 | 7.7 | 3.4 | 13.0 |
| 100044 | 5.6 | 4.4 | 13.3 |
| 100156 | 7.5 | 4.6 | 11.8 |
| 100495 | 6.3 | 5.6 | 13.8 |
| ID_Mahasiswa | Jam_Belajar_Factor | Jam_Belajar_Code |
|---|---|---|
| 100740 | Rendah | 1 |
| 100789 | Sedang | 2 |
| 100044 | Sedang | 2 |
| 100156 | Sedang | 2 |
| 100495 | Sedang | 2 |
Data 1 berisi variabel utama yang berkaitan dengan jam tidur,
penggunaan internet, dan juga jam belajar. Sementara itu, Data 2 berisi
kategori jam belajar beserta kode faktor yang telah dibuat sebelumnya.
Kedua data ini memiliki ID_Mahasiswa sebagai kunci yang
memungkinkan informasi dari kedua data tersebut bisa dihubungkan pada
tahap integrasi.
9.3 Data Gabungan
Setelah Data 1 dan Data 2 dibuat, kedua data tersebut digabungkan berdasarkan ID_Mahasiswa sebagai primarry key. Penggabungan ini dilakukan untuk menyatukan informasi dari kedua data ke dalam satu dataset.
| ID_Mahasiswa | Jam_Tidur_per_Hari | Jam_Internet_per_Hari | Jam_Belajar_per_Minggu | Jam_Belajar_Factor | Jam_Belajar_Code |
|---|---|---|---|---|---|
| 100740 | 4.9 | 5.8 | 3.6 | Rendah | 1 |
| 100789 | 7.7 | 3.4 | 13.0 | Sedang | 2 |
| 100044 | 5.6 | 4.4 | 13.3 | Sedang | 2 |
| 100156 | 7.5 | 4.6 | 11.8 | Sedang | 2 |
| 100495 | 6.3 | 5.6 | 13.8 | Sedang | 2 |
Hasil penggabungan menunjukkan bahwa informasi dari Data 1 dan Data 2
telah berhasil disatukan berdasarkan ID_Mahasiswa. Data
gabungan tersebut memuat informasi jam tidur, jam internet, jam belajar,
serta kategori dan kode jam belajar sehingga dapat digunakan untuk
proses analisis selanjutnya.
10 Penutup
10.1 Kesimpulan
Berdasarkan proses yang telah dilakukan, dataset mahasiswa yang digunakan terdiri dari 1.215 baris dan 15 variabel. Pada pemeriksaan awal ditemukan beberapa permasalahan data, yaitu missing value, inkonsistensi penulisan, data duplikat, serta nilai yang berada di luar rentang yang seharusnya.
Permasalahan tersebut kemudian ditangani melalui proses data wrangling, meliputi penghapusan duplikasi, standarisasi data, penanganan data noisy, dan pengisian missing value. Setelah proses tersebut dilakukan, data menjadi lebih terstruktur dan dapat digunakan untuk tahap analisis sampai akhir.
Analisis dilakukan untuk melihat hubungan
Jam_Belajar_per_Minggu dan
Jam_Internet_per_Hari dengan
Jam_Tidur_per_Hari menggunakan regresi linear berganda. Uji
Kolmogorov-Smirnov menghasilkan p-value 0,1845,
sehingga residual dapat dianggap berdistribusi normal. Uji Breusch-Pagan
menghasilkan p-value 0,7159, sehingga asumsi
homoskedastisitas terpenuhi.
Hasil regresi menunjukkan bahwa jam belajar berhubungan signifikan dengan jam tidur secara parsial (p-value 0,0254), sedangkan jam internet tidak signifikan (p-value 0,5151). Secara simultan, model belum signifikan pada taraf 5% (p-value 0,06588) dengan R² sebesar 0,004534. Artinya, kedua variabel hanya menjelaskan sekitar 0,45% variasi jam tidur, sehingga hubungannya sangat lemah.
Selain itu, dilakukan proses encoding terhadap
Jam_Belajar_per_Minggu menjadi kategori Rendah,
Sedang, dan Tinggi, kemudian data dipisahkan
dan digabungkan kembali berdasarkan ID_Mahasiswa. Dengan
demikian, data yang telah melalui proses pembersihan, validasi,
analisis, encoding, dan integrasi dapat digunakan untuk tahap pengolahan
selanjutnya.
10.2 Saran
- Memeriksa kualitas data sejak awal. Pemeriksaan sebaiknya dilakukan sebelum analisis, karena kesalahan yang terlambat ditemukan dapat membuat seluruh hasil harus diulang.
- Memakai data dengan dokumentasi yang jelas. Data yang disertai definisi, satuan, dan rentang nilai yang jelas memudahkan penentuan batas wajar tiap variabel.
- Mencoba metode pengisian data kosong lain. Pada tugas ini data kosong diisi dengan median. Metode lain dapat dicoba lalu hasilnya dibandingkan.
- Mengembangkan model analisis. Karena R² model sangat kecil, penelitian berikutnya dapat menambahkan variabel lain yang mungkin berkaitan dengan jam tidur, misalnya semester atau nilai akademik.
- Mendokumentasikan proses pembersihan. Setiap langkah dicatat seperti pada dokumen ini agar dapat diulang dan diperiksa pihak lain.