#Pendahuluan ##Latar Belakang Dalam era persaingan global yang semakin ketat, perusahaan dituntut untuk mampu mempertahankan kinerja operasional yang optimal melalui pengelolaan sumber daya manusia secara efektif dan berkelanjutan. Karyawan merupakan aset strategis dalam organisasi, terutama yang berkaitan dengan kompensasi, pengalaman kerja, serta pola perkembangan karier menjadi sangat penting. Salah satu dataset yang banyak digunakan untuk menganalisis dinamika tersebut adalah Employee Attrition Dataset yang tersedia di Kaggle, khususnya melalui notebook analisis yang disusun oleh Varun Saikanuri. Dataset ini memuat berbagai variabel terkait kondisi kerja, tingkat kompensasi, pengalaman karyawan, serta indikator-indikator yang dapat menggambarkan kesejahteraan dan potensi loyalitas tenaga kerja. Dalam bidang pengelolaan sumber daya manusia, elemen-elemen kompensasi seperti Daily Rate, Hourly Rate, Monthly Income, dan Monthly Rate adalah bagian penting yang menunjukkan cara perusahaan menghargai karyawan secara finansial. Tingkat kompensasi ini tidak hanya berdampak pad semangat kerja, tetapi juga berhubungan dengan kemampuan mempertahankan karyawan, efektivitas kerja, dan kepuasan dalam pekerjaan. Di sisi lain, elemen seperti Percent Salary Hike menunjukkan perubahan dalam gaji yang diberikan oleh perusahaan seiring waktu. Besaran kenaikan ini biasanya berkaitan dengan evaluasi kinerja, kebijakan promosi, serta strategi perusahaan untuk menjaga karyawan yang berkinerja terbaik. Sementara itu, Total Working Years adalah ukuran pengalaman profesional yang dapat merefleksikan tingkat kedewasaan karyawan, kesempatan dalam karier, dan potensi kontribusi untuk organisasi. Dataset yang digunakan dalam penelitian ini memberikan peluang untuk memahami lebih dalam bagaimana struktur kompensasi terbentuk dan faktor apa saja yang berperan dalam membedakannya antar karyawan. Namun demikian, besarnya jumlah variabel numerik dalam dataset, serta potensi korelasi di antara variabel-variabel tersebut, dapat menyulitkan analisis jika dilakukan tanpa teknik reduksi atau pengelompokan pola. Oleh karena itu, diperlukan pendekatan yang mampu menyederhanakan data tanpa menghilangkan pesan utama yang terkandung di dalamnya. Dalam konteks inilah analisis berbasis reduksi dimensi menjadi penting. Dengan mengambil data yang mencakup variabel-variabel kompensasi dan pengalaman kerja yakni Daily Rate, Hourly Rate, Monthly Income, Monthly Rate, Percent Salary Hike, dan Total Working Years penelitian ini berupaya memahami struktur internal data serta mengidentifikasi pola tersembunyi yang tidak langsung terlihat melalui analisis univariat maupun bivariat. Studi ini tidak hanya bermanfaat untuk tujuan akademik, tetapi juga memiliki relevansi praktis bagi perusahaan yang ingin mengevaluasi sistem kompensasi, meningkatkan retensi karyawan, atau memetakan perkembangan karier berdasarkan indikator kuantitatif.

##Latar Belakang Metode Principal Component Analysis (PCA) dipilih sebagai metode analisis pada penelitian ini karena PCA mampu mereduksi sejumlah besar variabel numerik menjadi beberapa komponen utama yang lebih ringkas dan mudah diinterpretasikan. Variabel kompensasi seperti Daily Rate, Hourly Rate, Monthly Income, dan Monthly Rate berpotensi memiliki korelasi satu sama lain, sehingga analisis langsung menggunakan seluruh variabel dapat menimbulkan redudansi informasi serta kesulitan dalam melihat struktur data secara jelas. Dengan menerapkan PCA, variabel-variabel tersebut dapat diubah menjadi kumpulan komponen baru yang bersifat ortogonal, sehingga memberikan gambaran mengenai faktor-faktor dominan yang mempengaruhi variasi kompensasi karyawan. PCA juga membantu mengidentifikasi pola umum dalam data, misalnya apakah komponen pendapatan lebih dipengaruhi oleh tingkat gaji harian dan bulanan atau justru dipengaruhi oleh pengalaman kerja dan kenaikan gaji tahunan. Selain itu, PCA memungkinkan visualisasi dua atau tiga dimensi yang memudahkan praktikan mengamati pengelompokan karyawan berdasarkan karakteristik kompensasi mereka. Oleh karena itu, PCA merupakan metode yang tepat untuk merangkum informasi dari banyak variabel terkait kompensasi dan pengalaman kerja dalam dataset karyawan ini, sekaligus memberikan pemahaman yang lebih mendalam mengenai struktur internal data.

##Tujuan Analisis Berikut tujuan analisis dari kasus tersebut sebagai berikut: 1. Mereduksi jumlah variabel kompensasi dan pengalaman kerja karyawan menjadi beberapa komponen utama tanpa kehilangan informasi penting. 2. Mendeteksi pola atau pengelompokan alami karyawan berdasarkan skor komponen utama, sehingga memudahkan pengamatan struktur data secara visual. 3. Menghasilkan visualisasi dua atau tiga dimensi untuk melihat posisi relatif antar karyawan berdasarkan karakteristik kompensasi. 4. Mengidentifikasi variabel mana yang paling berkontribusi terhadap variasi data melalui loading pada komponen utama.

##Tinjauan Pustaka Metode ###Definisi PCA Komponen utama (a principal component) adalah fungsi linier dari variabel-variabel sedemikian rupa sehingga variansnya dimaksimalkan dengan subjek pada batasan ortogonalitas (Hotteling, 1933).

###Tujuan Utama PCA Menurut Hotelling (1933), PCA bertujuan: 1. Memaksimalkan variansi yang dapat dijelaskan oleh kombinasi linear variabel. 2. Menciptakan komponen-komponen yang saling ortogonal (tidak berkorelasi). 3. Mereduksi dimensi dataset tanpa banyak kehilangan informasi.

##Data Terdapat 427 amatan yang dianalisis pada kasus ini dengan mengambil variabel Daily Rate, Hourly Rate, Monthly Income, Monthly Rate, Percent Salary Hike, dan Total Working Years

library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
data_employee <- read_excel("data_employee.xlsx")
head(data_employee)
## # A tibble: 6 × 6
##   DailyRate HourlyRate MonthlyIncome MonthlyRate PercentSalaryHike
##       <dbl>      <dbl>         <dbl>       <dbl>             <dbl>
## 1       866         84          8463       23490                18
## 2      1084         57          4450       26250                11
## 3       240         58          1555       11585                11
## 4      1339         59          9724       18787                17
## 5      1396         62          5914        9945                16
## 6       204         31          2579        2912                18
## # ℹ 1 more variable: TotalWorkingYears <dbl>

#Source Code

library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
tabel <- read_excel("tabel.xlsx")
tabel
## # A tibble: 12 × 2
##    `Source Code`                                                      Penjelasan
##    <chr>                                                              <chr>     
##  1 "library(readxl)"                                                  Digunakan…
##  2 "data_employee <- read_excel(\"C:/Users/LENOVO/Downloads/data_emp… Memanggil…
##  3 "head(data_employee)"                                              Menampilk…
##  4 "summary(data_employee)"                                           Menampilk…
##  5 "df_pca <- data_employee[, c(\"DailyRate\",\"HourlyRate\",\"Month… Memilih v…
##  6 "df_scaled <- scale(df_pca)"                                       Sangat pe…
##  7 "pca_result <- prcomp(df_scaled, center = TRUE, scale. = TRUE)"    Fungsi ut…
##  8 "summary(pca_result)"                                              Menampilk…
##  9 "pca_result$rotation"                                              Kolom-kol…
## 10 "head(pca_result$x)"                                               Ini adala…
## 11 "plot(pca_result,type = \"l\",main = \"Scree Plot PCA\")"          Plot eige…
## 12 "biplot(pca_result,cex = 0.7,main = \"Biplot PCA\")"               Menampilk…
knitr::kable(tabel,caption = "*Source Code*")
Source Code
Source Code Penjelasan
library(readxl) Digunakan untuk membaca file excel.
data_employee <- read_excel(“C:/Users/LENOVO/Downloads/data_employee.xlsx”) Memanggil data dengan format excel dan menamai atau menyimpan data tersebut dengan data_employee.
head(data_employee) Menampilkan 6 baris data awal
summary(data_employee) Menampilkan statistika deskriptif dari setiap variabel yang berisi minimal, quartil 1, median rata-rata, quartil 3, dan maximum
df_pca <- data_employee[, c(“DailyRate”,“HourlyRate”,“MonthlyIncome”,“MonthlyRate”,“PercentSalaryHike”,“TotalWorkingYears”)] Memilih variabel numerik untuk dilakukannya analisis PCA.
df_scaled <- scale(df_pca) Sangat penting karena variabel (DailyRate, MonthlyIncome, dll.) punya skala berbeda, maka fungsi tersbut berguna agar tidak ada variabel yang mendominasi karena skala besar.
pca_result <- prcomp(df_scaled, center = TRUE, scale. = TRUE) Fungsi utama PCA di R. prcomp secara default menggunakan SVD yang stabil numerik.
summary(pca_result) Menampilkan deviance (proporsi variansi) yang dijelaskan tiap komponen dan kumulatifnya.
pca_result\(rotation |Kolom-kolom pada objek ini adalah eigenvectors. Nilai loading menunjukkan kontribusi tiap variabel pada tiap PC. | |head(pca_result\)x) Ini adalah representasi observasi pada sumbu komponen (koordinat di ruang PC). Digunakan untuk plotting titik pengamatan.
plot(pca_result,type = “l”,main = “Scree Plot PCA”) Plot eigenvalue berurutan yang mencari “elbow” (titik perubahan tajam) untuk menentukan jumlah komponen yang masuk akal.
biplot(pca_result,cex = 0.7,main = “Biplot PCA”) Menampilkan vektor variabel dan titik observasi pada sumbu PC1 vs PC2. Panah panjang = variabel yang berkontribusi besar.

#Hasil dan Pembahasan

## Statistik Deskriptif
summary(data_employee)
##    DailyRate      HourlyRate     MonthlyIncome    MonthlyRate   
##  Min.   : 104   Min.   : 30.00   Min.   : 1051   Min.   : 2104  
##  1st Qu.: 466   1st Qu.: 47.50   1st Qu.: 3458   1st Qu.: 8367  
##  Median : 796   Median : 63.00   Median : 5326   Median :13888  
##  Mean   : 801   Mean   : 63.96   Mean   : 6611   Mean   :14362  
##  3rd Qu.:1142   3rd Qu.: 80.00   3rd Qu.: 7998   3rd Qu.:20847  
##  Max.   :1499   Max.   :100.00   Max.   :19740   Max.   :26959  
##  PercentSalaryHike TotalWorkingYears
##  Min.   :11.00     Min.   : 0.00    
##  1st Qu.:12.00     1st Qu.: 7.00    
##  Median :14.00     Median :10.00    
##  Mean   :15.07     Mean   :11.42    
##  3rd Qu.:18.00     3rd Qu.:14.50    
##  Max.   :25.00     Max.   :40.00

Interpretasi: 1. Nilai DailyRate karyawan berkisar dari 104 hingga 1499, menunjukkan rentang gaji harian yang cukup lebar. Rata-rata 801 dan median 796 sangat berdekatan, mengindikasikan distribusi yang relatif simetris tanpa adanya skewness yang kuat. Hal ini menandakan bahwa sebagian besar karyawan memiliki tingkat gaji harian di sekitar nilai tengah tersebut. 2. Hourly Rate : Kisaran upah per jam berada antara 30 hingga 100. Nilai rata-rata (≈64) hampir sama dengan median (63), menunjukkan sebaran data yang relatif merata (simetris). Variasi upah per jam tidak sebesar variabel gaji lainnya. 3. Monthy Income : Pendapatan bulanan memiliki rentang yang sangat lebar, dari 1.051 hingga 19.740. Rata-rata 6.611 lebih tinggi dari median 5.326, menunjukkan adanya skewness positive (beberapa karyawan memiliki gaji sangat tinggi sehingga menaikkan rata-rata). Artinya, sebagian besar karyawan mendapatkan gaji di bawah rata-rata, tetapi ada kelompok kecil yang berpenghasilan jauh lebih besar. 4. Monthly Rate : Variabel ini juga memiliki rentang nilai yang cukup luas. Rata-rata 14.362 sedikit lebih tinggi dari median 13.888, mengindikasikan distribusi agak condong ke kanan (banyak nilai tinggi). Angka ini menunjukkan adanya ketimpangan gaji bulanan tertentu di dalam perusahaan. 5. Percent Salary Hike : Kenaikan gaji tahunan berkisar antara 11% hingga 25%. Rata-rata 15% sedikit di atas median 14%, menunjukkan mayoritas karyawan menerima kenaikan gaji berkisar 12–18%. Rentang yang tidak terlalu lebar menunjukkan kebijakan kenaikan gaji yang cukup konsisten antar karyawan.

df_pca <- data_employee[, c("DailyRate",
                 "HourlyRate",
                 "MonthlyIncome",
                 "MonthlyRate",
                 "PercentSalaryHike",
                 "TotalWorkingYears")]
df_scaled <- scale(df_pca)

##Hasil Analisis PCA

pca_result <- prcomp(df_scaled, center = TRUE, scale. = TRUE)
summary(pca_result)
## Importance of components:
##                           PC1    PC2    PC3    PC4    PC5     PC6
## Standard deviation     1.3331 1.0704 1.0149 0.9714 0.9328 0.48340
## Proportion of Variance 0.2962 0.1910 0.1717 0.1573 0.1450 0.03895
## Cumulative Proportion  0.2962 0.4871 0.6588 0.8161 0.9610 1.00000
pca_result$rotation
##                            PC1         PC2         PC3          PC4
## DailyRate         -0.001408599  0.64327372  0.22695883 -0.370350547
## HourlyRate         0.060394594  0.23602996 -0.76185819  0.501349070
## MonthlyIncome      0.699172316  0.01910808  0.07523143  0.072431597
## MonthlyRate        0.026430066 -0.66076016  0.21176932  0.169897254
## PercentSalaryHike -0.120014884  0.30335028  0.55802220  0.759817122
## TotalWorkingYears  0.701716795  0.03870767  0.07853021  0.007490702
##                            PC5          PC6
## DailyRate         -0.627446257 -0.061953935
## HourlyRate        -0.329932492  0.002846604
## MonthlyIncome      0.071929739 -0.703358345
## MonthlyRate       -0.698896938 -0.023004667
## PercentSalaryHike  0.061363118  0.033147776
## TotalWorkingYears -0.007713346  0.706974296
head(pca_result$x)
##             PC1        PC2         PC3         PC4        PC5        PC6
## [1,] -0.2202584 -0.2652697 -0.05061561  1.29425377 -1.2351676 -0.8154723
## [2,] -0.7889195 -1.0861365  0.05797135 -1.04505699 -1.5758559 -0.3865279
## [3,] -1.6666253 -1.1412569 -0.98464445 -0.62479924  1.1186153 -0.1293275
## [4,]  1.7004380  0.6548425  1.11891006 -0.06193384 -1.1287433  0.7126896
## [5,]  0.2660625  1.4447626  0.46624445 -0.52410278 -0.4848523  0.4726223
## [6,] -1.1908798 -0.1133730  0.93836869 -0.01085552  2.5909692  0.4642086

Interpretasi: 1. Varians PCA: Semakin besar nilai eigen, semakin banyak keragaman yang dapat dijelaskan oleh komponen tersebut. PC1 memiliki SD terbesar (1.333), menunjukkan komponen ini paling informatif. Sedangkan, PC6 memiliki SD paling kecil (0.483), artinya kontribusi informasinya sangat rendah. 2. Proportion of Variance: PC1 (29,62%): PC1 menjelaskan 29.62% variasi total data. PC2 (19,10%): PC2 menjelaskan 19,10% variasi total data. PC3 (17,17%): PC3 menjelaskan 17,17% variasi total data. PC4 (15,73%): PC4 menjelaskan 15,73% variasi total data. PC5 (14.50%): PC5 menjelaskan 14,50% variasi total data. PC6 hanya menjelaskan 3.89%, sehingga kontribusinya hampir tidak signifikan. 3. Cumulative Proportion:4 komponen pertama yaitu PC1+PC2+PC3+PC4 dapat menjelaskan 81.61%, angka yang sangat baik untuk rancangan analisis. Kesimpulan: Berdasarkan hasil PCA, Komponen Utama 1 (PC1) menjelaskan sekitar 29.62% variasi dalam data, sedangkan empat komponen pertama (PC1–PC4) secara kumulatif menjelaskan sekitar 81.61% variasi total. Hal ini menunjukkan bahwa sebagian besar informasi dalam keenam variabel asli dapat diringkas dengan menggunakan empat komponen utama saja. Komponen keenam memiliki proporsi variansi sangat kecil (3.89%), sehingga tidak memberikan kontribusi yang berarti terhadap struktur data.

##Hasil Loadings PCA 1. Interpretasi PC1: PC1 didominasi oleh TotalWorkingYears dan MonthlyIncome, yang berarti komponen ini menggambarkan suatu dimensi faktor pengalaman dan pendapatan. Di mana, semakin tinggi pengalaman kerja seseorang, semakin tinggi pendapatannya. PC1 mengukur tingkat senioritas dan kompensasi jangka panjang karyawan. 2. Interpretasi PC2: PC2 memperlihatkan perbedaan antara nilai DailyRate (positif) dan MonthlyRate (negatif). Karena keduanya berlawanan arah maka disebut faktor perbedaan struktur pembayaran harian vs bulanan. Artinya, karyawan dengan kompensasi harian tinggi cenderung tidak memiliki kompensasi bulanan yang tinggi. 3. Interpretasi PC3: PC3 memperlihatkan perbedaan antara nilai HourlyRate (negatif) dan PercentSalaryHike (positif). Karena keduanya berlawanan arah sehingga disebut faktor kontras antara upah jam vs kebijakan kenaikan gaji. Di mana, pekerja dengan upah per jam tinggi tidak selalu mendapat kenaikan gaji tahunan besar. 4. Interpretasi PC4:PC4 menunjukkan hubungan antara MonthlyIncome dan PercentSalaryHike yang sama-sama positif dan dapat disebut faktor kenaikan gaji vs pendapatan bulanan. PC4 menggambarkan kelompok karyawan yang cenderung menerima pendapatan bulanan tinggi sekaligus peningkatan gaji signifikan.

##Hasil Scree Plot

#plot
plot(pca_result,
     type = "l",
     main = "Scree Plot PCA")

Berdasarkan scree plot, terlihat bahwa komponen utama pertama (PC1) memiliki nilai varians yang paling besar dibandingkan komponen lainnya. Penurunan varians cukup tajam terjadi dari PC1 ke PC2, kemudian kembali menurun dari PC2 ke PC3 namun dengan tingkat penurunan yang lebih kecil. Setelah PC3, garis scree plot menjadi lebih landai, menunjukkan bahwa komponen PC4, PC5, dan PC6 hanya memberikan tambahan informasi yang relatif kecil. Pola ini menunjukkan adanya titik siku (elbow) pada sekitar PC2 atau PC3. Dengan demikian, komponen utama yang paling layak dipertahankan adalah sebanyak dua sampai tiga komponen utama, karena setelah komponen ketiga kontribusi varians yang diperoleh mulai menurun secara signifikan dan tidak lagi menambah informasi yang berarti.

##Hasil Biplot PCA

biplot(pca_result,
       cex = 0.7,
       main = "Biplot PCA")

Berdasarkan biplot PCA, dapat disimpulkan bahwa variabel MonthlyIncome dan TotalWorkingYears merupakan faktor yang paling dominan dalam membentuk komponen utama, karena keduanya memiliki arah panah yang panjang dan searah, menunjukkan kontribusi besar serta korelasi positif yang kuat. Sebaliknya, HourlyRate memiliki kontribusi yang kecil dalam membedakan data karyawan karena panahnya lebih pendek. Pola penyebaran observasi yang padat di sekitar pusat grafik menunjukkan bahwa karakteristik karyawan relatif homogen dan tidak membentuk kluster yang jelas. Secara keseluruhan, biplot memperlihatkan bahwa perbedaan utama antar karyawan terutama dipengaruhi oleh kombinasi pengalaman kerja dan tingkat pendapatan, sementara variabel kompensasi lain memberikan kontribusi yang lebih rendah dalam struktur varians data.

#Kesimpulan Secara umum, hasil analisis PCA menunjukkan bahwa sebagian besar variasi dalam data karyawan dapat dijelaskan oleh beberapa variabel utama, terutama MonthlyIncome dan TotalWorkingYears yang memiliki kontribusi paling besar dalam membedakan karakteristik karyawan. Sementara variabel seperti HourlyRate memberikan pengaruh yang lebih kecil terhadap struktur varians data. Scree plot mengindikasikan bahwa dua hingga tiga komponen utama sudah cukup untuk mewakili informasi utama dalam dataset, dan biplot menunjukkan bahwa data bersifat relatif homogen tanpa pembentukan kluster yang jelas. Secara keseluruhan, PCA membantu mereduksi dimensi data tanpa kehilangan informasi penting, sekaligus menegaskan bahwa perbedaan utama antar karyawan terutama dipengaruhi oleh kombinasi tingkat pendapatan dan pengalaman kerja.

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.