Judul Gambar

1 Explanation

Data ini berisi catatan pencapaian dari sebuah perusahaan pergudangan (saya beri nama PT.FAKA). PT.FAKA adalah perusahaan pergudangan dibidang makanan yang memakai tenaga kerja Outsourcing yang dituntut untuk memaksimalkan jumlah karton yang keluar dibandingkan dengan jumlah karyawan yang dibutuhkan (total jam kerja).

Catatan : Penjelasan detail akan diberikan di akhir konten.

2 Input Data

Pastikan data kita ditempatkan di folder yang sama dengan data proyek R kita.

faka <- read.csv("datainput/produktifitas.csv")

Input data SELESAI! lalu mari kita mulai

2.1 Data Inspection

Fungsi head() digunakan untuk melihat beberapa baris pertama dari suatu objek, seperti data frame atau matriks. Fungsi ini berguna untuk memberikan gambaran awal tentang struktur dan konten objek tersebut tanpa perlu menampilkan seluruhnya.

head(faka)

Fungsi tail() digunakan untuk melihat beberapa baris terakhir dari suatu objek, seperti data frame atau matriks.

tail(faka)

Fungsi dim() untuk mendapatkan dimensi (jumlah baris dan kolom).

dim(faka)
## [1] 50 18

Fungsi names() memungkinkan Anda untuk melihat, mengganti, atau memanipulasi label atau nama dari elemen-elemen dalam objek tersebut.

names(faka)
##  [1] "Week"                      "Total.Manpower"           
##  [3] "Total.Jam.Kerja"           "Total.karton"             
##  [5] "Total.Ketidakhadiran"      "Realisasi.2022"           
##  [7] "Target.2022"               "Open.Gate"                
##  [9] "Plann.Armada"              "Actual.Armada"            
## [11] "Persentase.Ketidakhadiran" "Total.OT"                 
## [13] "Actual.jam.kerja.normal"   "Rata.rata"                
## [15] "Kenaikan.Karton...Jam"     "Monetize.Per.Week"        
## [17] "Kumulatif"                 "X."

Dari pemeriksaan kami dapat disimpulkan deskripsi 18 kolom pada data frame::

  • Week: nama dalam minggu
  • Total.Manpower: total tenaga kerja mingguan
  • Total.Jam.Kerja: total jam kerja karyawan mingguan
  • Total.karton: pencapaian karton mingguan
  • Total.Ketidakhadiran: ketidakhadiran karyawan mingguan
  • Realisasi.2022: pencapaian produktifitas mingguan
  • Target.2022: target yang harus dicapai mingguan
  • Open.Gate: total gate outbound yang dibuka mingguan
  • Plann.Armada: total plan kebutuhan armada mingguan
  • Actual.Armada: total realisasi armada mingguan
  • Persentase.Ketidakhadiran: persentase ketidakhadiran mingguan
  • Total.OT: total lemburan mingguan
  • Actual.jam.kerja.normal: total jam kerja normal mingguan (tanpa OT)
  • Rata.rata: rata-rata pencapaian YTD
  • Kenaikan.Karton...Jam: kenaikan karton terhadap baseline tahun sebelumnya
  • Monetize.Per.Week: benefit yang dihasilkan dari kenaikan karton/jam
  • Kumulatif: hitungan benefit YTD
  • X.: persentase pencapaian realisasi terhadap target

2.2 Data Cleansing & Coertions

Fungsi str() memberikan ringkasan tentang tipe data, dimensi, dan konten dari objek, sehingga memudahkan pemahaman tentang struktur dan komponennya.

str(faka)
## 'data.frame':    50 obs. of  18 variables:
##  $ Week                     : chr  "W1" "W2" "W3" "W4" ...
##  $ Total.Manpower           : int  140 140 140 140 140 140 140 140 140 140 ...
##  $ Total.Jam.Kerja          : int  4730 4816 5248 5381 4498 5349 5428 5837 4107 5863 ...
##  $ Total.karton             : int  884525 1113770 1261126 1405176 1307387 1527668 1605253 1706862 1143453 1635711 ...
##  $ Total.Ketidakhadiran     : int  13 16 13 12 6 182 6 20 13 14 ...
##  $ Realisasi.2022           : num  187 231 240 261 291 ...
##  $ Target.2022              : int  230 230 230 230 230 230 230 230 230 230 ...
##  $ Open.Gate                : int  47 61 74 78 75 79 88 91 60 85 ...
##  $ Plann.Armada             : int  333 343 444 480 490 503 612 649 425 574 ...
##  $ Actual.Armada            : int  347 432 487 552 503 585 614 620 444 628 ...
##  $ Persentase.Ketidakhadiran: chr  "1.54761904761905%" "1.9047619047619%" "1.54761904761905%" "1.42857142857143%" ...
##  $ Total.OT                 : int  144 0 49 12 77 32 98 491 574 373 ...
##  $ Actual.jam.kerja.normal  : int  4586 4816 5199 5369 4421 5317 5330 5346 3533 5490 ...
##  $ Rata.rata                : num  220 220 220 220 220 ...
##  $ Kenaikan.Karton...Jam    : num  -31 13.3 22.3 43.1 72.7 ...
##  $ Monetize.Per.Week        : num  -19393704 8450081 15484540 30703733 43230970 ...
##  $ Kumulatif                : num  -19393704 -10943623 4540917 35244650 78475620 ...
##  $ X.                       : chr  "0%" "100%" "100%" "100%" ...

Dari hasil ini, kami menemukan beberapa tipe data tidak sesuai dengan tipe yang benar. kita perlu mengubahnya menjadi tipe yang benar (pemaksaan data).

Fungsi “x - > as.—(x)” digunakan untuk mengubah vektor atau kolom dalam data frame.

faka$Total.Manpower <- as.numeric(faka$Total.Manpower)
faka$Total.Jam.Kerja <- as.numeric(faka$Total.Jam.Kerja)
faka$Total.karton <- as.numeric(faka$Total.karton)
faka$Total.Ketidakhadiran <- as.integer(faka$Total.Ketidakhadiran)
faka$Realisasi.2022 <- as.integer(faka$Realisasi.2022)
faka$Total.OT <- as.numeric(faka$Total.OT)
faka$Actual.jam.kerja.normal <- as.numeric(faka$Actual.jam.kerja.normal)
faka$Persentase.Ketidakhadiran <- as.numeric(faka$Persentase.Ketidakhadiran)
## Warning: NAs introduced by coercion
str(faka)
## 'data.frame':    50 obs. of  18 variables:
##  $ Week                     : chr  "W1" "W2" "W3" "W4" ...
##  $ Total.Manpower           : num  140 140 140 140 140 140 140 140 140 140 ...
##  $ Total.Jam.Kerja          : num  4730 4816 5248 5381 4498 ...
##  $ Total.karton             : num  884525 1113770 1261126 1405176 1307387 ...
##  $ Total.Ketidakhadiran     : int  13 16 13 12 6 182 6 20 13 14 ...
##  $ Realisasi.2022           : int  187 231 240 261 290 285 295 292 278 278 ...
##  $ Target.2022              : int  230 230 230 230 230 230 230 230 230 230 ...
##  $ Open.Gate                : int  47 61 74 78 75 79 88 91 60 85 ...
##  $ Plann.Armada             : int  333 343 444 480 490 503 612 649 425 574 ...
##  $ Actual.Armada            : int  347 432 487 552 503 585 614 620 444 628 ...
##  $ Persentase.Ketidakhadiran: num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Total.OT                 : num  144 0 49 12 77 32 98 491 574 373 ...
##  $ Actual.jam.kerja.normal  : num  4586 4816 5199 5369 4421 ...
##  $ Rata.rata                : num  220 220 220 220 220 ...
##  $ Kenaikan.Karton...Jam    : num  -31 13.3 22.3 43.1 72.7 ...
##  $ Monetize.Per.Week        : num  -19393704 8450081 15484540 30703733 43230970 ...
##  $ Kumulatif                : num  -19393704 -10943623 4540917 35244650 78475620 ...
##  $ X.                       : chr  "0%" "100%" "100%" "100%" ...

Setiap kolom sudah diubah menjadi tipe data yang diinginkan

Cek untuk nilai yang hilang?

Fungsi anyNA() untuk memeriksa apakah suatu objek mengandung nilai yang hilang (NA). NA adalah singkatan dari “Not Available” dan merupakan representasi dalam R untuk nilai yang tidak ada atau tidak diketahui.

anyNA(faka)
## [1] TRUE

Benar!! Tidak Ada nilai yang hilang

Apakah subset menghapus beberapa kolom karena kami tidak memerlukan informasi. lalu simpan ke dalam variabel ‘Faka’

Fungsi “objek - > nilai” digunakan sebagai operator penugasan (assignment operator) untuk menetapkan nilai ke suatu objek atau variabel. Operator ini digunakan untuk membuat atau mengubah objek dengan cara menetapkan nilai ke objek tersebut.

Faka <- faka[,c(0:13)]
head(Faka)

Sekarang, dataset Faka siap untuk diproses dan dianalisis

3 Data Explanation

Fungsi summary() digunakan untuk menghasilkan ringkasan statistik deskriptif dari suatu objek atau data. Fungsi ini memberikan informasi yang berguna tentang statistik penting seperti nilai minimum dan maksimum, median, kuartil, dan rata-rata dari objek tersebut.

summary(Faka)
##      Week           Total.Manpower  Total.Jam.Kerja  Total.karton    
##  Length:50          Min.   :137.0   Min.   :4054    Min.   : 855677  
##  Class :character   1st Qu.:139.0   1st Qu.:4818    1st Qu.:1189445  
##  Mode  :character   Median :139.0   Median :5168    Median :1348952  
##                     Mean   :139.2   Mean   :5218    Mean   :1365356  
##                     3rd Qu.:140.0   3rd Qu.:5489    3rd Qu.:1537816  
##                     Max.   :140.0   Max.   :8521    Max.   :1961053  
##                                                                      
##  Total.Ketidakhadiran Realisasi.2022   Target.2022    Open.Gate     
##  Min.   :  0.00       Min.   :187.0   Min.   :230   Min.   : 47.00  
##  1st Qu.:  6.25       1st Qu.:238.2   1st Qu.:230   1st Qu.: 63.00  
##  Median : 12.50       Median :262.5   Median :230   Median : 70.50  
##  Mean   : 18.34       Mean   :260.4   Mean   :230   Mean   : 71.82  
##  3rd Qu.: 18.75       3rd Qu.:284.0   3rd Qu.:230   3rd Qu.: 78.75  
##  Max.   :182.00       Max.   :331.0   Max.   :230   Max.   :120.00  
##                                                                     
##   Plann.Armada   Actual.Armada   Persentase.Ketidakhadiran    Total.OT     
##  Min.   :260.0   Min.   :315.0   Min.   : NA               Min.   :  0.00  
##  1st Qu.:415.8   1st Qu.:444.5   1st Qu.: NA               1st Qu.: 30.25  
##  Median :488.5   Median :504.5   Median : NA               Median :112.00  
##  Mean   :491.1   Mean   :515.8   Mean   :NaN               Mean   :182.94  
##  3rd Qu.:558.8   3rd Qu.:584.0   3rd Qu.: NA               3rd Qu.:248.75  
##  Max.   :708.0   Max.   :774.0   Max.   : NA               Max.   :795.00  
##                                  NA's   :50                                
##  Actual.jam.kerja.normal
##  Min.   :3533           
##  1st Qu.:4766           
##  Median :5106           
##  Mean   :5035           
##  3rd Qu.:5327           
##  Max.   :8472           
## 

Ringkasan :

  • rata-rata pencapaian PT.FAKA selama tahun 2022 adalah 260 karton/jam
  • pencapaian karton perminggu PT.FAKA paling rendah 855677 dan tertinggi 1961053
  • total jam karja tertinggi 8472 dan total lemburan tertinggi 795 jam dalam seminggu
  • minimal plan armada 260 akan tetapi untuk realisasi terendahnya 315 armada
  • rata-rata tenaga kerja PT.FAKA 139

Periksa outlier dalam total manpower?

Fungsi aggregate() adalah fungsi untuk melakukan agregasi atau pengelompokan data berdasarkan satu atau beberapa variabel kunci (grouping variables) dan menerapkan fungsi agregat tertentu pada variabel yang ingin dihitung atau diagregasi.

aggregate(Realisasi.2022~Total.Manpower,Faka,mean)
aggregate(Realisasi.2022~Total.Manpower,Faka,var)
aggregate(Realisasi.2022~Total.Manpower,Faka,sd)
boxplot(Faka$Realisasi.2022 ~ Faka$Total.Manpower, horizontal = T)

Dengan median,manpower yang diharapkan adalah 137

Dengan IQR(lebar kotak),sebaran data yang yang paling besar adalah 140 manpower

4 Data Manipulation & Transformation

Hitung korelasi antara Realisasi.2022 dan Total.Manpower! Bagaimana hubungannya?

cor(Faka$Realisasi.2022, Faka$Total.Manpower)
## [1] -0.1324818

Jawaban: Terdapat korelasi/hubungan yang negatif,namun lemah (-0.13)

plot(Faka$Realisasi.2022, Faka$Total.Manpower)
abline(
  lm(Faka$Total.Manpower ~ Faka$Realisasi.2022),
  col = 'red'
  )

total manpower berapa yang realisasi angka terendah? total karton terendah?

Faka[Faka$Total.karton == 855677,]

Jawab : Total karton terendah 855677 di week ke27 dengan 140 manpower dan realisasi 197 karton/jam

Berapa kali produktifitas tidak mencapai target?

dis <- Faka[Faka$Realisasi.2022<230,]
dis

Jawaban : Untuk produktifitas yang tidak mencapai target ada 6 minggu

Total manpower mana yang menghasilkan produktifitas paling rendah?

rendah <- data.frame(dis$Week, dis$Total.Manpower, dis$Total.karton)
rendah
xtabs(dis$Total.karton~dis$Total.Manpower+dis$Week)
##                   dis$Week
## dis$Total.Manpower      W1     W27     W28     W34     W36     W37
##                139       0       0       0 1133539  947716 1075427
##                140  884525  855677 1026728       0       0       0
plot(xtabs(dis$Total.karton~dis$Total.Manpower+dis$Week))

heatmap(xtabs(dis$Total.karton~dis$Total.Manpower+dis$Week), cexCol = 0.8, cexRow = 0.8, scale = "column", Colv = NA, Rowv = NA)

Jawaban : yang menghasilkan produktifitas paling rendah dengan total manpower 140 dan 139.

5 Explanatory Text & Business Recomendation

Rangkuman:

Dalam 1 tahun pencapaian outbound PT.FAKA total 68267822 karton dengan pencapaian produktifitas tertinggi 331 karton/jam.

Produktifitas yang tidak mencapai target terjadi pada 6 week : W1, W27, W28, W34, W36 dan W38. Dengan IQR(lebar kotak),sebaran data yang yang paling besar adalah 140 manpower.

Rekomendasi:

1.Dari perhitungan kami di atas, menunjukkan bahwa untuk total manpower 140 tidak maksimal untuk dapat mencapai target produktifitas yang ditentukan dengan mempertimbangkan total karton yang dihasilkan.

2.Menggunakan jumlah manpower 137, kami dapat memberikan hasil produktifitas karton/jam lebih maksimal.