0% menganggap dokumen ini bermanfaat (0 suara)
4K tayangan151 halaman

Modul - 4 - SMK - Pemrograman Kecerdasan Artifisial

Modul ini memberikan panduan tentang pemrograman kecerdasan artifisial (KA) untuk guru SMA/SMK, mencakup konsep dasar, penerapan library KA, serta pengenalan Large Language Model (LLM). Pelatihan bertujuan agar peserta dapat menerapkan KA dalam proyek nyata dan memahami etika penggunaannya. Selain itu, modul ini juga menyediakan aktivitas praktis dan dokumentasi teknis untuk mendukung pembelajaran.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4K tayangan151 halaman

Modul - 4 - SMK - Pemrograman Kecerdasan Artifisial

Modul ini memberikan panduan tentang pemrograman kecerdasan artifisial (KA) untuk guru SMA/SMK, mencakup konsep dasar, penerapan library KA, serta pengenalan Large Language Model (LLM). Pelatihan bertujuan agar peserta dapat menerapkan KA dalam proyek nyata dan memahami etika penggunaannya. Selain itu, modul ini juga menyediakan aktivitas praktis dan dokumentasi teknis untuk mendukung pembelajaran.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 151

Modul 4

Pemrograman
Kecerdasan Artifisial
(Bimbingan Teknis Guru Koding dan Kecerdasan Artifisial Jenjang SMA/SMK)

Direktorat Jenderal Guru, Tenaga Kependidikan dan


Pendidikan Guru Kementerian Pendidikan Dasar dan Menengah
2025
0
Modul 4
Pemrograman Kecerdasan Artifisial

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

Tim Ahli Materi:


Dr. Asep Wahyudin
Septiaji Eko Nugroho, S.T, M.Sc.
Dr. Asep Jihad, M.Pd.

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

Kata Pengantar ........................................................................................................................... 2

DAFTAR ISI ................................................................................................................................. 3

A. Deskripsi Umum Modul .......................................................................................................... 5

A.1. Capaian Pelatihan ............................................................................................................ 5

A.2. Tujuan Pelatihan .............................................................................................................. 5

A.2. Indikator Capaian Pelatihan ............................................................................................ 5

A.3. Pokok bahasan................................................................................................................. 6

A.4. Alur Pelatihan .................................................................................................................. 6

B. Pemrograman Kecerdasan Artifisial ...................................................................................... 9

B.1. Dasar Pemrograman Kecerdasan Artifisial ..................................................................... 9

AKTIVITAS 1: Diskusi Tentang Konsep Dasar ..................................................................... 31

Pemrograman KA .................................................................................................................. 31

B.2. Menerapkan Pemrograman Kecerdasan Artifisial ........................................................ 32

B.2.1. Penerapan Library Kecerdasan Artifisial ................................................................ 86

B.2.2. Analisis Hasil dan Penyempurnaan Output Aplikasi Kecerdasan Artifisial .......... 97

Lembar Kerja 4.1: Proyek Pemrograman Aplikasi KA (supervised/unsupervised learning)


Menggunakan Dataset ........................................................................................................ 102
A. Deskripsi ................................................................................................................. 102
B. Tujuan ...................................................................................................................... 102

C. Petunjuk Kerja ......................................................................................................... 102

D. Format Laporan Hasil.............................................................................................. 104

E. Kriteria Penilaian ..................................................................................................... 105

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

Lembar Kerja 4.2: Memadukan aplikasi KA dan LLM ........................................................ 125

A. Deskripsi .................................................................................................................. 125

B. Tujuan ...................................................................................................................... 125

C. Instruksi Kerja.......................................................................................................... 125

D. Rubrik Penilaian ...................................................................................................... 127

GLOSARIUM ........................................................................................................................... 132


DAFTAR PUSTAKA ................................................................................................................ 139
LAMPIRAN 1 ........................................................................................................................... 140

Ragam Algoritma Machine Learning .................................................................................. 140

LAMPIRAN 2 ........................................................................................................................... 146

Kumpulan Contoh Penerapan Pemrograman KA............................................................... 146

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.

A.2. Tujuan Pelatihan


● Peserta pelatihan mampu menjelaskan konsep dasar pemrograman KA.
● Peserta pelatihan mampu menerapkan library Kecerdasan Artifisial populer untuk
menghasilkan aplikasi kecerdasan artifisial
● Peserta pelatihan menjelaskan konsep dasar, arsitektur, cara kerja, dan aplikasi Large
Language Model sederhana.
● Peserta pelatihan mampu mengintegrasikan aplikasi KA dengan model bahasa besar.
● Peserta pelatihan mampu merefleksi bahwa penggunaan LLM harus bertanggung jawab
dan mematuhi prinsip human-centered dan etika yang ada.

A.2. Indikator Capaian Pelatihan


1. Peserta mampu menjelaskan konsep dasar pemrograman KA.
2. Peserta dapat menerapkan sintaks dasar bahasa pemrograman KA untuk menulis skrip
sederhana yang melibatkan logika KA
3. Peserta mampu menerapkan library KA populer untuk membangun model sederhana,
seperti klasifikasi teks/gambar.
4. Peserta mampu menganalisis output KA menggunakan matrik evaluasi dan melakukan
penyempurnaan kode untuk meningkatkan performa.
5. Peserta mampu menjelaskan arsitektur dasar LLM dan cara kerjanya dalam menghasilkan
output.
6. Peserta dapat membedakan jenis-jenis LLM berdasarkan desain arsitektur dan kasus
penggunaan spesifik.
7. Peserta dapat memadukan LLM ke dalam aplikasi menggunakan framework.
8. Peserta dapat menganalisis kelebihan dan keterbatasan LLM melalui studi kasus output
yang dihasilkan

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

A.3. Pokok bahasan


1. Dasar Pemrograman Kecerdasan Artifisial
2. Penerapan library Kecerdasan Artifisial
3. Analisis Hasil dan Penyempurnaan Output Aplikasi Kecerdasan Artifisial
4. Konsep Dasar, Arsitektur, dan Cara Kerja Large Language Model
5. Peran Large Language Model dalam Kecerdasan Artifisial Generatif dan Aplikasinya
6. Teknik Integrasi Pemrograman Kecerdasan Artifisial Dengan Model LLM

A.4. Alur Pelatihan


Alur pembelajaran modul Pengoperasian, Pengaplikasian, dan Kolaborasi Perangkat
Kecerdasan Artifisial menggunakan SOLO Taxonomy yang dijelaskan pada Tabel 1.

Tabel 1. Alur Pelatihan Pemrograman Kecerdasan Artifisial

Materi Tahapan Aktivitas Tagihan JP

Pemrograman Memahami Menjelaskan konsep dasar Hasil diskusi sesuai 5


Kecerdasan (Unistruktural & pemrograman KA melalui panduan diskusi pada
Artifisial Multistruktural) diskusi terpandu. Aktivitas 1: Diskusi
Tentang Konsep Dasar
(Aktivitas 1: Diskusi Tentang
Pemrograman KA
Konsep Dasar Pemrograman
(diunggah di LMS)
KA)

Mengaplikasi ● Menerapkan sintaks LK 4.1 Proyek


(Relasional) dasar bahasa pemrograman aplikasi KA
pemrograman KA untuk (supervised/unsupervised
learning) menggunakan
menulis skrip sederhana
dataset dengan tema
yang melibatkan logika
sesuai kelompok bidang
KA keahlian SMK
● Menerapkan library KA
populer untuk

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.

Merefleksi Merefleksikan tantangan dan Mengisi jurnal refleksi


(Abstrak meluas) solusi selama
mengembangkan aplikasi KA

Pengenalan Memahami ● Menjelaskan arsitektur Hasil diskusi 2


LLM Pada KA (Unistruktural & dasar LLM dan cara
Generatif Multistruktural) kerjanya dalam
menghasilkan output
melalui diskusi.

Mengaplikasi ● Membedakan jenis-jenis LK 4.2. Memadukan


(Relasional) LLM berdasarkan desain aplikasi KA dan LLM
arsitektur dan kasus Menggunakan API
penggunaan spesifik
melalui studi kasus
● Memadukan LLM ke
dalam aplikasi
menggunakan
framework. (Aktivitas 3:
Mengintegrasikan LLM

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.

Merefleksi ● Merefleksikan implikasi Mengisi jurnal refleksi


(Abstrak meluas) etis dalam penggunaan
LLM
● Merefleksikan tantangan
dan solusi selama
mengembangkan aplikasi
KA dan
mengintegrasikan LLM

8
B. Pemrograman Kecerdasan Artifisial
B.1. Dasar Pemrograman Kecerdasan Artifisial

Gambar 1. Tipe-tipe Kecerdasan Artifisial


Sumber: https://medium.com/@seaflux/exploring-the-transformative
-power-of-different-ai-types -c6453b895a2c

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.

B.1.1 Mengenal Bahasa Pemrograman Kecerdasan Artifisial


Pemilihan bahasa pemrograman yang tepat dan terbaik untuk pengembangan aplikasi KA
sangat bergantung pada kebutuhan proyek, keterampilan yang dimiliki pengembang,
serta tujuan individu atau organisasi pengembang. Setiap bahasa pemrograman memiliki
keunggulan yang unik kesesuaian untuk tugas-tugas tertentu.

Gambar 2. Bahasa Pemrograman KA Terpopuler. Sumber: https://www.softformance.com/

10
Tabel 2. Beberapa Kelebihan Bahasa Pemrograman Kecerdasan Artifisial

Bahasa Kelebihan
Pemrograman

Python Pilihan utama bagi pemula karena kemudahan penggunaan,


sintaks yang sederhana, kelengkapan pustaka, dan dukungan
komunitas yang luas.

C++ Unggul dalam aplikasi yang memiliki kebutuhan performa tinggi,


sehingga sangat cocok untuk aplikasi yang memerlukan efisiensi
dan kecepatan.

Java Banyak digunakan di lingkungan perusahaan karena stabilitas dan


skalabilitasnya serta memungkinkan pengembang untuk
membuat aplikasi yang dapat berjalan di berbagai platform.

R Efektif untuk analisis statistik yang mendalam dan visualisasi data.

JavaScript Populer digunakan dalam integrasi KA pada aplikasi web yang


dinamis dan responsif.

Julia Bahasa baru yang sering digunakan dalam bidang komputasi


numerik dan ilmiah.

Gambar 3. Perbandingan Bahasa Pemrograman untuk KA

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

Gambar 4. PyCharm IDE

■ Jupyter Notebook, merupakan IDE yang ideal untuk eksperimen dan


visualisasi data dengan eksekusi kode berbasis sel
(https://jupyter.org/install)

12
Gambar 5. Jupyter Notebook

■ Google Colaboratory, memiliki kemiripan antarmuka dan penggunaan dengan Jupyter


Notebook (https://colab.research.google.com/).

Gambar 6. Google Colaboratory

■ 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

■ Spyder, sesuai untuk bahasa pemrograman Python dan analisis data


(https://www.spyder-ide.org/)

Gambar 8. Spyder

■ RStudio, sesuai untuk analisis data dengan bahasa pemrograman R


(https://posit.co/download/rstudio-desktop/ )

14
Gambar 9. R Studio

B.1.3 Dasar-Dasar Pemrograman Dengan Bahasa Python


Python merupakan salah satu bahasa pemrograman yang sangat populer di kalangan data
scientist dan praktisi machine learning. Kemudahan sintaks, ketersediaan library
pendukung, dan komunitas yang besar menjadikan Python menjadi pilihan yang populer
untuk melakukan analisis data, eksplorasi, dan pembangunan model prediktif.

Python cocok untuk memulai belajar machine learning karena :

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.

3. Komunitas dan sumber belajar yang sangat besar – tersedia banyak


dokumentasi, tutorial, serta forum Python yang memudahkan pemecahan
masalah dan pembaruan pengetahuan.

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

Gambar 10. Variabel

Contoh kode berikut menunjukkan cara mendefinisikan dan mencetak variabel:

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.

2) Operator Aritmatika dan Logika


Operator aritmatika digunakan untuk melakukan perhitungan dasar, sedangkan
operator logika membantu dalam pengambilan keputusan logis di dalam program.

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.

Gambar 11. Struktur Kontrol Percabangan

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

Gambar 12. Perbandingan For Loop dan While Loop.


Sumber: https://www.codingem.com/flowchart-loop/

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:

Fungsi tanpa parameter

● Contoh: def salam():


● Tidak menerima masukan (input) apa pun.
● Selalu mengembalikan pesan yang sama setiap kali dipanggil, yaitu "Halo,
selamat datang!".
● Pemanggilan: cukup tulis salam() tanpa argumen.

Fungsi dengan parameter

● Contoh: def sapa(nama):


● Menerima satu masukan (nama) yang digunakan di dalam tubuh fungsi.
● Mengembalikan string yang menggabungkan teks tetap dengan nilai parameter,
misalnya "Halo, Data Scientist!".
● Pemanggilan: tulis sapa("NamaAnda"), di mana "NamaAnda" adalah argumen
yang dikirim ke fungsi.

Pemanggilan dan penggunaan nilai return

● Saat fungsi dijalankan, Python akan mengeksekusi baris-baris di dalamnya dan


mengirimkan kembali (return) sebuah nilai.
● Nilai itu bisa langsung dicetak (print(salam())) atau disimpan dalam variabel
untuk digunakan selanjutnya (hasil = sapa("Data Scientist")).

B.1.4. Bekerja Dengan Struktur Data


Struktur data merupakan cara untuk menyimpan dan mengelola data. Python
menyediakan berbagai jenis struktur data yang masing-masing memiliki keunggulan
tersendiri untuk keperluan analisis dan pemrosesan data. Aplikasi KA melakukan
pengelolaan data yang sangat banyak, sehingga pemahaman terhadap penggunaan
struktur data menjadi sangat penting dalam pemrograman KA.

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:

● List buah menyimpan nama-nama buah.


● Metode .append() menambahkan elemen baru ke dalam List, sedangkan
.remove() menghapus elemen tertentu dari dalam List.

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.

Ketika dijalankan, kode ini akan menampilkan:

22
Jika Anda mencoba membuka komentar dan menjalankan baris

maka Python akan melempar error semacam ini:

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.

5) Pandas Series dan DataFrame


Pandas adalah library yang sangat populer di dunia data science. Salah satu struktur
data yang disediakan oleh Pandas adalah Series, yaitu array atau himpunan satu
dimensi yang dilengkapi dengan label pada tiap elemennya. Series memudahkan
manipulasi data karena pemrogram dapat mengakses elemen berdasarkan indeks
label.

a). Membuat dan menampilkan series

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.

Sedangkan pandas.DataFrame adalah struktur data 2-dimensi (baris × kolom) yang


berlabel. DataFrame mirip lembar kerja spreadsheet atau tabel, di mana setiap kolom
dapat menyimpan data dengan tipe yang berbeda dan memiliki nama kolom serta
indeks.

Contoh DataFrame:

Hasil dari potongan kode program di atas adalah:

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.

Gambar 13. Perbandingan Pemrograman Tradisional dan ML


Sumber: https://www.dicoding.com/

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.

● Pembelajaran Terawasi (Supervised Learning) melibatkan penggunaan dataset


berlabel (input dan output yang diketahui) untuk melatih algoritma dalam
mengklasifikasikan data atau memprediksi hasil dengan akurat. Secara sederhana,
untuk melatih algoritma untuk mengenali gambar apel, maka sistem diberi data
gambar yang diberi label sebagai apel. Contohnya adalah pengelompokan
(classification), pohon keputusan (decision tree), naive bayes, dan regresi
(regression).

26
Gambar 14. Ilustrasi Supervised Learning
Sumber: https://www.dicoding.com/

● Pembelajaran Tidak Terawasi (Unsupervised learning) adalah model machine


learning yang menggunakan data tidak berlabel (data tidak terstruktur) dalam
melakukan pembelajaran. Algoritma pada pembelajaran tidak terawasi belajar dari
kumpulan data yang tidak diinputkan secara manual oleh manusia (tidak terawasi)
dan mengkategorikannya ke dalam berbagai kelompok berdasarkan atributnya.
Misalnya, jika algoritma diberi input data berupa gambar apel dan pisang, maka
algoritma tersebut akan bekerja dengan sendirinya untuk mengkategorikan gambar
mana yang merupakan apel dan pisang. Unsupervised learning biasa dan cukup
bagus digunakan dalam pemodelan deskriptif dan pencocokan pola, seperti fuzzy
means dan k-means clustering,

Gambar 15. Ilustrasi Unsupervised 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.

Gambar 16. Semi Supervised Learning. Sumber: https://www.geeksforgeeks.org/ml-semi-


supervised-learning/

● Reinforcement learning (pembelajaran penguatan) adalah model pembelajaran mesin


yang menggunakan metode “belajar melalui praktik”. Pembelajaran pada model ini
dilakukan dengan menggunakan serangkaian uji coba oleh “agen” yang melakukan
perbaikan terus menerus berdasarkan feedback loop yang diterima, hingga
kinerjanya sesuai dengan harapan. Feedback positif diterima oleh agen jika
kinerjanya baik, dan sebaliknya. Model reinforcement learning banyak digunakan
dalam permainan, seperti catur dan maze. Google mengembangkan algoritma
reinforcement learning untuk memainkan gim Go, di mana algoritma tersebut tidak
memiliki pengetahuan awal tentang aturan dalam permainan Go. Algoritma yang
dikembangkan, pada awalnya, memindahkan biji pada papan permainan secara acak,
dan mempelajari langkah atau strategi terbaik untuk memenangkan permainan
melalui penguatan positif dan negatif, hingga mencapai suatu kondisi di mana model
dapat mengalahkan manusia dalam gim tersebut.

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.

B.1.6. Mengenal Training (Latih) dan Testing (Uji)


Dalam ML, training dan testing merupakan komponen vital yang membantu algoritma untuk
belajar berdasarkan data yang diberikan.

● 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!

Pertanyaan panduan diskusi:


1. Apa saja konsep dasar pemrograman yang dianggap krusial untuk pengembangan
aplikasi KA (misalnya variabel, struktur kontrol, fungsi, dan struktur data)?
2. Bagaimana konsep pemrograman berbasis struktur data (list, tuple, dictionary, set)
berperan dalam pengolahan dan analisis data pada aplikasi KA?
3. Mengapa Python sering dijadikan pilihan utama dalam pemrograman KA? Apa
keunggulan Python dibandingkan bahasa pemrograman lain dalam konteks aplikasi
KA?
4. Bagaimana penggunaan IDE (seperti PyCharm, Jupyter Notebook, atau Visual
Studio Code) dapat memfasilitasi proses pembelajaran dan pengembangan aplikasi
KA?
5. Teknik pengajaran apa yang menurut Anda paling efektif dalam menyampaikan
konsep dasar pemrograman kepada siswa yang belum memiliki latar belakang
mendalam tentang KA?
Bagaimana cara mengkombinasikan pendekatan teoretis dan praktis (misalnya,
diskusi, laboratorium, dan proyek berbasis coding) untuk mengajarkan
pemrograman KA di kelas?
6. Apa jenis evaluasi (misalnya, kuis, tugas coding, proyek kolaboratif) yang paling
efektif untuk menilai pemahaman siswa terhadap konsep-konsep pemrograman
KA?
7. Bagaimana Anda mendorong siswa untuk merefleksikan proses belajar mereka,
terutama terkait tantangan yang dihadapi dalam memahami aspek teknis dan
penerapan aplikasi KA?

Paparkan hasil diskusi dalam bentuk teks untuk diunggah ke LMS!

31
B.2. Menerapkan Pemrograman Kecerdasan Artifisial

B.2.1 Bekerja Dengan Dataset


Data dan dataset yang bersifat reliabel dan mudah diakses sangat penting dalam proses
pengembangan KA. Data adalah fakta dan informasi yang dapat berbentuk teks, angka,
gambar, suara, dan lainnya. Sedangkan, dataset adalah kumpulan data yang telah
disusun, biasanya dalam bentuk matriks, tabel, himpunan (array), ataupun struktur
spesifik lainnya. Terdapat tiga tipe dataset berdasarkan data yang ditanganinya, yaitu:

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:

● Menggunakan Mesin Pencari:


Pencarian dataset dapat menggunakan kata kunci spesifik seperti "dataset [topik]"
atau "open dataset [topik]" pada mesin pencari (Google, Bing, dan lain-lain). Misalnya,
"dataset cuaca" atau "open dataset kesehatan".

● Platform Dataset Terbuka:


Banyak situs web yang menyediakan koleksi dataset dari berbagai domain secara
terbuka. Beberapa di antaranya adalah:
✓ Kaggle
✓ UCI Machine Learning Repository
✓ Google Dataset Search
✓ data.gov dan portal data pemerintah lainnya

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:

Setelah dataset berhasil diunduh, langkah berikutnya adalah membacanya ke dalam


lingkungan pemrograman (misalnya Python) dan melakukan eksplorasi awal. Library
Pandas adalah salah satu perangkat (tool) terbaik untuk membaca, memanipulasi, dan
memahami dataset. Berikut ini adalah contoh cara membaca dataset dalam format CSV dan
JSON menggunakan Pandas:

33
Setelah membaca dataset, langkah berikutnya adalah memahami strukturnya. Beberapa
metode yang dapat digunakan adalah:

● Melihat Informasi Umum:


Informasi umum dataset dapat diketahui dengan menggunakan fungsi info(). Fungsi
tersebut menghasilkan informasi jumlah baris, kolom, dan tipe data masing-masing
kolom.

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

● Menampilkan Beberapa Baris Data:


Fungsi head() dan tail() dapat digunakan untuk melihat beberapa baris pertama atau
terakhir dari dataset. Hal ini menjadi semacam preview untuk melihat contoh data
yang ada.

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.

Gambar 18. Jenis Tanaman Iris. Sumber:


http://www.lac.inpe.br/~rafael.santos/Docs/CAP394/WholeStory-Iris.html

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:

Gambar 19. Lima Baris Pertama dan Informasi Dataset Iris

36
Gambar 20. Statistik Deskriptif dan Nilai Hilang pada Dataset Iris

B.2.2 Data Preparation & Pre-Processing


Data Preparation adalah serangkaian kegiatan yang bertujuan untuk mengumpulkan
dan menyiapkan data yang akan digunakan dalam proses pembelajaran mesin. Sumber
data yang umum digunakan dapat berupa repositori data, basis data, application
programming interfaces (APIs), dan platform data publik seperti portal data pemerintah
atau organisasi internasional, yang menyediakan akses ke berbagai dataset untuk analisis
dan penelitian, misalnya Kaggle (https://www.kaggle.com/) dan Google Research Datasets
(https://research.google/resources/datasets/)

37
Gambar 21. Contoh Dataset Minat Baca di Indonesia 2020-2023
Sumber: https://www.kaggle.com

Pra-pemrosesan data (Data Pre Processing) merupakan serangkaian langkah untuk


mengubah data mentah menjadi format yang bersih, terstruktur, dan optimal sebelum
dianalisis atau digunakan untuk pelatihan model pembelajaran mesin. Hasil akhir dari
proses ini adalah dataset yang telah dipersiapkan dengan baik sehingga dapat
meningkatkan akurasi dan efisiensi model. Tahapan utama dalam pra-pemrosesan data
meliputi:

● Pembersihan Data: menangani nilai yang hilang, menghapus duplikasi,


memperbaiki kesalahan, dan menangani pencilan (outlier).
● Integrasi Data: menggabungkan data dari berbagai sumber ke dalam satu dataset
yang terpadu.

38
● Transformasi Data: normalisasi, standarisasi, pengkodean variabel kategori, dan
agregasi data.
● Reduksi Data: pemilihan fitur, pemilihan instance, reduksi dimensi, dan diskretisasi.

Gambar 22. Pra-pemrosesan Data

Berikut ini adalah contoh persiapan dan pra-pemrosesan data menggunakan dataset
Indonesia Reading Interest 2020-2023,

Contoh kode program lengkap data preprataion & pre-processing menggunakan


dataset Indonesia Reading Interest dapat dilihat pada tautan:
https://colab.research.google.com/drive/1d5yPdFKFB8s6hdP8iWsHB69TPOA6oaHb?u
sp=sharing :

1) Mengunduh dataset melalui tautan resmi

https://www.kaggle.com/datasets/imaditia/indonesia-reading-interest-2020-
2023?resource=download

39
2) Mengunggah dataset ke Google Colab notebook yang sudah disiapkan

3) Mengimpor libraries yang diperlukan

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.

import matplotlib.pyplot as plt


● Matplotlib adalah pustaka untuk membuat grafik dan visualisasi data.
● pyplot adalah modul di dalam Matplotlib yang menyediakan fungsi-fungsi
plotting (seperti plt.plot(), plt.bar(), dan lain-lain).
● pyplot diimpor dengan alias plt, sehingga memungkinkan untuk menuliskan
plt.plot() alih-alih menggunakan matplotlib.pyplot.plot().

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.

from sklearn.preprocessing import MinMaxScaler


● sklearn (scikit-learn) adalah library Python yang populer untuk machine
learning.
● Modul sklearn.preprocessing menyediakan berbagai fungsi untuk menyiapkan
(preprocess) data sebelum membangun model machine learning, misalnya
normalisasi data, menangani data yang berupa kategori, dan lain-lain.
● MinMaxScaler adalah salah satu kelas di dalam sklearn.preprocessing yang
digunakan untuk menormalisasi data numerik ke dalam bentuk rentangan [0, 1].
● Ketika dituliskan from sklearn.preprocessing import MinMaxScaler, maka hanya
akan diambil bagian tertentu dari library scikit-learn, sehingga kita dapat
langsung memanggil MinMaxScaler() tanpa harus menulis
sklearn.preprocessing.MinMaxScaler().

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("=== Detected Columns ===")


• Baris ini menampilkan teks === Detected Columns === untuk memberikan judul
atau penanda bahwa akan ditampilkan daftar kolom dari DataFrame.

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

print("=== First 5 Rows ===")


• Mencetak teks === First 5 Rows === untuk menandakan bahwa akan
ditampilkan 5 baris pertama dari DataFrame.

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.

6) Memeriksa dan Menghapus Data Duplikat

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.

print("Number of duplicate rows:", 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.

print("After removing duplicates, shape:", df.shape, "\n")


● Menampilkan ukuran (jumlah baris dan kolom) DataFrame setelah baris duplikat
dihapus, agar kita tahu perubahan yang terjadi.
● df.shape mengembalikan (jumlah_baris, jumlah_kolom).

else:
• Jika tidak ada duplikat (duplicates == 0), maka blok if di atas tidak dijalankan.

print("No duplicate rows found.\n")


● Menampilkan pesan bahwa tidak ada baris duplikat yang ditemukan, diikuti
baris kosong ("\n").

46
7) Memeriksa dan Menangani Data Yang Hilang

reading_col = "Tingkat Kegemaran Membaca (Reading Interest)"


• Pada bagian ini didefinisikan variabel reading_col yang berisi nama kolom
“Tingkat Kegemaran Membaca (Reading Interest)”. Variabel ini membantu kita
dalam mengakses kolom tersebut dengan mudah.

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.

for col in numeric_cols_with_commas:


• Bagian ini melakukan iterasi untuk setiap kolom yang terdaftar di
numeric_cols_with_commas.

if col in df.columns:
• Memeriksa apakah kolom tersebut memang ada di DataFrame df. Jika ada, maka
dilakukan pemrosesan.

df[col] = df[col].astype(str).str.replace(',', '.')


● Baris ini mengubah setiap nilai di kolom col menjadi string, lalu mengganti tanda
koma dengan titik. Misalnya, "5,5" akan diubah menjadi "5.5". Hal ini perlu
dilakukan karena Python (dan banyak bahasa lainnya) menggunakan titik (.)
sebagai pemisah desimal, bukan koma.

df[col] = pd.to_numeric(df[col], errors='coerce')


● Setelah koma diganti dengan titik, isi kolom dikonversi menjadi tipe data
numerik (float).
● Parameter errors='coerce' artinya jika ada nilai yang tidak bisa dikonversi
menjadi angka, nilai tersebut akan diganti dengan NaN (Not a Number).

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
{}.

if 'Year' in df.columns: ...


● Memeriksa apakah kolom 'Year' ada di DataFrame. Jika ya, kolom tersebut perlu
dikonversi menjadi numerik dan missing values-nya diganti dengan median.

categorical_cols = ["Provinsi", "Category"]


• Mendefinisikan daftar kolom yang bersifat kategoris, yaitu kolom yang berisi
nilai teks atau kategori.

for cat_col in categorical_cols:


• Melakukan iterasi untuk setiap kolom kategoris.

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.

print(f"Missing values in '{cat_col}' filled with mode: {mode_val}")


• Mencetak pesan bahwa missing values di kolom kategoris telah diganti dengan
nilai modus.

49
8) Visualisasi Data

Kode program di atas digunakan untuk memvisualisasikan grafik batang distribusi


minat baca.

Gambar 23. Distribusi Tingkat Kegemaran Membaca Sebelum


Dilakukan Penghapusan Pencilan dan Normalisasi

9) Mengenal pencilan atau Outlier


Outlier adalah data yang memiliki nilai atau karakteristik yang sangat berbeda
(jauh) dari sebagian besar data lainnya. Dalam konteks analisis data atau
pembelajaran mesin, outlier bisa diibaratkan seperti “pencilan” atau “nilai ekstrem”
yang tidak mewakili pola umum pada dataset. Berikut adalah beberapa hal yang perlu
diketahui terkait outlier:
● Penyebab Munculnya Outlier
○ Kesalahan Pengukuran atau Entri Data: Misalnya, salah memasukkan nilai
“1000” padahal seharusnya “100”.

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.

● Dampak yang Mungkin Terjadi Jika Outlier


○ Mempengaruhi statistik deskriptif: Nilai mean (rata-rata) dan standar
deviasi dapat menjadi bias atau melenceng jauh karena adanya outlier.
○ Mempengaruhi hasil Pemodelan: Dalam pembelajaran mesin, outlier
dapat membuat model menjadi sulit dalam mempelajari pola umum,
sehingga dapat mengakibatkan performa model menurun.
○ Kesalahan interpretasi: Tanpa penanganan yang tepat, outlier bisa
menyebabkan kesimpulan yang kurang tepat dalam analisis data.

● Metode Deteksi Outlier


○ IQR (Interquartile Range): Menghitung Q1 (kuartil bawah) dan Q3 (kuartil
atas), lalu menghitung selisihnya (IQR = Q3 – Q1). Outlier biasanya
didefinisikan sebagai data yang berada di bawah (Q1 – 1.5 * IQR) atau di
atas (Q3 + 1.5 * IQR).
○ Z-score: Mengukur seberapa jauh suatu nilai dari rata-rata dalam satuan
standar deviasi. Data dengan Z-score di atas ambang tertentu (misalnya
> 3 atau < -3) dianggap sebagai outlier.
○ Melalui visualisasi: Diagram atau plot seperti boxplot, scatter plot, atau
histogram dapat membantu mendeteksi outlier secara visual.

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

Gambar 24: Outlier Pada Data

10) Contoh penanganan Outlier

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

lower_bound = Q1 - 1.5 * IQR


● Batas bawah (lower bound) untuk outlier ditentukan sebagai Q1 dikurangi 1.5
× IQR.
● Jika suatu nilai berada di bawah batas ini, maka nilai tersebut dianggap sebagai
outlier.

upper_bound = Q3 + 1.5 * IQR


● Batas atas (upper bound) untuk outlier ditentukan sebagai Q3 ditambah 1.5 ×
IQR.
● Jika suatu nilai berada di atas batas ini, nilai tersebut dianggap outlier.

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.

print(f"Column '{c}': {len(outlier_indices)} outliers detected.")


● Mencetak informasi jumlah outlier yang terdeteksi pada kolom c.
● f-string (f"...") digunakan untuk menampilkan variabel secara langsung di
dalam string.

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.

df_no_outliers = remove_outliers_iqr(df, numeric_cols)


● Memanggil fungsi remove_outliers_iqr dengan df (DataFrame asli) dan daftar
kolom numerik numeric_cols.
● Hasilnya adalah DataFrame baru (df_no_outliers) yang sudah tidak
mengandung outlier.

print("\nShape after outlier removal:", df_no_outliers.shape)


● Menampilkan ukuran (jumlah baris dan kolom) DataFrame setelah outlier
dihapus, agar kita tahu seberapa banyak data yang hilang akibat penghapusan
outlier.

54
Gambar 25: Visualisasi Data Setelah Penghapusan Outlier

11) Normalisasi Data


Normalisasi dalam konteks data science adalah proses untuk mengubah skala nilai pada
suatu kolom (atau fitur) menjadi rentang tertentu, biasanya [0,1][0, 1][0,1] atau [−1,1][-1,
1][−1,1]. Tujuan utama normalisasi adalah adalah agar setiap fitur memiliki skala yang
seragam sehingga tidak ada satu fitur yang mendominasi atau membuat bias dalam
proses analisis atau pemodelan. Selain itu, normalisasi juga bertujuan untuk:
a) Menghindari Dominasi Fitur Tertentu: Jika satu kolom memiliki rentang nilai
yang sangat besar (misalnya 0–10.000), sementara kolom lain hanya 0–10,
maka beberapa model pembelajaran mesin seperti k-nearest neighbors atau
neural network bisa menjadi bias terhadap kolom dengan rentang nilai yang
lebih besar.
b) Mempercepat Konvergensi Model: Dalam beberapa algoritma (misalnya
gradient descent pada neural network), normalisasi dapat membantu
perhitungan supaya pembelajaran mesin berjalan lebih stabil dan cepat
menemukan solusi optimal.
c) Mempermudah Interpretasi: Dengan rentang nilai yang seragam, kita lebih
mudah melakukan perbandingan antar-fitur.

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.

12) Visualisasi Data Yang Sudah “Bersih”

plt.figure(figsize=(8, 6)):
● Membuat figure baru dengan ukuran 8×6 inci, sehingga tampilan histogram
lebih jelas.

sns.histplot(...): Menggunakan Seaborn untuk membuat histogram kolom reading_col


pada DataFrame df_no_outliers_normalized.
● bins=20 artinya kita membagi data menjadi 20 interval pada sumbu x.
● kde=True akan menambahkan kernel density estimation di atas histogram,
membantu memvisualisasikan distribusi data.

57
● color='purple' mengatur warna histogram menjadi ungu.

plt.title(...):
● Memberi judul pada grafik yang dihasilkan

plt.xlabel(...) dan plt.ylabel(...):


● Mengatur label sumbu x dan y. Di sini, sumbu x menunjukkan nilai yang sudah
dinormalisasi, dan sumbu y menunjukkan frekuensi data.

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.

Tabel 3. Perbandingan Berbagai Teknik Visualisasi Data

Teknik Deskripsi Kapan Digunakan


Visualisasi Data

Histogram Menampilkan distribusi Digunakan untuk memeriksa sebaran


frekuensi dari data dan frekuensi data, seperti mendeteksi
numerik.

59
normalitas, skewness, atau distribusi
nilai.

Boxplot Menunjukkan ringkasan Cocok untuk memahami sebaran data


statistik data, termasuk dan mendeteksi nilai ekstrim (outlier)
median, kuartil, dan dalam data numerik.
outlier.

Scatter Plot Menggambarkan Digunakan untuk mengevaluasi korelasi


hubungan antara dua atau pola hubungan antara dua
variabel numerik. variabel, seperti hubungan antara
pendapatan dan pengeluaran.

Heatmap Menampilkan matriks Ideal untuk melihat hubungan antar


korelasi antar variabel banyak variabel sekaligus, misalnya
dalam bentuk visual. memeriksa korelasi antar variabel
dalam dataset numerik.

Bar Plot Menampilkan Digunakan untuk membandingkan nilai


perbandingan nilai atau agregat (misalnya rata-rata, jumlah)
frekuensi untuk data atau frekuensi antar kategori, seperti
kategorik. perbandingan penjualan per produk.

Contoh visualisasi berikut ini menggunakan dataset “tips” yang memiliki struktur kolom dan
sepuluh data pertama, sebagai berikut:

Kode program untuk menampilkan berbagai grafik untuk memvisualisasikan data


dari dataset “tips” dapat dilihat pada tautan:

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:

Gambar 27: Histogram Total Bill

61
Gambar 28: Boxplot Total Bill Dikelompokkan Berdasarkan Hari

Gambar 29: Scatter Plot (Grafik Sebaran) Total Bill vs Tip

62
Gambar 30: Heatmap Matriks Korelasi Antara Atribut Data

63
Gambar 31: Bar Plot (Grafik Batang) Rata-Rata Tip Dikelompokkan Berdasarkan Hari

B.2.4. Exploratory Data Analysis


Exploratory Data Analysis (EDA) adalah proses awal dalam analisis data yang bertujuan
untuk memahami karakteristik dataset secara menyeluruh. Dalam EDA, analis menguji
hipotesis awal, mengidentifikasi pola, mendeteksi anomali, dan memeriksa asumsi melalui
berbagai teknik statistik dan visualisasi. Dengan EDA, kita dapat mengungkap informasi
penting yang mungkin tersembunyi di balik data mentah sebelum melakukan pemodelan
lebih lanjut.

Beberapa tujuan utama dari EDA meliputi:

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.

c. Transformasi dan Enrichment Data


Transformasi dapat mencakup normalisasi, encoding variabel kategori, pembuatan fitur
baru, dan penggabungan dataset. Tahap ini penting untuk mempersiapkan data sebelum
dilakukan visualisasi.

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.

f. Analisis Korelasi dan Hubungan Antar Variabel


Mengukur hubungan linier antara variabel numerik, yang dapat divisualisasikan, salah
satunya, dalam bentuk heatmap yang menampilkan matriks korelasi.

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

Tabel 4. Penjelasan Masing-Masing Kolom Dalam Dataset Titanic

Kolom Tipe Data Deskripsi

survived int (0/1) Status selamat (0 = tidak selamat, 1 = selamat)

pclass int (1/2/3) Kelas kabin (1 = First, 2 = Second, 3 = Third)

66
class category Sama dengan pclass dalam bentuk teks (“First”,
(str) “Second”, “Third”)

sex category Jenis kelamin penumpang (“male”/“female”)


(str)

age float Usia penumpang (dalam tahun); ada nilai NaN (jika usia
tidak tercatat)

sibsp int Jumlah saudara kandung/istri-suami yang ikut dalam


kapal

parch int Jumlah orang tua/anak yang ikut

fare float Tarif (biaya) tiket yang dibayar penumpang

embarked category Pelabuhan naik (C = Cherbourg, Q = Queenstown, S =


(str) Southampton)

embark_to category Nama lengkap kota pelabuhan naik


wn (str)

deck category Kode dek kabin (A–G); NaN jika tidak tercatat
(str)

who category Klasifikasi “who” berdasarkan usia & jenis kelamin


(str) (“man”, “woman”, “child”)

adult_male bool Penanda apakah penumpang adalah pria dewasa


(True/False)

alive category Sama dengan survived, tapi dalam teks (“yes”/“no”)


(str)

alone bool True jika penumpang tidak punya keluarga (sibsp+parch


= 0), False jika ikut bersama keluarga

67
b. Statistik Deskriptif Untuk Kolom Dengan Tipe Numerik

Contoh interpretasi:

1) Kolom survived (Status Kelangsungan Hidup: 0 = Tidak Selamat, 1 = Selamat)


● Rata-rata (mean) = 0.384 menunjukkan bahwa sekitar 38.4% penumpang selamat.
● Standar deviasi (std) = 0.486 cukup tinggi, yang berarti ada variasi signifikan antara
penumpang yang selamat dan yang tidak.
● Min = 0, Max = 1 menegaskan bahwa ini adalah variabel biner.
● Kuartil:
○ 25% penumpang tidak selamat.
○ 50% (median) juga tidak selamat.
○ 75% dari penumpang termasuk kategori 0, sehingga menunjukkan bahwa
sebagian besar penumpang tidak selamat.

Kesimpulan: Sebagian besar penumpang tidak selamat, tetapi hampir 40% berhasil
bertahan.

2) Kolom pclass (Kelas Tiket: 1 = First, 2 = Second, 3 = Third)


● Rata-rata = 2.308 menunjukkan bahwa mayoritas penumpang berada di kelas 3.
● Standar deviasi = 0.836 cukup besar, menunjukkan adanya distribusi kelas tiket
yang beragam.
● Min = 1, Max = 3 menegaskan bahwa hanya ada tiga kategori kelas tiket.
● Kuartil:
○ 25% penumpang berada di kelas 2 atau lebih tinggi.
○ 50% (median) berada di kelas 3.
○ 75% juga berada di kelas 3.

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.

c. Data Yang Hilang (Missing Data)

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.

Gambar 33. Grafik Batang yang Menunjukkan Jumlah Penumpang Titanic


Berdasarkan Jenis Kelamin

a. Jumlah Penumpang Pria Lebih Banyak dari Wanita


○ Dari grafik, terlihat bahwa jumlah penumpang laki-laki (male) jauh lebih
banyak dibandingkan penumpang perempuan (female).
○ Ini menunjukkan bahwa mayoritas penumpang Titanic adalah pria.

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

e. Distribusi Status Keselamatan Penumpang

Gambar 34. Grafik Batang Distribusi Keselamatan Penumpang

Grafik batang ini menunjukkan jumlah penumpang Titanic berdasarkan status


keselamatan mereka:
● 0 (Tidak Selamat)
● 1 (Selamat)

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.

2) Persentase Keselamatan Relatif Rendah

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.

f. Distribusi Umur Penumpang

Gambar 35. Histogram Distribusi Umur Penumpang

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

g. Distribusi Umur Berdasarkan Kelas Penumpang

Gambar 36. Distribusi Umur Berdasarkan Kelas Penumpang


Grafik ini adalah boxplot yang menunjukkan distribusi umur penumpang Titanic
berdasarkan kelas tiketnya (1, 2, dan 3).
1) Kelas 1 (First Class)
a) Median usia sekitar 38 tahun, menunjukkan bahwa sebagian besar
penumpang di kelas ini adalah orang dewasa.
b) Rentang interkuartil (IQR) sekitar 25-50 tahun, dengan beberapa
penumpang yang berusia lebih tua yang mencapai 80 tahun.
c) Terdapat outlier di bawah usia 10 tahun, yang menunjukkan adanya anak-
anak dengan jumlah sedikit.

2) Kelas 2 (Second Class)


a) Median usia sekitar 30 tahun, sedikit lebih muda dibandingkan kelas 1.
b) Rentang interkuartil sekitar 20-40 tahun.

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.

3) Kelas 3 (Third Class)


a) Median usia yang berada di sekitar 24 tahun, menunjukkan bahwa
penumpang di kelas ini lebih muda secara umum.
b) Rentang interkuartil berada di sekitar 18-30 tahun, dengan banyak
penumpang yang masih muda dan remaja.
c) Banyak outlier usia lanjut (>50 tahun), tetapi jumlahnya lebih sedikit
dibandingkan kelas 1 dan 2.
d) Terdapat lebih banyak bayi jika dibandingkan dengan kelas lain, terlihat
dari adanya nilai minimum mendekati yang 0 tahun.

4) Semakin tinggi kelas tiket, semakin tua median usia penumpang.


a) Kelas 1 memiliki lebih banyak penumpang dewasa dan lansia.
b) Kelas 3 lebih didominasi penumpang muda dan keluarga dengan anak-
anak.

5) Ada lebih banyak anak-anak di kelas 2 dan 3 dibandingkan kelas 1.


a) Hal ini mungkin terjadi karena keluarga dengan anak-anak lebih cenderung
memilih tiket dengan harga lebih terjangkau.

6) Outlier di kelas 3 menunjukkan beberapa penumpang lanjut usia, meskipun


jumlahnya kecil. Lansia di kelas 3 mungkin memiliki peluang keselamatan yang
lebih kecil dibandingkan di kelas 1.

74
j. Heatmap Matriks Korelasi Antar Atribut Data

Gambar 37. Heatmap Matriks Korelasi (Keterkaitan 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:

1) Survival vs Pclass (-0.34)


a) Korelasi negatif menunjukkan bahwa semakin rendah kelas tiket (Pclass = 1 lebih
tinggi dari 3), semakin besar peluang selamat.
b) Penumpang kelas 1 lebih cenderung selamat dibandingkan kelas 3.
2) Survival vs Fare (0.26)
a) Korelasi positif berarti semakin mahal harga tiket (Fare), semakin tinggi
kemungkinan selamat.
b) Hal ini menguatkan interpretasi yang menyimpulkan bahwa penumpang kelas 1
memiliki peluang lebih besar untuk selamat.

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.

2) Distribusi Tarif (Fare)


● Mayoritas penumpang membayar tarif kurang dari 100, meskipun ada
beberapa yang membayar hingga lebih dari 500.

76
● Penumpang yang selamat (oranye) cenderung berasal dari kategori tarif
yang lebih tinggi, menunjukkan bahwa penumpang kelas ekonomi lebih
sulit bertahan hidup.

3) Distribusi Kelas (Pclass)


● Mayoritas penumpang berasal dari kelas 3, dengan jumlah yang lebih
sedikit di kelas 1 dan 2.
● Penumpang kelas 1 lebih mungkin selamat, seperti yang terlihat dari
jumlah titik oranye lebih tinggi di kelas 1 dibandingkan kelas 3.
● Sebagian besar korban berasal dari kelas 3, menunjukkan bahwa kelas
sosial sangat mempengaruhi keselamatan.

4) Hubungan Antar Variabel


● Korelasi Age vs. Fare: Tidak ada hubungan yang jelas, karena distribusinya
cukup tersebar.
● Korelasi Pclass vs. Fare: Terlihat jelas bahwa kelas 1 memiliki tarif lebih
tinggi dibandingkan kelas 3.
● Korelasi Age vs. Pclass: Tidak ada pola spesifik, usia penumpang cukup
merata di semua kelas.

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.

B.2.5. Membuat Data Training dan Testing


Training set digunakan untuk melatih model agar dapat mempelajari pola dari data.
Testing set digunakan untuk mengevaluasi model dengan data yang belum pernah dilihat
oleh model sebelumnya, sehingga kita bisa menilai performa model secara objektif dan
mendeteksi masalah seperti overfitting. Contoh kode program dalam bahasa python berikut
ini digunakan membagi dataset menjadi training set dan testing set.

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.

X_train, X_test, y_train, y_test = ...


● Baris ini mengambil hasil dari train_test_split dan menyimpannya dalam empat
variabel:
○ X_train: Data fitur yang digunakan untuk melatih (train) model.
○ X_test: Data fitur yang digunakan untuk menguji (test) model.
○ y_train: Data label yang digunakan untuk melatih model (pasangan dari
X_train).
○ y_test: Data label yang digunakan untuk menguji model (pasangan dari
X_test).

print("Jumlah data training:", len(X_train))


● Mencetak banyak baris data yang masuk ke training set. Fungsi len() akan
menghitung panjang (banyak baris) dari X_train.

print("Jumlah data testing:", len(X_test))


● Mencetak banyak baris data yang masuk ke testing set. Fungsi len() di sini
menghitung banyak baris di X_test.

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:

1) Regresi Linear (Contoh: Prediksi Diabetes)


Regresi linier adalah metode statistik yang digunakan untuk mencari hubungan linear
antara satu variabel independen (fitur) dengan variabel dependen (target). Dalam
data science, regresi linier merupakan teknik dasar yang sering digunakan untuk
memprediksi nilai-nilai berdasarkan data yang sudah ada

79
Gambar 35. Regresi Linier.
Sumber: https://www.grammarly.com/blog/ai/what-is-linear-regression/

Contoh prediksi disease progression pada penderita diabetes berdasarkan BMI


menggunakan regresi linear dapat dilihat pada tautan:
https://colab.research.google.com/drive/1V9ZzDDNcsGprbLsGGGua3GnCmK6
Pm-r1?usp=sharing

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.

Gambar 40. Hubungan Antara BMI dan Diabetes Progression

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.

2) Klasifikasi dengan Regresi Logistik (Klasifikasi Data Cancer)

Regresi logistik adalah teknik statistik yang digunakan untuk memprediksi


probabilitas kejadian kategori tertentu (misalnya sukses/gagal) dengan mengubah
output model melalui fungsi logistik sehingga menghasilkan nilai antara 0 dan 1,
berbeda dengan regresi linier yang memprediksi nilai kontinu berdasarkan hubungan
linear antar variabel. Regresi linier cocok digunakan untuk masalah prediksi angka
(numerik) dengan asumsi hubungan yang bersifat linear, regresi logistik lebih tepat
untuk klasifikasi karena mengakomodasi output berupa peluang dengan batasan nilai
antara 0 dan 1.

81
Gambar 41: Regresi Logistik. Sumber:
https://www.machinelearningplus.com/machine-learning/logistic-regression-
tutorial-examples-r/

Contoh klasifikasi kanker payudara dengan logistic regression dapat dilihat


pada tautan: https://colab.research.google.com/drive/1pk7vycijnjHCn6M5K-
rXGh6Do5v0_MGZ?usp=sharing

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

3) KMeans Clustering (Klasterisasi Data Wine)


K-means clustering adalah algoritma unsupervised learning yang mengelompokkan
data ke dalam sejumlah k klaster berdasarkan kesamaan fitur, dengan cara
menginisiasi sebanyak k titik pusat (centroid) secara acak, kemudian menetapkan
setiap data ke klaster dengan centroid terdekat, dan akhirnya memperbarui posisi
centroid berdasarkan rata-rata data dalam klaster tersebut hingga tercapai kondisi
konvergen.

83
Gambar 37. K-Means Clustering. Sumber: https://scikit-
learn.org/stable/auto_examples/cluster/plot_kmeans_digits.html

Contoh klasterisasi wine cultivar menggunakan algoritma KMeans dapat


dilihat pada
tautan:https://colab.research.google.com/drive/1ATmIdTpshocnxqfqZ9wC3
QMW6vdREHcH?usp=sharing

kmeans = KMeans(n_clusters=3, random_state=42)


● Baris ini membuat objek KMeans dengan jumlah klaster yang ditentukan
(n_clusters=3). Artinya, data akan dikelompokkan menjadi 3 klaster.
● Parameter random_state=42 digunakan untuk mengatur seed pengacakan,
sehingga hasil klusterisasi bisa direproduksi (menghasilkan nilai acak yang
sama setiap kali kode dijalankan).

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

Gambar 45. Logo TensorFlow. Sumber: Wikipedia

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.

Contoh berikut membuat model neural network sederhana untuk mengklasifikasikan


dataset MNIST. Basis data MNIST (Modified National Institute of Standards and
Technology database) adalah basis data besar digit tulisan tangan yang umumnya
digunakan untuk melatih berbagai sistem pemrosesan gambar (Wikipedia).

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

Pada contoh di atas, TensorFlow dengan API Keras dimanfaatkan untuk:


● Memuat dan menyiapkan data MNIST: Data dinormalisasi untuk mempercepat proses
pelatihan.
● Membangun model neural network: Model terdiri dari lapisan Flatten, Dense, dan
Dropout untuk mencegah overfitting.
● Melatih dan mengevaluasi model: Model dilatih dengan 5 epoch dan akurasinya diukur
menggunakan data testing.

Gambar 47: Melatih Model Neural Network

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.

Gambar 48: Evaluasi Akurasi Setelah 8 Epoch

Gambar 49. Contoh Hasil Prediksi Digit (angka 0)

88
2) Scikit-learn

Gambar 50. Logo Sci-kit Learn. Sumber: Wikipedia

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:

● Antarmuka yang Konsisten: Hampir semua fungsi dalam scikit-learn mengikuti


pola “fit/predict”, sehingga mudah dipahami dan digunakan.
● Integrasi dengan Ekosistem Python: scikit-learn dibangun di atas NumPy, SciPy,
dan matplotlib, sehingga cocok untuk analisis data secara menyeluruh.
● Dokumentasi yang Cukup Lengkap dan Komunitas yang Besar: Banyak tutorial,
contoh, dan dukungan komunitas yang memudahkan pembelajaran dan
penerapan library scikit-learn.

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

Contoh lainnya adalah menggunakan scikit-learn untuk melakukan klasifikasi pada


dataset Iris yang terkenal menggunakan Support Vector Machine (SVM).
Kode program yang lengkap dapat dilihat melalui:
https://colab.research.google.com/drive/1SM7LTKJ8KPr1ziwyquQzBB3jdUwNpC6
2?usp=sharing

Dalam contoh klasifikasi data menggunakan scikit-learn di atas, langkah-langkah yang


dilakukan antara lain:

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

● Akurasi keseluruhan (accuracy = 0.98)


Model benar mengklasifikasikan 98 % (44 dari 45) sampel data uji
● Per‐kelas
○ Kelas 0 (bunga iris setosa):
■ Precision = 1.00 → Semua prediksi “setosa” benar (0 false
positive).
■ Recall = 1.00 → Semua sampel setosa berhasil ditemukan (0 false
negative).

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

Sebaliknya, model pernah menebak “virginica” untuk sampel versicolor, sehingga


precision virginica menjadi 0.93.

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

a) Mengimpor library yang dibutuhkan

b) Membuat Fungsi Untuk Memuat Model:

○ Fungsi load_model() memuat model MobileNetV2 yang sudah dilatih pada


dataset ImageNet. Model ini siap digunakan untuk mengenali ribuan objek.

94
c) Preprocessing Gambar:

○ Fungsi preprocess_image() mengubah ukuran gambar ke 224x224 piksel,


mengonversinya ke array NumPy, dan melakukan preprocessing sesuai dengan
yang dibutuhkan oleh MobileNetV2.

○ Jika gambar memiliki channel alpha (RGBA), channel keempat dihapus agar
hanya tersisa 3 channel (RGB).

d) Menggunakan Model dan Unggah Gambar:

○ Menggunakan files.upload() dari library google.colab, pengguna dapat


mengunggah satu atau lebih file gambar.

○ Setelah diunggah, setiap gambar akan dibaca dan ditampilkan menggunakan


Matplotlib.

95
e) Prediksi dan Output:

○ Model melakukan prediksi pada gambar yang telah diproses.

○ Fungsi decode_predictions() mengembalikan label dan probabilitas untuk tiga


prediksi teratas.

○ Hasil prediksi ditampilkan di konsol, menunjukkan label objek dan


probabilitasnya.

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.

1) Evaluasi Model Regresi


Regresi linier adalah “garis terbaik” yang memodelkan hubungan lurus antara dua
variabel. Nilai koefisien regresi yang optimal adalah yang menghasilkan error minimal.
Jenis error pada regresi linier misalnya:

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

Tabel 4. Confusion Matrix

Prediksi Positif Prediksi Negatif

Aktual Positif TP FN

Aktual Negatif FP TN

Implementasi confusion matrix untuk mengevaluasi model klasifikasi


dapat dilihat pada tautan
https://colab.research.google.com/drive/1SM7LTKJ8KPr1ziwyquQzBB3j
dUwNpC62?usp=sharing

Untuk meningkatkan kinerja model klasifikasi yang menunjukkan matriks kebingungan


(confusion matrix) dengan banyak salah prediksi, dapat diawali dengan memeriksa
keseimbangan data, karena jumlah contoh tiap kelas yang timpang sering
menyebabkan model untuk “berpihak” pada kelas mayoritas. Selanjutnya, dapat
dilakukan pemilihan dan rekayasa fitur dengan menghilangkan variabel yang tidak
relevan dan melakukan normalisasi skala.

3) Evaluasi Model Klasterisasi


Dalam analisis clustering, tiap titik data dikelompokkan tanpa penanda kelas bawaan,
sehingga kualitas hasilnya dinilai dari dua sudut. Pertama, evaluasi internal untuk
menelaah “kerapatan” dan “jarak” antar-gugus. Sebuah klaster dikatakan baik
apabila anggotanya saling berdekatan, ibarat sekumpulan buku bertema sama disusun
rapat di rak yang sama, sedangkan klaster yang terpisah baiknya berjauhan dari klaster
lain, layaknya rak‐rak berbeda di perpustakaan. Ukuran formal-nya melibatkan
perbandingan rata-rata jarak antar-anggota dalam klaster (intra-cluster) dengan rata-
rata jarak ke klaster terdekat (inter-cluster); semakin kecil jarak internal dan semakin
besar jarak eksternal, maka semakin “bersih” pengelompokannya.

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.

Gambar 56. Metode Siku. Sumber: https://medium.com/@zalarushirajsinh07/the-


elbow-method-finding-the-optimal-number-of-clusters-d297f5aeb189

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.

4) Evaluasi Lainnya: Accuracy, Recall, Precision, dan F1 Score


a. Accuracy
Akurasi (accuracy) adalah proporsi klasifikasi yang benar, baik positif maupun
negatif. Model yang sempurna memiliki tingkat akurasi 100% dengan nol kesalahan.
Namun, pada dataset yang tidak seimbang, tingkat akurasi bisa menyesatkan jika
terdapat satu kelas yang mendominasi.

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:

1. Menulis Skrip Sederhana dengan Sintaks Dasar KA


Pada bagian ini,, Anda akan membangun dasar pemahaman logika pemrograman KA
dengan membuat skrip sederhana. Tugas ini bertujuan melatih Anda dalam menggunakan
struktur dasar seperti percabangan, perulangan, dan fungsi untuk menciptakan sebuah
program yang merespons input pengguna.

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.

2. Membangun Model Sederhana Menggunakan Library KA


Pada bagian ini, Anda akan mengembangkan sebuah model pembelajaran mesin
sederhana dengan menggunakan pustaka KA populer. Fokus utama adalah pada
pemrosesan dataset dan membangun model klasifikasi atau klasterisasi sesuai dengan
bidang keahlian di SMA/SMK (misal: guru SMK kelompok pariwisata dapat menggunakan
dataset jumlah pengunjung suatu tempat wisata pada tahun tertentu, guru SMK kelompok
otomotif dapat menggunakan dataset penjualan mobil listrik pada kurun waktu tertentu,
dan lain-lain)..

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.

3. Evaluasi dan Penyempurnaan Kode


Pada bagian ini berfokus pada kemampuan Anda dalam mengevaluasi dan meningkatkan
performa model KA yang telah dibuat. Anda akan menggunakan tools evaluasi yang
sesuai dan menyempurnakan kode untuk memperoleh hasil yang lebih optimal.

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.

D. Format Laporan Hasil

Komponen Keterangan

Judul Proyek (Sesuai tema bidang keahlian)

Bahasa & Library (Contoh: Python + Scikit-learn)

Sumber Dataset (Contoh: Kaggle – Iris Dataset)

Jumlah Data & Fitur (Contoh: 150 data, 4 fitur)

104
Deskripsi Dataset (Gambaran umum isi dan tujuan dataset)

Alur Kerja (Diagram alur proses dan tahapan kerja model)

Potongan Kode (Kode penting yang menjelaskan logika/model)

Tools Evaluasi (Jenis evaluasi dan alasan pemilihannya)

Hasil Evaluasi (Tabel, grafik, metrik kinerja model)

Perbaikan Model (Penyesuaian parameter dan dampaknya)

Refleksi (Apa yang dipelajari, kendala, solusi, dan rencana


lanjutan)

E. Kriteria Penilaian

Kriteria Sangat Baik Baik (3) Cukup (2) Perlu


(4) Perbaikan (1)

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.

C.1. Konsep Dasar, Arsitektur, dan Cara Kerja Large Language


Model

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.

Penjelasan visual tentang LLM dapat disimak dalam tautan video


https://www.youtube.com/watch?v=LPZh9BOjkQs

Sejarah LLM dapat ditelusuri kembali ke perkembangan model-model neural network


yang menerapkan arsitektur Recurrent Neural Networks (RNN) dan Long Short-Term Memory
(LSTM). Namun, terobosan besar terjadi dengan diperkenalkannya arsitektur Transformer dalam
makalah “Attention is All You Need” oleh Vaswani et al. (2017). Arsitektur Transformer
mengubah paradigma pemrosesan sekuensial dengan mengandalkan mekanisme atensi
(attention mechanism, semacam operasi matematika yang melibatkan matriks dengan dimensi
banyak—Gambar 57) yang memungkinkan model untuk mempelajari hubungan antar kata dalam

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.

Gambar 57. Multi-head Attention. Sumber: https://paperswithcode.com/method/multi-head-attention

Cara kerja mekanisme atensi (attention mechanism) dapat dilihat pada tautan video
https://www.youtube.com/watch?v=eMlx5fFNoYc

1. Natural Language Processing

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

● Embedding: Mengonversi token-token tersebut menjadi bentuk vektor atau


matriks yang memuat informasi semantik.

Gambar 59. Tokenisasi. Sumber: https://airbyte.com/data-engineering-


resources/tokenization-vs-embeddings

● Pemahaman Konteks: Menggunakan konteks dari kata-kata sekitarnya untuk


menginterpretasikan makna teks secara lebih mendalam.

2. Arsitektur Internal Large Language Model

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.

Arsitektur Transformer mampu merevolusi dunia NLP dengan menghilangkan kebutuhan


untuk pemrosesan yang bersifat sekuensial yang tradisional Dan menggantikannya
dengan mekanisme atensi untuk menghubungkan setiap token dengan semua token
lainnya dalam inputan, yang memungkinkan terjadinya pemrosesan yang bersifat paralel
sehingga tingkat efisiensi menjadi lebih tinggi. Model GPT (Generative Pre-trained
Transformer), juga menggunakan pendekatan autoregressive, di mana model melakukan
prediksi secara bertahap untuk menghasilkan kata berikutnya berdasarkan konteks yang
dipahami sebelumnya. Pendekatan ini memungkinkan model GPT untuk menghasilkan
teks yang panjang dan koheren, meskipun masih terdapat tantangan dalam menjaga
konsistensi konteks dalam berbagai teks yang sangat panjang.

3. Cara Kerja LLM: Training dan Inference

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.

4. Isu Etika dan Keamanan

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

Sam Altman, CEO OpenAI (perusahaan yang


mengembangkan ChatGPT), baru-baru ini
memperkenalkan kemampuan baru yang dimiliki oleh
ChatGPT sebagai KA generatif, yaitu mengubah
gambar atau foto menjadi suatu gambar yang
memiliki gaya yang sangat mirip dengan gambar
yang dihasilkan oleh Studio Ghibli. Hampir seketika,
kemampuan baru ChatGPT ini menjadi viral. Sam
Altman melaporkan bahwa sumber daya komputasi
yang mereka miliki mengalami overheat, karena
saking banyaknya pengguna yang memanfaatkan
kemampuan baru tersebut.
Viralnya “Ghiblifikasi” tersebut memicu perdebatan
tentang etika penggunaan KA generatif.

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)

C.2. Peran Large Language Model dalam Kecerdasan Artifisial


Generatif dan Aplikasinya
1) LLM sebagai Inti dari KA Generatif

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

2) Aplikasi LLM dalam Industri

1) Chatbot dan Asisten Virtual


Salah satu aplikasi yang paling populer dari LLM adalah pembuatan chatbot dan asisten
virtual. Dengan memanfaatkan LLM, chatbot dapat memberikan respons yang lebih
natural dan kontekstual kepada penggunanya. Misalnya, dalam layanan pelanggan,

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.

2) Penulisan dan Pembuatan Konten


Di dunia media dan pemasaran, LLM telah digunakan untuk menghasilkan artikel, blog,
desain visual, ilustrasi, dan materi pemasaran dengan cepat. Berbagai perusahaan
menggunakan perangkat KA berbasis LLM untuk mengotomatiskan proses penulisan,
sehingga memungkinkan dilakukannya produksi konten dalam berbagai bentuk dalam
jumlah besar tanpa mengorbankan kualitas. Selain itu, LLM juga mampu menghasilkan
konten kreatif seperti cerita fiksi, puisi, bahkan skrip film, yang membuka peluang baru
dalam industri hiburan dan kreatif.

3) Penerjemahan Bahasa dan Pembuatan Ringkasan (Summarization)


LLM juga memainkan peran penting dalam penerjemahan bahasa dan pembuatan
ringkasan (summarization). Dengan kemampuannya memahami konteks kalimat secara
mendalam, model-model bahasa besar seperti BERT dan T5 mampu menerjemahkan teks
dari satu bahasa ke bahasa lain dengan tingkat akurasi yang sangat tinggi. Selain itu,
kemampuan LLM dalam membuat ringkasan dari suatu dokumen, baik dokumen yang
ditulis dengan bahasa formal maupun non-formal, membuat LLM menjadi sangat berguna
dan berperan dalam bidang riset dan pendidikan (Devlin, 2018).

4) Aplikasi dalam Pendidikan dan Riset


Dalam bidang pendidikan, LLM telah digunakan dengan cukup masif sebagai alat bantu
dalam pembelajaran, isalnya, menjawab pertanyaan peserta didik, memberikan
penjelasan mengenai konsep-konsep yang sulit dimengerti dengan bahasa yang lebih
mudah dipahami, dan bahkan membantu dalam review penulisan esai. Sedangkan di
ranah riset, LLM dapat membantu para peneliti untuk memproses informasi dari berbagai
literatur yang berjumlah besar, sehingga mempercepat proses penelitian dan analisis
data. Hal ini membuka peluang bagi adanya inovasi dan kolaborasi antar disiplin ilmu.

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:

● Kemudahan Implementasi: Pengembang tidak perlu membangun dan melatih


model dari awal, cukup dengan menggunakan API yang telah disediakan.
● Skalabilitas: API sering kali dioptimalkan untuk menangani permintaan dalam
skala besar sehingga cocok untuk aplikasi komersial.
● Keamanan dan Pemeliharaan: Pengelolaan model serta infrastruktur backend
dilakukan oleh penyedia API, sehingga pengembang dapat fokus pada
pengembangan aplikasi.

Contoh implementasi API dapat ditemukan pada OpenAI GPT, yang memungkinkan
integrasi dengan berbagai bahasa pemrograman seperti Python, JavaScript, dan
lainnya (OpenAI, 2020).

2) Integrasi dengan Pipeline Machine Learning

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.

Pipeline semacam ini umumnya dibangun dengan menggunakan framework


pembelajaran mesin populer seperti TensorFlow atau PyTorch, yang telah terintegrasi
dengan modul-modul NLP modern. Selain itu, pustaka seperti Hugging Face’s

115
Transformers juga menyediakan antarmuka yang memudahkan integrasi berbagai
LLM ke dalam pipeline aplikasi (HuggingFace, 2021).

3) Integrasi di Berbagai Bahasa Pemrograman

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:

● Menggunakan pustaka Transformers: Dengan menuliskan beberapa baris kode,


pengembang dapat memuat model LLM pra-latih dan menggunakannya untuk
berbagai kebutuhan.
● Pipeline Modifikasi: Pengembang dapat membuat pipeline khusus untuk
melakukan preprocessing, inference, dan post processing sesuai dengan
kebutuhan aplikasi.
● Integrasi dengan Web Framework: Python juga mendukung integrasi dengan
framework web seperti Flask atau Django untuk membangun aplikasi berbasis
LLM secara real-time.

Gambar 60. Potongan Kode Program Bahasa Python Untuk Terhubung


Dengan Model LLM GPT-4o

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.

c) Bahasa Lain dan Cross-Platform

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.

4) Tools dan Library Pendukung

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:

● Hugging Face Transformers: Library open source yang menyediakan antarmuka


untuk berbagai model LLM seperti BERT, GPT, T5, dan lain-lain. Library ini cukup
populer karena kemudahan dalam penggunaannya dan adanya dukungan dari
berbagai komunitas yang aktif.
● TensorFlow dan PyTorch: Dua framework machine learning terkemuka yang dapat
pula digunakan untuk training dan deployment model-model deep learning,
termasuk LLM.
● FastAPI dan Flask: Framework untuk membangun aplikasi web berbasis Python
yang dapat mengintegrasikan model LLM secara real-time.
● SDK dari Penyedia API: Banyak sekali penyedia LLM yang menyediakan Software
Development Kit (SDK) yang memudahkan integrasi LLM dengan berbagai aplikasi
KA, misalnya OpenAI API SDK.

5) Tantangan dan Best Practices dalam Integrasi

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.

Best practices yang dianjurkan mencakup:


● Melakukan pengujian menyeluruh (unit testing dan integration testing) pada
setiap tahap pipeline.
● Mengimplementasikan fallback system apabila LLM gagal memberikan respons
yang memadai.
● Mengedepankan prinsip-prinsip etis dalam penggunaan data dan penyajian
output, termasuk transparansi terkait batasan model.

Aktivitas 3: Mengintegrasikan LLM ke aplikasi KA menggunakan


Hugging Face API (Pirate Chatbot)

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.

1) Mengunjungi situs web Hugging Face melalui https://huggingface.co/ .


2) Membuat akun melalui menu “Sign Up”.

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

6) Setelah model yang diinginkan dipilih, langkah berikutnya adalah mencatat


jalur/path modelnya. Dalam kasus ini, path untuk LLaMA 3 adalah meta-
llama/Llama-3.2-3B-Instruct.
7) Interaksi dengan model LLM Llama-3.2-3B-Instruct melalui API Hugging Face
dapat dilakukan menggunakan aplikasi sederhana dalam bahasa Python.
Berikut adalah kode yang menunjukkan cara mengirim kueri ke model dan
menerima respons, dikemas dalam gaya bahasa bajak laut.

120
8) Untuk menjalankan aplikasi, perlu dilakukan Instalasi torch, transformers, dan
accelerate. Instalasi dalam dilakukan dengan menggunakan pip.

9) Login ke hugging face dengan menggunakan token yang sebelumnya telah


didapatkan, dengan cara menyalin token dan menempelkannya di terminal
setelah mengetikkan perintah berikut:

10) Tempelkan token ketika diminta (bisa dengan klik kanan, setelah token disalin)

11) Jalankan kode program dengan perintah:

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

18) Contoh kode program lengkap dapat diakses melalui


https://github.com/listyantidewi1/pirate-chatbot

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

1. Integrasi Penggabungan 30 - Sangat Baik (26-30): Implementasi


Aplikasi KA aplikasi KA dengan berhasil mengintegrasikan API dengan baik,
dengan LLM model bahasa besar komunikasi antara aplikasi KA dan LLM
melalui Hugging berjalan dengan lancar, tanpa error, dan
Face API (contoh: telah diuji secara menyeluruh.
Pirate Chatbot) - Baik (21-25): Integrasi berjalan dengan
sesuai langkah 1-14. baik tetapi terdapat kekurangan minor
(misalnya, error handling kurang sempurna
atau dokumentasi minim).
- Cukup (16-20): Integrasi dapat dijalankan,
namun terdapat error atau ketidaksesuaian
fungsi tertentu yang masih perlu diperbaiki.
- Kurang (0-15): Integrasi tidak berjalan
dengan semestinya, error yang sering terjadi,
atau tidak sesuai dengan langkah-langkah
kerja yang diberikan.

2. Penggunaan Program mampu 20 - Sangat Baik (17-20): Sistem input/output


Input/Output menerima input berjalan mulus, memungkinkan pengguna
Secara Kontinyu pengguna secara untuk memasukkan prompt secara kontinyu
terus-menerus dan mendapatkan respons tanpa perlu
melalui restart aplikasi.
terminal/console - Baik (13-16): Fungsi input/output berjalan
dan menampilkan dengan baik, namun mungkin terdapat delay
output yang atau ketidaksempurnaan kecil dalam
dihasilkan LLM interaksi.
secara real-time. - Cukup (9-12): Terdapat mekanisme
input/output, tetapi pengguna harus
melakukan beberapa langkah tambahan atau
mengalami interupsi saat menerima respons.
- Kurang (0-8): Input/output tidak berjalan
secara kontinyu atau sering terjadi kegagalan
dalam menampilkan respons.

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.

4. Penanganan Program menangani 10 - Sangat Baik (9-10): Terdapat validasi input


Error dan Validasi kemungkinan error dan error handling yang komprehensif,
Input secara efektif sehingga program stabil meskipun terjadi
(misalnya, koneksi kesalahan.
API gagal, input - Baik (7-8): Sudah ada penanganan error,
tidak valid) sehingga meskipun ada beberapa skenario yang belum
tidak terjadi crash tertangani secara optimal.
secara tiba-tiba. - Cukup (5-6): Beberapa error sudah
ditangani, namun masih terdapat celah yang
menyebabkan program rawan crash pada
kondisi tertentu.
- Kurang (0-4): Minim atau tidak ada
penanganan error, sehingga program mudah
crash.

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

Transparansi dan Akuntabilitas:


● Bagaimana Anda dapat memastikan bahwa penggunaan LLM dapat
dipertanggungjawabkan, baik dalam hal proses pembuatan keputusan maupun dalam
penyajian informasi yang dihasilkan?
● Apa peran transparansi dalam penggunaan LLM dan bagaimana Anda mengomunikasikan
keterbatasan serta potensi bias dari model tersebut kepada pengguna?

Bias dan Keadilan:


● Apa saja bentuk bias yang mungkin muncul pada output LLM, dan bagaimana bias
tersebut dapat mempengaruhi keputusan atau opini pengguna?
● Bagaimana Anda mengevaluasi dan memitigasi bias yang ada dalam model untuk
menjamin keadilan dan inclusiveness dalam penggunaannya?

Dampak Sosial dan Disinformasi:


● Bagaimana penggunaan LLM dapat berdampak pada persepsi masyarakat terhadap
kebenaran dan fakta, terutama jika informasi yang dihasilkan tidak diverifikasi secara
menyeluruh?
● Dalam konteks pencegahan disinformasi, langkah-langkah apa yang dapat Anda ambil
untuk memastikan bahwa output LLM tidak menimbulkan dampak negatif bagi
masyarakat?

Privasi dan Keamanan Data:


● Mengingat LLM sering digunakan dengan data besar, bagaimana Anda memastikan
bahwa privasi pengguna tetap terlindungi dan data sensitif tidak terekspos atau
disalahgunakan?
● Apa saja kebijakan atau praktik terbaik yang dapat diadopsi untuk menjaga keamanan
data dalam penggunaan LLM?

Pertimbangan Hukum dan Etika Profesional:


● Bagaimana Anda menyeimbangkan antara inovasi dan penerapan LLM dengan kepatuhan
pada aturan hukum serta norma etika yang berlaku?
● Apa peran etika profesional dalam memandu penggunaan LLM, dan bagaimana Anda
menegakkan nilai-nilai tersebut dalam setiap tahap pengembangan dan penerapan?

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

Accuracy Metrik evaluasi yang mengukur persentase prediksi yang benar


dari total prediksi yang dihasilkan model.

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.

Bias Kecenderungan sistem atau model untuk menghasilkan output


yang tidak seimbang atau condong ke satu sudut pandang,
misalnya berdasarkan gender atau etnis, yang bisa muncul karena
data latih yang tidak representatif.

Computer Vision Bidang dari kecerdasan artifisial yang berkaitan dengan cara
komputer menafsirkan dan memahami informasi visual dari dunia
nyata, seperti gambar dan video.

Confusion Matrix Matriks yang menampilkan perbandingan antara nilai sebenarnya


dan nilai yang diprediksi dalam suatu model klasifikasi, yang
membantu mengukur kinerja model melalui metrik seperti
accuracy, recall, precision, dan F1 score.

Data Cleaning Proses mengidentifikasi dan memperbaiki atau menghapus data


yang tidak valid, duplikat, atau hilang untuk memastikan kualitas
data yang akan digunakan dalam model.

132
DataFrame Struktur data utama dalam Pandas yang menyimpan data dalam
format tabel (baris dan kolom), memudahkan manipulasi, analisis,
dan visualisasi data.

Data Preparation & Rangkaian langkah yang dilakukan untuk membersihkan,


Pre-Processing mengubah, dan menyiapkan data mentah agar siap digunakan
dalam pelatihan model machine learning, termasuk pembersihan
data, transformasi, dan normalisasi.

Deep Learning Subbidang dari machine learning yang menggunakan jaringan


saraf tiruan berlapis untuk mempelajari representasi data yang
kompleks, yang menjadi dasar model-model besar seperti GPT
dan DALL-E.

Dictionary Struktur data Python yang menyimpan pasangan key-value,


memungkinkan akses data yang cepat melalui kunci.

Edge AI Pendekatan yang membawa pemrosesan data ke perangkat lokal


untuk mengurangi latensi dan meningkatkan kecepatan respon,
sangat penting dalam aplikasi real-time.

Emotion AI Teknologi KA yang mampu mendeteksi, menganalisis, dan


merespon emosi manusia melalui analisis suara, ekspresi wajah,
atau teks, sehingga menciptakan interaksi yang lebih empatik
antara manusia dan mesin.

Explainable AI (XAI) Pendekatan dalam kecerdasan artifisial yang menekankan


transparansi dan kemampuan untuk menjelaskan bagaimana
model mencapai keputusannya, sehingga memudahkan
interpretasi dan akuntabilitas.

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.

IDE (Integrated Lingkungan terpadu yang menyediakan tools lengkap untuk


Development menulis, menjalankan, dan debugging kode program. Contoh IDE
Environment) yang populer di pengembangan KA adalah PyCharm, Jupyter
Notebook, Visual Studio Code, dan Spyder.

Imputation Metode untuk menggantikan nilai-nilai yang hilang (missing


values) dalam dataset dengan nilai yang diestimasi, seperti mean,
median, atau modus, sehingga dataset menjadi lengkap dan siap
digunakan.

Iteration (Iterasi) Proses pengulangan langkah dalam pemrograman atau


pengembangan model untuk menyempurnakan kode, output, atau
prompt secara bertahap.

Iterative Refinement Proses berulang yang dilakukan untuk menyempurnakan prompt


atau kode dengan mengevaluasi output yang dihasilkan dan
melakukan revisi secara bertahap agar hasil akhir semakin optimal.

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.

MinMaxScaler Kelas dari library scikit-learn yang digunakan untuk menormalisasi


data numerik ke dalam rentang tertentu (biasanya [0,1]), sehingga
data memiliki skala seragam untuk analisis dan pemodelan.

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.

NumPy Library Python untuk komputasi numerik yang menyediakan fungsi


untuk operasi matematika pada array dan matriks, mendukung
berbagai perhitungan dalam analisis data dan machine learning.

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.

Overfitting Kondisi di mana model pembelajaran mesin terlalu cocok dengan


data training sehingga gagal menggeneralisasi pada data baru.

Pandas Library Python yang menyediakan struktur data DataFrame dan


fungsi-fungsi untuk manipulasi serta analisis data dalam format
tabel.

Pandas Series Struktur data satu dimensi dalam Pandas yang memiliki label
indeks, memudahkan akses dan manipulasi data secara individual.

Pre-Processing Tahapan awal dalam pengolahan data yang bertujuan untuk


membersihkan, mengubah, dan menyusun data mentah sehingga
siap digunakan untuk analisis atau pelatihan model.

Program (Script) Kode sumber yang ditulis untuk menjalankan tugas tertentu, yang
dapat dieksekusi oleh interpreter bahasa pemrograman seperti
Python.

Reinforcement Pendekatan machine learning di mana agen belajar melalui trial


Learning and error dengan mendapatkan feedback berupa reward atau
penalti, yang banyak digunakan dalam bidang robotika dan
permainan untuk mengoptimalkan strategi.

RStudio Integrated Development Environment (IDE) yang khusus


digunakan untuk pengembangan dan analisis data dengan bahasa
pemrograman R.

Scikit-learn (sklearn) Library Python untuk machine learning yang menyediakan


berbagai metode untuk pemodelan, evaluasi, dan pre-processing
data, misalnya algoritma klasifikasi, regresi, dan clustering.

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.

Spyder IDE khusus untuk Python yang populer di kalangan pengembang


KA karena kemampuannya dalam analisis data dan debugging
kode secara interaktif.

Structur Kontrol Struktur atau perintah dalam pemrograman yang mengatur alur
eksekusi kode, seperti pernyataan if, for, dan while yang
menentukan kondisi dan iterasi.

Supervised Learning Pendekatan machine learning di mana model dilatih menggunakan


data berlabel untuk memprediksi output, seperti klasifikasi dan
regresi.

TensorFlow Library open source yang dikembangkan oleh Google untuk


pengembangan dan pelatihan model deep learning, banyak
digunakan dalam aplikasi seperti deteksi objek dan pengenalan
suara.

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.

Transformer Arsitektur jaringan saraf yang mendasari model bahasa besar


seperti GPT, yang memungkinkan pemodelan hubungan antar kata
dalam konteks yang luas dan kompleks.

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.

Z-Score Ukuran statistik yang menunjukkan seberapa jauh (dalam satuan


standar deviasi) suatu nilai dari rata-rata, digunakan untuk
mendeteksi outlier pada dataset.

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

Ragam Algoritma Machine Learning

Algoritma Kelompok Kapan Penjelasan Teknik Metode Evaluasi


Digunakan Singkat Normalisasi Model yang Cocok
yang Cocok

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²

Regresi Supervise Klasifikasi Menggunakan StandardScaler Accuracy, Confusion


Logistik d Learning biner, misalnya fungsi logistik atau Matrix, ROC-AUC,
deteksi spam, untuk MinMaxScaler Precision, Recall, dan
diagnosis mengestimasi F1-Score
penyakit, atau probabilitas
prediksi keanggotaan
kejadian/non- suatu kelas.
kejadian.

Decision Supervise Klasifikasi dan Model Tidak wajib, Accuracy (klasifikasi),


Tree d Learning regresi; berbentuk meskipun dapat MSE (regresi), dan
eksplorasi data pohon dilakukan pada Confusion Matrix
serta keputusan yang preprocessing
interpretasi memecah data
model yang berdasarkan
mudah fitur secara
dipahami. hierarkis.

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.

Support Supervise Klasifikasi data Mencari Sangat sensitif; Accuracy, Precision,


Vector d Learning berdimensi hyperplane gunakan Recall, F1-Score, dan
Machine tinggi atau optimal yang StandardScaler ROC-AUC
(SVM) kasus non- memaksimalkan atau
linear dengan margin antara MinMaxScaler
margin kelas dengan
pemisah perhitungan
optimal. jarak.

k-Nearest Supervise Klasifikasi dan Mengklasifikasik Penting untuk Accuracy, Confusion


Neighbors d Learning regresi an atau distandarisasi; Matrix (klasifikasi);
(kNN) berbasis memprediksi gunakan RMSE dan MAE
kedekatan; nilai target StandardScaler (regresi)
ideal untuk berdasarkan atau
dataset kecil tetangga MinMaxScaler
dan terdekat
interpretasi menurut jarak.
langsung.

Naive Supervise Analisis teks, Mengaplikasika Normalisasi Accuracy, Confusion


Bayes d Learning spam filtering, n Teorema tidak selalu Matrix, dan ROC-AUC
dan kasus Bayes dengan diperlukan; (terutama pada model
dengan data asumsi scaling opsional Bernoulli atau
kategorikal. sederhana kadang Gaussian)
bahwa fitur membantu
saling
independen.

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.

Gradient Supervise Kompetisi ML Metode Normalisasi Accuracy, RMSE,


Boosting d Learning dan prediksi boosting yang tidak wajib MAE, Confusion
(misal: akurat pada menggabungka karena berbasis Matrix, dan ROC-AUC
XGBoost) data tabular, n sejumlah pohon, tapi bisa (disesuaikan dengan
terutama jika model lemah diterapkan bila masalah klasifikasi
terjadi risiko (biasanya perlu atau regresi)
overfitting. decision trees)
untuk
menghasilkan
model yang
kuat.

K-Means Unsupervi Segmentasi Mengelompokka Sangat Silhouette Score,


Clustering sed pasar, n data ke dalam disarankan; Davies-Bouldin Index,
Learning eksplorasi data k klaster dengan gunakan dan inertia
tanpa label, cara StandardScaler
dan meminimalkan atau
menemukan jarak antara titik MinMaxScaler
struktur data dan
klaster centroid
berdasarkan klasternya.
kemiripan.

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

DBSCAN Unsupervi Klasterisasi Mengelompokka Penting; Silhouette Score,


sed dengan bentuk n data gunakan Cluster Validity Index,
Learning tidak berdasarkan StandardScaler dan analisis jumlah
beraturan kepadatan lokal, atau outlier
serta memungkinkan MinMaxScaler
identifikasi deteksi klaster untuk
noise atau dengan bentuk perhitungan
outlier dalam arbitrer dan jarak
dataset. outlier.

Principal Unsupervi Reduksi Mengubah data Wajib; gunakan Explained Variance,


Compone sed dimensi untuk asli menjadi StandardScaler Cumulative Variance
nt Learning visualisasi data komponen untuk Ratio, dan
Analysis atau pra- utama yang memastikan Reconstruction Error
(PCA) pemrosesan merepresentasik kontribusi fitur
fitur agar an sebagian yang seimbang
model lebih besar variansi
efisien. dalam data.

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.

Self- Semi- Ketika model Proses iteratif di Dianjurkan; Accuracy, Precision,


Training Supervise awal dibangun mana model gunakan Recall, F1-Score pada
d Learning dengan data dilatih awal StandardScaler data berlabel,
berlabel pada data atau ditambah analisis
terbatas dan berlabel, MinMaxScaler peningkatan performa
ingin kemudian untuk menjaga selama iterasi
meningkatkan menambahkan konsistensi
performa data unlabeled
dengan dengan prediksi
memanfaatkan kepercayaan
unlabeled data tinggi ke set
melalui iterasi. pelatihan.

Q- Reinforce Dalam Algoritma tanpa Umumnya tidak Reward


Learning ment permasalahan model yang memerlukan Accumulation,
Learning kontrol atau mengestimasi normalisasi Convergence Rate,
simulasi yang nilai Q untuk khusus, dan evaluasi performa
memerlukan pasangan state- tergantung kebijakan
pembelajaran aksi secara representasi
melalui trial iteratif state
and error berdasarkan
berbasis reward yang
reward. diperoleh.

SARSA Reinforce Cocok untuk Mirip dengan Q- Normalisasi Reward


ment situasi dinamis Learning tetapi jarang Accumulation,
Learning dimana memperbarui diperlukan Convergence Rate,
strategi nilai Q kecuali pada dan evaluasi performa
eksplorasi dan berdasarkan pra-pemrosesan strategi kebijakan
eksploitasi aksi yang state
perlu diambil serta
disesuaikan aksi selanjutnya
pada masalah (on-policy).

144
sekuensial
atau real-time.

Deep Q- Reinforce Untuk masalah Kombinasi deep Dianjurkan Akumulasi reward,


Network ment dengan ruang learning dengan untuk Loss Q-Network,
(DQN) Learning state yang Q-Learning menormalisasi Convergence Rate,
besar, seperti untuk input serta evaluasi
pada aplikasi mengaproksima (StandardScaler performa kebijakan
game atau si nilai Q pada atau normalisasi (policy performance)
robotik ruang state khusus)
kompleks. yang tinggi
menggunakan
jaringan saraf.

145
LAMPIRAN 2

Kumpulan Contoh Penerapan Pemrograman KA

No Deskripsi Dataset / Tautan


Model

1. K-Means Clustering Wine https://colab.research.g


Program ini memuat dataset wine dan melakukan oogle.com/drive/1ATmI
Exploratory Data Analysis (EDA) untuk memahami dTpshocnxqfqZ9wC3Q
distribusi dua fitur, yaitu alcohol dan malic_acid. MW6vdREHcH?usp=sh
Data kemudian diproses melalui penghapusan aring
outlier dengan metode IQR dan dinormalisasi
menggunakan StandardScaler sebelum
diklasterisasi dengan algoritma KMeans. Hasil
klasterisasi divisualisasikan dan pengguna dapat
memasukkan data baru untuk memprediksi klaster
yang sesuai berdasarkan model yang telah dibuat.

2 Logistic Regression Classification Iris https://colab.research.g


Program ini memuat dataset Iris, melakukan oogle.com/drive/1vwol
eksplorasi dan visualisasi data untuk memahami dLmLrr5FeSARUVYCB
distribusi fitur serta hubungan antar fitur seperti P8MTOm_rABN?usp=s
scatter plot dan histogram. Data kemudian dibagi haring
menjadi set pelatihan dan pengujian, dan model
regresi logistik dilatih untuk mengklasifikasikan
spesies Iris. Evaluasi model dilakukan dengan
menghitung akurasi dan menampilkan confusion
matrix untuk mengukur performa prediksi.

3 Data Preparation & Pre Processing Indonesi https://colab.research.g


Program ini membaca dataset dari file CSV dan a oogle.com/drive/1d5yP
menampilkan struktur, statistik deskriptif, serta Reading dFKFB8s6hdP8iWsHB
informasi missing value untuk mengidentifikasi Interest 69TPOA6oaHb?usp=sh
duplikat dan kesesuaian data. Program menangani aring
pre-processing dengan mengonversi nilai numerik
yang disimpan sebagai string, menggantikan
missing value dengan median atau modus, dan
menghapus outlier menggunakan metode IQR.

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.

4 Data Visualization Tips https://colab.research.g


Program ini memuat dataset 'tips' dari Seaborn dan oogle.com/drive/1jt4cR
menampilkan lima baris pertama untuk melihat TvaM18UlxJQ3Vqpgzh
struktur data. Data divisualisasikan dengan ZmoiTGfvn?usp=sharin
histogram untuk mendeteksi distribusi frekuensi g
total bill, serta boxplot untuk mengidentifikasi
outlier berdasarkan hari. Selanjutnya, scatter plot
digunakan untuk mengeksplorasi hubungan antara
total bill dan tip, dan heatmap menggambarkan
korelasi antar variabel numerik. Akhirnya, bar plot
ditampilkan untuk mengilustrasikan rata-rata tip per
hari, memberikan gambaran tentang pola pemberian
tip.

5 Exploratory Data Analysis Titanic https://colab.research.g


Program ini memuat dataset Titanic dan oogle.com/drive/1BBn
menampilkan lima baris pertama serta informasi mCH8oSt7lcCzMBUD7
dasar seperti struktur data, statistik deskriptif, dan Fbb4kOQmeCsJ?usp=s
jumlah missing values. Selanjutnya, analisis missing haring
values divisualisasikan menggunakan heatmap
untuk memberikan gambaran cepat mengenai
kelengkapan data. Program kemudian
mengeksplorasi distribusi variabel kategorik dan
numerik melalui countplot, histogram, dan boxplot,
serta menghitung matriks korelasi yang
divisualisasikan dengan heatmap. Terakhir,
hubungan antar variabel seperti umur dan tarif serta
interaksi variabel lain ditampilkan melalui scatter
plot dan pairplot untuk memperoleh insight awal
mengenai faktor-faktor yang memengaruhi
kelangsungan hidup penumpang.

6 Regresi Linier Diabetes https://colab.research.g


Program ini memuat dataset diabetes dan oogle.com/drive/1V9Zz

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.

7 Regresi Logistik Kanker https://colab.research.g


Program ini memuat Breast Cancer dataset dan Payudara oogle.com/drive/1pk7v
menggunakan dua fitur ("mean radius" dan "mean ycijnjHCn6M5K-
texture") untuk klasifikasi tumor dengan Logistic rXGh6Do5v0_MGZ?usp
Regression. Tambahan bagian data preparation =sharing
mengecek duplikasi dan missing values, serta pre
processing yang melakukan normalisasi pada fitur
sehingga data siap dipakai. Exploratory data
analysis (EDA) dilakukan dengan visualisasi
histogram, scatter plot, dan heatmap korelasi untuk
memahami karakteristik fitur. Selanjutnya, data
dipisahkan menjadi training dan testing, model
dilatih dan dievaluasi, serta terdapat opsi interaktif
bagi pengguna untuk melakukan prediksi.

8 Support Vector Machine Iris https://colab.research.g


Program ini memuat dataset Iris, lalu melakukan oogle.com/drive/1SM7L
data preprocessing dengan mengonversi data ke TKJ8KPr1ziwyquQzBB
DataFrame, mengecek missing values, dan 3jdUwNpC62?usp=sha
menampilkan statistik deskriptif. Selanjutnya, ring
dilakukan exploratory data analysis (EDA) melalui
pairplot dan heatmap korelasi untuk memahami
hubungan antar fitur. Setelah itu, data dibagi ke
dalam training dan testing, di-standardisasi, dan
digunakan untuk melatih model Support Vector
Machine (SVM). Terakhir, model dievaluasi dengan
menggunakan classification report dan confusion
matrix.

9 Neural Network MNIST https://colab.research.g

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.

10 Logistic Regression TITANIC https://colab.research.g


Program ini memuat dataset Titanic, lalu melakukan oogle.com/drive/1CvfO
data preprocessing dengan menghapus missing EhF3g3ipnTjasJuzrKsN
value, mengisi nilai kosong dengan median, dan GOUejNUR?usp=sharin
meng-encode variabel kategorik. Selanjutnya, g
dilakukan exploratory data analysis (EDA) melalui
tampilan statistik deskriptif, histogram distribusi
variabel numerik, serta heatmap korelasi antar fitur.
Data kemudian dibagi menjadi training dan testing,
model Logistic Regression dilatih, dan pengguna
dapat memasukkan data penumpang untuk prediksi
interaktif. Hasil prediksi ditampilkan berupa
probabilitas selamat dan klasifikasi akhir.

11 MobileNetV2 ImageNe https://colab.research.g


Program ini memuat model MobileNetV2 dengan t oogle.com/drive/1N6tF
bobot pre-trained dari ImageNet dan menyediakan aertZbCT_Amvdr2nku1
fungsi untuk melakukan preprocessing gambar uIiS3E3rT?usp=sharing
(resize, konversi ke array, dan normalisasi). Gambar
diunggah melalui widget Google Colab, kemudian
ditampilkan dan di-preprocess agar sesuai dengan
input model. Model kemudian memprediksi gambar
tersebut dan mendecode hasil prediksinya untuk
menampilkan top 3 label beserta probabilitasnya.
Secara keseluruhan, kode ini memungkinkan
pengguna untuk mengunggah dan menganalisis
gambar menggunakan model deep learning yang
telah dilatih sebelumnya.

12 Integrasi LLM dengan KA (Pirate Chatbot) Model https://github.com/listy


Kode program ini membuat antarmuka pengguna LLM antidewi1/pirate-
interaktif menggunakan Tkinter untuk membangun meta- chatbot
sebuah "pirate chatbot" berbasis model LLM. llama/Lla
Program memuat model "meta-llama/Llama-3.2- ma-3.2-
3B-Instruct" dari Hugging Face Transformers dan 3B-
mengarahkan model tersebut agar selalu Instruct
merespons dengan gaya bahasa bajak laut melalui

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

Anda mungkin juga menyukai