Pertemuan 4

 Anggota Kelompok :

Febrian Akbar Azhari            2141625520128

Najmatul Laila Nurfajrin       21416255201092

Link : https://youtu.be/Y9yraUr3ygg

A.      Hasil Analisis

1.     Load Data

Gambar 1Load 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

Mengupload: 129633 dari 129633 byte diupload.

Gambar 7. Deteksi Noise Pada Data 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   Konversi Kolom Tanggal

Gambar 16. Konversi Kolom Tanggal


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.


Gambar 25. Hasil Menghapus Mahasiswa Pindahan Pada Kolom Status_Masuk

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.

Komentar

Postingan populer dari blog ini

PHYSICAL MODEL

Tahapan Data Mining (pertemuan 1)

Apa Yang Diharapkan Dari MK Basis Data