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.
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
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 mingguTotal.Manpower: total tenaga kerja mingguanTotal.Jam.Kerja: total jam kerja karyawan mingguanTotal.karton: pencapaian karton mingguanTotal.Ketidakhadiran: ketidakhadiran karyawan
mingguanRealisasi.2022: pencapaian produktifitas mingguanTarget.2022: target yang harus dicapai mingguanOpen.Gate: total gate outbound yang dibuka
mingguanPlann.Armada: total plan kebutuhan armada mingguanActual.Armada: total realisasi armada mingguanPersentase.Ketidakhadiran: persentase ketidakhadiran
mingguanTotal.OT: total lemburan mingguanActual.jam.kerja.normal: total jam kerja normal
mingguan (tanpa OT)Rata.rata: rata-rata pencapaian YTDKenaikan.Karton...Jam: kenaikan karton terhadap
baseline tahun sebelumnyaMonetize.Per.Week: benefit yang dihasilkan dari
kenaikan karton/jamKumulatif: hitungan benefit YTDX.: persentase pencapaian realisasi terhadap
targetFungsi 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
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 :
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
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,]
disJawaban : 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)
rendahxtabs(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.
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.