Bab 6 Ukuran Penyebaran Data
Ukuran penyebaran data adalah alat statistik yang menggambarkan tingkat variasi atau distribusi data dalam suatu dataset, melengkapi ukuran pemusatan seperti mean dan median. Beberapa ukuran penyebaran yang umum meliputi range, variansi, simpangan baku, dan interquartile range (IQR). Ukuran ini penting untuk memahami konsistensi, kestabilan, serta risiko dalam data, sehingga membantu pengambilan keputusan yang lebih baik. Sementara ukuran pemusatan menunjukkan nilai representatif dari data, ukuran penyebaran memberikan konteks tentang seberapa jauh data menyimpang dari nilai pusat, menjelaskan variasi yang ada di dalam dataset.
6.1 Jangkauan (Range)
6.2 Jangkauan Antar Kuartil (IQR)
6.2.1 Definisi IQR
Jangkauan Antar Kuartil (Interquartile Range, IQR) adalah selisih antara kuartil ketiga (Q3) dan kuartil pertama (Q1). IQR mengukur sebaran data di bagian tengah, mengabaikan nilai ekstrem.
6.2.2 Menghitung Kuartil
- Kuartil pertama (Q1) adalah nilai yang memisahkan 25% data terendah.
- Kuartil ketiga (Q3) adalah nilai yang memisahkan 25% data tertinggi.
- Median (Q2) adalah nilai tengah dataset.
IQR dihitung dengan rumus:
IQR=Q3−Q1
6.2.3 Interpretasi IQR
IQR menunjukkan rentang data antara kuartil pertama dan ketiga, menggambarkan konsentrasi 50% data di tengah. Semakin besar IQR, semakin tersebar data di bagian tengah.
6.2.4 IQR dalam Mendeteksi Pencilan
Pencilan dapat diidentifikasi dengan menggunakan IQR. Nilai di luar rentang:
Q1−1.5∗IQR dan Q3+1.5∗IQR disebut sebagai pencilan. Jika data berada di luar rentang ini, dianggap sebagai pencilan.
Misalkan kita memiliki dataset berikut:
2,4,6,8,10,12,14,18,20,22
Langkah-langkah untuk menghitung IQR dan mendeteksi pencilan:
- Urutkan data:
2,4,6,8,10,12,14,18,20,22
- Cari Median (Q2)
Median (Q2) adalah nilai tengah dari dataset, yang dalam hal ini adalah rata-rata dari 10 dan 12, yaitu 11.
- Cari Kuartil pertama (Q1) dan Kuartil ketiga (Q3):
- Q1 adalah median dari set data pertama {2, 4, 6, 8, 10}, yaitu 6.
- Q3 adalah median dari set data kedua {12, 14, 18, 20, 22}, yaitu 18.
- Hitung IQR:
QR=Q3−Q1=18−6=12
- Tentukan batas pencilan:
- Batas bawah:
Q1 - 1.5 * IQR = 6 - 1.5 * 12 = 6 - 18 = -12
- Batas atas:
Q3 + 1.5 * IQR = 18 + 1.5 * 12 = 18 + 18 = 36
- Identifikasi pencilan:
Data yang berada di luar rentang [-12, 36] dianggap sebagai pencilan. Dalam hal ini, semua data berada dalam rentang tersebut, sehingga tidak ada pencilan.
Jika data yang diberikan adalah {2, 4, 6, 8, 10, 100, 12, 14, 18, 20, 22}
, maka angka 100 berada di luar batas atas 36 dan akan dianggap sebagai pencilan.
6.3 Varians
6.3.1 Definisi Varians
Varians adalah ukuran statistik yang menggambarkan sebaran atau penyebaran data dalam suatu set data. Varians menunjukkan seberapa jauh nilai-nilai data tersebar dari rata-rata (mean). Semakin besar varians, semakin tersebar data di sekitar rata-rata.
6.3.2 Varians Populasi & Sampel
Varians Populasi digunakan ketika kita menghitung varians dari seluruh populasi. Rumusnya adalah:
σ2=∑(xi−μ)2N
Di mana:
- σ2 = varians populasi
- xi = setiap nilai dalam data
- μ = rata-rata populasi
- N = jumlah data dalam populasi
Varians Sampel digunakan ketika kita hanya memiliki sampel data dan ingin mengestimasi varians populasi. Rumusnya adalah:
s^2 = {Σ (x_i - \bar{x})^2 \over (n - 1)}
Di mana:
- s^2 = varians sampel
- x_i = setiap nilai dalam sampel
- \bar{x} = rata-rata sampel
- n = jumlah data dalam sampel
6.3.3 Contoh Perhitungan Varians
Misalkan kita memiliki data berikut:
{2, 4, 6, 8, 10}
- Cari Rata-rata (\bar{x}):
\bar{x} = (2 + 4 + 6 + 8 + 10) / 5 = 30 / 5 = 6
- Hitung selisih antara setiap nilai dengan rata-rata dan kuadratkan hasilnya:
(2 - 6)² = (-4)² = 16 (4 - 6)² = (-2)² = 4 (6 - 6)² = 0² = 0 (8 - 6)² = 2² = 4 (10 - 6)² = 4² = 16
- Jumlahkan hasil kuadrat perbedaan:
16 + 4 + 0 + 4 + 16 = 40
- Hitung Varians Sampel:
s² = 40 / (5 - 1) = 40 / 4 = 10
Jadi, varians sampel dari data tersebut adalah 10.
6.4 Standar Deviasi
6.4.1 Definisi Standar Deviasi
Standar deviasi adalah ukuran sebaran atau penyebaran data dalam suatu distribusi. Semakin kecil standar deviasi, semakin dekat nilai-nilai data ke rata-rata. Sebaliknya, semakin besar standar deviasi, semakin tersebar data tersebut dari rata-rata.
6.4.2 Varians & Standar Deviasi
Varians adalah kuadrat dari standar deviasi. Varians memberikan gambaran tentang seberapa besar data tersebar dari rata-rata, tetapi satuannya dalam kuadrat. Sedangkan, standar deviasi memberikan ukuran yang lebih mudah dipahami karena satuannya sama dengan satuan data aslinya.
6.4.3 Standar Deviasi Populasi & Sampel
Terdapat dua jenis standar deviasi, yaitu:
Standar Deviasi Populasi: Digunakan ketika data yang dimiliki mencakup seluruh populasi. Rumusnya adalah: \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2} di mana:
- N adalah jumlah data,
- x_i adalah setiap nilai data,
- \mu adalah rata-rata populasi.
Standar Deviasi Sampel: Digunakan ketika data hanya merupakan sampel dari populasi. Rumusnya adalah: s = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2} di mana:
- n adalah jumlah sampel,
- x_i adalah setiap nilai data,
- \bar{x} adalah rata-rata sampel.
6.4.4 Interpretasi Standar Deviasi
Standar deviasi menggambarkan sejauh mana nilai-nilai data menyimpang dari rata-rata. Sebagai contoh:
- Standar deviasi yang kecil menunjukkan bahwa nilai data hampir semua berada di dekat rata-rata.
- Standar deviasi yang besar menunjukkan adanya penyebaran yang lebih luas antara nilai-nilai data.
6.4.5 Contoh Perhitungan Standar Deviasi
Misalkan kita memiliki data berikut:
10, 12, 23, 23, 16, 23, 21, 16
Langkah 1: Hitung rata-rata (mean)
\bar{x} = \frac{10 + 12 + 23 + 23 + 16 + 23 + 21 + 16}{8} = 17.5Langkah 2: Hitung varians
Varians adalah rata-rata kuadrat selisih antara setiap nilai dengan rata-rata: \text{Varians} = \frac{(10 - 17.5)^2 + (12 - 17.5)^2 + \dots + (16 - 17.5)^2}{8 - 1} Varians = 28.57Langkah 3: Hitung standar deviasi
Standar deviasi adalah akar kuadrat dari varians: \sigma = \sqrt{28.57} = 5.34
6.5 Koefisien Variasi
6.5.1 Definisi Koefisien Variasi
Koefisien variasi (CV) adalah ukuran yang menggambarkan seberapa besar variasi atau penyebaran data relatif terhadap rata-rata. Koefisien variasi dihitung dengan membandingkan standar deviasi dengan rata-rata, yang memungkinkan perbandingan antara variabilitas dua atau lebih dataset meskipun satuannya berbeda.
6.5.2 Cara Menghitung Koefisien Variasi
Koefisien variasi dihitung menggunakan rumus berikut:
\text{CV} = \frac{\sigma}{\mu} \times 100\%
di mana:
- \sigma adalah standar deviasi,
- \mu adalah rata-rata.
Dengan rumus ini, koefisien variasi memberikan hasil dalam bentuk persen, yang menunjukkan proporsi standar deviasi terhadap rata-rata.
6.5.3 Interpretasi Koefisien Variasi
Koefisien variasi memberikan informasi tentang variabilitas relatif data. Beberapa interpretasi umum dari CV adalah:
- CV rendah: Menunjukkan bahwa data lebih terpusat atau memiliki variasi kecil relatif terhadap rata-rata.
- CV tinggi: Menunjukkan bahwa data memiliki variasi yang lebih besar relatif terhadap rata-rata, yang mengindikasikan ketidakstabilan atau ketidakteraturan yang lebih tinggi.
Koefisien variasi sering digunakan untuk membandingkan variabilitas antara dataset dengan satuan yang berbeda, karena CV mengabaikan satuan unit dalam perhitungannya.
6.6 Rentang Semi-Interkuartil
6.6.1 Definisi Rentang Semi-Interkuartil
Rentang Semi-Interkuartil (Semi-Interquartile Range, SIQR) adalah ukuran statistik yang menggambarkan sebaran data dengan fokus pada kuartil pertama (Q1) dan kuartil ketiga (Q3). Rentang ini mengukur sebaran nilai tengah data dan mengabaikan nilai ekstrem (outlier). Rentang Semi-Interkuartil digunakan untuk memberikan gambaran yang lebih stabil tentang variabilitas data dibandingkan dengan rentang biasa.
6.6.2 Menghitung Rentang Semi-Interkuartil
Rentang Semi-Interkuartil dihitung dengan rumus:
\text{SIQR} = \frac{Q3 - Q1}{2}
di mana:
- Q1 adalah kuartil pertama (25% data di bawahnya),
- Q3 adalah kuartil ketiga (75% data di bawahnya).
Rentang Semi-Interkuartil mengukur jarak antara kuartil pertama dan kuartil ketiga, kemudian membaginya dengan dua untuk mendapatkan rentang pada bagian tengah data.
6.7 Analisis Penyebaran Data
6.7.1 Histogram
Histogram adalah alat grafis yang digunakan untuk menunjukkan distribusi data numerik dengan membagi data ke dalam interval atau “bin”. Setiap batang dalam histogram mewakili jumlah data dalam interval tersebut. Histogram memberikan gambaran visual tentang bentuk distribusi data, apakah simetris, skewed, atau memiliki banyak puncak (multimodal).
Histogram sangat berguna untuk:
- Menilai distribusi data,
- Mengidentifikasi outlier atau pencilan,
- Membandingkan distribusi beberapa kelompok data.
library(plotly)
# Membuat data normal dan tidak normal
set.seed(123)
x_normal <- rnorm(1000) # Data normal
x_non_normal <- rexp(1000) # Data tidak normal (eksponensial)
# Membuat histogram untuk data normal dan tidak normal
plot_ly() %>%
add_trace(
x = x_normal,
type = "histogram",
name = "Data Normal",
marker = list(color = 'blue', opacity = 0.7)
) %>% # Histogram untuk data normal
add_trace(
x = x_non_normal,
type = "histogram",
name = "Data Tidak Normal",
marker = list(color = 'green', opacity = 0.7)
) %>% # Histogram untuk data tidak normal
layout(
title = "Histogram untuk Data Normal dan Tidak Normal",
xaxis = list(title = "Nilai"),
yaxis = list(title = "Frekuensi"),
barmode = "overlay" # Menampilkan histogram secara tumpang tindih
)
6.7.2 Densitas
Plot densitas adalah alat grafis yang digunakan untuk menggambarkan distribusi probabilitas dari sebuah dataset. Dengan menggunakan estimasi kepadatan kernel (Kernel Density Estimation atau KDE), plot densitas memperlihatkan bagaimana data tersebar sepanjang rentang nilai. Berbeda dengan histogram, plot densitas tidak terbatas pada interval atau “bin” tertentu, sehingga menghasilkan kurva yang lebih halus dan memberikan gambaran yang lebih jelas tentang distribusi data.
Plot densitas sangat berguna untuk:
- Mengidentifikasi bentuk distribusi: Apakah data simetris, miring (skewed), atau multimodal (memiliki lebih dari satu puncak).
- Menilai sebaran data: Menyediakan gambaran tentang bagaimana data tersebar di sepanjang sumbu nilai, apakah konsentrasi data lebih banyak di satu area atau tersebar merata.
- Membandingkan distribusi berbagai kelompok data: Memungkinkan perbandingan visual distribusi dari beberapa dataset, misalnya data normal vs. tidak normal, atau data dari kelompok yang berbeda.
- Mendeteksi outlier: Dengan melihat area yang jauh dari puncak distribusi, kita dapat mengidentifikasi potensi outlier atau nilai yang jarang terjadi.
- Keuntungan menggunakan plot densitas dibandingkan histogram adalah plot densitas memberikan representasi yang lebih halus dan lebih mudah untuk dibandingkan antar distribusi dataset.
library(plotly)
# Membuat data normal dan tidak normal
set.seed(123)
x_normal <- rnorm(1000) # Data normal
x_non_normal <- rexp(1000) # Data tidak normal (eksponensial)
# Menghitung densitas data
density_normal <- density(x_normal)
density_non_normal <- density(x_non_normal)
# Membuat plot densitas untuk data normal dan tidak normal
plot_ly() %>%
add_trace(
x = density_normal$x,
y = density_normal$y,
type = "scatter",
mode = "lines",
name = "Data Normal",
line = list(color = 'blue', width = 2)
) %>% # Plot densitas untuk data normal
add_trace(
x = density_non_normal$x,
y = density_non_normal$y,
type = "scatter",
mode = "lines",
name = "Data Tidak Normal",
line = list(color = 'green', width = 2)
) %>% # Plot densitas untuk data tidak normal
layout(
title = "Plot Densitas untuk Data Normal dan Tidak Normal",
xaxis = list(title = "Nilai"),
yaxis = list(title = "Kepadatan")
)
6.7.3 Box Plot dan Penyebaran Data
Box plot (atau diagram kotak) adalah alat yang digunakan untuk menggambarkan penyebaran data berdasarkan lima nilai utama: minimum, kuartil pertama (Q1), median (Q2), kuartil ketiga (Q3), dan maksimum. Box plot memberikan gambaran visual tentang distribusi data, serta adanya outlier.
Komponen utama box plot:
- Kotak: Mewakili interkuartil range (IQR) antara Q1 dan Q3.
- Garis dalam kotak: Menunjukkan median data.
- Garis vertikal di luar kotak: Menunjukkan rentang data (minimum dan maksimum).
- Titik di luar garis vertikal: Menunjukkan outlier (nilai yang jauh dari distribusi utama data).
library(plotly)
# Membuat data normal dan tidak normal
set.seed(123)
x_normal <- rnorm(100) # Data normal
y_normal <- 2 * x_normal + rnorm(100)
x_non_normal <- rexp(100) # Data tidak normal (eksponensial)
y_non_normal <- 2 * x_non_normal + rnorm(100)
# Membuat boxplot untuk data normal dan tidak normal
plot_ly() %>%
add_trace(
y = y_normal,
type = "box",
name = "Data Normal",
boxmean = TRUE,
marker = list(color = 'blue')
) %>% # Boxplot untuk data normal
add_trace(
y = y_non_normal,
type = "box",
name = "Data Tidak Normal",
boxmean = TRUE,
marker = list(color = 'green')
) %>% # Boxplot untuk data tidak normal
layout(
title = "Box Plot untuk Data Normal dan Tidak Normal",
yaxis = list(title = "Nilai"),
xaxis = list(title = "Jenis Data")
)
Box plot sangat berguna untuk:
- Mengidentifikasi simetri distribusi data,
- Menilai penyebaran data,
- Menemukan outlier atau pencilan.
6.7.4 Scatter Plot & Variabilitas
Scatter plot adalah jenis grafik yang menunjukkan hubungan antara dua variabel numerik. Setiap titik dalam scatter plot mewakili pasangan nilai dari dua variabel tersebut. Scatter plot sangat berguna untuk mengidentifikasi pola hubungan, apakah ada korelasi antara variabel atau tidak.
Scatter plot membantu dalam:
- Mengidentifikasi jenis hubungan antara dua variabel (positif, negatif, atau tidak ada hubungan),
- Menilai variabilitas atau penyebaran data pada kedua variabel,
- Mendeteksi outlier yang dapat mempengaruhi hubungan antara variabel.
Dengan scatter plot, kita dapat melihat apakah data mengikuti pola linier, eksponensial, atau pola yang lebih kompleks, serta mengevaluasi tingkat variabilitas pada setiap variabel.
library(plotly)
# Membuat data normal dan tidak normal
set.seed(123)
x_normal <- rnorm(100) # Data normal
y_normal <- 2 * x_normal + rnorm(100)
x_non_normal <- rexp(100) # Data tidak normal (eksponensial)
y_non_normal <- 2 * x_non_normal + rnorm(100)
# Menghitung kuartil dan IQR untuk mendeteksi outlier (untuk kedua data)
Q1_normal <- quantile(y_normal, 0.25)
Q3_normal <- quantile(y_normal, 0.75)
IQR_normal <- Q3_normal - Q1_normal
Q1_non_normal <- quantile(y_non_normal, 0.25)
Q3_non_normal <- quantile(y_non_normal, 0.75)
IQR_non_normal <- Q3_non_normal - Q1_non_normal
# Menentukan batas atas dan bawah untuk outlier (untuk kedua data)
lower_bound_normal <- Q1_normal - 1.5 * IQR_normal
upper_bound_normal <- Q3_normal + 1.5 * IQR_normal
lower_bound_non_normal <- Q1_non_normal - 1.5 * IQR_non_normal
upper_bound_non_normal <- Q3_non_normal + 1.5 * IQR_non_normal
# Menandai outlier
outliers_normal <- which(y_normal < lower_bound_normal | y_normal > upper_bound_normal)
outliers_non_normal <- which(y_non_normal < lower_bound_non_normal | y_non_normal > upper_bound_non_normal)
# Membuat scatter plot untuk data normal dan tidak normal, dengan menandai outlier
plot_ly() %>%
add_trace(x = x_normal, y = y_normal, type = "scatter", mode = "markers", name = "Data Normal",
marker = list(color = 'blue', size = 7)) %>% # Data normal
add_trace(x = x_normal[outliers_normal], y = y_normal[outliers_normal], type = "scatter", mode = "markers",
name = "Outliers Normal",
marker = list(color = 'red', size = 10, symbol = 'x')) %>% # Outlier pada data normal
add_trace(x = x_non_normal, y = y_non_normal, type = "scatter", mode = "markers", name = "Data Tidak Normal",
marker = list(color = 'green', size = 7)) %>% # Data tidak normal
add_trace(x = x_non_normal[outliers_non_normal], y = y_non_normal[outliers_non_normal], type = "scatter", mode = "markers",
name = "Outliers Tidak Normal",
marker = list(color = 'orange', size = 10, symbol = 'x')) %>% # Outlier pada data tidak normal
layout(title = "Scatter Plot antara Data Normal dan Tidak Normal dengan Outliers",
xaxis = list(title = "x"),
yaxis = list(title = "y"))
6.8 Studi Kasus 1
Dalam kasus ini, kita akan menganalisis waktu yang diperlukan oleh dua jenis mesin untuk menyelesaikan satu siklus produksi. Mesin A memiliki distribusi waktu proses yang normal, sedangkan Mesin B memiliki distribusi waktu proses yang tidak normal (eksponensial). Tujuan analisis ini adalah untuk membandingkan distribusi waktu proses produksi antara kedua mesin menggunakan Histogram, Plot Densitas, dan Box Plot.
6.8.2 Histogram Waktu Proses Produksi
Histogram digunakan untuk memvisualisasikan distribusi data dengan membaginya dalam interval tertentu. Berikut adalah histogram waktu proses produksi untuk Mesin A dan Mesin B.
# Membuat Histogram untuk Mesin A dan Mesin B
plot_ly() %>%
add_trace(
x = mesin_A,
type = "histogram",
name = "Mesin A",
marker = list(color = 'blue', opacity = 0.7)
) %>% # Histogram untuk Mesin A
add_trace(
x = mesin_B,
type = "histogram",
name = "Mesin B",
marker = list(color = 'green', opacity = 0.7)
) %>% # Histogram untuk Mesin B
layout(
title = "Histogram Waktu Proses Produksi Mesin A dan Mesin B",
xaxis = list(title = "Waktu Proses (Menit)"),
yaxis = list(title = "Frekuensi"),
barmode = "overlay" # Menampilkan histogram secara tumpang tindih
)
6.8.3 Plot Densitas Waktu Proses Produksi
Plot densitas memberikan gambaran lebih halus tentang distribusi data dengan estimasi kepadatan kernel. Berikut adalah plot densitas untuk Mesin A dan Mesin B.
# Menghitung densitas untuk Mesin A dan Mesin B
densitas_A <- density(mesin_A)
densitas_B <- density(mesin_B)
# Membuat Plot Densitas untuk Mesin A dan Mesin B
plot_ly() %>%
add_trace(
x = densitas_A$x,
y = densitas_A$y,
type = "scatter",
mode = "lines",
name = "Mesin A",
line = list(color = 'blue', width = 2)
) %>% # Plot densitas untuk Mesin A
add_trace(
x = densitas_B$x,
y = densitas_B$y,
type = "scatter",
mode = "lines",
name = "Mesin B",
line = list(color = 'green', width = 2)
) %>% # Plot densitas untuk Mesin B
layout(
title = "Plot Densitas Waktu Proses Produksi Mesin A dan Mesin B",
xaxis = list(title = "Waktu Proses (Menit)"),
yaxis = list(title = "Kepadatan")
)
6.8.4 Box Plot Waktu Proses Produksi
Box plot digunakan untuk menggambarkan distribusi data dalam hal kuartil dan nilai pencilan (outlier). Berikut adalah box plot untuk waktu proses produksi Mesin A dan Mesin B.
# Membuat Box Plot untuk Mesin A dan Mesin B
plot_ly() %>%
add_trace(
y = mesin_A,
type = "box",
name = "Mesin A",
boxmean = TRUE,
marker = list(color = 'blue')
) %>% # Boxplot untuk Mesin A
add_trace(
y = mesin_B,
type = "box",
name = "Mesin B",
boxmean = TRUE,
marker = list(color = 'green')
) %>% # Boxplot untuk Mesin B
layout(
title = "Box Plot Waktu Proses Produksi Mesin A dan Mesin B",
yaxis = list(title = "Waktu Proses (Menit)"),
xaxis = list(title = "Jenis Mesin")
)
6.9 Studi Kasus 2
Sebuah perusahaan logistik mengelola pengiriman barang ke empat wilayah (Utara, Selatan, Timur, dan Barat). Perusahaan ingin menganalisis efisiensi berdasarkan waktu pengiriman, jumlah barang yang dikirim, dan biaya pengiriman. Data selama seminggu terakhir adalah sebagai berikut:
Wilayah | Waktu Pengiriman (jam) | Jumlah Barang (unit) | Biaya Pengiriman (Rp/unit) |
---|---|---|---|
Utara | 12, 14, 13, 16, 18 | 120, 110, 115, 130, 140 | 50,000, 55,000, 53,000, 52,000, 51,000 |
Selatan | 22, 20, 24, 25, 23 | 150, 140, 145, 155, 160 | 40,000, 42,000, 41,000, 43,000, 44,000 |
Timur | 10, 11, 12, 11, 10 | 80, 85, 83, 90, 88 | 60,000, 62,000, 61,000, 63,000, 64,000 |
Barat | 18, 19, 20, 22, 21 | 100, 95, 105, 110, 108 | 45,000, 47,000, 46,000, 48,000, 50,000 |
6.9.1 Data Pengiriman Barang
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ✔ readr 2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ plotly::filter() masks dplyr::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Data pengiriman barang
data <- data.frame(
Wilayah = rep(c("Utara", "Selatan", "Timur", "Barat"), each = 5),
Waktu_Pengiriman = c(12, 14, 13, 16, 18, 22, 20, 24, 25, 23, 10, 11, 12, 11, 10, 18, 19, 20, 22, 21),
Jumlah_Barang = c(120, 110, 115, 130, 140, 150, 140, 145, 155, 160, 80, 85, 83, 90, 88, 100, 95, 105, 110, 108),
Biaya_Per_Unit = c(50000, 55000, 53000, 52000, 51000, 40000, 42000, 41000, 43000, 44000, 60000, 62000, 61000, 63000, 64000, 45000, 47000, 46000, 48000, 50000)
)
6.9.2 Analisis Statistik
Rata-rata, median, dan simpangan baku untuk setiap wilayah:
stats <- data %>%
group_by(Wilayah) %>%
summarise(
Rata_Rata_Waktu = mean(Waktu_Pengiriman),
Median_Waktu = median(Waktu_Pengiriman),
SD_Waktu = sd(Waktu_Pengiriman),
Rata_Rata_Barang = mean(Jumlah_Barang),
Median_Barang = median(Jumlah_Barang),
SD_Barang = sd(Jumlah_Barang),
Rata_Rata_Biaya = mean(Biaya_Per_Unit),
Median_Biaya = median(Biaya_Per_Unit),
SD_Biaya = sd(Biaya_Per_Unit)
)
stats
## # A tibble: 4 × 10
## Wilayah Rata_Rata_Waktu Median_Waktu SD_Waktu Rata_Rata_Barang Median_Barang
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Barat 20 20 1.58 104. 105
## 2 Selatan 22.8 23 1.92 150 150
## 3 Timur 10.8 11 0.837 85.2 85
## 4 Utara 14.6 14 2.41 123 120
## # ℹ 4 more variables: SD_Barang <dbl>, Rata_Rata_Biaya <dbl>,
## # Median_Biaya <dbl>, SD_Biaya <dbl>
6.9.3 Efisiensi Pengiriman
Hitung total biaya pengiriman dan efisiensi biaya:
data <- data %>%
mutate(Biaya_Total = Jumlah_Barang * Biaya_Per_Unit)
efisiensi <- data %>%
group_by(Wilayah) %>%
summarise(
Total_Biaya = sum(Biaya_Total),
Efisiensi_Biaya = sum(Biaya_Total) / sum(Jumlah_Barang)
)
efisiensi
## # A tibble: 4 × 3
## Wilayah Total_Biaya Efisiensi_Biaya
## <chr> <dbl> <dbl>
## 1 Barat 24475000 47249.
## 2 Selatan 31530000 42040
## 3 Timur 26435000 62054.
## 4 Utara 32045000 52106.
Wilayah dengan efisiensi biaya terbaik adalah wilayah dengan Efisiensi_Biaya
terendah.
6.9.4 Persentase Pengiriman yang Melebihi Target
Hitung persentase pengiriman dengan waktu > 15 jam:
target <- data %>%
group_by(Wilayah) %>%
summarise(
Persentase_Lambat = mean(Waktu_Pengiriman > 15) * 100
)
target
## # A tibble: 4 × 2
## Wilayah Persentase_Lambat
## <chr> <dbl>
## 1 Barat 100
## 2 Selatan 100
## 3 Timur 0
## 4 Utara 40
6.10 Visualisasi Data
Scatter plot hubungan jumlah barang, waktu pengiriman, dan biaya pengiriman per unit:
library(plotly)
plot_3d <- plot_ly(
data,
x = ~Jumlah_Barang,
y = ~Waktu_Pengiriman,
z = ~Biaya_Per_Unit,
type = 'scatter3d',
mode = 'markers',
color = ~Wilayah,
size = ~Biaya_Per_Unit * 0.0001, # Memperbesar ukuran bubble
marker = list(
size = 10,
opacity = 1
),
text = ~paste(
"Wilayah:", Wilayah,
"<br>Waktu Pengiriman:", Waktu_Pengiriman, "jam",
"<br>Jumlah Barang:", Jumlah_Barang, "unit",
"<br>Biaya per Unit: Rp", Biaya_Per_Unit
)) %>%
layout(
title = "Analisis 3D Efisiensi Pengiriman Barang",
scene = list(
xaxis = list(
title = "Jumlah Barang",
titlefont = list(size = 12),
tickfont = list(size = 10)
),
yaxis = list(
title = "Pengiriman (jam)",
titlefont = list(size = 12),
tickfont = list(size = 10)
),
zaxis = list(
title = "Biaya (Rp)",
titlefont = list(size = 12),
tickfont = list(size = 10)
)
),
legend = list(
title = list(text = "Wilayah"),
bgcolor = "rgba(255, 255, 255, 0.5)",
bordercolor = "rgba(0, 0, 0, 0.5)",
borderwidth = 1
)
)
plot_3d
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.
6.11 Kesimpulan
Dari hasil analisis, kita dapat menyimpulkan bahwa:
- Mesin A memiliki distribusi waktu proses yang lebih simetris dengan sedikit pencilan, yang menunjukkan bahwa performa mesin lebih konsisten.
- Mesin B memiliki distribusi waktu proses yang lebih miring dan lebih banyak pencilan, yang mengindikasikan adanya variasi besar dalam waktu proses, dan mungkin dipengaruhi oleh faktor eksternal atau mesin yang tidak selalu berfungsi dengan optimal.
Dengan menggunakan histogram, plot densitas, dan box plot, kita dapat memvisualisasikan dan membandingkan distribusi waktu proses dari kedua mesin secara efektif.
6.12 Latihan 1
Sebuah perusahaan ingin memahami karakteristik penyebaran data hasil penjualan dari empat cabang (A, B, C, dan D) selama satu bulan terakhir. Data penjualan (dalam juta rupiah) dari keempat cabang tersebut adalah sebagai berikut:
- Cabang A: 50, 55, 60, 65, 70
- Cabang B: 40, 50, 60, 70, 80
- Cabang C: 30, 30, 35, 40, 45
- Cabang D: 70, 75, 80, 85, 90
- Hitunglah rata-rata, median, dan standar deviasi untuk masing-masing cabang.
- Cabang mana yang memiliki penyebaran data paling kecil? Jelaskan alasannya.
- Jika target penjualan minimum adalah 50 juta rupiah, cabang mana saja yang gagal mencapai target di semua datanya?
- Buatlah diagram kotak (box plot) untuk memvisualisasikan penyebaran data setiap cabang.
- Jika Anda adalah manajer perusahaan, bagaimana Anda akan menggunakan informasi ini untuk merencanakan strategi peningkatan penjualan?
6.13 Latihan 2
Perusahaan XYZ mengelola pengiriman barang ke berbagai wilayah dengan menggunakan berbagai jenis transportasi. Setiap pengiriman melibatkan biaya transportasi, waktu yang dibutuhkan, dan jumlah barang yang dikirim. Berikut adalah data terkait pengiriman barang berdasarkan wilayah dan jenis barang:
Wilayah | Jenis Barang | Jumlah Barang (unit) | Waktu Pengiriman (jam) | Biaya per Unit (Rp) |
---|---|---|---|---|
Utara | Elektronik | 200 | 5 | 15000 |
Selatan | Pakaian | 150 | 8 | 8000 |
Timur | Makanan | 180 | 6 | 10000 |
Barat | Peralatan | 120 | 7 | 12000 |
Tengah | Elektronik | 250 | 4 | 14000 |
Utara | Pakaian | 300 | 9 | 8500 |
Selatan | Makanan | 220 | 7 | 9500 |
Timur | Peralatan | 140 | 5 | 11000 |
Barat | Elektronik | 180 | 6 | 14500 |
Tengah | Pakaian | 350 | 8 | 7800 |
Utara | Peralatan | 170 | 4 | 12000 |
Selatan | Elektronik | 250 | 6 | 16000 |
Timur | Pakaian | 190 | 7 | 8200 |
Barat | Makanan | 130 | 5 | 10500 |
Tengah | Peralatan | 180 | 5 | 11500 |
Analisis Efisiensi Pengiriman:
- Visualisasikan pengiriman barang berdasarkan jumlah barang, waktu pengiriman, dan biaya per unit dengan menggunakan plot 3D.
- Tentukan wilayah mana yang memiliki efisiensi pengiriman terendah berdasarkan biaya per unit dan waktu pengiriman.
Rekomendasi Operasional:
- Berdasarkan hasil analisis, wilayah mana yang memerlukan perhatian khusus untuk meningkatkan efisiensi pengiriman?
- Apa rekomendasi untuk mengurangi biaya dan waktu pengiriman di wilayah tersebut?
Kinerja Berdasarkan Jenis Barang:
Analisis kinerja pengiriman berdasarkan jenis barang dan wilayah. Mana yang memiliki waktu pengiriman lebih cepat dan biaya per unit lebih rendah?