PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PENGELOMPOKAN PERAN PEMAIN DOTA 2 DALAM PERTANDINGAN PROFESIONAL DENGAN METODE AGGLOMERATIVE HIERARCHICAL CLUSTERING
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika.
DISUSUN OLEH :
Bondan Yudha Pratomo 125314137
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
CLUSTERING ROLE PLAYER DOTA 2 IN A PROFESSIONAL MATCH WITH AGGLOMERATIVE HIERARCHICAL CLUSTERING METHODE
A Thesis
Presented as Partial Fulfillment of The Requirements To Obtain the Sarjana Komputer Degree In Informatics Engineering Study Program
By : Bondan Yudha Pratomo 125314137
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN
“Tetaplah bersyukur dengan apa yang sudah kita miliki , mengeluh hanya akan menambah beban dari masalah itu sendiri “
Karya ini saya persembahkan kepada : Tuhan Yesus Kristus Keluarga tercinta, Pacar tercinta, Dosen serta para sahabat dan teman-teman Terima Kasih sudah memberikan semangat !
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
DOTA 2 adalah permainan strategi dimana kita harus bekerja sama dengan pemain yang ada dalam satu tim untuk mengalahkan
tim lawan. DOTA 2
merupakan versi terbaru dari DOTA yang dulunya merupakan satu kesatuan dengan WARCRAFT III.Dalam pertandingan DOTA 2 akan menghasilkan sebuah data dimana data ini akan dikelompokan dengan menggunakan Agglomerative Hierarchical Clustering dengan menggunakan 3 Metode yaitu
single-
linkage,complete-linkage dan average-linkage . Transformasi Min-Max menjadi yang tertinggi dalam menentukan akurasi dengan 93% karena metode ini mampu melakukan normalisasi hanya pada atribut tertentu tidak semua atribut dimana data pertandingan DOTA 2 ini memiliki 1 atribut yaitu DAMAGE yang harus dinormalisasikan terlebih dahulu karena dapat merusak hasil akurasi,sedangkan menggunakan data asli dan Zscore akurasi yang dihasilkan belum tinggi karena terganggu oleh atribut DAMAGE.Penggunaan PCA(Principal Component Analysis) juga belum mampu menghasilkan akurasi tinggi dikarenakan ada atribut penting yang terpotong. Dari 3 metode single-linkage,complete-linkage dan average-linkage , complete-linkage dan average-linkage menjadi metode dengan rata-rata akurasi tertinggi dan single-linkage menghasilkan rata-rata terendah.
Kata kunci : pengelompokan peran pertandingan
DOTA 2, Agglomerative
Hierarchical Clustering, single-linkage,complete-linkage dan average-linkage
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT DOTA 2 is a strategy game in which we must work closely with the existing players in the team to defeat the opposing team. DOTA 2 is the latest version of DOTA which used to be an integral part of the game Warcraft III. The outcome of the match DOTA 2 will produce a data on which this data will be grouped by using Agglomerative Hierarchical Clustering by using three methods, namely single-linkage, complete linkage and average-linkage , Transformation Min-Max to be the highest in determining the accuracy by 93% because this method is able to normalize only on certain attributes are not all attributes where data matches DOTA 2 has one attribute that is DAMAGE that should be normalized in advance because it can decrease the accuracy results, while using Zscore and original data the resulting accuracy is not high because the attributes DAMAGE.Using data reduction by PCA (Principal Component Analysis) also has not been able to produce a high accuracy because there are important attributes are truncated. Of the three methods of single-linkage, complete linkage and averagelinkage, complete linkage and average linkage being a method to the average of the highest accuracy and single-linkage produces the lowest average.
Keywords: Grouping the role of game DOTA 2, Agglomerative Hierarchical Clustering, single linkage, complete linkage and average-linkage
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala rahmat dan berkat yang telah diberikan sehingga penulis dapat menyelesaikan tugas akhir yang berjudul “ Pengelompokan Peran Pemain DOTA 2 Pertandingan International dengan Pendekatan Agglomerative Clustering” sebagai salah satu syarat memperoleh gelar sarjana pada program studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta Dalam penulisan karya ilmiah ini penulis juga tidak lupa mengucapkan terima kasih kepada pihak-pihak yang telah membantu dan juga memberi semangat dalam pengerjaan karya ini.Ucapan terima kasih penulis ucapkan kepada :
1. Tuhan Yesus Kristus yang selalu memberikan berkat serta karunia-Nya
yang melimpah dalam mengerjakan karya ini.
2. Keluarga, Bapak Yohanes Basuki , Ibu Mimin Purwanti , dan adik Yos Rio Puraga ,Kornael Damar Kusuma yang telah memberikan semangat yang sangat membantu penulis dalam pengerjaan,doa ,dan dukungan berupa material dan nonmaterial. 3. Romo Dr.Cyprianus Kuntoro Adi, S.J. M.A., M.Sc. selaku dosen pembimbing yang dengan sabar memberikan bimbingan dan pengarahan yang terbaik dalam pengerjaan tugas akhir ini. 4. Vita Deovita Karlina yang selalu memberikan waktunya untuk menyemangati ,memberikan motivasi,semangat ,bantuan dan menjadi penghibur dikala pengerjaan tugas akhir ini menemui masalah. 5. Para sahabat Aloysius Tri Sulistio Putranto,Stephanus Nico Thomas,Dian Medhita
Saktian
yang
selalu
Tobias,Pius
Juan
memberikan
Pratama,Adhitia
waktunya
dalam
menghibur,memberikan motivasi serta memberikan semangat dalam pengerjaan.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6. Seluruh teman-teman semua yang banyak membantu dalam memberikan motivasi ,ilmu,semangat dan juga penghibur dalam pengerjaan tugas akhir ini.
Penulis menyadari masih banyak kekurangan dalam penulisan tugas akhir ini .Kritik dan saran akan yang membangun diharapkan akan memperbaiki penelitian ini di masa yang akan mendatang.semoga informasi pada penulisan tugas akhir ini bermanfaat bagi pembaca.
Yogyakarta,
Februari 2017
Bondan Yudha Pratomo
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL................................................................................................ i HALAMAN JUDUL (INGGRIS) ........................................................................... ii HALAMAN PERSETUJUAN SKRIPSI ............................................................... iii HALAMAN PENGESAHAN SKRIPSI ............................................................... iv HALAMAN PERSEMBAHAN ............................................................................. v PERNYATAAN KEASLIAN KARYA ................................................................ vi LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ............................................................................ vii ABSTRAK ........................................................................................................... viii ABSTRACT ........................................................................................................... ix KATA PENGANTAR ............................................................................................ x DAFTAR ISI ......................................................................................................... xii DAFTAR GAMBAR ............................................................................................ xv DAFTAR TABEL ............................................................................................... xvii BAB I PENDAHULUAN ...................................................................................... 1 1.1.
Latar Belakang ......................................................................................... 1
1.2.
Rumusan Masalah .................................................................................... 3
1.3.
Batasan Masalah ....................................................................................... 3
1.4.
Tujuan Penelitian ...................................................................................... 3
1.5.
Manfaat Penelitian .................................................................................... 4
BAB II LANDASAN TEORI ................................................................................ 5 2.1.
Knowledge Discovery in Database .......................................................... 5
2.2.
Pengertian Clustering ............................................................................... 8 2.2.1.
Tipe Clustering .............................................................................. 8
2.2.2.
Pengertian Hierarchical Clustering ............................................... 9
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.2.3.
Konsep Agglomerative Hierarchical Clustering ......................... 10
2.3.
Dimensionality Reduction ...................................................................... 22
2.4.
Permainan DOTA 2 ................................................................................ 23
2.5.
Pengujian Keakuratan Metodel .............................................................. 25
BAB III METODOLOGI PENELITIAN ............................................................ 27 3.1.
Gambaran Umum ................................................................................... 27
3.2.
Desain Penelitian .................................................................................... 28 3.2.1.
Studi Literatur .............................................................................. 28
3.2.2.
Pengumpulan Data ...................................................................... 28
3.2.3.
Perancangan Alat Uji ................................................................... 30
3.3.
Analisa Kebutuhan Proses ..................................................................... 32
3.4.
Implementasi Perancangan ..................................................................... 34
3.5.
3.4.1.
Diagram Konteks ........................................................................... 34
3.4.2.
Data Flow Diagram Level 1 ............................................................ 36
3.4.3.
Data Flow Diagram Level 2 ............................................................ 37
Penjelasan Proses ................................................................................... 39 3.5.1.
Baca Data ...................................................................................... 39
3.5.2.
Pre-processing ............................................................................. 39
3.5.3.
Pengukuran Jarak ........................................................................... 41
3.5.4.
Clustering ...................................................................................... 41
3.5.5.
Perhitungan Akurasi Confusion Matrix ............................................ 44
3.6.
Perancangan Antar Muka Alat Uji ......................................................... 45
3.7.
Spesifikasi Hardware dan Software ....................................................... 47
BAB IV IMPLEMENTASI HASIL DAN ANALISIS ........................................ 48 4.1.
Hasil Penelitian dan Analisis .................................................................. 48
4.2.
Hasil Cluster dan Pengujian Confusion Matrix ...................................... 57
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V KESIMPULAN DAN SARAN ................................................................ 76 5.1.
Kesimpulan ............................................................................................. 76
5.2.
Saran ....................................................................................................... 77
DAFTAR PUSTAKA ........................................................................................... 78 LAMPIRAN .......................................................................................................... 79 A.
Tabel Data Pertandingan ......................................................................... 119
B.
Screenshot Coding Alat Uji .......................................................................... 79
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19
4.20 4.21
Keterangan
Halaman
Proses pengolahan data Pengelompokan cluster dendrogram dan kedekatan data Perbedaan perhitungan jarak Hasil dendrogram untuk cluster single-linkage Hasil dendrogram untuk cluster single-linkage Hasil dendrogram untuk cluster average-linkage Hero-hero pada DOTA 2 Diagram Blok Hasil pertandingan DOTA 2 Diagram blok proses clustering Diagram blok proses perhitungan akurasi Diagram konteks proses clustering Diagram DFD level 1 Diagram DFD level 2 untuk preprocesing Diagram DFD level 2 untuk clustering data contoh dendrogram single-linkage contoh dendrogram complete-linkage contoh dendrogram average-linkage User interface alat uji grafik akurasi tanpa PCA grafik akurasi dengan menggunakan PCA Grafik hasil akurasi dari normalisasi 1 Grafik hasil akurasi dari metode Grafik hasil akurasi dari PCA Dendrogram single-linkage data asli dendrogramaverage-linkage data asli Dendrogram complete-linkage data asli Dendrogram single-linkage data Z-score Dendrogram complete-linkage data Z-score Dendrogram average-likage data Z-score Dendrogram single-linkage data MinMax Dendrogram complete-linkage data MinMax Dendrogram average-linkage data MinMax Dendrogram single-linkage data asli + PCA Dendrogram compelte-linakge data asli + PCA Dendrogram average-linakge data asli + PCA Dendrogram single-linakge data Z-score + PCA Dendrogram complet-linkage data Z-score + PCA
5 10
Dendrogram average-linkage data Z-score + PCA Dendrogram single-linkage data MinMax + PCA
72
xv
11 16 18 20 23 27 29 34 34 35 36 37 38 42 43 44 45 51 54 55 56 57 58 59 60 61 62 62 64 65 66 67 68 69 70 71
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.22 4.23
Dendrogram complete-linkage data MinMax + PCA Dendrogram average-linkage data MinMax + PCA
74 74
DAFTAR TABEL
Tabel 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 3.1 3.2 3.3 3.4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12
Keterangan Contoh data Hasil Euclidean disteance dari contoh data pencarian jarak terdekat single iterasi 1 Hasil pencarian jarak terdekat single iterasi 1 Pencarian jarak terdekat single iterasi 2 Hasil pencarian jarak terdekat single iterasi 2 1 Pencarian jarak terdekat single iterasi 3 Hasil cluster single-linkage Pencarian jarak terdekat complete iterasi 1 Hasil pencarian jarak terdekat complete iterasi 1 Pencarian jarak terdekat complete iterasi Pencarian jarak terdekat complete iterasi 3 Hasil pencarian jarak terdekat complete iterasi 3 Hasil cluster complete-linkage Hasil pencarian jarak terdekat average iterasi 1 Pencarian jarak terdekat average iterasi 2 Hasil pencarian jarak terdekat average iterasi 2 Pencarian jarak terdekat average iterasi 3 Hasil cluster average-linkage Tabel kebenaran Penjelasan atribut data contoh matrix data Tabel evaluasi confusion matrix Penjelasan fungsi user interface alat uji Deskripsi masing-masing peran Contoh perbedaan damage hero berdasarkan peran perbandingan akurasi tanpa PCA perbandingan akurasi dengan menggunakan PCA Hasil akurasi dari normalisasi Hasil akurasi dari metode Hasil akurasu dari PCA Hasil akurasi data asli tanpa normalisasi Confusion matrix single-linkage data asli Confusion matrix Average-linkage data asli Confusion matrix Complete-linkage data asli hasil akurasi dengan normalisasi Z-score xvi
Halaman 13 13 13 14 14 15 15 15 16 17 17 17 18 18 19 20 20 20 20 26 29 41 44 45 48 49 50 53 54 55 56 58 58 59 60 61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31
Confusion matrix single-linkage Z-score Confusion matrix Complete-linkage data asli Confusion matrix Average-linkage data asli hasil akurasi dengan normalisasi MinMax Confusion matrix single-linkage MinMax Confusion matrix Complete-linkage MinMax Confusion matrix Average-linkage MinMax data asli tanpa normalisasi dan PCA Confusion matrix single-linkage data asli + PCA Confusion matrix Complete-linkage data asli + PCA Confusion matrix Average-linkage data asli + PCA hasil akurasi normalisasi Z-score dan PCA Confusion matrix single-linkage Z-score + PCA Confusion matrix Complete-linkage Z-score + PCA Confusion matrix Average-linkage Z-score + PCA hasil akurasi dengan normalisasi MinMax dan PCA Confusion matrix single-linkage MinMax + PCA Confusion matrix Complete-linkage MinMax + PCA Confusion matrix Average-linkage MinMax + PCA
xvii
61 62 63 63 64 65 66 67 67 68 69 70 70 71 72 73 73 74 75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 1 PENDAHULUAN Pada Bab ini akan dijelaskan mengenai latar belakang yang akan dijadikan acuan dalam pembuatan penelitian,rumusan masalah yang akan penulisa selesaikan dalam penelitian ini ,tujuan penelitian ,manfaat penelitian dan juga metodologi penelitian dalam pengambilan data.
1.1.Latar Belakang Pada perkembangan teknologi yang sangat pesat pada jaman ini memiliki dampak buruk serta juga baiknya,salah satunya adalah Game Online.Game online di Indonesia masih dipandang sebagai sesuatu yang buruk oleh masyarakat karena banyaknya anak-anak mereka kecanduan dalam game online.Tidak semua game buruk ,ada beberapa game yang menghasilkan uang jika kita menekuni game tersebut dalam arti menekuni jangan sampai kencanduan .Salah satu cabang game yang sedang ramai dalam pertandingan-pertandingan lokal bahkan sudah mencapai seluruh dunia adalah E-Sport. E-sports juga dikenal sebagai Electronic sports - Professional gaming. Ini adalah jenis olahraga dimana semua aspek utama dari olahraga sesungguhnya difasilitasi oleh sistem elektronik (Houston,Senz 2016). Ini berarti input dari team dan player maupun output dari "actual esports sistem" dimediasi oleh interface yang
terdiri dari manusia dan komputer.Penjelasan paling sederhana, eSports
adalah kompetisi-kompetisi yang sudah terorganisasi untuk multiplayer video games antara player-player yang telah menjadikan gaming sebagai profesi mereka sesungguhnya. Genre yang paling sering ditemui di eSports adalah MOBA (multiplayer online battle arena), FPS (First Person Shooter), Fighting (street fighter) dan real time strategy games.Kompetisi-kompetisi ini menyediakan live broadcast dengan produksi yang sangat luar biasa, disertai dengan uang hadiah dan fasilitas yang sangat menjanjikan untuk para juara dan peserta. Jika berbicara tentang Revenue atau pendapatan di dunia esports, industri esports dikabarkan mencapai 2 Milyar USD dengan rata-rata 250 juta dollar pertahunnya dan bahkan perkembangan penonton atau penikmat esports yang telah berkembang dan bahkan bisa menyaingi NFL pada tahun 2017. Dan dengan
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
banyakan kompetisi-kompetisi eSports yang mulai dilirik oleh channel TV seperti ESPN, TURNER, bahkan ASTRO Malaysia mempunyai channel Egg Network yang mana merupakan channel eSports pertama di Asia Tenggara. Salah satu pilihan atau kesempatan adalah eSports. Dengan proyeksi perkembangan yang ada saat ini, bisa dipastikan kalau esports adalah "thing of the future", sebagian besar dari kita menghabiskan sebagian besar waktu kita di depan gadget atau PC atau device kita oleh karena itu diadakan e-sports untuk menghasilkan uang juga. Game E-Sports yang sedang digeluti salah satunya adalah DOTA 2 , DOTA 2 adalah permainan strategi dimana kita harus bekerja sama dengan pemain yang ada dalam satu tim untuk menjatuhkan markas tim lawan. DOTA 2 merupakan versi terbaru dari DOTA yang dulunya merupakan satu kesatuan dengan WARCRAFT III. DOTA dan DOTA 2 tidak jauh berbeda dari segi HERO (sebutan karakter atau unit pada game yang bisa kita kendalikan) yang dapat kita pilih dan item yang dapat kita beli. Namun pada DOTA 2 visual yang ditampilkan jauh lebih bagus dan sistem pembelian item yang lebih mudah . Dalam permainan DOTA 2 juga terdapat pembagian peran yaitu Carry,Support,dan juga Hardsupport , peran Carry sangat penting dalam tim karena bertugas dalam membawa tim kepada kemenangan tentunya didukung olehSupport dan Hard-support. Dalam penelitian ini hendak membuat suatu sistem yang mampu mengelompokan jenis peran di dalam pertandingan DOTA 2 ini.Dalam data pertandingan
mengambil
hasil
akhir
sebuah
pertandingan
dari
segi
item,level,networth .Penelitian ini menggunakan Agglomerative Hiearchical Clustering dalam pengelompokan datanya , sebelum pembentukan cluster akan dicari terlebih dahulu kedekatan antara data dengan Euclidean distance .Penelitian yang dibuat juga selain mencari akurasi akan digunakan dalam pencarian 3 peran terbaik dari masing-masing cluster yang nantinya akan digunakan dalam pemilihan player baru dalam sebuah tim profesianal,masih banyak tim professional hanya memilih pemain yang bersinar pada pertandingan tertentu akan tetapi ketika pemain tersebut dikontrak oleh tim , pemain tersebut tidak lagi bersinar.Oleh karena itu sistem ini mencoba mencari pemain berdasarkan record
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
pemain dalam pertandingan yang dia mainkan dimana dari hasil yang sudah dicluster akan digunakan untuk menempatkan pemain baru diposisi yang tepat.
1.2.Rumusan Masalah
Apakah penggunaan metode Agglomerative Hierarchical Clustering mampu mengelompokan peran pemain dalam pertandingan professional DOTA 2 dengan dataset pemain profesional untuk menempatkan pemain baru diposisi yang tepat?
1.3.Batasan Masalah Agar dalam pembahasan nantinya tidak panjang lebar, maka penulis membatasi beberapa masalah yang akan dibahas, diantaranya: 1. Menggunakan data pertandingan Turnamen DOTA 2 profesional pada tahun 2016 2. Metode yang digunakan Algoritma Agglomerative Clustering
Hierarchical
meliputi Single-linkage, Complete-linkage dan
Avarage-
Linkage. 3. Hanya membagi kedalam 3 peran yaitu Carry,Support,Hard-support. 4. Data pertandingan hanya diambil dengan durasi 40 menit sampai 50 menit.
1.4.Tujuan Penelitian
Mengetahui
apakah
dengan
menggunakan
metode
Agglomerative
Hierarchical Clustering dan juga menggunakan data hasil akhir pertandingan akan menghasilkan akurasi yang bagus ?
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1.5. Manfaat Penelitian
1. Manfaat Praktis Bagi penulis, manfaat praktis yang di harapakan adalah dengan adanya penelitian yang penulis teliti diharapkan dapat memperluas wawasan dan memperoleh pengetahuan baru tentang mengelompokan data pertandingan DOTA 2 ,dimana game belum terlalu banyak dalam sebuah penelitian.
2.
Manfaat Akademis
manfaat akademis yang diharapkan dalah agar hasil dari penelitian ini dapat dijadikan bahan rujukan bagi semua ilmu yang berhubungan dengan penelitian dan juga dapat menjadi referensi bagi mahasiswa yang melakukan kajian terhadap algoritma ini .
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 2 LANDASAN TEORI Pada bab ini akan dijelaskan bagaimana cara penulis mendapatkan informasi dalam pengerjaan karya ini ,dan agar tentunya landasan teori ini dapat mempertanggung jawabkan hasil akhir dari penelitian ini.
2.1 Knowledge Discovery in Database
Knowledge Discovery and Data Mining(KDD) adalah proses yang dibantu oleh komputer untuk menggali dan menganalisis sejumlah besar himpunan data dan mengekstrak informasi dan pengetahuan yang berguna. Data mining tools memperkirakan perilaku dan tren masa depan, memungkinkan bisnis untuk membuat keputusan yang proaktif dan berdasarkan pengetahuan. Data mining tools mampu menjawab permasalahan bisnis yang secara tradisional terlalu lama untuk diselesaikan. Data mining tools menjelajah database untuk mencari pola tersembunyi, menemukan infomasi yang prediktif yang mungkin dilewatkan para pakar karena berada di luar ekspektasi mereka.Proses KDD terdiri dari 5 proses seperti terlihat pada gambar di bawah.Akan tetapi , dalam proses KDD yang sesungguhnya ,dapat saja terjadi iterasi atau pengulangan pada tahap tertentu.Pada setiap
tahap
dalam
proses
KDD,bisa
saja
dapat
kembali
ke
tahap
sebelumnya.Sebagai contoh pada saat coding atau data mining,ada proses cleaning yang belum dilakukan dengan sempurna, kemudian menemukan informasi baru untuk memperkaya data yang sudah ada.
Gambar 2. 1 Proses pengolahan data(e.g., Fayyad et al. 1996)
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1. Data Selection Menciptakan himpunan data target , pemilihan himpunan data, atau memfokuskan pada subset variabel atau sampel data, dimana penemuan (discovery) akan dilakukan.Pemilihan (seleksi) data dari sekumpulan data operasional perlu dilakukan sebelum tahap penggalian informasi dalam KDD dimulai. Data hasil seleksi yang akan digunakan untuk proses data mining, disimpan dalam suatu berkas, terpisah dari basis data operasional.
2. Pre-processingatau Cleaning Pemprosesan pendahuluan dan pembersihan data merupakan operasi dasar seperti penghapusan noise dilakukan.Sebelum proses data mining dapat dilaksanakan, perlu dilakukan proses cleaning pada data yang menjadi fokus KDD.Proses cleaning mencakup antara lain membuang duplikasi data, memeriksa data yang inkonsisten, dan memperbaiki kesalahan pada data, seperti kesalahan cetak (tipografi).Dilakukan proses enrichment, yaitu proses “memperkaya” data yang sudah ada dengan data atau informasi lain yang relevan dan diperlukan untuk KDD, seperti data atau informasi eksternal.
3. Transformation Pencarian fitur-fitur yang berguna untuk mempresentasikan data bergantung kepada goal yang ingin dicapai.Merupakan proses transformasi pada data yang telah dipilih, sehingga data tersebut sesuai untuk proses data mining. Proses ini merupakan proses kreatif dan sangat tergantung pada jenis atau pola informasi yang akan dicari dalam basis data .Dalam penelitian ini menggunakan 2 normalisasi yaitu Z-score dan MinMax a.
Normalisasi Z-score Disebut juga zero-mean normalization, dimana value dari sebuah atribut A dinormalisasi berdasarkan nilai rata-rata dan standar deviasi dari atribut A. Sebuah value v dari atribut A dinormalisasi menjadi v' dengan rumus:
6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(2.1) Keterangan : -
̅ = adalah rata-rata dari nilai
-
σ A = adalah standar deviasi dari atribut A
-
v = adalah nilai yang ingin diubah
-
v’ = adalah hasil Z-score
b. Normalisasi MinMax MinMax normalization memetakan sebuah value v dari atribut A menjadi v' ke dalam range [new_minA, new_maxA] berdasarkan rumus:
(2.2) Keterangan : -
v = adalah nilai yang akan dinormalisasi
-
v’=adalah nilai hasil normalisasi
-
min = adalah nilai minimal lama dari nilai v
-
max = adalah nilai maksimal lama dari nilai v
-
new_min = adalah nilai minimal baru sesuai kebutuhan
-
new_max = adalah nilai maksimal baru sesuai kebutuhan
4. Data mining Pemilihan tugas data mining; pemilihan goal dari proses KDD misalnya klasifikasi, regresi, clustering, dll.Pemilihan algoritma data mining untuk pencarian (searching)Proses Data mining yaitu proses mencari pola atau informasi menarik dalam data terpilih dengan menggunakan teknik atau metode tertentu. Teknik, metode, atau algoritma dalam data mining sangat bervariasi. Pemilihan
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
metode atau algoritma yang tepat sangat bergantung pada tujuan dan proses KDD secara keseluruhan.
5. Interpretationatau Evaluation Penerjemahan pola-pola yang dihasilkan dari data mining.Pola informasi yang dihasilkan dari proses data mining perlu ditampilkan dalam bentuk yang mudah mimengerti oleh pihak yang berkepentingan. Tahap ini merupakan bagian dari proses KDD yang mencakup pemeriksaan apakah pola atau informasi yang ditemukan bertentangan dengan fakta atau hipotesa yang ada sebelumnya.
2.2 Pengertian Clustering Menurut
Han
dan
Kamber
(2011),
Clustering
adalah
proses
pengelompokkan kumpulan data menjadi beberapa kelompok sehingga objek di dalam satu kelompok memiliki banyak kesamaan dan memiliki banyak perbedaan dengan objek dikelompok lain. Perbedaan dan persamaannya biasanya berdasarkan nilai atribut dari objek tersebut dan dapat juga berupa perhitungan jarak. Clustering sendiri juga disebut Unsupervised Classification, karena clustering lebih bersifat untuk dipelajari dan diperhatikan. Cluster analysis merupakan proses partisi satu set objek data ke dalam himpunan bagian. Setiap himpunan bagian adalah cluster, sehingga objek yang di dalam cluster mirip satu sama dengan yang lainnya, dan mempunyai perbedaan dengan objek dari cluster yang lain. Partisi tidak dilakukan dengan manual tetapi dengan algoritma clustering. Oleh karena itu,clustering sangat berguna dan bisa menemukan group yang tidak dikenal dalam data.
2.2.1 Tipe Clustering Clustering merupakan suatu kumpulan dari keseluruhan cluster( H. G. Wilson).Beberapa dari clustering adalah :
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1. Partitional vs Hierarchical Partitional clustering adalah pembagian objek data kedalam sub himpunan(cluster) yang tidak overlap sedemikian hingga tiap objek data berada dalam tepat satu sub-himpunan.Hierarchical clustering merupakan sebuah himpunan cluster bersarang yang diatur sebagai suatu pohon hirarki.Tiap
simpul(cluster)
dalam
pohon(kecuali
simpul
daun)
merupakan gabungan dari anaknya(subcluster) dan simpul akar berisi semua objek
2. Exclusive vs non-exclusive Semua bentuk clustering merupakan exclusive clustering ,karena setiap objek berada tepat pada satu cluster.sebaliknya dalam overlapping atau non-exclusive clustering ,sebuah objek dapat berada di lebih dari satu cluster secara bersamaan.
3. Fuzzy vs non-Fuzzy Dalam fuzzy clustering ,sebuah titik termasuk dalam setiap cluster dengan suatu nilai bobot antara 0 dan 1.jumlah dari bobot-bobot tersebut sama dengan 1.clustering probabilitas mempunyai karakteristik yang sama.
4. Partial vs Complete Dalam complete clustering ,setiap objek ditempatkan dalam sebuah cluster.Tetapi dalam partial clustering,tidak semua objek ditempatkan dalam sebuah cluster.kemungkinan ada objek yang tidak tepat untuk ditempatkan di salah satu cluster,misalkan berupa outlier atau noise.
2.2.2 Pengertian Hierarchical Clustering
Menghasilkan sebuah himpunan dari cluster bersarang sebagai suatu pohon hirarki.Dapat divisualisasikan sebagai sebuah dendogram,yaitu sebuah
9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
pohon yang berfungsi sebagai diagram yang mencatat urutan dari penggabungan atau pemisahan seperti pada gambar berikut :
Gambar 2. 2 Pengelompokan cluster dendrogram dan kedekatan data (Tan,Steinbach,dkk 2004)
Ada dua tipe utama hierarchical clustering , yaitu divisive dan agglomerative (Tan,Steinbach,dkk 2004) : Agglomerative: 1. Mulai dengan titik-titik sebagai individual clusters. 2. Pada tiap langkah,gabungkan pasangan cluster terdekat sampai hanya terdapat satu cluster (atau k cluster) yang tersisa Divisive : 1. Mulai dengan satu,semua inclusive cluster. 2. Pada tiap langkah,pisahkan sebuah cluster sampai tiap cluster terdiri dari sebuah titik(atau ada k cluster). Tradisional algoritma hirarikal menggunakan sebuah matriks similaritas atau matriks jarak dengan menggabungkan atau memisahkan satu cluster dalam tiap langkahnya.
2.2.3 Konsep Agglomerative Hierarchical Clustering
Beberapa metode hierarchical clustering yang sering digunakan dibedakan menurut cara mereka untuk menghitung tingkat kemiripan. Ada yang menggunakan Single Linkage, Complete-linkage, Average-linkage.. Seperti juga 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
halnya dengan partition-based clustering, bisa juga memilih jenis jarak yang digunakan untuk menghitung tingkat kemiripan antar data.
Gambar 2. 3 Perbedaan perhitungan jarak(Tan,Steinbach,dkk 2004)
Salah satu cara untuk mempermudah pengembangan dendogram untuk hierarchical clustering ini adalah dengan membuat similarity matrix yang memuat tingkat kemiripan antar data yang dikelompokkan. Tingkat kemiripan bisa dihitung dengan berbagai macam cara seperti dengan Euclidean distance. Berawal dari similarity matrix ini, dapat menggunakan lingkage jenis mana yang akan digunakan untuk mengelompokkan data yang dianalisa.Berikut adalah langkah dalam pengelompokan dengan agglomerative clutering : 1) Hitung matrix jarak,jika diperlukan 2) Ulangi langkah 3 dan 4, 3) Gabungkan 2 cluster terdekat 4) Kemudian perbarui matrix jarak antara 2 cluster terdekat pada langkah 3 kemudian bentuk cluster baru 5) Sampai hanya tersisa sati cluster(Tan,Steinbach,dkk 2004)
Untuk perhitungan jarak Single-linkage, Complete-linkage dan Averagelinkageseprti pada rumus berikut :
a. Single-linkage merupakan merupakan jarak minimum antara setiap data terdekat. Metode ini akan mengelompokkan dua objek yang mempunyai jarak terdekat terlebih dahulu, dapat didefinisikan sebagai berikut :
d(i,j)k = min(dik, djk) 11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(2.3) Keterangan : -
Jarak terkecil antar kelompok (I,j) dengan k
b. Complete-linkage merupakan merupakan jarak maximum antara setiap data terdekat, Metode ini akan mengelompokkan dua objek yang mempunyai jarak terjauh terlebih dahulu, dapat didefinisikan sebagai berikut :
d(i,j)k = Max(dik, djk) (2.4) Keterangan : -
Jarak terbesar antar kelompok (I,j) dengan k
c. Average-linkage merupakan merupakan rata-rata jarak antara setiap data terdekat. Metode ini mengelompokkan objek berdasarkan jarak ratarata yang didapat dengan melakukan rata-rata semua jarak objek terlebih dahulu. dapat didefinisikan sebagai berikut :
d(i,j)k = Average(dik, djk) (2.5) Keterangan : -
Jarak rata-rata antar kelompok (I,j) dengan k
Pada sistem ini menggunakan Single-linkage,Complete-linkage dan Avarage-Linkage ,dibawah ini adalah contoh data yang belum dihitung jarak kedekatanya . Dalam penelitian ini menghitung jarak kedekatan dengan Euclidean distance
(
Distance = √∑ 12
)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
(2.6) Keterangan : -
n adalah jumlah atribut atau dimensi
-
Pk dan Qk adalah data yang akan dihitung jaraknya
Tabel 2. 2 Contoh data
Nama
Berat1
Berat2
1
50
20
2
35
10
3
30
20
4
45
30
5
10
50
Setelah dihitung jarak antar obyek maka dibuatkan matriks jarak yaitu memnghitung nilai dari jarak A sampai E dan matriks ini bersifat simetris Tabel 2. 3 Hasil Euclidean disteance dari contoh data
Dalam penghitungan jarak kemiripan akan dilakukan 3 cara menghitung kemiripan : a.
Jarak minimum (SingleLinkage) Pada Single-linkage kemiripan data dicari dari nilai jarak yang paling minimum yaitu 11.1803 pada titik 1,4 Tabel 2. 4 pencarian jarak terdekat single iterasi 1
13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Pertama adalah mencari nilai minimum pada matrix kedekatan yang sudah dihitung menggunakan Euclidean distance ,yaitu 1 dan 4 memiliki nilai minimum kemudian kedua objek tersebut digabungkan menjadi cluster (14) ,dan objek lain yang tersisa adalah 2,3 dan 5 .dengan jarak : Min {2,1 dan 2,4} = 18,0278 Min {3,1 dan 3,4} = 18,0278 Min {5,1 dan 5,4} = 40.3113 Setelah mendapatkan nilai minimalnya hapus objek 1 atau 4 untuk membentuk 1 cluster baru yaitu (14).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (14). Tabel 2. 5 Hasil pencarian jarak terdekat single iterasi 1
Tabel 2. 6 Pencarian jarak terdekat single iterasi 2
kedua mencari nilai minimum pada matrix kedekatan antara cluster yang tersisa yaitu cluster (14)(2)(3) dan (5) didapatkan cluster 2 dan 3 memiliki nilai minimum dengan nilai 11,1803,kemudian gabungkan menjadi cluster (23) dengan cluster yang tersisa adalah (14) dan 5 .dengan jarak : Min {(14),2 dan (14),3} = 18,0278 Min {5,2 dan 5,3} = 36.0555 Setelah mendapatkan nilai minimalnya hapus objek 2 atau 3 untuk membentuk 1 cluster baru yaitu (23).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (23).
14
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 2. 7 Hasil pencarian jarak terdekat single iterasi 2
Tabel 2. 8 Pencarian jarak terdekat single iterasi 3
ketiga mencari nilai minimum pada matrix kedekatan antara cluster yang tersisa yaitu cluster (14)(23) dan (5) didapatkan cluster (14) dan (23) memiliki nilai minimum dengan nilai 18,0278,kemudian gabungkan menjadi cluster (1423) dengan cluster yang tersisa adalah 5 .dengan jarak : Min {(1423),5 dan (1423),5} = 36.0555 Setelah mendapatkan nilai minimalnya hapus objek 14 atau 23 untuk membentuk 1 cluster baru yaitu (1423).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (1423).
Tabel 2. 9 Hasil cluster single-linkage
Setelah
terbentuk
menjadi
2
cluster
dendogramnya sebagai berikut :
15
kita
dapat
menggambarkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 2. 4 Hasil dendrogram untuk cluster single-linkage
Cluster 1 dan 4 adalah cluster yang terbentuk pertama , kemudian pada 2 dan 3 adalah pembentukan cluster ke 2 , kemudian pada pembentukan cluster ketiga cluster 14 dan 23 bergabung menjadi cluster 1423 , kemudian tersisa cluster 5 yang otomatis menjadi cluster terakhir dan bergabung bersama cluster 1423 menjadi 1 cluster utuh yaitu 14235, untuk melihat pembagian cluster kita dapat melakukan cut-off pada dendogram.
b.
Jarak Maximum (CompleteLinkage) Tabel 2. 10 Pencarian jarak terdekat complete iterasi 1
Pertama adalah mencari nilai minimum pada matrix kedekatan yang sudah dihitung menggunakan Euclidean distance ,yaitu 1 dan 4 memiliki nilai minimum kemudian kedua objek tersebut digabungkan menjadi cluster (14) ,dan objek lain yang tersisa adalah 2,3 dan 5 .dengan jarak : Max {2,1 dan 2,4} = 22.3607 Max {3,1 dan 3,4} = 20
16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Max {5,1 dan 5,4} = 50
Setelah mendapatkan nilai minimalnya hapus objek 1 atau 4 untuk membentuk 1 cluster baru yaitu (14).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (14). Tabel 2. 11 Hasil pencarian jarak terdekat complete iterasi 1
Tabel 2. 12 Pencarian jarak terdekat complete iterasi 2
kedua mencari nilai minimum pada matrix kedekatan antara cluster yang tersisa yaitu cluster (14)(2)(3) dan (5) didapatkan cluster 2 dan 3 memiliki nilai minimum dengan nilai 11,1803,kemudian gabungkan menjadi cluster (23) dengan cluster yang tersisa adalah (14) dan 5 .dengan jarak : Max {(14),2 dan (14),3} = 22.3607 Max {5,2 dan 5,3} = 471699 Setelah mendapatkan nilai minimalnya hapus objek 2 atau 3 untuk membentuk 1 cluster baru yaitu (23).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (23). Tabel 2. 13 Pencarian jarak terdekat complete iterasi 3
17
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 2. 14 Hasil pencarian jarak terdekat complete iterasi 3
ketiga mencari nilai minimum pada matrix kedekatan antara cluster yang tersisa yaitu cluster (14)(23) dan (5) didapatkan cluster (14) dan (23) memiliki nilai minimum dengan nilai 18,0278,kemudian gabungkan menjadi cluster (1423) dengan cluster yang tersisa adalah 5 .dengan jarak : Max {(1423),5 dan (1423),5} = 50 Setelah mendapatkan nilai minimalnya hapus objek 14 atau 23 untuk membentuk 1 cluster baru yaitu (1423).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (1423). Tabel 2. 15 Hasil cluster complete-linkage
Setelah
terbentuk
menjadi
2
cluster
kita
dapat
dendogramnya sebagai berikut :
Gambar 2. 5 Hasil dendrogram untuk cluster single-linkage
18
menggambarkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Cluster 1 dan 4 adalah cluster yang terbentuk pertama , kemudian pada 2 dan 3 adalah pembentukan cluster ke 2 , kemudian pada pembentukan cluster ketiga cluster 14 dan 23 bergabung menjadi cluster 1423 , kemudian tersisa cluster 5 yang otomatis menjadi cluster terakhir dan bergabung bersama cluster 1423 menjadi 1 cluster utuh yaitu 14235, untuk melihat pembagian cluster kita dapat melakukan cut-off pada dendogram.
c. Jarak Rata-Rata (AverageLinkage) Tabel 2. 16 Pencarian jarak terdekat average iterasi 1
Pertama adalah mencari nilai minimum pada matrix kedekatan yang sudah dihitung menggunakan Euclidean distance ,yaitu 1 dan 4 memiliki nilai minimum kemudian kedua objek tersebut digabungkan menjadi cluster (14) ,dan objek lain yang tersisa adalah 2,3 dan 5 .dengan jarak : Average {2,1 dan 2,4} = 20,1942 Average {3,1 dan 3,4} = 19,0139 Average {5,1 dan 5,4} = 45.5155 Setelah mendapatkan nilai minimalnya hapus objek 1 atau 4 untuk membentuk 1 cluster baru yaitu (14).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (14). Tabel 2. 17 Hasil pencarian jarak terdekat average iterasi 1
19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 2. 18 Pencarian jarak terdekat average iterasi 2
kedua mencari nilai minimum pada matrix kedekatan antara cluster yang tersisa yaitu cluster (14)(2)(3) dan (5) didapatkan cluster 2 dan 3 memiliki nilai minimum dengan nilai 11,1803,kemudian gabungkan menjadi cluster (23) dengan cluster yang tersisa adalah (14) dan 5 .dengan jarak : Average {(14),2 dan (14),3} = 19,604 Average {5,2 dan 5,3} = 41.6127 Setelah mendapatkan nilai minimalnya hapus objek 2 atau 3 untuk membentuk 1 cluster baru yaitu (23).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (23). Tabel 2. 19 Hasil pencarian jarak terdekat average iterasi 2
Tabel 2. 20 Pencarian jarak terdekat average iterasi 3
ketiga mencari nilai minimum pada matrix kedekatan antara cluster yang tersisa yaitu cluster (14)(23) dan (5) didapatkan cluster (14) dan (23) memiliki nilai minimum dengan nilai 18,0278,kemudian gabungkan menjadi cluster (1423) dengan cluster yang tersisa adalah 5 .dengan jarak : Average {(1423),5 dan (1423),5} = 43.384
20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Setelah mendapatkan nilai minimalnya hapus objek 14 atau 23 untuk membentuk 1 cluster baru yaitu (1423).maka akan menjadi table seperti di bawah dengan cluster baru yaitu (1423). Tabel 2. 21 Hasil cluster average-linkage
Setelah
terbentuk
menjadi
2
cluster
kita
dapat
menggambarkan
dendogramnya sebagai berikut :
Gambar 2. 6 Hasil dendrogram untuk cluster average-linkage
Cluster 1 dan 4 adalah cluster yang terbentuk pertama , kemudian pada 2 dan 3 adalah pembentukan cluster ke 2 , kemudian pada pembentukan cluster ketiga cluster 14 dan 23 bergabung menjadi cluster 1423 , kemudian tersisa cluster 5 yang otomatis menjadi cluster terakhir dan bergabung bersama cluster 1423 menjadi 1 cluster utuh yaitu 14235, untuk melihat pembagian cluster kita dapat melakukan cut-off pada dendogram.
21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.3 Dimensionality Reduction
Dimensionality Reduction adalah sebuah proses untuk mengurangi dimensi daa dari data yang berdimensi besar menjadi data yang berdimensi kecil.Ada dua teknik dalam Dimensionality Reduction ini,yaitu feature selection dan feature extraction .Feature selection adalah memilih feature yang berpengaruh untuk data tersebut yang diambil dari sekumpulan data asli. Dalam Feature extraction membentuk sebuah feature baru berdasarkan feature yang lama dengan dimensi lebih sedikit dibandingkan dengan sebelumnya. Metode yang digunakan adalah PCA(principal component analysis).Tujuan dari principal component analysis adalah suatu teknik statistik untuk mengubah dari sebagian besar variabel asli yang digunakan dan saling berkorelasi satu dengan yang lainnya menjadi satu set variabel baru yang lebih kecil dan tidak berkorelasi (Web 1). Setiap 4 pengukuran multivariat (atau observasi), komponen utama merupakan kombinasi linier dari variabel p awal. Tujuan utama analisis komponen utama ialah untuk mengurangi dimensi peubah-peubah yang saling berhubungan dan cukup banyak variabelnya sehingga lebih mudah untuk menginterpretasikan data-data tersebut (Johnson dan Wichern, 2002). Metode yang digunakan yaitu menentukan komponen utama dengan melakukan alih ragam orthogonal atau membentuk kombinasi linier Y A' X (Sumarga, 1996). Dari sini akan dipilih beberapa komponen utama yang dapat memberikan sebagian besar keragaman total data semula.Berikut adalah cara kerja principal component analysis : 1. Hitung rata-rata setiap data (scaling) 2. Hitung covariance matrix dari kumpulan data matrix. 3. Hitung eigenvector dan eigenvalue dari covariance matrix. 4. Pilih component dan bentuk vector feature dan ambil principal component dari eigenvector yang memiliki eigenvalue paling besar 5. Menurunkan data set yang baru.(Smith,2002).
22
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4 Permainan DOTA 2
DOTA 2 adalah game yang sudah dimodifikasi yang awalnya bernama World of Warcraft yang dibuat oleh Blizzard (Kurniawan,Iqbal dkk 2016). DOTA atau defense of the ancient diciptakan pertama kali sebagai mod di Warcraft 3. Kebanyakan hero di DOTA pun sebenarnya terinspirasi dari hero-hero di game warcraft. Lalu munculah ide dari icefrog untuk membangun game DOTA sendiri, dan akhirnya dibuat dengan kerjasama valve menjadi game dengan engine source bernama DOTA2. Jadi sebenarnya DOTA 2 dengan DOTA tidak jauh berbeda, hero-hero di DOTA 2 pun berasal dari DOTA. DOTA 2 adalah permainan real time strategy, dan harus memilih suatu karakter atau hero dari banyak hero. Perlu diketahui di DOTA 2 hanya akan mengontrol satu hero atau unit, namun beberapa hero bisa membuat beberapa unit juga, tapi umumnya hanya mengontrol satu hero dan tidak perlu mengontrol unit lebih dari 10 (Newell,Gabe dkk). Tujuan utama di DOTA 2 sebenarnya adalah menghancurkan ancient musuh, apabila ancient musuh hancur maka tim akan menang. Di DOTA 2 ada banyak hal yang harus cepat untuk dicapai, misalnya level dan item, semakin tinggi level atau semakin bagus item maka hero yang anda gunakan akan semakin kuat. Terdapat 108 hero dari game ini dengan pembagian kasta yaitu strength,agility dan intelligence seperti gamber berikut :
Gambar 2. 7 Hero-hero pada DOTA 2
23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Sebagian besar Support berada pada intelligence tapi tidak semua bisa dijadikan Support tergantung pada situasi saat pertandingan oleh karena itu penelitian ini akan mencoba memisahkan antara Support ,Carry dan Hard-support dari hasil pertandingan tersebut . Permainan ini sangat menarik jika dijadikan penelitian karena selain game online favorit , game ini juga dapat menghasilkan penghasilan yang tidak mainmain untuk Turnamen International yang diadakan Agustus 2016 yang lalu mencapai 20.000.000 dollar.Untuk penelitian tentang DOTA 2 ini belum pernah dilakukan sebelumnya karena saya menggunakan data pertandingan ,yang sudah melakukan penelitian tentang DOTA 2 adalah hanya menganalisa jenis hero.Sedangkan yang akan dijadikan dalam penelitian ini adalah hasil pertandingan
yang
mana
terdapat
atribut
level,GMP(Gold
Per
Minute),XPM(Experience Per Minute),Networth,dll.Dalam Penelitian ini hanya terbatas pada meneliti jenis peran yang ter cluster yaitu Carry,Support, atau Hardsupport.Berikut ini beberapa penjelasan tentang ketiga peran yang akan diteliti dalam penelitian ini :
a. Carry
Peran yang satu ini memang cukup sulit, apalagi jika anda bukan tipe yang bisa
melakukan
banyak last
hit
pada laning
phase.Karena Carry
membutuhkan banyak gold untuk bisa berguna di mid late game. Carry seperti namanya memang mampu membawa tim menuju kemenangan, dan ini akan membuat tim musuh mengincar Carry terlebih dahulu. Dalam game DOTA 2 tim lawan akan mencari counter yang mencegah seorang Carry memiliki uang banyak.
b. Support
Peran Support bisa dibilang sangat penting karena seorang Support memiliki skill yang dapat membantu timnya menuju kemenangan , Support sendiri dibagi menjadi beberapa jenis yaitu Tanker,Nuker,Pusher dan lain-lain. Para
24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Support bergantian dengan Hard-support untuk membeli item-item Support seperti ward, dust, dan lain-lain. Selain itu Hero Posisi peran ini juga biasanya dapat farming di hutan, atau juga bisa membantu Carry untuk creep stacking.
c. Hard-support
Kebanyakan player baru sering meremehkan role ini karena mereka beranggapan bahwa Hard-support hanya bertugas membantu tim saja. Padahal itu adalah anggapan yang salah. Seorang Hard-support tidak membutuhan uang sebanyak Carry dan dia mampu melakukan early kill dan bahkan mengganggu Carry tim lawan. Biasanya seorang Hard-support yang baik mampu membuat Carry mendapatkan uang yang banyak dengan mengamankannya saat laning phase dan mencegah Carry agar tetap aman dari tim lawan.
2.5 Pengujian Keakuratan Metode
Untuk menguji apakah metode ini memiliki hasil yang valid maka diperlukan pengujian untuk mengetahui keakuratan metode.Pada clustering sendiri pengujian keakuratan dapat dibagi menjadi 3 cara pendekatan untuk melihat keakuratannya yaitu external test,internal test dan relative test.
d. External test adalah pengujian atau mengukur sjauh mana label pada cluster cocok dengan hasil cluster pada sistem .dalam external test contohnya menggunakan confusion matrix,entropy dan purity, adapun rumus dalam mencari confusion matrix sebagai berikut :
25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 2. 22 Tabel kebenaran
Keterangan : a dan d = jumlah benar setiap cluster b dan c = cluster yang salah a,b,c dan d = jumlah data keseluruhan Akurasi = (Jumlah benar setiap clusteratauJumlah data )*100%
e. Internal test adalah pengujian tanpa informasi dari luar cluster yang digunakan untuk melihat kualitas dari cluster tersebut .Dalam penggunaanya pada internal test yaitu cluster separation dan cluster cohesion(jain dan dubes dkk1988). a) Cluster cohesion adalah jumlah dari lebar semua link yang ada di dalam cluster.Cohesion adalah pengukuran di dalam cluster dengan sum of square(SSE) b) Cluster separation adalah pengukuran antara cluster dengan sum of square
f. Relative test pada metode ini digunakan pengukuran internal index dan external index dengan SSE atau entropy , penyelesaian cluster yang berbeda dengan algoritma yang sama dengan parameter berbeda pula.
Dalam mencari keakuratan metode penelitian , penulis menggunakan external test dengan menggunakan clustering yang sudah ada kemudian dibandingkan dengan hasil cluster dari metode Agglomerative Hiearchical clustering,kemudian dapat melihat tingkat akurasi yang didapat dengan label yang sudah tersedia .Setelah itu dapat dilihat manakah clustering yang terbaik akurasinya.
26
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 3 METODOLOGI PENELITIAN Pada bab ini akan dijelaskan bagaimana metode pengelompokan bekerja pada sistem
serta
dijelaskan
pula
desain
penelitian
,analisa
kebutuhan
proses,implementasi perancangan ,penjelasan proses dan desain antar muka (user interface)
3.1 Gambaran Umum
Pembuatan sistem pengelompokan pemain dengan metode Agglomerative Hiearchical Clustering (AHC) untuk menguji apakah metode ini bagus untuk data pertandingan DOTA 2 , berikut sistem yang akan dibangun oleh penulis dalam bentuk diagram blok
Gambar 3. 1 Diagram Blok
Data pada penelitian ini adalah data pertandingan international DOTA 2 yang didapatkan dari setiap akhir pertandingannya , kemudian membuatnya menjadi data numeric dan akan dicluster menggunakan agglomerative hierarchical clustering
dengan
3
cara
yaitu
single(minimal),
complete(maximal)
,average(mean) setelah mendapatkan hasil akan menampilkan cluster dan akurasi.
27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2 Desain Penelitian
Dalam penelitian ini terdapat 3 tahapan yang penulis buat yaitu studi literatur untuk informasi data,pengumpulan data, dan juga merancang alat uji . Berikut adalah penjelasan tentang ketiganya :
3.2.1 Studi Literatur
Studi literatur dilakukan untuk mendapatkan informasi tentang data yang digunakan dalam penelitian seperti mengamati pertandingan dalam turnamen DOTA 2 setiap eventnya yang berjalan pada tahun 2016.
3.2.2 Pengumpulan Data
Dalam mengumpulkan data pertandingan DOTA 2 penulis melihat hasil pertandingan dalam event yang diadakan pada tahun 2016 .Dalam pengumpulan data terdapat 3 tahap dalam mendapatkan data sehingga dapat diolah sebagai berikut :
Tahap 1 Mengumpulkan Data Pertandingan Pada tahap ini data pertandingan yang diambil adalah random dari tim profesional yang bertanding pada turnamen international 2016 dan data tidak mengambil dari tim biasa dikarenakan tidak adanya pembagian peran seperti tim besar yang sudah memiliki manajemen permainan bagus.Data diambil dalam game DOTA 2 yang sudah bertanding , dalam setiap pertandingan besar international data tersimpan di dalam game dan dapat dilihat rekap pertandingan serta replaynya oleh pengguna yang ingin menonton ulang.Setelah mendapatkan data berupa gambar kemudian tahap selanjutnya adalah melakukan masukan
28
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
kedalam bentuk excel secara manual dari data gambar yang sudah di dapatkan.Data terkumpul sebanyak 300 data dengan 14 atribut , dimana atribut tambahan
terdapat
4
atribut
yaitu
CARRY_ITEM,
SUPPORT_ITEM,
HARD_SUPPORT_ITEM dan NORMAL_ITEM.Atribut ini menjelaskan seorang pemain ap[akah dia memiliki item sebagaimana peran yang ia bawa atau tidak.Dalam pengisian di dalam excel dilihat dari gambar apakah ada item-item tersebut atau tidak, jika ada di beri nilai 1 dan jika tidak ada diberi nilai 0.
Gambar 3. 2 Hasil pertandingan DOTA 2
Tabel 3. 1 Penjelasan atribut data
No
Atribut
Penjelasan
1
KILL
adalah jumlah dimana hero mampu menghabisi hero lawan sampai jumlah HP hero musuh menjadi 0.
2
DEATH
Adalah jumlah dimana jumlah HP hero menjadi 0 atau mati dikarenakan hero musuh menghabisi hero kita.
3
ASSIST
Adalah jumlah hero dalam kontribusi
29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
membunuh hero lawan sebelum hero lawan jumlah HP nya menjadi 0 atau mati. 4
NETWORTH
Adalah jumlah gold yang mampu dikumpulkan seorang pemain dalam satu pertandingan
5
LEVEL
Adalah sebuah pencapaian setiap level naik maka setiap hero memiliki kemampuan khusus untuk menaikan skillnya
6
LAST HIT
Adalah jumlah seorang pemain melakukan last hit atau sentuhan terakhir sebelum creep(monster hutan atau monster yang muncul 30 detik sekali ) digunakan untuk mendapatkan gold lebih ketika melakukan last hit .
7
DENIED
Adalah jumlah seorang membunuh creep (monster hutan atau monster yang muncul 30 detik sekali ) sendiri agar musuh tidak melakukan last hit dan menghambat musuh mendapatkan gold.
8
GOLD PER MINUTE
Adalah jumlah rata-rata pendapatan gold setiap hero sampai akhir pertandingan
9
EXPERIENCE PER
Adalah jumlah rata-rata experience setiap
MINUTE
hero sampai akhir pertandingan ,experience digunakan untuk menaikan level.
10
DAMAGE
Dalah jumlah serangan yang masuk kepada hero musuh.
11
CARRY ITEM
Adalah jumlah item yang biasa digunakan oleh hero Carry
12
SUPPORT ITEM
Adalah jumlah item yang biasa digunakan oleh hero Support
30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
HARD-SUPPORT ITEM
Adalah jumlah item yang biasa digunakan oleh hero Hard-support
14
NORMAL ITEM
Adalah jumlah item standar yang biasa digunakan oleh hero
Dalam setiap tim professional yang bertanding peran setiap pemain sudah ditentukan , dalam setiap tim pada pertandingan DOTA 2 minimal memiliki 2 orang pemain dengan peran Carry ,2 orang pemain dengan peran Support dan 1 orang sebagai Hard-support.Pada data yang diambil adalah data pertandingan profesional DOTA 2 yang berlangsung pada tahun 2016 ,tidak hanya pada satu event saja dalam pengambilan data akan tetapi seluruh event internationl khususnya pemain profesional pada tahun 2016.
Tahap 2 Import data ke Excel Setelah mendapatkan data dalam game DOTA 2 kemudian memasukan data numerik yang ada di gambar dengan cara manual kedalam excel ,serta memasukan juga slot item apakah item yang dibeli dalam record pertandingan itu adalah item Support,Carry atau Hard-support .
Tahap 3 Pelabelan Cluster Data Dalam membuat label class dalam penelitian ini penulis mencari label dengan tingkat akurasi tertinggi yang akan dijadikan label , dalam contoh pada normalisasi Z-score peran Carry ada di label 1 atau cluster 1 , ketika normalisasi MinMax peran Carry dengan akurasi tinggi terdapat dilabel 2 atau cluster 2 .Jadi dalam pelabelan ini mengikuti hasil dendrogram yang dihasilkan agar mendapatkan akurasi yang terbaik.Dimana label ini akan digunakan untuk membandingan dengan hasil cluster yang dihasilkan untuk menemukan akurasi.
31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.2.3 Perancangan Alat Uji
Dalam penelitian ini penulis menggunakan metodologi waterfall dimana metode waterfall adalah suatu proses pengembangan perangkat lunak berurutan, di mana kemajuan dipandang sebagai terus mengalir ke bawah seperti air terjun melewati fase-fase perencanaan, pemodelan, implementasi(konstruksi), dan pengujian.
a. Analisa Kebutuhan Pengguna (User Requierment)
Tahap pertama ini adalah sebuah tahap yang dibutuhkan oleh pengguna untuk menyelesaikan masalah dengan adanya alat uji yang sudah dibuat dalam penelitian ini,dengan kata lain tahap ini kebutuhan pengguna untuk menyelesaikan masalah dengan adanya alat uji . Berikut adalah kebutuhan pengguna dalam menyelesaikan masalah : - Melihat hasil pengelompokan (cluster) - Melihat hasil akurasi confusion matrix
b. Analisa Kebutuhan Sistem (Sistem Requierment)
Tahap requirement atau spesifikasi kebutuhan sistem adalah analisa kebutuhan sistem yang dibuat dalam bentuk yang dapat dimengerti oleh user. Dalam tahap ini klien atau pengguna menjelaskan segala kendala dan tujuan serta mendefinisikan apa yang diinginkan dari sistem.
c. Desain (Design)
Tahap selanjutnya adalah desain, dalam tahap ini pengembang akan menghasilkan sebuah arsitektur sistem secara keseluruhan, dalam tahap ini menentukan alur perangkat lunak hingga pada tahapalgoritma yang detil.
32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
d. Pengkodean (Coding)
Pengkodean adalah tahap dimana perancangan diterjemahkan kedalam sebuah bahasa mesin pada komputer,kemudian menghasilkan sebuah alat uji yang digunakan untuk melihat apakah metode memiliki akurasi yang bagus atau tidak.
e. Pengujian (Testing)
Pada tahap terakhir adalah tahap pengujian untuk menguji apakah sistem uji ini sudah mampu memenuhi kebutuhan pengguna .
3.3 Analisa Kebutuhan Proses
Dalam
penelitian
ini
terdapat
2
tahap
penting
yaitu
pengelompokan(cluster) dan pengujian(testing).Pengelompokan bertujuan untuk melihat apakah 3 peran sudah dapat dikelompokan dengan baik yang kemudian dari masing-masing peran diambil yang terbaik dengan menampilkan id sang pemain dan pengujian digunakan untuk menguji seberapa akurat metode yang digunakan dalam penilitian ini mampu mengelompokan data dengan baik. Proses pengujian dan pengelompokan dapat dilihat pada gambar diagram blok dibawah .
33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 3. 2 Diagram blok proses clustering
Gambar 3. 3 Diagram blok proses perhitungan akurasi
34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.4 Implementasi Perancangan
3.4.1 Diagram Konteks
Gambar 3. 5 Diagram konteks proses clustering
Pada Gambar 3.6 di atas merupakan gambar diagram konteks atau bisa disebut juga sebagai data flow diagram level 0.Diagram ini merupakan level tertinggi dari data flow diagram .Diagram ini menjelaskan ruang linkgup dari sebuah alat uji yang akan dibangun.Terdapat salah satu proses besar pada diagram konteks tersebut yaitu proses clustering data pertandingan DOTA 2 dengan menggunakan Hierarchical Agglomerative Clustering.Pada diagram konteks terdepat seorang pengguna(User) sebagai pemberi input saat memilih sebuah normalisasi dan metode clustering ,yang kemudian sistem akan menampilkan hasil cluster beserta dengan hasil akurasinya.
35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.4.2 Data Flow Diagram Level 1
Gambar 3. 6 Diagram DFD level 1
Pada Gambar 3.7 di atas merupakan gambar data flow diagram level 1,diagram ini merupakan pecahan dari diagram konteks.terddepat user sebegai external entity,300 data peran pemain dari pertandingan DOTA 2. Proses pertama user memberikan pilihan dalam proses preprocesing yaitu akan menggunakan data asli ,normalisasi zscore atau normalisasi minmax setelah melakukan pilihan tersebut user juga akan memilih jenis metode cluster singlelinkage,complete-linkage atau average-linkage. Proses kedua user hanya menekan tombol cluster dan simpan dengan otomatis sistem akan memproses cluster kemudian akan menampilkan hasil dari cluster dan akurasi dari cluster tersebut.
36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.4.3 Data Flow Diagram level 2
DFD Level 2 no 1 Preprocessing
Gambar 3. 7 Diagram DFD level 2 untuk preprocesing
Pada Gambar 3.8 di atas merupakan data flow diagram level 2 untuk proses preprocesing.Pada diagram di atas terdapat 3 proses yaitu proses pertama adalah menghitung normalisasi untuk zscore , kemudian yang kedua adalah menghitung normalisasi untuk minmax dan proses terakhir adalah data reduksi dengan menggunakan PCA.Setelah semua data melewati proses tersebut data disimpan dalam bentuk excel kemudian akan diproses pengelompokan dengan Hierarchical Agglomerative Clustering.
37
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DFD Level 2 no 2 Clustering dan Akurasi data pertandingan
Gambar 3. 8 Diagram DFD level 2 untuk clustering data
Pada Gambar 3.9 adalah proses akhir dari sebuah clustering dimana akan menampilkan hasil akurasi serta dendrogram.Terdapat 4 proses dalam data flow diagram level 2 untuk clustering dan akurasi.Yang pertama setelah melewati proses preprocesing kemudian data akan dihitung jarak antara data dengan metode perhitungan jarak euclidean distance .Proses kedua adalah menghitung cluster single-linkage dengan menggunakan matriks jarak yang sudah didapatkan . Proses ketiga adalah menghitung cluster complete-linkage dengan menggunakan matriks jarak yang sudah didapatkan. Proses ketiga adalah menghitung cluster average38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
linkage dengan menggunakan matriks jarak yang sudah didapatkan.kemudian proses terakhir atau proses keempat adalah proses perhitungan akurasi dengan berdasarkan cluster yang terbentuk dan dendrogram yang terbentuk.
3.5 Penjelasan Proses
3.5.1 Baca Data
Setelah data dimasukan kedalam excel dan melewati tahap knowledge discovery in database data siap digunakan dalam proses selanjutnya yaitu preprocessing .Dalam sebuah pertandingan seorang Carry diwajibkan memiliki Gold-Per-Minute (GPM) yang tinggi karena dibutuhkan untuk membeli item atau barang yang menunjang kemenangan tim tersebut.
3.5.2 Pre-processing Setelah data siap maka proses selanjutnya adalah melakukan preprocessing pada data.terdapat 2 tahap Pre-processing sebelum data digunakan yaitu transformasi
data dengan
pertandingan.Selain
Z-score
transformasi
dan
data
MinMax juga
akan
terhadap 300 diuji
data
menggunakan
PCA(Principal component analysis) untuk menguji apakah akurasi dapat lebih besar atau sebaliknya.Bagi yang memilkiki peran Carry NETWORTH menjadi sangat penting karena dalam tim Carry diwajibkan memiliki item progres yang cepat , kemudian seroang Carry juga harus memiliki LAST_HIT yang banyak dan juga KILL yang banyak. Sangat berbeda dengan yang berperan sebagai Support dan Hard-support dalam peran ini harus merelekan item mereka demi seorang Carry
agar Carry menjadi kuat dengan kata lain Carry menjadi prioritas
utama.Dalam data terdapat atribut DAMAGE dimana atribut ini sangat tidak berpengaruh terhadap proses cluster karena DAMAGE adalah besar serangan yang masuk kedalam musuh seroang Support bisa saja memiliki DAMAGE yang besar karena skill yang dia miliki oleh karena itu atribut ini menggunakan normalisasi [0-1] agar tidak merusak proses clustering data berdasarkan proses
39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
dalam
permainan.sedangkan
NETWORTH
,GOLD_PER_MINUTE
dan
EXPERIENCE_PER_MINUTE menggunakan normalisasi [0-471] karena dari ketiga atribut itu sangat tergantung pada LAS_HIT .Berikut adalah tahap-tahap normalisasi :
a) Langkah-langkah function MinMax
1. Proses cut data pada data pertandingan DOTA 2 profesional 2016 pemotongan hanya pada atribut 4,8,9 dan 10. 2. Simpan data cut menjadi satu dalam bentuk excel dengan nama DATA_CUT_NORMALISASI.xlsx. 3. Kemudian membuat data yang tidak di-cut dalam proses di atas menjadi 1 dengan nama DATA_CUT_SISA_NORMALISASI.xlsx 4. Mengambil nilai dari data cut minmax ,kemudian menentukan nilai minimal dan maksimal yang baru untuk dipakai dalam perhitungan. 5. Menghitung
rumus
minmax
yaitu
minmax=(dataAwalcut-
nilai_max_baru)*( nilai_max_baru - nilai_min_baru)/( nilai_maxnilai_min)+ nilai_max 6. Kemudian data hasil perhitungan dengan rumus tersebut digabungkan dengan data sisa hasil cut kemudian dijadikan menjadi satu file excel untuk diolah dengan
nama
DATA_FINAL_HASIL_NORMALISASI.xlsx
b) Zscore menggunkan fungsi pada matlab %data zscore zscoredata=zscore(dataAwal);
c) Langkah-Langkah Perhitungan PCA
1.
membuat matriks x dengan cara mengurangi rata2 setiap dimensi pada matriks
2.
menghitung nilai covarience dari matriks x
40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.
menghitung eigenvector dan eigenvalue dari covariance matrix.
4.
Pilih komponen dan bentuk vector feature dan principal component dari eigenvector yang memiliki eigenvalue paling besar diambil (decreasing order).
5.
menurunkan satu set data baru
6.
kemudian
memasukan
jumlah
PCA
yang
digunakan
dalam
pemotongan data.
3.5.3 Pengukuran Jarak
Setelah proses Pre-processing selesai dilakukan langkah selanjutnya adalah pengukuran jarak dengan menggunakan salah satu metode yang ada.Seperti yang sudah dijelaskan sebelumnya dalam penelitian ini menggunakan Euclidean distance.
Tabel 3. 21 contoh matrix data
3.5.4 Clustering Ssetelah mendapatkan data matriks dari hasil pengukuran jarak kemudian akan masuk kedalam tahap clustering atau pengelompokan untuk mengelompokan peran-peran
berdasarkan
data
pertandingan
yang
sudah
diproses.Data
pertandingan akan diukur kemiripannya dengan agglomerative hierarchical clustering dengan metode single-linkage(jarak minimum),Complete-linkage(jarak maximum),Average-linkage(jarak rata-rata).Dari hasil clustering yang telah
41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
terbentuk kemudian menggambarkan sebuah dendrogram agar sebuah cluster dapat terlihat dengan mudah akan masuk dalam kelompok mana saja.
a. Single-linkage
Pengukuran jarak menggunakan single-linkage adalah mengukur jarak minimal antara setiap elemen data.Dari matriks jarak di atas 3 dan 4 adalah jarak terdekat kemudian pasangkan objek 3 dan 4 menjadi 1 cluster dengan data minimal.Hasil jarak baru membentuk matriks jarak baru dan kemudian dilanjutkan hingga tersisa 1 cluster.hasil dendrogramnya sebagai berikut :
Gambar 3. 94 contoh dendrogram single-linkage
b. Complete-linkage
Pengukuran jarak menggunakan complete-linkage adalah mengukur jarak minimal antara setiap elemen data.Dari matriks jarak di atas 3 dan 4 adalah jarak terdekat kemudian pasangkan objek 3 dan 4 menjadi 1 cluster dengan data minimal.Hasil jarak baru membentuk matriks jarak baru dan kemudian dilanjutkan hingga tersisa 1 cluster.hasil dendrogramnya sebagai berikut :
42
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 3. 50 contoh dendrogram complete-linkage
c. Average-linkage Pengukuran jarak menggunakan complete-linkage adalah mengukur jarak rata-rata antara setiap elemen data.Dari matriks jarak di atas 3 dan 4 adalah jarak terdekat kemudian pasangkan objek 3 dan 4 menjadi 1 cluster dengan data minimal.Hasil jarak baru membentuk matriks jarak baru dan kemudian dilanjutkan hingga tersisa 1 cluster.hasil dendrogramnya sebagai berikut :
Gambar 3. 61 contoh dendrogram average-linkage
43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.5.5 Perhitungan Akurasi Confusion Matrix
Setelah dendrogram ditampilkan selanjutnya adalah menguji apakah hasil clustering tersebut mendapatkan akurasi yang diinginkan atau tidak.Tabel perhitungan akurasi adalah sebuah tabel evaluasi cluster untuk mengetahui keakuratan agglomerative hierarchical clustering untuk mengelompokan peran pemain DOTA 2.Perhitungan ini membandingkan hasil pengelompokan denagn data asli , perlunya menghitung akurasi adalah untuk mengetahui seberapa bagus metode ini dapat mengelompokan peran pemain dengan baik. Tabel 3. 32 Tabel evaluasi confusion matrix
Cluster Peran
1
2
3
Carry
1
0
0
Hard-support
0
2
1
Support
0
0
1
Akurasi =
X 100%
= X 100% = 80%
44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.6 Perancangan Antar Muka Alat Uji
Gambar 3. 14 User interface alat uji
Dalam sebuah perancangan sistem atau membuat alat uji user interface sangat penting karena menghubungkan suatu sistem dengan pengguna ,dimana dalam sistem ditanamkan sebuah metode clustering agglomerative untuk menguji apakah metode ini baik dalam menemukan akurasi dengan data pertandingan DOTA 2 .Pada antar muka diatas terdapat 2 proses penting akan tetapi dijadikan menjadi 1 tombol dimana tombol cluster akan memproses cluster sekaligus mencari tingkat akurasi cluster Single-linkage,Complete-linkage dan juga Average-linkage .Berikut penjelasan check box dan tombol yang tersedia pada antar muka di atas : Tabel 3. 4 Penjelasan fungsi user interface alat uji
No Nama
Fungsi
1
Untuk menampilkan data asli dari data
Checkbox data asli
pertandingan DOTA 2 profesional 2016 2
Checkbox Z-score
Untuk menampilkan data hasil normalisasi Z-score dari data
45
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
pertandingan DOTA 2 profesional 2016 3
Checkbox MinMax
Untuk menampilkan data hasil normalisasi MinMax dari data pertandingan DOTA 2 profesional 2016
4
5
Checkbox Complete-
Untuk memilih jenis clustering dengan
linkage
metode Complete-linkage
Checkbox Average-linkage
Untuk memilih jenis clustering dengan metode Average-linkage
6
Checkbox single linkage
Untuk memilih jenis clustering dengan metode single linkage
7
Checkbox PCA
Untuk memilih akan menggunakan PCA atau tidak
8
Textfield PCA
Memasukan jumlah pemotongan feature yang diingankan
9
Tabel data
Menampilkan data agar dapat dilihat user
10
Graph hasil cluster
Menampilkan dendrogram hasil dari clustering yang telah dipilih
11
Tabel confusion matrix
Menampilkan hasil confusion matrix dari clustering
12
Tabel jumlah cluster
Menampilkan jumlah setiap cluster
13
Kolom akurasi
Menampilkan hasil akurasi dari sebuah cluster dengan menghitung hasil benar dibagi jumlah data
14
15
Graph
perbandingan Menampilkan hasil perbandingan
cluster
cluster 1, 2 dan 3
Tombol cluster dan simpan
Memproses cluster yang sudah di pilih normalisasi , metode clusterny dan menggunakan PCA atau tidak , serta menyimpan data kedalam txt
46
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Submenu file
17
Submenu help
3.7 Spesifikasi Hardware dan Software
Pada tahap implementasi spesifikasi hardware dan software yang digunakan adalah sebagai berikut : 1. Software a. Sistem Operasi : Microsoft Windows 7 Ultimate 32-bit b. Software
: Matlab versi 8.0.0.783(R2012b)
2. Hardware a. Processor : Intel® Celeron® CPU 877 @1.40GHz b. RAM
: 2GB
c. Harddisk : 320 GB
47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 4 IMPLEMENTASI HASIL DAN ANALISA Pada bab ini membahas mengenai hasil dari pengelompokan data pertandingan DOTA 2 dengan agglomerative hierarchical clustering . Selain itu juga hasil keakuratan dari metode dijelaskan pada bab ini.
4.1
Hasil Penelitian dan Analisis
Pada tahap pengujian dan implementasi data yang telah dilakukan terhadap 300 data pertandingan DOTA 2 profesional dengan pembagian peran Carry,Support dan Hard-support.Dalam data pertandingan atribut NETWORTH , GPM(gold per minute) dan XPM (experience per minute) menjadi sangat penting dalam melihat peran apa yang di lakukan oleh pemain tersebut .
Tabel 4. 1 Deskripsi masing-masing peran
No
Peran
Keterangan
1
Carry
Memiliki NETWORH
,Last hit , GPM(gold per
minute) dan XPM (experience per minute) yang tinggi untuk cepat mendapatkan item.Dan angka DEATH yang rendah. 2
Hard-support
Memiliki DENIED dan ASSIST yang tinggi untuk menghambat
Carry
lawan
berkembang,serta
memiliki angka DEATH tinggi karena selalu yang pertama diincar lawan. 3
Support
Memiliki DENIED
,ASSIST , GPM(gold per
minute) dan XPM (experience per minute) yang tinggi untuk cepat menaikan level serta membantu menghambat Carry lawan berkembang.
48
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Dalam sebuah pertandingan seorang pemain dapat berubah peran tergantung pada situasi musuh dan kendala waktu.Dalam data terdapat atribut DAMAGE ,atribut ini mengindikasikan berpa jumlah serangan yang masuk kedalam hero lawan
.Atribut
DAMAGE
menjadi
sangat
tidak
berpengaruh
dalam
pengelompokan karena bisa saja Support dan Hard-support memiliki nilai DAMAGE yang besar .
Tabel 4. 2 Contoh perbedaan damage hero berdasarkan peran
No
kemampuan
1
Peran
Keterangan
Hard- Support
Hero
seperti
memiliki
ini
sangat
damage
besar
dalam skill akan tetapi dia berperan sebagai Support Finger of Death (Lion)
karena
memiliki
sekill
Damage level max : 850
pendukung lainya berupa stun dan disable.
2
Support
Hero
Support
serperti
tidehunter sangat penting dalam sebuah tim karena memiliki skill stun yang Ravage (Tidehunter)
sangat luas jangkauannya
Damage level max : 380
dan
mampu
dalam
membuka sebuah war. 3
Carry
Salah satu hero terkuat dalam
DOTA
2
adalah
alchemist dengan skillnya walaupun tidak memiliki Chemical rage
damage pada kemampuanya
(Alchemist)
akan tetapi dengan item
Tidak ada damage
pendukung yang dia miliki dia dapat bertahan hidup dan membuat lawan tidak
49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
berkutik.
1. Perbandingan akurasi tanpa Principal Component Analysis(PCA) Dari seluruh percobaan tanpa menggunakan PCA hanya normalisasi MinMax dengan Complete-linkage mendapat akurasi paling besar yiatu 93% walaupun tidak mencapai 100% akurasi ini terbilang sudah sangat bagus.Kemudian akurasi paling buruk adalah MinMax dengan singlelinkage dengan akurasi 50% akurasi ini terlbilang buruk karena belum mencapai target yang diinginkan.Akurasi terbaik kedua adalah 82% masih dalam normalisasi MinMax dengan Average-linkage.
Tabel 4.3 perbandingan akurasi tanpa PCA
Metode
Normalisasi
Akurasi
Single-linkage
Tidak
51%
Complete-linkage
Tidak
62%
Average-linkage
Tidak
51%
Single-linkage
Z-score
54%
Complete-linkage
Z-score
55%
Average-linkage
Z-score
51%
Single-linkage
MinMax
50%
Complete-linkage
MinMax
93%
Average-linkage
MinMax
82%
Metode normalisasi MinMax menjadi sangat optimal dalam normalisasi dikarenakan metode ini mampu mentransformasi beberapa atribut saja dibandingkan normalisasi Z-score.Dalam MinMax transformasi dilkakukan terhadap 4 atribut dimana digai lagi menjadi 2 yaitu atribut DAMAGE normalisasi MinMax dengan nilai minimal 0 dan nilai maksimal 1 dan atribut NETWORTH,GPM(gold per minute) dan XPM(experience per minute) nilai minimal dengan 0 dan nilai maksimal 471 .Atribut DAMAGE
50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
menggunakan [0,1] dikarenakan atribut ini tidak memiliki sesuatu yang berpengaruh dan cenderung dapat mengganggu pengelompokan data serta nilai datanya sangat besar dan memiliki jarak yang sangat jauh dengan data lain ,oleh karena itu perlu dilakukan normalisasi agar data dapat dikelompokan dengan baik tanpa adanya masalah.Kemudian untuk ketiga atribut NETWORTH,GPM(gold per minute) dan XPM(experience per minute) menggunakan normalisasi [0,471] nilai maksimal dan minimal diambil dari atribut LAST_HIT karena atribut ini berpengaruh terhadap 3 atribut di atas .Karena jarak data yang terlalu besar pada atribut NETWORTH maka normalisasi ini juga sekaligus membuat jarak data menjadi tidak terlalu jauh dan data dapat diolah dengan baik.Atribut yang paling berpengaruh dalam pengelompokan peran pemain DOTA 2 sebenarnya adalah atribut NETWORTH jika bernilai rendah berperan sebagai Hard-support ,sedang Support dan tinggi adalah seorang Carry.Normalisasi MinMax dalam pengelompokan data pemain menjadi sangat baik karena normalisasi ini mampu melakukan transformasi terhadapa beberapa atribut data saja yang penting tanpa harus membuang sebuah atribut.Berikut grafik perhitungan akurasi tanpa menggunakan PCA :
Gambar 4. 2 grafik akurasi tanpa PCA
Gambar grafik di atas menjelaskan perbandingan 2 normalisasi dan 1 dengan data asli dimana data asli diwakilkan oleh warna merah ,normalisasi 51
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Z-score diwakilkan dengan warna biru dan normalisasi MinMax diwakilkan dengan warna kuning.Terlihat dari gambar bahwa normalisasi MinMax dengan nilai akurasi tertinggi dengan 93% untuk Complete-linkage dan 82% untuk Average-linkage.Normalisasi MinMax juga terdapat pengelompokan yang buruk yaitu pada Single-linkage dikarenakan pada metode Singlelinkage
pengambilan
nilai
adalah
yang
terdekat
atau
minimal
mengakibatkan data pengelompokan yang seharusnya saling memisahkan menjadi beberapa cluster akan bergabung menjadi satu seperti terlihat pada gambar 4.7 dendrogram MinMax single-linkage.Karena untuk data pertandingan DOTA 2 pencarian jarak dengan mengambil nilai terendah belum memenuhi harapan.Tidak hanya pada normalisasi MinMax saja metode single-linkage sterlihat buruk dalam menghasilkan akurasi, dalam gambar diatas hanya pada normalisasi Z-score saja single-linkage terlihat memiliki akurasi yang tinggi diantara 2 metode lainnya.Kemudian Complete-linkage mendapat nilai akurasi tertinggi dnegan dilakukannya normalisasi data atau tidak metode ini tetap menjadi yang tertinggi karena pengambilan nilai jarak yang paling besar ketika cluster dilakukan menjadi sangat berpengaruh.Terakhir adalah metode Average-linkage masih diantara kedua metode dengan akurasi dibawah compelte-linkage dan di atas singlelinkage.Penjelasan di atas adaalah mengapa MinMax menjadi yang paling bagus dalam normalisasi dan metode Complete-linkage menjadi sangat bagus ketika normalisasi MinMax.
2. Perbandingan akurasi dengan Principal Component Analysis(PCA) Dari seluruh percobaan menggunakan PCA hanya yang menggunakan data asli dengan Complete-linkage mendapat akurasi paling besar yiatu 57% Kemudian akurasi paling buruk adalah MinMax dengan Average-linkage dengan akurasi 46% akurasi ini terlbilang buruk karena belum mencapai target yang diinginkan.Akurasi terbaik kedua adalah 53% masih dalam normalisasi Z-score single-linkage dan Average-linkage.
52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4.4 perbandingan akurasi dengan menggunakan PCA
Percobaan
Metode
Normalisasi
Akurasi
Single-linkage
Tidak
50%
Complete-linkage
Tidak
57%
Average-linkage
Tidak
50%
Single-linkage
Z-score
53%
Complete-linkage
Z-score
49%
Average-linkage
Z-score
53%
Single-linkage
MinMax
50%
Complete-linkage
MinMax
50%
Average-linkage
MinMax
46%
kedua
dilakukan
dengan
menggunakan
PCA(principal
component analysis) , dalam percobaan menggunakan data reduction belum dapat melebihi akurasi tanpa menggunakan PCA(principal component analysis) seperti diatas terlihat hanya 57% akurasi terbesar.Pemotongan data yang digunakan sebanyak 5 dikarenakan dengan pemotongan 5 pada PCA mendapat akurasi paling besar diantara pemotongan dengan jumlah lain,akan tetapi tetap belum mampu melebihi akurasi yang didapatkan tanpa menggunakan PCA diakarenakan dalam proses PCA terdapat beberapa feature penting yang terpotong atau terbuang pada proses ,mengakibatkan pengelompokan mendapat akurasi yang buruk.Beberapa dendrogram terlihat bagus seperti pada normalisasi MinMax dengan PCA akan tetapi belum mendapatkan hasil setinggi normalisasi MinMax tanpa PCA.
53
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4. 3 grafik akurasi dengan menggunakan PCA
Terlihat dari gambar grafik di atas bahwa compelte-linkage pada data asli ditambah dengan PCA menjadi paling tinggi tingkat akurasinya dengan 57% kemudian nilai tingkat akurasi paling rendah adalah average-linakge dengan normalisasi MinMax ditambah dengan PCA yaitu 46%.Untuk dapat melihat lebih detail tentang hasil yang lebih optimal dan hasil yang belum memenuhi akurasi yang diinginkan dapat dilihat dari tabel dan grafik dibawah :
Tabel 4. 5 Hasil akurasi dari normalisasi
54
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4. 4 Grafik hasil akurasi dari normalisasi
Dari grafik akurasi dilihat berdasarkan normalisasi ,normalisasi MinMax mendapatkan tingkat akurasi tertinggi sekaligus mendapat tingkat akurasi terendah karena menggunakan PCA sedangkan MinMax tertinggi tidak menggunakan PCA.Jadi dalam penggunaan normalisasi MinMax masih menjadi yang tertinggi tingkat akurasi nya dibandingkan tidak melakukan normalisasi ataupun dengan normalisasi Z-score. Tabel 4. 6 Hasil akurasi dari metode
55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4. 5 Grafik hasil akurasi dari metode
Dari grafik tingkat akurasi yang dilihat berdasarkan metode terlihat bahwa metode Complete-linkage menempati tingkat akurasi tertinggi kemudian tempat kedua tertinggi adalah metode Average-linkage dan single-linkage masih belum memenuhi akurasi yang diinginkan.Jadi dalam penentuan metode mana yang baik Complete-linkage dan Average-linkage menjadi yang terbaik dalam penelitian ini, karena dalam single-linkage pengambilan nilai dilakukan yang terkecil sehingga membuat pengelompokan semakin mirip satu sama lain. Tabel 4. 7 Hasil akurasu dari PCA
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4. 6 Grafik hasil akurasi dari PCA
Dari grafik tingkat akurasi yang dilihat dari PCA atau tidak terlihat bahwa data yang tidak melakukan data reduction dengan PCA mendapatkan tingkat akurasi tertinggi sedangkan data yang melalui proses PCA terdapat beberapa feature penting yang terhapus sehingga proses pengelompokan tidak sesuai yang diinginkan sehingga mendapat tingkat akurasi yang rendah.Untuk proses PCA belum mampu meningkatkan akurasi bahkan merusak tingkat akurasi.
4.2
Hasil Cluster dan Pengujian Confusion Matrix
Percobaan pertama adalah tanpa menggunakan normalisasi terhadap 300 data dengan metode agglomerative hierarchical clustering pertandingan menghasilkan dendrogram seperti dibawah :
1) Percobaan tanpa normalisasi terhadap 300 data asli pada tabel 4.8 Hasil akurasi paling besar dari data asli tanpa normalisasi adalah Complete-linkage dengan 62% kemudian average dan single dengan nilai akurasi sama yaitu 51% .Tabel akurasi data asli tanpa normalisasi dapat
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
dilihat pada tabel 4.8 ,dan juga dendrogram beserta confusion matrix untuk ketiga metode tersedia dibawah setelah tabel akurasi.
Tabel 4. 8 Hasil akurasi data asli tanpa normalisasi
a.
Metode
Normalisasi
Akurasi
Single-linkage
Tidak
51%
Average-linkage
Tidak
51 %
Complete-linkage
Tidak
62 %
Single linkage data asli
Gambar 4. 7 Dendrogram single-linkage data asli
Tabel 4. 9 Confusion matrix single-linkage data asli
Cluster Peran
1
2
3
Hard-support
2
99
1
Carry
0
151
0
Support
1
46
0
Akurasi = =
X 100% X 100% = 51% 58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b.
Average-linkage data asli
Gambar 4. 8 dendrogramaverage-linkage data asli
Tabel 4. 10 Confusion matrix Average-linkage data asli
Cluster Peran
1
2
3
Hard-support
2
99
1
Carry
0
151
0
Support
5
42
0
Akurasi = =
X 100% X 100% = 51%
59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c.
Complete-linkage data asli
Gambar 4. 9 Dendrogram complete-linkage data asli
Tabel 4. 11 Confusion matrix Complete-linkage data asli
Cluster Peran
1
2
3
Carry
148
3
0
Hard-support
63
38
1
Support
12
35
0
Akurasi = =
X 100% X 100% = 62%
2) Percobaan dengan normalisasi Z-score terhadap 300 data asli pada tabel 4.12 Hasil akurasi paling normalisasi Z-score adalah Complete-linkage dengan 55% kemudian single-linkage dengan nilai akurasinya 54%,kemudian disusul oleh Average-linkage dengan nilai akurasinya 51%.Tabel akurasi dengan normalisasi Z-score dapat dilihat pada tabel 4.12 ,dan juga dendrogram beserta confusion matrix untuk ketiga metode tersedia dibawah setelah tabel akurasi.
60
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4. 123 hasil akurasi dengan normalisasi Z-score
Metode
Normalisasi
Akurasi
Single-linkage
Z-score
54 %
Complete-linkage
Z-score
55 %
Average-linkage
Z-score
51 %
a. Single-linkage Z-score
Gambar 4. 10 Dendrogram single-linkage data Z-score
Tabel 4.13 Confusion matrix single-linkage Z-score
Cluster Peran
1
2
Hard-support
11
90
1
Carry
1
150
0
Support
6
41
0
Akurasi = =
3
X 100% X 100% = 54%
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Complete-linkage Z-score
Gambar 4. 11 Dendrogram complete-linkage data Z-score
Tabel 4.14 Confusion matrix Complete-linkage data asli
Cluster Peran
1
2
3
Hard-support
57
0
0
Carry
86
108
1
Support
48
0
0
Akurasi = =
X 100% X 100% = 55%
c. Average-linkage Z-score
Gambar 4. 12 Dendrogram average-likage data Z-score
62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4.15 Confusion matrix Average-linkage data asli
Cluster Peran
1
2
3
Hard-support
2
99
1
Carry
0
151
0
Support
1
46
0
Akurasi = =
X 100% X 100% = 51%
3) Percobaan dengan normalisasi MinMax terhadap 300 data asli pada tabel 4.16 Hasil akurasi paling normalisasi MinMax adalah Complete-linkage dengan 93% kemudian Average-linkage dengan nilai akurasinya 82%,kemudian disusul oleh
single-linkage dengan nilai akurasinya
50%.Tabel akurasi dengan normalisasi MinMax dapat dilihat pada tabel 4.16 ,dan juga dendrogram beserta confusion matrix untuk ketiga metode tersedia dibawah setelah tabel akurasi.
Tabel 4.16 hasil akurasi dengan normalisasi MinMax
Metode
Normalisasi
Akurasi
Single-linkage
MinMax
50 %
Complete-linkage
MinMax
93 %
Average-linkage
MinMax
82 %
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
a. Single-linkage MinMax
Gambar 4. 13 Dendrogram single-linkage data MinMax
Tabel 4.17 Confusion matrix single-linkage MinMax
Cluster Peran
1
2
3
Hard-support
0
102
0
Carry
1
149
1
Support
0
47
0
Akurasi = =
X 100% X 100% = 50%
64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Complete-linkage MinMax
Gambar 4. 14 Dendrogram complete-linkage data MinMax
Tabel 4.18 Confusion matrix Complete-linkage MinMax
Cluster Peran
1
2
3
Hard-support
95
4
3
Carry
2
147
2
Support
2
7
38
Akurasi = =
X 100% X 100% = 93%
65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c. Average-linkage MinMax
Gambar 4. 15 Dendrogram average-linkage data MinMax
Tabel 4.19 Confusion matrix Average-linkage MinMax
Cluster Peran
1
2
3
Hard-support
3
37
7
Support
0
98
4
Carry
1
4
146
Akurasi = =
X 100% X 100% = 82%
4) Percobaan tanpa normalisasi dan PCA terhadap 300 data asli pada tabel 4.20 Hasil akurasi paling besar dari data asli tanpa normalisasi dan PCA adalah Complete-linkage dengan 57% kemudian Average-linkage dan singlelinkage dengan nilai akurasi sama yaitu 50% .Tabel akurasi data asli tanpa normalisasi dan PCA dapat dilihat pada tabel 4.20 ,dan juga dendrogram beserta confusion matrix untuk ketiga metode tersedia dibawah setelah tabel akurasi.
66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4.20 data asli tanpa normalisasi dan PCA
Metode
Normalisasi
Akurasi
Single-linkage
Tidak + (PCA)
50%
Complete-linkage
Tidak + (PCA)
57%
Average-linkage
Tidak + (PCA)
50%
a. Single-linkage data asli + PCA
Gambar 4. 16 Dendrogram single-linkage data asli + PCA
Tabel 4.21 Confusion matrix single-linkage data asli + PCA
Cluster Peran
1
2
3
Hard-support
1
100
1
Carry
1
150
0
Support
0
47
0
Akurasi = =
X 100% X 100% = 50%
67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Complete-linkage data asli + PCA
Gambar 4. 17 Dendrogram compelte-linakge data asli + PCA
Tabel 4.22 Confusion matrix Complete-linkage data asli + PCA
Cluster Peran
1
2
Hard-support
23
78
1
Carry
4
147
0
Support
21
26
0
Akurasi = =
3
X 100% X 100% = 56%
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c. Average-linkage asli + PCA
Gambar 4. 18 Dendrogram average-linakge data asli + PCA
Tabel 4.23 Confusion matrix Average-linkage data asli + PCA
Cluster Peran
1
2
3
Hard-support
2
99
1
Carry
4
147
0
Support
1
46
0
Akurasi = =
X 100% X 100% = 50%
5) Percobaan dengan normlisasi Z-score dan PCA terhadap 300 data asli pada tabel 4.24
Hasil akurasi paling normalisasi Z-score dan PCA adalah single-linkage dan Average-linkage dengan nilai akurasinya 53%,kemudian disusul oleh Complete-linkage dengan nilai akurasinya 49% Tabel akurasi dengan 69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
normalisasi Z-score dan PCA dapat dilihat pada tabel 4.24 ,dan juga dendrogram beserta confusion matrix untuk ketiga metode tersedia dibawah setelah tabel akurasi.
Tabel 4.24 hasil akurasi normalisasi Z-score dan PCA
Metode
Normalisasi
Akurasi
Single-linkage
Z-score + (PCA)
53%
Complete-linkage
Z-score + (PCA)
49%
Average-linkage
Z-score + (PCA)
53%
a. Single-linkage Z-score + PCA
Gambar 4. 19 Dendrogram single-linakge data Z-score + PCA
Tabel 4.25 Confusion matrix single-linkage Z-score + PCA
Cluster Peran
1
2
Hard-support
11
90
1
Carry
3
148
0
Support
6
41
0
Akurasi = =
3
X 100% X 100% = 53%
70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Complete-linkage Z-score + PCA
Gambar 4. 20 Dendrogram complet-linkage data Z-score + PCA
Tabel 4.26 Confusion matrix Complete-linkage Z-score + PCA
Cluster Peran
1
2
3
Hard-support
104
47
0
Carry
58
43
1
Support
33
14
0
Akurasi = =
X 100% X 100% = 49%
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
c. Average-linkage Z-score + PCA
Gambar 4. 21 Dendrogram average-linkage data Z-score + PCA
Tabel 4.27 Confusion matrix Average-linkage Z-score + PCA
Cluster Peran
1
2
Hard-support
11
90
1
Carry
3
148
0
Support
6
41
0
Akurasi = =
3
X 100% X 100% = 53%
6) Percobaan dengan normalisasi MinMax dan PCA terhadap 300 data asli pada tabel 4.28 Hasil akurasi paling normalisasi MinMax dan PCA adalah Complete-linkage dan single-linkage dengan nilai akurasinya 50%,kemudian disusul dengan Average-linkage dengan nilai akurasinya 46% .Tabel akurasi dengan normalisasi MinMax dapat dilihat pada tabel 4.28 ,dan juga dendrogram beserta confusion matrix untuk ketiga metode tersedia dibawah setelah tabel akurasi.
72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4.29 hasil akurasi dengan normalisasi MinMax dan PCA
Metode
Normalisasi
Akurasi
Single-linkage
MinMax + (PCA)
50%
Complete-linkage
MinMax + (PCA)
50%
Average-linkage
MinMax + (PCA)
46%
a. Single-linkage MinMax + PCA
Gambar 4. 22 Dendrogram single-linkage data MinMax + PCA
Tabel 4.30 Confusion matrix single-linkage MinMax + PCA
Cluster Peran
1
2
3
Hard-support
1
101
0
Carry
0
150
1
Support
0
47
0
Akurasi = =
X 100% X 100% = 50%
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Complete-linkage MinMax + PCA
Gambar 4. 23 Dendrogram complete-linkage data MinMax + PCA
Tabel 4.31 Confusion matrix Complete-linkage MinMax + PCA
Cluster Peran
1
2
3
Hard-support
7
29
11
Carry
16
108
27
Support
16
50
36
Akurasi = =
X 100% X 100% = 50%
c. Average-linkage MinMax + PCA
Gambar 4. 24 Dendrogram average-linkage data MinMax + PCA
74
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 4.32 Confusion matrix Average-linkage MinMax + PCA
Cluster Peran
1
2
Hard-support
49
49
4
Carry
59
87
5
Support
26
19
2
Akurasi = =
3
X 100% X 100% = 46%
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 5 KESIMPULAN DAN SARAN Halaman ini menjelaskan mengenai kesimpulan dari penelitian terkait dengan pengelompokan peran pemain DOTA 2 pada pertandignan proffesional.Pada halaman ini juga akan dijelaskan saran yang diberikan pada program yang usdah dibuat
5.1
Kesimpulan Pengelompokan peran pemain DOTA 2 dalam pertandingan proffesional
2016 melalui 6 uji coba yaitu tanpa normalisasi,dengan normalisasi MinMax , normalisasi Z-score, tanpa normalisasi + PCA , normalisasi MinMax + PCA , dan normalisasi Z-score + PCA.Berdasarkan hasil percobaan diatas ,kesimpulan yang dapat diambil sebagai berikut : 1. Metode pengelompokan Agglomerative hierarchical clustering mampu dengan baik mengelompokan peran pemain DOTA 2 dengan akurasi yang baik 2. Percobaan dengan normalisasi MinMax dengan Complete-linkage menghasilkan akurasi yang baik dengan akurasi mencapai 93% .Dalam normalisasi MinMax mentransformasi label damage dengan [0-1] kemudian transformasi dengan MinMax label GPM,XPM, dan Networth dengan [0-471] mempu membedakan jenis peran pemain dalam pertandingan DOTA 2 dikarenakan label damage jika tidak dinormalisasi akan merusak hasil pengelompokan karena tidak terlalu berhubungan dengan data akan tetapi damage berhubungan dengan skill hero-hero tertentu. 3. Percobaan dengan PCA menggunakan pemotongan sebesar 5 feature dikarenakan mendapatkan hasil paling besar dari percobaan pemotongan beberapa feature. 4. Pengelompokan tanpa normalisasi atau hanya menggunakan data asli sangat tidak bagus dalam pengelompokan karena data asli didalamnya ada beberapa data yang masih bergantung dengan label lainnya oleh karena itu membutuhkan normalisasi. 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5. Percobaan Z-score juga belum memenuhi akurasi yang di inginkan karena Z-score menggunakan standar deviasi untuk semua data. 6. Secara rata-rata akurasi , akurasi dengan Complete-linkage lebih baik dibandingkan single-linkage dan Average-linkage. 7. Dari keseluruhan hasil dendrogram yang terlihat bagus adalah dengan normalisasi MinMax dan MinMax + PCA hanya saja MinMax dengan PCA belum mengelompokan dengan baik karena adanya feature penting yang terbuang.
5.2 Saran Saran yang diperlukan untuk pengembangan program lebih lanjut,sebagai berikut : 1. Menambahkan beberapa peran lagi selain 3 peran utama. 2. Menambahkan feature baru untuk data pertandingan. 3. Perhitungan jarak dapat mencoba dengan metode yang lain selain singlelinkage,Complete-linkage dan Average-linkage.
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA Asrini, Christina Wiend.2013.”Identifikasi Penyakit Hepatitis dengan Pendekatan Agglomerative hierarchical Clustering”, Universitas Sanata Dharma, Yogyakarta. Smith, Lindsay 2002.”A tutorial on Principal Component Analysis”, International Institute Of Information Technology,Hyderabad. Alfina,Tahta dkk 2012.” Analisa Perbandingan Metode Hierarchical Clustering, K-means dan Gabungan Keduanya dalam Cluster Data”, Institut Teknologi Sepuluh Nopember,Surabaya. Tarigan,Avianta 2008.” Data Mining Pengenalan Sistem & Teknik, Serta Contoh Aplikasi”, Universitas Gunadarma,Jakarta. Tan, Steinbach dkk 2004.” Introduce to Data Mining”, Austria. Laeli,Sofya 2014.” Analisis Cluster dengan Average Linkage Method dan Ward’s Method untuk Data Responden Nasabah Asuransi Jiwa Unit Link”, Universitas Negeri Yogyakarta. KDD. 2013. diakses pada tanggal 1 Desember 2016 pada pukul 14:30 WIB dari https://dnial.wordpress.com/2007/04/27/kdd-dan-data-mining/ Stak overflow. 2015. diakses pada tanggal 1 januari 2017 pada pukul 18:30 WIB dari http://stackoverflow.com/questions/24717992/hierarchicalagglomerative-clustering-in-prolog
78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN function varargout = Skrip_jadi(varargin) % SKRIP_JADI MATLAB code for Skrip_jadi.fig % SKRIP_JADI, by itself, creates a new SKRIP_JADI or raises the existing % singleton*. % % H = SKRIP_JADI returns the handle to a new SKRIP_JADI or the handle to % the existing singleton*. % % SKRIP_JADI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in SKRIP_JADI.M with the given input arguments. % % SKRIP_JADI('Property','Value',...) creates a new SKRIP_JADI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Skrip_jadi_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Skrip_jadi_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Skrip_jadi % Last Modified by GUIDE v2.5 25-Dec-2016 23:28:42 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Skrip_jadi_OpeningFcn, ... 'gui_OutputFcn', @Skrip_jadi_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
79
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
function [X,M1,M2,M3]=jumlahcluster(clusternya) %cari data setiap cluster C1=find(clusternya==1); C2=find(clusternya==2); C3=find(clusternya==3); [M1,N1]=size(C1); [M2,N2]=size(C2); [M3,N3]=size(C3); X = [M1 M2 M3];
function [c1,c2,c3]=simpanText(clus1,clus2,clus3,str1,str2,str3,file,akur) %simpan text data dan cari 5 peran terbaik berdasarkan rata2 c1 = num2str(clus1); c2 = num2str(clus2); c3 = num2str(clus3); akurasi = num2str(akur); fprintf(file,'%s\n', str1,str2,str3); fprintf(file,'\n\n'); fprintf(file,'%s\n','=========JUMLAH SETIAP CLUSTER======== '); fprintf(file,'Cluster 1 : '); fprintf(file,c1); fprintf(file,' Data '); fprintf(file,'\n'); fprintf(file,'Cluster 2 : '); fprintf(file,c2); fprintf(file,' Data '); fprintf(file,'\n'); fprintf(file,'Cluster 3 : '); fprintf(file,c3); fprintf(file,' Data '); fprintf(file,'\n'); fprintf(file,'======================================'); fprintf(file,'\n'); fprintf(file,'\n'); fprintf(file,'===========AKURASI DATA =============='); fprintf(file,'\n');
80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
fprintf(file,'Akurasi : '); fprintf(file,akurasi); fprintf(file,'%%'); fprintf(file,'\n'); fprintf(file,'======================================'); fprintf(file,'\n'); fprintf(file,'\n'); function [dataminmax01] = normalisasi(data) %membuat data cut data10=data(:,10); data4=data(:,4); data89=data(:,8:9); %save data baru yang sudah dicut filenamecut = 'DATA_CUT_NORMALISASI.xlsx'; Acut = [data4 data89 data10]; sheetcut = 1; xlRangecut = 'B2'; xlswrite(filenamecut,Acut,sheetcut,xlRangecut); %membuat data sissa cut data123=data(:,1:3); data567=data(:,5:7); data11121314=data(:,11:end); datasisa=[data123 data567 data11121314]; %save data baru yang sudah dicut filenamesisa = 'DATA_CUT_SISA_NORMALISASI.xlsx'; Asisa = [data123,data567,data11121314]; sheetsisa = 1; xlRangesisa = 'B2'; xlswrite(filenamesisa,Asisa,sheetsisa,xlRangesisa); %mengambil nilai dari 2 data [dataAngka,dataText]=xlsread('DATA_CUT_NORMALISASI.xlsx'); handles.dataAngka=dataAngka; dataAwalcut01=dataAngka(:,4); dataAwalcut0471=dataAngka(:,1:3); %hitung minmax a01 = min(dataAwalcut01(:)); b01 = max(dataAwalcut01(:)); ra01 = 1; rb01 = 0; a0471 = min(dataAwalcut0471(:)); b0471 = max(dataAwalcut0471(:)); ra0471 = 471; rb0471 = 0; dataminmax01=(dataAwalcut01-a01)*(ra01-rb01)/(b01-a01)+rb01 dataminmax0471=(dataAwalcut0471-a0471)*(ra0471-rb0471)/(b0471a0471)+rb0471 %dataminmax=((dataAwalcut-a)/(b-a))*(ra-rb)+rb %dataminmax = (((ra-rb) * (dataAwalcut - a)) / (b - a)) + rb;
81
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% (data-min)*(newmax-newmin)/(max-min)+newmin %save data baru hasil yang sudah dicut filenamecuthasil = 'DATA_HASIL_CUT_NORMALISASI.xlsx'; Acuthasil = [dataminmax01 dataminmax0471]; sheetcuthasil = 1; xlRangecuthasil = 'B2'; xlswrite(filenamecuthasil,Acuthasil,sheetcuthasil,xlRangecuthasil) ; %save hasil data baru yang sudah normalisasi [dataAngkafinal,dataTextfinal]=xlsread('DATA_HASIL_CUT_NORMALISASI .xlsx'); handles.dataAngkafinal=dataAngkafinal; awalfinal=dataTextfinal(:,1:end); dataAwalfinal10=dataAngkafinal(:,1); dataAwalfinal4=dataAngkafinal(:,2); dataAwalfinal89=dataAngkafinal(:,3:4); filenamehasil = 'DATA_FINAL_HASIL_NORMALISASI.xlsx'; Ahasil = [data123,dataAwalfinal4,data567,dataAwalfinal89,dataAwalfinal10,da ta11121314]; sheethasil = 1; xlRangehasil = 'B2'; xlswrite(filenamehasil,Ahasil,sheethasil,xlRangehasil);
function [ dataHasilPCA, indeksPCA ] = ProsesPCA( data,jumlahPCA) %proses algoritma PCA %membuat matriks x dengan cara mengurangi rata2 setiap dimensi pada matriks %data [jumlahBaris,jumlahKolom] = size(data); rata2data = mean(data); X=data; for i=1:jumlahBaris for j=1:jumlahKolom X(i,j)=data(i,j)-rata2data(j); end end %menghitung nilai covarience dari matriks x Cx=cov(X); % menghitung eigenvector dan eigenvalue dari covariance matrix. [eigenvector,eigenvalue]=eig(Cx); % Pilih komponen dan bentuk vector feature dan principal component dari %eigenvector yang memiliki eigenvalue paling besar diambil (decreasing order). eigenvalue=diag(eigenvalue); [~, indeks]=sort(eigenvalue,'descend'); featureVector=eigenvector(:,indeks); % menurunkan satu set data baru dataBaru = X*featureVector; % jumlahPCA adalah jumlah PCA yg aan digunakan dalam pemotongan
82
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
data if jumlahPCA==0 [jmlIndeks,~]=size(indeks); indeksPCA=indeks; dataHasilPCA=dataBaru(:,1:jmlIndeks); else indeksPCA=indeks(1:jumlahPCA); dataHasilPCA = dataBaru(:,1:jumlahPCA); end
% --- Executes just before Skrip_jadi is made visible. function Skrip_jadi_OpeningFcn(hObject, eventdata, handles, varargin) axes(handles.sadhar); imshow(imread('sadhar2.png')); axes(handles.dota); imshow(imread('dota2.jpg'));
set(handles.tabelutama,'visible','on'); set(handles.dataPCA,'Enable','off') % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Skrip_jadi (see VARARGIN) % Choose default command line output for Skrip_jadi handles.output = hObject; % Update handles structure guidata(hObject, handles);
%memasukan data excel %set info tabel % UIWAIT makes Skrip_jadi wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = Skrip_jadi_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure
83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% eventdata MATLAB % handles
reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in checkbox1. function checkbox1_Callback(hObject, eventdata, handles) % hObject handle to checkbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox1
% --- Executes on button press in checkbox2.
84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
function checkbox2_Callback(hObject, eventdata, handles) % hObject handle to checkbox2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox2
% --- Executes on button press in checkbox3. function checkbox3_Callback(hObject, eventdata, handles) % hObject handle to checkbox3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox3
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject % eventdata MATLAB % handles
handle to pushbutton2 (see GCBO) reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)
dataawal=get(handles.dataasli,'Value'); dataminmax=get(handles.minmaxnormal,'Value'); datazscore=get(handles.zscorenormal,'Value'); single=get(handles.pilihsingle,'Value'); complete=get(handles.pilihcomplete,'Value'); average=get(handles.pilihaverage,'Value'); pcadata=get(handles.dataPCA,'Value'); % myEdist = squeeze(sqrt(sum(bsxfun(@minus,X,reshape(X',1,size(X,2),size(X,1)) ).^2,2))) NumCluster = 3; jumlah_data=300; %data minmax [dataAngka]=xlsread('DATA_FINAL_HASIL_NORMALISASI.xlsx'); handles.dataAngka=dataAngka; dataAwalminmax=dataAngka(:,2:end); %data asli [dataAngka]=xlsread('DATA_PERTANDINGAN_DOTA_2016.xlsx'); handles.dataAngka=dataAngka; dataAwal=dataAngka(:,2:end); EucD=pdist(dataAwal,'euclidean'); %data zscore zscoredata=zscore(dataAwal); % myEdist = squeeze(sqrt(sum(bsxfun(@minus,dataAwalpca,reshape(dataAwalpca',1,
85
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
size(dataAwalpca,2),size(dataAwalpca,1))).^2,2))) %data PCA [dataAngka]=xlsread('DATA_FINAL_HASIL_PCA.xlsx'); handles.dataAngka=dataAngka; dataAwalpca=dataAngka(:,2:end); EucDpca=pdist(dataAwalpca,'euclidean');
[prediksiAngka]=xlsread('PREDIKSI_DOTA.xlsx'); handles.prediksiAngka=prediksiAngka; dataPrediksi=prediksiAngka(:,2:2); %minmax----% EucDminmax=pdist(dataAwalminmax,'euclidean');
if (dataawal==1 && single==1&& pcadata==0 ) %single normal linksing=linkage(EucD,'single'); Csingasli = cluster(linksing,'maxclust',NumCluster); color = linksing(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linksing, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); %single normal cluster prediksi = dataPrediksi'; clusterjadi = Csingasli'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasisingle hasil_benarsingnom=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benarsingnom); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Csingasli) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA ASLI MENGGUNAKAN SINGLE-LINKAGE CLUSTERING'; string2='======================================================'; fid =
86
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
fopen('OUTPUT/DATA_ASLI/OUTPUT_DATA_ASLI_SINGLE.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi )
%simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/DATA_ASLI/OUTPUT_DENDROGRAM_DATA_ASLI_SINGLE.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataawal==1 && complete==1 && pcadata==0) [prediksiAngkamc]=xlsread('PREDIKSI_DATA_ASLI_COMPLETE.xlsx'); handles.prediksiAngkamc=prediksiAngkamc; dataPrediksicom=prediksiAngkamc(:,2:2); %complete normal linkcom=linkage(EucD,'complete'); Ccomasli = cluster(linkcom,'maxclust',NumCluster); color = linkcom(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkcom, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); %complete normal cluster prediksi = dataPrediksicom'; clusterjadi = Ccomasli; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasicomplete hasil_benarcomnom=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benarcomnom); set(handles.akurasi, 'String', akurasi);
%mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Ccomasli) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA ASLI MENGGUNAKAN COMPLETE-LINKAGE CLUSTERING'; string2='======================================================';
87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
fid = fopen('OUTPUT/DATA_ASLI/OUTPUT_DATA_ASLI_COMPLETE.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/DATA_ASLI/OUTPUT_DENDROGRAM_DATA_ASLI_COMPLETE.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataawal==1 && average==1 && pcadata==0) %average normal linkave=linkage(EucD,'average'); color = linkave(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); dendrogram(linkave,0); [H,T,perm] = dendrogram(linkave, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Caveasli = cluster(linkave,'maxclust',NumCluster); %average normal cluster prediksi = dataPrediksi'; clusterjadi = Caveasli'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasi ave hasil_benaravnom=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benaravnom); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Caveasli) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA ASLI MENGGUNAKAN AVERAGE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/DATA_ASLI/OUTPUT_DATA_ASLI_AVERAGE.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi )
88
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
%simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/DATA_ASLI/OUTPUT_DENDROGRAM_DATA_ASLI_AVERAGE.jpg')
h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataminmax==1 && single==1 && pcadata==0) %single minmax linksing=linkage(EucDminmax,'single'); color = linksing(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linksing, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Csingminmax = cluster(linksing,'maxclust',NumCluster); %single minmax cluster prediksi = dataPrediksi'; clusterjadi = Csingminmax'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasisingle minmax hasil_benarsingminmax=(sum(sum(C(logical(eye(3))))))/jumlah_data*1 00; akurasi=round(hasil_benarsingminmax); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Csingminmax) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA MINMAX MENGGUNAKAN SINGLE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_MIN_MAX/OUTPUT_DATA_MINMAX_SINGLE.txt',' wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi )
89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
%simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_MIN_MAX/OUTPUT_DENDROGRAM_DATA_MINMAX_SINGLE.j pg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataminmax==1 && complete==1 && pcadata==0) %complete minmax linkcom=linkage(EucDminmax,'complete'); color = linkcom(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkcom, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Ccomminmax = cluster(linkcom,'maxclust',NumCluster); cluster(linkcom,'maxclust',3) %complete minmax prediksi = dataPrediksi'; clusterjadi = Ccomminmax'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasi complete minmax hasil_benarcomminmax=(sum(sum(C(logical(eye(3))))))/jumlah_data*10 0; akurasi=round(hasil_benarcomminmax); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Ccomminmax) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA MINMAX MENGGUNAKAN COMPLETE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_MIN_MAX/OUTPUT_DATA_MINMAX_COMPLETE.txt' ,'wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi )
90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
%simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_MIN_MAX/OUTPUT_DENDROGRAM_DATA_MINMAX_COMPLETE .jpg')
h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataminmax==1 && average==1 && pcadata==0) [prediksiAngka]=xlsread('PREDIKSI_DATA_MINMAX_AVERAGE.xlsx'); handles.prediksiAngka=prediksiAngka; dataPrediksiav=prediksiAngka(:,2:2); %average minmax linkave=linkage(EucDminmax,'average'); color = linkave(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkave, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Caveminmax = cluster(linkave,'maxclust',NumCluster); %average minmax prediksi = dataPrediksiav'; clusterjadi = Caveminmax'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasiave minmax hasil_benaraveminmax=(sum(sum(C(logical(eye(3))))))/jumlah_data*10 0; akurasi=round(hasil_benaraveminmax); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Caveminmax) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA MINMAX MENGGUNAKAN AVERAGE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_MIN_MAX/OUTPUT_DATA_MINMAX_AVERAGE.txt', 'wt');
91
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
[c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_MIN_MAX/OUTPUT_DENDROGRAM_DATA_MINMAX_AVERAGE. jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (datazscore==1 && single==1 && pcadata==0) %single zscore linksing=linkage(zscoredata,'single','Euclidean'); color = linksing(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linksing, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Csingzscore = cluster(linksing,'maxclust',3); %single zscore prediksi = dataPrediksi'; clusterjadi = Csingzscore'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Csingzscore) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA Z-SCORE MENGGUNAKAN SINGLE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_Z_SCORE/OUTPUT_DATA_ZSCORE_SINGLE.txt',' wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid);
92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_Z_SCORE/OUTPUT_DENDROGRAM_DATA_ZSCORE_SINGLE.j pg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (datazscore==1 && complete==1 && pcadata==0) %complete zscore [prediksiAngkazc]=xlsread('PREDIKSI_DOTA_ZSCORE_COMPLETE.xlsx'); handles.prediksiAngkazc=prediksiAngkazc; dataPrediksizc=prediksiAngkazc(:,2:2); linkcom=linkage(zscoredata,'complete','Euclidean'); color = linkcom(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkcom, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Ccomzscore = cluster(linkcom,'maxclust',3); %complete zscore cluster prediksi = dataPrediksizc'; clusterjadi = Ccomzscore'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Ccomzscore) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA Z-SCORE MENGGUNAKAN COMPLETE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_Z_SCORE/OUTPUT_DATA_ZSCORE_COMPLETE.txt' ,'wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image,
93
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
'OUTPUT/NORMALISASI_Z_SCORE/OUTPUT_DENDROGRAM_DATA_ZSCORE_COMPLETE .jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (datazscore==1 && average==1 && pcadata==0) %average normal linkave=linkage(zscoredata,'average','Euclidean'); color = linkave(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkave, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Cavezscore = cluster(linkave,'maxclust',3); %average zscore cluster prediksi = dataPrediksi'; clusterjadi = Cavezscore'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasi ave hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Cavezscore) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA Z-SCORE MENGGUNAKAN AVERAGE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_Z_SCORE/OUTPUT_DATA_ZSCORE_AVERAGE.txt', 'wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_Z_SCORE/OUTPUT_DENDROGRAM_DATA_ZSCORE_AVERAGE. jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success');
94
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
elseif (dataawal==1 && average==1 && pcadata==1) %average normal linkave=linkage(EucDpca,'average'); color = linkave(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); dendrogram(linkave,0); [H,T,perm] = dendrogram(linkave, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Caveaslipca = cluster(linkave,'maxclust',NumCluster); %average normal cluster prediksi = dataPrediksi'; clusterjadi = Caveaslipca'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasi ave hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Caveaslipca) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='========================================================= ==='; string3='OUTPUT DATA ASLI PCA MENGGUNAKAN AVERAGE-LINKAGE CLUSTERING'; string2='========================================================= ==='; fid = fopen('OUTPUT/DATA_ASLI_PCA/OUTPUT_DATA_ASLI_AVERAGE_PCA.txt','wt' ); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/DATA_ASLI_PCA/OUTPUT_DENDROGRAM_DATA_ASLI_AVERAGE_PCA.jpg' ) h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success');
95
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
elseif (dataawal==1 && complete==1 && pcadata==1) %complete normal linkcom=linkage(EucDpca,'complete'); Ccomasli = cluster(linkcom,'maxclust',NumCluster); color = linkcom(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkcom, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); %complete normal cluster prediksi = dataPrediksi'; clusterjadi = Ccomasli; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasicomplete hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi);
%mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Ccomasli) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA ASLI PCA MENGGUNAKAN COMPLETE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/DATA_ASLI_PCA/OUTPUT_DATA_ASLI_COMPLETE.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/DATA_ASLI_PCA/OUTPUT_DENDROGRAM_DATA_ASLI_COMPLETE_PCA.jpg ') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataawal==1 && single==1 && pcadata==1) %single normal linksing=linkage(EucDpca,'single');
96
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Csingasli = cluster(linksing,'maxclust',NumCluster); color = linksing(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linksing, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); %single normal cluster prediksi = dataPrediksi'; clusterjadi = Csingasli'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasisingle hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Csingasli) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='========================================================= =='; string3='OUTPUT DATA ASLI PCA MENGGUNAKAN SINGLE-LINKAGE CLUSTERING'; string2='========================================================= =='; fid = fopen('OUTPUT/DATA_ASLI_PCA/OUTPUT_DATA_ASLI_SINGLE_PCA.txt','wt') ; [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/DATA_ASLI_PCA/OUTPUT_DENDROGRAM_DATA_ASLI_SINGLE_PCA.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success');
elseif (datazscore==1 && average==1 && pcadata==1) %average zscore pca linkave=linkage(dataAwalpca,'average','Euclidean');
97
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
color = linkave(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkave, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Cavezscore = cluster(linkave,'maxclust',3); %average zscore pca cluster prediksi = dataPrediksi'; clusterjadi = Cavezscore'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasi ave zscore pca hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Cavezscore) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='========================================================= ====='; string3='OUTPUT DATA Z-SCORE PCA MENGGUNAKAN AVERAGE-LINKAGE CLUSTERING'; string2='========================================================= ====='; fid = fopen('OUTPUT/NORMALISASI_Z_SCORE_PCA/OUTPUT_DATA_ZSCORE_AVERAGE_P CA.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_Z_SCORE_PCA/OUTPUT_DENDROGRAM_DATA_ZSCORE_AVER AGE_PCA.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (datazscore==1 && complete==1 && pcadata==1) %complete zscore [prediksiAngkamc]=xlsread('PREDIKSI_DATA_ASLI_COMPLETE.xlsx'); handles.prediksiAngkamc=prediksiAngkamc; dataPrediksipcazs=prediksiAngkamc(:,2:2);
98
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
linkcom=linkage(dataAwalpca,'complete','Euclidean'); color = linkcom(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkcom, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Ccomzscore = cluster(linkcom,'maxclust',3); %complete zscore cluster prediksi = dataPrediksipcazs'; clusterjadi = Ccomzscore'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Ccomzscore) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='========================================================= ======'; string3='OUTPUT DATA Z-SCORE PCA MENGGUNAKAN COMPLETE-LINKAGE CLUSTERING'; string2='========================================================= ======'; fid = fopen('OUTPUT/NORMALISASI_Z_SCORE_PCA/OUTPUT_DATA_ZSCORE_COMPLETE_ PCA.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_Z_SCORE_PCA/OUTPUT_DENDROGRAM_DATA_ZSCORE_COMP LETE_PCA.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (datazscore==1 && single==1 && pcadata==1) %single zscore pca linksing=linkage(dataAwalpca,'single','Euclidean'); color = linksing(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linksing, 0, 'colorthreshold', color);
99
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Csingzscore = cluster(linksing,'maxclust',3); %single zscore pca prediksi = dataPrediksi'; clusterjadi = Csingzscore'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); hasil_benar=(sum(sum(C(logical(eye(3))))))/jumlah_data*100; akurasi=round(hasil_benar); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Csingzscore) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA Z-SCORE PCA MENGGUNAKAN SINGLE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_Z_SCORE_PCA/OUTPUT_DATA_ZSCORE_SINGLE_PC A.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_Z_SCORE_PCA/OUTPUT_DENDROGRAM_DATA_ZSCORE_SING LE_PCA.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success');
elseif (dataminmax==1 && average==1 && pcadata==1) [prediksiAngkamc]=xlsread('PREDIKSI_DATA_MINMAX_PCA_AVERAGE.xlsx') ; handles.prediksiAngkamc=prediksiAngkamc; dataPrediksipcaav=prediksiAngkamc(:,2:2); %average minmax pca linkave=linkage(EucDpca,'average'); color = linkave(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkave, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]);
100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
set(gca,'YTickLabel',[]); Caveminmax = cluster(linkave,'maxclust',3); %average minmax pca prediksi = dataPrediksipcaav'; clusterjadi = Caveminmax'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasiave minmax hasil_benaraveminmax=(sum(sum(C(logical(eye(3))))))/jumlah_data*10 0; akurasi=round(hasil_benaraveminmax); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Caveminmax) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='========================================================= ===='; string3='OUTPUT DATA MINMAX PCA MENGGUNAKAN AVERAGE-LINKAGE CLUSTERING'; string2='========================================================= ===='; fid = fopen('OUTPUT/NORMALISASI_MIN_MAX_PCA/OUTPUT_DATA_MINMAX_AVERAGE_P CA.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_MIN_MAX_PCA/OUTPUT_DENDROGRAM_DATA_MINMAX_AVER AGE_PCA.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataminmax==1 && complete==1 && pcadata==1) %complete minmax pca [prediksiAngkamc]=xlsread('PREDIKSI_DATA_MINMAX_PCA_COMPLETE.xlsx' ); handles.prediksiAngkamc=prediksiAngkamc; dataPrediksipcacom=prediksiAngkamc(:,2:2); linkcom=linkage(EucDpca,'complete'); color = linkcom(end-NumCluster+2,3)-eps;
101
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
axes(handles.dendroaxes); [H,T,perm] = dendrogram(linkcom, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Ccomminmax = cluster(linkcom,'maxclust',3); cluster(linkcom,'maxclust',3) %complete minmax pca cluster prediksi = dataPrediksipcacom'; clusterjadi = Ccomminmax'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasi complete minmax hasil_benarcomminmax=(sum(sum(C(logical(eye(3))))))/jumlah_data*10 0; akurasi=round(hasil_benarcomminmax); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Ccomminmax) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='========================================================= ====='; string3='OUTPUT DATA MINMAX PCA MENGGUNAKAN COMPLETE-LINKAGE CLUSTERING'; string2='========================================================= ====='; fid = fopen('OUTPUT/NORMALISASI_MIN_MAX_PCA/OUTPUT_DATA_MINMAX_COMPLETE_ PCA.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_MIN_MAX_PCA/OUTPUT_DENDROGRAM_DATA_MINMAX_COMP LETE_PCA.jpg')
h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif (dataminmax==1 && single==1 && pcadata==1)
102
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
%single minmax pca linksing=linkage(EucDpca,'single'); color = linksing(end-NumCluster+2,3)-eps; axes(handles.dendroaxes); [H,T,perm] = dendrogram(linksing, 0, 'colorthreshold', color); set(gca,'XTickLabel',[]); set(gca,'YTickLabel',[]); Csingminmax = cluster(linksing,'maxclust',3); %single minmax pca cluster prediksi = dataPrediksi'; clusterjadi = Csingminmax'; [C] = confusionmat(prediksi,clusterjadi); set(handles.confusion,'Data',C); set(handles.confusion,'visible','on'); %akurasisingle minmax hasil_benarsingminmax=(sum(sum(C(logical(eye(3))))))/jumlah_data*1 00; akurasi=round(hasil_benarsingminmax); set(handles.akurasi, 'String', akurasi); %mencari jumlah cluster [X,M1,M2,M3]=jumlahcluster(Csingminmax) set(handles.klaster,'Data',X); set(handles.klaster,'visible','on'); axes(handles.pieaxes); pie(X); %simpan data text string1='======================================================'; string3='OUTPUT DATA MINMAX PCA MENGGUNAKAN SINGLE-LINKAGE CLUSTERING'; string2='======================================================'; fid = fopen('OUTPUT/NORMALISASI_MIN_MAX_PCA/OUTPUT_DATA_MINMAX_SINGLE_PC A.txt','wt'); [c1,c2,c3]=simpanText(M1,M2,M3,string1,string3,string2,fid,akurasi ) %simpandata gambar fclose(fid); F = getframe(handles.dendroaxes); Image = frame2im(F); imwrite(Image, 'OUTPUT/NORMALISASI_MIN_MAX_PCA/OUTPUT_DENDROGRAM_DATA_MINMAX_SING LE_PCA.jpg') h = msgbox('DATA BERHASIL DICLUSTER DAN DISIMPAN. ','Success'); elseif((dataawal==1 || dataminmax==1 || datazscore==1)&&(single==0|| complete==0 || average==0)) h = msgbox('Pilih salah satu metode clustering !',
103
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
'Error','error'); elseif((dataawal==0 || dataminmax==0 || datazscore==0)&&(single==1|| complete==1 || average==1)) h = msgbox('Pilih salah satu jenis data !', 'Error','error'); else h = msgbox('Pilih salah satu jenis data dan metode clustering !', 'Error','error');
end
% --- Executes on button press in minmaxnormal. function minmaxnormal_Callback(hObject, eventdata, handles) % hObject handle to minmaxnormal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) a=get(hObject,'Value'); if a==1 set(handles.dataasli,'Enable','off') set(handles.zscorenormal,'Enable','off') [dataAngka,dataText]=xlsread('DATA_PERTANDINGAN_DOTA_2016.xlsx'); % handles.dataAngka=dataAngka; %minmaxobat=minmax(dataAngka); %handles.minmaxobat=minmaxobat; awal=dataText(:,2:end); dataAwal=dataAngka(:,2:end); % dataAwal=dataAngka(:,1:end); [dataminmax] = normalisasi(dataAwal); [dataAngkanorm,dataTextnorm]=xlsread('DATA_FINAL_HASIL_NORMALISASI .xlsx'); handles.dataAngkanorm=dataAngkanorm; awalnorm=dataTextnorm(:,2:end); dataAwalnorm=dataAngkanorm(:,2:end);
set(handles.tabelutama,'ColumnName',awalnorm); set(handles.tabelutama,'Data',dataAwalnorm); set(handles.tabelutama,'visible','on'); % set(handles.jumlahdata,'String',size(awal)); size(dataAwal,1); else set(handles.dataasli,'Enable','on') set(handles.zscorenormal,'Enable','on') end % Hint: get(hObject,'Value') returns toggle state of minmaxnormal
104
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- Executes on button press in zscorenormal. function zscorenormal_Callback(hObject, eventdata, handles) % hObject handle to zscorenormal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) a=get(hObject,'Value'); if a==1 set(handles.minmaxnormal,'Enable','off') set(handles.dataasli,'Enable','off') [dataAngka,dataText]=xlsread('DATA_PERTANDINGAN_DOTA_2016.xlsx'); dataAwal=dataAngka(:,2:end); zscoredata=zscore(dataAwal); handles.zscoredata=zscoredata; awal=dataText(:,2:end); filenamecut = 'DATA_FINAL_ZSCORE.xlsx'; Acut = [zscoredata]; sheetcut = 1; xlRangecut = 'B2'; xlswrite(filenamecut,Acut,sheetcut,xlRangecut); set(handles.tabelutama,'ColumnName',awal); set(handles.tabelutama,'Data',zscoredata); set(handles.tabelutama,'visible','on'); % set(handles.jumlahdata,'String',size(awal)); else set(handles.minmaxnormal,'Enable','on') set(handles.dataasli,'Enable','on') end % Hint: get(hObject,'Value') returns toggle state of zscorenormal
function jumlahpca_Callback(hObject, eventdata, handles) % hObject handle to jumlahpca (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of jumlahpca as text % str2double(get(hObject,'String')) returns contents of jumlahpca as a double
% --- Executes during object creation, after setting all properties. function jumlahpca_CreateFcn(hObject, eventdata, handles) % hObject handle to jumlahpca (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
105
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes when entered data in editable cell(s) in tabelutama. function tabelutama_CellEditCallback(hObject, eventdata, handles) % hObject handle to tabelutama (see GCBO) % eventdata structure with the following fields (see UITABLE) % Indices: row and column indices of the cell(s) edited % PreviousData: previous data for the cell(s) edited % EditData: string(s) entered by the user % NewData: EditData or its converted form set on the Data property. Empty if Data was not changed % Error: error string when failed to convert EditData to appropriate value for Data % handles structure with handles and user data (see GUIDATA)
function jumlahdata_Callback(hObject, eventdata, handles) % hObject handle to jumlahdata (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of jumlahdata as text % str2double(get(hObject,'String')) returns contents of jumlahdata as a double
% --- Executes during object creation, after setting all properties. function jumlahdata_CreateFcn(hObject, eventdata, handles) % hObject handle to jumlahdata (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
106
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function jumlab_Callback(hObject, eventdata, handles) % hObject handle to jumlab (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of jumlab as text % str2double(get(hObject,'String')) returns contents of jumlab as a double
% --- Executes during object creation, after setting all properties. function jumlab_CreateFcn(hObject, eventdata, handles) % hObject handle to jumlab (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function akurasicom_Callback(hObject, eventdata, handles) % hObject handle to akurasicom (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of akurasicom as text % str2double(get(hObject,'String')) returns contents of akurasicom as a double
% --- Executes during object creation, after setting all properties. function akurasicom_CreateFcn(hObject, eventdata, handles) % hObject handle to akurasicom (see GCBO) % eventdata reserved - to be defined in a future version of
107
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function akurasiave_Callback(hObject, eventdata, handles) % hObject handle to akurasiave (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of akurasiave as text % str2double(get(hObject,'String')) returns contents of akurasiave as a double
% --- Executes during object creation, after setting all properties. function akurasiave_CreateFcn(hObject, eventdata, handles) % hObject handle to akurasiave (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function akurasi_Callback(hObject, eventdata, handles) % hObject handle to akurasi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of akurasi as text % str2double(get(hObject,'String')) returns contents of akurasi as a double
% --- Executes during object creation, after setting all properties.
108
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
function akurasi_CreateFcn(hObject, eventdata, handles) % hObject handle to akurasi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all properties. function pushbutton2_CreateFcn(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% --- Executes on button press in dataasli. function dataasli_Callback(hObject, eventdata, handles) % hObject handle to dataasli (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of dataasli a=get(hObject,'Value'); if a==1 set(handles.minmaxnormal,'Enable','off') set(handles.zscorenormal,'Enable','off') [dataAngka,dataText]=xlsread('DATA_PERTANDINGAN_DOTA_2016.xlsx'); handles.dataAngka=dataAngka; awal=dataText(:,2:end); dataAwal=dataAngka(:,2:end); set(handles.tabelutama,'ColumnName',awal); set(handles.tabelutama,'Data',dataAwal); set(handles.tabelutama,'visible','on');
else set(handles.minmaxnormal,'Enable','on') set(handles.zscorenormal,'Enable','on') end
109
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- Executes on button press in checkbox8. function checkbox8_Callback(hObject, eventdata, handles) % hObject handle to checkbox8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in prosesdata. function prosesdata_Callback(hObject, eventdata, handles)
% --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %[namaFile,alamatFile]=uigetfile({'*.xls';'*.xlsx'},'Silahkan pilih file anda','Data\dataasli'); %if namaFile ~=0 % alamatNamaFile=fullfile(alamatFile,namaFile); % set(handles.edInputFile,'String',alamatNamaFile); % set(handles.edNamaFile,'String',namaFile);
% --- Executes on button press in singledendro. function singledendro_Callback(hObject, eventdata, handles) % hObject handle to singledendro (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of singledendro
% --- Executes on button press in completedendro. function completedendro_Callback(hObject, eventdata, handles) % hObject handle to completedendro (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of completedendro
% --- Executes on button press in averagedendro. function averagedendro_Callback(hObject, eventdata, handles) % hObject handle to averagedendro (see GCBO)
110
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% eventdata MATLAB % handles
reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of averagedendro
% --- Executes during object creation, after setting all properties. function conave_CreateFcn(hObject, eventdata, handles) % hObject handle to conave (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% --- Executes on button press in checkbox12. function checkbox12_Callback(hObject, eventdata, handles) % hObject handle to checkbox12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox12
% --- Executes on button press in checkbox13. function checkbox13_Callback(hObject, eventdata, handles) % hObject handle to checkbox13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox13
% --- Executes on button press in checkbox14. function checkbox14_Callback(hObject, eventdata, handles) % hObject handle to checkbox14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox14
% --- Executes on button press in checkbox15. function checkbox15_Callback(hObject, eventdata, handles) % hObject handle to checkbox15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox15
111
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% --- Executes on button press in checkbox16. function checkbox16_Callback(hObject, eventdata, handles) % hObject handle to checkbox16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox16
% --- Executes on button press in checkbox17. function checkbox17_Callback(hObject, eventdata, handles) % hObject handle to checkbox17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox17
% --- Executes on button press in checkbox18. function checkbox18_Callback(hObject, eventdata, handles) % hObject handle to checkbox18 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox18
% --- Executes on button press in checkbox19. function checkbox19_Callback(hObject, eventdata, handles) % hObject handle to checkbox19 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox19
% --- Executes on button press in checkbox20. function checkbox20_Callback(hObject, eventdata, handles) % hObject handle to checkbox20 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox20
% --- Executes on button press in checkbox21. function checkbox21_Callback(hObject, eventdata, handles) % hObject handle to checkbox21 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
112
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox21
% --- Executes on button press in checkbox22. function checkbox22_Callback(hObject, eventdata, handles) % hObject handle to checkbox22 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox22
% --- Executes on button press in checkbox23. function checkbox23_Callback(hObject, eventdata, handles) % hObject handle to checkbox23 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox23
function jumdat_Callback(hObject, eventdata, handles) % hObject handle to jumdat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of jumdat as text % str2double(get(hObject,'String')) returns contents of jumdat as a double
% --- Executes during object creation, after setting all properties. function jumdat_CreateFcn(hObject, eventdata, handles) % hObject handle to jumdat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% -------------------------------------------------------------------
113
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
function filem_Callback(hObject, eventdata, handles) % hObject handle to filem (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% ------------------------------------------------------------------function Untitled_3_Callback(hObject, eventdata, handles) % hObject handle to Untitled_3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% ------------------------------------------------------------------function tentangm_Callback(hObject, eventdata, handles) % hObject handle to tentangm (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% ------------------------------------------------------------------function Panduan_Callback(hObject, eventdata, handles) % hObject handle to Panduan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% ------------------------------------------------------------------function exitm_Callback(hObject, eventdata, handles) % hObject handle to exitm (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in dataPCA. function dataPCA_Callback(hObject, eventdata, handles) % hObject handle to dataPCA (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of dataPCA dataawal=get(handles.dataasli,'Value'); dataminmax=get(handles.minmaxnormal,'Value'); datazscore=get(handles.zscorenormal,'Value'); x = get(handles.jmlpca,'String'); jml = str2double(get(handles.jmlpca,'String')); a=get(hObject,'Value');
114
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
[dataAngka,dataText]=xlsread('DATA_PERTANDINGAN_DOTA_2016.xlsx'); handles.dataAngka=dataAngka; awal=dataText(:,14:end); dataAwalpca=dataAngka(:,2:end); zscoredata=zscore(dataAwalpca); [dataAngka]=xlsread('DATA_FINAL_HASIL_NORMALISASI.xlsx'); handles.dataAngka=dataAngka; dataAwalminmax=dataAngka(:,2:end); if dataawal==1 [ dataHasilPCA, indeksPCA ] = ProsesPCA( dataAwalpca,jml) filenamepca = 'DATA_FINAL_HASIL_PCA.xlsx'; Apca = [dataHasilPCA]; sheetpca = 1; xlRangepca = 'B2'; xlswrite(filenamepca,Apca,sheetpca,xlRangepca);
set(handles.tabelutama,'ColumnName',awal); %set(handles.tabelutama,'Data',data_baru); set(handles.tabelutama,'Data',dataHasilPCA); set(handles.tabelutama,'visible','on'); elseif dataminmax==1 [ dataHasilPCA, indeksPCA ] = ProsesPCA( dataAwalminmax,jml) filenamepca = 'DATA_FINAL_HASIL_PCA.xlsx'; Apca = [dataHasilPCA]; sheetpca = 1; xlRangepca = 'B2'; xlswrite(filenamepca,Apca,sheetpca,xlRangepca);
set(handles.tabelutama,'ColumnName',awal); %set(handles.tabelutama,'Data',data_baru); set(handles.tabelutama,'Data',dataHasilPCA); set(handles.tabelutama,'visible','on'); else [ dataHasilPCA, indeksPCA ] = ProsesPCA( zscoredata,jml) filenamepca = 'DATA_FINAL_HASIL_PCA.xlsx'; Apca = [dataHasilPCA]; sheetpca = 1; xlRangepca = 'B2'; xlswrite(filenamepca,Apca,sheetpca,xlRangepca);
set(handles.tabelutama,'ColumnName',awal); %set(handles.tabelutama,'Data',data_baru); set(handles.tabelutama,'Data',dataHasilPCA); set(handles.tabelutama,'visible','on'); end
function jumfeat_Callback(hObject, eventdata, handles) % hObject handle to jumfeat (see GCBO)
115
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
% eventdata MATLAB % handles
reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of jumfeat as text % str2double(get(hObject,'String')) returns contents of jumfeat as a double
% --- Executes during object creation, after setting all properties. function jumfeat_CreateFcn(hObject, eventdata, handles) % hObject handle to jumfeat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in cariperan. function cariperan_Callback(hObject, eventdata, handles) % hObject handle to cariperan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes during object creation, after setting all properties. function sadhar_CreateFcn(hObject, eventdata, handles) % hObject handle to sadhar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate sadhar
% --- Executes on button press in pilihaverage. function pilihaverage_Callback(hObject, eventdata, handles) % hObject handle to pilihaverage (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of pilihaverage a=get(hObject,'Value');
116
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
if a==1 set(handles.pilihcomplete,'Enable','off') set(handles.pilihsingle,'Enable','off') set(handles.dataPCA,'Enable','on')
else set(handles.pilihcomplete,'Enable','on') set(handles.dataPCA,'Enable','off') set(handles.pilihsingle,'Enable','on') end
% --- Executes on button press in pilihcomplete. function pilihcomplete_Callback(hObject, eventdata, handles) % hObject handle to pilihcomplete (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of pilihcomplete a=get(hObject,'Value'); if a==1 set(handles.pilihsingle,'Enable','off') set(handles.pilihaverage,'Enable','off') set(handles.dataPCA,'Enable','on')
else set(handles.pilihsingle,'Enable','on') set(handles.pilihaverage,'Enable','on') set(handles.dataPCA,'Enable','off') end
% --- Executes on button press in pilihsingle. function pilihsingle_Callback(hObject, eventdata, handles) % hObject handle to pilihsingle (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of pilihsingle a=get(hObject,'Value'); if a==1 set(handles.pilihcomplete,'Enable','off') set(handles.pilihaverage,'Enable','off') set(handles.dataPCA,'Enable','on')
117
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
else set(handles.pilihcomplete,'Enable','on') set(handles.dataPCA,'Enable','off') set(handles.pilihaverage,'Enable','on') end
function jmlpca_Callback(hObject, eventdata, handles) % hObject handle to jmlpca (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of jmlpca as text % str2double(get(hObject,'String')) returns contents of jmlpca as a double
% --- Executes during object creation, after setting all properties. function jmlpca_CreateFcn(hObject, eventdata, handles) % hObject handle to jmlpca (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles) % hObject handle to reset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
118
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
I K D A D I E S L A S L T I H S T
NET WO RTH
1 3 5
754 4 546 1 914 7 872 2 195 45 816 8 253 35 669 5 176 30 217 70 915 8 108 87 442 6 856 8 155 64 104 31 114 70 202 35 175
2 1 9
1 5 8
3 5 8
2
4 2 3
3
5 0 1 0 6 2 4
4
7 1 1 1 8 2 3 9 5 0 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1
1 2 8 3 8
2 4 1 7 1 5 2 2 8 3
2 8
3
1 2
4
1 5
3
3 6
4
5 2
6 5
2 2 1 9 6
5 2
2
4 3
LEV EL
LA D GO EXPER ST E LD_ IENCE _ N PER _PER_ HI I _M MINU T E INU TE D TE
14 58 4 282
C SU HARD A PP _SUPP R O ORT_I RY RT TEM _I _I TE TE M M 279 4130 0 1 0
13 46 4 203
250 8489
0
0
1
1
14 13 5 15 16 8 17 28 6 15 10
8 316
312 6432
1
0
0
1
7 326
318 7786
1
0
0
1
1 639
446 7646
1
1
0
1
1 260
341 3855
0
0
1
1
23 36 1 565 7 3 15 35 3 268
609 1707 3 345 3322
1
0
0
1
0
0
1
1
20 14 6 20 20 8 15 16 7 16 18 3 11 29
2 474
589 7936
1
0
0
1
6 594
1
0
0
1
1 338
589 1872 3 334 6788
1
0
0
1
5 370
380 6875
1
0
0
1
2 167
182 4284
0
1
0
1
14 11 4 287 4 18 23 4 465 6 17 57 2 377
333 2646
0
1
0
1
461 6788
1
0
0
1
411 7976
0
1
0
1
16 52 0 355
387 5155
0
0
1
1
20 26 2 459 0 19 19 0 488
456 1526 0 530 7816
1
0
0
0
1
1
0
1
119
DA MA GE
NO RM AL_ ITE M
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1
3 8
4 1 5 1 6 3
0 6
9
1 4
4
6 4
6
6 3
1 8 1 6 1 1 1 9 1 2 3
6 1 2 4
2 4 1 3 0 4 1 7 2 0 7 6 9
3 6
1 3 1 2 5
2 2
8
2 2 4 2
1 2 7
9 4
8
2 3
1 6 1 4 1 5
2 9
6 1 4 2
68 204 67 845 4 122 42 544 1 870 9 171 50 111 57 100 58 200 25 149 51 253 98 584 6 198 64 675 8 775 9 191 10 965 7 126 94 187 90 141 50 238 73 770 7
9 21 23 1 561 8 0 14 87 4 344
645 8496
1
0
0
1
345 8351
0
1
1
1
16 21 7 384 7 13 30 2 199
337 5322
1
0
0
1
235 6131
0
1
0
1
13 95 0 236
233 2061
1
1
0
1
18 29 7 479 4 17 64 2 364
434 8524
1
0
0
1
398 8477
0
1
0
1
15 53 1 277
291 3955
0
0
1
1
21 22 3 18 11 7 22 35 6 11 82
1 553 4 0 367
556 9767
1
0
0
1
423 6635
1
0
0
1
2 685
1
0
0
1
1 184
623 1072 1 165 3581
0
1
0
1
20 24 6 483 7 15 32 3 212
442 2113 3 220 3180
1
0
0
0
0
1
0
1
15 10 4 21 32 6 17 68
1 241
267 2879
0
1
0
1
1 450 3 1 292
486 1396 3 329 5431
1
0
0
0
0
1
0
1
15 82 1 282
271 5317
0
0
1
1
23 37 2 18 13 6 22 30 6 14 35
2 627 2 1 327
615 1380 7 388 7787
1
0
0
1
1
1
0
1
1 532 9 2 336
555 1044 9 343 4611
1
0
0
1
0
0
1
1
120
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6
5 2
2 6
1 1 1 1 1 2 1 6 4
4 8
5
0 8
9
1 2
8
1 7
7
2 5
5 7
2 3 1 4 1 9 1 2 1 1 1 3 1 1 2
0 6
8
7 1
7
2 2
7
3 5
3
1 6 1 1 5
3
1 1 1 7 0 2 4
8 5 1 3 1 2 3 5 2 1 7 2 8
7
142 81 229 16 944 8 985 3 688 7 116 69 491 7 859 5 671 9 913 3 197 22 759 8 227 66 193 82 535 7 931 1 157 99 510 9 185 32 516 1 115 65 192 62 532
16 12 9 19 28 3 14 77
1 495 5 2 541 8 0 385
442 9020
1
0
0
1
649 1620 7 370 6848
1
0
0
0
0
1
0
1
13 64 8 347
318 3995
0
1
0
1
14 78 1 281
356 5249
0
0
1
1
16 19 1 489 0 4 11 61 2 235
458 9689
1
0
0
1
232 7550
0
0
1
1
13 10 3 14 14 7 18 10 8 19 23 4 14 26
1 316
331 6274
0
0
1
1
4 345
370 3796
1
0
0
1
0 257
319 6307
0
1
0
1
6 557
530 9391
1
0
0
1
0 275
296 6194
0
0
1
1
22 24 4 606 7 16 23 2 515 7 13 34 0 217
679 1910 5 383 6972
1
0
0
0
1
1
0
1
262 4320
0
0
1
1
14 13 2 301 0 18 31 7 508 0 13 88 0 247
277 8336
0
1
0
1
476 6759
1
0
0
0
235 4169
0
0
1
0
20 28 9 531 0 14 64 1 217
546 1742 8 269 4995
1
0
1
1
0
0
1
1
16 17 5 22 35 4 13 70
356 7352
1
0
1
1
637 1370 0 244 3170
1
0
0
1
0
0
1
1
1 336 6 1 618 0 0 228 121
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6
1 6 5 6 7 1 3 3 3 5 5 3 0 5 8 2 3 3 1 7 1 3 7 2 7 1 6 7 6 4 8
1 2 1 4 1 4 1 9 1 4 1 3 2 0 1 2 1 6 1 9 6 1 2 1 2 7
5 3
1 1 9
3 8
4
3 3
4
0 5
6
3 3
5
2 2
1 1 1 7
1 3
1 120 94 758 6 231 19 131 25 989 1 211 00 118 96 227 13 803 2 104 26 251 77 107 87 442 4 198 86 157 31 733 4 135 10 531 2 831 6 996 4 551 4 104 37
14 20 1 353 9 13 34 3 272
288 5719
0
0
1
1
250 3669
0
0
1
1
22 32 6 593 1 19 84 2 358
629 1022 3 474 9309
1
0
0
1
1
0
0
1
16 65 0 310
349 4234
1
1
0
1
20 26 5 17 10 8 20 29 3 15 56
1 553 3 1 319
535 8621
1
0
0
0
379 5296
1
1
0
1
9 551
1
0
0
1
4 275
484 1144 0 296 7608
0
0
1
1
17 88 8 306
370 5387
1
1
0
1
23 27 0 17 19 9 13 10
1 591 5 1 330
627 2119 8 345 7464
1
0
0
0
1
0
1
1
0 187
211 3106
0
0
1
1
20 30 3 20 28 9 13 52
1 505 1 1 467 0 2 228
519 1415 8 499 8867 5 207 5097
1
0
0
1
1
0
0
0
0
0
1
1
17 22 5 505 1 12 22 0 210
483 4897
1
0
0
1
266 4136
0
1
0
1
15 14 3 14 16 3 14 53
0 328
379 4827
0
0
1
1
1 370 6 0 293
340 6757
1
0
0
1
343 4277
0
0
0
1
15 93 2 343
389 4386
1
1
0
1
122
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8 7 8 8 8 9 9 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 1 0 0 1 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1
2 3
2 3
1 3 1 3 2
5 5
6
4 5
7
5 6
6
1 2
1 2 1 0
735 7 172 32 201 12 860 3 741 2 200 54 139 66 127 37 228 57 161 16 134 44 102 21 451 5 965 2
1 0
1 2
883 7
13 72 0 268
276 1979
1
1
1
1
2 1
1 6
584 6
13 36 2 243
265 2873
0
0
1
1
8 3
6
192 01
18 28 1 566 2 3
528 1136 8
1
0
0
1
8 1
1 0
162 01
18 18 6 468 7
505 1222 8
1
0
0
1
2 4
1 7
111 96
16 15 4 361 1
419 7131
0
1
0
1
2 6
2
619
16 12 0 311
259 2009
0
0
0
1
5 2 1 0 2 4 2 3 4 6 4 5 2 1 3
0 2
1 4 1 3 9 1 2 1 2 8
13 31 1 298
285 4278
0
0
1
1
17 20 2 18 24 1 13 47
2 549 2 1 619 3 9 303
498 1202 3 578 1110 4 303 4657
1
0
1
0
1
0
0
1
0
0
1
1
15 35 1 268
306 2565
0
0
1
1
19 24 2 544 6 19 92 0 395
489 1090 3 491 7474
1
0
0
0
1
1
0
1
16 91 1 350
342 3361
1
1
0
1
18 37 4 19 32 9 18 15 6 15 14 1 15 66
1 618 3 9 481
468 1167 9 483 3899
1
0
0
1
1
0
0
1
9 409
435 8639
1
0
0
1
9 343
316 8143
1
1
0
1
4 247
325 4094
0
0
1
1
15 16 8 328 2
315 3988
1
0
0
1
123
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
0 6 1 0 7 1 0 8 1 0 9 1 1 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 2 0 1
1
1
5
3 3
3
124 87
17 19 2 407 9 3
443 8414
1
0
0
1
3 4
4
939 8
15 13 3 312 9
344 3989
1
0
0
1
2 3
5
604 7
14 90 0 256
293 5072
1
0
1
1
1 3
6
128 50
16 23 6 426 2
383 5831
1
0
0
1
0 1 0
4
129 43
16 20 0 372 8
292 5368
1
0
0
1
4 6
7
824 8
16 12 1 301 3
306 6842
0
0
1
1
1 4 0
1 9
203 37
21 18 4 434 6
462 1527 1
1
0
0
1
5 5
6
190 53
21 21 1 459 3 1
471 1573 2
1
0
0
1
1 6
4
193 81
20 25 4 459 7
463 5204
1
1
0
1
3 4
1 3
734 2
17 86 3 306
327 4734
0
0
1
1
7 6
1 0
178 74
22 18 4 457 6
524 8563
1
0
0
1
2 4
1 8
141 93
19 14 1 350 2
411 8646
1
1
0
1
1 6
1 7
781 5
16 52 0 254
280 8413
0
1
0
1
8 2
6
186 74
23 31 7 454 3
450 1906 5
1
0
0
1
9 1
1
255
20 35 8 540
458 2779
1
0
0
1
124
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 2 8 1 2 9 1 3 0 1 3 1 1 3 2 1 3 3 1 3 4 1 3 5 1
8
15
7
1
8 5
1 5
164 99
21 14 2 443 8
503 1069 3
1
1
0
1
7 2
1 4
228 33
22 32 8 506 9
558 1317 6
1
0
0
1
6 2
2 5
130 11
17 28 1 331
348 5543
0
0
1
1
6 3
2 0
179 52
22 25 3 448 0
545 1167 7
1
0
0
1
3 6
7
134 76
17 20 1 370 2 6
340 7100
1
0
0
1
3 7
1 7
592 2
13 74 0 268
275 1203 7
0
1
0
1
3 8
7
152 40
17 23 3 383 8
350 9155
1
0
1
1
6 7
5
203 07
23 39 1 544 6 3
616 1575 7
1
0
0
1
6 7
1 6
923 9
17 26 2 219
303 6070
0
1
0
1
9 0
1 1
101 32
13 26 2 395
342 6769
0
0
1
1
9 1
9
169 04
16 15 1 613 4 4
532 1579 7
1
1
0
1
3 1
1 0
106 27
13 65 1 385
330 6069
1
0
1
1
4 1
9
184 12
16 20 1 667 3 4
518 1294 0
1
0
0
0
2 1
1 2
119 43
14 12 5 466 9
395 6848
0
1
1
1
0 4
1
469
13 51 8 247
315 2727
0
0
1
1
125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3 6 1 3 7 1 3 8 1 3 9 1 4 0 1 4 1 1 4 2 1 4 3 1 4 4 1 4 5 1 4 6 1 4 7 1 4 8 1 4 9 1 5 0 1
2
8
2 6
2
891 3
13 15 3 375 9
340 5251
1
0
0
1
1 9
0
694 8
13 14 0 337 4
356 5024
0
1
0
1
0 2
2
136 21
15 24 2 496 9 1
431 3977
1
0
0
1
1 4
0
650 3
11 83 1 281
229 2596
0
0
1
1
1 4
1
644 9
13 27 4 232
280 4221
0
0
1
1
3 2
1 9
845 5
14 82 1 317
344 4700
0
1
0
1
1 3
1 8
155 99
17 21 1 489 0 0
504 6805
1
0
0
1
1 4 6
1 0
147 67
17 11 1 461 5 7
498 1964 0
1
0
1
1
6 3
1 3
148 11
18 21 1 483 5 5
535 1229 2
1
0
0
1
4 4
6
112 11
15 16 2 388 7 4
391 1033 1
1
0
1
1
6 7
4
141 78
18 25 1 494 3 1
533 7015
1
0
0
1
2 7
9
678 5
15 12 4 314 2
358 6281
0
1
0
1
1 5
1 9
662 9
12
0 270
259 4170
0
1
0
1
2 4
1 0
542 0
13 48 0 224
269 4075
0
0
1
1
5 1
1
178
20 23 2 454
522 7340
1
0
0
1
8
126
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5 1 1 5 2 1 5 3 1 5 4 1 5 5 1 5 6 1 5 7 1 5 8 1 5 9 1 6 0 1 6 1 1 6 2 1 6 3 1 6 4 1 6 5 1
2
38
5
5
7 1
6
196 23
20 26 1 549 9 8
535 1447 6
1
0
0
1
6 3
1 3
123 03
17 10 5 328 5
394 1059
1
1
0
1
3 7
1 4
136 58
18 18 8 387 1
422 7950
0
1
0
1
4 2
1 0
495 2
11 34 0 239
200 4192
0
0
1
1
0 7
9
509 5
11 60 2 207
179 3735
0
0
1
1
5 1 0
4
498 8
12 79 1 233
217 4884
0
0
1
1
5 2
7
190 16
20 30 9 504 6
547 1430 9
1
0
0
1
2 3
6
149 89
17 24 1 405 4 0
410 9974
1
0
0
1
3 5
4
107 09
15 14 2 339 0
329 5958
1
0
0
1
2 8
9
481 7
13 50 0 255
272 5689
0
0
1
1
6 6
5
162 43
19 26 2 571 8
587 1054 6
1
0
0
1
5 5
0
150 70
18 25 3 520 6 7
514 1030 8
1
0
0
1
0 2
4
917 5
13 15 1 334 3
287 9322
0
0
1
1
1 6
7
649 9
13 56 1 255
280 4262
0
1
0
1
3 2
9
626
14 71 1 276
320 4330
0
0
1
1
127
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6 6 1 6 7 1 6 8 1 6 9 1 7 0 1 7 1 1 7 2 1 7 3 1 7 4 1 7 5 1 7 6 1 7 7 1 7 8 1 7 9 1 8 0 1
3 7 2
8
168 41
19 20 5 546 5
611 1277 4
1
0
0
1
8 3
1 2
146 90
19 14 1 470 9 3
598 1595 9
1
0
0
1
5 7
6
979 9
16 88 4 355
446 7878
0
1
0
1
2 0
1 0
207 22
17 37 3 624 2
469 1004 7
1
0
1
1
5 4
1 0
116 35
18 79 0 367
362 6021
0
0
1
1
9 5
1 4
175 45
21 12 6 424 9
504 1293 1
1
0
0
1
2 1
1 1
660 0
12 46 0 319
265 2373
0
1
0
1
5 5
1 6
234 00
21 32 5 554 3
518 1358 6
1
1
0
1
7 1
8
182 55
18 22 9 495 8
456 1421 8
1
0
0
1
5 9
1 0
149 44
19 21 5 387 5 5
414 1199 2
1
0
0
1
6 9
1 4
494 5
13 24 0 234
197 1040 9
0
0
1
1
1 4 0
1 0
222 27
21 31 1 561 6 0
524 1513 8
1
0
0
1
3 4
1 2
733 2
17 83 1 261
291 1114 0
0
1
0
1
6 9
2 0
166 40
20 20 9 447 3
471 7419
1
0
0
1
1 1
2
126
16 34 1 399
362 7894
1
0
1
1
128
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8 1 1 8 2 1 8 3 1 8 4 1 8 5 1 8 6 1 8 7 1 8 8 1 8 9 1 9 0 1 9 1 1 9 2 1 9 3 1 9 4 1 9 5 1
1
8
95
7 7
2 2
173 98
20 13 4 461 3
512 1635 0
0
1
0
1
4 1 0
1 4
911 2
16 51 5 341
357 1157 9
0
0
1
1
5 5
1 5
213 21
23 31 3 492 4
496 2704 9
1
0
0
1
8 5
2 3
225 45
22 27 1 593 5
626 2963 3
1
0
0
1
1 7 2
1 0
141 59
19 17 9 433 5
470 2852 1
1
0
0
1
4 7
1 5
942 5
17 96 2 352
387 1592 3
1
0
1
1
4 1 1
1 7
632 3
15 29 1 244
289 7727
0
0
1
1
8 1 1
1 5
751 9
15 69 1 296
297 1834 0
1
1
0
1
7 6
1 8
180 10
22 31 2 550 5 1
657 2859 8
1
0
0
0
3 3
1 5
926 8
13 60 6 322
316 9554
1
0
1
1
2 8
5
761 4
16 10 1 234 9
254 5979
1
0
0
0
6 3
5
246 38
23 47 2 556 1 4
520 1254 7
1
0
0
1
4 5
5
160 85
18 21 5 334 8
328 5926
1
0
0
1
1 8
8
205 86
20 37 2 457 2 1
422 4637
1
0
0
1
2 4
1
101
16 45 3 262
276 2884
0
0
1
1
129
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9 6 1 9 7 1 9 8 1 9 9 2 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2 0 6 2 0 7 2 0 8 2 0 9 2 1 0 2
4
29
4 3
1 2
147 85
17 14 1 336 2
306 6667
1
1
0
1
5 2
1 1
209 87
22 27 8 522 8
534 1622 6
1
0
0
1
4 1
5
174 85
20 26 1 473 8 3
550 1154 7
1
0
0
1
6 4
1 4
188 59
21 17 2 380 2
441 7998
1
1
0
1
3 5
2 1
115 31
15 12 0 365
338 5489
1
0
1
1
8 4
1 1
143 17
18 17 8 485 4
521 1057 0
1
1
0
1
2 6
1 8
763 6
13 78 2 319
283 8563
0
1
0
1
1 0 3
8
203 44
20 20 0 596 2
612 9010
1
1
0
1
1 1
2 2
246 23
18 41 3 609 0
596 1198 0
1
1
0
1
2 4
1 8
820 9
13 58 3 356
303 1236 5
0
0
1
1
2 7
6
760 9
13 12 1 303 2
281 6458
1
0
0
1
4 7
8
856 2
16 15 2 344 5 1
399 1065 3
1
0
0
1
1 5
7
123 06
15 22 1 388 4 9
372 6917
1
0
0
1
4 4
8
122 27
17 18 2 391 1 3
429 6799
1
0
0
1
7 7
1
167
21 25 1 459
498 1376
1
0
0
1
130
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 6 2 1 7 2 1 8 2 1 9 2 2 0 2 2 1 2 2 2 2 2 3 2 2 4 2 2 5 2
2
14
0
1
7
9 2
1 2
258 31
23 40 1 646 2 6
584 1809 3
1
0
0
1
4 8
1 4
128 72
18 21 3 374 5
395 9152
1
0
0
1
3 4
1 2
793 9
16 93 1 271
294 5002
0
1
1
1
2 4
2 0
762 5
16 40 0 248
288 5929
1
0
1
1
2 7
2 1
163 82
18 24 0 244 4
373 6664
1
0
0
1
4 5
1 6
201 76
20 23 1 238 8 4
472 1227 8
1
0
0
1
8 3
1 3
218 35
22 29 3 513 5 0
538 1383 9
1
0
0
1
8 7
1 0
173 77
18 73 1 392
388 7451
1
0
0
1
2 6
1 4
894 0
16 65 1 311
308 6759
1
1
0
1
2 4
1 9
123 26
17 45 3 330
300 6525
1
0
1
1
2 1 0
1 3
154 69
18 16 6 372 4
357 6866
1
0
0
1
7 8
1 1
196 76
21 30 3 469 1 7
473 2448 6
1
0
0
1
2 2
1 0
191 39
18 24 6 513 3
444 8779
1
0
0
1
5 6
1 0
245 42
20 28 5 498 6
420 1269 1
1
0
0
1
5 7
1
168
20 22 1 408
425 1060
1
1
0
1
131
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2 6 2 2 7 2 2 8 2 2 9 2 3 0 2 3 1 2 3 2 2 3 3 2 3 4 2 3 5 2 3 6 2 3 7 2 3 8 2 3 9 2 4 0 2
4
60
8
4 6
1 7
840 7
16 60 0 239
266 1080 2
0
0
1
1
6 7
1 3
231 14
23 43 1 568 1 4
566 1600 5
1
0
0
1
1 4 1
1 5
232 47
24 34 6 524 5
582 2242 7
1
0
0
0
3 7
2 0
871 4
16 42 1 251
273 1192 9
0
0
1
1
1 2 4
7
175 95
17 17 2 609 8 5
530 1568 5
1
0
0
0
3 1
1 2
170 15
18 24 6 574 2
601 7994
1
0
0
1
5 0
1 6
121 37
15 85 7 406
448 7420
1
0
0
1
2 3
9
708 5
13 30 1 283
309 2463
0
1
0
1
4 1
1 6
822 9
11
1 322
257 3703
0
0
1
1
2 2
1 8
866 0
12 35 1 301
265 7676
0
1
0
1
1 6
3
116 00
15 20 9 444 7
442 2845
1
0
0
1
1 2
5
991 4
11 13 0 363 4
244 4115
1
0
0
1
1 7
1 0
684 1
14 85 1 257
273 6293
0
0
1
1
3 5
3
696 7
13 14 1 357 1 0
334 7852
1
0
0
1
5 4
5
196
19 33 1 494
468 1392
1
0
1
0
0
4
132
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4 1 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 2 4 7 2 4 8 2 4 9 2 5 0 2 5 1 2 5 2 2 5 3 2 5 4 2 5 5 2
42
4
3
1
3 3
5
156 56
17 24 9 389 6
376 9195
1
0
0
1
1 7
6
123 50
16 18 1 329 3
342 4838
1
0
0
1
2 7
7
605 5
14 34 4 201
240 4946
0
0
1
1
2 7
3
616 8
13 79 0 233
232 4048
1
0
0
1
0 2
1 4
817 2
13 57 2 265
209 3972
0
0
1
1
1 0 0
1 3
171 62
17 17 6 498 7
468 1980 8
1
0
0
1
5 3
1 1
161 35
18 17 0 393 2
413 8466
1
0
0
1
4 5
1 0
862 5
14 16 1 256
246 4985
0
0
1
1
8 2
1 3
246 24
22 32 6 603 8
611 1618 6
1
0
0
1
0 6
1
747 6
11 12 4 406 5
362 4740
1
0
1
1
0 4
8
437 8
11 82 4 281
303 5080
1
0
0
1
0 5
0
526 9
11 10 6 303 1
329 3631
1
0
0
1
3 4
1 4
697 4
15 45 0 249
307 7010
0
0
1
1
4 5
2 9
829 3
18 63 4 296
354 9666
0
0
1
1
1 0
1
427
11 43 2 278
330 4093
0
0
1
1
133
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5 6 2 5 7 2 5 8 2 5 9 2 6 0 2 6 1 2 6 2 2 6 3 2 6 4 2 6 5 2 6 6 2 6 7 2 6 8 2 6 9 2 7 0 2
5
7
7 0
1 2
952 7
14 96 9 437
551 9781
1
0
1
1
1 1 1
1 1
105 67
13 10 1 520 6 2
457 1038 3
1
0
0
1
6 1
1 4
605 5
12 25 1 310
391 5884
0
1
1
1
3 0
1 6
839 7
13 96 1 397
467 6260
1
0
0
1
3 4
1 3
714 6
13 54 3 288
341 4426
0
0
1
1
8 1
1 2
200 21
20 22 5 679 1
738 1498 8
1
0
0
1
2 3
1 1
683 4
13 42 1 278
314 3054
0
0
1
1
6 7
1 2
941 9
13 96 2 373
308 7289
1
0
0
1
5 3
1 4
147 38
17 20 5 520 3
524 9707
1
0
0
1
4 1
7
965 3
14 96 0 338
390 5182
1
0
1
1
4 3
1 0
122 14
17 18 1 466 7 5
520 6408
1
0
0
0
2 4
9
990 9
15 15 9 416 1
426 9649
1
0
0
1
2 6
8
560 3
10 45 2 244
309 5498
1
0
1
1
5 5
7
759 2
15 73 1 343 0
393 7404
1
0
0
1
1 5
1
691
13 67 0 296
327 6706
0
1
1
1
134
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7 1 2 7 2 2 7 3 2 7 4 2 7 5 2 7 6 2 7 7 2 7 8 2 7 9 2 8 0 2 8 1 2 8 2 2 8 3 2 8 4 2 8 5 2
8
0
7 4
3
160 44
19 26 0 465 5
475 1680 1
1
0
0
0
3 5
4
134 73
18 26 1 422 1 8
415 8750
1
0
0
1
1 7
8
460 7
13 49 3 204
230 6123
0
0
1
1
1 6
9
973 0
16 13 6 310 9
351 9601
1
0
0
1
6 3
1 4
184 19
22 27 8 531 8
628 1390 8
1
0
0
1
9 3
1 3
192 94
21 24 2 525 8
564 1950 4
1
0
0
1
2 2
1 9
818 2
16 15 1 258
365 7383
0
0
1
1
9 4
1 8
252 57
21 33 1 665 6 7
593 1945 3
1
0
0
1
8 3
1 8
883 6
16 17 2 294
330 1255 0
0
1
1
1
3 7
0
108 86
15 17 1 434 8 2
437 5645
1
0
0
1
0 2
2
125 54
14 19 1 469 4 1
401 4300
1
0
0
1
1 3
9
513 4
10 48 3 220
232 6103
0
1
1
1
3 5
7
743 5
13 79 4 296
312 1076 3
0
1
0
1
2 6
1
788 1
13 16 5 341 0
357 2695
1
1
0
1
3 2
9
581
11 40 0 251
241 3779
0
0
1
1
135
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8 6 2 8 7 2 8 8 2 8 9 2 9 0 2 9 1 2 9 2 2 9 3 2 9 4 2 9 5 2 9 6 2 9 7 2 9 8 2 9 9 3 0 0
9 9 0
4
179 81
18 23 7 639 3
616 8531
1
0
0
1
2 2
9
462 1
11 35 0 242
235 4515
0
1
1
1
1 2
9
889 8
13 95 6 315
335 3780
1
0
0
1
6 1
1 2
156 26
17 22 1 556 4 1
537 2739 1
1
0
0
1
3 0
1 1
168 78
17 19 1 477 2 5
469 1737 4
1
0
0
1
0 3
9
957 6
13 12 5 328 4
276 5781
0
1
1
1
2 3
1 1
816 2
15 58 4 300
341 7863
0
0
1
1
6 0
5
201 93
17 23 5 574 9
470 1628 2
1
0
0
0
7 2
4
158 81
17 19 1 481 2 1
427 1054 0
1
0
1
1
0 8
5
433 2
11 55 1 194
189 2940
0
1
1
1
4 2
3
159 84
19 24 4 471 4
536 1671 2
1
0
0
1
1 3
1 9
591 5
13 33 5 300
396 7213
0
1
1
1
0 1
5
112 89
13 15 2 332 4
285 9550
1
0
1
1
3 5
2
114 58
16 20 1 403 6 1
401 1060 0
1
0
0
1
136