Pengendalian Proses Statistik: Fondasi Mutu
Diagram kendali adalah landasan pengendalian proses statistik (SPC), menggunakan simpangan baku untuk memantau stabilitas proses dari waktu ke waktu. Dikembangkan oleh Walter Shewhart di Bell Labs pada tahun 1920-an, alat-alat kuat ini membedakan antara variasi penyebab umum (melekat pada proses) dan variasi penyebab khusus (menunjukkan masalah yang memerlukan perhatian).
Keunggulan diagram kendali terletak pada kesederhanaannya: plot pengukuran Anda dari waktu ke waktu, tambahkan batas kendali berdasarkan simpangan baku, dan perhatikan titik atau pola yang menandakan masalah. Pemantauan real-time ini mencegah cacat sebelum terjadi, alih-alih menangkapnya melalui inspeksi setelahnya.
Manufaktur modern, layanan kesehatan, dan industri jasa mengandalkan diagram kendali untuk menjaga mutu. Dari fabrikasi semikonduktor yang memerlukan presisi nanometer hingga tingkat infeksi rumah sakit, SPC menyediakan kerangka kerja universal untuk peningkatan proses.
Penyebab Umum vs Khusus
Jenis Diagram Kendali
Jenis data yang berbeda memerlukan diagram kendali yang berbeda. Memilih diagram yang tepat memastikan pemantauan proses yang akurat:
| Jenis Diagram | Tipe Data | Kasus Penggunaan |
|---|---|---|
| X̄-R (X-bar dan Rentang) | Kontinu, subkelompok n≤10 | Pengukuran manufaktur |
| X̄-S (X-bar dan Simp. Baku) | Kontinu, subkelompok n>10 | Pengambilan sampel batch besar |
| I-MR (Individual-Moving Range) | Pengukuran individual | Pengujian mahal/destruktif |
| p-chart | Proporsi cacat | Inspeksi lolos/gagal |
| c-chart | Jumlah cacat | Cacat per unit |
Untuk data kontinu (pengukuran seperti panjang, berat, suhu), diagram X̄-R paling umum. Anda mengumpulkan subkelompok sampel, memplot rata-rata (X̄) pada satu diagram dan rentang (R) pada diagram lain. Bersama-sama, mereka memantau baik pemusatan maupun variabilitas proses.
Menghitung Batas Kendali
Batas kendali menentukan batas variasi yang diharapkan. Mereka ditetapkan pada ±3 simpangan baku dari garis pusat, menangkap 99,73% titik ketika proses terkendali:
Batas Kendali
Untuk diagram X̄ menggunakan metode rentang, rumusnya menjadi:
Batas Diagram X-bar
Di mana X̿ adalah grand mean, R̄ adalah rata-rata rentang, dan A₂ adalah konstanta tergantung ukuran subkelompok (misal, A₂ = 0,577 untuk n=5).
Batas Kendali ≠ Batas Spesifikasi
Konstanta Batas Kendali
| n | A₂ | D₃ | D₄ |
|---|---|---|---|
| 2 | 1,880 | 0 | 3,267 |
| 3 | 1,023 | 0 | 2,574 |
| 4 | 0,729 | 0 | 2,282 |
| 5 | 0,577 | 0 | 2,114 |
Aturan Western Electric untuk Mendeteksi Masalah
Satu titik di luar batas kendali bukan satu-satunya sinyal masalah. Aturan Western Electric mendeteksi pola yang lebih halus dengan membagi diagram menjadi zona berdasarkan simpangan baku:
- Zona C:Dalam 1σ dari garis pusat
- Zona B:Antara 1σ dan 2σ dari pusat
- Zona A:Antara 2σ dan 3σ dari pusat
Empat Aturan Utama
Aturan 1: Titik Tunggal
Aturan 2: Deretan 9
Aturan 3: Tren 6
Aturan 4: Pola Zona
Mengenali Pola Umum
Praktisi berpengalaman belajar mengenali pola visual yang menunjukkan masalah spesifik:
| Pola | Tampilan | Kemungkinan Penyebab |
|---|---|---|
| Pergeseran | Perubahan level mendadak | Operator baru, batch material, penyesuaian peralatan |
| Tren | Pergeseran bertahap naik/turun | Keausan alat, pergeseran suhu, kelelahan |
| Siklus | Pola naik/turun berulang | Pergantian shift, siklus lingkungan, jadwal rotasi |
| Pengelompokan | Titik berkumpul dekat pusat | Batas tidak tepat, data dibulatkan/diedit |
| Stratifikasi | Titik menghindari pusat | Aliran campuran, beberapa mesin |
Implementasi Python
Buat diagram kendali X̄-R dengan pemeriksaan aturan otomatis:
import numpy as np
import matplotlib.pyplot as plt
def create_xbar_chart(data, subgroup_size=5):
"""Create X-bar control chart with control limits."""
# Reshape data into subgroups
n_subgroups = len(data) // subgroup_size
subgroups = data[:n_subgroups * subgroup_size].reshape(n_subgroups, subgroup_size)
# Calculate subgroup means and ranges
xbar = subgroups.mean(axis=1)
R = subgroups.max(axis=1) - subgroups.min(axis=1)
# Control chart constants (for n=5)
A2 = 0.577
D3, D4 = 0, 2.114
# Calculate control limits
xbar_bar = xbar.mean()
R_bar = R.mean()
UCL = xbar_bar + A2 * R_bar
LCL = xbar_bar - A2 * R_bar
# Check for out-of-control points
ooc = (xbar > UCL) | (xbar < LCL)
# Plot
plt.figure(figsize=(12, 5))
plt.plot(xbar, 'b-o', markersize=4)
plt.axhline(xbar_bar, color='g', linestyle='-', label='CL')
plt.axhline(UCL, color='r', linestyle='--', label='UCL')
plt.axhline(LCL, color='r', linestyle='--', label='LCL')
plt.scatter(np.where(ooc)[0], xbar[ooc], color='red', s=100, zorder=5)
plt.xlabel('Subgroup')
plt.ylabel('X-bar')
plt.title('X-bar Control Chart')
plt.legend()
plt.show()
return {'xbar': xbar, 'UCL': UCL, 'LCL': LCL, 'ooc': ooc}
# Example: Monitor a manufacturing process
np.random.seed(42)
# Simulate 100 measurements (20 subgroups of 5)
measurements = np.random.normal(100, 2, 100)
# Add a shift at subgroup 15
measurements[75:] += 3
result = create_xbar_chart(measurements)