TUGAS PERTEMUAN 4 DATAMINING
Kelompok 3
DataMining:
BAYU PRASETYO |
: |
21416255201070 |
RIGGER DAMAIARTA TEJAYANDA |
: |
21416255201093 |
MUHAMAD AGUS FAISAL |
: |
21416255201178 |
A. Hasil
Analisis
1. Load Data
Gambar 1. Load Data
Berdasarkan
Gambar 1, load data menunjukkan, proses pertama yang
dilakukan adalah memuat data dari dua file CSV, yaitu data transkip.csv dan
lulusan.csv, menggunakan fungsi load_data_from_csv. Fungsi ini mencoba
membaca file menggunakan pd.read_csv(). Jumlah data berhasil dimuat dari
transkip.csv sebanyak 256299 dan lulusan.csv sebanyak 4542 data.
1.1 Tipe Data
Gambar 2. Tipe Data Transkrip dan Lulusan
Berdasarkan
Gambar 2, tipe data transkrip dan lulusan menunjukkan, data transkrip memiliki kolom seperti id, nim,
kode_mk, nama_mk, nama_mk_indo, nama_mk_ing, nilai_grade, nilai_total,
semester, sks_mk, dan grade. Kolom-kolom ini memiliki tipe data mulai dari
bilangan bulat (int64), bilangan desimal (float64), hingga teks (object).
Selanjutnya, Data lulusan memiliki kolom seperti nim, prodi, predikat,
tanggal_lulus, tgl_masuk, jenis_kelamin, status_masuk, tahun_lahir, dan
status_pegawai. Kolom-kolom ini juga memiliki tipe data bilangan bulat (int64)
dan teks (object).
2. Data
Cleaning
2.1 Mengecek Missing Values Pada Data Trankrip
Gambar 3. Mengecek Missing Values Pada Data Transkrip
Berdasarkan
Gambar 3 diatas, dilakukan pengecekan terhadap nilai yang hilang pada data
transkrip dengan melakukan pengecekan nilai kosong pada setiap kolom DataFrame
dengan metode isnull().sum(), yang bertujuan untuk menghitung jumlah
nilai kosong di setiap kolom. Hasilnya
menunjukkan beberapa nama kolom pada DataFrame beserta jumlah nilai yang hilang
di setiap kolom. Kolom-kolom dengan nilai yang hilang adalah kode_mk, nama_mk,
dan nama_mk_ing yang masing-masing memiliki 6 nilai yang hilang serta
nama_mk_indo yang memiliki 1 nilai yang hilang.
2.1 Penanganan
Missing Values Pada Data Trankrip
Gambar 4. Penangganan Missing Values Pada Data Trankrip
Pada
Gambar 4, dilakukan penangganan missing values dengan melakukan operasi dropna()
untuk menghapus baris yang memiliki nilai kosong atau missing values. Selanjutnya,
melakukan pengecekan setelah melakukan pembersihan pada setiap kolom DataFrame
dengan metode isnull().sum(), yang bertujuan untuk menghitung jumlah
nilai kosong di setiap kolom. Hasil pengecekan ini kemudian dicetak,
menunjukkan daftar kolom DataFrame Semua kolom yang terdaftar memiliki jumlah
0, menunjukkan bahwa tidak ada nilai kosong di kolom mana pun setelah operasi dropna()
dilakukan.Mengecek Missing Values Pada Data Trankrip
2.2 Mengecek
Missing Values Pada Data Lulusan
Gambar 5. Mengecek Missing Values Pada Data Lulusan
Berdasarkan
Gambar 5 diatas, dilakukan pengecekan terhadap nilai yang hilang pada data
transkrip dengan melakukan pengecekan nilai kosong pada setiap kolom DataFrame
dengan metode isnull().sum(), yang bertujuan untuk menghitung jumlah
nilai kosong di setiap kolom. Hasilnya
menunjukkan semua kolom bernilai 0 yang artinya tidak missing values pada data
lulusan.
2.3 Mengecek
Data Duplikat Trankrip dan Lulusan
Gambar 6. Mengecek Duplikat Pada Data Trankrip dan Lulusan
Berdasarkan Gambar 6, dilakukan
pengecekan data duplikat pada dua DataFrame, yaitu df_transkrip dan df_lulusan.
Hasilnya tidak ditemukan satupun data yang memiliki duplikasi pada
kedua DataFrame df_trankrip dan df_lulusan.
2.4
Deteksi Nilai Yang Tidak Wajar
Atau Noise Pada df_transkrip
Berdasarkan
Gambar 7 menunjukkan, proses mengidentifikasi nilai yang tidak wajar atau noise
pada data tersebut. Pertama, melakukan pemeriksaan apakah nilai total berada
dalam rentang yang valid (0-100) dan mencatat nilai-nilai yang tidak sesuai.
Kedua, memverifikasi apakah nilai grade sesuai dengan format yang diharapkan (misal
nya 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'E+', 'E',
'E-') dan mencatat nilai-nilai grade yang tidak sesuai. Terakhir, menggunakan
visualisasi boxplot untuk mendeteksi outlier pada nilai grade dan nilai total
yang disajikan pada Gambar 8 dibawah ini.
Gambar 8. Boxplot Mengidentifikasi Nilai Yang Tidak Wajar Atau Noise
Pada
Gambar 8, Pada tahap ini, dilakukan analisis deteksi nilai tidak wajar pada
dataframe `df_transkrip` dengan menggunakan visualisasi boxplot. Pertama, data
mahasiswa difilter untuk mengecek keberadaan nilai tidak wajar atau outliers
dalam kolom `nilai_grade` dan `nilai_total`. Hasilnya, visualisasi boxplot
menunjukkan distribusi nilai-nilai tersebut, dimana nilai yang berada diluar
batas garis lower dianggap sebagai outliers. Boxplot pertama menggambarkan
distribusi `nilai_grade` dengan beberapa nilai outlier dibawah 2.6, sementara
boxplot kedua menunjukkan distribusi `nilai_total` dengan banyak outlier yang
berada di bawah 70. Identifikasi outliers ini penting untuk memastikan
integritas dan keakuratan data transkrip. Pada kedua boxplot ini memiliki
perbedaan dalam perbersihan data, pada nilai_grade akan dilakukan menanganan
pembersihan data. Berbeda dengan nilai_total yang terlihat memiliki banyak
outlier, Jika, melakukan penangganan-nya sama dengan nilai grade maka akan
mempengaruhi pada tahap selanjutnya. Pada penangganan nilai_total dapat dilihat
pada Gambar 9.
2.5 Filter
Data Untuk nilai_total Dalam Rentang 40-60
Gambar 9 Filter Data nilai_total Rentang 40-60
Berdasarkan
Gambar 9, proses memfilter data pada kolom nilai_total dari DataFrame
df_transkrip untuk mendapatkan nilai yang berada dalam rentang 40 hingga 60.
Hasil filter ini disimpan dalam variabel nilai_total_40_60. Selanjutnya, menghitung
jumlah baris data yang memenuhi kriteria tersebut dan menyimpannya dalam
variabel jumlah_nilai_total_40_60. Terakhir, menampilkan hasil bahwa terdapat
2.576 baris data yang memiliki nilai total dalam rentang 40 hingga 60.
Sehingga, nilai_total tidak akan dilakukan pembersihan, karena nantinya akan
mempengaruhi pada proses modelling.
2.6
Penangganan Outlier Dengan Metode IQR (Interquartile Range)
Gambar 10 Penangganan Outlier Dengan Metode IQR
Pada
Gambar 10 diatas, dilakukan penanggan outlier pada nilai_grade menggunakan
metode IQR (Interquartile Range). Dengan, menghitung kuartil pertama (Q1) dan
kuartil ketiga (Q3), lalu menentukan batas bawah dan atas untuk mendeteksi
outliers. Data yang berada diluar rentang ini dihapus dari DataFrame.Tujuan
dilakukan penanganan outlier pada nilai_grade adalah karena jumlah data
outliernya hanya sebanyak 3 baris, sehingga memungkinkan untuk diatasi dengan
metode IQR (Interquartile Range). Sedangkan pada nilai_total, jumlah data
outlier mencapai 2.576 baris, sehingga penanganan outlier menggunakan metode
IQR tidak dilakukan pada nilai_total. Pada Gambar 11 dibawah, merupakan hasil
dari penanganan outlier dengan metode IQR pada nilai_grade.
Gambar 11. Boxplot Hasil Penanggan Outlier Menggunakan Metode IQR
Berdasarkan
Gambar 11, visualisasi boxplot menunjukkan hasil penanganan outlier menggunakan
metode IQR (Interquartile Range). Hasil ini menunjukkan bahwa data nilai_grade
telah bersih dari data noise, dengan outliers yang telah diidentifikasi dan
ditangani sesuai dengan batasan IQR.
2.6 Deteksi Nilai Yang Tidak Wajar Atau Noise Pada df_lulusan
Gambar 12 Deteksi Nilai Yang Tidak Wajar Atau Noise pada df_lulusan
Berdasarkan
Gambar 12 menunjukkan, proses mencari nilai yang tidak wajar atau noise pada
data lulusan. Memeriksa apakah tahun lahir berada dalam rentang yang valid yaitu
lahir kurang dari 1950 atau lebih dari tahun lahir 2010 dan mencetak data yang
tidak sesuai. Selanjutnya, menggunakan visualisasi boxplot untuk mendeteksi
outliers pada kolom tahun lahir yang disajikan pada Gambar 13.
Gambar 13 Indentifikasi Nilai Tidak Wajar Atau Noise df_lulusan
Berdasarkan Gambar 13, visualisasi menunjukkan identifikasi nilai yang
tidak wajar atau noise pada data lulusan. Hasilnya, ditemukan bahwa terdapat
tahun lahir yang bernilai 0 pada dataframe df_lulusan, yang mengindikasikan
adanya noise pada kolom tahun_lahir. Selanjutnya, penanganan data noise ini
disajikan pada Gambar 14.
Gambar 14. Penangganan Data Noise
Berdasarkan
Gambar 14 menunjukkan, penangganan data noise dengan melakukan penghapusan pada
kolom tahun_lahir yang bernilai 0. Selanjutnya visualisasi boxplot yang ada
pada gambar 14 menujukkan tahun lahir pada tahun lahir 1960 sampai 2000 an.
Dilakukan analisis apakah boxplot tersebut akan dibersihkan atau tidak karena
terdapat data outlier. Hasilnya data tersebut tidak mengalami pembersihan
karena pada studi kasus ini umur bukanlah patokan di universitas swasta.
2.7 Deteksi Nilai Tidak
Wajar Atau Noise Pada Kolom Status_Pegawai
Gambar 15. Identifikasi Data Noise Pada Status_Pegawai
Berdasarkan
Gambar 15, identifikasi data noise pada kolom status_pegawai dilakukan dengan
menghapus nilai selain 0 dan 1. Kemudian, dilakukan perhitungan frekuensi nilai
pada kolom status_pegawai untuk menentukan jumlah mahasiswa yang bekerja, tidak
bekerja, dan nilai yang tidak valid. Analisis dilakukan untuk memutuskan apakah
bar chart tersebut perlu dibersihkan atau tidak karena adanya data noise.
Hasilnya, data tersebut dibersihkan karena dalam studi kasus ini,
status_pegawai adalah nilai krusial yang perlu ditransformasi.
3.
Data Transformation
3.1
Gambar 16 menunjukkan
proses pengubahan format standar tanggal pada kolom tanggal lulus dan tanggal
masuk. Tahap ini dilakukan untuk memastikan konsistensi dan kemudahan analisis
data pada kedua kolom tersebut.
3.2 Menghitung
Lama Studi Setiap Mahasiswa dalam Tahun dan Bulan
Gambar 17. Menghitung Lama Studi Setiap Mahasiswa dalam Tahun dan
Bulan
Gambar 17 menunjukkan
perhitungan lama studi mahasiswa menggunakan atribut tanggal masuk dan tanggal
lulus. Tahap ini dilakukan untuk mengelompokkan mahasiswa yang lulus tepat
waktu atau tidak, dengan membandingkan durasi studi mereka terhadap batas waktu
kurang dari 5 tahun.
3.3 Menghitung Nilai IPS
Setiap Semester Untuk Setiap Mahasiswa
Gambar 18. Menghitung Nilai IPS Setiap Semester Untuk Setiap
Mahasiswa
Pada Gambar 18,
ditunjukkan perhitungan nilai Indeks Prestasi Semester (IPS) untuk setiap
mahasiswa. Perhitungan ini dilakukan dengan cara mengalikan atribut nilai_grade
dengan sks_mk, kemudian hasilnya dibagi dengan total sks_mk yang diambil oleh
mahasiswa tersebut. Analisis ini dilakukan untuk mengetahui kinerja mahasiswa
terhadap mata kuliah yang diampu selama satu semester. Tujuannya adalah untuk
memprediksi kelulusan mahasiswa tepat waktu.
3.3 Standarisasi jenis
kelamin, tanggal lulus dan prodi
Gambar 19 Standarisasi Jenis Kelamin, Tanggal Lulus, dan Prodi
Pada Gambar 19,
standarisasi diterapkan pada kolom jenis_kelamin, tanggal_lulus, dan prodi.
Tujuan dari standarisasi ini adalah untuk membuat data lebih mudah dibaca dan dipahami
oleh publik. Dengan standarisasi, informasi yang ditampilkan menjadi lebih
konsisten dan seragam, sehingga mempermudah analisis dan interpretasi data oleh
berbagai pihak yang memerlukannya. Standarisasi juga berperan dalam mengurangi
risiko kesalahan interpretasi yang bisa terjadi akibat variasi format data yang
tidak konsisten.
3.4 Menghitung IPK untuk
setiap mahasiswa dari semester 1 sampai 8
Gambar 20 Menghitung IPK Untuk Setiap Mahasiswa
Pada Gambar 20,
perhitungan Indeks Prestasi Kumulatif (IPK) untuk setiap mahasiswa dilakukan
dengan merata-ratakan nilai IPS dari semester satu hingga semester delapan.
Tujuan dari analisis ini adalah untuk memberikan gambaran menyeluruh tentang
kinerja akademik mahasiswa selama masa studi mereka. Mengetahui IPK
memungkinkan pihak akademik untuk mengevaluasi konsistensi dan perkembangan
akademis mahasiswa, serta memberikan bimbingan yang diperlukan agar mahasiswa
dapat lulus tepat waktu.
Gambar 21 Hasil Penghitungan IPK Mahasiswa
Pada
Gambar 21 terlihat hasil perhitungan IPK mahasiswa dari semester satu hingga
delapan, dengan rata-rata nilai IPK sebesar 3.5 dan predikat kelulusan adalah
"Pujian." Sebagian besar mahasiswa berhasil menyelesaikan studi tepat
waktu, dengan IPK yang cukup tinggi, yakni dikisaran 3.5 ke atas.
4. Data
Reduction
4.1
Menghapus Kolom IPS SMT 0 dan IPS SMT 9
Gambar 22. Menghapus Kolom IPS 0 dan IPS SMT 9
Pada Gambar 22 menunjukkan tahapan menghapus kolom IPS
SMT 0 dan IPS SMT 9. Tujuan dari penghapusan kolom tersebut untuk memfokuskan
pada IPS SMT 1 - IPS 8, karena untuk IPS SMT 0 ini sebagai outlier yang harus
dipisahkan tidak digunakan untuk analisis selanjutnya sedangkan untuk semester
9 merupakan mahasiswa yang belum menyelesaikan masa studi nya. Untuk Hasil
penghapusan kolom IPS SMT 0 dan 9 disajikan pada Gambar 23.
Gambar 23. Hasil Penangganan Kolom IPS SMT 0 dan 9
Pada Gambar 23 menunjukkan hasil setelah melakukan penangganan
pada kolom IPS SMT 0 dan IPS SMT 9, terdapat 4526 baris data dan 20 kolom
setelah melakukan penghapusan Kolom IPS 0 dan 9.
4.2
Menghapus Mahasiswa Pindahan Bernilai 1 Pada Kolom Status_masuk
Gambar 24. Menghapus Mahasiswa Pindahan Pada Kolom Status_Masuk
Berdasarkan
Gambar 24, proses ini melanjutkan tahapan reduksi penghapusan kolom IPS SMT dan
IPS SMT 9. Pada tahap ini, dilakukan penanganan dengan menghapus mahasiswa
pindahan yang memiliki nilai 1. Tujuan dari tahapan ini adalah untuk
memfokuskan pada mahasiswa regular untuk analisis selanjutnya. Hasil dari tahap
penanganan ini, yaitu penghapusan mahasiswa pindahan, dapat dilihat pada Gambar
23 di bawah ini.
Berdasarkan Gambar 25, hasil penanganan
menunjukkan penghapusan mahasiswa pindahan. Setelah melakukan penanganan ini,
jumlah datanya sebanyak 4519 baris dan 20 kolom.
4.3 4.3 Mengubah Type Data dan Seleksi Kolom
Yang Ditampilkan
Gambar 26. Mengubah Type Data dan Seleksi Kolom Yang Ditampilkan
Berdasarkan 26, menunjukkan Masalah
Seperti jenis kelamin yang berubah dari integer (misalnya, 1) menjadi float
(misalnya, 1.0) saat penggabungan (merge) data bisa terjadi karena perbedaan
tipe data antara dua dataframe yang digabungkan. Ketika pandas menggabungkan
dataframe, jika tipe data di kolom yang sama berbeda antara dua dataframe, tipe
data yang lebih umum (seperti float) digunakan untuk mengakomodasi semua nilai.
Untuk mengatasi masalah ini, kolom 'status_masuk', 'tahun_lahir', dan
'status_pegawai' dikonversi menjadi tipe data integer menggunakan metode astype.
Selanjutnya, kolom-kolom yang diinginkan untuk analisis dipilih dan disimpan
dalam variabel selected_columns, yang mencakup informasi seperti 'nim', nilai
IPS dari beberapa semester, 'prodi', 'predikat', 'tanggal_lulus', 'tgl_masuk',
'jenis_kelamin', 'tahun_lahir', 'status_pegawai', durasi kuliah, kelulusan
tepat waktu atau tidak, dan IPK.
Gambar 27. Hasil Mengubah Type Data dan Seleksi Kolom Yang
Ditampilkan
Berdasarkan Gambar 27, Hasil mengubah tipe data diubah
menjadi integer Kembali, karena pada saat melakukan merge antara tabel lulusan
dengan table transkrip terjadi perubahan tipe data yang otomatis dilakukan oleh
library pandas dan menyeleksi kolom. Selanjutnya, menyeleksi kolom yang akan
ditampilkan untuk tahap selanjutnya. Pada kolom status_masuk tidak ditampilkan
lagi, karena semua data yang ditampilkan hanya yang merupakan status_masuk yang
bernilai 0. Jumlah baris Dataframe yang ditampilkan sebanyak 4519 dan terdapat
19 kolom.
4.3 4.3 Memeriksa Baris Data
Gambar 28.Memeriksa Baris Data
Berdasarkan
Gambar 28, dilakukan validasi jumlah baris data setelah tahapan reduksi,
seperti penghapusan kolom IPS SMT 0 serta IPS SMT 9, dan penanganan dengan menghilangkan
mahasiswa pindahan. Jumlah data setelah tahapan reduksi ini adalah sebanyak
4519 baris data yang siap untuk tahapan selanjutnya.
0 comments:
Posting Komentar