BAB I PENDAHULUAN

1.1 Latar Belakang

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.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, adapun rumusan masalah yang dapat disimpulkan sebagai berikut:

  1. Bagaimana konsep dan implementasi model Artificial Neural Network (ANN) untuk kasus regresi dan klasifikasi dengan menggunakan bahasa pemrograman R?
  2. Bagaimana performa model ANN yang dievaluasi menggunakan metrik MSE dan MAPE pada kasus regresi, serta akurasi dan presisi pada kasus klasifikasi?

1.3 Tujuan Penelitian

Adapun tujuan penelitian ini yaitu:

  1. Praktikan dapat memahami konsep dan mengimplementasikan model Artificial Neural Network (ANN) untuk regresi dan klasifikasi menggunakan bahasa pemrograman R.
  2. Praktikan dapat mengevaluasi performa model ANN menggunakan metrik evaluasi MSE dan MAPE untuk regresi, serta akurasi dan presisi untuk klasifikasi.

1.4 Manfaat Penelitian

Adapun manfaat penelitian ini yaitu sebagai berikut:

  1. Bagi penulis
    1. Penulis dapat meningkatkan kemampuan dalam mengimplementasikan model ANN menggunakan bahasa pemrograman R.
    2. Penulis dapat melatih kemampuan dalam mengevaluasi dan menginterpretasikan performa model ANN berdasarkan metrik evaluasi yang sesuai.
  2. Bagi pembaca
    1. Pembaca mendapat pemahaman mengenai konsep dasar dan cara kerja Artificial Neural Network (ANN) dalam menyelesaikan permasalahan regresi dan klasifikasi.
    2. Pembaca mendapat referensi dalam memilih dan menilai kelayakan model ANN berdasarkan metrik evaluasi.

1.5 Batasan Masalah

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.

BAB II TINJAUAN PUSTAKA

2.1 Machine Learning dan Pemodelan Prediktif

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).

2.2 Artificial Neural Network (ANN)

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):

  1. Sigmoid Biner: Sigmoid biner dirumuskan \(f(z)=\frac{1}{1+e^{-z}}\) dengan turunan \(f'(z)=f(z)\left[1-f(z)\right]\) yang digunakan pada hidden layer untuk menghasilkan nilai antara 0 dan 1.
  2. Hyperbolic Tangent (Tanh): Hyperbolic tangent dirumuskan \(f(x)=\frac{1-e^{-2x}}{1+e^{-2x}}=\tanh(x)\) dengan turunan \(f'(x)=1-\tanh^{2}(x)\) yang digunakan pada hidden layer dengan keluaran -1 dan 1.
  3. Rectified Linear Unit (ReLU): ReLU dirumuskan \(f(x)=\max(0,x)\) yang digunakan pada hidden layer untuk mempelajari pola non-linier dan mempercepat konvergensi.

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.

2.3 Proses Pembelajaran ANN

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.

2.4 ANN untuk Regresi dan Klasifikasi

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).

2.5 Evaluasi Performa Model

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).

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

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.

3.2 Variabel Penelitian

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.

3.3 Analisis Data

Berikut merupakan algoritma penelitian pada batasan masalah:

  1. Input data.
  2. Statistik deskriptif.
  3. Normalisasi variabel.
  4. Pembagian data training dan testing.
  5. Penentuan kombinasi hidden neuron.
  6. Bentuk model ANN regresi pada data training.
  7. Prediksi data testing.
  8. Evaluasi model.
  9. Pemilihan model terbaik.
  10. Visualisasi jaringan dan bobot model terbaik.
  11. Analisis variable importance.
  12. Output.
  13. Interpretasi.

BAB IV HASIL DAN PEMBAHASAN

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.

4.1 Library

# Memanggil library
library(nnet)
library(NeuralNetTools)
library(mlbench)

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.

4.2 Statistik Deskriptif

# 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
summary(friedman)
##        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
nrow(friedman)
## [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.

4.3 Normalisasi dan Pembagian Data

# 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
test <- friedman[-index, ]
nrow(test)
## [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.

4.4 Model ANN Regresi

# 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.

4.5 Evaluasi Performa Model

# Menampilkan perbandingan seluruh model
hasil
##   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
nn_terbaik <- model_list[[paste0("size", terbaik$Hidden_Neuron,
                                 "_maxit", terbaik$Maxit)]]

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.

4.6 Visualisasi Jaringan dan Bobot

# Visualisasi jaringan saraf tiruan
plotnet(nn_terbaik)
Gambar 4.1 Arsitektur ANN model terbaik

Gambar 4.1 Arsitektur ANN model terbaik

# Menampilkan bobot jaringan saraf
neuralweights(nn_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.

4.7 Variable Importance

# Visualisasi tingkat kepentingan variabel
olden(nn_terbaik)
Gambar 4.2 *Variable importance* model terbaik

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.

BAB V PENUTUP

5.1 Kesimpulan

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\).

5.2 Saran

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.

DAFTAR PUSTAKA

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