Perkembangan machine learning sebagai bagian dari kecerdasan buatan telah mengubah cara data dimodelkan dan dianalisis. Pertumbuhan data yang semakin besar dan beragam menuntut metode yang mampu mengenali pola serta hubungan antarvariabel untuk menghasilkan prediksi (Maszeri dkk., 2025). Salah satu pendekatan yang banyak digunakan dalam pemodelan prediktif adalah Artificial Neural Network (ANN) karena kemampuannya menangkap hubungan yang kompleks dan tidak linier (Abdelaziz, Mossa, & Ouanjili, 2024).
Artificial Neural Network (ANN) merupakan model komputasi yang terinspirasi dari jaringan saraf biologis dan tersusun atas neuron buatan dalam lapisan masukan (input layer), lapisan tersembunyi (hidden layer), dan lapisan keluaran (output layer). Setiap neuron memproses masukan melalui bobot, bias, dan fungsi aktivasi sebelum meneruskannya ke lapisan berikutnya (Wang dkk., 2024). Bentuk keluaran model menyesuaikan karakteristik variabel respons, yaitu nilai numerik pada regresi dan kategori kelas pada klasifikasi. Bahasa pemrograman R menyediakan berbagai package yang memungkinkan model ANN dibangun dan diimplementasikan untuk kedua permasalahan tersebut (Baik, 2021).
Evaluasi performa diperlukan untuk mengetahui kemampuan model ANN dalam menghasilkan prediksi yang akurat. Pada regresi, kesalahan prediksi dapat diukur menggunakan Mean Squared Error (MSE) dan Mean Absolute Percentage Error (MAPE), sedangkan pada klasifikasi, ketepatan hasil dapat dinilai melalui akurasi dan presisi (Rashidi dkk., 2023). Pemahaman konsep, implementasi, dan evaluasi ANN untuk regresi dan klasifikasi menjadi landasan penting dalam membangun model prediktif yang tepat.
Berdasarkan latar belakang di atas, adapun rumusan masalah yang dapat disimpulkan sebagai berikut:
Adapun tujuan penelitian ini yaitu:
Adapun manfaat penelitian ini yaitu sebagai berikut:
Adapun batasan masalah pada penelitian ini yaitu lakukan ANN regresi
dengan hidden neuron = c(10, 20, 30) dengan data
training 80% dan testing 20%. Kemudian buat dengan
maxit = (250, 500). Kemudian interprestasikan
output dengan jelas. Gunakan data Iris,
Friedman, Breast Cancer, dan lain-lain.
Machine learning merupakan cabang kecerdasan buatan yang berfokus pada pengembangan algoritma dan model yang memungkinkan komputer untuk belajar dari data, mengenali pola, serta membuat prediksi atau keputusan tanpa pemrograman langsung (Farhan, Puspasari, & Gasim, 2025). Secara umum, algoritma machine learning dikategorikan ke dalam supervised learning, unsupervised learning, dan reinforcement learning, dengan supervised learning sebagai pendekatan utama untuk tugas klasifikasi dan regresi karena menggunakan data berlabel. Dalam konteks supervised learning, tujuan utamanya adalah memodelkan fungsi yang mendasari hubungan statistik antara variabel fitur dan variabel target, seperti yang diformulasikan pada Persamaan (2.1) (Rashidi dkk., 2023).
\[ Y = f(X) + \varepsilon \tag{2.1} \]
Pada Persamaan (2.1), \(Y\) menyatakan variabel target, \(X = (x_1, \ldots, x_p)\) merupakan vektor fitur berdimensi \(p\), \(f\) adalah fungsi matematis yang memetakan \(X\) ke \(Y\), dan \(\varepsilon\) adalah galat acak yang independen terhadap \(X\). Fungsi \(f\) yang sebenarnya umumnya tidak diketahui dan hanya dapat diestimasi atau didekati dari data sampel. Proses estimasi \(f\) dilakukan dengan meminimalkan suatu fungsi kerugian, seperti quadratic loss untuk regresi dan cross-entropy loss untuk klasifikasi (Rashidi dkk., 2023).
Pendekatan supervised machine learning menekankan pada kemampuan model untuk memprediksi observasi baru yang belum pernah dilihat, sehingga evaluasi performa harus dilakukan pada data di luar data pelatihan. Model prediktif dibedakan berdasarkan tingkat fleksibilitas dan interpretabilitasnya, di mana model yang lebih fleksibel mampu menangkap hubungan nonlinier dan interaksi antarfitur, tetapi umumnya lebih sulit diinterpretasikan (Pargent, Schoedel, & Stachl, 2023). Keseimbangan antara bias dan varians menjadi pertimbangan utama dalam memilih tingkat fleksibilitas model agar diperoleh performa prediksi yang optimal (Rashidi dkk., 2023).
Artificial Neural Network (ANN) merupakan model komputasi yang terinspirasi dari cara kerja otak manusia, di mana sejumlah neuron saling terhubung untuk memproses informasi dan mempelajari pola dari data (Fransiska, 2026). Metode ini menggunakan elemen perhitungan non-linier dasar yang disebut neuron yang diorganisasikan sebagai jaringan yang saling berhubungan, sehingga mirip dengan jaringan saraf manusia (Humolungo, Hasyim, & Lasarudin, 2022). ANN dikembangkan karena beberapa aplikasi, seperti pengenalan citra, pengenalan suara, dan peramalan cuaca, sulit untuk diterapkan secara mudah dan akurat menggunakan instruksi komputer konvensional (Maszeri dkk., 2025).
Struktur dasar ANN terdiri atas tiga lapisan utama, yaitu lapisan masukan (input layer), lapisan tersembunyi (hidden layer), dan lapisan keluaran (output layer) (Wang dkk., 2024). Lapisan masukan menerima data mentah, lapisan tersembunyi memproses data untuk menemukan pola atau fitur tertentu, dan lapisan keluaran menghasilkan hasil akhir berupa prediksi atau klasifikasi. Hubungan antara lapisan-lapisan tersebut dapat diilustrasikan melalui arsitektur Multi Layer Perceptron (MLP) yang menunjukkan setiap neuron pada lapisan saling terkait dengan ditandai oleh koneksi berbobot (Putra, Prayama, & Amnur, 2022).
Setiap koneksi antar neuron memiliki bobot yang menentukan seberapa besar pengaruh masukan terhadap keluaran (Maszeri dkk., 2025). Lapisan tersembunyi dan lapisan keluaran memiliki tambahan input yang disebut dengan bias, yang berfungsi sebagai konstanta untuk menyesuaikan prediksi (Putra, Prayama, & Amnur, 2022). Proses pengolahan informasi pada suatu neuron secara matematis dapat dinyatakan sebagai berikut (Fransiska, 2026):
\[ y = f\left(\sum_{i=1}^{p} w_{i}x_{i} + b\right) \tag{2.2} \]
dengan \(x_i\) merupakan masukan ke-\(i\), \(w_i\) adalah bobot yang menghubungkan masukan ke-\(i\) dengan neuron, \(b\) adalah bias, \(f\) merupakan fungsi aktivasi, dan \(y\) adalah keluaran neuron. Persamaan ini menunjukkan bahwa neuron menghitung kombinasi linier dari seluruh masukannya, menambahkan bias, lalu menerapkan fungsi aktivasi untuk menghasilkan keluaran.
Fungsi aktivasi berperan penting dalam menentukan nilai keluaran berdasarkan total masukan yang diterima oleh neuron (Maszeri dkk., 2025). Fungsi aktivasi memperkenalkan non-linearitas sehingga jaringan dapat menangkap pola-pola kompleks yang tidak dapat direpresentasikan oleh model linier (Abdelaziz, Mossa, & Ouanjili, 2024). Beberapa fungsi aktivasi yang umum digunakan dalam ANN antara lain sebagai berikut (Fransiska, 2026):
Pemilihan fungsi aktivasi pada lapisan keluaran disesuaikan dengan jenis permasalahan yang dihadapi, misalnya fungsi linear untuk regresi dan fungsi sigmoid atau softmax untuk klasifikasi (Fransiska, 2026). Dengan demikian, arsitektur ANN yang terdiri atas neuron, bobot, bias, dan fungsi aktivasi membentuk suatu sistem yang mampu mempelajari hubungan kompleks antara masukan dan keluaran.
Proses pembelajaran ANN bertujuan untuk menyesuaikan bobot dan bias jaringan agar keluaran yang dihasilkan mendekati target yang diinginkan (Baik, 2021). Pembelajaran dilakukan dengan menggunakan data pelatihan, di mana jaringan secara iteratif mengubah parameter-parameternya untuk meminimalkan kesalahan prediksi. Algoritma yang umum digunakan untuk melatih jaringan feedforward adalah backpropagation (Lusia dkk., 2025).
Proses pembelajaran ANN terdiri atas dua tahapan utama, yaitu feedforward dan backpropagation (Putra, Prayama, & Amnur, 2022). Pada tahap feedforward, data masukan diberikan ke lapisan input, diproses melalui lapisan-lapisan yang ada, hingga menghasilkan keluaran akhir (Maszeri dkk., 2025). Setiap neuron pada lapisan tersembunyi menghitung nilai keluaran dengan mengalikan masukan dengan bobot, menambahkan bias, lalu menerapkannya pada fungsi aktivasi (Ayanwale dkk., 2025). Perhitungan feedforward pada jaringan dengan satu lapisan tersembunyi dapat dinyatakan melalui persamaan berikut (Baik, 2021):
\[ o(x) = f\left(u_{0} + \sum_{j=1}^{J} w_{j} \times f\left(u_{0j} + \sum_{i=1}^{n} w_{ij}x_{i}\right)\right) \tag{2.3} \]
dengan \(u_0\) adalah intercept pada neuron keluaran, \(u_{0j}\) adalah intercept pada neuron tersembunyi ke-\(j\), \(w_j\) adalah bobot neuron tersembunyi ke-\(j\) menuju lapisan keluaran, \(w_{ij}\) adalah bobot dari masukan ke-\(i\) menuju neuron tersembunyi ke-\(j\), \(x_i\) adalah variabel masukan, dan \(f\) adalah fungsi aktivasi. Persamaan ini menggambarkan bagaimana informasi mengalir dari lapisan masukan melalui lapisan tersembunyi hingga menghasilkan nilai prediksi pada lapisan keluaran.
Setelah tahap feedforward menghasilkan keluaran, kesalahan atau galat dihitung dengan membandingkan keluaran jaringan terhadap target yang sebenarnya (Maszeri dkk., 2025). Fungsi galat yang umum digunakan adalah Sum of Squared Errors (SSE) atau cross-entropy (Baik, 2021). Nilai galat ini kemudian digunakan sebagai dasar untuk memperbarui bobot melalui tahap backpropagation.
Tahap backpropagation menggunakan aturan rantai (chain rule) dalam kalkulus untuk menghitung gradien fungsi galat terhadap setiap bobot dalam jaringan (Maszeri dkk., 2025). Perhitungan dimulai dari lapisan keluaran, di mana galat langsung dapat diukur, lalu gradien diteruskan secara terbalik hingga ke lapisan input (Lusia dkk., 2025). Informasi galat pada neuron tersembunyi dihitung dengan menjumlahkan hasil perkalian informasi galat pada neuron selanjutnya dengan bobot terkait (Putra, Prayama, & Amnur, 2022).
Pembaruan bobot dan bias dilakukan berdasarkan gradien yang telah dihitung dengan menggunakan algoritma optimasi (Maszeri dkk., 2025). Secara umum, pembaruan bobot menggunakan gradient descent dapat dituliskan sebagai berikut (Fransiska, 2026):
\[ w_{ij}(t+1) = w_{ij}(t) - \eta \frac{\partial L}{\partial w_{ij}} \tag{2.4} \]
dengan \(w_{ij}(t)\) adalah bobot pada iterasi ke-\(t\), \(\eta\) adalah laju pembelajaran (learning rate) yang menentukan seberapa besar perubahan bobot pada setiap iterasi, dan \(\frac{\partial L}{\partial w_{ij}}\) adalah gradien fungsi kerugian terhadap bobot tersebut. Persamaan ini menunjukkan bahwa bobot diperbarui ke arah yang berlawanan dengan gradien untuk meminimalkan nilai kerugian.
Proses feedforward, perhitungan galat, backpropagation, dan pembaruan bobot dilakukan secara berulang selama beberapa epoch hingga mencapai kondisi berhenti tertentu (Maszeri dkk., 2025). Kondisi berhenti dapat berupa tercapainya nilai galat minimum atau tercapainya jumlah iterasi maksimum yang ditentukan (Lusia dkk., 2025). Dengan iterasi yang cukup, jaringan dapat mempelajari pola dari data pelatihan secara efektif.
ANN digunakan untuk menyelesaikan dua jenis permasalahan utama, yaitu regresi dan klasifikasi, yang dibedakan berdasarkan bentuk keluarannya. Pada regresi, ANN memprediksi variabel respons berupa nilai numerik kontinu dan umumnya menggunakan fungsi aktivasi linear pada lapisan keluaran agar nilai prediksi sesuai dengan rentang variabel respons. Pada klasifikasi, ANN memprediksi variabel respons berupa kategori, apabila klasifikasi biner menggunakan satu neuron dengan fungsi sigmoid, sedangkan klasifikasi multikelas menggunakan fungsi softmax dengan jumlah probabilitas seluruh kelas sama dengan 1 (Fransiska, 2026). Perbedaan bentuk keluaran tersebut menentukan fungsi aktivasi yang dipilih pada lapisan keluaran jaringan.
Perbedaan mendasar antara ANN regresi dan klasifikasi juga terletak pada fungsi kerugian yang diminimalkan selama pelatihan. ANN regresi menggunakan Mean Squared Error (MSE) atau Mean Absolute Percentage Error (MAPE) untuk mengukur selisih antara nilai aktual dan nilai prediksi. ANN klasifikasi menggunakan binary cross-entropy untuk klasifikasi biner dan categorical cross-entropy untuk klasifikasi multikelas (Humolungo, Hasyim, & Lasarudin, 2022). Pemilihan fungsi kerugian ini disesuaikan dengan jenis keluaran yang dihasilkan jaringan.
Implementasi ANN dalam bahasa pemrograman R dapat dilakukan
menggunakan beberapa package yang tersedia. Package
nnet digunakan untuk melatih jaringan feedforward
dengan satu lapisan tersembunyi, sedangkan package
NeuralNetTools digunakan untuk memvisualisasikan arsitektur
jaringan dan menganalisis kepentingan variabel masukan. Package
neuralnet menyediakan fungsi yang lebih fleksibel untuk
melatih Multi-Layer Perceptron dengan algoritma
backpropagation atau resilient backpropagation (Baik,
2021).
Evaluasi performa model merupakan tahap penting untuk mengukur sejauh mana model mampu memprediksi data dengan benar, dan ukuran evaluasi harus disesuaikan dengan jenis permasalahan, yaitu ukuran galat untuk data numerik dan ukuran ketepatan klasifikasi untuk data kategorik. Pada permasalahan regresi, evaluasi dilakukan dengan membandingkan nilai aktual dan nilai hasil prediksi menggunakan metrik yang mengukur besarnya deviasi prediksi. Salah satu metrik yang umum digunakan adalah Mean Squared Error (MSE) yang dihitung sebagai rata-rata kuadrat selisih antara nilai aktual dan nilai prediksi (Rashidi dkk., 2023). MSE dirumuskan sebagai berikut:
\[ MSE = \frac{1}{n}\sum_{i=1}^{n}\left(y_{i} - \hat{y}_{i}\right)^{2} \tag{2.5} \]
dengan \(y_i\) adalah nilai aktual observasi ke-\(i\), \(\hat{y}_i\) adalah nilai prediksi observasi ke-\(i\), dan \(n\) adalah jumlah observasi. Nilai MSE yang semakin kecil menunjukkan bahwa prediksi model semakin mendekati nilai aktual, sehingga model dinilai semakin baik. Selain MSE, Mean Absolute Percentage Error (MAPE) juga digunakan untuk mengukur galat prediksi dalam bentuk persentase, yang dirumuskan sebagai berikut (Fransiska, 2026):
\[ MAPE = \frac{1}{n}\sum_{i=1}^{n}\left|\frac{y_{i} - \hat{y}_{i}}{y_{i}}\right| \times 100\% \tag{2.6} \]
dengan \(y_i\) adalah nilai aktual, \(\hat{y}_i\) adalah nilai prediksi, dan \(n\) adalah jumlah observasi. MAPE menyatakan galat relatif terhadap nilai aktual sehingga memudahkan interpretasi tingkat akurasi prediksi dalam satuan persen.
Pada permasalahan klasifikasi, evaluasi umumnya bertumpu pada confusion matrix yang menampilkan jumlah prediksi benar dan salah pada data uji. Confusion matrix terdiri atas empat komponen, yaitu True Positive (TP), False Positive (FP), False Negative (FN), dan True Negative (TN) yang menjadi dasar perhitungan berbagai metrik evaluasi (Farhan, Puspasari, & Gasim, 2025). Berdasarkan confusion matrix tersebut, accuracy mengukur proporsi prediksi yang benar secara keseluruhan, sedangkan precision mengukur proporsi prediksi positif yang benar-benar positif. Kedua metrik tersebut dirumuskan secara berurutan sebagai berikut (Rashidi dkk., 2023):
\[ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \tag{2.7} \]
\[ Precision = \frac{TP}{TP + FP} \tag{2.8} \]
dengan TP, TN, FP, dan FN masing-masing menyatakan jumlah true positive, true negative, false positive, dan false negative. Nilai accuracy dan precision yang semakin mendekati 1 menunjukkan kinerja klasifikasi yang semakin baik, namun accuracy memiliki keterbatasan pada dataset yang tidak seimbang karena sangat bergantung pada performa kelas mayoritas (Ananda, Ula, & Fadlisyah, 2026).
Jenis data yang digunakan dalam penelitian ini adalah data numerik, yaitu data yang menunjukkan nilai pengukuran dalam bentuk angka. Seluruh variabel pada data tersebut, baik variabel respons maupun variabel prediktor, bertipe numerik. Data yang digunakan berasal dari hasil pembangkitan data simulasi Friedman yang disajikan dalam bentuk angka.
Sumber data yang digunakan dalam penelitian ini adalah data sekunder.
Data sekunder merupakan data yang telah tersedia dari pihak lain dan
dapat dimanfaatkan kembali untuk keperluan penelitian. Dataset
Friedman diperoleh dari package mlbench pada
perangkat lunak R. Dataset tersebut terdiri atas 500
observasi.
Variabel merupakan karakteristik atau atribut yang dapat diukur maupun diamati dalam suatu penelitian. Penelitian ini menggunakan sebelas variabel, yaitu \(X_1\), \(X_2\), \(X_3\), \(X_4\), \(X_5\), \(X_6\), \(X_7\), \(X_8\), \(X_9\), \(X_{10}\), dan \(y\). Variabel \(y\) berperan sebagai variabel respons yang bertipe numerik. Sepuluh variabel lainnya berperan sebagai variabel prediktor yang bertipe numerik dengan skala 0 sampai 1.
Berikut merupakan algoritma penelitian pada batasan masalah:
Pada batasan masalah diminta untuk melakukan ANN regresi dengan
hidden neuron sebanyak 10, 20, dan 30 pada data
training 80% dan data testing 20%, dengan
maxit sebesar 250 dan 500, serta menginterpretasikan
output dengan jelas. Data yang digunakan pada praktikum ini
adalah data Friedman. Bab ini memuat sintaks, output, dan
pembahasan pada setiap tahapan analisis.
Package nnet digunakan untuk membangun model
ANN dengan satu lapisan tersembunyi. Package
NeuralNetTools digunakan untuk memvisualisasikan jaringan,
menampilkan bobot, dan menghitung kepentingan variabel. Package
mlbench digunakan untuk membangkitkan data simulasi
Friedman.
# Membangkitkan dan mengeksplorasi data
set.seed(46)
friedman <- mlbench.friedman1(500, sd = 1)
friedman <- data.frame(friedman$x, y = friedman$y)
head(friedman)## X1 X2 X3 X4 X5 X6 X7
## 1 0.1843486 0.63065394 0.391459662 0.12680373 0.87679377 0.83685380 0.13191053
## 2 0.2433627 0.62688977 0.093797925 0.06531142 0.32091802 0.31975779 0.60232242
## 3 0.5839976 0.05501567 0.111240190 0.90429369 0.69926808 0.96923544 0.80963247
## 4 0.3456296 0.20859936 0.237699130 0.09206661 0.08303835 0.03260738 0.01079518
## 5 0.2331262 0.19809978 0.009779111 0.72427174 0.84686300 0.50878622 0.95276108
## 6 0.6550814 0.11513320 0.370363325 0.81808757 0.73707033 0.96833700 0.53751617
## X8 X9 X10 y
## 1 0.6361858 0.4194955 0.5113803 10.791827
## 2 0.7895728 0.1275962 0.8545929 11.501000
## 3 0.4081067 0.1300695 0.2434832 16.847534
## 4 0.7974194 0.5489354 0.9441657 4.296826
## 5 0.4107555 0.4854686 0.2717751 17.021725
## 6 0.4250472 0.2972691 0.5571985 15.761292
## X1 X2 X3 X4
## Min. :0.00102 Min. :0.002318 Min. :0.003179 Min. :0.001382
## 1st Qu.:0.23924 1st Qu.:0.262211 1st Qu.:0.242310 1st Qu.:0.220565
## Median :0.52185 Median :0.507983 Median :0.499946 Median :0.497819
## Mean :0.50044 Mean :0.506233 Mean :0.490153 Mean :0.500623
## 3rd Qu.:0.73931 3rd Qu.:0.749360 3rd Qu.:0.711107 3rd Qu.:0.795459
## Max. :0.99871 Max. :0.998740 Max. :0.997415 Max. :0.999373
## X5 X6 X7 X8
## Min. :0.006211 Min. :0.0005415 Min. :0.000773 Min. :0.0008159
## 1st Qu.:0.319054 1st Qu.:0.2535631 1st Qu.:0.255026 1st Qu.:0.2661636
## Median :0.537735 Median :0.4776063 Median :0.475247 Median :0.5081238
## Mean :0.529556 Mean :0.4950144 Mean :0.480457 Mean :0.5001207
## 3rd Qu.:0.773411 3rd Qu.:0.7423580 3rd Qu.:0.695908 3rd Qu.:0.7346382
## Max. :0.999281 Max. :0.9998414 Max. :0.998512 Max. :0.9985399
## X9 X10 y
## Min. :0.004449 Min. :0.002577 Min. : 1.571
## 1st Qu.:0.228308 1st Qu.:0.234723 1st Qu.:10.787
## Median :0.509685 Median :0.498841 Median :14.354
## Mean :0.497121 Mean :0.488565 Mean :14.582
## 3rd Qu.:0.737239 3rd Qu.:0.732792 3rd Qu.:18.016
## Max. :0.998563 Max. :0.997786 Max. :27.754
## [1] 500
Fungsi mlbench.friedman1 membangkitkan 500 observasi
yang terdiri atas 10 variabel prediktor (\(X_1\) sampai \(X_{10}\)) berdistribusi seragam pada selang
0 sampai 1 dan satu variabel respons (\(y\)) dengan simpangan baku galat sebesar 1.
Hanya \(X_1\) sampai \(X_5\) yang membentuk nilai \(y\), sedangkan \(X_6\) sampai \(X_{10}\) merupakan variabel pengganggu.
Penetapan set.seed(46) menjamin data yang dibangkitkan
dapat direproduksi pada setiap pengulangan analisis.
Statistik deskriptif merupakan ringkasan numerik yang menggambarkan karakteristik data, meliputi nilai minimum, kuartil, median, rata-rata, dan nilai maksimum. Ringkasan tersebut diperlukan pada tahap prapemrosesan data untuk mengetahui rentang nilai, kecenderungan pusat, dan sebaran setiap variabel sebelum model dibangun. Tabel 4.1 menyajikan statistik deskriptif seluruh variabel.
Tabel 4.1 Statistik deskriptif seluruh variabel
| Variabel | Minimum | Kuartil 1 | Median | Rata-rata | Kuartil 3 | Maksimum |
|---|---|---|---|---|---|---|
| \(X_1\) | 0,0010 | 0,2392 | 0,5219 | 0,5004 | 0,7393 | 0,9987 |
| \(X_2\) | 0,0023 | 0,2622 | 0,5080 | 0,5062 | 0,7494 | 0,9987 |
| \(X_3\) | 0,0032 | 0,2423 | 0,4999 | 0,4902 | 0,7111 | 0,9974 |
| \(X_4\) | 0,0014 | 0,2206 | 0,4978 | 0,5006 | 0,7955 | 0,9994 |
| \(X_5\) | 0,0062 | 0,3191 | 0,5377 | 0,5296 | 0,7734 | 0,9993 |
| \(X_6\) | 0,0005 | 0,2536 | 0,4776 | 0,4950 | 0,7424 | 0,9998 |
| \(X_7\) | 0,0008 | 0,2550 | 0,4752 | 0,4805 | 0,6959 | 0,9985 |
| \(X_8\) | 0,0008 | 0,2662 | 0,5081 | 0,5001 | 0,7346 | 0,9985 |
| \(X_9\) | 0,0044 | 0,2283 | 0,5097 | 0,4971 | 0,7372 | 0,9986 |
| \(X_{10}\) | 0,0026 | 0,2347 | 0,4988 | 0,4886 | 0,7328 | 0,9978 |
| \(y\) | 1,5710 | 10,7870 | 14,3540 | 14,5820 | 18,0160 | 27,7540 |
Seluruh variabel prediktor memiliki nilai minimum yang mendekati 0 dan nilai maksimum yang mendekati 1, sesuai dengan sifat distribusi seragam pada selang 0 sampai 1. Rata-rata prediktor berada pada kisaran 0,4805 (\(X_7\)) sampai 0,5296 (\(X_5\)), sedangkan median berada pada kisaran 0,4752 (\(X_7\)) sampai 0,5377 (\(X_5\)). Kuartil 1 dan kuartil 3 masing-masing berada di sekitar 0,22 sampai 0,32 dan 0,70 sampai 0,80, yang menunjukkan sebaran data merata pada seluruh selang. Kedekatan antara rata-rata dan median pada setiap prediktor menunjukkan tidak ada kemiringan distribusi yang berarti.
Variabel respons \(y\) berada pada rentang 1,5710 sampai 27,7540 dengan rata-rata 14,5820 yang sedikit lebih besar daripada median sebesar 14,3540. Selisih yang kecil tersebut menunjukkan sebaran \(y\) relatif simetris dengan kecenderungan menjulur tipis ke kanan. Rentang nilai \(y\) yang jauh lebih lebar daripada prediktor menjadi alasan prediktor perlu dinormalisasi, sedangkan \(y\) dibiarkan pada satuan aslinya. Data tidak memuat nilai hilang sehingga seluruh 500 observasi dapat digunakan pada tahap berikutnya.
# Menormalisasi variabel prediktor dengan min-max
normalisasi <- function(x) (x - min(x)) / (max(x) - min(x))
prediktor <- setdiff(names(friedman), "y")
friedman[prediktor] <- lapply(friedman[prediktor], normalisasi)
# Membagi data menjadi data latih (80%) dan data uji (20%)
set.seed(46)
index <- sample(1:nrow(friedman), round(0.8 * nrow(friedman)))
train <- friedman[index, ]
nrow(train)## [1] 400
## [1] 100
Normalisasi min-max diterapkan pada seluruh variabel prediktor untuk menyamakan skala menjadi selang 0 sampai 1. Penyamaan skala diperlukan karena ANN dilatih dengan algoritma berbasis gradien yang sensitif terhadap perbedaan skala antarvariabel. Variabel respons \(y\) tidak dinormalisasi agar nilai MSE dan MAPE yang dihasilkan tetap berada pada satuan aslinya.
Data dibagi menjadi data training sebesar 80% dan data
testing sebesar 20% menggunakan fungsi sample
dengan set.seed(46). Pembagian tersebut menghasilkan 400
observasi sebagai data latih dan 100 observasi sebagai data uji. Data
latih digunakan untuk membentuk bobot jaringan, sedangkan data uji
digunakan untuk menilai kemampuan model memprediksi data yang belum
pernah dilihat.
# Menentukan formula ANN regresi
i <- names(train)
form <- as.formula(
paste(
"y ~",
paste(i[!i %in% "y"], collapse = " + ")
)
)
# Menentukan kombinasi hidden neuron dan maxit
neuron_set <- c(10, 20, 30)
maxit_set <- c(250, 500)
hasil <- data.frame()
model_list <- list()
# Membangun model ANN regresi untuk setiap kombinasi
for (n in neuron_set) {
for (m in maxit_set) {
set.seed(46)
nn <- nnet.formula(
form,
size = n,
data = train,
linout = TRUE,
maxit = m,
trace = FALSE,
MaxNWts = 5000
)
# Melakukan prediksi pada data uji
predict_regresi <- predict(
nn,
newdata = test,
type = "raw"
)
# Menghitung error prediksi
error <- test$y - as.numeric(predict_regresi)
# Evaluasi model menggunakan MSE dan MAPE
MSE <- mean(error^2)
MAPE <- mean(abs(error / test$y)) * 100
hasil <- rbind(hasil, data.frame(
Hidden_Neuron = n,
Maxit = m,
MSE = round(MSE, 4),
MAPE = round(MAPE, 4)
))
model_list[[paste0("size", n, "_maxit", m)]] <- nn
}
}Formula \(y \sim X_1 + X_2 + \ldots +
X_{10}\) menempatkan \(y\)
sebagai variabel respons dan seluruh variabel lainnya sebagai prediktor.
Jumlah hidden neuron sebanyak 10, 20, dan 30 dikombinasikan
dengan maxit sebanyak 250 dan 500 sehingga diperoleh enam
model yang dibangun secara berulang menggunakan perulangan for.
Argumen linout = TRUE membuat fungsi aktivasi pada lapisan
keluaran bersifat linear, sehingga model dapat menghasilkan nilai
numerik kontinu sesuai kebutuhan regresi.
Argumen size menentukan jumlah neuron pada
lapisan tersembunyi, sedangkan maxit menentukan batas
maksimum iterasi pelatihan. Argumen MaxNWts = 5000 dipasang
agar jumlah bobot pada model dengan neuron yang banyak tidak
melampaui batas bawaan. Pemanggilan set.seed(46) pada
setiap model menyamakan bobot awal sehingga perbedaan hasil dapat
dikaitkan dengan perubahan parameter.
## Hidden_Neuron Maxit MSE MAPE
## 1 10 250 1.2875 6.9552
## 2 10 500 1.3095 6.8708
## 3 20 250 32.8493 37.9000
## 4 20 500 32.8493 37.9000
## 5 30 250 5.9167 14.3650
## 6 30 500 8.1369 17.5461
# Menentukan model terbaik berdasarkan MSE terkecil
terbaik <- hasil[which.min(hasil$MSE), ]
terbaik## Hidden_Neuron Maxit MSE MAPE
## 1 10 250 1.2875 6.9552
Evaluasi performa model menggunakan Mean Squared Error (MSE) dan Mean Absolute Percentage Error (MAPE) yang dihitung pada data uji. MSE merupakan rata-rata kuadrat selisih antara nilai aktual dan nilai prediksi, sedangkan MAPE merupakan rata-rata persentase selisih absolut terhadap nilai aktual. Semakin kecil kedua nilai tersebut, semakin dekat prediksi model dengan nilai aktual. Tabel 4.2 menyajikan hasil evaluasi seluruh kombinasi parameter.
Tabel 4.2 Hasil evaluasi model ANN regresi pada data testing
| Hidden Neuron | maxit |
MSE | MAPE (%) |
|---|---|---|---|
| 10 | 250 | 1,2875 | 6,9552 |
| 10 | 500 | 1,3095 | 6,8708 |
| 20 | 250 | 32,8493 | 37,9000 |
| 20 | 500 | 32,8493 | 37,9000 |
| 30 | 250 | 5,9167 | 14,3650 |
| 30 | 500 | 8,1369 | 17,5461 |
Model terbaik diperoleh pada kombinasi 10 hidden neuron
dengan maxit 250, yaitu MSE sebesar 1,2875 dan MAPE sebesar
6,9552%. Nilai MAPE di bawah 10% termasuk kategori kemampuan prediksi
sangat baik, artinya rata-rata penyimpangan prediksi hanya sekitar 7%
dari nilai aktual. Nilai MSE tersebut juga mendekati ragam galat yang
disisipkan pada data Friedman, yaitu 1, sehingga model telah menangkap
hampir seluruh pola yang dapat dipelajari. Model dengan 10 hidden
neuron dan maxit 500 menghasilkan performa yang hampir
sama (MSE 1,3095 dan MAPE 6,8708%), yang menunjukkan penambahan iterasi
dari 250 menjadi 500 tidak memberikan perbaikan berarti.
Model dengan 20 hidden neuron memiliki performa terburuk,
yaitu MSE sebesar 32,8493 dan MAPE sebesar 37,9000%. Nilai yang identik
pada maxit 250 dan 500 menunjukkan pelatihan telah berhenti
sebelum iterasi ke-250 dan tidak lagi memperbarui bobot. Nilai MSE
tersebut juga berada pada kisaran sebaran data respons, sehingga model
besar kemungkinan terjebak pada solusi yang kurang optimal dan hanya
menghasilkan prediksi mendekati nilai rata-rata \(y\). Hasil ini menunjukkan bahwa jumlah
neuron yang lebih banyak tidak menjamin performa yang lebih
baik, karena kualitas pelatihan juga bergantung pada bobot awal.
Model dengan 30 hidden neuron menghasilkan MSE sebesar
5,9167 pada maxit 250 dan 8,1369 pada maxit
500. Kenaikan galat pada iterasi yang lebih banyak mengindikasikan
adanya overfitting, yaitu model terlalu menyesuaikan diri
dengan data latih sehingga kemampuan generalisasinya pada data uji
menurun. Struktur yang lebih kompleks dengan 361 bobot untuk 400 data
latih memperkuat dugaan tersebut. Secara keseluruhan, model yang lebih
sederhana terbukti lebih sesuai untuk data Friedman dengan jumlah
observasi sebanyak 500.
Gambar 4.1 Arsitektur ANN model terbaik
## $struct
## [1] 10 10 1
##
## $wts
## $wts$`hidden 1 1`
## [1] -74.85051 -39.60750 -38.07534 -33.70700 -43.54626 -40.92802 -39.45283
## [8] -36.77308 -36.99194 -35.93865 -34.22055
##
## $wts$`hidden 1 2`
## [1] -2.84301949 2.02606890 2.58992297 0.14342782 0.39576751 0.12393212
## [7] -0.02601936 0.04017712 -0.00478760 0.06869101 -0.14228481
##
## $wts$`hidden 1 3`
## [1] -62.90230 -37.60193 -32.26100 -26.53425 -42.24621 -33.91205 -29.99704
## [8] -30.10173 -27.65726 -27.93953 -30.11499
##
## $wts$`hidden 1 4`
## [1] 1.71479327 2.71365476 -1.00954437 -0.29082449 -0.01025624 0.05173877
## [7] -0.10690514 0.19700588 -0.19629550 -0.15233758 -0.12296486
##
## $wts$`hidden 1 5`
## [1] -6.86004941 2.74340566 2.91541384 -0.06106531 -0.40323181 -0.19981148
## [7] -0.08794555 -0.04727688 0.11161756 0.16581994 0.16207399
##
## $wts$`hidden 1 6`
## [1] -1.68032411 -1.09181118 -0.50919020 1.51858819 0.24335880 0.09569381
## [7] 0.02514704 -0.11253435 0.05606473 0.02907011 0.07471201
##
## $wts$`hidden 1 7`
## [1] 0.065666213 -0.685720881 -0.529474248 -2.375981349 0.254743042
## [6] 0.108771734 0.057540948 -0.079595707 0.009079358 0.006619374
## [11] 0.221836485
##
## $wts$`hidden 1 8`
## [1] -24.145999 13.451054 162.423223 14.897887 18.160073 8.745695
## [7] -9.395386 9.938417 -16.884356 -6.244193 -28.327875
##
## $wts$`hidden 1 9`
## [1] 143.56959 -39.09186 -19.64936 46.53500 -149.16716 17.19751
## [7] 41.14657 64.16864 43.53035 29.11548 54.61899
##
## $wts$`hidden 1 10`
## [1] -185.82558 -18.12369 28.87252 54.70295 40.22344 190.09881
## [7] -17.64054 53.17651 125.00849 -19.52426 -65.88678
##
## $wts$`out 1`
## [1] -25.913930 -51.629528 47.652101 -58.758517 43.247406 -105.148468
## [7] 77.269417 50.168473 2.276983 -44.697326 0.937186
Gambar 4.1 menunjukkan arsitektur model terbaik yang terdiri atas 10
neuron pada lapisan masukan, 10 neuron pada satu
lapisan tersembunyi, dan 1 neuron pada lapisan keluaran.
Struktur tersebut dinyatakan pada keluaran $struct sebagai
10-10-1. Total bobot model berjumlah 121, yaitu 110 bobot dari lapisan
masukan ke lapisan tersembunyi dan 11 bobot dari lapisan tersembunyi ke
lapisan keluaran, masing-masing sudah termasuk bias.
Keluaran neuralweights menampilkan bobot setiap
neuron tersembunyi, dengan elemen pertama berupa bias dan
sepuluh elemen berikutnya berupa bobot dari \(X_1\) sampai \(X_{10}\). Nilai bobot bervariasi cukup
lebar, mulai dari sekitar -185 sampai 190. Neuron tersembunyi
kedua sampai ketujuh memiliki bobot yang relatif kecil, sedangkan
neuron pertama, ketiga, kedelapan, kesembilan, dan kesepuluh
memiliki bobot yang sangat besar. Bobot yang sangat besar tersebut
menandakan sebagian neuron bekerja pada kondisi jenuh sehingga
model cukup sensitif terhadap perubahan data.
Gambar 4.2 Variable importance model terbaik
Variable importance menunjukkan seberapa besar kontribusi
setiap prediktor terhadap prediksi model. Fungsi olden
menghitung kepentingan setiap prediktor dari hasil kali bobot koneksi
antara lapisan masukan, lapisan tersembunyi, dan lapisan keluaran.
Semakin tinggi batang suatu variabel pada Gambar 4.2, semakin besar
kontribusinya terhadap prediksi model. Tabel 4.3 menyajikan urutan
kepentingan variabel berdasarkan Gambar 4.2.
Tabel 4.3 Urutan tingkat kepentingan variabel
| Peringkat | Variabel |
|---|---|
| 1 | \(X_4\) |
| 2 | \(X_1\) |
| 3 | \(X_2\) |
| 4 | \(X_5\) |
| 5 | \(X_9\) |
| 6 | \(X_6\) |
| 7 | \(X_8\) |
| 8 | \(X_3\) |
| 9 | \(X_{10}\) |
| 10 | \(X_7\) |
Variabel \(X_4\) memiliki tingkat kepentingan tertinggi dengan selisih yang jelas dari variabel lainnya, diikuti oleh \(X_1\), \(X_2\), dan \(X_5\). Keempat variabel tersebut sesuai dengan struktur data Friedman, karena \(X_1\) sampai \(X_5\) merupakan variabel yang benar-benar membentuk nilai \(y\), sedangkan \(X_6\) sampai \(X_{10}\) hanya variabel pengganggu. Variabel \(X_3\) berada pada peringkat kedelapan, lebih rendah daripada \(X_9\) dan \(X_6\). Posisi tersebut dapat dijelaskan oleh pengaruh \(X_3\) pada data Friedman yang berbentuk kuadratik dan berpusat pada nilai 0,5, sehingga kontribusinya tidak mudah tertangkap oleh ukuran kepentingan berbasis hasil kali bobot.
Artificial Neural Network (ANN) merupakan model komputasi
yang terinspirasi dari jaringan saraf biologis dan tersusun atas lapisan
masukan, lapisan tersembunyi, dan lapisan keluaran yang dihubungkan oleh
bobot, bias, dan fungsi aktivasi. Pembelajaran model dilakukan melalui
tahap feedforward dan backpropagation untuk
memperbarui bobot hingga galat prediksi minimum. Pada regresi, lapisan
keluaran menggunakan fungsi aktivasi linear untuk menghasilkan nilai
numerik kontinu, sedangkan pada klasifikasi digunakan fungsi
sigmoid atau softmax untuk menghasilkan kategori.
Implementasi model pada bahasa pemrograman R dapat dilakukan menggunakan
package nnet untuk membangun model serta
NeuralNetTools untuk visualisasi jaringan dan analisis
kepentingan variabel.
Evaluasi performa model ANN disesuaikan dengan jenis permasalahan yang dimodelkan. Pada regresi, Mean Squared Error (MSE) mengukur rata-rata kuadrat selisih nilai aktual dan nilai prediksi, sedangkan Mean Absolute Percentage Error (MAPE) mengukur galat relatif dalam bentuk persentase, dengan nilai yang semakin kecil menunjukkan model yang semakin baik. Pada klasifikasi, akurasi dan presisi dihitung berdasarkan confusion matrix, dengan nilai yang semakin mendekati 1 menunjukkan kinerja yang semakin baik. Akurasi memiliki keterbatasan pada data yang tidak seimbang sehingga perlu dilengkapi dengan metrik lain.
Pada batasan masalah diminta penerapan ANN regresi pada data
Friedman dengan 10, 20, dan 30 hidden neuron serta
maxit 250 dan 500, dan model terbaik diperoleh pada 10
hidden neuron dengan maxit 250 dengan nilai MSE
sebesar 1,2875 dan MAPE sebesar 6,9552%. Jumlah hidden neuron
yang lebih banyak tidak menjamin performa yang lebih baik yang
ditunjukkan oleh model dengan 20 hidden neuron yang memiliki
galat terbesar dan model dengan 30 hidden neuron yang
performanya menurun pada maxit 500. Analisis kepentingan
variabel menunjukkan \(X_4\), \(X_1\), \(X_2\), dan \(X_5\) sebagai variabel yang paling
berpengaruh terhadap prediksi \(y\).
Penelitian selanjutnya disarankan menggunakan rentang parameter yang lebih luas, seperti variasi jumlah lapisan tersembunyi, nilai weight decay, dan laju pembelajaran, untuk memperoleh arsitektur yang lebih optimal. Penggunaan validasi silang (cross validation) dan pengulangan pelatihan dengan beberapa nilai awal bobot yang berbeda juga disarankan agar hasil model lebih stabil dan tidak bergantung pada satu kali pembagian data. Teknik regulasi seperti early stopping dapat dipertimbangkan untuk mengurangi risiko overfitting pada model dengan jumlah neuron yang besar. Perbandingan dengan metode pemodelan prediktif lain pada data yang sama juga dapat dilakukan untuk menilai keunggulan ANN secara lebih menyeluruh.
Abdelaziz, A. Y., Mossa, M. A., & Ouanjli, N. El. (2024). Advances in Solar Photovoltaic Energy Systems. London: IntechOpen.
Ananda, R., Ula, M., & Fadlisyah. (2026). Predicting Household Food Insecurity Status in Langsa City Using Double Random Forest and EasyEnsemble Algorithms. Journal of Artificial Intelligence and Software Engineering, 6(2), 95–104. https://doi.org/10.30811/jaise.v6i2.9116
Ayanwale, M. A., Adelana, O. P., Bamiro, N. B., Olatunbosun, S. O., Idowu, K. O., & Adewale, K. A. (2025). Large language models and GenAI in education: Insights from Nigerian in-service teachers through a hybrid ANN-PLS-SEM approach. F1000Research, 14(1), 1–24. https://doi.org/10.12688/f1000research.161637.1
Baik, J. (2021). Neural network analysis using neuralnet in R. Industry Promotion Research, 6(1), 1–7. https://doi.org/10.21186/IPR.2021.6.1.001
Farhan, M., Puspasari, S., & Gasim, G. (2025). Analisis Sentimen Supporter Sriwijaya FC Berbasis Manchine Learning. Jurnal Algoritme, 6(1), 37–49. https://doi.org/10.35957/algoritme.v6i1.11288
Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Bengkulu: Laboratorium Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Bengkulu.
Humolungo, D., Hasyim, W., & Lasarudin, A. (2022). Prediksi Penerimaan Negara Bukan Pajak (PNBP) Menggunakan Algoritma Neural Network di LPP RRI Gorontalo. JUIK: Jurnal Ilmu Komputer, 2(1), 8–12.
Lusia, D. A., Semathea, K., Sumarminingsih, E., & Efendi, A. (2025). PERBANDINGAN METODE JARINGAN SARAF TIRUAN, FUZZY, DAN ANFIS PADA PERAMALAN DATA INFLASI INDONESIA. Jurnal Teknologi Informasi dan Ilmu Komputer, 11(3), 653–660.
Maszeri, Mokhlis, Shohibuddin, M., Badriyah, K., Qomaruddin, Utami, T. H., Shohir, Hamdani, Rafiuddin, Fahmi, A. S., Listiana, H., Munawwarah, F., Mahendra, Y., Timamah, I., Jannah, F., & Permatasari, I. D. (2025). DEEP LEARNING DALAM PENDIDIKAN DAN ARTIFICIAL INTELLEGENCE. Yayasan Putra Adi Dharma.
Pargent, F., Schoedel, R., & Stachl, C. (2023). Best Practices in Supervised Machine Learning: A Tutorial for Psychologists. Advances in Methods and Practices in Psychological Science, 6(3), 1–35. https://doi.org/10.1177/25152459231162559
Putra, B., Prayama, D., & Amnur, H. (2022). Implementasi Jaringan Syaraf Tiruan untuk Prediksi Cuaca pada PLTA Sumatera Barat. Jurnal Ilmiah Teknologi Sistem Informasi, 3(2), 36–41. http://jurnal-itsi.org
Rashidi, H. H., Albahra, S., Robertson, S., Tran, N. K., & Hu, B. (2023). Common statistical concepts in the supervised Machine Learning arena. Frontiers in Oncology, 13(1), 1–14. https://doi.org/10.3389/fonc.2023.1130229
Wang, M., Guo, X., She, Y., Zhou, Y., Liang, M., & Chen, Z. S. (2024). Advancements in Deep Learning Techniques for Time Series Forecasting in Maritime Applications: A Comprehensive Review. Information (Switzerland), 15(8), 1–33. https://doi.org/10.3390/info15080507