1. library yang diperlukan

library(caret)
## Warning: package 'caret' was built under R version 4.4.3
## Loading required package: ggplot2
## Loading required package: lattice
library(e1071)    # Untuk SVM
## Warning: package 'e1071' was built under R version 4.4.3
library(randomForest) # Untuk Random Forest
## Warning: package 'randomForest' was built under R version 4.4.3
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
## 
##     margin
library(rpart)    # Untuk Decision Tree
## Warning: package 'rpart' was built under R version 4.4.3
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
library(ggplot2)

2. Dataset

data_training<-read.csv("C:/Users/CHANIVA/Documents/DATA UAS DATA MINING/data_training.csv",header = TRUE,sep = ",")
data_training
##     usia jenis_kelamin nilai_rata_rata dukungan_orang_tua fasilitas_belajar
## 1     15             0            85.2                  1                 2
## 2     19             0            60.9                  2                 3
## 3     15             0            60.5                  2                 1
## 4     15             1            78.6                  3                 2
## 5     16             1            66.2                  2                 1
## 6     18             1            85.9                  2                 1
## 7     16             1            45.2                  1                 3
## 8     16             0            91.6                  2                 2
## 9     15             1            74.1                  2                 1
## 10    21             1            88.2                  3                 3
## 11    21             0            82.9                  3                 2
## 12    18             0            76.9                  2                 2
## 13    15             1            63.8                  2                 1
## 14    19             1            73.7                  2                 1
## 15    20             1            68.2                  2                 2
## 16    18             0            58.4                  3                 1
## 17    16             1            74.6                  1                 3
## 18    16             1            72.9                  2                 1
## 19    21             1            66.0                  2                 3
## 20    17             0            69.9                  3                 2
## 21    15             0            56.6                  2                 1
## 22    15             1            65.7                  2                 1
## 23    17             0            83.8                  2                 3
## 24    18             1            87.4                  1                 1
## 25    19             0            64.5                  1                 2
## 26    21             1            68.3                  3                 3
## 27    19             1            82.3                  3                 2
## 28    19             1            69.9                  1                 3
## 29    18             0            70.7                  3                 3
## 30    16             1            68.8                  2                 2
## 31    18             0            77.0                  2                 3
## 32    17             1            90.0                  3                 3
## 33    16             0            63.6                  1                 2
## 34    15             1            80.0                  1                 2
## 35    16             1            89.1                  2                 2
## 36    20             1            68.8                  3                 3
## 37    17             0            67.6                  1                 2
## 38    21             0            78.8                  2                 1
## 39    20             1            61.9                  2                 2
## 40    16             0            75.8                  2                 3
## 41    18             0            67.0                  2                 2
## 42    18             1            92.7                  2                 2
## 43    20             1            65.6                  1                 2
## 44    16             1            82.0                  1                 2
## 45    19             1            67.4                  1                 2
## 46    18             1            70.3                  3                 2
## 47    19             1            66.6                  2                 1
## 48    18             0            64.1                  2                 2
## 49    16             1            61.8                  2                 1
## 50    16             1            69.1                  2                 1
## 51    17             0            82.5                  3                 3
## 52    21             0            66.8                  2                 1
## 53    15             1            57.4                  3                 3
## 54    19             1            71.1                  2                 3
## 55    16             1            68.3                  2                 1
## 56    16             0            82.0                  3                 2
## 57    20             1            66.7                  2                 3
## 58    20             0            41.5                  2                 2
## 59    16             0            78.4                  3                 2
## 60    18             0            55.7                  3                 2
## 61    17             1            76.8                  2                 2
## 62    20             1            89.0                  2                 2
## 63    19             0            78.7                  2                 2
## 64    16             1            74.5                  2                 2
## 65    21             1            99.6                  3                 3
## 66    20             0            80.7                  2                 2
## 67    16             0            84.7                  3                 2
## 68    16             0           100.0                  3                 3
## 69    19             0            74.7                  1                 1
## 70    15             0            70.9                  3                 1
## 71    15             1            74.0                  3                 2
## 72    21             0            69.3                  2                 2
## 73    18             1            69.9                  3                 2
## 74    19             0            74.4                  2                 1
## 75    16             1            65.2                  1                 3
## 76    15             1            75.6                  2                 1
## 77    19             1            75.6                  1                 3
## 78    18             1            71.2                  2                 2
## 79    18             1            89.2                  2                 3
## 80    15             0            66.8                  3                 2
## 81    17             1            70.4                  2                 3
## 82    17             0            77.2                  2                 1
## 83    19             1            81.3                  2                 2
## 84    19             0            80.2                  3                 3
## 85    18             0            73.1                  3                 2
## 86    20             1            74.4                  2                 1
## 87    19             1            68.0                  2                 3
## 88    18             0            68.0                  2                 3
## 89    20             0            80.6                  2                 2
## 90    16             1            75.5                  3                 2
## 91    16             0            80.7                  2                 1
## 92    15             0            63.0                  2                 3
## 93    16             0            84.6                  2                 2
## 94    19             0            80.1                  2                 2
## 95    20             0            71.3                  3                 1
## 96    21             1            89.2                  2                 2
## 97    19             1            91.9                  2                 2
## 98    18             1            80.2                  1                 2
## 99    15             1            74.5                  2                 3
## 100   18             1            62.2                  2                 2
## 101   21             0            70.1                  1                 1
## 102   16             1            87.9                  3                 1
## 103   16             0            84.3                  2                 1
## 104   17             0            82.3                  1                 3
## 105   19             0            73.1                  1                 2
## 106   19             0            69.4                  2                 3
## 107   20             1            82.8                  2                 1
## 108   17             1            72.3                  3                 1
## 109   20             0            63.9                  2                 2
## 110   18             0            69.0                  2                 2
## 111   19             0            71.8                  2                 1
## 112   15             1            86.7                  1                 3
## 113   18             1            92.0                  2                 2
## 114   15             1            84.3                  1                 2
## 115   15             0            63.5                  3                 2
## 116   19             1            76.2                  2                 1
## 117   20             1            63.4                  2                 2
## 118   17             1            85.0                  3                 3
## 119   15             1            80.4                  3                 3
## 120   16             0            91.0                  2                 2
## 121   19             1            73.9                  1                 1
## 122   21             0            75.1                  2                 1
## 123   20             0            80.7                  3                 3
## 124   15             0            80.4                  2                 2
## 125   19             1            69.7                  2                 1
## 126   20             0            76.8                  2                 3
## 127   19             1            86.6                  1                 1
## 128   15             1            81.4                  2                 2
## 129   21             0            81.0                  2                 2
## 130   16             1            69.7                  3                 1
## 131   17             1            79.5                  2                 1
## 132   16             0            78.2                  1                 3
## 133   16             1            71.8                  2                 3
## 134   15             0            84.0                  2                 3
## 135   17             1            73.5                  2                 3
## 136   15             1            77.6                  2                 2
## 137   19             0            92.3                  2                 1
## 138   15             0            88.7                  2                 2
## 139   17             0            74.4                  2                 1
## 140   21             1            79.5                  1                 1
## 141   15             1            85.8                  1                 2
## 142   20             0            76.9                  1                 1
## 143   20             0            90.7                  2                 3
## 144   21             1            72.7                  2                 1
## 145   20             1            82.7                  2                 2
## 146   21             0            71.9                  2                 1
## 147   17             1            61.4                  3                 3
## 148   20             1            65.9                  1                 1
## 149   19             1            68.5                  3                 2
## 150   15             0            64.6                  2                 2
## 151   20             1            90.9                  2                 3
## 152   15             0            80.4                  1                 2
## 153   16             1            51.3                  2                 3
## 154   21             0            79.7                  2                 2
## 155   16             1            72.7                  3                 2
## 156   20             1            75.9                  3                 1
## 157   20             0            62.0                  2                 3
## 158   20             0            66.5                  3                 3
## 159   20             0            52.1                  1                 3
## 160   21             1            87.8                  1                 2
## 161   20             0            91.6                  2                 2
## 162   18             0            79.0                  1                 3
## 163   18             0            59.9                  2                 1
## 164   21             1            63.6                  2                 3
## 165   16             0            78.4                  3                 1
## 166   16             1            60.3                  2                 2
## 167   21             0            72.1                  1                 2
## 168   18             1            54.7                  3                 3
## 169   20             1            69.1                  3                 2
## 170   18             0            64.5                  2                 2
## 171   16             0            64.2                  2                 3
## 172   15             1            87.8                  2                 3
## 173   15             1            75.8                  1                 2
## 174   16             0            65.1                  2                 3
## 175   16             1            67.4                  2                 2
## 176   15             0            75.1                  2                 2
## 177   18             0            89.1                  3                 1
## 178   17             0            77.9                  1                 2
## 179   19             0            78.0                  2                 2
## 180   20             0            61.0                  2                 2
## 181   20             1            76.0                  3                 2
## 182   16             1            78.7                  3                 3
## 183   18             0            58.2                  2                 3
## 184   16             1            92.8                  2                 3
## 185   21             1            52.2                  1                 2
## 186   17             0            59.1                  2                 3
## 187   16             0            72.5                  3                 2
## 188   15             1            71.5                  1                 2
## 189   18             1            77.7                  2                 2
## 190   20             0            79.5                  2                 3
## 191   19             0            48.1                  2                 1
## 192   16             0            83.7                  2                 2
## 193   15             0            76.7                  1                 3
## 194   15             0            64.1                  2                 2
## 195   19             1            71.2                  3                 3
## 196   17             1            65.5                  3                 2
## 197   20             1            82.2                  2                 1
## 198   20             1            73.4                  1                 1
## 199   18             0            57.1                  3                 3
## 200   16             1            89.9                  3                 2
##     jam_belajar_per_hari kehadiran_persen minat_pada_pelajaran
## 1                    4.1             79.7                    2
## 2                    3.8             89.8                    2
## 3                    6.1             86.7                    1
## 4                    5.1             78.5                    3
## 5                    5.5             81.0                    1
## 6                    3.7             85.4                    2
## 7                    2.8             78.9                    1
## 8                    6.2             78.1                    2
## 9                    4.6             96.8                    2
## 10                   3.0             82.1                    3
## 11                   4.1             93.9                    1
## 12                   3.1             86.5                    3
## 13                   4.2             89.2                    3
## 14                   5.6             77.2                    1
## 15                   3.3             85.0                    1
## 16                   4.2             84.0                    3
## 17                   4.7             73.6                    2
## 18                   3.2             81.1                    3
## 19                   1.5             82.9                    2
## 20                   3.7             86.9                    1
## 21                   2.7             81.8                    3
## 22                   5.4             90.6                    2
## 23                   3.9             90.1                    1
## 24                   3.8             68.6                    2
## 25                   1.6             75.8                    2
## 26                   2.4             72.9                    2
## 27                   4.7             82.0                    3
## 28                   3.7             99.7                    3
## 29                   2.9             87.7                    2
## 30                   1.8             74.9                    1
## 31                   7.2             88.5                    2
## 32                   5.7             82.3                    3
## 33                   2.7             86.1                    2
## 34                   3.1             86.0                    3
## 35                   4.3             72.7                    3
## 36                   3.9             95.1                    2
## 37                   5.8             92.5                    2
## 38                   4.1             81.6                    1
## 39                   4.1             73.1                    2
## 40                   1.0             72.2                    1
## 41                   3.8             92.4                    3
## 42                   1.5             92.2                    2
## 43                   3.3             79.7                    3
## 44                   2.8             88.8                    1
## 45                   4.7             88.6                    2
## 46                   3.6             98.4                    3
## 47                   3.4             89.2                    2
## 48                   3.2            100.0                    1
## 49                   3.8             87.0                    2
## 50                   1.6             91.0                    3
## 51                   5.5             93.0                    3
## 52                   3.8             84.4                    2
## 53                   5.1            100.0                    1
## 54                   7.2             90.8                    1
## 55                   2.6             95.0                    3
## 56                   5.7             87.6                    2
## 57                   6.1             95.3                    1
## 58                   5.3             85.0                    1
## 59                   4.7             91.2                    3
## 60                   6.6             89.5                    1
## 61                   3.3             94.9                    1
## 62                   2.9             88.7                    2
## 63                   4.4             86.4                    2
## 64                   4.4             80.7                    1
## 65                   5.8             77.3                    2
## 66                   5.7             75.4                    1
## 67                   4.3             91.9                    2
## 68                   3.6             74.3                    2
## 69                   6.4             90.0                    2
## 70                   1.0             80.3                    3
## 71                   2.9             93.2                    3
## 72                   4.6             91.9                    2
## 73                   2.2             79.7                    2
## 74                   4.5             81.5                    2
## 75                   2.9             77.5                    1
## 76                   3.2             69.7                    1
## 77                   2.9             93.0                    3
## 78                   5.5             87.4                    2
## 79                   3.9             96.5                    3
## 80                   3.3             86.1                    3
## 81                   5.1            100.0                    3
## 82                   7.7             79.7                    3
## 83                   4.1             82.4                    1
## 84                   4.2             76.2                    3
## 85                   6.5             95.4                    3
## 86                   4.3             85.6                    3
## 87                   2.7             97.1                    3
## 88                   3.8             82.9                    1
## 89                   4.6             94.5                    2
## 90                   4.9             97.7                    2
## 91                   2.4             77.0                    1
## 92                   6.5             76.9                    2
## 93                   6.1             88.1                    2
## 94                   4.8             83.4                    1
## 95                   3.1             87.4                    2
## 96                   3.7             86.6                    3
## 97                   1.0             82.2                    3
## 98                   2.2             75.4                    3
## 99                   2.1             77.3                    3
## 100                  3.0             72.6                    1
## 101                  6.5             84.8                    1
## 102                  3.6             89.8                    2
## 103                  4.7             94.4                    1
## 104                  3.2             79.5                    1
## 105                  4.9             90.6                    1
## 106                  5.3             74.0                    3
## 107                  5.8             80.7                    1
## 108                  4.8             88.1                    1
## 109                  7.0             73.1                    1
## 110                  2.6             89.4                    2
## 111                  4.9             81.6                    3
## 112                  5.1             79.0                    2
## 113                  3.1             78.0                    3
## 114                  5.5             85.0                    2
## 115                  4.6             87.8                    2
## 116                  4.7             88.9                    2
## 117                  5.8             76.6                    1
## 118                  3.9             79.9                    1
## 119                  5.0             79.9                    2
## 120                  3.6             90.0                    2
## 121                  4.2             90.0                    3
## 122                  8.3            100.0                    3
## 123                  2.7             90.8                    1
## 124                  5.0             80.0                    1
## 125                  8.3             79.1                    3
## 126                  3.7             98.3                    1
## 127                  6.6             83.8                    3
## 128                  2.2             94.8                    1
## 129                  4.7             90.0                    1
## 130                  2.4             93.1                    1
## 131                  1.8             82.2                    1
## 132                  2.7             75.8                    3
## 133                  2.4             88.6                    1
## 134                  3.3             91.8                    1
## 135                  2.7             88.4                    1
## 136                  4.0             98.3                    3
## 137                  5.0             85.5                    2
## 138                  2.6             76.1                    2
## 139                  4.1             88.9                    3
## 140                  1.0             83.4                    2
## 141                  4.2             93.3                    1
## 142                  4.6             80.4                    1
## 143                  2.4             78.9                    1
## 144                  4.8             72.6                    2
## 145                  7.5             74.7                    1
## 146                  4.2             75.6                    3
## 147                  3.6             66.3                    1
## 148                  8.0             90.6                    1
## 149                  5.2             91.1                    1
## 150                  4.6             77.1                    3
## 151                  6.4             83.8                    1
## 152                  6.5             89.0                    2
## 153                  2.0             91.7                    2
## 154                  5.0             88.3                    2
## 155                  3.2             88.5                    2
## 156                  3.3             86.6                    2
## 157                  2.8             76.7                    2
## 158                  1.0             86.4                    2
## 159                  5.2             93.0                    2
## 160                  2.7             79.5                    1
## 161                  6.0             93.2                    3
## 162                  4.9             89.1                    3
## 163                  1.0             86.5                    1
## 164                  2.6             84.9                    3
## 165                  6.0             98.9                    2
## 166                  3.2             85.7                    3
## 167                  1.0             79.4                    3
## 168                  8.8             88.3                    2
## 169                  4.9             80.3                    1
## 170                  3.6             79.0                    3
## 171                  7.5             69.8                    2
## 172                  7.0             87.5                    3
## 173                  4.7             81.8                    1
## 174                  1.6             90.8                    3
## 175                  3.4             79.0                    2
## 176                  4.5             84.9                    1
## 177                  2.6             83.6                    1
## 178                  2.6             87.5                    2
## 179                  2.8             80.8                    1
## 180                  1.0             93.1                    1
## 181                  6.3             85.1                    3
## 182                  5.4            100.0                    1
## 183                  2.2            100.0                    3
## 184                  3.7             90.7                    2
## 185                  2.4             77.5                    2
## 186                  5.0             84.6                    2
## 187                  3.5             81.4                    2
## 188                  5.9             96.9                    2
## 189                  5.5             96.1                    2
## 190                  1.1             80.9                    2
## 191                  3.1             84.6                    1
## 192                  2.1             76.3                    2
## 193                  3.8             91.8                    3
## 194                  4.4             89.5                    2
## 195                  1.9             95.1                    3
## 196                  5.2             76.2                    2
## 197                  5.3             87.9                    2
## 198                  5.7             80.9                    2
## 199                  2.0             92.3                    3
## 200                  3.2             95.5                    2
##     kesulitan_ekonomi jarak_rumah_sekolah motivasi_belajar
## 1                   0                11.5                1
## 2                   1                 6.3                2
## 3                   1                15.9                1
## 4                   1                 9.8                2
## 5                   1                 3.5                1
## 6                   1                 1.0                1
## 7                   0                 6.4                1
## 8                   0                 4.9                2
## 9                   0                 6.5                1
## 10                  1                 9.5                3
## 11                  1                 5.5                2
## 12                  1                 2.1                2
## 13                  1                14.5                1
## 14                  0                15.0                1
## 15                  1                17.6                1
## 16                  1                11.1                1
## 17                  1                 6.7                1
## 18                  0                 8.1                2
## 19                  0                 3.5                2
## 20                  0                11.6                1
## 21                  1                 1.1                1
## 22                  1                 2.8                2
## 23                  1                14.0                2
## 24                  1                20.5                1
## 25                  0                 8.5                1
## 26                  0                15.4                2
## 27                  0                 4.0                3
## 28                  0                11.9                2
## 29                  1                 6.8                2
## 30                  1                 1.7                1
## 31                  1                 6.8                2
## 32                  0                 7.2                3
## 33                  1                 3.5                1
## 34                  1                 9.0                2
## 35                  0                 8.4                2
## 36                  0                14.1                2
## 37                  0                12.5                2
## 38                  1                10.1                1
## 39                  1                10.9                1
## 40                  0                 3.3                1
## 41                  0                16.5                2
## 42                  0                 2.5                2
## 43                  1                 7.4                1
## 44                  1                 1.7                1
## 45                  1                 6.0                1
## 46                  0                16.7                2
## 47                  1                10.0                1
## 48                  1                 6.6                1
## 49                  1                11.0                1
## 50                  0                 5.4                2
## 51                  0                10.4                3
## 52                  0                 7.4                1
## 53                  1                 3.0                2
## 54                  0                13.9                2
## 55                  0                 7.5                2
## 56                  0                 7.1                3
## 57                  0                 3.0                2
## 58                  1                14.2                1
## 59                  0                 3.8                2
## 60                  0                 9.7                2
## 61                  0                11.9                1
## 62                  0                14.5                2
## 63                  1                12.4                1
## 64                  1                12.7                1
## 65                  1                 9.4                2
## 66                  0                 7.1                2
## 67                  0                 3.7                2
## 68                  0                 8.7                2
## 69                  0                10.2                2
## 70                  0                 3.9                2
## 71                  1                11.3                2
## 72                  0                 6.1                2
## 73                  1                 9.5                1
## 74                  0                 8.0                2
## 75                  0                 6.6                1
## 76                  1                 1.1                1
## 77                  1                 8.2                2
## 78                  1                 3.5                2
## 79                  0                 4.9                3
## 80                  1                11.4                1
## 81                  0                15.1                3
## 82                  0                11.4                1
## 83                  0                 5.8                2
## 84                  0                 9.0                2
## 85                  0                 9.2                3
## 86                  1                 9.3                2
## 87                  1                 7.8                2
## 88                  1                 3.4                1
## 89                  0                10.2                2
## 90                  0                 5.6                2
## 91                  0                 3.3                1
## 92                  0                 9.2                2
## 93                  0                 7.4                2
## 94                  1                 6.3                1
## 95                  0                 3.3                2
## 96                  0                 6.1                2
## 97                  1                11.7                2
## 98                  1                11.7                1
## 99                  1                 5.0                2
## 100                 1                 3.7                1
## 101                 1                 2.4                1
## 102                 0                 8.4                2
## 103                 0                12.8                2
## 104                 0                 3.4                1
## 105                 0                13.8                1
## 106                 1                12.6                2
## 107                 0                 9.3                2
## 108                 1                 8.2                1
## 109                 0                12.3                1
## 110                 0                 5.8                1
## 111                 1                 6.0                1
## 112                 0                 7.3                2
## 113                 0                 7.1                2
## 114                 1                 8.7                2
## 115                 0                11.9                2
## 116                 1                 8.4                1
## 117                 0                 1.3                1
## 118                 1                11.4                2
## 119                 1                15.6                2
## 120                 0                 1.0                2
## 121                 0                13.8                2
## 122                 0                10.0                2
## 123                 0                10.8                2
## 124                 1                 5.7                2
## 125                 1                11.8                1
## 126                 0                11.3                2
## 127                 1                 8.1                2
## 128                 0                12.2                1
## 129                 0                10.8                2
## 130                 0                 7.7                1
## 131                 1                13.6                1
## 132                 1                10.2                1
## 133                 0                 7.2                2
## 134                 0                 2.0                2
## 135                 0                10.4                1
## 136                 0                 2.9                2
## 137                 0                 3.3                2
## 138                 0                 4.7                1
## 139                 0                 1.0                2
## 140                 0                 7.9                1
## 141                 0                 4.4                2
## 142                 1                 3.3                1
## 143                 0                 6.2                2
## 144                 1                10.2                1
## 145                 1                 8.4                2
## 146                 0                10.4                2
## 147                 0                 5.3                2
## 148                 0                 9.5                1
## 149                 0                14.1                2
## 150                 1                 3.8                1
## 151                 0                 7.9                2
## 152                 0                11.8                2
## 153                 0                 9.0                2
## 154                 1                14.2                2
## 155                 0                13.4                2
## 156                 1                 5.6                2
## 157                 0                10.2                1
## 158                 1                 4.3                1
## 159                 0                 6.3                2
## 160                 0                12.0                1
## 161                 1                 7.8                3
## 162                 0                 9.6                2
## 163                 1                11.3                1
## 164                 0                 3.7                2
## 165                 1                 5.7                2
## 166                 1                11.1                1
## 167                 0                 7.5                1
## 168                 0                 5.6                2
## 169                 0                 7.7                1
## 170                 0                 1.0                1
## 171                 1                 3.7                2
## 172                 1                 8.6                3
## 173                 1                 1.0                1
## 174                 1                 8.0                2
## 175                 0                 8.7                1
## 176                 0                 2.4                2
## 177                 0                11.1                2
## 178                 0                 4.7                1
## 179                 1                 8.7                1
## 180                 1                 2.5                1
## 181                 0                 7.5                2
## 182                 0                12.5                3
## 183                 1                10.8                2
## 184                 0                 4.9                3
## 185                 0                11.4                1
## 186                 0                16.7                2
## 187                 1                 7.4                2
## 188                 1                12.8                1
## 189                 0                10.6                2
## 190                 1                 7.1                2
## 191                 0                13.3                1
## 192                 1                 1.0                1
## 193                 1                 7.5                2
## 194                 1                13.1                1
## 195                 0                10.9                3
## 196                 1                10.9                2
## 197                 1                14.4                2
## 198                 1                 8.4                1
## 199                 0                10.0                3
## 200                 0                11.0                2
data_testing<-read.csv("C:/Users/CHANIVA/Documents/DATA UAS DATA MINING/data_testing.csv",header = TRUE,sep = ",")
data_testing
##    usia jenis_kelamin nilai_rata_rata dukungan_orang_tua fasilitas_belajar
## 1    15             1            90.2                  2                 2
## 2    19             0            79.6                  1                 1
## 3    17             0            66.9                  2                 3
## 4    20             1            85.6                  3                 1
## 5    16             1            65.9                  3                 1
## 6    21             0            70.8                  2                 3
## 7    21             0            86.3                  3                 2
## 8    19             1            84.3                  3                 3
## 9    17             0            79.5                  2                 2
## 10   18             0            74.4                  1                 2
## 11   16             1            76.9                  3                 2
## 12   15             1            81.9                  2                 2
## 13   17             1            83.2                  3                 2
## 14   17             0            65.2                  3                 3
## 15   20             1            62.0                  2                 1
##    jam_belajar_per_hari kehadiran_persen minat_pada_pelajaran kesulitan_ekonomi
## 1                   5.4             78.3                    2                 1
## 2                   4.6             88.2                    3                 0
## 3                   2.9             76.3                    1                 0
## 4                   3.9             89.4                    1                 0
## 5                   5.3             74.0                    1                 1
## 6                   1.9            100.0                    1                 1
## 7                   4.4            100.0                    1                 0
## 8                   1.5             92.1                    1                 0
## 9                   2.0             84.5                    3                 0
## 10                  5.5             90.3                    3                 0
## 11                  1.9             78.7                    1                 1
## 12                  1.4             72.4                    1                 0
## 13                  2.7             87.5                    2                 1
## 14                  1.7             64.9                    2                 0
## 15                  4.2             78.0                    1                 0
##    jarak_rumah_sekolah
## 1                  4.7
## 2                 10.8
## 3                 11.8
## 4                  5.7
## 5                  3.1
## 6                  7.1
## 7                  8.2
## 8                  5.4
## 9                  4.2
## 10                10.7
## 11                 4.3
## 12                 9.1
## 13                 9.4
## 14                12.5
## 15                 8.0

3. Preprocessing data

a. Pembersihan data

Memeriksa missing values

sum(is.na(data_training))
## [1] 0
sum(is.na(data_testing))
## [1] 0

b. Mengkonversi tipe data

Untuk data training

data_training$jenis_kelamin <- as.factor(data_training$jenis_kelamin)
data_training$dukungan_orang_tua <- as.factor(data_training$dukungan_orang_tua)
data_training$fasilitas_belajar <- as.factor(data_training$fasilitas_belajar)
data_training$minat_pada_pelajaran <- as.factor(data_training$minat_pada_pelajaran)
data_training$kesulitan_ekonomi <- as.factor(data_training$kesulitan_ekonomi)
data_training$motivasi_belajar <- as.factor(data_training$motivasi_belajar)
str(data_training)
## 'data.frame':    200 obs. of  11 variables:
##  $ usia                : int  15 19 15 15 16 18 16 16 15 21 ...
##  $ jenis_kelamin       : Factor w/ 2 levels "0","1": 1 1 1 2 2 2 2 1 2 2 ...
##  $ nilai_rata_rata     : num  85.2 60.9 60.5 78.6 66.2 85.9 45.2 91.6 74.1 88.2 ...
##  $ dukungan_orang_tua  : Factor w/ 3 levels "1","2","3": 1 2 2 3 2 2 1 2 2 3 ...
##  $ fasilitas_belajar   : Factor w/ 3 levels "1","2","3": 2 3 1 2 1 1 3 2 1 3 ...
##  $ jam_belajar_per_hari: num  4.1 3.8 6.1 5.1 5.5 3.7 2.8 6.2 4.6 3 ...
##  $ kehadiran_persen    : num  79.7 89.8 86.7 78.5 81 85.4 78.9 78.1 96.8 82.1 ...
##  $ minat_pada_pelajaran: Factor w/ 3 levels "1","2","3": 2 2 1 3 1 2 1 2 2 3 ...
##  $ kesulitan_ekonomi   : Factor w/ 2 levels "0","1": 1 2 2 2 2 2 1 1 1 2 ...
##  $ jarak_rumah_sekolah : num  11.5 6.3 15.9 9.8 3.5 1 6.4 4.9 6.5 9.5 ...
##  $ motivasi_belajar    : Factor w/ 3 levels "1","2","3": 1 2 1 2 1 1 1 2 1 3 ...

Untuk data testing

data_testing$jenis_kelamin <- as.factor(data_testing$jenis_kelamin)
data_testing$dukungan_orang_tua <- as.factor(data_testing$dukungan_orang_tua)
data_testing$fasilitas_belajar <- as.factor(data_testing$fasilitas_belajar)
data_testing$minat_pada_pelajaran <- as.factor(data_testing$minat_pada_pelajaran)
data_testing$kesulitan_ekonomi <- as.factor(data_testing$kesulitan_ekonomi)
str(data_testing)
## 'data.frame':    15 obs. of  10 variables:
##  $ usia                : int  15 19 17 20 16 21 21 19 17 18 ...
##  $ jenis_kelamin       : Factor w/ 2 levels "0","1": 2 1 1 2 2 1 1 2 1 1 ...
##  $ nilai_rata_rata     : num  90.2 79.6 66.9 85.6 65.9 70.8 86.3 84.3 79.5 74.4 ...
##  $ dukungan_orang_tua  : Factor w/ 3 levels "1","2","3": 2 1 2 3 3 2 3 3 2 1 ...
##  $ fasilitas_belajar   : Factor w/ 3 levels "1","2","3": 2 1 3 1 1 3 2 3 2 2 ...
##  $ jam_belajar_per_hari: num  5.4 4.6 2.9 3.9 5.3 1.9 4.4 1.5 2 5.5 ...
##  $ kehadiran_persen    : num  78.3 88.2 76.3 89.4 74 100 100 92.1 84.5 90.3 ...
##  $ minat_pada_pelajaran: Factor w/ 3 levels "1","2","3": 2 3 1 1 1 1 1 1 3 3 ...
##  $ kesulitan_ekonomi   : Factor w/ 2 levels "0","1": 2 1 1 1 2 2 1 1 1 1 ...
##  $ jarak_rumah_sekolah : num  4.7 10.8 11.8 5.7 3.1 7.1 8.2 5.4 4.2 10.7 ...

4. Membagi data training menjadi training dan validation set (80:20)

set.seed(123)
train_index <- createDataPartition(data_training$motivasi_belajar, p = 0.8, list = FALSE)
train_data <- data_training[train_index, ]
val_data <- data_training[-train_index, ]

5. Training model

a. SVM Model

svm_model <- svm(motivasi_belajar ~ ., data = train_data, kernel = "radial", probability = TRUE)

Prediksi pada validation set

svm_pred <- predict(svm_model, val_data)

Evaluasi model SVM

svm_confusion <- confusionMatrix(svm_pred, val_data$motivasi_belajar)
print("SVM Confusion Matrix:")
## [1] "SVM Confusion Matrix:"
print(svm_confusion)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1  2  3
##          1  8  1  0
##          2  8 20  2
##          3  0  0  0
## 
## Overall Statistics
##                                         
##                Accuracy : 0.7179        
##                  95% CI : (0.5513, 0.85)
##     No Information Rate : 0.5385        
##     P-Value [Acc > NIR] : 0.01707       
##                                         
##                   Kappa : 0.4257        
##                                         
##  Mcnemar's Test P-Value : NA            
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3
## Sensitivity            0.5000   0.9524  0.00000
## Specificity            0.9565   0.4444  1.00000
## Pos Pred Value         0.8889   0.6667      NaN
## Neg Pred Value         0.7333   0.8889  0.94872
## Prevalence             0.4103   0.5385  0.05128
## Detection Rate         0.2051   0.5128  0.00000
## Detection Prevalence   0.2308   0.7692  0.00000
## Balanced Accuracy      0.7283   0.6984  0.50000

b. Random Forest Model

rf_model <- randomForest(motivasi_belajar ~ ., data = train_data, ntree = 500, importance = TRUE)

Prediksi pada validation set

rf_pred <- predict(rf_model, val_data)

Evaluasi model Random Forest

rf_confusion <- confusionMatrix(rf_pred, val_data$motivasi_belajar)
print("Random Forest Confusion Matrix:")
## [1] "Random Forest Confusion Matrix:"
print(rf_confusion)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1  2  3
##          1 11  1  0
##          2  5 20  2
##          3  0  0  0
## 
## Overall Statistics
##                                          
##                Accuracy : 0.7949         
##                  95% CI : (0.6354, 0.907)
##     No Information Rate : 0.5385         
##     P-Value [Acc > NIR] : 0.0008107      
##                                          
##                   Kappa : 0.5906         
##                                          
##  Mcnemar's Test P-Value : NA             
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3
## Sensitivity            0.6875   0.9524  0.00000
## Specificity            0.9565   0.6111  1.00000
## Pos Pred Value         0.9167   0.7407      NaN
## Neg Pred Value         0.8148   0.9167  0.94872
## Prevalence             0.4103   0.5385  0.05128
## Detection Rate         0.2821   0.5128  0.00000
## Detection Prevalence   0.3077   0.6923  0.00000
## Balanced Accuracy      0.8220   0.7817  0.50000

Variable importance

importance(rf_model)
##                               1          2            3 MeanDecreaseAccuracy
## usia                 -0.9805839 -1.2533977 -0.366875474           -1.7937235
## jenis_kelamin        -2.4665131 -1.1324294  0.009372684           -2.3778346
## nilai_rata_rata       8.2858240  7.4756168  7.039040547           12.7161690
## dukungan_orang_tua    9.1084476  2.7149209  4.983055790            9.1887702
## fasilitas_belajar     9.5440623  5.8642837  2.872415583           10.5891084
## jam_belajar_per_hari  5.7101147  3.7524759  2.923300331            6.9905398
## kehadiran_persen     12.7551007  2.9521001  2.762522505           10.6298991
## minat_pada_pelajaran  8.5298272  5.7337515  5.922519834           11.1315295
## kesulitan_ekonomi     5.9496490 -0.9725624 -1.221590210            3.0855486
## jarak_rumah_sekolah   0.9869363 -1.5802391 -1.576383582           -0.8122241
##                      MeanDecreaseGini
## usia                         5.736621
## jenis_kelamin                1.542986
## nilai_rata_rata             16.081183
## dukungan_orang_tua           6.182150
## fasilitas_belajar            7.643212
## jam_belajar_per_hari        13.478781
## kehadiran_persen            17.435629
## minat_pada_pelajaran         7.942051
## kesulitan_ekonomi            3.437622
## jarak_rumah_sekolah          9.954677
varImpPlot(rf_model)

c. Decision Tree Model

dt_model <- rpart(motivasi_belajar ~ ., data = train_data, method = "class")

Plot decision tree

rpart.plot(dt_model, extra = 104, box.palette = "GnBu", branch.lty = 3, shadow.col = "gray", nn = TRUE)

Prediksi pada validation set

dt_pred <- predict(dt_model, val_data, type = "class")

Evaluasi model Decision Tree

dt_confusion <- confusionMatrix(dt_pred, val_data$motivasi_belajar)
print("Decision Tree Confusion Matrix:")
## [1] "Decision Tree Confusion Matrix:"
print(dt_confusion)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1  2  3
##          1 10  4  0
##          2  6 17  2
##          3  0  0  0
## 
## Overall Statistics
##                                           
##                Accuracy : 0.6923          
##                  95% CI : (0.5243, 0.8298)
##     No Information Rate : 0.5385          
##     P-Value [Acc > NIR] : 0.0372          
##                                           
##                   Kappa : 0.3938          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3
## Sensitivity            0.6250   0.8095  0.00000
## Specificity            0.8261   0.5556  1.00000
## Pos Pred Value         0.7143   0.6800      NaN
## Neg Pred Value         0.7600   0.7143  0.94872
## Prevalence             0.4103   0.5385  0.05128
## Detection Rate         0.2564   0.4359  0.00000
## Detection Prevalence   0.3590   0.6410  0.00000
## Balanced Accuracy      0.7255   0.6825  0.50000

6. Prediksi pada data testing menggunakan tiga model prediksi

a. Prediksi dengan SVM

svm_test_pred <- predict(svm_model, data_testing)
data_testing$motivasi_belajar_svm <- svm_test_pred

b. Prediksi dengan Random Forest

rf_test_pred <- predict(rf_model, data_testing)
data_testing$motivasi_belajar_rf <- rf_test_pred

c. Prediksi dengan Decision Tree

dt_test_pred <- predict(dt_model, data_testing, type = "class")
data_testing$motivasi_belajar_dt <- dt_test_pred

7. Menampilkan hasil prediksi untuk 15 siswa

hasil_prediksi <- data_testing[, c("usia", "jenis_kelamin", "nilai_rata_rata", 
                                  "motivasi_belajar_svm", "motivasi_belajar_rf", "motivasi_belajar_dt")]
print("Hasil Prediksi untuk 15 Siswa:")
## [1] "Hasil Prediksi untuk 15 Siswa:"
print(hasil_prediksi)
##    usia jenis_kelamin nilai_rata_rata motivasi_belajar_svm motivasi_belajar_rf
## 1    15             1            90.2                    2                   2
## 2    19             0            79.6                    2                   2
## 3    17             0            66.9                    1                   1
## 4    20             1            85.6                    2                   2
## 5    16             1            65.9                    1                   1
## 6    21             0            70.8                    2                   2
## 7    21             0            86.3                    2                   2
## 8    19             1            84.3                    2                   2
## 9    17             0            79.5                    2                   2
## 10   18             0            74.4                    2                   2
## 11   16             1            76.9                    1                   1
## 12   15             1            81.9                    1                   1
## 13   17             1            83.2                    2                   2
## 14   17             0            65.2                    1                   2
## 15   20             1            62.0                    1                   1
##    motivasi_belajar_dt
## 1                    2
## 2                    2
## 3                    2
## 4                    1
## 5                    1
## 6                    2
## 7                    1
## 8                    2
## 9                    1
## 10                   2
## 11                   1
## 12                   2
## 13                   2
## 14                   2
## 15                   1

8. Membandingkan hasil prediksi dari ketiga model

comparison <- data.frame(
  Siswa = 1:15,
  SVM = as.numeric(data_testing$motivasi_belajar_svm),
  RandomForest = as.numeric(data_testing$motivasi_belajar_rf),
  DecisionTree = as.numeric(data_testing$motivasi_belajar_dt)
)

print("Perbandingan Hasil Prediksi:")
## [1] "Perbandingan Hasil Prediksi:"
print(comparison)
##    Siswa SVM RandomForest DecisionTree
## 1      1   2            2            2
## 2      2   2            2            2
## 3      3   1            1            2
## 4      4   2            2            1
## 5      5   1            1            1
## 6      6   2            2            2
## 7      7   2            2            1
## 8      8   2            2            2
## 9      9   2            2            1
## 10    10   2            2            2
## 11    11   1            1            1
## 12    12   1            1            2
## 13    13   2            2            2
## 14    14   1            2            2
## 15    15   1            1            1

9. Menghitung kesepakatan antar model

Berapa banyak prediksi yang sama antara SVM dan Random Forest?

agreement_svm_rf <- sum(data_testing$motivasi_belajar_svm == data_testing$motivasi_belajar_rf)

Berapa banyak prediksi yang sama antara SVM dan Decision Tree?

agreement_svm_dt <- sum(data_testing$motivasi_belajar_svm == data_testing$motivasi_belajar_dt)

Berapa banyak prediksi yang sama antara Random Forest dan Decision Tree?

agreement_rf_dt <- sum(data_testing$motivasi_belajar_rf == data_testing$motivasi_belajar_dt)

Berapa banyak prediksi yang sama di ketiga model?

agreement_all <- sum(data_testing$motivasi_belajar_svm == data_testing$motivasi_belajar_rf & 
                     data_testing$motivasi_belajar_rf == data_testing$motivasi_belajar_dt)

cat("\nKesepakatan antar model:\n")
## 
## Kesepakatan antar model:
cat("SVM dan Random Forest:", agreement_svm_rf, "dari 15\n")
## SVM dan Random Forest: 14 dari 15
cat("SVM dan Decision Tree:", agreement_svm_dt, "dari 15\n")
## SVM dan Decision Tree: 9 dari 15
cat("Random Forest dan Decision Tree:", agreement_rf_dt, "dari 15\n")
## Random Forest dan Decision Tree: 10 dari 15
cat("Kesepakatan ketiga model:", agreement_all, "dari 15\n")
## Kesepakatan ketiga model: 9 dari 15

10. Visualisasi hasil prediksi

Membuat data frame untuk visualisasi

plot_data <- data.frame(
  Siswa = rep(1:15, 3),
  Model = rep(c("SVM", "Random Forest", "Decision Tree"), each = 15),
  Prediksi = c(as.numeric(data_testing$motivasi_belajar_svm),
               as.numeric(data_testing$motivasi_belajar_rf),
               as.numeric(data_testing$motivasi_belajar_dt))
)

Plot perbandingan prediksi

library(ggplot2)
ggplot(plot_data, aes(x = Siswa, y = Prediksi, color = Model)) +
  geom_point(size = 4) +
  geom_line(aes(group = Siswa), color = "gray", linetype = "dashed") +
  scale_y_continuous(breaks = 1:3, labels = c("1", "2", "3")) +
  labs(title = "Perbandingan Prediksi Motivasi Belajar dari Tiga Model",
       x = "Siswa", y = "Prediksi Motivasi Belajar") +
  theme_minimal()