Modul - 4 - SMK - Pemrograman Kecerdasan Artifisial
Modul - 4 - SMK - Pemrograman Kecerdasan Artifisial
Pemrograman
Kecerdasan Artifisial
(Bimbingan Teknis Guru Koding dan Kecerdasan Artifisial Jenjang SMA/SMK)
Pengarah:
Direktur Jenderal Guru, Tenaga Kependidikan dan Pendidikan Guru
Penanggung Jawab:
Direktur Guru Pendidikan Menengah dan Pendidikan Khusus
Koordinator:
Eneng Siti Saadah, S.Si., M.B.A
Dr. Medira Ferayanti, S.S., M.A
Penulis:
Listyanti Dewi Astuti, S.Pd., M.Kom.
Nafik Doni Agustan, S.T., S.Pd.
Pande Made Mahendri Pramadewi, S.Pd., M.Kom
Kontributor:
Fadlilah Prapta Widda, S.Si
Titis Sekti Wijayanti, S.Psi
Rian Muhamad Fitriyatna, S.Si
Layout/desain:
Dwi Harianti, S.A.P.
Dikeluarkan oleh:
Direktur Guru Pendidikan Menengah dan Pendidikan Khusus
Direktorat Jenderal Guru, Tenaga Kependidikan dan Pendidikan Guru
Kementerian Pendidikan Dasar dan Menengah
Kompleks Kemendikbud, Jalan Jenderal Sudirman, Senayan, Jakarta, 10270
Copyright © 2025
Hak Cipta Dilindungi Undang-Undang
Karya ini dilisensikan di bawah lisensi Creative Commons Attribution-NonCommercial-No
Derivatives 4.0 International (CC BY-NC-SA 4.0)
Dilarang memperbanyak sebagian atau keseluruhan isi buku ini untuk kepentingan komersil
tanpa izin tertulis dari Kementerian Pendidikan Dasar dan Menengah
1
Kata Pengantar
2
DAFTAR ISI
Pemrograman KA .................................................................................................................. 31
B.2.2. Analisis Hasil dan Penyempurnaan Output Aplikasi Kecerdasan Artifisial .......... 97
C. Pengenalan Large Language Model pada Kecerdasan Artifisial Generatif ...................... 107
C.1. Konsep Dasar, Arsitektur, dan Cara Kerja Large Language Model ............................ 107
C.2. Peran Large Language Model dalam Kecerdasan Artifisial Generatif dan Aplikasinya
............................................................................................................................................. 113
3
C.3. Teknik Integrasi Pemrograman Kecerdasan Artifisial Dengan Model Large Language
Model ................................................................................................................................... 115
4
A. Deskripsi Umum Modul
A.1. Capaian Pelatihan
Pada akhir pelatihan, peserta mampu menjelaskan konsep dasar pemrograman KA, menerapkan
library kecerdasan artifisial populer untuk menghasilkan aplikasi kecerdasan artifisial, serta
menjelaskan konsep dasar, arsitektur, cara kerja, dan aplikasi Large Language Model (LLM).
Peserta juga mampu merefleksikan bahwa penggunaan LLM harus bertanggung jawab serta
mematuhi prinsip human-centered dan etika yang ada.
5
9. Peserta dapat menyusun dokumentasi teknis yang mencakup alur kerja, kode, dan analisis
hasil aplikasi KA yang dikembangkan.
10. Peserta mampu merefleksikan implikasi etis dalam penggunaan LLM
11. Peserta mampu Merefleksikan tantangan dan solusi selama mengembangkan aplikasi KA
dan mengintegrasikan LLM
6
membangun model
sederhana, seperti
klasifikasi teks/gambar.
(Aktivitas 2: Berlatih
Menerapkan Library
dalam Pemrograman
Kecerdasan Artifisial -
Membuat Deteksi Objek
Menggunakan
TensorFlow)
● Menganalisis output KA
menggunakan matriks
evaluasi dan melakukan
penyempurnaan kode
untuk meningkatkan
performa.
● Menyusun dokumentasi
teknis yang mencakup
alur kerja, kode, dan
analisis hasil aplikasi KA
yang dikembangkan.
7
ke Aplikasi KA
Menggunakan Hugging
Face - Pirate Chatbot)
● Menganalisis kelebihan
dan keterbatasan LLM
melalui studi kasus
output yang dihasilkan
● Menyusun dokumentasi
teknis yang mencakup
alur kerja, kode, dan
analisis hasil aplikasi KA
yang dikembangkan.
8
B. Pemrograman Kecerdasan Artifisial
B.1. Dasar Pemrograman Kecerdasan Artifisial
Kecerdasan Artifisial (KA) telah mengalami perkembangan pesat dengan hadirnya berbagai
pendekatan yang saling melengkapi. Meskipun banyak yang mengasosiasikan KA secara
eksklusif dengan machine learning (ML) karena kemampuannya untuk belajar dari data, KA
sebenarnya mencakup spektrum yang jauh lebih luas. Selain ML, terdapat sistem berbasis
aturan (rule-based systems) yang mengandalkan logika dan aturan eksplisit untuk pengambilan
keputusan, serta kecerdasan simbolik yang menekankan representasi pengetahuan melalui
simbol dan logika formal. Pendekatan kecerdasan ini membuktikan bahwa KA tidak hanya
bergantung pada algoritma pembelajaran, melainkan juga pada metode-metode lain yang
mengedepankan struktur dan aturan dalam pengolahan informasi.
Dalam ekosistem KA, machine learning dan deep learning merupakan komponen yang
memainkan peranan penting, terutama dalam pengenalan pola melalui teknologi seperti Natural
Language Processing (NLP) dan Computer Vision. Teknologi-teknologi tersebut telah
mengoptimalkan aplikasi seperti chatbot, terjemahan bahasa, pengenalan wajah, serta sistem
kendaraan otonom. Selain itu, KA juga mencakup kecerdasan generatif yang mampu
9
menghasilkan konten baru—mulai dari teks, gambar, hingga suara—serta pendekatan inovatif
lainnya seperti Edge AI untuk pemrosesan data secara lokal, Emotion AI yang menghadirkan
interaksi digital dengan sentuhan empati, dan reinforcement learning yang memanfaatkan
pengalaman untuk mengasah pengambilan keputusan dinamis.
Machine Learning (ML) memungkinkan mesin belajar dari data dan menjadi fondasi banyak
aplikasi modern. Deep Learning, sebagai bagian dari ML, unggul dalam pengenalan pola seperti
suara, gambar, dan bahasa. Natural Language Processing (NLP) mendukung komunikasi antara
manusia dan mesin melalui chatbot dan terjemahan bahasa. Computer Vision memungkinkan
interpretasi data visual, digunakan dalam pengenalan wajah dan kendaraan otonom. Generative
AI menciptakan konten baru seperti teks dan gambar, mendorong inovasi di bidang kreatif.
Reinforcement Learning mengajarkan mesin untuk belajar dari pengalaman, cocok untuk
robotika dan pengambilan keputusan dinamis. Explainable AI (XAI) penting untuk transparansi
dan akuntabilitas dalam penggunaan AI, dan Autonomous AI memungkinkan sistem bekerja
mandiri tanpa campur tangan manusia.
10
Tabel 2. Beberapa Kelebihan Bahasa Pemrograman Kecerdasan Artifisial
Bahasa Kelebihan
Pemrograman
11
B.1.2 Mengenal Integrated Development Environment (IDE) Untuk
Mengembangkan Aplikasi Kecerdasan Artifisial
Setelah memilih bahasa pemrograman yang tepat, penggunaan Integrated Development
Environment (IDE) yang sesuai juga berperan penting dalam pengembangan aplikasi KA.
Beberapa IDE yang cukup populer untuk pengembangan aplikasi KA, meliputi:
■ PyCharm, populer untuk penggunaan bahasa pemrograman Python dengan integrasi
pustaka KA dan fitur debugging yang kuat
(https://www.jetbrains.com/pycharm/download/)
12
Gambar 5. Jupyter Notebook
■ Visual Studio Code, merupakan IDE yang cukup fleksibel, yang dapat dikustomisasi
dengan berbagai ekstensi, termasuk ekstensi yang mendukung pengembangan
aplikasi KA (https://code.visualstudio.com/Download)
13
Gambar 7. Visual Studio Code
Gambar 8. Spyder
14
Gambar 9. R Studio
1. Sintaks sederhana dan mirip bahasa manusia – kode yang ditulis dalam bahasa
Python mudah dibaca, sehingga pemula bisa fokus memahami konsep dan
penerapan ML tanpa terbebani oleh detail bahasa pemrograman.
2. Ekosistem pustaka yang cukup lengkap – library seperti NumPy, pandas, scikit-
learn, TensorFlow, dan PyTorch menyediakan fungsi siap pakai untuk pra-
pemrosesan data hingga training model, sehingga Anda dapat langsung
bereksperimen.
15
1) Variabel dan Tipe Data
Dalam bahasa Python, variabel digunakan untuk menyimpan data. Tipe data yang
umum digunakan adalah:
● Integer (bilangan bulat),
● Float (bilangan desimal),
● String (teks), dan
● Boolean (nilai benar atau salah).
Penjelasan:
● Variabel a menyimpan nilai 10, sedangkan b menyimpan nilai 3.14.
16
● Variabel c adalah string yang berisi pesan, dan variabel d memiliki tipe data
boolean dengan nilai True.
Penjelasan:
● Operator aritmatika seperti +, -, *, /, dan % digunakan untuk operasi matematika.
● Operator perbandingan seperti > dan == digunakan untuk mengevaluasi kondisi
dan menghasilkan nilai boolean.
3) Struktur Kontrol
Struktur kontrol memungkinkan program untuk mengambil jalur eksekusi yang
berbeda berdasarkan suatu kondisi tertentu. Contoh paling umum adalah penggunaan
if, elif, dan else.
17
Penjelasan:
● Program mengevaluasi nilai variabel nilai dan mencetak "Nilai B" karena nilai 75
memenuhi kondisi nilai >= 70 namun tidak mencapai nilai >= 80.
18
Looping atau iterasi digunakan untuk menjalankan suatu blok kode program secara
berulang. Python mendukung perulangan menggunakan for dan while.
Penjelasan:
● for loop di atas akan mencetak nilai dari 0 hingga 4.
● while loop akan terus berjalan selama kondisi j < 5 terpenuhi
19
4) Fungsi
adalah blok kode yang didefinisikan untuk melakukan tugas tertentu, sehingga kode
bersifat modular dan dapat digunakan ulang (reuseable) dengan mudah. Fungsi diberi
nama, dirancang untuk melakukan satu tugas tertentu, dan dapat dipanggil berulang
kali. Di dalam fungsi kita biasanya menulis instruksi yang ingin dijalankan, kemudian
menggunakan return untuk mengembalikan nilai hasil.
20
Penjelasan:
1) List
List atau daftar adalah struktur data yang terurut dan bersifat mutable (dapat
diubah). List sering digunakan untuk menyimpan sekumpulan data yang saling terkait.
21
Penjelasan:
2) Tuple
Tuple hampir mirip dengan list, namun bersifat immutable (tidak dapat diubah
setelah didefinisikan). Tuple digunakan ketika data yang disimpan tidak perlu
dimodifikasi. Tuple sangat berguna untuk menyimpan data konstan yang tidak
berubah, sehingga dapat meningkatkan keamanan data.
22
Jika Anda mencoba membuka komentar dan menjalankan baris
3) Dictionary
Dictionary adalah struktur data yang menyimpan data dalam bentuk pasangan kunci
(key) dan nilai (value), atau biasa dikenal dengan istilah key-value pair. Struktur
data ini sangat berguna untuk merepresentasikan data yang memiliki hubungan yang
jelas. Dictionary memungkinkan akses data yang cepat melalui key dan data dalam
dictionary dapat diubah dengan mudah
4) Set
Set adalah koleksi data yang tidak terurut dan tidak mengizinkan adanya duplikasi.
Struktur data ini berguna ketika pemrogram ingin memastikan bahwa tidak ada
elemen yang sama dalam himpunan datanya. Set secara otomatis menghilangkan nilai
23
duplikat. Karena sifatnya yang tidak terurut, maka pemrogram tidak dapat mengakses
elemen berdasarkan indeks.
Penjelasan:
● Contoh di atas membuat Series dari list data dan menetapkan indeks khusus
menggunakan parameter index.
● Series ini akan menampilkan setiap nilai beserta indeksnya, sehingga
memudahkan referensi saat analisis data.
24
b). Operasi dasar pada series
Series mendukung berbagai operasi matematika dan statistik yang berguna untuk
analisis data.
Penjelasan:
● Metode mean(), sum(), dan max() memungkinkan pemrogram untuk dengan
mudah menghitung nilai rata-rata, total, dan nilai maksimum dari kumpulan data
dalam Series.
Contoh DataFrame:
25
B.1.5. Mengenal Supervised Learning, Unsupervised Learning, Semi Supervised
Learning, dan Reinforcement Learning
Machine learning (ML), menurut Google Cloud (https://cloud.google.com/learn/what-is-
machine-learning?hl=id) adalah bagian dari KA yang memungkinkan suatu sistem untuk
belajar dan berkembang secara mandiri menggunakan jaringan neural dan deep
learning, tanpa perlu adanya pemrograman secara eksplisit, dengan cara memasok data
dalam jumlah besar ke dalam sistem tersebut.
ML memiliki dua pendekatan utama, yaitu pembelajaran terawasi (supervised learning) dan
pembelajaran tanpa pengawasan (unsupervised learning). Perbedaan utamanya adalah
penggunaan data berlabel pada pembelajaran terawasi, sedangkan pembelajaran tanpa
pengawasan bekerja dengan data yang tidak berlabel.
26
Gambar 14. Ilustrasi Supervised Learning
Sumber: https://www.dicoding.com/
27
● Pembelajaran Semi-Terawasi (Semi Supervised Learning) adalah pendekatan
pembelajaran mesin yang menggabungkan keunggulan dari pembelajaran terawasi
dan tak terawasi. Dalam metode ini, algoritma dilatih menggunakan sejumlah kecil
data berlabel dan sejumlah besar data tidak berlabel, dengan tujuan
meningkatkan akurasi model tanpa harus memberikan label pada seluruh dataset.
Metode ini efektif ketika data tak berlabel mudah didapat, tetapi pelabelannya mahal
atau sulit dilakukan. Pendekatan ini banyak digunakan dalam klasifikasi teks, gambar,
dan analisis suara berskala besar seperti klasifikasi konten internet, analisis genom,
atau pelabelan rekaman suara.
28
Gambar 17. Reinforcement Learning. Sumber:
https://databasecamp.de/en/ml/reinforcement-learnings
Pemilihan antara model pembelajaran terawasi, tidak terawasi, atau penguatan sangat
tergantung pada ketersediaan data, kondisi data, dan tujuan yang ingin dicapai.
● Data training atau data latih adalah sekumpulan data yang digunakan untuk melatih
model machine learning. Di sini, model belajar dari fitur (variabel input) dan label
(output yang diharapkan) untuk mengenali pola atau hubungan yang mendasari data.
Kualitas dan kuantitas data training sangat mempengaruhi kemampuan model untuk
belajar secara akurat. Data latih yang digunakan harus “bersih” dan representatif,
sehingga dapat membantu model dalam memahami variasi serta kompleksitas data.
● Data testing atau data uji adalah kumpulan data yang belum pernah digunakan
selama proses pelatihan. Data ini berfungsi untuk mengevaluasi kinerja model
pembelajarn mesin setelah proses training selesai dilakukan. Data testing digunakan
untuk mengukur seberapa baik model dapat menggeneralisasi pengetahuan yang
telah didapat ke data baru yang belum dikenal sebelumnya. Untuk memastikan
kinerja model pembelajaran mesin, dilakukan evaluasi pada data testing. Evaluasi
tersebut membantu mendeteksi masalah yang mungkin terjadi, seperti overfitting
(model terlalu cocok dengan data training, sehingga kurang dapat digunakan pada
data-data yang baru) atau underfitting (model tidak cukup belajar dari data training).
Pemisahan data training dan testing penting untuk dilakukan dengan perhitungan yang
seksama, yang bertujuan untuk:
29
● Menghindari Bias:
Jika data testing ikut digunakan selama training, model pembelajaran mesin bisa saja
menghafal data tersebut, yang mengakibatkan kinerja model tampak sangat baik
pada data yang sama namun sangat kurang baik saat menghadapi data nyata.
● Evaluasi Kinerja:
Dengan menggunakan data testing yang terpisah, kita dapat mendapatkan gambaran
yang lebih jujur tentang kemampuan model dalam memprediksi data yang tidak
dikenal.
Berikut ini adalah contoh pembagian data training dan testing dengan rasio 80:20
menggunakan scikit-learn:
30
AKTIVITAS 1: Diskusi Tentang Konsep Dasar
Pemrograman KA
Dalam kelompok kecil (4-5 orang), diskusikan konsep dasar pemrograman KA dan teknik
pengajarannya di Fase E & F!
31
B.2. Menerapkan Pemrograman Kecerdasan Artifisial
1) Dataset Terstruktur, yaitu data yang disusun dalam format tetap, seperti tabel
dengan baris dan kolom yang jelas. Contoh: spreadsheet, CSV, dan basis data
relasional.
2) Dataset Tidak Terstruktur, yaitu data yang tidak memiliki format atau struktur
khusus, seperti teks bebas, gambar, atau video. Contoh: email, postingan media
sosial, dan file multimedia.
3) Dataset Semi-Terstruktur, yaitu data yang tidak sepenuhnya terstruktur tetapi
memiliki elemen atau tag yang memudahkan pengorganisasian. Contoh: file JSON
dan XML.
Mencari dataset yang relevan dan berkualitas merupakan langkah awal yang krusial dalam
pengembangan KA dan machine learning. Berikut ini ialah beberapa cara untuk mencari
dataset:
32
Setelah menemukan dataset yang diinginkan, langkah berikutnya adalah mengunduh
dataset tersebut. Umumnya, dataset tersedia dalam format CSV, JSON, spreadsheet, atau
bahkan format gambar dan video. Berikut ini adalah beberapa cara mengunduh dataset:
● Secara Manual:
Pada umumnya, situs penyedia dataset menyediakan tombol atau mekanisme untuk
mengunduh. Pengguna tinggal mengklik tombol tersebut atau mengikuti mekanisme
unduhan yang tersedia dan menyimpan file ke komputer atau piranti lainnya yang
digunakan.
● Menggunakan Pemrograman:
Dataset juga dapat diunduh secara otomatis menggunakan pemrograman tertentu,
misalnya bahasa Python dengan bantuan library seperti requests atau wget.
Pendekatan ini berguna untuk mengotomatisasi pengambilan data dari sumber yang
menyediakan API atau tautan unduh langsung (direct download). Berikut ini adalah
contoh sederhana mengunduh dataset dengan jenis CSV menggunakan requests
dalam bahasa Python:
33
Setelah membaca dataset, langkah berikutnya adalah memahami strukturnya. Beberapa
metode yang dapat digunakan adalah:
● Statistik Deskriptif:
Fungsi describe() dapat digunakan untuk menghasilkan ringkasan statistik umum
seperti mean, median, standar deviasi, dan persentil.
34
● Memeriksa Nilai yang Hilang:
Dalam melakukan analisis data, sangat penting untuk mengetahui apakah terdapat
nilai yang hilang atau missing values di dalam dataset. Keberadaan nilai yang hilang
dalam dataset akan sangat mempengaruhi hasil analisis data dan pemodelan
pembelajaran mesin.
Berikut adalah contoh program lengkap yang menunjukkan alur kerja dari awal hingga
akhir dalam bekerja dengan dataset Iris, yang merupakan dataset populer dan sederhana
untuk pemula. Dataset ini berisi data mengenai tiga jenis bunga iris berdasarkan fitur seperti
panjang dan lebar sepal (daun pelindung) serta petal (daun bunga). Iris adalah salah satu
kumpulan data paling awal yang digunakan dalam berbagai literatur tentang metode
klasifikasi dan digunakan secara luas dalam statistik dan pembelajaran mesin. Kumpulan
data Iris berisi 3 kelas yang masing-masing berisi 50 contoh, di mana setiap kelas merujuk
pada satu jenis tanaman iris.
35
Program ini mencakup proses sebagai berikut:
1) Memuat dan mengonversi dataset ke DataFrame.
2) Eksplorasi data: menampilkan baris pertama, informasi umum, statistik deskriptif, dan
pemeriksaan nilai yang hilang.
Kode sumber “Bekerja Dengan Dataset IRIS” dapat diakses pada tautan:
https://colab.research.google.com/drive/1vwoldLmLrr5FeSARUVYCBP8MTOm_rAB
N?usp=sharing,
sedangkan output yang diperoleh dari program tersebut dapat dilihat pada gambar berikut:
36
Gambar 20. Statistik Deskriptif dan Nilai Hilang pada Dataset Iris
37
Gambar 21. Contoh Dataset Minat Baca di Indonesia 2020-2023
Sumber: https://www.kaggle.com
38
● Transformasi Data: normalisasi, standarisasi, pengkodean variabel kategori, dan
agregasi data.
● Reduksi Data: pemilihan fitur, pemilihan instance, reduksi dimensi, dan diskretisasi.
Berikut ini adalah contoh persiapan dan pra-pemrosesan data menggunakan dataset
Indonesia Reading Interest 2020-2023,
https://www.kaggle.com/datasets/imaditia/indonesia-reading-interest-2020-
2023?resource=download
39
2) Mengunggah dataset ke Google Colab notebook yang sudah disiapkan
import pandas as pd
● Pandas adalah library di Python yang sangat populer untuk mengolah data
dalam bentuk tabel (DataFrame).
● Pada baris ini, library Pandas diimpor dan diberikan alias (nama singkat) pd.
● Alias ini memungkinkan kita untuk menulis kode seperti pd.DataFrame() alih-
alih menggunakan sintaks semacam pandas.DataFrame().
import numpy as np
● NumPy adalah pustaka dasar untuk komputasi ilmiah dalam bahasa
pemrograman Python, khususnya untuk operasi pada array (himpunan).
● NumPy diimpor dengan alias np Sehingga kita dapat menggunakan fungsi
NumPy seperti np.array(), np.mean() dan sebagainya.
40
import seaborn as sns
● Seaborn adalah library visualisasi data tingkat lanjut yang dibangun di atas
Matplotlib.
● Seaborn dapat menghasilkan grafik yang lebih informatif dan estetis, seperti
grafik distribusi (sns.distplot() atau sns.histplot()), heatmap, dan sebagainya.
● Alias sns digunakan agar kode menjadi lebih ringkas.
4) Membaca dataset yang telah diunggah, dan memastikan delimiter atau pembatas
data diatur ke titik koma (;) sesuai dengan delimiter yang digunakan oleh dataset.
41
5) Memeriksa struktur dan kondisi awal dataset yang sudah dibaca oleh Pandas
print(df.columns.tolist(), "\n")
● df.columns adalah properti Pandas DataFrame yang dapat digunakan untuk
menyimpan daftar nama kolom.
● Metode .tolist() digunakan untuk mengubah daftar kolom yang biasanya bertipe
Index menjadi struktur data berupa list.
● print(...) kemudian mencetak list nama kolom tersebut, diikuti dengan "\n" untuk
menambahkan baris kosong (memberi jarak di output).
42
print(df.head(), "\n")
● df.head() adalah fungsi bawaan Pandas yang dapat digunakan untuk
menampilkan beberapa baris teratas (default: 5 baris) dari DataFrame sebagai
pratinjau.
● Pratinjau beberapa baris data ini berguna untuk memeriksa apakah data sudah
terbaca dengan benar dan juga untuk melihat sekilas struktur setiap kolom.
print(df.info(), "\n")
43
● df.info() menghasilkan ringkasan dari DataFrame, antara lain: jumlah baris dan
kolom, tipe data setiap kolom, serta berapa banyak nilai non-null (tidak kosong)
di setiap kolom.
● Informasi ini membantu kita untuk memahami seberapa besar dataset, tipe
data kolom (apakah numerik, string, dan sebagainya), dan apakah ada nilai
kosong.
print(df.describe(include='all'), "\n")
● df.describe() digunakan untuk menampilkan ringkasan statistik seperti mean
(rata-rata), std (standar deviasi), min, max, dan quartiles untuk kolom numerik
secara default.
● Ditambahkannya include='all' akan membuat Pandas menampilkan statistik
kolom non-numerik (misalnya jumlah nilai unik, nilai terbanyak, dan
sebagainya).
● Deskripsi yang dihasilkan pada tahap ini sangat berguna untuk memahami
karakteristik data secara umum.
44
print(df.isnull().sum(), "\n")
● df.isnull() menghasilkan DataFrame dengan nilai True/False untuk setiap sel,
tergantung apakah data kosong atau tidak.
● Metode .sum() pada hasil isnull() akan menghitung berapa banyak nilai True
(data kosong) di setiap kolom.
● Proses ini membantu kita untuk mengetahui kolom mana yang memiliki missing
values dan berapa banyak.
duplicates = df.duplicated().sum()
● df.duplicated() adalah fungsi bawaan Pandas yang mengembalikan Series
(kolom) berisi nilai True atau False untuk setiap baris, tergantung apakah baris
tersebut merupakan duplikat (True) atau tidak (False).
● Kemudian, .sum() akan menjumlahkan nilai True di Series tersebut. Karena True
bernilai 1 dan False bernilai 0, hasil akhirnya adalah banyaknya baris duplikat
dalam DataFrame. Nilai tersebut disimpan ke dalam variabel duplicates.
45
• Mencetak jumlah baris yang terdeteksi sebagai duplikat, sehingga kita tahu
berapa banyak baris duplikat di dalam DataFrame.
if duplicates > 0:
• Mengecek apakah jumlah baris duplikat (duplicates) lebih besar dari 0. Jika iya,
artinya memang ada baris duplikat yang harus dihapus.
df = df.drop_duplicates()
● drop_duplicates() adalah fungsi Pandas untuk menghapus baris duplikat pada
DataFrame. Hasilnya adalah DataFrame baru yang sudah bersih dari baris
duplikat. Di sini kita menimpa (overwrite) DataFrame lama df dengan
DataFrame hasil penghapusan duplikat.
else:
• Jika tidak ada duplikat (duplicates == 0), maka blok if di atas tidak dijalankan.
46
7) Memeriksa dan Menangani Data Yang Hilang
47
numeric_cols_with_commas = [...]
• Ini adalah daftar nama kolom yang seharusnya berisi data numerik, tetapi saat ini
nilainya mungkin disimpan sebagai teks (string) dengan tanda koma (,) sebagai
pemisah. Contoh: "Reading Frequency per week", "Number of Readings per
Quarter", dan seterusnya.
if col in df.columns:
• Memeriksa apakah kolom tersebut memang ada di DataFrame df. Jika ada, maka
dilakukan pemrosesan.
median_val = df[col].median()
● Menghitung nilai median dari kolom tersebut. Median adalah nilai tengah yang
diambil setelah data diurutkan.
● Median sering digunakan untuk mengganti nilai kosong (missing values) pada
data numerik agar tidak terlalu terpengaruh oleh outlier (pencilan/nilai
ekstrim).
df[col] = df[col].fillna(median_val)
● Mengganti semua nilai kosong (NaN) di kolom tersebut dengan nilai median.
● Ini adalah strategi imputation yang sederhana namun efektif untuk menangani
missing values.
48
print(f"Missing values in '{col}' filled with median: {median_val}")
● Mencetak pesan yang memberitahu kita berapa nilai median yang digunakan
untuk kolom itu.
● Huruf f di depan string menandakan f-string di Python, yang memungkinkan kita
menempatkan variabel di dalam string yang dibungkus dengan kurung kurawal
{}.
mode_val = df[cat_col].mode()[0]
• mode() adalah nilai yang paling sering muncul di kolom tersebut, atau biasa
disebut dengan modus. Kita menggunakan [0] untuk mengambil nilai pertama
(jika ada beberapa nilai yang frekuensi kemunculannya sama banyak).
df[cat_col] = df[cat_col].fillna(mode_val)
• Mengganti nilai kosong di kolom kategoris dengan mode_val, yaitu nilai yang
paling sering muncul. Ini adalah strategi yang umum untuk menangani missing
values dalam data yang berbentuk kategori.
49
8) Visualisasi Data
50
○ Variasi Alami Data: Beberapa fenomena memang dapat menghasilkan
nilai yang ekstrem, misalnya pendapatan tahunan seorang miliarder di
tengah data pendapatan orang biasa.
○ Perubahan Kondisi atau Kejadian yang Langka: Misalnya, lonjakan
penjualan suatu toko akibat diskon besar-besaran atau adanya pandemi.
● Penanganan Outlier
○ Menghapus Outlier: Jika outlier disebabkan oleh kesalahan data (error)
dan jumlahnya tidak banyak, maka outlier dapat dihapus.
○ Mengganti Nilai Outlier: Nilai outlier kadang dapat diganti dengan nilai
rata-rata atau nilai median.
○ Transformasi Data: Metode seperti log-transform, square root, atau
winsorizing dapat mengurangi dampak nilai ekstrim.
○ Mempertahankan Outlier: Dalam beberapa kasus, outlier adalah bagian
penting dari data (contoh: total penjualan yang luar biasa tinggi yang
terjadi pada periode tertentu). Dalam hal ini, outlier perlu dipertahankan
untuk analisis lebih lanjut.
51
● Pentingnya Domain Knowledge
○ Tidak semua outlier perlu dihapus. Kadang, outlier justru menunjukkan
fenomena menarik atau ekstrem yang justru relevan untuk tetap
dipertimbangkan dalam analisis data.
○ Keputusan untuk menghapus, mengganti, atau mempertahankan outlier
sangat bergantung pada konteks dan tujuan analisis.
○
52
def remove_outliers_iqr(data, cols):
● Mendefinisikan sebuah fungsi bernama remove_outliers_iqr yang menerima dua
buah parameter, yaitu:
○ data: DataFrame yang akan diproses.
○ cols: Daftar kolom numerik yang akan dicek outlier-nya.
data_clean = data.copy()
● Membuat salinan (copy) dari DataFrame data sehingga perubahan yang
dilakukan tidak memengaruhi DataFrame asli.
for c in cols:
● Melakukan iterasi untuk setiap kolom numerik yang ada di dalam cols.
Q1 = data_clean[c].quantile(0.25)
● Menghitung kuartil pertama (Q1) dari kolom c, yaitu nilai di mana 25% data
berada di bawahnya.
Q3 = data_clean[c].quantile(0.75)
● Menghitung kuartil ketiga (Q3) dari kolom c, yaitu nilai di mana 75% data berada
di bawahnya.
IQR = Q3 - Q1
● IQR (Interquartile Range) adalah selisih antara Q3 dan Q1. IQR menggambarkan
rentang data yang berada di “tengah” (50% data).
53
outlier_indices = data_clean[(data_clean[c] < lower_bound) | (data_clean[c] >
upper_bound)].index
● Mengambil index dari semua baris di mana nilai kolom c lebih kecil dari
lower_bound atau lebih besar dari upper_bound.
● Operator | berarti “atau” (OR) dalam kondisi.
data_clean = data_clean.drop(index=outlier_indices)
● Menghapus baris-baris yang mengandung outlier dari DataFrame data_clean
berdasarkan index yang diperoleh di langkah sebelumnya.
return data_clean
● Setelah semua kolom di dalam cols diproses, fungsi mengembalikan DataFrame
yang sudah bebas dari outlier.
numeric_cols = df.select_dtypes(include=[np.number]).columns.tolist()
● Mengidentifikasi semua kolom yang bertipe numerik dalam DataFrame df.
● select_dtypes digunakan untuk memilih kolom berdasarkan tipe data ( pada
kasus ini hanya ada satu tipe, yaitu numerik), lalu metode .columns.tolist()
mengubahnya menjadi list Python biasa.
54
Gambar 25: Visualisasi Data Setelah Penghapusan Outlier
Berikut ini adalah contoh potongan kode program dalam bahasa Python yang
digunakan untuk melakukan normalisasi:
55
df_no_outliers_normalized = df_no_outliers.copy()
● Baris ini membuat salinan (copy()) dari DataFrame df_no_outliers, yang
sebelumnya sudah dihapus outlier-nya.
● Penyalinan perlu dilakukan supaya jika terjadi perubahan atau kesalahan saat
normalisasi, kita masih punya DataFrame df_no_outliers yang asli.
scaler = MinMaxScaler()
● Di sini, kita membuat objek scaler dari kelas MinMaxScaler, yaitu sebuah scaler
(penyesuai skala) dari library scikit-learn.
● MinMaxScaler akan mengubah nilai-nilai pada setiap kolom numerik ke dalam
rentang [0,1][0, 1][0,1].
● Rumusnya adalah:
numeric_cols_no_outliers =
df_no_outliers_normalized.select_dtypes(include=[np.number]).columns.tolist()
● Baris ini mencari kolom-kolom bertipe numerik pada DataFrame
df_no_outliers_normalized.
● select_dtypes(include=[np.number]) akan memilih semua kolom yang bertipe
data numerik (misalnya int64 atau float64).
● Kemudian .columns.tolist() mengubah daftar nama kolom (yang tadinya bertipe
Index) menjadi list Python biasa.
● Hasilnya disimpan di numeric_cols_no_outliers, yang berisi nama-nama kolom
numerik yang siap dinormalisasi.
df_no_outliers_normalized[numeric_cols_no_outliers] =
scaler.fit_transform(df_no_outliers_normalized[numeric_cols_no_outliers])
56
● Bagian ini adalah inti proses normalisasi. Kita menerapkan metode fit_transform
pada kolom-kolom numerik.
● fit_transform akan melakukan dua hal:
1. fit: Mencari nilai minimum (X_min) dan maksimum (X_max) pada setiap
kolom numerik.
2. transform: Menerapkan rumus Min-Max ke setiap nilai dan mengubahnya
ke rentang [0,1][0, 1][0,1].
● Hasil transformasi (berupa array NumPy) kemudian ditimpa kembali ke
DataFrame df_no_outliers_normalized pada kolom yang sama.
● Setelah baris ini dieksekusi, seluruh kolom numerik di
df_no_outliers_normalized akan memiliki nilai yang sudah di-scale antara 0 dan
1.
plt.figure(figsize=(8, 6)):
● Membuat figure baru dengan ukuran 8×6 inci, sehingga tampilan histogram
lebih jelas.
57
● color='purple' mengatur warna histogram menjadi ungu.
plt.title(...):
● Memberi judul pada grafik yang dihasilkan
plt.show():
● Menampilkan grafik di layar (khususnya di Google Colab atau Jupyter
Notebook).
df_no_outliers_normalized.to_csv("TGM_2020-2023_normalized.csv",
index=False):
● Menyimpan DataFrame df_no_outliers_normalized ke dalam file CSV bernama
"TGM_2020-2023_normalized.csv". Parameter index=False berarti kita tidak
menyertakan indeks DataFrame ke dalam file CSV.
df_no_outliers.to_csv("TGM_2020-2023_cleaned.csv", index=False):
● Menyimpan DataFrame df_no_outliers (yang sudah bersih dari outlier namun
belum dinormalisasi) ke file CSV bernama "TGM_2020-2023_cleaned.csv".
Gambar 26: Grafik Distribusi Data Setelah Pembersihan Outlier dan Normalisasi
58
B.2.3. Data Visualization
Dalam konteks pembelajaran mesin, data visualization adalah teknik menyajikan data dan
hasil analisis model dalam bentuk grafik, diagram, atau peta untuk memudahkan
identifikasi pola dan hubungan antar variabel. Teknik visualisasi seperti scatter plot,
heatmap, dan dendrogram sangat membantu dalam mengevaluasi performa model serta
mendeteksi adanya anomali atau outlier. Proses ini memudahkan para peneliti dan praktisi
untuk menginterpretasikan data mentah secara lebih intuitif, sehingga dapat menentukan
langkah optimasi model yang dapat dilakukan berikutnya.
59
normalitas, skewness, atau distribusi
nilai.
Contoh visualisasi berikut ini menggunakan dataset “tips” yang memiliki struktur kolom dan
sepuluh data pertama, sebagai berikut:
60
https://colab.research.google.com/drive/1jt4cRTvaM18UlxJQ3VqpgzhZmoiTGfvn?us
p=sharing
Hasil visualisasi data dari kode program di atas, dapat dilihat pada grafik-grafik berikut ini:
61
Gambar 28: Boxplot Total Bill Dikelompokkan Berdasarkan Hari
62
Gambar 30: Heatmap Matriks Korelasi Antara Atribut Data
63
Gambar 31: Bar Plot (Grafik Batang) Rata-Rata Tip Dikelompokkan Berdasarkan Hari
a) Memahami Struktur Data: Mengetahui jumlah variabel, tipe data (numerik, kategorik,
tanggal), dan ukuran dataset.
b) Mengidentifikasi Missing Values dan Outlier: Mendeteksi data yang hilang atau tidak
konsisten serta outlier yang dapat mempengaruhi hasil analisis.
c) Mengeksplorasi Distribusi Data: Melihat sebaran data, tren sentral, dan penyebaran
dengan bantuan histogram, boxplot, dan density plot.
d) Menguji Asumsi Awal: Memeriksa hubungan antar variabel, seperti korelasi atau
asosiasi, yang nantinya dapat digunakan untuk pemodelan.
e) Mendapatkan Wawasan Awal: Memberikan gambaran umum yang mendalam
mengenai dataset sehingga dapat menentukan strategi pembersihan data,
transformasi, atau pemilihan fitur untuk pemodelan.
64
Proses EDA biasanya melibatkan beberapa tahapan berikut:
a. Pengumpulan dan Pemuatan Data
Data dapat diperoleh dari berbagai sumber dan memiliki banyak alternatif format, seperti
file CSV, database, atau API. Dalam tahap ini, data dimuat ke dalam lingkungan analisis
menggunakan library seperti pandas.
b. Pembersihan Data
Pembersihan data meliputi penanganan missing values, duplikasi, dan kesalahan format.
Data yang tidak valid harus diperbaiki atau dihapus agar analisis selanjutnya tidak
terdistorsi.
d. Analisis Deskriptif
Melakukan analisis statistik dasar seperti perhitungan rata-rata, median, modus, standar
deviasi, dan distribusi frekuensi. Teknik ini membantu memahami kecenderungan data.
e. Visualisasi Data
Visualisasi merupakan tahap kunci dalam EDA. Teknik visualisasi seperti histogram,
boxplot, scatter plot, dan heatmap dapat membantu mengungkap adanya pola, korelasi,
dan outlier pada data.
Berikut adalah contoh proses exploratory data analysis (EDA) menggunakan dataset
Titanic dari Seaborn:
https://colab.research.google.com/drive/1BBnmCH8oSt7lcCzMBUD7Fbb4kOQmeCsJ?
usp=sharing. Analisis ini mencakup pemuatan data, pemeriksaan struktur data,
penanganan data yang hilang, analisis statistik deskriptif, serta berbagai visualisasi untuk
mendapatkan wawasan mendalam tentang data.
65
a. Informasi Utama dan Lima Baris Pertama Dataset Titanic
Data di atas adalah informasi utama dan cuplikan (lima baris pertama) dari dataset Titanic
(diperoleh dari seaborn), yang sering dipakai untuk analisis dan pemodelan klasifikasi
(memprediksi apakah penumpang selamat atau tidak).
66
class category Sama dengan pclass dalam bentuk teks (“First”,
(str) “Second”, “Third”)
age float Usia penumpang (dalam tahun); ada nilai NaN (jika usia
tidak tercatat)
deck category Kode dek kabin (A–G); NaN jika tidak tercatat
(str)
67
b. Statistik Deskriptif Untuk Kolom Dengan Tipe Numerik
Contoh interpretasi:
Kesimpulan: Sebagian besar penumpang tidak selamat, tetapi hampir 40% berhasil
bertahan.
Kesimpulan: Sebagian besar penumpang berada di kelas ekonomi (kelas 3), yang
berpengaruh terhadap tingkat kelangsungan hidup.
68
3) Kolom age (Usia Penumpang dalam Tahun)
● Rata-rata = 29.7 tahun, menunjukkan usia rata-rata penumpang.
● Standar deviasi = 14.53, menunjukkan adanya variasi besar dalam usia
penumpang.
● Min = 0.42 tahun (sekitar 5 bulan), menunjukkan ada bayi dalam daftar
penumpang.
● Max = 80 tahun, menunjukkan bahwa ada penumpang lanjut usia.
● Kuartil:
○ 25% penumpang berusia di bawah 20 tahun.
○ 50% (median) berusia 28 tahun.
○ 75% penumpang berusia di bawah 38 tahun.
Kesimpulan: Penumpang Titanic memiliki rentang usia yang luas, dari bayi hingga
lansia. Usia dapat menjadi faktor yang mempengaruhi keselamatan.
Contoh Interpretasi:
● Kolom deck memiliki banyak nilai NaN (hilang), yang menunjukkan bahwa tidak
semua informasi tentang lokasi kabin penumpang tersedia. Ini bisa menjadi
masalah ketika dilakukan analisis data nantinya.
● Kolom age juga memiliki beberapa missing values, yang mungkin perlu ditangani
dengan imputasi (pengisian nilai yang hilang) atau pembuangan data.
● Kolom embark_town memiliki beberapa nilai NaN, meskipun tidak sebanyak deck.
69
Gambar 32. Heatmap Nilai Yang Hilang Pada Dataset Titanic
Heatmap pada Gambar 32 menunjukkan distribusi nilai yang hilang (missing values) dalam
dataset Titanic. Warna kuning menunjukkan sel dengan data yang hilang, sedangkan warna
ungu menunjukkan sel dengan data yang tersedia.
70
b. Kemungkinan Pengaruh terhadap Tingkat Keselamatan
○ Berdasarkan aturan "Women and children first", wanita memiliki
kemungkinan lebih tinggi untuk diselamatkan dibandingkan pria.
○ Perbedaan jumlah ini bisa berpengaruh pada analisis tingkat keselamatan
(survival rate).
Interpretasi Data:
1) Lebih Banyak Penumpang yang Tidak Selamat
a) Dari grafik tersebut terlihat bahwa jumlah penumpang yang tidak selamat
(kategori 0) jauh lebih banyak dibandingkan yang selamat (kategori 1).
b) Hal ini mengindikasikan bahwa tragedi Titanic menyebabkan lebih banyak
korban jiwa dibanding mereka yang berhasil selamat.
71
a) Jika dibandingkan dengan total penumpang, hanya sekitar 38% yang
selamat (dapat dikonfirmasi dengan statistik deskriptif sebelumnya).
b) Ini menunjukkan bahwa faktor-faktor seperti akses ke sekoci, kelas tiket,
dan jenis kelamin sangat berpengaruh terhadap kemungkinan bertahan
hidup.
Grafik ini menunjukkan distribusi umur penumpang Titanic dalam bentuk histogram
dengan ditambahkan garis kepadatan distribusi (KDE - Kernel Density Estimation).
1) Mayoritas Penumpang Berusia 20-40 Tahun
a) Puncak distribusi terlihat di rentang 20-30 tahun, dengan frekuensi
tertinggi sekitar 70 penumpang pada kelompok usia sekitar 25 tahun.
b) Rentang usia 30-40 tahun juga cukup banyak, meskipun jumlahnya sedikit
lebih rendah.
2) Keberagaman Umur Penumpang
a) Ada penumpang dari berbagai kelompok umur, mulai dari bayi hingga
lansia sekitar 80 tahun.
b) Frekuensi anak-anak (di bawah 10 tahun) cukup rendah tetapi masih
terlihat signifikan.
c) Lansia (di atas 60 tahun) memiliki jumlah yang jauh lebih sedikit
dibandingkan kelompok usia lainnya.
72
3) Distribusi Miring ke Kanan
a) Grafik menunjukkan pola distribusi miring ke kanan (right-skewed), di mana
lebih banyak penumpang berusia muda dibandingkan penumpang yang
lebih tua.
b) Hal ini masuk akal karena Titanic kemungkinan besar membawa banyak
pekerja muda dan keluarga dibandingkan lansia
73
c) Terlihat beberapa outlier di usia yang masih sangat muda (0-5 tahun),
mengindikasikan ada lebih banyak anak-anak di kelas ini dibandingkan di
kelas 1.
d) Ada juga beberapa outlier lansia berusia 60-an.
74
j. Heatmap Matriks Korelasi Antar Atribut Data
Heatmap ini menampilkan korelasi antara berbagai variabel dalam dataset Titanic. Korelasi
berada pada rentang -1 hingga 1:
● Nilai positif → Hubungan searah (ketika satu variabel naik, variabel lain juga naik).
● Nilai negatif → Hubungan berlawanan arah (ketika satu variabel naik, variabel lain turun).
● Nilai mendekati 0 → Korelasi lemah atau tidak ada hubungan signifikan.
Contoh interpretasi:
75
l. Pairplot Variabel Pada Dataset Titanic
Gambar 34. Pairplot Hubungan Antara Tiga Variabel Utama dalam dataset Titanic
Pairplot ini menunjukkan hubungan antara tiga variabel utama dalam dataset Titanic:
● Age (Umur)
● Fare (Tarif Tiket)
● Pclass (Kelas Penumpang)
● Survived (Status keselamatan, dengan warna berbeda)
Contoh Interpretasi:
1) Distribusi Umur (Age)
● Sebagian besar penumpang berusia antara 20-40 tahun.
● Distribusi yang ada lebih mirip dengan bentuk distribusi normal, tetapi ada
beberapa outlier di usia yang sangat tinggi atau rendah.
● Tidak ada perbedaan signifikan dalam distribusi umur antara yang selamat
dan tidak selamat.
76
● Penumpang yang selamat (oranye) cenderung berasal dari kategori tarif
yang lebih tinggi, menunjukkan bahwa penumpang kelas ekonomi lebih
sulit bertahan hidup.
Kesimpulan utama yang dapat diperoleh dari EDA menggunakan dataset Titanic, ialah:
(1). Keselamatan di Titanic sangat dipengaruhi oleh status sosial (kelas penumpang dan
tarif tiket), jenis kelamin, serta usia. (2). Wanita dan anak-anak lebih diprioritaskan dalam
penyelamatan. (3). Penumpang kelas ekonomi (kelas 3) memiliki peluang selamat paling
rendah.
77
train_test_split(X, y, test_size=0.3, random_state=42)
● Fungsi train_test_split berasal dari scikit-learn dan digunakan untuk membagi data
menjadi dua bagian: training set dan testing set.
● X adalah variabel yang berisi fitur (data input), dan y adalah variabel yang berisi
label atau target (data output yang ingin diprediksi).
● test_size=0.3 artinya 30% data akan digunakan sebagai data testing, sedangkan
70% sisanya akan digunakan sebagai data training.
● random_state=42 digunakan agar pemisahan data bersifat reproducible—artinya
setiap kali kode ini dijalankan dengan angka yang sama, pemisahan data akan
selalu sama. Angka 42 sendiri hanyalah contoh, kita bisa menggunakan angka lain.
78
B.2.6. Melatih Model dan Membuat Prediksi
Membuat dan melatih model adalah proses inti dalam pengembangan sistem KA. Proses ini
dimulai dengan memilih algoritma atau pendekatan yang sesuai, seperti Linear Regression,
Logistic Regression, Random Forest, atau Neural Network, tergantung pada jenis masalah
yang ingin dipecahkan. Setelah algoritma ditentukan, kita perlu menyiapkan data yang akan
digunakan. Data tersebut umumnya dibagi menjadi dua bagian utama, yaitu training set dan
testing set. Training set digunakan untuk “mengajarkan” model agar mampu mempelajari pola
dari data, sementara testing set digunakan untuk mengevaluasi kemampuan model dalam
memprediksi data baru yang belum pernah dilihat sebelumnya.
Pada tahap pembuatan model, kita perlu mendefinisikan struktur model dan
hyperparameter yang dibutuhkan. Misalnya, jika kita memakai model Linear Regression, kita
tidak perlu banyak menggunakan hyperparameter, dan cukup menentukan apakah akan
menggunakan regularisasi atau tidak. Di sisi lain, jika kita memilih Random Forest, kita harus
menentukan jumlah pohon (n_estimators), kedalaman maksimum (max_depth), dan
parameter lain yang mempengaruhi kinerja model.
Setelah struktur dan parameter awal ditetapkan, maka dapat dilanjutkan ke proses pelatihan
(training). Proses ini melibatkan pemanggilan metode .fit() (atau metode serupa, tergantung
library yang digunakan) dengan memasukkan data fitur (X) dan label (y). Kemudian, model
akan menerapkan algoritma tertentu, misalnya gradient descent pada Neural Network, atau
pembentukan pohon pada Random Forest, untuk menemukan pola terbaik yang mampu
meminimalkan kesalahan (error) antara nilai prediksi dan nilai sebenarnya.
Selama proses pelatihan, model akan menyesuaikan bobot (weights) atau parameter
internalnya agar menjadi seakurat mungkin. Pada akhir proses ini, model akan memiliki
sekumpulan parameter yang optimal yang diyakini dapat mewakili pola dalam data training.
Kemudian, kita dapat menguji performa model menggunakan data testing untuk melihat
apakah model dapat melakukan generalisasi dengan baik. Jika hasilnya belum memuaskan,
kita bisa melakukan penyesuaian (tuning) pada hyperparameter, menambah data, atau
mengubah arsitektur model. Berikut ini adalah beberapa contoh proses melatih dan membuat
prediksi dengan menggunakan beberapa model:
79
Gambar 35. Regresi Linier.
Sumber: https://www.grammarly.com/blog/ai/what-is-linear-regression/
model = LinearRegression()
● Baris ini membuat sebuah instance atau objek dari kelas LinearRegression
yang disediakan oleh scikit-learn.
● Model LinearRegression akan mencoba menemukan hubungan linear
antara data fitur (X) dan label (y)
model.fit(X_train, y_train)
○ Metode .fit() menandakan proses training atau pelatihan model
menggunakan data training.
○ Parameter X_train berisi nilai-nilai fitur (input) dan y_train berisi nilai target
(output) yang sebenarnya.
80
○ Model akan menghitung koefisien (slope) dan intercept (bias) terbaik yang
meminimalkan kesalahan (error) antara nilai prediksi dan nilai sebenarnya
pada data training.
Garis regresi hijau pada Gambar 40 memperlihatkan bahwa saat BMI naik, skor
perkembangan penyakit pada pasien diabetes cenderung juga naik. Namun, titik-titik
biru (data pelatihan) dan merah (data pengujian) tersebar cukup luas di sekitar garis
tersebut. Ini berarti BMI saja belum cukup menjelaskan perkembangan penyakit
secara akurat. Untuk membuat prediksi yang lebih baik, perlu ditambahkan variabel
klinis lain. misalnya umur, tekanan darah, atau kadar glukosa, atau mengubah model
menjadi non-linier.
81
Gambar 41: Regresi Logistik. Sumber:
https://www.machinelearningplus.com/machine-learning/logistic-regression-
tutorial-examples-r/
clf = LogisticRegression()
● Baris ini membuat sebuah objek Logistic Regression dengan parameter
default.
● Logistic Regression adalah algoritma klasifikasi yang populer, sering
digunakan untuk memprediksi probabilitas terjadinya suatu kejadian
(misalnya memprediksi apakah email termasuk spam atau bukan).
clf.fit(X_train, y_train)
○ Metode .fit() menandakan proses pelatihan (training) model.
○ X_train berisi data fitur (input) yang telah dipisahkan untuk keperluan
training, sedangkan y_train berisi label (output) yang sebenarnya.
○ Model akan mempelajari hubungan antara fitur pada X_train dan label pada
y_train dengan cara memaksimalkan likelihood atau meminimalkan error.
Hasil akhirnya adalah model dengan parameter optimal yang dapat
memprediksi label untuk data baru.
82
Gambar 42. Hasil Klasifikasi Kanker Payudara (Malignant vs Benign)
Berdasarkan Tekstur dan Radius
83
Gambar 37. K-Means Clustering. Sumber: https://scikit-
learn.org/stable/auto_examples/cluster/plot_kmeans_digits.html
clusters = kmeans.fit_predict(X)
84
○ Metode .fit_predict(X) melakukan dua hal sekaligus:
■ fit: Menyesuaikan model KMeans dengan data X (melakukan proses
inisialisasi pusat klaster, perhitungan jarak, pemutakhiran posisi
klaster, dan sebagainya).
■ predict: Menentukan label klaster untuk setiap baris data di X.
○ Hasilnya disimpan di variabel clusters, yang berisi himpunan label
(misalnya 0, 1, 2) untuk tiap baris pada X, sesuai dengan klaster tempat
baris tersebut tergabung.
Gambar 44. Hasil Klasterisasi Wine Cultivar Menjadi 3 Klaster Berdasarkan Kandungan
Alkohol dan Malic Acid
85
B.2.1. Penerapan Library Kecerdasan Artifisial
Di era digital saat ini, machine learning dan deep learning telah menjadi komponen penting
dalam pengembangan aplikasi dan penelitian. Dua library Python yang banyak digunakan
dalam bidang ini adalah TensorFlow dan scikit-learn. Meskipun keduanya digunakan
untuk machine learning, masing-masing memiliki fokus dan keunggulan tersendiri.
1) TensorFlow
TensorFlow adalah sebuah library open-source yang dikembangkan oleh Google untuk
keperluan komputasi numerik dan machine learning, terutama deep learning. Library ini
memungkinkan pengguna untuk membuat, melatih, dan mengoptimalkan model-model
neural network secara efisien. Beberapa fitur TensorFlow meliputi:gt
● Computational Graph: TensorFlow menggunakan struktur grafik untuk
merepresentasikan operasi matematis. Setiap node dalam grafik tersebut adalah
operasi, sedangkan tepi antar node mewakili tensor (data multidimensi) yang
mengalir di antara operasi tersebut.
● Eksekusi Skalabel: TensorFlow didesain untuk menjalankan perhitungan di
berbagai platform, mulai dari CPU, GPU, hingga TPU (Tensor Processing Unit).
● Modular dan Fleksibel: Pengguna dapat membuat model dari yang sederhana
hingga yang sangat kompleks dengan menyesuaikan lapisan-lapisan neural
network, fungsi aktivasi, loss function, dan optimizer sesuai kebutuhan.
86
Gambar 39: Sample Data Tulisan Tangan MNIST. Sumber: Wikipedia
Berikut ini adalah contoh penerapan library TensorFlow dalam bahasa Python
https://colab.research.google.com/drive/1yvBhw14D8MyAuuLwE8o57pW4QsoofE
r9?usp=sharing):
87
Bayangkan Anda sedang belajar mengenali bentuk hewan menggunakan kartu
flash (flashcards). Satu epoch itu ibarat Anda sudah melihat dan
mempraktikkan seluruh tumpukan kartu satu kali putaran: Anda melihat kartu
satu per satu, menjawab pertanyaan setiap kartu, lalu memeriksa jawabannya
hingga kartu terakhir. Setelah itu, Anda mengulang lagi (epoch berikutnya),
dengan memperbaiki jawaban berdasarkan kesalahan di putaran pertama.
Dengan setiap epoch, “pemahaman” model neural network (atau, dalam
analogi ini, Anda) menjadi semakin baik.
88
2) Scikit-learn
scikit-learn adalah library machine learning yang sangat populer di kalangan praktisi data
science. Library ini menyediakan berbagai algoritma untuk berbagai algoritma seperti
klasifikasi, regresi, clustering, dan reduksi dimensi. Kelebihan scikit-learn meliputi:
Scikit-Learn dapat digunakan untuk membuat model Logistic Regression yang dapat
memprediksi apakah penumpang Titanic selamat atau tidak berdasarkan dataset yang
telah dibahas pada bagian Exploratory Data Analysis.
89
Gambar 51: Prediksi Keselamatan Penumpang TITANIC Menggunakan Logistic
Regression
Kode program yang digunakan untuk prediksi dengan Logistic Regression dapat
diakses melalui:
https://colab.research.google.com/drive/1CvfOEhF3g3ipnTjasJuzrKsNGOUejNUR?
usp=sharing
● Memuat dataset Iris: Dataset diambil secara langsung dari library scikit-learn.
● Pembagian data: Data dibagi menjadi training set dan testing set
● Standarisasi: Fitur pada data distandarisasi untuk menghilangkan perbedaan skala
yang dapat mempengaruhi kinerja model.
● Pembuatan dan pelatihan model SVM: Penggunaan model Support Vector Machine
dengan kernel linear untuk klasifikasi.
● Evaluasi: Hasil prediksi dievaluasi menggunakan laporan klasifikasi dan confusion
matrix yang divisualisasikan dengan library seaborn.
90
Gambar 52. Hasil Evaluasi Model SVM
Gambar 53: Evaluasi Hasil Prediksi Bunga Iris Menggunakan Confussion Matrix
Menurut hasil evaluasi pada Gambar 52 dan 53, dapat dijelaskan bahwa:
91
■ F1‐score = 1.00 → model sama sekali tidak salah dan tidak
melewatkan sampel
○ Kelas 1 (bunga iris versicolor):
■ Precision = 1.00 → Tiap kali model menebak versicolor, selalu
benar.
■ Recall = 0.92 → Dari 13 sampel versicolor, 12 terdeteksi; 1
terlewat (false negative).
■ F1‐score = 0.96 → Menunjukkan keseimbangan yang bagus meski
recall sedikit turun.
○ Kelas 2 (bunga iris virginica):
■ Precision = 0.93 → Dari 14 tebakan virginica, 13 benar; 1 sampel
lain keliru dikategorikan virginica (false positive).
■ Recall = 1.00 → Semua sampel virginica (13) berhasil diidentifikasi.
■ F1‐score = 0.96 → Kombinasi precision dan recall yang sangat
baik.
● Rata‐rata (Macro & Weighted)
○ Rata‑rata makro (semua kelas dihitung sama): precision = 0.98,
recall = 0.97, f1 = 0.97 → Nilainya hampir sama di semua kelas, artinya
model konsisten untuk ketiga jenis bunga.
○ Rata‑rata berbobot (memperhitungkan jumlah sampel tiap kelas):
precision = 0.98, recall = 0.98, f1 = 0.98 → Secara keseluruhan model ini
sangat akurat, karena mendapat skor tinggi di gabungan semua data.
● Interpretasi Confusion Matrix
○ Ada 1 kesalahan prediksi:
■ 1 sampel versicolor dikira virginica (menyebabkan recall versicolor
turun ke 0.92).
92
AKTIVITAS 2:
Berlatih Menerapkan Library dalam Pemrograman Kecerdasan
Artifisial - Membuat Deteksi Objek Menggunakan TensorFlow
Pada bagian ini, akan diuraikan langkah demi langkah proses pembuatan deteksi objek
dalam gambar dengan menggunakan TensorFlow. Aplikasi KA ini menerima inputan
berupa gambar, dan melakukan deteksi obyek-obyek yang berada di dalam gambar
dengan mencantumkan nama objek dan persentasenya. Kode program lengkap dapat
diakses melalui:
https://colab.research.google.com/drive/1N6tFaertZbCT_Amvdr2nku1uIiS3E3rT?usp=sha
ring
93
Gambar 41: Hasil Deteksi Object Menggunakan TensorFlow
94
c) Preprocessing Gambar:
○ Jika gambar memiliki channel alpha (RGBA), channel keempat dihapus agar
hanya tersisa 3 channel (RGB).
95
e) Prediksi dan Output:
96
B.2.2. Analisis Hasil dan Penyempurnaan Output Aplikasi
Kecerdasan Artifisial
Evaluasi model machine learning merupakan tahap penting dalam pengembangan sistem
prediktif. Setelah sebuah model dilatih, kita perlu mengukur performanya untuk
memastikan bahwa model tersebut dapat bekerja dengan baik di dunia nyata. Evaluasi
tidak hanya dilakukan dengan melihat akurasi, melainkan juga melalui berbagai metrik
seperti confusion matrix, precision, recall, F1 score, dan ROC curve. Dengan
menganalisis hasil dan output, kita dapat mengidentifikasi area yang perlu diperbaiki,
menghindari overfitting, serta memastikan model tidak memiliki bias.
● MAE (Mean Absolute Error): Rata‑rata jarak tiap titik data ke garis prediksi, diukur
persis seperti kita mengukur panjang dengan penggaris lalu dijumlahkan dan
dibagi banyak titik.
● MSE (Mean Squared Error) / Rata‑rata jarak kuadrat: untuk tiap titik, jaraknya
dikuadratkan (jarak × jarak) baru dijumlahkan dan dirata‑ratakan.
Implementasi evaluasi model regresi menggunakan MAE dan MSE dapat dilihat pada
tautan
https://colab.research.google.com/drive/1mdxRzWGP1p59opvAFwIXlumwLImO4h9
p?usp=sharing
97
Gambar 55. Visualisasi Error Pada Regresi Linier. Garis putus-putus vertikal
merupakan residual (selisih antara nilai y sebenarnya dengan nilai y hasil prediksi).
Semakin panjang garis residual, maka semakin besar kesalahan prediksi.
Untuk menurunkan nilai Mean Squared Error (MSE) dan Root Mean Squared Error
(RMSE), langkah pertama adalah meninjau kembali kualitas data dan kesesuaian
model. Pastikan data bebas dari kesalahan pencatatan, nilai hilang, serta pencilan
ekstrem yang dapat “menggelembungkan” galat. Selanjutnya, lakukan rekayasa fitur ,
misalnya menambah variabel turunan, interaksi, atau transformasi log/polinomial bila
hubungan antara variabel bebas dan terikat tidak sepenuhnya linear. Praktik ini
meningkatkan kemampuan model untuk menangkap pola riil dalam data tanpa harus
berpindah ke algoritma yang lebih kompleks. MSE dan RMSE yang tinggi juga dapat
dihasilkan oleh dua variabel yang tidak ada hubungannya, sehingga sebaran data tidak
membentuk pola linier dengan kemiringan yang jelas. Dalam hal ini, perlu digunakan
model pembelajaran mesin selain regresi linier.
2) Confusion Matrix
Confusion matrix adalah sebuah tabel yang menggambarkan kinerja model klasifikasi
dengan membandingkan hasil prediksi model dengan data aktual. Matriks ini
menyediakan informasi mengenai:
● True Positives (TP): Jumlah data positif yang benar-benar diprediksi sebagai
positif.
98
● True Negatives (TN): Jumlah data negatif yang benar-benar diprediksi sebagai
negatif.
● False Positives (FP): Jumlah data negatif yang salah diprediksi sebagai positif.
● False Negatives (FN): Jumlah data positif yang salah diprediksi sebagai negatif.
Aktual Positif TP FN
Aktual Negatif FP TN
99
Contoh evaluasi yang sering digunakan untuk model klasterisasi adalah metode siku.
Metode siku digunakan untuk menentukan banyaknya klaster yang paling optimal
dengan menarik tiap titik data ke pusat klaster dan menghitung jaraknya. Semakin kecil
jarak, maka semakin rapat sebuah klaster. Jika jarak-jarak tersebut divisualisasikan
dalam sebuah grafik garis, maka akan terbentuk sebuah garis yang menurun tajam di
awal, hingga suatu nilai di mana penurunannya menjadi lebih landai.
Implementasi metode siku pada model klasterisasi K-Means dapat dilihat pada
tautan
https://colab.research.google.com/drive/1lr3qYX9ZurElDfhZtu_yIhJbbyhNQQM7?
usp=sharing
Nilai k pada metode siku menunjukkan banyak klaster yang optimal untuk digunakan
dalam klasterisasi.
100
b. Recall
Recall atau true positive rate (TPR) adalah evaluasi model yang mengukur proporsi
data positif yang diklasifikasikan dengan benar. Evaluasi recall sangat penting dalam
kasus-kasus seperti deteksi penyakit, di mana terjadinya kesalahan negatif jauh lebih
berbahaya daripada kesalahan positif. Model yang sempurna, secara hipotetis, tidak
akan memiliki false negative sehingga recall (TPR)-nya menjadi 1.0, atau dengan
kata lain, tingkat keberhasilan deteksi mencapai 100%.
c. Precision
Presisi (precision) digunakan untuk mengukur proporsi prediksi positif yang benar.
Model yang lebih presisi memiliki lebih sedikit kesalahan positif. Model yang
sempurna, secara hipotetis, akan memiliki nol false positive sehingga presisinya
menjadi 1.0 (100%). Namun, presisi dan recall sering memiliki hubungan terbalik, di
mana peningkatan pada salah satunya, dapat menurunkan yang lain.
d. F1 Score
F1 Score adalah rata-rata harmonik dari presisi dan recall. Metrik ini
menyeimbangkan presisi dan recall, sehingga lebih cocok dibandingkan akurasi pada
dataset yang tidak seimbang. Jika presisi dan recall sama-sama 1.0, maka F1 Score
juga 1.0. Secara umum, jika presisi dan recall memiliki nilai yang mirip, F1 Score akan
mendekati nilai tersebut. Jika keduanya berbeda jauh, F1 Score akan lebih mendekati
nilai yang lebih rendah.
101
Lembar Kerja 4.1: Proyek Pemrograman Aplikasi KA
(supervised/unsupervised learning) Menggunakan Dataset
A. Deskripsi
Lembar Kerja ini dirancang untuk membimbing peserta pelatihan dalam menerapkan
sintaks dasar pemrograman KA dan membangun aplikasi sederhana berbasis supervised
atau unsupervised learning. Kegiatan dilakukan melalui proyek kolaboratif yang
bertemakan bidang keahlian masing-masing. Proyek ini mencakup penggunaan library KA
populer, evaluasi model dengan tools yang sesuai, hingga penyusunan dokumentasi
teknis secara lengkap.
B. Tujuan
Setelah menyelesaikan lembar kerja ini, peserta pelatihan diharapkan mampu:
1. Menerapkan sintaks dasar bahasa pemrograman KA untuk menulis skrip
sederhana yang melibatkan logika KA.
2. Menerapkan library KA populer untuk membangun model sederhana, seperti
klasifikasi teks/gambar.
3. Menganalisis output KA menggunakan matrik evaluasi dan melakukan
penyempurnaan kode untuk meningkatkan performa.
4. Menyusun dokumentasi teknis yang mencakup alur kerja, kode, dan analisis hasil
aplikasi KA yang dikembangkan.
C. Petunjuk Kerja
Berikut ini adalah empat tugas utama yang harus diselesaikan oleh peserta pelatihan:
Langkah-langkah:
Pilih bahasa pemrograman (Python direkomendasikan).
1. Buatlah sebuah skrip sederhana yang menerima input suhu (dalam derajat
Celsius), lalu mencetak:
102
a. "Panas" jika suhu > 30
b. "Sejuk" jika suhu antara 20–30
c. "Dingin" jika suhu < 20
2. Gunakan input(), int(), dan if-elif-else. Tambahkan minimal 1 fungsi
untuk modularisasi kode.
3. Simpan skrip dengan format misalnya .py.
Langkah-langkah:
1. Pilih salah satu pustaka KA populer: `Scikit-learn`, `TensorFlow`, atau `Keras`.
2. Unduh dataset dari platform dataset terbuka seperti Kaggle, UCI, Google Dataset
Search, data.go.id, atau data.gov.
3. Dataset harus memiliki minimal 150 data dan 2–5 fitur utama.
4. Bangun model supervised/ unsupervised learning (contoh: prediksi kelayakan
pinjaman berdasarkan profil keuangan, klasifikasi jenis pakaian, analisis kepuasan
pelanggan, klasifikasi jenis barang).
5. Lakukan training dan testing model.
6. Simpan notebook `.ipynb` atau `.py` yang berisi seluruh proses.
Hasil yang diharapkan: Skrip program KA dengan model klasifikasi yang dapat dijalankan
dan menggunakan dataset valid.
Langkah-langkah:
1. Gunakan tools evaluasi yang sesuai dengan jenis model dan metode yang
digunakan:
103
a. Untuk klasifikasi: confusion matrix, accuracy score, precision, recall, F1-
score.
b. Untuk regresi: Mean Squared Error (MSE), Root Mean Squared Error
(RMSE), R² score.
c. Tools seperti classification_report() dan metrics.plot_confusion_matrix()
pada scikit-learn sangat direkomendasikan.
2. Analisis hasil dan identifikasi kekurangan model.
3. Lakukan penyempurnaan kode.
4. Catat perubahan dan bandingkan performa model.
Hasil yang diharapkan: Output evaluasi dan laporan hasil optimasi performa model
berdasarkan tools yang relevan.
4. Menyusun Dokumentasi
Pada bagian ini bertujuan melatih Anda dalam menyusun dokumentasi proyek secara
profesional dan lengkap. Dokumentasi akan mencerminkan keseluruhan proses proyek
mulai dari perencanaan, pemrograman, evaluasi, hingga refleksi hasil kerja Anda.
Langkah-langkah:
1. Buat file dokumentasi dalam format `.docx` atau `.pdf`.
2. Dokumentasi mencakup deskripsi proyek, sumber dataset, jumlah data dan fitur,
workflow, potongan kode, tools evaluasi, hasil evaluasi, refleksi, dan saran
lanjutan.
Hasil yang Diharapkan: Dokumen lengkap dan rapi yang menjelaskan keseluruhan proses
proyek.
Komponen Keterangan
104
Deskripsi Dataset (Gambaran umum isi dan tujuan dataset)
E. Kriteria Penilaian
Pemahaman
Menunjukkan Menguasai Masih ada Tidak
penguasaan konsep dasar kekeliruan dalam menunjukkan
penuh dan penerapan pemahaman pemahaman
terhadap KA dengan konsep KA memadai
sintaks dan baik
konsep KA
Ketepatan
Penerapan Kode berjalan Kode sebagian Beberapa error Kode banyak
sempurna, besar berjalan dalam kode, error dan
dokumentasi dengan dokumentasi dokumentasi
sangat rapi dokumentasi kurang lengkap minim
cukup jelas
105
Kreativitas
Evaluasi Evaluasi Evaluasi minim Tidak ada
lengkap, dilakukan dan/atau tools evaluasi atau
menggunakan dengan tools kurang sesuai hanya
tools yang yang cukup menyebut hasil
sesuai, insight tepat, insight tanpa analisis
kuat dan logis memadai
Refleksi
Dokumentasi Dokumentasi Dokumentasi Dokumentasi
sangat rapi, cukup rapi dan kurang runtut acak dan tidak
sistematis, sistematis dan visual minim jelas
lengkap, dan
menarik
Skor akhir peserta dihitung berdasarkan jumlah skor dari keempat kriteria di atas, kemudian
dikonversi ke skala 0–100 dengan ketentuan sebagai berikut:
✓ Rumus Konversi Skor: (Total skor yang diperoleh ÷ 16) × 100
✓ Rentang Skor Akhir (0–100):
• Sangat Baik: 85 – 100
• Baik: 70 – 84
• Cukup: 55 – 69
• Perlu Perbaikan: < 55
106
C. Pengenalan Large Language Model pada
Kecerdasan Artifisial Generatif
Dalam era digital saat ini, KA telah mengalami perkembangan yang sangat pesat, salah satunya
melalui pemanfaatan model bahasa besar (Large Language Models/LLM). Model-model ini tidak
hanya mampu memahami dan menghasilkan teks dengan tingkat kefasihan yang sangat tinggi,
tetapi juga memiliki potensi untuk mendukung berbagai aplikasi dalam bidang KA generatif.
Penggunaan LLM telah merevolusi bagaimana cara kita berinteraksi dengan mesin, mengotomasi
proses-proses kreatif, dan mengintegrasikan kemampuan pemrosesan bahasa alami ke dalam
sistem-sistem komputasional.
Large Language Model adalah sebuah sistem berbasis jaringan syaraf tiruan yang dilatih untuk
dapat memahami, memproses, dan menghasilkan teks dalam bahasa alami atau bahasa
natural (bahasa yang digunakan manusia sehari-hari dalam berbagai gaya). Konsep dasar di
balik LLM berakar pada pengembangan Natural Language Processing (NLP) yang telah
berlangsung selama beberapa dekade terakhir. Pada awalnya, pendekatan NLP didasarkan pada
pengembangan serangkaian aturan berbasis simbol dan statistik yang sederhana. Namun, seiring
dengan kemajuan teknologi komputasi dan teori pembelajaran mesin, dikembangkanlah metode
pembelajaran mendalam (deep learning) yang memungkinkan adanya pemrosesan bahasa secara
lebih holistik dan kontekstual.
107
satu kalimat atau bahkan antar kalimat secara simultan. Perkembangan inilah yang membuka
jalan bagi dikembangkannya model-model bahasa besar seperti BERT, GPT, dan T5.
Cara kerja mekanisme atensi (attention mechanism) dapat dilihat pada tautan video
https://www.youtube.com/watch?v=eMlx5fFNoYc
Natural Language Processing adalah cabang dari KA yang berfokus pada interaksi
antara komputer dengan bahasa manusia/bahasa alami. NLP dapat digunakan dalam
berbagai kasus seperti analisis sentimen, penerjemahan bahasa, dan lain-lain. Dalam
konteks LLM, NLP berperan penting dalam:
● Tokenisasi: Memecah teks menjadi unit-unit yang lebih kecil, seperti kata atau
sub-kata, sehingga model LLM dapat memprosesnya dengan lebih optimal.
108
Gambar 58: Tokenisasi. Sumber: https://medium.com/@utkarsh.kant/tokenization-
a-complete-guide-3f2dd56c0682
LLM modern pada umumnya dibangun berdasarkan arsitektur Transformer, yang terdiri
dari beberapa komponen inti, yaitu:
109
● Embedding Layer: Bagian awal yang bertugas untuk mengubah input berupa token
menjadi representasi vektor.
● Encoder dan Decoder: Pada beberapa model seperti GPT, hanya decoder yang
digunakan untuk menghasilkan teks, sementara model lain seperti BERT
mengadopsi arsitektur encoder saja untuk memahami konteks.
● Mekanisme Multi-Head Attention: Memungkinkan model untuk fokus pada
berbagai bagian teks secara bersamaan. Mekanisme ini secara signifikan
meningkatkan kemampuan model dalam menangkap hubungan antar token secara
paralel (Vaswani, 2017).
● Feed-Forward Neural Networks: Digunakan setelah proses atensi untuk mengolah
informasi yang telah dikumpulkan.
1) Proses Training
Training yang dilakukan oleh sebuah LLM melibatkan dua tahap utama, yaitu pre-
training dan fine-tuning.
● Pre-training: Pada tahap ini, model dilatih dengan dataset berbentuk teks dalam
jumlah yang sangat besar. Tujuannya adalah agar model dapat mempelajari pola
bahasa, struktur sintaks atau tata bahasa, dan konteks semantik. Proses ini
umumnya menggunakan teknik unsupervised learning, di mana model belajar dari
data tanpa adanya label. Evaluasi yang umum digunakan untuk menilai performa
LLM adalah cross-entropy loss yang mengukur ketidaksesuaian antara prediksi
yang dihasilkan oleh model dengan distribusi token sebenarnya.
● Fine-tuning: Setelah dilakukan pre-training, model dapat disesuaikan (fine-tuned)
untuk tugas-tugas yang bersifat spesifik seperti penerjemahan, pembuatan
110
rangkuman, atau klasifikasi. Fine-tuning melibatkan pelatihan tambahan dengan
dataset yang lebih kecil namun relevan dengan tugas yang diinginkan, sehingga
model dapat lebih optimal dalam aplikasi spesifik tersebut.
2) Proses Inference
Pada tahap inference, LLM digunakan untuk menghasilkan teks atau menjawab
pertanyaan. Proses inference melibatkan proses pemberian input kepada model dan
model diharapkan menghasilkan output secara bertahap. Berbagai teknik sampling
digunakan untuk mengendalikan kualitas dan keragaman output yang dihasilkan.
Salah satu teknik sampling yang digunakan iala beam search, di mana model
mengevaluasi beberapa kemungkinan output sekaligus dan memilih yang paling
koheren secara keseluruhan.
Meskipun LLM memiliki potensi yang besar, proses training LLM memerlukan sumber
daya komputasi yang sangat tinggi, termasuk GPU/TPU dan memori yang besar.
Selain itu, berbagai tantangan yang dapat terjadi, seperti overfitting, bias data, dan
kestabilan training menjadi perhatian utama bagi para peneliti dan praktisi. Upaya-
upaya untuk mengatasi berbagai tantangan ini melibatkan teknik regularisasi,
penggunaan dataset yang lebih beragam, dan penerapan optimasi parameter yang
lebih efisien.
Sebagai teknologi yang berdampak luas, LLM juga menimbulkan sejumlah isu etis,
antara lain:
● Bias dan Diskriminasi: LLM dapat mereplikasi dan bahkan memperkuat bias
yang terdapat dalam data latihnya. Penelitian terus dilakukan untuk
mengidentifikasi dan mengurangi bias tersebut agar output yang dihasilkan
lebih adil.
● Keamanan dan Penyalahgunaan: Kemampuan LLM dalam menghasilkan teks
yang koheren juga membawa risiko penyalahgunaan, misalnya dalam
pembuatan berita palsu atau konten yang menyesatkan. Oleh karena itu, perlu
adanya pedoman dan kebijakan penggunaan KA generatif yang bertanggung
jawab.
● Transparansi Model: Keterbukaan mengenai penggunaan data latih dan
mekanisme internal model merupakan aspek penting untuk memastikan
kepercayaan publik serta mendukung audit dan verifikasi dari para peneliti.
111
Fenomena “Ghiblifikasi” Viral
Isu yang mencuat dari tren ini mencakup tiga poin utama:
● hak cipta, yaitu kekhawatiran bahwa KA telah dilatih menggunakan karya
Studio Ghibli tanpa izin;
● keterbatasan teknis, karena lonjakan penggunaan membuat sistem ChatGPT
kewalahan;
● implikasi etis, termasuk kritik dari Hayao Miyazaki (co-founder Studio Ghibli)
112
terhadap peran KA dalam dunia seni.
Namun, tidak ada pernyataan resmi dari Studio Ghibli meskipun kritik sebelumnya
dari Hayao Miyazaki terhadap KA, seperti yang disebutkan dalam Forbes, memberikan
konteks bahwa mereka mungkin tidak mendukung tren ini.
Catatan: Gambar yang digunakan pada bagian ini diposting oleh akun X resmi Sam
Altman (https://x.com/sama/status/1907224234277171677)
Large Language Model memainkan peran yang sangat penting, bahkan krusial dalam
ekosistem KA generatif. Dengan kemampuannya dalam menghasilkan teks yang tidak
hanya benar secara tata bahasa tetapi juga relevan secara konteks, LLM telah menjadi
fondasi dari banyak sekali aplikasi kreatif. Di antaranya adalah penulisan otomatis,
penerjemahan bahasa, pembuatan rangkuman, reviu literatur, dan pembuatan konten
kreatif seperti puisi atau cerita pendek.
Sebagai contoh, model GPT-4 yang merupakan salah satu LLM paling terkenal, telah
digunakan dalam berbagai aplikasi, mulai dari chatbots hingga penulisan kode program
dalam berbagai bahasa pemrograman. Model LLM lain, yaitu LLAMA yang dikembangkan
oleh Meta, telah diintegrasikan ke dalam berbagai aplikasi yang digunakan oleh
masyarakat sehari-hari, seperti WhatsApp. Kemampuan berbagai model LLM dalam
menanggapi pertanyaan secara interaktif dan menghasilkan teks yang mendekati gaya
bahasa manusia menjadikannya alat yang efektif dalam berbagai skenario pemanfaatan
KA generatif (Brown, 2020).
113
chatbot yang didukung dengan pemanfaatan LLM mampu memahami pertanyaan
pelanggan dengan lebih baik dan memberikan solusi secara instan. Integrasi ini tidak
hanya meningkatkan kepuasan pelanggan tetapi juga mengurangi beban operasional
perusahaan.
114
C.3. Teknik Integrasi Pemrograman Kecerdasan Artifisial
Dengan Model Large Language Model
1) Pendekatan Integrasi melalui API
Salah satu cara paling populer untuk mengintegrasikan LLM ke dalam aplikasi adalah
melalui Application Programming Interface (API). Banyak sekali penyedia LLM, seperti
OpenAI dan Hugging Face, menyediakan API yang memungkinkan para pengembang
untuk dengan mudah mengirimkan permintaan (request) dan menerima respons
berupa teks yang dihasilkan oleh LLM. Pendekatan ini memiliki beberapa keunggulan,
yaitu:
Contoh implementasi API dapat ditemukan pada OpenAI GPT, yang memungkinkan
integrasi dengan berbagai bahasa pemrograman seperti Python, JavaScript, dan
lainnya (OpenAI, 2020).
Selain melalui API, integrasi LLM juga dapat dilakukan dalam sebuah pipeline
machine learning yang lebih kompleks. Pipeline ini biasanya melibatkan beberapa
tahapan, seperti:
● Preprocessing Data: Mengolah dan membersihkan data teks agar sesuai dengan
format input yang dapat diterima LLM.
● Pemrosesan dengan LLM: Menggunakan LLM untuk melakukan tugas-tugas
seperti klasifikasi, ekstraksi informasi, atau pembuatan teks.
● Post Processing: Mengolah output dari LLM agar dapat digunakan secara langsung
oleh aplikasi, seperti menyusun ringkasan atau mengkonversi format teks.
115
Transformers juga menyediakan antarmuka yang memudahkan integrasi berbagai
LLM ke dalam pipeline aplikasi (HuggingFace, 2021).
a) Python
Python telah menjadi salah satu bahasa pemrograman utama dalam bidang machine
learning dan NLP karena kelengkapan ekosistem pustaka yang dimilikinya. Dengan
library seperti Transformers, TensorFlow, dan PyTorch, pengembang dapat dengan
mudah mengintegrasikan LLM ke dalam aplikasi mereka. Contoh teknik integrasi
dengan Python meliputi:
116
b) JavaScript dan Node.js
Di bidang pengembangan web, JavaScript juga dapat digunakan untuk integrasi LLM
melalui API. Dengan menggunakan Node.js, pengembang dapat membuat aplikasi
web yang interaktif dan responsif, di mana permintaan atau request ke model LLM
dilakukan secara asinkron. Pendekatan pada umumnya digunakan untuk
pengembangan chatbot atau asisten virtual yang berjalan di browser.
Bahasa pemrograman lain seperti Java, C#, dan Go juga telah mulai mengeksplorasi
integrasi dengan model KAmelalui pustaka dan teknik integrasi yang relevan.
Pendekatan cross-platform memungkinkan terjadinya integrasi LLM ke dalam aplikasi
desktop, mobile, atau embedded systems, sehingga memperluas cakupan aplikasi KA
generatif.
Seiring dengan perkembangan teknologi LLM, banyak sekali perangkat atau tools dan
library yang dikembangkan dengan tujuan untuk memudahkan integrasi antara aplikasi
KA dan LLM, antara lain:
Integrasi LLM ke dalam aplikasi KA tidak luput dari sejumlah tantangan, baik teknis dan
non-teknis. Beberapa tantangan utama antara lain:
117
● Latency dan Kecepatan Inference: Model LLM yang besar memerlukan waktu
inferensi yang tidak selalu dapat dijamin untuk berlangsung secara real-time,
sehingga perlu dioptimalkan dengan caching atau teknik kompresi model.
● Skalabilitas: Untuk aplikasi yang diakses oleh jutaan pengguna, diperlukan
arsitektur backend yang mampu menangani beban permintaan secara simultan.
● Keamanan dan Privasi Data: Data pengguna yang dikirim ke model LLM harus
dikelola dengan standar keamanan tinggi agar tidak terjadi penyalahgunaan.
● Pemantauan dan Logging: Penting untuk membangun sistem pemantauan agar
dapat mendeteksi kesalahan atau bias dalam output model, sehingga dapat
dilakukan perbaikan secara iteratif.
Salah satu cara efektif untuk mengintegrasikan LLM ke dalam aplikasi KA adalah
dengan memanfaatkan Hugging Face, sebuah platform yang menyediakan akses
mudah ke berbagai model bahasa canggih seperti GPT, BERT, dan Llama. Sub topik ini
akan mengupas bagaimana proses integrasi LLM ke dalam aplikasi KA dilakukan secara
praktis melalui Hugging Face dengan mekanisme pipeline, dengan studi kasus berupa
Pirate Chatbot. Pirate Chatbot ini didesain untuk memberikan respons dengan gaya
bahasa bajak laut, sehingga tidak hanya menunjukkan fleksibilitas dan kemampuan
model LLM dalam menghasilkan konten yang sesuai konteks, tetapi juga
menambahkan unsur hiburan yang unik.
118
3) Setelah mendaftar, navigasikan ke https://huggingface.co/settings/tokens untuk
membuat token API. Token ini penting untuk mengautentikasi permintaan API.
Langsung salin dan simpan token yang dihasilkan, karena hanya dapat dilihat satu
kali.
4) Setelah akun siap, pilih LLM yang tersedia di Hugging Face. Misalnya, LLaMA 3
milik Meta adalah LLM sumber terbuka yang dapat digunakan. Untuk menemukan
model, kunjungi pusat model Hugging Face lalu ketik nama model di bilah
pencarian (misalnya, “Llama 3”).
119
5) Latihan ini menggunakan model /Llama-3.2-3B-Instruct
120
8) Untuk menjalankan aplikasi, perlu dilakukan Instalasi torch, transformers, dan
accelerate. Instalasi dalam dilakukan dengan menggunakan pip.
10) Tempelkan token ketika diminta (bisa dengan klik kanan, setelah token disalin)
12) Hugging face akan mengunduh berbagai data, libraries, dan tools yang
diperlukan. Tunggu hingga proses mengunduh selesai
121
13) Setelah unduhan selesai, jalankan kembali main.py dan outputnya akan
muncul di console/terminal
14) Ubah parameter content pada user role menjadi prompt yang diinginkan, dan
amati hasil outputnya pada console/terminal.
15) Kode program juga bisa dimodifikasi untuk menerapkan input output serta
struktur kontrol bahasa Python, sehingga memungkinkan pengguna
122
memasukkan prompt secara kontinyu
16) Gaya bicara model LLM juga memungkinkan untuk dipersonalisasi. Misal, dari
gaya bajak laut, menjadi gaya seorang guru dengan mengubah content pada
role: “system”.
123
17) Library GUI seperti tkInter untuk Python dapat dimanfaatkan untuk menjadikan
aplikasi chatbot lebih interaktif
124
Lembar Kerja 4.2: Memadukan aplikasi KA dan LLM
A. Deskripsi
Lembar Kerja ini dirancang untuk membimbing peserta pelatihan untuk memadukan atau
mengintegrasikan aplikasi KA yang dikembangkan dengan bahasa pemrograman Python
dengan model bahasa besar (LLM). Proyek ini mencakup penggunaan Hugging Face API
untuk menjembatani aplikasi KA yang sudah disiapkan dengan model bahasa besar yang
dipilih (GPT, LLAMA, BERT, atau model lainnya).
B. Tujuan
● Peserta pelatihan mampu mengintegrasikan aplikasi KA dengan model bahasa besar.
C. Instruksi Kerja
1. Praktikkan aktivitas 3: Mengintegrasikan LLM ke aplikasi KA menggunakan Hugging
Face (Pirate Chatbot) pada langkah 1-14
1. Modifikasi kode program sehingga menerapkan input output serta struktur kontrol
bahasa Python, sehingga memungkinkan pengguna memasukkan prompt secara
kontinyu
Pada gambar di atas, aplikasi mampu menerima inputan (bertanda merah) berupa
teks melalui terminal/console dan menghasilkan output (respon dari LLM, bertanda
hijau).
2. Opsional (nilai tambah bagi yang berhasil menyelesaikan): Kembangkan aplikasi
sehingga memiliki GUI (Graphical User Interface) yang minimal memiliki media inputan
teks untuk memberikan prompt kepada model (bisa dalam bentuk textbox), sebuah
area teks untuk menampilkan output dari model, dan sebuah tombol untuk
mengeksekusi masukan prompt.. Pengembangan GUI dapat dilakukan dengan modul
125
tkinter untuk python (berbasis desktop), menggunakan framework Flask (berbasis
web), atau modul/library/framework lainnya. Contoh aplikasi chatbot yang telah
memiliki GUI dapat diamati pada gambar berikut ini:
126
D. Rubrik Penilaian
Aspek Penilaian Deskripsi Kriteria Skor Contoh Kriteria Skor
127
3. Struktur Kontrol Penggunaan 20 - Sangat Baik (17-20): Kode terstruktur
dan Kualitas Kode struktur kontrol dengan baik, mudah dipahami, penggunaan
(percabangan, struktur kontrol tepat dan efektif, komentar
perulangan) yang dan dokumentasi kode lengkap.
tepat serta kode - Baik (13-16): Kode umumnya jelas dan
ditulis dengan clean terstruktur, meskipun beberapa bagian
code, modulasi, dan kurang didokumentasikan atau penggunaan
komentar yang struktur kontrol bisa lebih optimal.
memadai. - Cukup (9-12): Struktur kontrol sudah
digunakan tetapi terdapat beberapa
kekurangan dalam modularitas atau
kebersihan kode, sehingga menyulitkan
pemahaman.
- Kurang (0-8): Kode tidak terstruktur
dengan baik, minim komentar, dan sulit
dipahami.
128
5. Pengembangan Untuk peserta yang 20 - Sangat Baik (17-20): GUI dirancang
GUI (Opsional / mengembangkan dengan user interface yang intuitif, responsif,
Nilai Tambah) GUI minimal dengan dan memenuhi semua kriteria minimal (input,
media input teks output, dan tombol eksekusi), serta memiliki
(textbox), area nilai estetika dan fungsional tambahan.
output, dan tombol - Baik (13-16): GUI sudah berfungsi dengan
eksekusi prompt. komponen dasar yang diminta, meskipun
desain atau user experience masih bisa
ditingkatkan.
- Cukup (9-12): Hanya terdapat komponen-
komponen dasar, dengan tampilan yang
sederhana dan fungsionalitas terbatas.
- Kurang (0-8): GUI tidak memenuhi kriteria
minimal atau tidak ada pengembangan GUI
sama sekali.
129
Pertanyaan Refleksi Modul 4: Merefleksikan Implikasi Etis dalam
Penggunaan LLM
130
Refleksi Pribadi dan Tanggung Jawab Sosial:
● Dalam pengalaman Anda, apakah ada situasi di mana penerapan LLM membawa dilema
etis? Bagaimana Anda menyikapi dilema tersebut?
● Apa komitmen pribadi Anda sebagai pengembang atau pengguna LLM untuk memastikan
bahwa teknologi ini digunakan demi kebaikan bersama dan tidak merugikan pihak
manapun?
131
GLOSARIUM
Istilah Definisi
Bahasa Pemrograman Instrumen atau bahasa yang digunakan untuk menulis kode
program. Dalam konteks KA, bahasa seperti Python, C++, Java, dan
R sering digunakan karena keunggulan masing-masing dalam
pemrosesan data dan dukungan library.
Bar Plot Teknik visualisasi data yang menampilkan perbandingan nilai atau
frekuensi dalam bentuk batang. Sering digunakan untuk
menyajikan data kategorik.
Computer Vision Bidang dari kecerdasan artifisial yang berkaitan dengan cara
komputer menafsirkan dan memahami informasi visual dari dunia
nyata, seperti gambar dan video.
132
DataFrame Struktur data utama dalam Pandas yang menyimpan data dalam
format tabel (baris dan kolom), memudahkan manipulasi, analisis,
dan visualisasi data.
Fungsi Blok kode yang ditulis untuk melakukan tugas tertentu secara
modular dan dapat digunakan ulang. Fungsi membantu
pengorganisasian kode dan membuat pemrograman lebih efisien.
133
Gradient Descent Algoritma optimisasi yang digunakan untuk meminimalkan fungsi
kesalahan (loss function) dalam pelatihan model machine learning,
dengan cara menyesuaikan parameter model secara iteratif.
Heatmap Teknik visualisasi yang menyajikan data dalam bentuk peta warna,
sering digunakan untuk menunjukkan korelasi antar variabel dalam
sebuah matriks.
Library Kumpulan modul atau paket kode yang menyediakan fungsi dan
kelas yang siap digunakan untuk menyelesaikan tugas tertentu.
Dalam konteks KA, library seperti TensorFlow, scikit-learn,
Pandas, NumPy, dan Seaborn sangat penting.
Looping (Iterasi) Struktur kontrol yang memungkinkan eksekusi berulang dari satu
blok kode, menggunakan perintah seperti for dan while dalam
Python.
134
Machine Learning (ML) Cabang dari kecerdasan artifisial yang memungkinkan sistem
belajar dari data dan meningkatkan kinerjanya melalui algoritma,
meliputi teknik seperti supervised, unsupervised, semi-supervised,
dan reinforcement learning.
Mode Nilai atau kategori yang paling sering muncul dalam suatu dataset;
sering digunakan untuk mengisi nilai yang hilang pada data
kategorik.
Missing Values Nilai atau data yang tidak tersedia dalam sebuah dataset.
Penanganan missing values penting untuk memastikan analisis
data dan pemodelan tidak bias.
Natural Language Bidang dalam kecerdasan artifisial yang berfokus pada interaksi
Processing (NLP) antara komputer dan bahasa manusia, termasuk pemrosesan teks,
analisis sentimen, dan terjemahan bahasa.
Neural Network Model matematika yang meniru cara kerja otak manusia untuk
mengenali pola dalam data. Jaringan saraf adalah inti dari deep
learning dan banyak digunakan dalam berbagai aplikasi KA.
Operator Aritmatika Simbol atau tanda yang digunakan untuk melakukan operasi
matematika (seperti +, -, *, /, %) dalam pemrograman.
Operator Logika Simbol atau tanda yang digunakan untuk menghubungkan kondisi
logika dalam pemrograman, seperti and, or, not, serta operator
perbandingan (>, <, ==) untuk evaluasi kondisi.
135
Outlier Data atau nilai yang sangat berbeda dari sebagian besar data
lainnya dalam suatu dataset. Outlier dapat mengganggu analisis
statistik dan perlu ditangani dengan teknik deteksi seperti IQR atau
Z-score.
Pandas Series Struktur data satu dimensi dalam Pandas yang memiliki label
indeks, memudahkan akses dan manipulasi data secara individual.
Program (Script) Kode sumber yang ditulis untuk menjalankan tugas tertentu, yang
dapat dieksekusi oleh interpreter bahasa pemrograman seperti
Python.
136
Seaborn Library visualisasi data tingkat lanjut di Python, dibangun di atas
Matplotlib, yang menyediakan tampilan grafik yang lebih estetis
dan informatif seperti heatmap, distribusi, dan boxplot.
Structur Kontrol Struktur atau perintah dalam pemrograman yang mengatur alur
eksekusi kode, seperti pernyataan if, for, dan while yang
menentukan kondisi dan iterasi.
Testing (Data Testing) Kumpulan data yang tidak digunakan selama proses pelatihan,
melainkan untuk mengevaluasi kemampuan model dalam
menggeneralisasi pengetahuan ke data baru yang belum pernah
dilihat sebelumnya.
Tuple Struktur data Python yang mirip dengan list, tetapi bersifat
immutable (tidak dapat diubah setelah didefinisikan), biasanya
digunakan untuk menyimpan data yang tidak perlu dimodifikasi.
137
Unsupervised Pendekatan machine learning yang menggunakan data tidak
Learning berlabel untuk menemukan pola atau struktur tersembunyi tanpa
bantuan instruksi eksplisit mengenai output yang diharapkan.
Visualisasi Data Teknik untuk menyajikan data dalam bentuk grafik, diagram, atau
peta guna memudahkan identifikasi pola, tren, hubungan, dan
outlier dalam data. Contoh teknik visualisasi mencakup histogram,
boxplot, scatter plot, heatmap, dan bar plot.
Visual Studio Code Editor kode fleksibel yang dapat dikustomisasi melalui ekstensi,
(VS Code) mendukung berbagai bahasa pemrograman, dan sering digunakan
untuk pengembangan aplikasi KA karena antarmuka yang modern
serta fitur debugging yang kuat.
138
DAFTAR PUSTAKA
1. AICI UMG (2024) IDE untuk AI: Alat Terbaik untuk Pengembangan. Tersedia di:
https://aici-umg.com/article/ide-untuk-ai/ (Diakses: 14 Maret 2025).
2. Brown, T.B. dkk. (2020) Language Models are Few-Shot Learners. arXiv preprint
arXiv:2005.14165.
3. Cisco Developer (2023) What is the Best Programming Language for AI?. Tersedia
di: https://developer.cisco.com/articles/best-programming-language-for-ai/ (Diakses:
14 Maret 2025).
4. Devlin, J. dkk. (2018) BERT: Pre-training of Deep Bidirectional Transformers for
Language Understanding. arXiv preprint arXiv:1810.04805.
5. Dicoding Indonesia (2025) Belajar Dasar AI. Tersedia di:
https://www.dicoding.com/academies/653-belajar-dasar-ai (Diakses: 14 Maret
2025).
6. García, S., Luengo, J. dan Herrera, F. (2015) Data Preprocessing in Data Mining.
Springer.
7. Google Developers (n.d.) Accuracy, Precision, and Recall. Google Developers.
Tersedia di: https://developers.google.com/machine-learning/crash-
course/classification/accuracy-precision-recall (Diakses: 14 Maret 2025).
8. Hugging Face (2021) Transformers Documentation. Tersedia di:
https://huggingface.co/transformers/ (Diakses: 17 Maret 2025).
9. IBM (2021) Supervised versus Unsupervised Learning: What's the Difference?.
Tersedia di: https://www.ibm.com/think/topics/supervised-vs-unsupervised-learning
(Diakses: 14 Maret 2025).
10. IBM (2024) What is a Dataset?. Tersedia di:
https://www.ibm.com/think/topics/dataset (Diakses: 14 Maret 2025).
11. IEEE Computer Society (2025) Machine Learning Projects: Training and Testing.
Tersedia di: https://www.computer.org/publications/tech-news/trends/machine-
learning-projects-training-testing (Diakses: 14 Maret 2025).
12. OpenAI (2020) OpenAI API Documentation. Tersedia di:
https://beta.openai.com/docs/ (Diakses: 17 Maret 2025).
13. Vaswani, A. dkk. (2017) Attention is All You Need. Advances in Neural Information
Processing Systems, 30, hlm. 5998–6008.
139
LAMPIRAN 1
Regresi Supervise Prediksi nilai Model linier StandardScaler Mean Squared Error
Linear d Learning kontinu seperti yang atau (MSE), Root Mean
harga, suhu, mengasumsikan MinMaxScaler Squared Error
atau hubungan linear (RMSE), Mean
pendapatan. antara fitur dan Absolute Error (MAE),
target. dan R²
140
Random Supervise Prediksi pada Kombinasi Tidak wajib, Accuracy, ROC-AUC,
Forest d Learning data kompleks beberapa normalisasi Confusion Matrix
dan mencegah decision trees opsional bila (klasifikasi); RMSE
overfitting untuk diperlukan dan MAE (regresi)
melalui meningkatkan dalam
ensemble dari akurasi dan penggabungan
beberapa stabilitas fitur
decision trees. prediksi.
141
Neural Supervise Pengolahan Jaringan multi- Dianjurkan; Accuracy, Loss
Networks d Learning data non- lapisan yang gunakan Function (misalnya
(Deep linear dan belajar dari data StandardScaler, Cross-Entropy untuk
Learning) kompleks untuk MinMaxScaler, klasifikasi, MSE untuk
seperti citra, menemukan atau normalisasi regresi), Precision,
suara, dan teks representasi khusus Recall, F1-Score, dan
dalam skala fitur secara AUC
besar. otomatis.
142
Hierarchic Unsupervi Menganalisis Menghasilkan Disarankan; Cophenetic
al sed hubungan pohon gunakan Correlation
Clustering Learning hirarkis antar (dendrogram) StandardScaler Coefficient dan
data dan yang atau Silhouette Score
visualisasi menggambarka MinMaxScaler (untuk eksplorasi
hubungan n hierarki untuk struktur klaster)
klaster melalui klasterisasi perhitungan
dendrogram. data. jarak
Label Semi- Saat hanya Metode graf- Gunakan Accuracy pada data
Propagati Supervise tersedia sedikit based yang StandardScaler berlabel, Confusion
on / Label d Learning data berlabel menyebarkan atau Matrix, serta validasi
Spreading dengan data label dari data MinMaxScaler silang (cross-
unlabeled berlabel ke data agar validation) pada
yang banyak; unlabeled perhitungan subset data berlabel
misalnya di berdasarkan jarak konsisten
bidang kemiripan fitur
antar data.
143
pengenalan
pola dan teks.
144
sekuensial
atau real-time.
145
LAMPIRAN 2
146
Selanjutnya, distribusi data (khususnya tingkat
kegemaran membaca) divisualisasikan sebelum dan
sesudah pembersihan outlier serta dinormalisasi
menggunakan MinMaxScaler. Akhirnya, dataset
yang telah dibersihkan dan yang telah dinormalisasi
disimpan kembali ke dalam file CSV untuk
keperluan analisis lebih lanjut.
147
menyiapkan data dengan mengecek duplikat, DDNcsGprbLsGGGua3
missing values, serta melakukan normalisasi GnCmK6Pm-
sederhana pada fitur BMI. Selanjutnya, dilakukan r1?usp=sharing
eksplorasi data melalui visualisasi histogram dan
scatter plot untuk memahami distribusi BMI dan
hubungannya dengan target (perkembangan
penyakit). Data kemudian dipisahkan menjadi set
pelatihan dan pengujian, dan fitur 'bmi' digunakan
untuk melatih model linear regression. Terakhir,
evaluasi model dilakukan dengan menghitung
koefisien, intercept, dan skor R², serta hasilnya
divisualisasikan melalui plot data dan garis regresi.
148
Kode ini memuat dataset MNIST, melakukan oogle.com/drive/1yvBh
normalisasi, dan menampilkan contoh gambar serta w14D8MyAuuLwE8o5
visualisasi EDA sederhana dari data. Model neural 7pW4QsoofEr9?usp=s
network sederhana dilatih untuk klasifikasi digit haring
dengan 15 epoch.
149
pesan sistem khusus. Pengguna dapat memasukkan
prompt melalui kotak teks, dan prediksi teks
dijalankan secara terpisah dalam thread agar
antarmuka tidak membeku. Hasil prediksi yang telah
diproses kemudian ditampilkan dalam area teks
yang dapat discroll sebagai output.
150