Anda di halaman 1dari 34

TUGAS PAPER MATA KULIAH BUSINESS INTELLIGENCE

ETL PROSES PADA APLIKASI PENTAHO DAN PROSES PENGOLAHAN


DATA MENGGUNAKAN ARTIFICIAL NEURAL NETWORK (ANN)

Dosen: Prof. Dr. Ir. Marimin, M.Sc

Oleh:

I Gusti Made Teddy Pradana F351190288

DEPARTEMEN TEKNOLOGI INDUSTRI PERTANIAN


FAKULTAS TEKNOLOGI PERTANIAN
INSTITUT PERTANIAN BOGOR
BOGOR
2020
BAGIAN 1.
ETL PROSES PADA APLIKASI PENTAHO

2.1 Mengenal Aplikasi Pentaho


Pentaho BI adalah salah satu platform Open Source Business Intelligence (OSBI)
yang memberikan solusi terkait Bussiness Intelligence kepada pengguna. Pentaho
memiliki kemampuan untuk membuat report, melakukan analisis data, membuat
dashboard, dan mengintegrasikan data. Ketika Pentaho diimplementasikan, kita
dapat melihat berbagai macam informasi dari data yang kita miliki. Misalnya saja
kita dapat melihat analisis dari penjualan produk kita, berapa produk yang terjual,
siapa saja pembelinya, dan masih banyak lagi. Informasi tersebut disajikan dalam
bentuk report yang bersifat interaktif. Sebagai contoh kita dapat melihat report
sesuai dengan waktu yang kita inginkan.

Gambar 1. Logo Aplikasi Pentaho

Pentaho BI Suite memiliki beberapa fungsionalitas, diantaranya adalah:


1) Fungsi Reporting
Dengan Pentaho reporting kita bisa melihat report dari data yang kita miliki.
Pentaho report ini ada dua macam, yaitu report yang sifatnya terjadwal
(scheduled), atau yang sifatnya on-demand. Ada beragam format yang bisa
digunakan dalam report ini, seperti PDF, HTML, XLS, dan text. Pentaho
Reporting ini dibuat berdasarkan JFreeReport project.

2) Fungsi Analisis
Pentaho juga dapat digunakan untuk melakukan analisis data. Data yang kita
miliki dapat ditampilkan dengan menarik dalam berbagai bentuk, seperti
pivot tabel, dashboard yang terintegrasi, portal, dan workflow.

Di Pentaho juga ada Spreadsheet Services sehingga kita dapat melakukan


browsing, melihat grafik, jauh ke dalam data yang berbentuk Microsoft
Excel. Layanan Analysis di Pentaho dibuat berdasarkan Mondrian OLAP
yaitu sebuah Open Source OLAP Server.
3) Dashboard
Hasil dari reporting dan analisis dapat ditampilkan dalam Pentaho
Dashboard. Jadi, cukup dengan melihat dashboard, kita bisa mengetahui
semua info yang kita inginkan.

4) Data Mining
Kita juga bisa melakukan data mining. Jika Anda tahu Weka, maka fungsi
data mining di Pentaho adalah gabungan dari Weka. Weka itu sendiri adalah
sebuah kumpulan algoritma dari machine learning yang diterapkan untuk
memining data. Algoritma tersebut dikombinasikan dengan teknologi
OLAP (Online Analytical Processing). Tool Data Mining ini digunakan
untuk menganalisis data yang sifatnya historical sehingga bisa dibuat suatu
model yang sifatnya prediktif.

5) Data Integration
Data Integration di Pentaho dikenal dengan Kettle dan atau Spoon. Kettle
dan Spoon ini adalah tool ETL yang memiliki tampilan antarmuka untuk
mendesain job yang sifatnya fleksibel untuk pemrosesan data.

2.2 Instalasi Aplikasi Pentaho


Sebelum kita menggunakan aplikasi Pentaho, kita perlu menginstal beberapa
aplikasi agar aplikasi dapat berjalan di komputer kita. Adapun aplikasi-aplikasi
tersebut adalah sebagai berikut:
1) Java Development Kit (JDK) dan Java Runtime Environment (JRE)
JRE adalah sebuah paket aplikasi yang berisi JVM (Java Virtual Machine)
serta beberapa library kode program tambahan yang diperlukan untuk
menjalankan aplikasi Java. Meskipun kurang pas, tapi secara sederhana bisa
dibilang bahwa untuk bisa menjalankan sebuah aplikasi Java di sebuah
komputer, harus terinstall aplikasi JRE atau dengan kata lain, bilamana kita
hanya ingin menjalankan aplikasi Java saja dan tidak berencana membuat
kode program Java, maka JRE adalah aplikasi yang dibutuhkan.

JDK adalah sebuah paket aplikasi yang berisi JVM (Java Virtual Machine)
+ JRE (Java Runtime Environment) + berbagai aplikasi untuk proses
pembuatan kode program Java. Salah satu tambahan perintah yang ada di
JDK adalah perintah javac yang dipakai untuk memproses kode program
Java menjadi byte code. Jadi karena dalam aplikasi pentaho kita perlu
menggunakan aplikasi java termasuk membuat program atau memasukan
script pada dokumen pentaho, kita perlu menginstal JRE dan JDK terlebih
dahulu.

JRE dan JDK dapat diunduh melalui website oracle dapa link dibawah
https://www.oracle.com/java/ kemudian mendownload JRE dan JDK versi
terbaru yang disesuaikan dengan sistem operasi pada komputer masing-
masing. Proses instalasinya ditunjukan sebagai berikut.

Gambar 2. Proses Instalasi Aplikasi JDK

Gambar 3. Proses Instalasi Aplikasi JRE

2) Xampp
Xampp adalah sebuah software komputer yang sistem penamaannya
diambil dari akronim kata X, Apache, MySQL (dulu) / MariaDB (sekarang),
PHP, dan Perl. X yang terdapat pada awal kata berasal dari istilah cross
platform sebagai simbol bahwa aplikasi ini bisa dijalankan di empat sistem
operasi berbeda, seperti OS Linux, OS Windows, Mac OS, dan juga Solaris.
Program aplikasi XAMPP berfungsi sebagai server lokal (localhost).
Aplikasi ini dalam prakteknya banyak digunakan untuk menguji kinerja
fitur ataupun menampilkan konten yang ada didalam website kepada orang
lain tanpa harus terkoneksi dengan internet, atau istilahnya website offline.
XAMPP biasanya banyak digunakan oleh para mahasiswa maupun pelajar
untuk melihat hasil desain website sebelum akhirnya dibuat online
menggunakan web hosting yang biasa dijual dipasaran. Namun, mengingat
fungsinya sebagai server lokal, XAMPP juga dapat digunakan untuk
keperluan lain seperti untuk membuat localhost dan menghubungkan
database dari proses ETL di Pentaho.

Aplikasi XAMPP dapat diunduh melalui website link apache berikut


(https://www.apachefriends.org/download.html), dengan mendownload
sesuai dengan sistem operasi komputer yang digunakan dan versi dari
XAMPP (terbaru disarankan). Kemudian dapat dilakukan proses instalasi
sebagai berikut, sampai proses instalasi selesai (finish).

Gambar 4. Proses Instalasi Aplikasi XAMPP

3) SQLyog
SQLyog adalah aplikasi client MySQL yang sangat populer digunakan di
Indonesia. Aplikasi ini memiliki banyak fitur yang memudahkan pengguna
melakukan administrasi maupun melakukan pengolahan data MySQL.
SQLyog adalah salah satu tool yang dapat digunakan untuk administrasi
untuk database MySQL. Jika kita biasanya menggunakan PhpMyAdmin
yang include di dalam aplikasi Xampp untuk melakukan administrasi
database, SQLyog adalah aplikasi alternatif untuk melakukan proses
administrasi database MySQL. Banyak fitur yang disediakan oleh SQLyog
yang tidak disediakan oleh PhpMyAdmin maupun tool administrasi
database lainnya seperti MySQLQueryBrowser. Dengan SQLyog kita dapat
membuat Store Prosedure, Function maupun Trigger dengan mudah.

SQL (Structured Query Language) sendiri adalah salah satu DBMS


(database management system) yang saat ini banyak digunakan untuk
operasi basis data dan embedded (ditempelkan) di hampir semua bahasa
pemrograman yang mendukung basis data relasional. Bahasa ini secara de
facto merupakan bahasa standar yang digunakan dalam manajemen basis
data relasional. Perintah SQL digunakan untuk melakukan tugas-tugas
seperti update data, atau mengambil data dari database.

Aplikasi SQLyog dapat diunduh melalui website webyog company pada


https://www.webyog.com/product/sqlyog, kemudian dilakukan proses
instalisasi sebagai berikut hingga proses selesai (finish).

Gambar 5. Proses Instalasi Aplikasi SQLyog


Setelah aplikasi-aplikasi diatas selesai di-install, selanjutnya kita dapat
menggunakan aplikasi pentaho. Aplikasi Pentaho dapat di download melalui
Pentaho (Hitachi Vantara) di http://community.pentaho.com/projects/bi_platform/
atau https://community.hitachivantara.com/s/pentaho atau dapat juga melalui
https://sourceforge.net/projects/pentaho/.
Setelah berhasil diunduh aplikasi Pentaho Data Integration dapat dibuka dengan
mengklik file spoon.bat.

Gambar 6. Membuka Aplikasi Pentaho Data Integration

Gambar 7. Tampilan depan Aplikasi Pentaho Data Integration


2.3 Menggunakan Aplikasi Pentaho
Pada bagian ini saya akan menjelaskan tentang bagaimana menggunakkan
aplikasi pentaho. Pertama kita akan menggunakan Spoon yaitu utilitas grafik untuk
merancang, mengeksekusi dan melakukan troubleshooting dari proses ETL melalui
job dan transformation. Buka Spoon.bat pada folder data integration, maka akan
terbuka lingkungan kerja sebagai berikut.
Menu & Toolbar

Ruang
Kerja
Panel
Kiri

Panel hasil
Eksekusi

Gambar 7. Lingkungan Kerja Spoon dalam Pentaho


Sebelum memulai membuat projek, pertama kita harus memahami konsep dan
komponen yang ada dalam pentaho, yang dapat saya jelaskan sebagai berikut.
1) Kondisi Database
Dalam program pentaho (kettle) banyak sekali mendukung jenis koneksi
database yang populer saat ini seperti Oracle, MS SQL Server, MongoDB,
MySQL, PostgreSQL dan lainnya. Pada paper saya ini akan menggunakan
MySQL Server dengan menggunakan aplikasi SQLyog dan XAMPP.

2) Step
Step adalah komponen/modul kittle yang mengerjakan tugas tertentu pada
suatu job atau transformation

3) Hop
Hop adalah penghubung yang menghubungkan 2 step baik sebagai penentu
aliran/flow dari job ataupun penghantar data di transformation.
Hop
Step
Step

Gambar 8. Step dan Hop


4) Job
Job adalah komponen dari pentaho yang menangani kontrol atas aliran tugas
(flow control). Job tidak memproses aliran data secara langsung, Job bisa
terdiri dari suatu atau beberapa transformation atau job lain.

Gambar 9. Panel Job

5) Transformations
Transformation adalah komponen dari pentaho yang melakukan proses
aliran data sebenarnya. Semua proses pengambilan data (estract), perubahan
(transform) dan penyimpanan (load) dilakukan disini.

Gambar 10. Panel Transformation

Setelah kita mengenal beberapa fungsi penting diatas, maka baru selanjutnya kita
akan memulai untuk membuat sebuah project. Ada beberapa project yang telah saya
buat yang akan saya jelaskan selanjutnya sebagai berikut.
1) Membuat Project Job Sederhana

Gambar 11. Project Job

Project pertama ini merupakan sebuah project yang merupakan komponen


sebuah job. Pada job ini, saya memasukkan step start, javascript dan msgbox
ke dalam ruang kerja dengan hop yang menghubungkan antara step yang ada
seperti pada gambar. Project ini akan menghasilkan output berupa keluarnya
pop up message box sesuai dengan hasil yang dijalankan pada javascript. Hop
berwarna hijau menunjukkan alur yang dilalui suatu perintah. Hop berwarna
merah menunjukkan bahwa hop tersebut tidak dijalankan atau dilalui.

2) Membuat Project Transformasi Sederhana

Gambar 12. Project Transformasi


Pada project transformasi diatas, saya ingin melakukan rekayasa suatu folder.
Alur pemikiran project diatas adalah step check if file exist akan mengecek
folder bernama FTP pada folder data integration (lokasi kettle pentaho) apakah
sudah ada atau belum. Jika folder tersebut diperiksa dan ternyata belum, step
create a folder FTP akan melakukan proses membuat folder bernama FTP
tersebut. Jika folder tersebut sudah ada maka proses dari step check if file exist
akan dilanjutkan dan berakhir pada dummy. Project diatas saya buat dengan
proses runnning secara berkelanjutan, sehingga bila folder FTP tersebut
dihapus sehingga tidak ada lagi di folder data integration, maka program dari
pentaho akan membuatnya lagi. Inilah perbedaan job dengan transformasi.
Transformasi dapat melakukan pengambilan data (estract), perubahan
(transform) dan penyimpanan (load) atau kita kenal dengan ETL, sedangkan
job tidak dapat melakukan hal ini.

3) Melakukan proses pengambilan data (estract) dan perubahan data


(transform).

Gambar 13. Project Estract dan Transform

Dari project diatas, saya mengambil data input (estract) berupa data excel yaitu
file target penjualan.xls. Dataset dari file ini masih memiliki tipe yang berbeda
sehingga tipe data dataset ini harus disamakan terlebih dahulu sebelum
dilakukan proses pengolahan data lebih lanjut. Perubahan tipe data (transform)
ini dilakukan dengan merubahnya seperti pada gambar berikut.
Gambar 14. Menu Dataset input (kiri) dan Menu Rename Value /Proses
Transform (kanan)

Pada gambar diatas kita dapat melihat tipe data dari dataset (kiri) yang
sebelumnya masih tidak seragam akan dijadikan seragam menjadi tipe integer.
Dari gambar 14 kita juga dapat melihat bahwa kolom informasi yang
digunakan seperti kode cabang dan kode produk dihilangkan. Hasil dari proses
pada project ini adalah untuk mengubah mengambil data input dan melakukan
perubahan yang dibutuhkan pada data. Adapun bagaimana cara kita
menyimpan (load) data yang telah dirubah kedalam database dan bagaimana
cara menghasilkan output berupa file dataset baru akan dijelaskan pada project
selanjutnya.

4) Menghubungkan ke Database

Gambar 15. Project Menghubungkan ke Database


Dari gambar 15 diatas, bisa dilihat bahwa saya ingin menyimpan tabel output
dari pengubahan data ke database. Project diatas hampir serupa dengan project
sebelumnya hanya saja ditambahkan dengan step table output ke SQL. Saat
program di run, maka file akan ter-load kedalam host database. Pada project
saya ini, saya menggunakan SQLyog dengan bantuan XAMPP untuk membuat
localhost. Adapun data yang sudah tersimpan di database dapat kita lihat
seperti pada gambar 16 dibawah ini.

Gambar 16. Aplikasi SQLyog untuk menyimpan dataset di database server

Data yang sudah dilakukan perubahan dari file excel aslinya selanjutnya dapat
kita lihat pada SQLyog ketika program dalam pentaho telah berjalan (running)
dan terhubung kedalam server. Table data akan tersimpan (load) pada nama
database yang dihubungkan sebagai tempat menyimpan tadi. Pada kasus saya,
saya merubah tipe data dari data pemeriksaaan diabetes untuk kemudian
disimpan pada database db_diabetes. Dengan terkoneksinya dengan server,
maka setiap orang yang terkoneksi dengan server akan dapat mengakses data
sehingga dapat dilakukan pengolahan data lebih lanjut.

5) Membuat dataset baru dari file di SQL Server.


Pada saat proses ETL berhasil dilakukan dan file disimpan di server (data
warehousing) maka selanjutnya kita harus dapat menarik data untuk keperluan
selanjutnya yaitu pengolahan data agar ditemukannya insight/pengetahuan
baru dari data tersebut. Pada aplikasi SQLyog, kita dapat menarik/meyimpan
data dalam bentuk file csv, json, html, xml, excel xml atau SQL. Pada kasus
saya ini, saya akan mengubah dataset diabetes yang sudah dirubah menjadi
sebuah file .csv.
Gambar 17. Membuat file dari database di SQLyog

Pada db_diabetes kik tombol (+) untuk melihat list lainnya (tray down). Pada
bagian table data klik kanan kemudian sorot bagian backup/export, pilih export
table data as dan pilih .csv seperti pada gambar 18.

Gambar 18. Menu Export database dalam aplikasi SQLyog


File akan tersimpan di alamat direktori yang kita tentukan dengan menekan tombol
export. Setelah data berhasil dibuat, kita dapat menggunakan data tersebut untuk
keperluan pengolahan data selanjutnya tergantung dengan metode yang sesuai atau
yang kita pilih. Pada bagian selanjutnya saya akan menunjukkan bagaimana data
ini akan digunakan pada pengolahan data menggunakan metode artificial neural
network (ANN).
Selain beberapa project sederhana diatas, kita tentu dapat mengumpulkan data
dengan kasus yang lebih kompleks, misalnya menggabungkan beberapa database
yang memiliki tipe data berbeda untuk selanjutnya dialakukan proses ETL. Untuk
melakukan hal ini, secara konsep tidak jauh berbeda dengan project diatas. Adapun
beberapa project yang sudah saya buat dalam penggabungan database saya
tunjukkan sebagai berikut.

(a)

(b)

(c)

(d)

Gambar 19. Beberapa project pengabungan database menjadi data warehousing


menggunakan pentaho dan SQLyog.
Pada bagian a saya mencoba membuat data perkembangan update cabang dari
diperoleh dari data cabang itu senduru, database kota dan provinsi. Pada b, saya
ingin membuat data warehouse tentang semua karyawan yang tersebar pada semua
cabang. Selanjutnya pada c, saya membuat database produk berdasarkan database
produk dan kategorinya. Terakhir pada d, saya ingin membuat data warehousing
bernama fakta penjulan yang bersumber dari berbagai database seperti yang dapat
dilihat pada gambar 19 bagian d.
# Multidemensional dan Data Visualisasi
Multidimensional Modeling (MDM) adalah suatu kumpulan konsep dan teknik
yang digunakan dalam merancang data warehouse dengan penekanan pada dua
jenis tabel konseptual yaitu yang berisi pengukuran dan dimensi yang memberikan
konteks.

Gambar 20. Contoh Cube Scema


Di dalam model multidimensional, database terdiri dari beberapa tabel fakta (fact
tables) dan tabel dimensi (dimension tables) yang saling terkait. Suatu tabel .fakta
berisi berbagai nilai agregasi yang menjadi dasar pengukuran (measure) .serta
beberapa key yang terkait ke tabel dimensi yang akan menjadi sudut pardang dari
measure tersebut.
Dalam perkembangannya, susunan fact table dan dimension table ini memiliki
standar perancangan atau schema karena terbukti meningkatkan performa dan
kemudahan dalam penerjemahan ke sistem Online Analytical Processing (OLAP).
Schema inilah yang menjadi dasar untuk melakukan data warehousing. Dua schema
yang paling umum digunakan oleh berbagai OLAP engine adalah skema bintang
(Star Schema) dan skema butir salju (Snowflake Schema).
Sekema Bintang berpusat pada satu tabel fakta yang dikelilingi oleh suatu atau
beberapa tabel dimensi sebagai cabangnya sehingga kelihatan seperti bintang.
Setiap percabangan berhenti pada satu tabel dimensi atau dengan kata lain tabel
dimensi dengan skema ini semuanya berupa leaf atau daun dan tidak memiliki
percabangan lain.
Skema Butir Salju (Snowflake Schema) Berbeda dengan Star, skema Snowflake
memliki percabangan pada tabel dimensinya dan bias dioptimalkan karena
pertimbangan ruang penyimpanan. Namun seiring berkembangnya waktu struktur
yang kurang bersahabat bagi kebanyakan OLAP engine, maka skerna ini kurang
diad oleh perancang data warehouse.

Gambar 21. Contoh Skema Bintang

Gambar 22. Contoh Sjema Butir Salju


BAGIAN 2.
PENGOLAHAN DATA DENGAN ARTIFICIAL NEURAL NETWORK
(ANN)
2.1 Pengertian dan Fungsi
Neural Network merupakan kategori ilmu Soft Computing. Neural
Network sebenarnya mengadopsi dari kemampuan otak manusia yang mampu
memberikan stimulasi/rangsangan, melakukan proses, dan memberikan output.
Output diperoleh dari variasi stimulasi dan proses yang terjadi di dalam otak
manusia. Kemampuan manusia dalam memproses informasi merupakan hasil
kompleksitas proses di dalam otak. Misalnya, yang terjadi pada anak-anak, mereka
mampu belajar untuk melakukan pengenalan meskipun mereka tidak mengetahui
algoritma apa yang digunakan. Kekuatan komputasi yang luar biasa dari otak
manusia ini merupakan sebuah keunggulan di dalam kajian ilmu pengetahuan.

Fungsi dari Neural Network diantaranya adalah:


1) Pengklasifikasian pola
2) Memetakan pola yang didapat dari input ke dalam pola baru pada output
3) Penyimpan pola yang akan dipanggil kembali
4) Memetakan pola-pola yang sejenis
5) Pengoptimasi permasalahan
6) Prediksi

2.2 Sejarah Neural Network


Perkembangan ilmu Neural Network sudah ada sejak tahun 1943 ketika
Warren McCulloch dan Walter Pitts memperkenalkan perhitungan model neural
network yang pertama kalinya. Mereka melakukan kombinasi beberapa processing
unit sederhana bersama-sama yang mampu memberikan peningkatan secara
keseluruhan pada kekuatan komputasi.

Gambar 23. McCulloch & Pitts, penemu pertama Neural Network


Hal ini dilanjutkan pada penelitian yang dikerjakan oleh Rosenblatt pada
tahun 1950, dimana dia berhasil menemukan sebuah two-layer network, yang
disebut sebagai perceptron. Perceptron memungkinkan untuk pekerjaan klasifikasi
pembelajaran tertentu dengan penambahan bobot pada setiap koneksi antar-
network.

Gambar 24. Perceptron

Keberhasilan perceptron dalam pengklasifikasian pola tertentu ini tidak


sepenuhnya sempurna, masih ditemukan juga beberapa keterbatasan didalamnya.
Perceptron tidak mampu untuk menyelesaikan permasalahan XOR (exclusive-OR).
Penilaian terhadap keterbatasan neural network ini membuat penelitian di bidang
ini sempat mati selama kurang lebih 15 tahun. Namun demikian, perceptron
berhasil menjadi sebuah dasar untuk penelitian-penelitian selanjutnya di bidang
neural network. Pengkajian terhadap neural network mulai berkembang lagi
selanjutnya di awal tahun 1980-an. Para peneliti banyak menemukan bidang
interest baru pada domain ilmu neural network. Penelitian terakhir diantaranya
adalah mesin Boltzmann, jaringan Hopfield, model pembelajaran kompetitif,
multilayer network, dan teori model resonansi adaptif.
Untuk saat ini, Neural Network sudah dapat diterapkan pada beberapa
task, diantaranya classification, recognition, approximation, prediction,
clusterization, memory simulation dan banyak task-task berbeda yang lainnya,
dimana jumlahnya semakin bertambah seiring berjalannya waktu.

2.3 Konsep Neural Network


Ide dasar Neural Network dimulai dari otak manusia, dimana otak memuat
sekitar 1011 neuron. Neuron ini berfungsi memproses setiap informasi yang masuk.
Satu neuron memiliki 1 akson, dan minimal 1 dendrit. Setiap sel syaraf terhubung
dengan syaraf lain, jumlahnya mencapai sekitar 104 sinapsis. Masing-masing sel itu
saling berinteraksi satu sama lain yang menghasilkan kemampuan tertentu pada
kerja otak manusia.
Sebuah neuron menerima impuls dari neuron lain melalui dendrit dan
mengirimkan sinyal yang dihasilkan oleh badan sel melalui akson. Akson dari sel
syaraf ini bercabang-cabang dan berhubungan dengan dendrit dari sel syaraf lain
dengan cara mengirimkan impuls melalui sinapsis. Sinapsis adalah unit fungsional
antara 2 buah sel syaraf, misal A dan B, dimana yang satu adalah serabut akson dari
neuron A dan satunya lagi adalah dendrit dari neuron B. Kekuatan sinapsis bisa
menurun/meningkat tergantung seberapa besar tingkat propagasi (penyiaran) sinyal
yang diterimanya. Impuls-impuls sinyal (informasi) akan diterima oleh neuron lain
jika memenuhi batasan tertentu, yang sering disebut dengan nilai ambang
(threshold).

Gambar 25. Struktur Neuron pada otak manusia.


Dendrit (Dendrites) berfungsi untuk mengirimkan impuls yang diterima ke badan sel syaraf. Akson (Axon) bertugas
mengirimkan impuls dari badan sel ke jaringan lain dan Sinapsis berfungsi sebagai unit fungsional di antara dua sel syaraf.

Dari struktur neuron pada otak manusia, dan proses kerja yang dijelaskan
di atas, maka konsep dasar pembangunan neural network buatan (Artificial Neural
Network) terbentuk. Ide mendasar dari Artificial Neural Network (ANN) adalah
mengadopsi mekanisme berpikir sebuah sistem atau aplikasi yang menyerupai otak
manusia, baik untuk pemrosesan berbagai sinyal elemen yang diterima, toleransi
terhadap kesalahan/error, dan juga parallel processing.

Gambar 26. Struktur ANN

Karakteristik dari ANN dilihat dari pola hubungan antar neuron, metode
penentuan bobot dari tiap koneksi, dan fungsi aktivasinya. Gambar di atas
menjelaskan struktur ANN secara mendasar, yang dalam kenyataannya tidak hanya
sederhana seperti itu.

1) Input, berfungsi seperti dendrite


2) Output, berfungsi seperti akson
3) Fungsi aktivasi, berfungsi seperti sinapsis

Neural network dibangun dari banyak node/unit yang dihubungkan oleh


link secara langsung. Link dari unit yang satu ke unit yang lainnya digunakan untuk
melakukan propagasi aktivasi dari unit pertama ke unit selanjutnya. Setiap link
memiliki bobot numerik. Bobot ini menentukan kekuatan serta penanda dari sebuah
konektivitas.
Proses pada ANN dimulai dari input yang diterima oleh neuron beserta
dengan nilai bobot dari tiap-tiap input yang ada. Setelah masuk ke dalam neuron,
nilai input yang ada akan dijumlahkan oleh suatu fungsi perambatan (summing
function), yang bisa dilihat seperti pada di gambar dengan lambang sigma (∑).
Hasil penjumlahan akan diproses oleh fungsi aktivasi setiap neuron, disini akan
dibandingkan hasil penjumlahan dengan threshold (nilai ambang) tertentu. Jika
nilai melebihi threshold, maka aktivasi neuron akan dibatalkan, sebaliknya, jika
masih dibawah nilai threshold, neuron akan diaktifkan. Setelah aktif, neuron akan
mengirimkan nilai output melalui bobot-bobot outputnya ke semua neuron yang
berhubungan dengannya. Proses ini akan terus berulang pada input-input
selanjutnya.
ANN terdiri dari banyak neuron di dalamnya. Neuron-neuron ini akan
dikelompokkan ke dalam beberapa layer. Neuron yang terdapat pada tiap layer
dihubungkan dengan neuron pada layer lainnya. Hal ini tentunya tidak berlaku pada
layer input dan output, tapi hanya layer yang berada di antaranya. Informasi yang
diterima di layer input dilanjutkan ke layer-layer dalam ANN secara satu persatu
hingga mencapai layer terakhir/layer output. Layer yang terletak di antara input dan
output disebut sebagai hidden layer. Namun, tidak semua ANN memiliki hidden
layer, ada juga yang hanya terdapat layer input dan output saja.

2.4 Single Perceptron


Bentuk terkecil (minimal) sebuah ANN adalah single perceptron yang
hanya terdiri dari sebuah neuron. Sebuah neuron diilustrasikan pada Gambar 11.2.
Secara matematis, terdapat feature vector x yang menjadi input bagi neuron
tersebut. Feature vector merepresentasikan suatu data point, event atau instans.
Neuron akan memproses input x melalui perhitungan jumlah perkalian antara nilai
input dan synapse weight, yang dilewatkan pada fungsi non-linear. Pada training,
yang dioptimasi adalah nilai synapse weight (learning parameter). Selain itu,
terdapat juga bias b sebagai kontrol tambahan (ingat materi steepest gradient
descent). Output dari neuron adalah hasil fungsi aktivasi dari perhitungan jumlah
perkalian antara nilai input dan synapse weight. Ada beberapa macam fungsi
aktivasi, misal step function, sign function, rectifier dan sigmoid function.

Gambar 27. Single Perceptron


2.5 Multilayer Perceptron
multilayer perceptron (MLP) yang juga dikenal sebagai feedforward
neural network. Kami tekankan sekali lagi, istilah “ANN" selanjutnya mengacu
pada MLP dan arsitektur lebih kompleks. MLP secara literal memiliki beberapa
layers. Secara umum ada tiga layers: input, hidden, dan output layer. Input layer
menerima input (tanpa melakukan operasi apapun), kemudian nilai input (tanpa
dilewatkan ke fungsi aktivasi) diberikan ke hidden units. Pada hidden units, input
diproses dan dilakukan perhitungan hasil fungsi aktivasi untuk tiap-tiap neuron, lalu
hasilnya diberikan ke layer berikutnya. Output dari input layer akan diterima
sebagai input bagi hidden layer. Begitupula seterusnya hidden layer akan
mengirimkan hasilnya untuk output layer.

Gambar 28. Multilayer Perceptron

Setiap neuron pada MLP saling berhubungan yang ditandai dengan tanda
panah pada gambar diatas. Tiap koneksi memiliki weight yang nantinya nilai dari
tiap weight akan berbeda-beda. Hidden layer dan output layer memiliki tambahan
“input” yang biasa disebut dengan bias.

2.5 Activation Function


Activation function befungsi untuk menentukan apakah neuron tersebut
harus “aktif” atau tidak berdasarkan dari weighted sum dari input. Secara umum
terdapat 2 jenis activation function, Linear dan Non-Linear Activation function.
Bisa dikatakan secara “default” activation function dari sebuah neuron adalah
Linear. Jika sebuah neuron menggunakan linear function, maka keluaran dari
neuron tersebut adalah weighted sum dari input + bias. Non-Linear Activation
function ada beberapa seperti Sigmoid & Tanh dan ReLU. Sigmoid function
mempunyai rentang antara 0 hingga 1 sedangkan rentang dari Tanh adalah -1
hingga 1. Kedua fungsi ini biasanya digunakan untuk klasifikasi 2 class atau
kelompok data. Pada aktivation function ReLU, pada dasarnya function
inimelakukan “treshold” dari 0 hingga infinity. ReLU juga dapat menutupi
kelemahan yang dimiliki oleh Sigmoid dan Tanh.

Gambar 29. Linear Function

Gambar 30. Sigmoid dan Tanh Function

Gambar 31. ReLU Function


2.6 Training a Neural Network
Pada Supervised Learning menggunakan Neural Network, pada umumnya
Learning terdiri dari 2 tahap, yaitu training dan evaluation. Namun kadang terdapat
tahap tambahan yaitu testing, namun sifatnya tidak wajib.
Pada tahap training setiap weight dan bias pada tiap neuron akan diupdate
terus menerus hingga output yang dihasilkan sesuai dengan harapan. Pada tiap
iterasi akan dilakukan proses evaluation yang biasanya digunakan untuk
menentukan kapan harus menghentikan proses training (stopping point). Secara
garis besar, proses training terdiri dari 2 tahap : (1) Forward Pass dan (2) Backward
Pass.
1) Forward Pass
Forward pass atau biasa juga disebut forward propagation adalah proses
dimana kita membawa data pada input melewati tiap neuron pada hidden
layer sampai kepada output layer yang nanti akan dihitung errornya.

Persamaan diatas adalah contoh forward pass yang menggunakan ReLU


sebagai activation function. Dimana i adalah node pada input layer (3 node
input), j adalah node pada hidden layer sedangkan h adalah output dari node
pada hidden layer.

2) Backward Pass
Error yang kita dapat pada forward pass akan digunakan untuk mengupdate
setiap weight dan bias dengan learning rate tertentu.

Kedua proses diatas akan dilakukan berulang-ulang sampai didapatkan


nilai weight dan bias yang dapat memberikan nilai error sekecil mungkin pada
output layer (pada saat forward pass).

2.7 Case Studi Problem with ANN


Dalam paper ini saya mencoba memberikan beberapa studi kasus
menggunakan ANN dalam menyelesaikan suatu permasalahan. Saya menggunakan
aplikasi Anaconda Navigator dengan menggunakan menggunakan Jupyter
Notebook sebagai editor codingnya. Berikut 3 contoh kasus yang saya dapat
tunjukan dalam bentuk kode pemrograman serta hasil yang diberikan.

1) Fungsi Linear Sederhana


Pada bagian ini saya mau mencoba implementasi forward pass menggunakan
Python dan Numpy dahulu saja tanpa framework biar lebih jelas. Nanti pada
bagian selanjutnya saya akan mencoba dengan menggunakan Tensorflow dan
Keras. Untuk kasus pertama ini saya akan melakukan regresi untuk sebuah
fungsi linear f(x) = 3x + 2.
Arsitektur neural network program ini terdiri dari:
• 1 node pada input layer => (x)
• 1 node pada output layer => f(x)

Neural network diatas sudah saya train dan nanti kita akan melakukan forward
pass terhadap weight dan bias yang sudah didapat pada saat training. Method
forwardPass dibawah ini sangat simple sekali, operasi dot akan dilakukan pada
setiap elemen pada input dan tiap weight yang terhubung dengan input dan
ditambahkan dengan bias. Hasil dari operasi ini akan dimasukkan ke dalam
activation function. Untuk weight dan bias yang akan kita coba, nilai keduanya
sudah didapatkan pada proses training yang telah saya lakukan sebelumnya
(dalam kasus ini diinputkan: f(x) = 3x + 2 ≈ f(x) = 2.99999928x + 1.99999976).

Pada percobaan kali ini kita akan melakukan perdiksi nilai dari 7, 8, 9 dan 10.
Output yang dihasilkan seharusnya adalah 23, 26, 29, 32 dan hasil prediksi
adalah 22.99999472, 25.999994, 28.99999328 dan 31.99999256. Jika dilihat
dari hasil prediksi, masih terdapat error tapi dengan nilai yang sangat kecil.

2) Fungsi Non Linear MLP dengan Numpy


Pada kasus sebelumnya, fungsi linear yang digunakan adalah fungsi yang
sangat simple sehingga dengan menggunakan 2 layer (Input dan Output) saja
kita sudah bisa menyelesaikan permasalahan tersebut. Pada contoh kasus
fungsi non-linear regression, kita tidak dapat hanya menggunakan 2 layer saja,
namun membutuhkan setidaknya 3 layer neural network atau yang biasa
disebut Multilayer Perceptron (MLP) atau Fully-Connected Layer dengan
menggunakan non-linear activation function pada seluruh neuron di hidden
layer. Saya akan mencoba melakukan forward pass pada MLP masih dengan
Numpy saja. Untuk contoh kasusnya adalah kita akan melakukan regresi untuk
data yang sebenarnya adalah sebuah fungsi non-linear, dengan fungsi sebagai
berikut: f(x) =√2𝑥𝑥 2 + 1
Arsitektur neural networknya terdiri dari :
• 1 node pada input layer
• 8 node pada hidden layer pertama (ReLU)
• 1 node pada output layer (Linear)

Neural network diatas sudah menggunakan data train dan nanti saya akan
melakukan forward pass terhadap weight dan bias yang sudah didapat pada saat
training. Method forwardPass yang kita pakai di part sebelumnya akan
dimodifikasi sedikit dengan menambahkan argument baru untuk memilih
activation function.

Pada percobaan non-linear regression kali ini kita akan melakukan perdiksi
nilai dari -2, 0 dan 2. Output yang dihasilkan seharusnya adalah 3, 1, 3 dan
hasil prediksi adalah 2.96598907, 0.98707188 dan 3.00669343. Masih ada
sedikit error tapi paling tidak hasil diatas menunjukkan bahwa MLP dapat
melakukan regresi terhadap fungsi non-linear dengan cukup baik.
3) Fungsi Non Linear MLP dengan Keras dan Tensor Flow
Pada kasus sebelumnya kita menggunakan forward pass dengan
menggimputkan data training yang sudah diperoleh sebelumnya. Sebelum
lebih jauh, kita perlu mengingat, dalam melakukan training pada neural
network, kita melakukan proses pada diagram dibawah ini secara terus menerus
hingga loss atau error yang didapatkan memiliki nilai yang relatif kecil.

Gambar 32. Proses Forward Pass dan Backward Pass

Kita bisa saja mengimplementasikan algoritma tersebut dan membuat sebuah


neural network dengan menggunakan semua bahasa pemrograman yang kita
bisa. Namun untuk permasalahan yang sangat kompleks atau mungkin kita
membutuhkan arsitektur yang unik dan kompleks atau kita ingin menggunakan
GPU untuk mempercepat training, hal ini dapat diatasi dengan menggunakan
sebuah framework. Sama halnya seperti semua framework, deep learning
framework ada untuk memudahkan kita untuk menyelesaikan masalah
menggunakan deep learning. Sebenarnya ada banyak sekali framework untuk
deep learning. Bisa dikatakan setiap tech company besar yang ada sekarang
memiliki framework masing-masing. Google mempunyai TensorFlow,
Facebook dengan Caffe2, Microsoft dengan CNTK dan masih banyak lagi
framework lain seperti Theano dan PyTorch. Kali ini yang akan kita coba
sama-sama yaitu TensorFlow (TF).

Selain tensorflow, ada lagi satu package yang akan saya gunakan yaitu Keras.
Sebenarnya TensorFlow sudah cukup jelas cara penggunaannya, tapi kadang
dalam riset kita sering sekali untuk mencoba arsitektur lain, mencari optimizer
yang paling cepat dan bagus, tweaking hyperparameter, dan lain sebagainya.
Dengan menggunakan Keras kita bisa melakukan semua itu dengan relatif
lebih cepat dari pada ‘pure’ TensorFlow. Karena jika dibandingkan dengan
Keras, TensorFlow serasa lebih “low level” meskipun sudah ada tf.layer yang
baru. Jadi Keras adalah wrapper dari TensorFlow untuk lebih memudahkan kita
lagi. Selain TensorFlow, Keras juga dapat mensupport Theano dan CNTK
sebagai backend. Dalam kode pemrograman dibawah, saya sebelumya sudah
menginstall TensorFlow dan Keras terlebih dahulu. Kita akan menyelesaikan
fungsi yang sama dengan bagian sebelumnya, yaitu fungsi: f(x) =√2𝑥𝑥 2 + 1
Sebelumnya kita akan membuat data dengan menggunakan numpy. Input data
nya dari rentang -20 sampai 20 dengan step 0.25. Kita juga buat targetnya
sesuai dengan persamaan diatas. Setelah data ada, kita bisa mulai membuat
modelnya. Arsitektur yang akan kita coba adalah :
• 1 Input Node
• 8 node pada Hidden Layer 1 dengan ReLU activation
• 4 node pada Hidden Layer 2 dengan ReLU activation
• 1 Output node dengan Linear activation

Disini kita juga menentukan optimizer yang akan kita gunakan, disini kita akan
menggunakan SGD dan Mean Squared Error (MSE) sebagai loss functionnya.
Sebelum kita bisa melakukan training, kita harus meng-”compile” model kita
terlebih dahulu. Setelah model siap, kita bisa mulai melakukan training dengan
data yang kita sudah buat diawal. Untuk melakukan training, kita harus
memanggil method fit. Kita akan lakukan ini hingga 100 epoch dan
menyimpan semua parameter (weights dan bias) kedalam sebuah file. Epoch,
learning rate, batch_size, dll ini adalah hyperparameter yang bisa kita tentukan.
Sedangkan nilai hyperparameter yang ideal, sampai saat ini masih belum ada
riset yang bisa memecahkan masalah tersebut. Sebenarnya ada metode seperti
Grid Search contohnya untuk mencari hyperparameter, tapi tetap saja tidak
terjamin kualitasnya. Setelah 100 epoch, saya mendapatkan MSE sebesar 0.05
untuk training data. Pada tahap ini kita akan lakukan prediksi terhadap angka
lain diluar training data yaitu 26 dan akan membandingkan hasil prediksi
seluruh training data dengan target. Kita bisa gunakan matplotlib untuk
membuat dua grafik dan melihat perbandingannya. Line merah untuk target
dan line biru untuk hasil prediksi. Untuk hasil prediksi dari 26, saya dapatkan
36.64408 sedangkan kalau dihitung seharusnya 36.783. Masih ada error tapi
tidak terlalu jauh/masih dapat diterima, selain itu grafik prediction dibanding
dengan target untuk semua training menunjukan data sangat identik sekali.
Kode pemrograman dan output ditunjukkan seperti dibawah ini.
4) Deep Learning ANN dengan Input Dataset
Pada bagian sebelum kita sudah mencoba ANN dengan beberapa framework.
Pada kasus kali ini serupa dengan sebelumnya, namun dengan kasus yang lebih
nyata serta menggunakan sumber data dari dataset yang dimasukan ke kode
pemrograman. Data set yang digunakan adalah data pemeriksaan dengan 6
komponen hasil pemeriksaan. AAN digunakan untuk mendiagnosa apakah dari
dari input baru yang akan diberikan, ANN dapat menunjukan data tersebut
mengidap Diabetes atau tidak. Data yang diinputkan berbentuk file .csv.
Langkah pertama kita mengimport semua library yang akan digunakan dalam
model. Lalu kita melakukan upload data. karena data yang kita miliki dalam
format .csv, maka kita menggunakan bantuan library pandas.
Tahapan selanjutnya adalah kita memisahkan data/split data berdasarkan
variabel input dan output. Data yang kita miliki mempunyai variabel input (X)
berupa: number of times pregnant, plasma glucose concentration a 2 hours in
an oral glucose tolerance test, diastolic blood pressure (mm Hg), triceps skin
fold thickness (mm), 2-Hour serum insulin (mu U/ml), Body mass index
(weight in kg/(height in m)^2), Diabetes pedigree function dan Age (years).
Sedangkan variabel output (Y) berupa kelas variabel 1 dan 0.

Kemudian kita melakukan normalisasi terhadap data.

Selanjutnya kita membagi data menjadi 80% data training dan 20% data
testing.

Pada tahap selanjutnya kita mendefinisikan model. Pada tahap inilah kita
merumuskan struktur ANN. Model dalam Keras didefinisikan sebagai urutan
lapisan. Kita membuat model Sequential dan menambahkan layer satu per satu
sampai kita puas dengan arsitektur jaringan yang dibuat. Hal pertama yang
harus dilakukan adalah memastikan layer input memiliki jumlah fitur input
yang tepat. Ini dapat ditentukan saat membuat layer pertama dengan argumen
input_dim dan mengaturnya ke 8 untuk 8 variabel input.

Lapisan yang terhubung sepenuhnya ditentukan menggunakan kelas Dense.


Kita dapat menentukan jumlah neuron atau node di lapisan sebagai argumen
pertama, dan menentukan fungsi aktivasi menggunakan argumen aktivasi. Kita
akan menggunakan fungsi aktivasi unit linear yang diperbaiki yang disebut
sebagai ReLU pada dua lapisan pertama dan fungsi Sigmoid di lapisan output.
Dulu, kasus bahwa fungsi aktivasi Sigmoid dan Tanh lebih disukai untuk
semua lapisan. Saat ini, kinerja yang lebih baik dicapai menggunakan fungsi
aktivasi ReLU. Kita menggunakan sigmoid pada layer output untuk
memastikan output jaringan kami antara 0 dan 1 dan mudah dipetakan ke
probabilitas kelas 1 atau snap ke klasifikasi keras dari kedua kelas dengan
ambang batas standar 0,5.

Kita dapat menyatukan semuanya dengan menambahkan setiap layer:


• Model menggunakan deretan data dengan 8 variabel (argumen
input_dim = 8)
• Lapisan tersembunyi pertama memiliki 12 node dan menggunakan
fungsi aktivasi relu.
• Lapisan tersembunyi kedua memiliki 8 node dan menggunakan fungsi
aktivasi relu.
• Lapisan output memiliki satu node dan menggunakan fungsi aktivasi
sigmoid.

Struktur tersebut diilustrasikan seperti dalam Gambar 14.

Gambar 33. Struktur ANN pima indian diabetes

Selanjutnya kita masuk pada tahapan kompilasi model. Sekarang model sudah
didefinisikan, kita bisa mengkompilasinya. Mengkompilasi model
menggunakan library numerik yang efisien di bawah penutup (yang disebut
backend) seperti Theano atau TensorFlow. Backend secara otomatis memilih
cara terbaik untuk mewakili jaringan untuk pelatihan dan membuat prediksi
untuk berjalan pada perangkat keras Anda, seperti CPU atau GPU atau bahkan
didistribusikan.

Saat mengkompilasi, kita harus menentukan beberapa properti tambahan yang


diperlukan saat melatih jaringan. Ingat pelatihan jaringan berarti menemukan
set bobot terbaik untuk memetakan input ke output dalam dataset. Kita harus
menentukan loss function/fungsi optimasi yang digunakan untuk mengevaluasi
satu set bobot, optimizer digunakan untuk mencari melalui berbagai bobot
untuk jaringan dan metrik opsional apa pun yang ingin kami kumpulkan dan
laporkan selama pelatihan.
Dalam hal ini, kita akan menggunakan cross entropy sebagai loss function.
Loss untuk masalah klasifikasi biner dan didefinisikan dalam Keras sebagai
"binary_crossentropy". Selanjutnya kita mendefinisikan pengoptimal sebagai
algoritme gradien keturunan stokastik efisien "adam". Ini adalah versi populer
dari gradient descent karena secara otomatis menyetel dirinya sendiri dan
memberikan hasil yang baik dalam berbagai masalah.
Akhirnya, karena ini adalah masalah klasifikasi, kita akan mengumpulkan dan
melaporkan keakuratan klasifikasi, yang didefinisikan melalui argumen
metrik.

Kita telah mendefinisikan model dan mengkompilasinya untuk siap melakukan


perhitungan yang efisien. Sekarang saatnya untuk mengeksekusi model pada
beberapa data. Kita dapat melatih atau menyesuaikan model kita pada data
yang dimuat dengan memanggil fungsi fit() pada model. Pelatihan terjadi pada
epoch/iterasi dan setiap epoch dibagi menjadi beberapa kelompok.
• Epoch: Satu melewati semua baris dalam dataset pelatihan.
• Batch: Satu atau lebih sampel dipertimbangkan oleh model dalam
epoch sebelum bobot diperbarui.

Satu epoch terdiri dari satu atau lebih batch, berdasarkan ukuran batch yang
dipilih dan model ini cocok untuk banyak epoch. Batch berfungsi mempercepat
pengubahan bobot. Hal itu karena bobot akan diubah ketika selesai perhitungan
pada setiap batch bukan setiap epoch. Proses pelatihan akan berjalan untuk
sejumlah iterasi tetap melalui dataset yang disebut epochs, yang harus kita
tentukan menggunakan argumen epochs. Kita juga harus mengatur jumlah
baris dataset yang dipertimbangkan sebelum bobot model diperbarui dalam
setiap zaman, yang disebut ukuran batch dan ditetapkan menggunakan
argumen batch_size.
Selanjutnya kita dapat melihat hasil evaluasi model. Pada tahap ini akan diberi
gambaran tentang seberapa baik kita model yang kita buat. Kita melakukan
evaluasi terhadap data testing. Akurasi yang didapatkan adalah 79.89%. artinya
dalam 100 data yang diberikan, model dapat menebak hampir 80% data output
dengan benar.

Terakhir kita dapat menggunakan model untuk memprediksi data baru. Kita
memiliki data baru dan ingin mengaplikasikan model yang telah kita rancang
untuk memprediksi kelas. Misalkan saya menginputkan nilai parameter untuk
masing-masing variabel input: 2, 120, 53, 20, 5, 40.3, 2.3, dan 46. Sebelumnya
kita harus menormalisasi kembali data ini sebelum dimasukkan ke model.
Model akan melakukan prediksi dan output yang dihasilkan adalah kelas 0.

Dari output yang ditunjukkan diatas, kita dapat menyatakan bahwa ANN
melakukan diagnosa terhadap data yang baru diinputkan, bahwa data dengan
hasil tes pemeriksaan tersebut maka disimpulkan data (orang) tersebut tidak
Diabetes dengan tingkat akurasi 79,87%.
Daftar Pustaka

Naveen. 2019. Pentaho Tutorial – Learn Pentaho from Experts.


https://intellipaat.com/blog/tutorial/pentaho-tutorial/ [diakses 10 Maret 2020]

Putra, Jan Wira Gotama. 2019. Pengenalan Pembelajaran Mesin dan Deep Learning
Edisi 1.3. E-Book Online PhD Student in Tokyo Institute of Technology.

Rahimah, Azkiyatu., Juwita, Ratna dan Made Arya Pratiwi. 2013. Petunjuk
Penggunaan Aplikasi Open Source Pentaho. Binus University.

Sena Samuel. 2017. Pengenalan Deep Learning. Medium Online Platform.


https://medium.com/@samuelsena/pengenalan-deep-learning-8fbb7d8028ac
[diakses 10 Maret 2020]

Suhartono, Derwin. 2012. Dasar Pemahaman Neural Network. School of Computer


Science BINUS University. https://socs.binus.ac.id/2012/07/26/konsep-
neural-network/ [diakses 10 Maret 2020]

Wibisono, Yudi. 2014. Pengantar Pentaho Data Integration (Kettle). Ilmu


Komputer Universitas Pendidikan Indonesia, Bandung.

Anda mungkin juga menyukai