Implementasi Decision Tree Untuk Penjurusan Siswa SMA Menggunakan Matlab
Table of Contents
Nyatanya, metode ini banyak diaplikasikan dalam berbagai bidang, antara lain kesehatan, financial, astronomi hingga pendidikan. Ataupun bidang-bidang lain yang saya sendiri belum pernah tahu. Kajian teori dari decision tree tidak saya bahas, karena saya yakin diluar sana sudah banyak yan membahasnya. Saya akan langsung membahas dalam bentuk implementasi nyata dalam sebuah studi kasus. Studi kasus yang saya angkat adalah Penjurusan Siswa SMA.
Mengapa Cuma 10 data? Karena ini sekadar data sempel, tentu saja dapat teman-teman kembangkan menjadi data yang berjumlah besar. Memang dalam berbagai literatur, aplikasi data mining haruslah memiliki data pendukung yang banyak, minimal diatas 100 record.
Dari data sempel diatas, Bagaimana kita menentukan kriteria nilai minimal untuk penjurusan IPA, IPS dan bahasa? Ikuti langkah-langkah berikut untuk membentuk sebuah pohon keputusan melalui data sempel.
Tujuan dari kode diatas adalah, untuk mensimulasikan bentuk decision tree GUI yang telah tersedia pada matlab, sehingga tinggal kita panggil fungsi bawaan untuk decision tree, yaitu classregtree. ketika program di run, maka simulasi decision tree seperti berikut :
Sekarang, saatnya kita membuat decision tree sebagai system pendukung keputusan untuk penjurusan siswa Sekolah Menengah Atas (SMA), mengapa aplikasi ini diperlukan? Penjurusan siswa SMA merupakan kewajiban wali kelas untuk menentukan jurusan apa yang tepat bagi siswa-siswa didiknya pada tingkat SMA, penjurusan dilakukan ketika memasuki jenjang akhir semester II atau semester genap kelas X. Pastinya, penentuan penjurusan didasarkan atas 3 nilai utama dari raport, yaitu nilai IPA, IPS dan Bahasa.
Seorang wali kelas bias saja menentukan penjurusan berdasarkan nilai tertinggi dari ketiga nilai. Namun, apa jadinya jika nilai IPA yang diberikan guru IPA terlalu ketat? akibatnya siswa yang masuk jurusan IPA pasti lebih sedikit. Bagaimana solusinya? Kita akan mengacu pada sebuah data penjurusan siswa SMA yang tidak berdasarkan nilai tertinggi, data ini kita sebut dengan data training. Data training biasanya didapatkan melalui hasil penjurusan tahun lalu, ataupun contoh dari sekolah lain. Data Training saya rangkum dalam sebuah excel :
Dari data sempel diatas, Bagaimana kita menentukan kriteria nilai minimal untuk penjurusan IPA, IPS dan bahasa? Ikuti langkah-langkah berikut untuk membentuk sebuah pohon keputusan melalui data sempel.
- Buka notepad teman-teman, copy data dari excel mulai dari 2C hingga 11E, paste pada notepad. Selanjutnya buka Matlab dan buatlah sebuah folder khusus sebagai penyimpanan (directory) file-file terkait. Simpan file notepad ini dengan nama data.dat.
- Lakukan hal yang sama pada data jurusan, simpan dengan nama jurusan.dat, jangan lupa untuk menambahkan petik satu ('), karena data berupa string.
- Lanjutkan dengan membuat project baru pada Matlab, ketikkan kode berikut :
clear load data.dat data jurusan = ['IPA' 'IPS' 'BHS' 'IPA' 'BHS' 'IPS' 'IPA' 'IPS' 'BHS' 'IPA'] varnames = {'nilai ipa' 'nilai ips' 'nilai bahasa'} t = classregtree(data,jurusan,'splitmin',5,'names',varnames) ; view(t)
Melalui data training, matlab secara otomatis bisa mensimulasikan kriteria minimal setiap bidang penjurusan, yaitu IPA minimal adalah 7.25, nilai IPS sebesar 7.75, dan ketika tidak memenuhi semua kriteria, akan masuk jurusan bahasa.
Dengan kriteria inilah kita akan menetapkan standar untuk penentuan penjurusan siswa SMA sesuai kebutuhan.
Sekarang, kita buat aplikasi penjurusan siswa SMA dengan Matlab berbasis GUI. Kita buat aplikasi GUInya terlebih dahulu,
Berikut kode yang saya gunakan, ketika tombol Penjurusan di klik :
ipa = str2double(get(handles.ipa,'String')) ; ips = str2double(get(handles.ips,'String')) ; bahasa = str2double(get(handles.bhs,'String')) ; if ipa > 7.25 set(handles.hasil,'String','IPA'); else if ips > 7.75 set(handles.hasil,'String','IPS') ; else set(handles.hasil,'String','Bahasa'); end end
Inti dari source code yang terpenting adalah bagian decision, yang kriterianya diambil dari simulasi matlab, yaitu angka 7.25 untuk IPA dan 7.75 untuk IPS.
Kita akan uji kinerja programnya..
Kita akan uji kinerja programnya..
Ketika input nilai IPA, IPS dan Bahasa, program dapat mengambil keputusan sesuai dengan kriteria yang telah ditetapkan.
Maka, dapat saya simpulkan bahwa metode decision tree terbukti efektif dalam penyelesaikan kasus-kasus yang membutuhkan sebuah keputusan. Ditambah lagi dengan kemudahan dalam pembuatan algoritmanya membuat metode ini amat mudah untuk diterapkan dalam berbagai bidang secara meluas sesuai dengan kebutuhan. Oleh karenanya program sistem pendukung keputusan penentuan penjurusan SMA dapat dikatakan sukses dengan menggunakan metode Decision Tree.
Akhir kata, semoga aplikasi sederhana ini dapat memberikan manfaat dan referensi bagi teman-teman yang ingin mengetahui implementasi nyata dari metode Decision Tree sebagai salah satu metode data mining.
=== Update ===
Karena banyaknya permintaan file aplikasi Decision Tree oleh teman-teman yang membutuhkan, maka akan saya share disini juga, biar bisa pada download. Decision Tree
Salam hangat
Minimal size for parent node must be greater or equal to 1.
Error in ==> classregtree.classregtree>classregtree.classregtree at
134
a = treefit(a,x,y,varargin{:}); % calls local
version of treefit
Error in ==> run at 18
t = classregtree(data,jurusan,'splitmin',0,'names',varnames);