C4.5

Decision Tree C4.5: Contoh Perhitungan Gain Ratio

Diterbitkan 24 September 2026

Metode C45

Decision Tree C4.5 adalah algoritma klasifikasi berbasis pohon keputusan yang mengembangkan konsep ID3. Pada setiap node, C4.5 menggunakan Gain Ratio untuk membantu memilih atribut pemisah.

Tutorial ini menggunakan contoh klasifikasi kelayakan kredit dengan atribut Penghasilan, Pekerjaan, Jaminan, dan Riwayat. Perhitungan dilakukan dari entropy, information gain, split information, gain ratio, pemilihan node, pembentukan pohon keputusan, hingga klasifikasi data baru.

Untuk mempelajari metode klasifikasi terkait, lihat juga algoritma ID3, Rough Set, dan metode Bayes.


Daftar Isi


Pengertian Decision Tree C4.5

C4.5 adalah algoritma klasifikasi berbasis decision tree. Algoritma ini memilih atribut pemisah menggunakan Gain Ratio, yaitu Information Gain yang disesuaikan dengan Split Information.

Secara umum:

Data Latih
↓
Hitung Entropy
↓
Hitung Information Gain
↓
Hitung Split Information
↓
Hitung Gain Ratio
↓
Pilih atribut terbaik
↓
Bentuk cabang
↓
Ulangi sampai menjadi leaf

C4.5 berhubungan erat dengan ID3. Pada artikel ini seluruh atribut dibuat kategorikal agar perhitungan manual mudah diikuti.


Rumus C4.5

Entropy

$$ Entropy(S)=-\sum_{i=1}^n p_i\log_2(p_i) $$

Information Gain

$$ Gain(S,A) = Entropy(S) - \sum_{v\in Values(A)} \frac{|S_v|}{|S|} Entropy(S_v) $$

Split Information

$$ SplitInfo(S,A) = -\sum_{v\in Values(A)} \frac{|S_v|}{|S|} \log_2 \left( \frac{|S_v|}{|S|} \right) $$

Gain Ratio

$$ GainRatio(S,A) = \frac{Gain(S,A)}{SplitInfo(S,A)} $$

Atribut dengan Gain Ratio terbaik dipilih sebagai node pada contoh ini.


#01 Data Latih

Contoh menggunakan 12 data latih dengan target Kelayakan.

No Penghasilan Pekerjaan Jaminan Riwayat Kelayakan
1 Rendah Kontrak Tidak Buruk Tidak Layak
2 Rendah Usaha Tidak Baik Tidak Layak
3 Sedang Kontrak Ada Baik Layak
4 Sedang Tetap Ada Baik Layak
5 Tinggi Tetap Ada Baik Layak
6 Tinggi Usaha Ada Baik Layak
7 Sedang Usaha Tidak Buruk Tidak Layak
8 Tinggi Kontrak Tidak Baik Layak
9 Rendah Tetap Ada Baik Layak
10 Sedang Kontrak Tidak Baik Tidak Layak
11 Tinggi Tetap Tidak Buruk Tidak Layak
12 Rendah Usaha Ada Baik Layak

Jumlah kelas:

Layak       = 7
Tidak Layak = 5
Total       = 12

#02 Menghitung Entropy Total

Proporsi kelas:

$$ p(Layak)=\frac{7}{12} $$
$$ p(Tidak\ Layak)=\frac{5}{12} $$

Maka:

$$ Entropy(S) = -\frac{7}{12}\log_2\left(\frac{7}{12}\right) -\frac{5}{12}\log_2\left(\frac{5}{12}\right) $$
$$ \boxed{Entropy(S)=0.9799} $$

#03 Menghitung Gain Ratio Setiap Atribut

Sebelum melihat tabel ringkasan, berikut contoh lengkap atribut Jaminan.

Perhitungan Atribut Jaminan pada Root

Nilai Jumlah Layak Tidak Layak Entropy
Tidak 6 1 5 0.6500
Ada 6 6 0 -0.0000

Entropy setelah split:

$$ E(Jaminan) = \frac{6}{12}(0.6500) + \frac{6}{12}(0) = 0.3250 $$

Information Gain:

$$ Gain(S,Jaminan) = 0.9799 - 0.3250 = 0.6549 $$

Split Information:

$$ SplitInfo(S,Jaminan)=1.0000 $$

Gain Ratio:

$$ GainRatio(S,Jaminan) = \frac{0.6549}{1.0000} = 0.6549 $$

Perbandingan seluruh atribut:

Atribut Entropy Setelah Split Gain Split Info Gain Ratio
Penghasilan 0.9371 0.0428 1.5850 0.0270
Pekerjaan 0.9371 0.0428 1.5850 0.0270
Jaminan 0.3250 0.6549 1.0000 0.6549
Riwayat 0.5732 0.4067 0.8113 0.5013

Nilai Gain Ratio terbesar adalah Jaminan = 0.6549.


#04 Menentukan Root Node

Berdasarkan hasil di atas:

Jaminan
├── Ada
└── Tidak

Cabang Jaminan = Ada terdiri dari 6 data dan semuanya berkelas Layak, sehingga langsung menjadi leaf.

Cabang Jaminan = Tidak terdiri dari 6 data dengan:

Layak       = 1
Tidak Layak = 5

Karena kelasnya masih bercampur, cabang ini harus dihitung kembali.

Pohon sementara:

Jaminan
├── Ada   → Layak
└── Tidak → dihitung lagi

#05 Menghitung Cabang Jaminan = Tidak

Entropy cabang:

$$ Entropy(Jaminan=Tidak) = 0.6500 $$

Atribut yang tersisa:

Penghasilan
Pekerjaan
Riwayat

Perhitungan Atribut Penghasilan pada Jaminan = Tidak

Nilai Jumlah Layak Tidak Layak Entropy
Rendah 2 0 2 -0.0000
Sedang 2 0 2 -0.0000
Tinggi 2 1 1 1.0000

Gain Ratio Penghasilan:

$$ \boxed{0.1998} $$

Perhitungan Atribut Pekerjaan pada Jaminan = Tidak

Nilai Jumlah Layak Tidak Layak Entropy
Kontrak 3 1 2 0.9183
Usaha 2 0 2 -0.0000
Tetap 1 0 1 -0.0000

Gain Ratio Pekerjaan:

$$ \boxed{0.1308} $$

Perhitungan Atribut Riwayat pada Jaminan = Tidak

Nilai Jumlah Layak Tidak Layak Entropy
Buruk 3 0 3 -0.0000
Baik 3 1 2 0.9183

Gain Ratio Riwayat:

$$ \boxed{0.1909} $$

Perbandingan:

Atribut Entropy Setelah Split Gain Split Info Gain Ratio
Penghasilan 0.3333 0.3167 1.5850 0.1998
Pekerjaan 0.4591 0.1909 1.4591 0.1308
Riwayat 0.4591 0.1909 1.0000 0.1909

Gain Ratio terbesar pada cabang ini adalah Penghasilan = 0.1998.

Pohon sementara:

Jaminan
├── Ada → Layak
└── Tidak
    └── Penghasilan
        ├── Rendah → Tidak Layak
        ├── Sedang → Tidak Layak
        └── Tinggi → dihitung lagi

#06 Menghitung Cabang Penghasilan = Tinggi

Pada jalur:

Jaminan = Tidak
Penghasilan = Tinggi

terdapat 2 data:

Layak       = 1
Tidak Layak = 1

Entropy:

$$ Entropy=1 $$

Atribut tersisa adalah Pekerjaan dan Riwayat.

Perhitungan Atribut Pekerjaan pada Penghasilan = Tinggi

Nilai Jumlah Layak Tidak Layak Entropy
Kontrak 1 1 0 -0.0000
Tetap 1 0 1 -0.0000

Gain Ratio:

$$ \boxed{GainRatio(Pekerjaan)=1.0000} $$

Perhitungan Atribut Riwayat pada Penghasilan = Tinggi

Nilai Jumlah Layak Tidak Layak Entropy
Baik 1 1 0 -0.0000
Buruk 1 0 1 -0.0000

Gain Ratio:

$$ \boxed{GainRatio(Riwayat)=1.0000} $$

Kedua atribut menghasilkan Gain Ratio yang sama, yaitu 1.0000. Pada implementasi sumber artikel, atribut diproses sesuai urutan atribut yang tersedia sehingga Pekerjaan dipilih lebih dahulu pada kondisi tie ini.

Cabang menjadi:

Pekerjaan
├── Kontrak → Layak
└── Tetap   → Tidak Layak

Dengan nama heading yang diberi konteks seperti di atas, heading “Perhitungan Atribut Pekerjaan” tidak lagi muncul secara identik lebih dari sekali.


#07 Pohon Keputusan Akhir

Pohon keputusan yang terbentuk:

Jaminan
├── Ada
│   └── Layak
│
└── Tidak
    └── Penghasilan
        ├── Rendah
        │   └── Tidak Layak
        ├── Sedang
        │   └── Tidak Layak
        └── Tinggi
            └── Pekerjaan
                ├── Kontrak
                │   └── Layak
                └── Tetap
                    └── Tidak Layak

Setiap jalur dari root ke leaf dapat dibaca sebagai rule IF-THEN.

Contoh:

IF Jaminan = Ada
THEN Kelayakan = Layak

dan:

IF Jaminan = Tidak
AND Penghasilan = Tinggi
AND Pekerjaan = Kontrak
THEN Kelayakan = Layak

#08 Klasifikasi Data Uji

Data uji:

Atribut Nilai
Penghasilan Tinggi
Pekerjaan Kontrak
Jaminan Tidak
Riwayat Baik

Penelusuran pohon:

Jaminan = Tidak
↓
Penghasilan = Tinggi
↓
Pekerjaan = Kontrak
↓
Layak

Hasil klasifikasi:

$$ \boxed{Layak} $$

Kelebihan dan Kekurangan

Kelebihan

  • Menghasilkan pohon keputusan yang mudah dibaca.
  • Menggunakan Gain Ratio untuk pemilihan atribut.
  • Dapat diterjemahkan menjadi rule IF-THEN.
  • C4.5 mendukung atribut kontinu melalui proses penentuan threshold.

Kekurangan

  • Pohon dapat menjadi kompleks ketika atribut dan data bertambah banyak.
  • Hasil dipengaruhi data latih.
  • Perhitungan manual menjadi panjang jika banyak atribut dan cabang.
  • Implementasi perlu menangani kondisi tie dan data yang tidak muncul pada data latih secara konsisten.

Sebagai perbandingan algoritma pohon keputusan yang lebih dasar, lihat ID3. Untuk metode klasifikasi berbasis aturan/data lain, Anda dapat mempelajari Rough Set dan Bayes.


Ringkasan

Entropy total:

0.9799

Gain Ratio root terbesar:

Jaminan = 0.6549

Pada cabang:

Jaminan = Tidak

atribut berikutnya adalah:

Penghasilan

Pada cabang:

Jaminan = Tidak
Penghasilan = Tinggi

Pekerjaan dan Riwayat sama-sama memiliki Gain Ratio 1.0000. Implementasi contoh memilih Pekerjaan berdasarkan urutan atribut.

Pohon akhir menghasilkan klasifikasi data uji:

Layak

FAQ C4.5

Apa perbedaan ID3 dan C4.5?

Pada sumber artikel ini, ID3 dijelaskan menggunakan Information Gain, sedangkan C4.5 menggunakan Gain Ratio dalam pemilihan atribut.

Apa fungsi entropy?

Entropy mengukur tingkat ketidakmurnian kelas pada sekumpulan data.

Apa fungsi Information Gain?

Information Gain mengukur pengurangan entropy setelah data dibagi berdasarkan atribut.

Mengapa menggunakan Split Information?

Split Information digunakan sebagai penyebut pada Gain Ratio untuk menyesuaikan nilai Information Gain.

Apa yang dipilih sebagai root pada contoh?

Atribut Jaminan karena memiliki Gain Ratio terbesar pada dataset contoh.

Mengapa heading Pekerjaan sekarang berbeda?

Karena atribut Pekerjaan dihitung pada lebih dari satu node. Heading diberi konteks cabang agar tidak identik dan daftar isi tidak membingungkan.

Apakah C4.5 dapat menggunakan data numerik?

Ya. C4.5 dapat menangani atribut kontinu dengan menentukan titik pemisah atau threshold. Contoh artikel ini menggunakan data kategorikal agar perhitungan manual lebih mudah.


Referensi

  1. Quinlan, J. R. (1993). C4.5: Programs for Machine Learning. Morgan Kaufmann.
  2. Han, J., Kamber, M., & Pei, J. (2012). Data Mining: Concepts and Techniques, 3rd Edition. Morgan Kaufmann.

Source Code C4.5

Berikut source code yang menggunakan algoritma Decision Tree C4.5 pada RumahSourceCode.

Ada yang Ditanyakan?

Jika masih ada kesulitan atau kekeliruan tentang metode di atas, silakan hubungi kami melalui halaman Kontak.

Perhitungan Excel tersedia melalui halaman Download, sedangkan aplikasi terkait dapat dilihat pada halaman Daftar Source Code.

Donasi digunakan untuk biaya server dan mendukung pembuatan tutorial metode atau algoritma lainnya.

Komentar

Belum ada komentar.

Tulis Komentar

Komentar pengunjung diperiksa sebelum ditampilkan.