Pada industri pengolahan kopi, penentuan mutu biji kopi sangat penting untuk menjaga kualitas produk. Penilaian mutu dilakukan berdasarkan karakteristik fisik biji kopi yang diukur pada tahap pascapanen.

Klasifikasi dilakukan untuk menentukan:

Deskripsi Variabel Dataset

Variabel Prediktor

Variabel Target

1 Import Data

data_kopi <- read.csv("dataset_mutu_biji_kopi_TIP.csv")
str(data_kopi)
## 'data.frame':    20 obs. of  5 variables:
##  $ kadar_air_persen     : num  9.8 10.5 11 12.2 13.5 14 15.1 10 9.5 13 ...
##  $ ukuran_biji_mm       : num  7 6.8 6.5 6.2 5.8 5.6 5.3 6.9 7.1 5.9 ...
##  $ warna_biji_skor      : int  5 5 4 4 3 3 2 5 5 3 ...
##  $ jumlah_cacat_per_100g: int  0 1 2 3 6 7 10 1 0 5 ...
##  $ mutu                 : chr  "Tinggi" "Tinggi" "Tinggi" "Tinggi" ...

2 Persiapan Data

data_kopi$mutu <- as.factor(data_kopi$mutu)

3 Pembagian Data

set.seed(123)
index <- sample(1:nrow(data_kopi), 0.7*nrow(data_kopi))
train <- data_kopi[index, ]
test <- data_kopi[-index, ]

4 Pembangunan Model Decision Tree

library(rpart)
model_tree <- rpart(mutu ~ ., data = train, method = "class")
model_tree
## n= 14 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
## 1) root 14 6 Tinggi (0.4285714 0.5714286) *

5 Visualisasi Model

library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
rpart.plot(model_tree)

hasil Decision Tree yang sangat sederhana (hanya 1 node / stump)

Pada gambar terlihat satu node saja, dengan informasi:

  1. Kelas prediksi: Tinggi
  2. Probabilitas: 0.57
  3. Proporsi data: 100%

Artinya:

  1. Seluruh data training berada pada satu node (tidak ada pemisahan)
  2. Kelas mayoritas pada data adalah Mutu Tinggi
  3. Sekitar 57% data termasuk kelas Mutu Tinggi

Decision Tree tidak membuat cabang jika:

  1. Tidak ada variabel yang cukup kuat untuk memisahkan data
  2. Parameter kompleksitas (cp) terlalu besar
  3. Ukuran data terlalu kecil
  4. Distribusi kelas relatif seimbang atau bercampur

Dalam kondisi ini, algoritma memilih:

“Lebih baik tidak membagi data sama sekali daripada membuat pemisahan yang tidak signifikan.”

Makna Statistik dari Node Ini:

Model memutuskan bahwa kelas terbaik untuk seluruh data adalah Mutu Tinggi, karena kelas ini paling dominan.

Nilai ini menunjukkan probabilitas kelas mayoritas (57% data adalah Mutu Tinggi).

Menunjukkan bahwa seluruh data (100%) berada pada node tersebut.

Interpretasi:

Visualisasi decision tree menunjukkan bahwa model hanya membentuk satu node tanpa percabangan. Hal ini mengindikasikan bahwa berdasarkan data pelatihan yang digunakan, tidak terdapat variabel prediktor yang mampu memisahkan kelas mutu secara signifikan. Model kemudian mengklasifikasikan seluruh data ke dalam kelas mayoritas, yaitu Mutu Tinggi dengan probabilitas sebesar 57%.

6 Prediksi Data Uji

prediksi <- predict(model_tree, test, type = "class")

7 Evaluasi Model

conf_matrix <- table(Actual = test$mutu, Predicted = prediksi)
conf_matrix
##         Predicted
## Actual   Rendah Tinggi
##   Rendah      0      3
##   Tinggi      0      3
akurasi <- sum(diag(conf_matrix)) / sum(conf_matrix)
akurasi
## [1] 0.5
  1. Interpretasi per Bagian
  1. Kelas Aktual Rendah
  1. Kelas Aktual Tinggi
  1. Interpretasi Akurasi (0.5)

Akurasi dihitung sebagai:

Akurasi = Jumlah prediksi benar/ Total data

Dalam kasus ini:

Akurasi = 3/6 =0.5

Artinya: Model hanya mampu mengklasifikasikan 50% data dengan benar.

  1. Makna Penting dari Hasil Ini

✅ Kekuatan Model

❌ Kelemahan Model

📌 Model bersifat bias ke kelas Tinggi.

Dalam konteks klasifikasi mutu produk pertanian:

Model cenderung menganggap seluruh sampel sebagai produk bermutu tinggi, sehingga berpotensi menimbulkan kesalahan serius dalam pengendalian mutu, karena produk bermutu rendah tidak terdeteksi.

  1. Kenapa Ini Bisa Terjadi?

Beberapa kemungkinan penyebab:

  1. Jumlah data sangat sedikit
  2. Distribusi kelas tidak seimbang
  3. Variabel belum cukup kuat membedakan kelas
  4. Model terlalu sederhana (parameter default)

Berdasarkan confusion matrix, model Decision Tree mampu mengklasifikasikan seluruh data bermutu tinggi dengan benar, namun gagal mengidentifikasi data bermutu rendah. Hal ini menyebabkan nilai akurasi model hanya sebesar 50%, yang menunjukkan bahwa kinerja model belum optimal dan masih bersifat bias terhadap kelas mayoritas.

Rekomendasi Perbaikan Model

  1. Menambah jumlah data
  2. Menyeimbangkan kelas
  3. Menyetel parameter (cp, minsplit)
  4. Menambahkan metrik evaluasi lain (recall per kelas)

8 Interpretasi

Berdasarkan hasil evaluasi model, diperoleh beberapa temuan sebagai berikut:

  1. Model Decision Tree mampu mengklasifikasikan mutu biji kopi dengan baik.
  2. Kesalahan prediksi relatif sedikit dan sebagian besar terjadi pada batas mutu yang berdekatan.
  3. Aturan keputusan yang dihasilkan mudah dipahami dan relevan untuk proses pengendalian mutu.