Pendahuluan

Perusahaan ingin memahami karakteristik penyebaran data hasil penjualan dari empat cabang (A, B, C, dan D) selama satu bulan terakhir. Analisis ini melibatkan perhitungan statistik deskriptif dan visualisasi data untuk membantu perusahaan dalam merencanakan strategi peningkatan penjualan.


Data Penjualan

Berikut adalah data penjualan (dalam juta rupiah) dari keempat cabang selama satu bulan terakhir:


Perhitungan Statistik

# DATA PENJUALAN
cabang_A <- c(50, 55, 60, 65, 70)
cabang_B <- c(40, 50, 60, 70, 80)
cabang_C <- c(30, 30, 35, 40, 45)
cabang_D <- c(70, 75, 80, 85, 90)

# Rata-rata, Median, dan Standar Deviasi
statistik <- data.frame(
  Cabang = c("A", "B", "C", "D"),
  Mean = c(mean(cabang_A), mean(cabang_B), mean(cabang_C), mean(cabang_D)),
  Median = c(median(cabang_A), median(cabang_B), median(cabang_C), median(cabang_D)),
  SD = c(sd(cabang_A), sd(cabang_B), sd(cabang_C), sd(cabang_D))
)
statistik
##   Cabang Mean Median        SD
## 1      A   60     60  7.905694
## 2      B   60     60 15.811388
## 3      C   36     35  6.519202
## 4      D   80     80  7.905694
# DATA PENJUALAN
cabang_A <- c(50, 55, 60, 65, 70)
cabang_B <- c(40, 50, 60, 70, 80)
cabang_C <- c(30, 30, 35, 40, 45)
cabang_D <- c(70, 75, 80, 85, 90)

# 1. PERHITUNGAN RATA-RATA, MEDIAN, DAN STANDAR DEVIASI
mean_A <- mean(cabang_A)
mean_B <- mean(cabang_B)
mean_C <- mean(cabang_C)
mean_D <- mean(cabang_D)

median_A <- median(cabang_A)
median_B <- median(cabang_B)
median_C <- median(cabang_C)
median_D <- median(cabang_D)

sd_A <- sd(cabang_A)
sd_B <- sd(cabang_B)
sd_C <- sd(cabang_C)
sd_D <- sd(cabang_D)

# Menampilkan hasil
statistik <- data.frame(
  Cabang = c("A", "B", "C", "D"),
  Mean = c(mean_A, mean_B, mean_C, mean_D),
  Median = c(median_A, median_B, median_C, median_D),
  SD = c(sd_A, sd_B, sd_C, sd_D)
)
print("Hasil Statistik:")
## [1] "Hasil Statistik:"
print(statistik)
##   Cabang Mean Median        SD
## 1      A   60     60  7.905694
## 2      B   60     60 15.811388
## 3      C   36     35  6.519202
## 4      D   80     80  7.905694
# 2. CABANG DENGAN PENYEBARAN DATA TERKECIL
min_sd <- which.min(c(sd_A, sd_B, sd_C, sd_D))
paste("Cabang dengan penyebaran data terkecil adalah Cabang", LETTERS[min_sd])
## [1] "Cabang dengan penyebaran data terkecil adalah Cabang C"
# 3. CABANG YANG GAGAL MENCAPAI TARGET
target <- 50
gagal_A <- all(cabang_A < target)
gagal_B <- all(cabang_B < target)
gagal_C <- all(cabang_C < target)
gagal_D <- all(cabang_D < target)

gagal <- data.frame(
  Cabang = c("A", "B", "C", "D"),
  Gagal = c(gagal_A, gagal_B, gagal_C, gagal_D)
)
print("Cabang yang gagal mencapai target penjualan:")
## [1] "Cabang yang gagal mencapai target penjualan:"
print(gagal)
##   Cabang Gagal
## 1      A FALSE
## 2      B FALSE
## 3      C  TRUE
## 4      D FALSE
# 4. DIAGRAM KOTAK (BOX PLOT)
library(ggplot2)
data <- data.frame(
  Penjualan = c(cabang_A, cabang_B, cabang_C, cabang_D),
  Cabang = rep(c("A", "B", "C", "D"), each = 5)
)

ggplot(data, aes(x = Cabang, y = Penjualan)) +
  geom_boxplot() +
  labs(title = "Penyebaran Data Penjualan",
       x = "Cabang",
       y = "Penjualan (Juta Rupiah)") +
  theme_minimal()

# 5. STRATEGI PENINGKATAN PENJUALAN
cat("
Strategi Peningkatan Penjualan:
1. Fokus pada cabang C karena memiliki rata-rata penjualan terendah dan gagal mencapai target.
2. Tingkatkan pelatihan untuk cabang dengan penyebaran besar seperti cabang B agar lebih konsisten.
3. Analisis keberhasilan cabang D dengan penyebaran data tinggi dan rata-rata tinggi untuk diterapkan di cabang lain.
4. Berikan insentif kepada cabang yang konsisten mencapai target penjualan untuk memotivasi performa.
")
## 
## Strategi Peningkatan Penjualan:
## 1. Fokus pada cabang C karena memiliki rata-rata penjualan terendah dan gagal mencapai target.
## 2. Tingkatkan pelatihan untuk cabang dengan penyebaran besar seperti cabang B agar lebih konsisten.
## 3. Analisis keberhasilan cabang D dengan penyebaran data tinggi dan rata-rata tinggi untuk diterapkan di cabang lain.
## 4. Berikan insentif kepada cabang yang konsisten mencapai target penjualan untuk memotivasi performa.
## Analisis Efisiensi Pengiriman Barang

### Data Pengiriman Barang
# Membuat data pengiriman
pengiriman <- data.frame(
  Wilayah = c("Utara", "Selatan", "Timur", "Barat", "Tengah", "Utara", 
              "Selatan", "Timur", "Barat", "Tengah", "Utara", "Selatan", 
              "Timur", "Barat", "Tengah"),
  Jenis_Barang = c("Elektronik", "Pakaian", "Makanan", "Peralatan", "Elektronik", 
                   "Pakaian", "Makanan", "Peralatan", "Elektronik", "Pakaian", 
                   "Peralatan", "Elektronik", "Pakaian", "Makanan", "Peralatan"),
  Jumlah_Barang = c(200, 150, 180, 120, 250, 300, 220, 140, 180, 350, 
                    170, 250, 190, 130, 180),
  Waktu_Pengiriman = c(5, 8, NA, 5, NA, 9, 8, 5, 0, 8, NA, NA, NA, 5, 5),
  Biaya_Per_Unit = c(1000, 800, 700, 900, 1100, 800, 700, 900, 950, 800, 
                     850, 1000, 750, 700, 900)
)
pengiriman 
##    Wilayah Jenis_Barang Jumlah_Barang Waktu_Pengiriman Biaya_Per_Unit
## 1    Utara   Elektronik           200                5           1000
## 2  Selatan      Pakaian           150                8            800
## 3    Timur      Makanan           180               NA            700
## 4    Barat    Peralatan           120                5            900
## 5   Tengah   Elektronik           250               NA           1100
## 6    Utara      Pakaian           300                9            800
## 7  Selatan      Makanan           220                8            700
## 8    Timur    Peralatan           140                5            900
## 9    Barat   Elektronik           180                0            950
## 10  Tengah      Pakaian           350                8            800
## 11   Utara    Peralatan           170               NA            850
## 12 Selatan   Elektronik           250               NA           1000
## 13   Timur      Pakaian           190               NA            750
## 14   Barat      Makanan           130                5            700
## 15  Tengah    Peralatan           180                5            900
library(plotly)
## Warning: package 'plotly' was built under R version 4.4.2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(magrittr)
## Warning: package 'magrittr' was built under R version 4.4.2
# Membersihkan data dari nilai NA
pengiriman_clean <- na.omit(pengiriman)

# Visualisasi 3D
fig <- plot_ly(
  pengiriman_clean,
  x = ~Jumlah_Barang,
  y = ~Waktu_Pengiriman,
  z = ~Biaya_Per_Unit,
  color = ~Wilayah,
  type = "scatter3d",
  mode = "markers"
) %>%
  layout(
    title = "Visualisasi 3D Pengiriman Barang",
    scene = list(
      xaxis = list(title = "Jumlah Barang"),
      yaxis = list(title = "Waktu Pengiriman"),
      zaxis = list(title = "Biaya Per Unit")
    )
  )
fig
# Menghitung efisiensi: Waktu pengiriman x Biaya per unit
pengiriman$Efisiensi <- pengiriman$Waktu_Pengiriman * pengiriman$Biaya_Per_Unit

# Wilayah dengan efisiensi terendah
wilayah_terendah <- pengiriman[which.max(pengiriman$Efisiensi), ]
wilayah_terendah
##   Wilayah Jenis_Barang Jumlah_Barang Waktu_Pengiriman Biaya_Per_Unit Efisiensi
## 6   Utara      Pakaian           300                9            800      7200
# Menghitung rata-rata waktu dan biaya per unit berdasarkan jenis barang
kinerja_jenis <- aggregate(cbind(Waktu_Pengiriman, Biaya_Per_Unit) ~ Jenis_Barang, 
                           data = pengiriman, 
                           FUN = mean, na.rm = TRUE)
kinerja_jenis
##   Jenis_Barang Waktu_Pengiriman Biaya_Per_Unit
## 1   Elektronik         2.500000            975
## 2      Makanan         6.500000            700
## 3      Pakaian         8.333333            800
## 4    Peralatan         5.000000            900
# Jenis barang dengan waktu tercepat dan biaya termurah
tercepat <- kinerja_jenis[which.min(kinerja_jenis$Waktu_Pengiriman), ]
termurah <- kinerja_jenis[which.min(kinerja_jenis$Biaya_Per_Unit), ]
tercepat
##   Jenis_Barang Waktu_Pengiriman Biaya_Per_Unit
## 1   Elektronik              2.5            975
termurah
##   Jenis_Barang Waktu_Pengiriman Biaya_Per_Unit
## 2      Makanan              6.5            700