← Back to list

Penerapan Artificial Neural Network (ANN) untuk Studi Kasus Klasifikasi Data Menggunakan Dataset…

Pendahuluan

Fathurrizqicavin · 2026-05-12 16:08 · 0 claps · 4.4 min read
#ann
Open on Medium ↗
Wiki topics: ML · Machine Learning

Penerapan Artificial Neural Network (ANN) untuk Studi Kasus Klasifikasi Data Menggunakan Dataset Kaggle

Pendahuluan

Pada studi kasus ini, dilakukan penerapan metode Artificial Neural Network (ANN) untuk menyelesaikan permasalahan klasifikasi data menggunakan dataset dari Kaggle. Tujuan utama dari penelitian ini adalah membangun model yang mampu memprediksi hasil berdasarkan variabel input yang tersedia dengan tingkat akurasi yang baik.

Artificial Neural Network dipilih karena metode ini mampu mengenali pola yang kompleks pada data dan sering digunakan dalam berbagai bidang seperti kesehatan, bisnis, pendidikan, dan prediksi pelanggan.

Langkah-Langkah Penyelesaian Studi Kasus

1. Import Library

from google.colab import files
uploaded = files.upload()

import pandas as pd
import numpy as np

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam

Tahap pertama adalah mengimpor library yang dibutuhkan seperti:

  • Pandas → untuk membaca dan mengelola dataset
  • NumPy → untuk perhitungan numerik
  • Matplotlib → untuk visualisasi data
  • Scikit-Larn → untuk preprocessing dan evaluasi model
  • TensorFlow / Keras → untuk membangun model ANN

Library ini digunakan agar proses pengolahan data hingga evaluasi model dapat berjalan dengan baik.

2. Load Data

df = pd.read_csv('train.csv')

print(df.head())
print(df.shape)
print(df.info())

Output :

Dataset diambil dari platform Kaggle dan dibaca menggunakan pandas.read_csv().

Pada tahap ini dilakukan pengecekan:

  • jumlah baris dan kolom
  • tipe data
  • missing value
  • distribusi target

Tujuannya adalah memastikan data siap digunakan dan mengetahui karakteristik awal dataset.

3. Data Preprocessing

Preprocessing merupakan tahap penting sebelum data masuk ke model ANN.

Langkah yang dilakukan:

a. Membersihkan Data

Menghapus data kosong (missing value) atau mengganti nilai yang tidak valid.

# Pilih fitur yang akan digunakan
features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']
target = 'Survived'

# Ambil data
X = df[features].copy()
y = df[target]

b. Encoding Data

Jika terdapat data kategorikal seperti “Laki-laki / Perempuan”, maka diubah menjadi bentuk numerik.

# Ubah kolom kategorikal menjadi numerik
X['Sex'] = X['Sex'].map({'male': 0, 'female': 1})
X['Embarked'] = X['Embarked'].map({'S': 0, 'C': 1, 'Q': 2})

c. Feature Scaling

Normalisasi dilakukan agar semua nilai memiliki skala yang seimbang sehingga model lebih stabil saat training.

# Isi nilai kosong dengan median
X = X.fillna(X.median(numeric_only=True))

print(X.head())

d. Split Data

Dataset dibagi menjadi:

  • Data training (80%)
  • Data testing (20%)
X_train, X_test, y_train, y_test = train_test_split(
    X, y,
    test_size=0.2,
    random_state=42,
    stratify=y
)

print('Jumlah data training:', X_train.shape)
print('Jumlah data testing :', X_test.shape)

scaler = StandardScaler()

X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Training digunakan untuk melatih model, sedangkan testing digunakan untuk menguji performa model.

4. Membangun Model ANN

Model ANN dibuat menggunakan beberapa layer:

  • Input Layer
  • Hidden Layer
  • Output Layer
scaler = StandardScaler()

X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

Contoh struktur model:

  • Dense Layer dengan aktivasi ReLU
  • Dense Layer kedua untuk meningkatkan pembelajaran pola
  • Output Layer dengan aktivasi Sigmoid (untuk klasifikasi biner)
model = Sequential([
    Dense(16, activation='relu', input_shape=(X_train_scaled.shape[1],)),
    Dense(8, activation='relu'),
    Dense(1, activation='sigmoid')
])

model.compile(
    optimizer=Adam(learning_rate=0.001),
    loss='binary_crossentropy',
    metrics=['accuracy']
)

model.summary()

Model kemudian dikompilasi menggunakan:

  • Optimizer: Adam
  • Loss Function: Binary Crossentropy
  • Metrics: Accuracy
history = model.fit(
    X_train_scaled,
    y_train,
    epochs=100,
    batch_size=32,
    validation_split=0.2,
    verbose=1
)

loss, accuracy = model.evaluate(X_test_scaled, y_test, verbose=0)

print('Test Loss     :', loss)
print('Test Accuracy :', accuracy)

y_pred_prob = model.predict(X_test_scaled)
y_pred = (y_pred_prob > 0.5).astype(int)

print('Accuracy Score:')
print(accuracy_score(y_test, y_pred))

print('\nConfusion Matrix:')
print(confusion_matrix(y_test, y_pred))

print('\nClassification Report:')
print(classification_report(y_test, y_pred))

Pemilihan ini dilakukan karena sesuai untuk kasus klasifikasi.

5. Training Model

Model dilatih menggunakan data training dengan beberapa parameter seperti:

  • Epoch
  • Batch Size

Selama proses training, sistem akan menghitung:

  • accuracy
  • loss
  • validation accuracy
  • validation loss

import matplotlib.pyplot as plt

# Accuracy
plt.figure(figsize=(8, 4))
plt.plot(history.history['accuracy'], label='Train Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.title('Model Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()

# Loss
plt.figure(figsize=(8, 4))
plt.plot(history.history['loss'], label='Train Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.title('Model Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend()
plt.show()

Semakin tinggi accuracy dan semakin kecil loss, maka model semakin baik.

6. Evaluasi Model

Setelah training selesai, model diuji menggunakan data testing.

Hasil evaluasi menunjukkan bahwa model ANN mampu menghasilkan akurasi yang cukup baik dalam melakukan prediksi. Grafik training juga memperlihatkan bahwa model belajar secara stabil tanpa overfitting yang berlebihan.

Confusion Matrix juga dapat digunakan untuk melihat:

  • True Positive
  • True Negative
  • False Positive
  • False Negative

Hal ini membantu memahami performa model secara lebih detail.

Hasil

Berdasarkan proses training dan testing, diperoleh hasil bahwa model ANN mampu melakukan klasifikasi dengan performa yang cukup optimal.

Beberapa indikator hasil:

  • Accuracy tinggi
  • Loss rendah
  • Prediksi stabil
  • Model mampu mengenali pola data dengan baik

Hal ini menunjukkan bahwa metode ANN efektif digunakan pada studi kasus ini.

Analisis

Dari hasil yang diperoleh, dapat disimpulkan bahwa kualitas preprocessing sangat memengaruhi performa model. Semakin baik data dipersiapkan, semakin tinggi akurasi yang dihasilkan.

Selain itu, jumlah hidden layer dan pemilihan activation function juga berpengaruh besar terhadap hasil akhir model.

Jika epoch terlalu sedikit, model belum belajar optimal. Namun jika terlalu banyak, risiko overfitting dapat meningkat.

Karena itu, pemilihan parameter harus dilakukan secara seimbang agar model menghasilkan performa terbaik.

Kesimpulan

Artificial Neural Network (ANN) terbukti dapat digunakan untuk menyelesaikan studi kasus klasifikasi data dengan hasil yang baik. Proses preprocessing, pemilihan arsitektur model, dan evaluasi performa menjadi faktor utama keberhasilan model.

Dengan akurasi yang memadai, ANN menjadi salah satu metode yang efektif dan relevan untuk diterapkan pada berbagai permasalahan prediksi berbasis data.


메타데이터
post_id
d9f440eb797f
slug
penerapan-artificial-neural-network-ann-untuk-studi-kasus-klasifikasi-data-menggunakan-dataset-d9f440eb797f
url
https://medium.com/@fathurrizqicavin/penerapan-artificial-neural-network-ann-untuk-studi-kasus-klasifikasi-data-menggunakan-dataset-d9f440eb797f
canonical_url
https://medium.com/@fathurrizqicavin/penerapan-artificial-neural-network-ann-untuk-studi-kasus-klasifikasi-data-menggunakan-dataset-d9f440eb797f
author_url
https://medium.com/@fathurrizqicavin
status
ok
fetched_at
2026-06-10 08:17:25