You are on page 1of 102

SKRIPSI

PENERAPAN METODE NEURAL NETWORK


BACKPROPAGATION UNTUK PREDIKSI RESIKO
SANDAR KAPAL TANGKER PALM I

NURUL ICHWANTI
1111100736

DOSEN PEMBIMBING :
Abdul Haris, S.Kom
Hadiq, S.T., M.Kom

PROGRAM STUDI TEKNIK INFORMATIKA


SEKOLAH TINGGI ILMU KOMPUTER PGRI
BANYUWANGI
201
5

LEMBAR PENGESAHAN PROPOSAL SKRIPSI


Judul
Oleh
NIM

: PENERAPAN METODE NEURAL NETWORK BACKPROPAGATION


UNTUK PREDIKSI RESIKO SANDAR KAPAL TANGKER PALM I
: NURUL ICHWANTI
: 1111100736
Telah disidangkan pada

Hari
: Rabu
Tanggal : 21Januari 2015
Tempat : Ruang Sidang STIKOM PGRI Banyuwangi
Mengetahui / Menyetujui :

Pembimbing I

Pembimbing II

Abdul Haris, S.Kom


NIDN. 0718128501

Hadiq, S.T., M.Kom


NIDN. 0713077804

Dosen Penguji I

Dosen Penguji II

Dwi Yulian RL., M.Kom


NIDN. 0713078001

Faruk Alfiyan, M.Kom


NIDN. 0721017404

Ketua Program Studi TI

Rachman Yulianto, S.Kom


NIDN. 0711077704

ii

PENERAPAN METODE NEURAL NETWORK BACKPROPAGATION


UNTUK PREDIKSI RESIKO SANDAR KAPAL TANGKER PALM I
NURUL ICHWANTI
1111100736
Abstrak :

Kapal Tangker PALM I merupakan alat transportasi yang dispesifikasikan


untuk mengangkut minyak mentah atau produk turunannya. Tidak hanya dari
tempat pengeboran menuju darat, namun juga digunakan untuk sarana angkut
perdagangan minyak antar pelabuhan. Dalam aktivitas tersebut, kapal harus
melakukan penyandaran atau menepi ke dermaga untuk aktivitas bongkar muat
barang yang diawasi oleh syahbandar. Untuk menyandarkan kapal, nahkoda perlu
memperhitungkan kondisi alam, kondisi kapal maupun kondisi dermaga agar
upaya penyandaran berjalan dengan lancar, namun terkadang juga mengalami
kegagalan, faktor terbesar penyebab kegagalan tersebut adalah akibat human
error (nahkoda kurang professional atau nahkoda tidak bisa memprediksi resiko
sandar berdasarkan
kondisi yang dihadapi). Beberapa resiko
saat gagal,
diantaranya : tabrakan atau kandas.
Neural Network adalah salah satu cabang dari Artificial Intelligent. Konsep
Neural Network yakni mengadopsikerja otak manusia. Hal-hal yang
diperhitungkan (atribut) dalam upaya penyandaran kapal akan dimasukkan ke
dalam Arsitektur Jaringan Multiple Layer Network input layer lalu diproses dengan
metode belajar Supervised Learning Algoritma Backpropagation. Jaringan ini
menggunakan fungsi aktivasi sigmoid, dengan konstanta belajar (learning rate)
0.37, kondisi berhenti menggunakan iterasi dengan setting maksimum epoch
dibatasi hingga 200. Uji coba dilakukan terhadap 12 pola data, dengan hidden
neuron sejumlah 9.
Oleh karena itu, penelitian ini bertujuan untuk menerapkan metode neural
network backpropagation guna memprediksi resiko sandar Kapal Tanker PALM I,
sehingga sebelum menyandarkan kapal, nahkoda perlu memprediksi resiko sandar
berdasarkan kondisi alam, kapal dan dermaga untuk menghindari kecelakaan laut.
Jika prediksi aman, maka upaya penyandaran baiknya segera dilakukan namun jika
prediksi bahaya, nahkoda baiknya menunda penyandaran dan memutuskan untuk
berlabuh (turun jangkar) sampai kondisi memungkinkan.
Kata Kunci : Prediksi, Kapal Tanker, Sandar, Neural Network, Backpropagation.

iii

KATA PENGANTAR
Alhamdulillahi rabbil-Zou]]v. Puji syukur penulis panjatkan hanya
kepada Allah SWT., yang telah memberikan segala nikmat, bimbingan, petunjuk,
perlindungan dan kesehatan kepada penulis. Sehingga pada akhirnya penulis
dapat menyelesaikan penyusunan skripsi ini.
^l]
vPA
]A ioA ^PENERAPANMETODE NEURAL NETWORK

BACKPROPAGATION UNTUK PREDIKSI RESIKO SANDAR KAPAL TANGKER PALM 1 _A ]v]A

dilakukan untuk memenuhi salah satu persyaratan pendidikan di Sekolah Tinggi


Ilmu Komputer PGRI Banyuwangi Program Studi Teknik Informatika. Namun

demikian, sangat disadari bahwa skripsi ini masih jauh dari kesempurnaan yang
tidak lepas dari kesalahan dan kekurangan, sehingga diharapkan dapat diperbaiki,
dikembangkan dan disempurnakan oleh skripsi selanjutnya.
Dalam kesempatan ini, penulis menyampaikan rasa terima kasih kepada
yang terhormat :
1. Bapak H. Chairul Anam, S.Kom, MM selaku Ketua STIKOM PGRI Banyuwangi.
2. Bapak Rachman
Yulianto, S.Kom selaku
Ketua Program Studi
Teknik
Informatika STIKOM PGRI Banyuwangi.

3. Bapak Abdul Haris, S.Kom selaku Pembimbing I, yang dengan sabar telah
banyak memberikan waktu, bimbingan, kritik, saran maupun motivasi dalam
proses pengerjaan skripsi ini.
4. Bapak Hadiq, S.T., M.Kom selaku
PembimbingII, yang telahbanyak
memberikanwaktu, bimbingan, kritik
maupun saran dalam proses
pengerjaan skripsi ini.
5. Bapak danIbu dosen Program Studi Teknik
Informatika yang telah
memberikan pengetahuan selama masa perkuliahan.
6. Kedua orang tua, dan teman-temanku yang selalu mendoakan yang terbaik
dan memberi motivasi.
7. Serta pihak-pihak lain yang tidak dapat disebutkan satu persatu disini yang
telah banyak memberikan bantuan demi selesainya laporan ini.

iv

Akhir kata, semoga skripsi ini memberikan manfaat bagi penulis pada
khususnya dan pembaca pada umumnya.
Banyuwangi, 21 Januari 2015
Penulis

* Kupersembahkan
Dengan Setulus Hati Kepada *

Ayah dan Ibuku tercinta ...


Harta paling berharga yang mengajarkanku hidup,
yang selalu menyayangi dan menuntunku.

Adik-adikku tersayang, pelipur lara ku.


Sahabat-sahabat yang selalu mengkhawatirkan
dan menasihatiku.

Serta almamater yang kubanggakan.

vi

Ilmu merupakan tanda kebaikan Allah kepada seseorang "Barang siapa yang
Allah menghendaki kebaikan padanya, maka Allah akan membuat dia paham
ouAPuX_
(HR Bukhari dan Muslim)

I
I


Allah mengangkat derajat orang yang berilmu. Sebagaimana firman Allah, ^Allah
akan meninggikan orang-orang yang beriman di antaramu dan orang-orang
yang diberi ilmu pengetahuan beberapa derajatX_
[QS. Al-Mujadalah : 11]

^v janganlah kalian lemah, dan janganlah kalian bersedih, karena kalian


adalah yang paling tinggi, selagi kalian beriman (kepada Allah dan Rasul-EX_
[QS. Ali Imran: 139]

I
I I

^zAooZUA]lAAluZvAlo]AAvPAvPlAi]lvAuZXAvA
apabila Engkau berkehendak, Engkau akan menjadikan kesusahan menjadi
luZvX_A
(HR. Ibnu Hibban dalam Shahihnya no. 2427)

vii

DAFTAR ISI
Halaman

HALAMAN JUDUL ....................................................................................................i

HALAMAN PENGESAHAN .......................................................................................ii

ABSTRAK ................................................................................................................iii

KATA PENGANTAR................................................................................................. iv

HALAMAN PERSEMBAHAN ................................................................................... vi

HALAMAN MOTTO ............................................................................................... vii

DAFTAR ISI........................................................................................................... viii

DAFTAR GAMBAR................................................................................................. xii

DAFTAR TABEL..................................................................................................... xvi


BAB I PENDAHULUAN...........................................................................................1
1.1 Latar Belakang ....................................................................................1
1.2 Rumusan Masalah ..............................................................................2
1.3 Batasan Masalah.................................................................................2
1.4 Tujuan Penelitian ................................................................................2
1.5 Manfaat Penelitian .............................................................................3
BAB II TINJAUAN PUSTAKA ....................................................................................5
2.1 Profil Kapal (Objek Penelitian)............................................................5
2.2 Susunan Awak Kapal Tangker PALM I.................................................6
2.3 Sistem Prediksi ...................................................................................6
2.4 Tentang Penyandaran Kapal...............................................................7
2.4.1 Prosedur Penyandaran Kapal .................................................7
2.4.2 Klasifikasi kondisi Kapal Tangker PALM I ...............................8
2.4.3 Data History ...........................................................................9
2.5 Artificial Neural Network..................................................................10
2.5.1 Konsep Dasar Jaringan Syaraf Tiruan...................................12
2.5.2 Struktur Neural Network .....................................................13
2.5.3 Arsitektur Jaringan Syaraf Tiruan.........................................15

viii

2.5.4 Metode Pelatihan/Pembelajaran JST.....................................17


2.5.5 Fungsi Aktivasi Jaringan Syaraf Tiruan ...................................18
2.5.6 Model Jaringan Backpropagation...........................................20
2.5.7 Arsitektur Jaringan Backpropagation .....................................21
2.5.8 Algoritma Backpropagation ....................................................21
2.5.9 Optimalitas Parameter Pelatihan JST.....................................24
2.6 Bahasa Pemrograman PHP...............................................................28
2.6.1 Sekilas tentang PHP................................................................28
2.6.2 Kelebihan t kelebihan PHP.....................................................29
2.6.3 Sintaks dan Prinsip kerja PHP .................................................29
2.7 CI (CodeIgniter).................................................................................30
2.7.1 Sekilas tentang CodeIgniter....................................................30
2.7.2 Alasan menggunakan CI .........................................................30
2.7.3 Fitur-fitur CodeIgniter ............................................................31
2.8 MVC (Model, View, Controller) ........................................................32
2.8.1 Sekilas tentang MVC...............................................................32
2.8.2 CI dan MVC .............................................................................33
2.9 MySQL ...............................................................................................34
2.10 SQL (Structured Query Language)..................................................35

BAB III METODE PENELITIAN................................................................................37


3.1 Metode Penelitian ............................................................................37
3.2 Analisa Data ......................................................................................38
3.2.1 Atribut dan Target Atribut .......................................................38
3.2.2Atribut dan Value of Atribut.....................................................39
3.2.3 Normalisasi Data ......................................................................39
3.2.4 Tabel Data ................................................................................40
3.3 Implementasi Arsitektur Jaringan Backpropagation ........................40
3.4 Flowchart Training JST Backpropagation..........................................42
3.5 Flowchart Testing JST Backpropagation...........................................45

3.6 Desain Sistem Logical Database .......................................................46

ix

3.7 Prototype Desain ..............................................................................47


3.7.1 Prototype Desain Master .......................................................47
3.7.2 Prototype Desain Training......................................................47
3.7.3 Prototype Desain Testing .......................................................48

BAB IV IMPLEMENTASI DAN UJI COBA................................................................. 49


4.1 Halaman Login ..................................................................................49
4.2 Halaman Awal...................................................................................50
4.3 Halaman Master ...............................................................................52
4.4 Halaman Training..............................................................................56
4.5 Hasil Pengujian Data Training ...........................................................66
4.6 Halaman Testing ...............................................................................68
4.7 Hasil Uji Coba Testing .......................................................................72

BAB V PENUTUP ...................................................................................................75


5.1 Kesimpulan .......................................................................................75
5.2 Saran................................................................................................. 75

DAFTAR PUSTAKA ................................................................................................. 77

PERNYATAAN KEASLIAN TULISAN ........................................................................81


RIWAYAT HIDUP...................................................................................................83
LAMPIRAN

Halaman ini sengaja dikosongkan

xi

DAFTAR GAMBAR
Gambar

Halaman

2.1 Tampak Samping Kapal Tangker PALM I.........................................................5


2.2 Struktur Neuron Pada Otak Manusia............................................................12

2.3
Struktur ANN ................................................................................................. 14

2.4Jaringan Layar Tunggal ..................................................................................15

2.5Jaringan Layar Jamak ....................................................................................16

2.6Jaringan Reccurent........................................................................................16

2.7Fungsi Undak Binner (Hard Limit) ................................................................. 18

2.8Fungsi Aktivasi Threshold..............................................................................18

2.9Fungsi Bipolar................................................................................................19

2.10 Fungsi Bipolar dengan Threshold................................................................19

2.11Fungsi Aktivasi Sigmoid ...............................................................................19

2.12Fungsi Aktivasi Identitas..............................................................................20


2.13 Arsitektur Jaringan Backpropagation..........................................................21

2.14Ringkasan Algoritma Backpropagation .......................................................23

2.15 Prinsip kerja pengaksesan berkas PHP........................................................30

2.16Skema kerja MVC ........................................................................................32

2.17Flowchart CI mengimplementasi MVC ........................................................33

3.1Langkah-langkah Penelitian ..........................................................................37


3.2 Multilayer Network Pola Data Training Record 1 .........................................41

3.3 Flowchart Training JST Backpropagation ......................................................42

3.4Flowchart Testing JST Backpropagation ........................................................46

3.5
Desain Sistem Logical Database ....................................................................47

3.6Prototype Desain Master ..............................................................................47

3.7Prototype Desain Training.............................................................................48

3.8Prototype Desain Testing ..............................................................................48

4.1
Halaman Login ...............................................................................................49

4.2Source Code Validation Rules .......................................................................49

4.3Source Code Button Login.............................................................................50


xii

4.4Halaman Awal ...............................................................................................51

4.5Source Code Menu Sidebar ...........................................................................51

4.6Halaman Master ............................................................................................52

4.7Input Data Training........................................................................................53

4.8Validasi Input Pola Data Sama.......................................................................53

4.9 Validasi Pengecekan Pola Data Training ......................................................54

4.10Source Code Button Submit........................................................................54

4.11Source Code Button Update .......................................................................55

4.12Source Code Button Delete .........................................................................55

4.13Source Code Button Cancel.........................................................................56

4.14 Halaman Training ........................................................................................56


4.15 Source Code Button Proses Training...........................................................56
4.16 Source Code Button Proses Training Lanjutan............................................57

4.17Source Code Function Inisialisasidata .........................................................58


4.18 Source Code Function Inisialisasidata Lanjutan..........................................59

4.19 Source Code Function Inisialisasibobot ......................................................59


4.20 Source Code Function Inisialisasibobot Lanjutan .......................................60
4.21 Source Code Nested for untuk kondisi berhenti.........................................61
4.22 Source Code Function Feedforward............................................................61
4.23 Source Code Function Feedforward Lanjutan ............................................62

4.24Source Code Function Backpropagate ........................................................63


4.25 Penggunaan Session untuk Penyimpanan Bobot........................................64

4.26Source Code Function Akurasi ....................................................................64

4.27 Source Code Function Akurasi Lanjutan .....................................................65

4.28Halaman Testing..........................................................................................69

4.29 Source Code Function Testing.....................................................................69

4.30Source Code Function Testing Lanjutan ......................................................70


4.31 Source Code Function Testing Lanjutan 1...................................................71
4.32Keterangan ..................................................................................................72

4.33 Uji Coba Data Training Pola 1 (Input Kondisi) .............................................72

xiii

4.34Hasil Uji Coba Data Training Pola 1.............................................................73


4.35Uji Coba Data Testing Pola 6 (Input Kondisi) ..............................................74

4.36Hasil Uji Coba Data Testing Pola 6 ..............................................................74

xiv

Halaman ini sengaja dikosongkan

xv

DAFTAR TABEL
Tabel

Halaman

2.1Susunan Awak Kapal Tanker PALM I ...............................................................6

3.1 Tabel Atribut dan Target Atribut ...................................................................38


3.2 Tabel Atribut dan Value of Atribut................................................................39

3.3 Tabel Konversi Value of Atribut ....................................................................39

3.4 Tabel Konversi Target Atribut .......................................................................39

3.5Tabel Data Training .......................................................................................40

3.6Tabel Data Testing.........................................................................................40

4.1 Hasil Pengujian Berdasarkan Jumlah Hidden................................................66

4.2Hasil Pengujian Berdasarkan Learning Rate..................................................66

4.3Hasil Pengujian Berdasarkan Iterasi ..............................................................67

4.4Hasil Pengujian Optimal ................................................................................68

4.5Tabel Data Training .......................................................................................72

4.6
Ringkasan Uji Coba Data Training ................................................................. 73

4.7Tabel Data Testing.........................................................................................73

4.8Ringkasan Uji Coba Data Testing ...................................................................74

xvi

Halaman ini sengaja dikosongkan

xvii

BAB I
PENDAHULUAN
1.1

Latar Belakang
Dewasa ini peranan
komputer dirasakan
semakinpenting dalam

perkembangan
kehidupanmasyarakat modern. Komputer dengan
segala
kelebihan yang dimiliki telah menjadi pilihan utama dalam membantu manusia

untuk mengerjakan tugasnya. Salah satu kelebihan yang dimiliki komputer yaitu
dapat mengerjakan tugas lebih singkat dibandingkan jika dikerjakan manusia,
tetapi komputer hanya dapat mengolah dan menganalisa masalah dengan data
yang tersedia lengkap. Oleh karena itu dikembangkanlah cabang ilmu yang cukup
populer, yakni Artificial Intelligence. Artificial Intelligence didefinisikan sebagai
entitas ilmiah. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin
(komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan
manusia.
KemudianperkembanganArtificial Intelligencemulai mendorong
munculnya konsep-konsep baru lainnya. Salah satunya adalah Metode Neural
Network, yang pada dasarnya meniru prinsip kerja sistem saraf otak manusia.
Neural Network dapat diterapkan untuk berbagai macam aplikasi terutama
untuk peramalan/prediksi. Salah satu pemanfaatan Metode Neural Network

peneliti terapkan dalam dunia transportasi laut khususnya bidang perkapalan.


Neural Network akan digunakan untuk mengadopsi prinsip kerja otak nahkoda
Kapal Tanker PALM I pada khususnya dalam memprediksi resiko sandar kapal
berdasarkan kondisi yang dihadapi, dan pembelajarannya berdasarkan data
history atau pengalaman dari nahkoda Kapal Tanker PALM I.

Adapun prosedur yang dilakukan nahkoda dalam upaya penyandaran kapal


adalah mendapat informasi/berita penyandaran kapal dari agen kapal atau
syahbandar, setelah mendapat kabar dari agen kapal atau syahbandar nahkoda
memperhitungkan kondisi alam, kondisi kapal, dan kondisi dermaga. Jika

perhitungan kondisi sudah matang, maka nahkoda mengkondisikan Anak Buah

Kapal (ABK) dalam persiapan penyandaran kapal sesuai tata kerja masing-masing
ABK. Prediksi resiko sandar yang diperhitungkan nahkoda menjadi hal yang
sangat penting karena jika nahkoda salah perhitungan dan salah mengambil
keputusan dalam kondisi tertentu maka akan menghadapi resiko saat gagal
dalam penyandaran, diantaranya : tabrakan atau kandas.
Berawal dari latar belakang di atas, penelitian ini bertujuan untuk
menerapkan metode neural network backpropagation guna memprediksi resiko
sandar Kapal Tanker PALM I sesuai gejala atau kondisi yang diperhitungkan dan
kemudian didapat hasil keputusan.
1.2

Rumusan Masalah
Rumusan masalah pada penelitian ini adalah :

Bagaimana menerapkan
metode neural network
denganalgoritma
backpropagation untuk prediksi resiko sandar Kapal Tanker PALM I
berdasarkan kondisi alam, kondisi kapal dan kondisi dermaga ?
1.3

Batasan Masalah
Ruang lingkup pembahasan :

a) Arsitektur Jaringan menggunakan Jaringan Layar Jamak (Multiple Layer


Network), yang terdiri dari 3 jenis layer yakni input layer, hidden layer,
dan output layer.
b) Metode Pembelajaran menggunakan Supervised Learning (pembelajaran
terawasi) yaitu dengan Algoritma Backpropagation.
c) Fungsi Aktivasi menggunakan Fungsi Sigmoid.
d) Data Training berdasarkan data history dari Nahkoda Kapal Tanker PALM I
dalam melakukan sandar kapal.
e) Iterasi sebagai batasan training (set banyaknya epoch sebagai kondisi
berhenti).
1.4

Tujuan Penelitian
Tujuan pada penelitian ini adalah :

Mampu menerapkanmetode neural network dengan algoritma


backpropagation untuk prediksi resiko sandar Kapal Tanker PALM I.
1.5

Manfaat Penelitian
Manfaat pada penelitian ini adalah :

1. Bagi penulis, yaitu :


a) Menambah ilmu pengetahuan serta wawasan khususnya tentang
penerapan metode Neural Network Backpropagation dalam task
prediksi dan proses penyandaran kapal.
b) Sebagai salah satu syarat kelulusan untuk memperoleh gelar strata 1
di STIKOM PGRI Banyuwangi.
2. Bagi Perusahaan atau Objek penelitian, diantaranya :
a) Memudahkan nahkoda memprediksi keadaan yang dihadapi dalam
melakukanpenyandarankapal ke dermaga,sehinggadengan
mempertimbangkan
kondisi yang dihadapi nahkoda dapat
memutuskan untuk melakukan penyandaran atau berlabuh.
b) Meminimalisir kecelakaan laut dalam upaya penyandaran karena
human error (nahkoda kurang professional atau nahkoda salah
perhitungan kondisi).
c) Menghindari kecelakaan laut yang menyebabkan kerugian material
dan pencemaran laut akibat tumpahan minyak ke laut.
d) Sebagai masukan untuk melakukan prosedur penyandaran kapal.
3. Bagi Lembaga Pendidikan atau pembaca, yaitu :
a) Sebagai tambahan pengetahuan bagi pembaca atau bagi peneliti
untuk melakukan penelitian di masa datang.
b) Memberikan kontribusi akademis bagi pihak lembaga.
c) Salah satu saranamempromosikan
diri kepadainstansi milik
pemerintah maupun swasta.

Halaman ini sengaja dikosongkan

BAB II
TINJAUAN PUSTAKA
2.1

Profil Kapal (Objek Penelitian)

Gambar 2.1 Tampak Samping Kapal Tangker PALM I


Nama Kapal

TK. PALM I

Pemilik dan Alamat :

PT. TANJUNG MAS BAHARI PERKASA t Semarang

Buatan

Mitsubishi Rubber

Type

MTA t 6A

Nomor Seri :

7108

Tahun Pembuatan

January - 1991

Ukuran (DWT/GT/HP) :

/1102/

Bendera

Indonesia

Urgensi

CPO / Olein / BBM

Panjang / Lebar / Tinggi


: 65.00m / 18.00 m / 3.66 m

Pelabuhanyang akan: :u]UA dXlZUA W[vPUA ^X>]o]vUA ^X>]UA u]UA WlXA


Disinggah

Baru, Renbayas, Buatan, Tembilahan, S.Guntung, Ka.


Tungkal, Ka. Gaung, Siak Indrapura, Batam, Ka. Enok,
Belawan, Tlk. Bayur, Panjang, Pk. Balam, Tg. Rising,
Tg.Ruh, Tg. Priok, Marunda, Tg. Perak, Tg. Emas,
C]}vUA W[vlUA <vPUA dXDov}UA ^XA DvUA
Kumai, Ka. Jelai, Sukamara, T. Banteng, Bt. Licin,
Satui, T. Grogot, Merak, Pabelokan, Benoa, Benete,
Kendawangan, S. Rangit, S. Liat, P. Sambu, P. Bintan,
Senakin, Manggar, Ka.Tanjung, Samarinda,
S.Meriam, TI. Adang, S. Kerang, Tg. Wangi,
Gilimanuk, Grati, Tg. Redep.

Sumber : Dokumen Perizinan Pengoperasian Kapal Tramper Dalam Negeri


dikeluarkan oleh Departemen Perhubungan Ditjen Hubla, 2013.

2.2

Susunan Awak Kapal Tanker PALM I


Tabel 2.1 Susunan Awak Kapal Tanker PALM I

No.

Nama

Posisi

Ijazah /
Ket.
Sertifikat

1. Anwar Iskandar
Nahkoda / Perwira
ANT III
2. Setyo Budi
Chief Officer / Mualim II
ANT IV
3. Anamin
Second Officer / Mualim III ANT V
4. Antony
Markonis / Juru Radio
ANT V
5. Sartono
Juru Mudi I
ATT Dasar 6. Joko
Juru Mudi II
ATT Dasar 7. Mochammad Khadavi
Juru Mudi III
ATT Dasar Kepala Kamar Mesin / Masinis A
I NT IV
8. Supardi
9. Eko Prasono
Masinis II
ANT V
10. Sukaryo
Oiler / Juru Minyak I
ATT Dasar 11. Tri
Oiler / Juru Minyak II
ATT Dasar 12. Teguh
Juru Masak
ATT Dasar 13. Puji Purwanto
Bosun / Kepala Kerja
ATT Dasar 14. Wiranto
Klasi I
ATT Dasar 15. AhmAZ]([]
Klasi II
ATT Dasar 16. Agus
Klasi III
ATT Dasar Total 16 orang awak kapal
Sumber : Dokumen susunan awak kapal dikeluarkan oleh operator, 2014.
2.3

Sistem Prediksi
Schronderberg(1971) dalam Suradinata(1996) secara ringkas

menjelaskan bahwa sistem adalah :


1. Komponen-komponen yang saling berhubungan satu sama lain.
2. Suatu keseluruhan tanpa memisahkan komponen pembentuknya.
3. Bersama-sama dalam mencapai tujuan.
4. Memiliki input dan output yang dibutuhkan oleh sistem lainnya.
5. Terdapat proses yang mengubah input menjadi output.
Sedangkan,dalam Kamus Besar
BahasaIndonesia(KBBI), prediksi
didefinisikansebagai ramalan; prakiraan; Dengan
definisi tersebut
dapat
disimpulkan bahwa Sistem Prediksi adalah seperangkat bagian t bagian yang
saling berhubungan
yang penerapannya digunakan
untuk memprakirakan

rancangan sistem, memiliki input dan menghasilkan output berupa keputusan


dari prakira.
2.4

Tentang Penyandaran Kapal

2.4.1 Prosedur Penyandaran Kapal


Menurut Anwar (2014), pengertiansandar kapal adalah upaya
menambatkan kapal ke dermaga. Adapun prosedur penyandaran kapal yang
dilakukan oleh nahkoda, diantaranya :
1. Mendapat info/berita penyandaran kapal dari agen/syahbandar.
2. Setelahmendapatkabar dari syahbandar,
nahkoda memperhitungkan
kondisi alam, diantaranya :
Kecepatan angin
Ketinggian ombak
Kencangnya arus air laut
3. Memperhitungkan kondisi kapal, diantaranya :
Draft kapal (kedalaman lambung kapal dibawah permukaan air laut)
4. Memperhitungkan kondisi dermaga :
Draft dermaga (kedalaman dasar dermaga)
5. Mengkondisikan Anak Buah Kapal (ABK) dalam persiapan penyandaran
kapal.
Hal ini kemudian di konfirmasi secara lisan (Anwar Iskandar 2014, pers. comm.,
01Oktober).
Sedangkan prosedur penyandaran kapal di pelabuhan diatur dalam

Peraturan Menteri Perhubungan Nomor : KM. 21 Tahun 2007 tentang Sistem dan
Prosedur Pelayanan Kapal, Barang dan Penumpang pada Pelabuhan Laut yang
diselenggarakan oleh Unit Pelaksana Teknis (UPT) Kantor Pelabuhan, dan
Keputusan Direktur Jenderal Perhubungan Laut Nomor : UM.002/38/18/DJPL t
11tentang Standar Kinerja Pelayanan Operasional Pelabuhan Direktur Jenderal
Perhubungan Laut. (terlampir)

2.4.2 Klasifikasi kondisi Kapal Tangker PALM I


1)

Klasifikasi Kecepatan Angin ?


- Kecepatan Angin terbagi menjadi 3 : LEMAH, SEDANG, KENCANG

2)

LEMAH

0 G 10 knot

SEDANG

11 G 21 knot

KENCANG

22 G 64 knot

Klasifikasi Ketinggian Ombak ?


- Ketinggian Ombak terbagi menjadi 3 : NORMAL, SEDANG,BESAR

SEDANG

0 G 2.5 m
2.6m G 4 m

BESAR

Diatas 4 meter

NORMAL

3)

Klasifikasi Kencangnya arus air laut ?


- Kencangnya arus air laut terbagi menjadi 2 : LEMAH, SEDANG, dan
KENCANG.
LEMAH

0 G 10 knot / dalam keadaan pasang top (pergantian


pasang surut)

SEDANG 11 G 21 knot
KENCANG 22 G 64 knot

4)

Klasifikasi Draft Kapal ?


- Kedalaman lambung kapal dibawah permukaan air laut terbagi menjadi
2 : BAIK dan BURUK.
BAIK

Jika draft kapal kurang dari draft tepi dermaga minimal 5


meter (draft standart).

BURUK

Jika draft kapal lebih dalam atau sama dengan dari draft
tepi dermaga (over draft).

5)

Klasifikasi Draft Tepi Dermaga ?


- Kedalaman dasar dermaga terbagi menjadi 2 : BAIK dan BURUK.
BAIK

Jika kedalaman dasar dermaga lebih dalam dari draft


kapal minimal 5 meter (draft standart).

BURUK

Jika kedalaman dasar dermaga lebih dangkal dari draft

kapal (over draft).


Catatan :
-

Cuaca maritim, terbagi menjadi 2 :


1. Disebut Cuaca Baik, jika arus lemah, angin lemah, ombak normal.
2. Disebut Cuaca Buruk, jika arus kencang, angin kencang, ombak besar.

- Adanya ombak terjadinya saat ada perlawanan arus dan angin. Semakin
besar perlawanan, semakin besar pula ombak yang dihasilkan.
-

Lebih mudah menyandarkan kapal jika melawan arus daripada searah


dengan arus. Keadaan ini aman karena menghindariterbawa

arus/benturan keras dengan dermaga atau kapal lain karena hilang kendali.
-

Resiko Gagal dalam Upaya Sandar ada dua, yakni :

Terbawa arus / tabrakan, karena kesalahan posisi dalam arus kencang.

Kandas / terbentur karang, biasanya salah perhitungan draft.

Saat kondisi tidak memungkinkan untuk melakukan penyandaran, maka


nahkoda akanmenunda penyandaran
dengancara berlabuh(turun
jangkar).

Lebih mudahmemegang kendali kapal jika ketinggian


kapal diatas
permukaan air lebih rendah daripada draft kapal.

Besar ombak relatif, tergantung besar dan kecil kapal. Kapal Tangker PALM
I berkapasitas 10.000 ton, panjang = 65 m; lebar=18 m; tinggi=3.66
m ;ombak normal dibawah 2.5 meter, ombak sedang diatas 2.5 meter
sampai dengan 4 meter, ombak besar diatas 4 meter.

Hal ini kemudian di konfirmasi secara lisan (Anwar Iskandar 2014, pers. comm.,
17Oktober).
2.4.3 Data History
Berikut data history berdasarkan pengalaman pakar :

Dalam kondisi kecepatan angin dalam rentang lemah, ketinggian ombak

dalam rentang normal, kencangnya arus dalam rentang lemah, draft kapal

baik, dan draft tepi dermaga baik maka penyandaran aman dilakukan, tanpa
kendala.

Dalam kondisi kecepatan angin dalam rentang lemah, ketinggian ombak

dalam rentang normal, kencangnya arus dalam rentang lemah, draft kapal
buruk, dan draft tepi dermaga buruk maka penyandaran aman dilakukan,
garis besar history penyandaran aman karena tidak ada goyangan atau
benturan dikarenakan ombak, meskipun penyandaran tidak sempurna.

Dalam kondisi kecepatan angin dalam rentang sedang, ketinggian ombak


dalam rentang sedang, kencangnya arus dalam rentang sedang, draft kapal

baik, dan draft tepi dermaga baik maka penyandaran aman, garis besar
history penyandaran aman tetapi dibutuhkan juga teknik dan kesigapan
nahkoda mengemudikan kapal.

Dalam kondisi kecepatan angin dalam rentang sedang, ketinggian ombak


dalam rentang sedang, kencangnya arus dalam rentang sedang, draft kapal
buruk, dan draft tepi dermaga buruk maka penyandaran tidak aman, garis
besar history menyebabkan kandas/terbentur karang karena ada goyangan
dari ombak.

Dalam kondisi kecepatan angin dalam rentang kencang, ketinggian ombak


dalam rentang besar, kencangnya arus dalam rentang kencang, draft kapal
baik, dan draft tepi dermaga baik maka penyandaran berbahaya, garis besar
history menyebabkan terbawa arus/tabrakan.

Dalam kondisi kecepatan angin dalam rentang kencang, ketinggian ombak


dalam rentang besar, kencangnya arus dalam rentang kencang, draft kapal
buruk, dan draft tepi dermaga buruk maka penyandaran sangat berbahaya,
garis besar history menyebabkan kandas/terbentur karang.
Hal ini kemudian di konfirmasi secara lisan (Anwar Iskandar 2014, pers. comm.,
25Oktober).
2.5

Artificial Neural Network


Artificial Neural Network atau Jaringan Saraf Tiruan (JST) merupakan

salah satu representasi buatan dari otak manusia yang selalu mencoba untuk
10

mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan


digunakankarena jaringan saraf tiruan ini diimplementasikan
dengan
menggunakan program komputer yang mampu menyelesaikan sejumlah proses
perhitungan selama proses pembelajaran (Kusumadewi, 2003).
Menurut Nur Afifah (2011) JST merupakan metode komputasi yang
didasarkan pada model matematika yang memiliki struktur seperti syaraf dan

operasi yang menyerupai otak, JST dapat diterapkan untuk berbagai macam
aplikasi terutama untuk peramalan/prediksi. Jaringan Syaraf Tiruan ditentukan
oleh 3 hal (Siang, 2004) :
1. Pola hubungan antar neuron (disebut arsitektur jaringan).
2. Metode untuk menentukanbobot penghubung (disebut
metode
training/learning).
3. Fungsi aktivasi, yaitu fungsi yang digunakan untuk menentukan keluaran
suatu neuron.
Menurut Derwin (2012, chap. 1), 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. Pengoptimasi permasalahan.
4. Prediksi.

11

Untuk saat ini, Neural Network sudah dapat diterapkan pada beberapa
task, diantaranyaclassification,recognition,approximation,prediction,
clusterization, memory simulation dan banyak task-task berbeda yang lainnya,
dimana jumlahnya semakin bertambah seiring berjalannya waktu (Derwin, 2012,
chap. 2).
2.5.1 Konsep Dasar Jaringan Syaraf Tiruan
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.

Gambar 2.2 Struktur Neuron Pada Otak Manusia


Sumber : Dasar Pemahaman Neural Network, 2012

Dari gambar di atas, bisa dilihat ada beberapa bagian dari otak manusia, yaitu :
1. Dendrit (Dendrites) berfungsi untuk mengirimkan impuls yang diterima ke
badan sel syaraf.
2. Akson (Axon) berfungsi untuk mengirimkan impuls dari badan sel ke
jaringan lain.
3. Sinapsis berfungsi sebagai unit fungsional di antara dua sel syaraf.

12

Proses yang terjadi pada otak manusia adalah :


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
tergantungseberapabesar 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). (Derwin, 2012, chap. 3)
Menurut Maria (2012), setiap pola-pola informasi input dan output yang
diberikan kedalam jaringan syaraf tiruan diproses dalam neuron. Neuron-neuron

tersebut terkumpul didalam lapisan-lapisan yang disebut neuron layers. Lapisanlapisan penyusun jaringan syaraf tiruan tersebut dapat dibagi menjadi 3, yaitu :
1. Lapisan masukan (input).
Unit-unit di dalam lapisan input disebut unit-unit input. Unit-unit input

tersebut menerima pola inputan data dari luar yang menggambarkan suatu
permasalahan.
2. Lapisan tersembunyi (hidden).
Unit-unit di dalam lapisan lapisan tersembunyidisebut unit-unit
tersembunyi. Dimana outputnya tidak dapat secara langsung diamati.
3. Lapisan keluaran (output).
Unit-unit di dalam lapisan output disebut unit-unit output. Output dari
lapisanini merupakansolusi jaringan
syaraftiruan terhadapsuatu
permasalahan.
2.5.2 Struktur Neural Network
Dari struktur neuron pada otak manusia,maka konsep dasar
pembangunan neural network buatan (Artificial Neural Network) terbentuk. Ide
mendasar dari Artificial Neural Network (ANN) adalah mengadopsi mekanisme
13

berpikir sebuah sistem atau aplikasi yang menyerupai otak manusia, baik untuk
pemrosesanberbagaisinyal elemenyang diterima, toleransi terhadap
kesalahan/error, dan juga parallel processing.

Gambar 2.3 Struktur ANN


Sumber : Dasar Pemahaman Neural Network, 2012
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 dilihA ]A A ]A PuA vPvA ouvPA ]PuA ~TXA


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

14

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. (Derwin, 2012, chap. 3)
2.5.3 Arsitektur Jaringan Syaraf Tiruan
Berdasarkan arsitekturnya, model jaringan syaraf tiruan digolongkan
menjadi (Dini, 2010) :
1. Jaringan Layar Tunggal (Single Layer Network)
Pada jaringan ini, sekumpulan masukan neuron dihubungkan langsung
dengan sekumpulan keluarannya. Sinyal mengalir searah dari layar (lapisan)
masukan sampai layar (lapisan) keluaran. Setiap simpul dihubungkan dengan
simpul lainnya yang berada diatasnya dan dibawahnya, tetapi tidak dengan

simpul yang berada pada lapisan yang sama. Model yang masuk kategori ini
antara lain : ADALINE, Hopfield, Perceptron, LVQ, dan lain-lain.

Gambar 2.4 Jaringan Layar Tunggal

15

2. Jaringan Layar Jamak (Multiple Layer Network)


Jaringan dengan lapisan jamak memiliki ciri khas tertentu yaitu
memiliki 3 jenis layer yakni layer input, layer output, dan layer tersembunyi.

Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang


kompleks dibandingkan jaringan dengan lapisan tunggal (Maria, 2012).
Model yang termasuk kategori ini antara lain : MADALINE, backpropagation.

Gambar 2.5 Jaringan Layar Jamak


3. Jaringan Reccurent
Model jaringan reccurent (reccurent network) mirip dengan jaringan
layar tunggal ataupun jamak. Hanya saja, ada simpul keluaran
yang
memberikan sinyal pada unit masukan (sering disebut feedback loop).

Dengan kata lain sinyal mengalir dua arah, yaitu maju dan mundur. Contoh :
Hopfield network, Jordan network, Elmal network. (Dini, 2010)

Gambar 2.6 Jaringan Reccurent (Antonie, 2007)


16

2.5.4 Metode Pelatihan/Pembelajaran JST


Cara berlangsungnya pembelajaran atau pelatihan JST dikelompokkan
menjadi 3 yaitu (Puspitaningrum, 2006):
a. Supervised Learning (pembelajaran terawasi)

Pada metode ini, setiap pola yang diberikan kedalam JST telah diketahui
outputnya. Selisih antara pola output aktual (output yang dihasilkan) dengan

pola output yang dikehendaki (output target) yang disebut error digunakan untuk
mengoreksi bobot JST sehingga JST mampu menghasilkan output sedekat
mungkin dengan pola target yang telah diketahui oleh JST. Contoh algoritma
yang menggunakan
metode ini adalah : Hebbian, Perceptron, ADALINE,
Boltzmzn, Hopfield, Backpropagation.
Pada Proses pelatihan supervised membutuhkan pasangan data input dan
output aktual untuk dipelajari. Data input dibutuhkan sebagai masukan, dan data
output dibutuhkansebagai target jaringan. Sebelum diproses, data
dinormalisasikan terlebih dahulu. Normalisasi terhadap data dilakukan agar
jaringan tidak mengalami saturasi dan kegagalan ketika melakukan pembelajaran
(Suprayogi, et al, 2005).
b. Unsupervised Learning (pembelajaran tak terawasi)
Pada metode ini, tidak memerlukan target output. Pada metode ini tidak
dapat ditentukanhasil seperti apakah
yang diharapkan
selamaproses
pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu
range tertentu tergantung pada nilai input yang diberikan.
Tujuan pembelajaran ini adalah mengelompokkan unit-unit yang hampir
sama dalam suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk

klasifikasi pola. Contoh algoritma JST yang menggunakan metode ini adalah :
Competitive,Hebbian, Kohonen, LVQ (Learning Vector Quantization),
Neocognitron.
c. Hybrid Learning (pembelajaran hibrida)
Merupakan kombinasi dari metode pembelajaran Supervised Learning dan
Unsupervised
Learning,sebagiandari bobot-bobotnya
ditentukanmelalui

17

pembelajaran terawasi dan sebagian lainnya melalui pembelajaran tak terawasi.


Contoh algoritma JST yang menggunakan metode ini adalah algortma RBF.
2.5.5 Fungsi Aktivasi Jaringan Syaraf Tiruan

Dalam jaringan syaraf tiruan, fungsi aktivasi digunakan untuk menentukan


keluaran suatu neuron. Beberapa fungsi aktivasi yang digunakan adalah :
1) Fungsi Undak Binner (Hard Limit)
Jaringan dengan lapisan tunggal sering menggunakan
fungsi undak (step

function) untuk mengkonversikan input dari suatu variable yang bernilai kontinu
ke suatu output biner (0 atau 1).

Gambar 2.7 Fungsi Undak Binner (Hard Limit) (Antonie, 2007)


2) Fungsi Undak Binner Threshold (batas ambang)
Fungsi Threshold merupakan fungsi threshold biner. Untuk kasus bilangan

bipolar, maka angka 0 diganti dengan angka -1. Adakalanya dalam jaringan syaraf
tiruan ditambahkan suatu unit masukkan yang nilainya selalu 1. Unit tersebut
dikenal dengan bias. Bias dapat dipandang sebagai sebuah input yang nilanya
selalu 1. Bias berfungsi untuk mengubah threshold menjadi = 0.
:T; L

1
0

Gambar 2.8 Fungsi Aktivasi Threshold (Kusumadewi, 2004)


18

3) Fungsi Bipolar (Symetric Hard Limit)


Fungsi Bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya
saja output yang dihasilkan berupa 1, 0 atau -1.

Gambar 2.9 Fungsi Bipolar (Antonie, 2007)


4) Fungsi Bipolar dengan Threshold
Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner dengan
threshold, hanya saja output yang dihasilkan berupa 1, atau -1.
&vP]A]}oA~vPvAv]o]AuvPA}AA]ulvAP]WA

Gambar 2.10 Fungsi Bipolar dengan Threshold (Antonie, 2007)


5) Fungsi Sigmoid
Fungsi ini sering digunakan karena nilai fungsinya yang sangat mudah
untuk di diferensiakan.
:T; L

5
5>7

Gambar 2.11 Fungsi Aktivasi Sigmoid (Maria, 2012)


19

6) Fungsi Linier (Identitas)


Digunakanjika keluaranyang dihasilkan
oleh jaringansyaraftiruan
merupakan sembarang bilangan riil (bukan hanya pada range [0,1] atau [1,-1]).
Y=X

Gambar 2.12 Fungsi Aktivasi Identitas (Kusumadewi, 2004)


2.5.6 Model Jaringan Backpropagation
Model jaringan backpropagation merupakan suatu teknik pembelajaran
atau pelatihan supervised learning yang paling banyak digunakan. Metode ini
merupakan salah satu metode yang sangat baik dalam menangani masalah
pengenalan pola-pola kompleks. Didalam jaringan backpropagation, setiap unit
yang berada di lapisan input berhubungan dengan setiap unit yang ada di lapisan
tersembunyi. Setiap unit yang ada di lapisan tersembunyi terhubung dengan

setiap unit yang ada di lapisan output. Jaringan ini terdiri dari banyak lapisan
(multilayer network).
Ketika jaringan ini diberikan pola masukan sebagai pola pelatihan, maka
pola tersebut menuju unit-unit lapisan tersembunyi untuk selanjutnya diteruskan
pada unit-unit di lapisan keluaran. Kemudian unit-unit lapisan keluaran akan
memberikan respon sebagai keluaran JST. Saat hasil keluaran tidak sesuai dengan
yang diharapkan, maka keluaran akan disebarkan mundur (backward) pada
lapisantersembunyikemudiandari lapisantersembunyimenuju lapisan
masukan. Tahap pelatihan ini merupakan langkah untuk melatih suatu jaringan
syaraf tiruan, yaitu dengan cara melakukan perubahan bobot, sedangkan

penyelesaian masalah akan dilakukan jika proses pelatihan tersebut telah selesai,
fase ini disebut fase pengujian (Puspaningrum, 2006).
20

2.5.7 Arsitektur Jaringan Backpropagation


Setiapunit dari layerinput pada jaringanbackpropagation
selalu

terhubung dengan setiap unit yang berada pada layer tersembunyi, demikian
juga setiap unit layer tersembunyi selalu terhubung dengan unit pada layer
output. Jaringan backpropagation terdiri dari banyak lapisan (multilayer network)
yaitu :
1. Lapisan input (1 buah), yang terdiri dari 1 hingga n unit input.

2. Lapisan tersembunyi (minimal 1 buah), yang terdiri dari 1 hingga p unit


tersembunyi.
3. Lapisan output (1 buah), yang terdiri dari 1 hingga m unit output.

Gambar 2.13 Arsitektur Jaringan Backpropagation (Siang, 2004)


2.5.8 Algoritma Backpropagation
Algoritma pelatihan jaringan backpropagation terdiri dari 3 tahapan yaitu
(Maria, 2012):
1. Tahap umpan maju (feedforward).
2. Tahap umpan mundur (backpropagation).
3. Tahap pengupdatetan bobot dan bias.
Secara rinci algoritma pelatihan jaringan backpropagation dapat diuraikan
sebagai berikut :

21


Langkah 0 : Inisialisasi bobot-bobot, konstanta laju pelatihan
( ), toleransi
error atau nilai bobot (bila menggunakan nilai bobot sebagai
kondisi berhenti) atau set maksimal epoch (jika menggunakan
banyaknya epoch sebagai kondisi berhenti).
Langkah 1 : Selama kondisi berhenti belum dicapai, maka lakukan langkah
ke-2 hingga langkah ke-9.
Langkah 2 : Untuk setiap pasangan pola pelatihan, lakukan langkah ke-3
sampai langkah ke-8.
Langkah 3 : {Tahap I : Umpan maju (feedforward)}.
Tiap unit masukan meneriman sinyal dan meneruskannya ke
unit tersembunyi diatasnya.
Langkah 4 : Masing-masing unit di lapisan tersembunyi (dari unit ke-1
hingga unit ke-p) dikalikan dengan bobotnya dan dijumlahkan
serta ditambahkan dengan biasnya.
Langkah 5 : Masing-masing unit output (yk,k = 1,2,3,...m) dikalikan dengan
bobot dan dijumlahkan serta ditambahkan dengan biasnya.
Langkah 6 : {Tahap II : Umpan mundur (bacward propagation)}.
Masing-masing unit output (yk,k = 1,2,3,...m) menerima pola
target kt sesuai dengan pola masukan/input saat pelatihan dan
kemudianinformasikesalahan/error
lapisanoutput (G)
dihitung.
G dikirim ke lapisan
bawahnya dandigunakanuntuk
menghitung besarnya koreksi bobot dan bias antara lapisan
tersembunyi dengan lapisan output.
Langkah 7 : Pada setiap unit dilapisan tersembunyi (dari unit ke-1 hingga
ke-p; i=1...n;k=1...m)dilakukanperhitunganinformasi
F). (
kesalahan lapisan tersembunyi
F kemudian digunakan untuk menghitung besar koreksi
bobot dan bias ( Vji dan
Vjo) antara lapisan input dan lapisan
tersembunyi.

22

Langkah 8 : {Tahap III : Pengupdatetan bobot dan bias}.


Masing-masingunit output/keluaran(yk, k=1,2,3,...m)
dilakukanpengupdatetan
bias danbobotnya(j=0,1,2,...p)
sehingga menghasilkan bobot dan bias baru.
Demikian juga untuk setiap unit tersembunyi mulai dari unit
ke-1 sampai dengan unit ke-p dilakukan pengupdatetan bobot
dan bias.
Langkah 9 : Uji kondisi berhenti (akhir iterasi).
Berikut ringkasan Algoritma Backpropagation Menurut Marzuki Bin Khalid
(2009, p.30) :

Gambar 2.14 Ringkasan Algoritma Backpropagation (Marzuki, 2009)


Langkah-langkah Algoritma Backpropagation :
Langkah 1 : Mendapatkan satu set pola pelatihan.
Langkah 2 : Mengatur model jaringan saraf;
Terdiri dari input neuron, hidden neuron, dan output neuron.
Langkah 3 : Mengatur tingkat belajar (learning rate)
dan momentum

23

rate.
weight
kj
Langkah 4 : Menginisialisasi semua koneksi
Wji
matrix 1, W
k secara random.
weight matrix 2 dan bobotj bias

Langkah 5 : Set error minimum, Emin.


Langkah 6 : Mulai pelatihan dengan menerapkan pola masukan satu per
satu dan menyebarkan melalui lapisan kemudian menghitung
jumlah error.
Langkah 7 : Fase mundur backpropagation menghitung error output layer,
selanjutnya digunakan untuk perubahan bobot antara output
dan hidden layer dan mendapatkan bobot baru matrix 2.
Langkah 8 : Fase mundur backpropagation menghitung error hidden layer,
selanjutnya digunakan untuk perubahan bobot antara hidden
dan input layer dan mendapatkan bobot baru matrix 1.
Langkah 9 : Periksa Error < E min. Jika tidak ulangi Langkah 6-9. Jika ya
berhenti pelatihan.
2.5.9 Optimalitas Parameter Pelatihan JST
Berikut beberapa parameter JST yang digunakan yaitu :
a. Lapisan masukan (input layer)
Input layer sebanyak 1 lapis yang terdiri dari neuron t neuron input,
mulai dari neuron input pertama sampai neuron input ke-n. Input layer
merupakan penghubung yang mana lingkungan luar memberikan sebuah pola
kedalam jaringan saraf. Sekali sebuah pola diberikan kedalam input layer, maka
output layer akan memberikan pola yang lainnya (Heaton, 2008). Pada intinya

input layer akan merepresentasikan kondisi yang dilatihkan kedalam jaringan.


Setiap input akan merepresentasikan beberapa variabel bebas yang memiliki
pengaruh terhadap output layer.
Untuk mempertimbangkan jumlah neuron yang digunakan pada lapisan
output, harus mempertimbangkan tujuan penggunaan dari jaringan saraf tiruan
(Amit, Kosta, Gaurang dan Chintan, 2011).

24

b. Lapisan tersembunyi (hidden layer)


Hidden layer berjumlah minimal 1 lapis yang terdiri dari neuron-neuron
tersembunyimulai dari neuron tersembunyipertama sampai neuron
tersembunyi ke-p. Menentukan jumlah neuron pada hidden layer merupakan
bagian yang sangat penting dalam arsitektur jaringan saraf. Penambahan jumlah
lapis tersembunyi kadangkala membuat pelatihan lebih mudah. Semakin banyak
hidden layer yang digunakan, maka jaringan akan mampu menangani jangkauan
statistik yang lebih luas dan tinggi. Jumlah lapisan yang terlalu banyak bisa

menyebabkan laju konvergensi menjadi lebih lambat. Hal ini disebabkan sinyal
galat berkurang secara numerik jika melewati terlalu banyak lapisan dan lapisan
tambahan cenderung menciptakan minimum lokal (Didi, 2012). Hidden layer
pada backpropagation berfungsi sebagai tempat
untuk mengupdate dan
menyesuaikan bobot, sehingga didapatkan nilai bobot yang baru yang bisa
diarahkan mendekati dengan target output yang diinginkan.
Ada beberapa aturan metode berdasarkan pengalaman yang dapat
digunakan untuk menentukan jumlah neuron yang akan digunakan pada hidden

layer. Menurut Haykin (1999) jumlah hidden neuron 2 sampai dengan 9 sudah
dapat menghasilkan hasil yang baik dalam jaringan, namun pada dasarnya
jumlah hidden neuron yang digunakan dapat berjumlah sampai dengan tak

berhingga (~). Sedangkan menurut Heaton (2008), ada beberapa aturan yang
dapat digunakan untuk menentukan banyaknya jumlah neuron pada hidden
layer yaitu:
a. Jumlah hidden neuron harus berada diantara ukuran input layer dan output
layer.
b. Jumlah hidden neuron harus 2/3 dari ukuran input layer, ditambah ukuran
output layer.
c. Jumlah hidden neuron harus kurang dari dua kali jumlah input layer.
Menurut Boger dan Guterman (1997), biasanya untuk menentukan jumlah node
hidden sebagai dimensi [komponen utama] yang dibutuhkan 70% -90% dari
varians kumpulan data masukan.

25

Aturan-aturan tersebut hanya berupa pertimbangan dalam menentukan


arsitektur jaringan saraf tiruan. Bagaimanapun, penentuan arsitektur jaringan

akan kembali pada trial and error sesuai dengan masalah yang ditangani oleh
jaringan.
Menggunakanterlalu sedikit neuron di lapisantersembunyi akan
menghasilkan sesuatu yang disebut underfitting. Underfitting terjadi ketika
terlalu sedikit neuron di lapisan tersembunyi untuk dapat mendeteksi sinyal
dalam satu set data yang rumit atau jaringan tidak cukup fleksibel untuk
mempelajari data. Sebaliknya mennggunakan terlalu banyak neuron di lapisan
tersembunyi akan menghasilkan sesuatu yang disebut overfitting. Overfitting
terjadi ketika jaringan saraf memiliki banyak kapasitas pengolahan informasi
sehingga sedikitnya jumlah informasi yang terdapat pada data pelatihan tidak
cukup untuk melatih semua neuron di lapisan tersembunyi.
c. Lapisan keluaran (output layer)
Output layer berjumlah satu lapis yang terdiri dari neuron-neuron output

mulai dari neuron output pertama sampai neuron output ke-m. Output layer dari
jaringan saraf adalah pola yang sebenarnya diberikan oleh lingkungan luarnya

(external environment). Pola yang diberikan output layer dapat secara langsung
ditelusuri kembali ke input layernya. Jumlah dari neuron output tergantung dari
tipe dan performa dari jaringan saraf itu sendiri. (Yunita, 2012)
d. Pemilihan bobot dan bias awal
Pemilihaninisialisasi bobotakan mempengaruhi apakah
jaringan

mencapai galat (error) pada minimum global atau lokal. Perubahan bobot antara
kedua unit tergantung pada kedua turunan fungsi aktivasi unit di atas dan unit
dibawahnya.
Sangatlah penting untuk menghindari pemilihan bobot awal yang akan

membuat fungsi aktivasi atau turunannya menjadi nol. Jika bobot awal terlalu
besar, masukan awal ke tiap unit tersembunyi atau keluaran akan berada pada
daerah di mana turunan fungsi sigmoid memiliki nilai sangat kecil (disebut
daerah jenuh). Sebaliknya jika bobot terlalu kecil sinyal masukan pada unit

26

tersembunyi atau keluaran


akan mendekati nol yang menyebabkan pelatihan
jaringan akan sangat lambat. Prosedur umum adalah menginisialisasi bobot
dengannilai acak antara -0,5 dan 0,5 (atau -1 dan 1) atau pada rentang nilai
yang lain yang sesuai (Hari Purnomo dan Agus Kurniawan, 2006). Nilai bisa positif
atau negatif, karena bobot pada akhir pelatihan juga memiliki
tandakedua
tersebut. (Didi, 2012)
Nilai untuk inisialisasi bobot awal tidak boleh terlalu besar, atau sinyal
untuk setiap hidden atau output neuron kemungkinan besar akan berada pada
daerah dimana turunan dari fungsi sigmoid memiliki nilai yang sangat kecil.
Dengan kata lain, jika inisialisasi bobot awal terlalu kecil,
jaringan
input
ke
hidden atau output neuron akan mendekati nol, yang mana akan menyebabkan
pelatihan akan menjadi sangat lambat (Fausset, 1994).
e. Jumlah pola pelatihan
Tidak ada kepastian tentang berapa banyak pola yang diperlukan agar
jaringandapat dilatih dengansempurna. Jumlah
pola yang dibutuhkan

dipengaruhi oleh banyaknya bobot dalam jaringan serta tingkat akurasi yang
diharapkan. (Didi, 2012)
f. Parameter laju pembelajaran (learning rate)
Laju pembelajaran sangat berpengaruh pada intensitas proses pelatihan.
Pada umumnya nilai laju pembelajaran dipilih mulai 0,001 sampai dengan 1
selama proses pelatihan. (Didi, 2012)

Penggunaan parameter learning rate memiliki pengaruh penting terhadap


waktu yang dibutuhkan untuk tercapainya target yang diinginkan. Secara
perlahan akan mengoptimalkan nilai perubahan bobot dan menghasilkan error
yang lebih kecil (Fajri, 2011). Variabel learning rate menyatakan suatu konstanta

yang bernilai antara 0.1 - 0.9. Nilai tersebut menunjukkan kecepatan belajar dari

jaringannya. Jika nilai learning rate yang digunakan terlalu kecil maka terlalu
banyak epoch yang dibutuhkan untuk mencapai nilai target yang diinginkan,
sehingga menyebabkan proses training membutuhkan waktu yang lama.

27

Semakin besar nilai learning rate yang digunakan maka proses pelatihan
jaringan akan semakin cepat, namun jika terlalu besar justru akan
mengakibatkan jaringan menjadi tidak stabil dan menyebabkan nilai error

berulang bolak-balik diantara nilai tertentu, sehingga mencegah error mencapai


target yang diharapkan. Oleh karena itu pemilihan nilai variable learning rate
harus seoptimal mungkin
agar didapatkan
proses training yang cepat.
(Hermawan, 2006)
g. Jumlah iterasi maksimum
Maksimum iterasi adalah jumlah
epoch maksimum yang dilakukan
selama proses pelatihan. Iterasidihentikan
akan
apabila jumlah epoch yang
sudah dilatihkan melebihi jumlah maksimum epoch.
h. Momentum
Disamping koefisien laju pembelajaran, ada koefisien lain yang bertujuan
untuk mempercepat
konvergensi dari algoritma
error backpropagation.
Penggunaankoefisien momentumini disarankanapabila konvergensi
berlangsung terlalu lama, dan juga untuk mencegah terjadinya lokal minimum.
Dengan penambahan momentum, bobot baru pada waktu ke-t+1 didasarkan
atas bobot pada waktu t dan t-1. (Siang, 2004)
2.6

Bahasa Pemrograman PHP

2.6.1 Sekilas tentang PHP


PHP singkatan dari PHP Hypertext Preprocessor yang digunakan sebagai
bahasa script server-side dalam pengembangan web yang disisipkan pada
dokumen HTML. Penggunaan PHP memungkinkan web dapat dibuat dinamis

sehingga maintenance situs web tersebut menjadi lebih mudah dan efisien. PHP
merupakan software Open-Source yang disebarkan dan dilisensikan secara gratis
serta dapat didownload secara bebas dari situs resminya http://www.php.net ,
PHP ditulis menggunakan bahasa C. (Kasiman, 2006, p.2)

28

2.6.2 Kelebihan-kelebihan PHP


Menurut Kasiman (2006), PHP memiliki banyak kelebihan yang tidak
dimiliki oleh bahasa script sejenis. PHP difokuskan pada pembuatan script serverside, yang bisa melakukan apa saja yang dapat dilakukan oleh CGI, seperti
mengumpulkan data dari form, menghasilkan isi halaman web dinamis, dan
kemampuanmengirimserta menerima cookies, bahkan
lebih daripada
kemampuan CGI.
PHP dapat digunakan pada semua sistem operasi, antara lain Linux, Unix,
Microsoft Windows, Mac OS X, RISC OS. PHP tidak terbatas pada hasil keluaran
HTML (HyperText Markup Languages). PHP juga memiliki kemampuan untuk
mengolahkeluarangambar, file PDF, dan
movie Flash. PHP juga dapat
menghasilkan teks seperti XHTML dan file XML lainnya.
Salah satu fitur yang dapat diandalkan oleh PHP adalah dukungannya
terhadap banyak database. Berikut database yang didukung oleh PHP : Adabas D,
dBase, Direct MS-SQL, Empress, FrontBase, Hyperwave, Informix, MSQL, MySQL,
ODBC, Oracle (OC17 dan OC18), Sybase, Unix DBM, Velocis. (Kasiman, 2006, p.3
dan 4)
2.6.3 Sintaks dan Prinsip kerja PHP
Sintaks program/script PHP ditulis dalam apitan tanda khusus PHP. Ada
empat macam pasangan tag PHP yang dapat digunakan untuk menandai blok
script PHP (Kasiman, 2006, p.4) :
1.

<?php ... ?>

2.

<script language = "PHP"> ... </script>

3.

<? ... ?>

4.

<% ... %>

Cara 1 dan 2 merupakan cara yang paling umum digunakan.


Prinsip kerja pengaksesan berkas PHP dapat dilihat pada gambar 2.4.
Pengaksesan
berkas PHP dimulai dengan
permintaan(request)pengguna
terhadap berkas PHP melalui protokol HTTP. Permintaan dikirimkan ke web
server. Setelahmenerima permintaan
dari pengguna,web server akan
29

mengambil berkas PHP dan akan diproses (interpret) oleh PHP Interpretor. PHP
Interpretor akanmelakukanpemrosesankode-kode PHP, dan
kemudian
membentuk blok-blok kode HTML. Kode HTML yang terbentuk selanjutnya
dikirim kembali ke web browser sehingga dapat diproses. Hasil proses berupa
halaman web yang diminta oleh pengguna. (Budi, 2007,p. 208)

Gambar 2.15 Prinsip kerja pengaksesan berkas PHP


Sumber : Belajar Sendiri Administrasi dan Pemrogramam Database
Oracle 10g XE, 2007
2.7

CI (CodeIgniter)

2.7.1 Sekilas tentang CodeIgniter


CodeIgniter (CI) adalah framework pengembangan aplikasi (Application
Development Framework) dengan menggunakan PHP, suatu kerangka untuk

bekerja atau membuat program dengan menggunakan PHP yang lebih sistematis.

Pemrogram tidak perlu membuat program dari awal (from scracth), karena CI
menyediakansekumpulanlibrari yang banyak yang diperlukanuntuk
menyelesaikan pekerjaan yang umum, dengan menggunakan antarmuka dan
struktur logika yang sederhana untuk mengakses librarinya. (Betha, 2012, p.1)
2.7.2 Alasan menggunakan CI
Menurut Betha (2012), Framework CI merupakan
framework yang
memiliki dokumentasi yang jelas dan lengkap, yang memudahkan pengembang
untuk mempelajari dengan mudah. Pendekatan dari CI sangatlah mudah, dari
membuat sekedar tulisan sampai dengan yang kompleks dapat didekati dengan
uZXA ]lA ]A (u}lA vPA o]vUA vlA uvlvA o]vA ^,oo}A
30

t}o_A ]A }A iUA l]A ZA uvPPvlvA A ZXA C/A lA


dengan satu file dan satu prosedur atau method. (Betha, 2012, p.2)
Secara umum, CI memberikan dan menyediakan diantaranya (Betha,
2012, p.2 dan 3) :

Suatu kerangka kerja dengan jejak yang sedikit (small footprint)

Kompatibilitas dengan akun hosting standar yang terpasang dengan


perbedaan versi dan konfugurasi

Suatu kerangka kerja yang hampir tidak memerlukan configurasi

Suatu kerangka kerja yang tidak memerlukan kita menggunakan baris


perintah (command line)

Suatu kerangka kerja yang tidak mengharuskan bekerja dengan aturan


pengkodean yang mengikat / membatasi

Suatu aturan yang tidak mengharuskan kita dipaksa menggunakan suatu


bahasa templating (walaupun
CI menyediakan
suatu parseruntuk
template)

Cara untuk menghindarkan kompleksitas dalam membuat program,


dengan menyediakan solusi yang sederhana

Suatu dokumentasi kerangka kerja yang menyeluruh dan jelas

2.7.3 Fitur-fitur CodeIgniter


Berikut ini adalah beberapa fitur dari CI (Betha, 2012, p. 3) :

Sistem berbasis Model t View t Controller

Benar-benar framework yang ringan

Memiliki fitur class database yang mendukung beberapa platform

Dukungan database dengan Active Record

Form dan validasi data

Keamanan dan filtering XSS

Manajemen sesi (session management)

Class untuk pengiriman email yang mendukung lampiran (attachment),


email dengan HTML/Teks.

31

Librari manipulasi image (menggunting, mengubah ukuran, memutar, dan


lainnya), mendukung GD, ImageMagick, dan NetPBM

Class untuk upload file

Class FTP

Lokalisasi

Enkripsi data

Benchmarking

Full page caching

Logging error

Profiling aplikasi

Class user agent, encoding zip, engine template, unit pengujian

Librari XML-RPC

URL yang bersahabat dengan Search-engine

Roting URI yang fleksibel

Mendukung hook dan ekstensi class

2.8

MVC (Model, View, Controller)

2.8.1 Sekilas tentang MVC


Teknik pemrograman MVC (Model, View, Controller) merupakan teknik
pemrograman yang popouler saat ini, yang mengharapkan pemrogram secara
disiplin untuk membagi program menjadi 3 bagian yaitu model, view, dan
controller, seperti gambar berikut (Betha, 2012, p. 29 dan 30) :

Model

Controller

View

Gambar 2.16 Skema kerja MVC


Sumber : Framework CodeIgniter, 2012
32

Model
Objek model adalah bagian dari aplikasi yang mengimplementasi logika

untuk domain data aplikasi. Umumnya, objek model digunakan untuk mengambil
data dari database atau menyimpan data ke dalam database.

View
View adalah komponen yang menampilkan antarmuka untuk pengguna

(user interface, UI) aplikasi. Antarmuka ini dibuat berdasarkan data dari model.

Controller
Controller merupakan komponen yang digunakan untuk menangani

interaksi pengguna, bekerja dengan moel, dan memilih view mana yang
digunakan untuk merender data. Dalam aplikasi MVC, view hanya menampilkan
informasi, controller menangani dan menanggapi masukan dan interaksi dengan
pengguna. Dengan pola MVC, kita membuat aplikasi dengan memisahkan
berbagai aspek dari aplikasi (logika input, bisnis, dan antarmuka), ada bagian
penampil data (view), penyedia atau pemrosesan data (model), dan pengendali
program (controller).
2.8.2 CI dan MVC
CI adalah salah satu frameworkpemrogramanPHP yang dapat
mengimplementasi teknik
pemrograman MVC.
Berikut adalah flowchart
bagaimana CI mengimplementasi MVC (Betha, 2012, p. 32) :
Drivers
Models

Routing

Security

Cachin
g

View

index.php

Application
Controller

Librari
es
Helpers
Package
s
Scripts

Gambar 2.17 Flowchart CI mengimplementasi MVC


Sumber : Framework CodeIgniter, 2012
1. index.php berlaku sebagai controller di depan, yang menginisialisasi
sumber daya yang dibutuhkan untuk menjalankan CodeIgniter.

33

2. Router akan memeriksa request HTTP untuk menentukan apa yang harus
dilakukan dengan request tersebut.
3. Jika ada file cache, maka file cache langsung dikirimkan kepada browser,
dengan memotong eksekusi sistem normal.
4. Keamanan. Sebelum suatu aplikasi controller dipanggil, request HTTP dan

data yang dikirimkan oleh pengguna disaring (filter) terlebih dahulu untuk
keamanan.
5. Controller akan membuat model, librari inti, helper, dan sumberdaya
lainnya yang diperlukan untuk memproses request tersebut.
6. View terakhir dirender kemudian dikirimkan kepada browser untuk
dilihat. Jika caching didefinisikan, maka view akan dicache terlebih
dahulu, setelah itu baru dikirimkan kepada browser.
Menurut Betha (2012), CI bisa digunakan untuk belajar melakukan
pemrograman dengan teknik pemrograman yang menggunakan konsep MVC
(Model View Controller). Mengapa? Karena CI mengijinkan pemrogram untuk
bekerja penuh di dalam controller, sambil sedikit-sedikit memahami konsep MVC
dengan benar (Betha, 2012, p. 32).
2.9

MySQL
MySQL (My Structure Query Language) adalah sebuah perangkat lunak

sistem manajemen basis data SQL (Database Mangement System) atau DBMS

dari sekian banyak DBMS, seperti Oracle, MS SQL, Postagre SQL, dan lain-lain.

MySQL merupakan DBMS yang multithread, multi-user yang bersifat gratis di


bawah lisensi GNU General Public License (GPL). MySQL dimiliki dan disponsori
oleh sebuah perusahaan Swedia, yaitu MySQL AB. MySQL AB memegang hak
cipta kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang
mendirikan MySQL AB adalah : David Axmark, Allan Larson, dan Michael Monty

Widenius. Seperti yang telah disebutkan sebelumnya, MySQL bersifat gratis atau
open source sehingga kita bisa menggunakannya secara gratis. (Anhar, 2010, p.
21)

34

Berikut beberapa kelebihan MySQL, antara lain (Anhar, 2010, p. 22):

MySQL dapat berjalan dengan stabil pada berbagai sistem operasi,

seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, dan masih


banyak lagi.

Bersifat Open Source, MySQL didistribusikan secara open source (gratis),


di bawah lisensi GNU General Public License (GPL).

Bersifat Multiuser, MySQL dapat digunakan oleh beberapa user dalam


waktu yang bersamaan tanpa mengalami masalah.

MySQL memiliki kecepatan yang baik dalam menangani query (perintah


SQL). Dengan kata lain, dapat memproses lebih banyak SQL per satuan
waktu.

Dari segi security atau keamanan data, MySQL memiliki beberapa

lapisan security, seperti level subnet mask, nama host, dan izin akses
user dengan sistem perizinan yang mendetail serta password yang
terenkripsi.

Selain MySQL bersifat fleksibel dengan berbagai pemrograman, MySQL


juga memiliki interface (antarmuka) terhadap berbagai aplikasi dan
bahasa pemrograman dengan menggunakan fungsi API (Application
Programming Interface).

Dukungan banyak komunitas, biasanya tergabung dalam sebuah forum


untuk saling berdiskusi membagi informasi tentang MySQL. Misalnya, di
forum http://forums.mysql.com/

2.10 SQL (Structured Query Language)


Data adalahbagianpenting dari pemrograman
modern sehingga
keseluruhan bahasa program menyediakan fungsi untuk mengakses database.
Standar utama untuk bahasa database adalah Structured Query Language (SQL).
SQL distandardisasi sebagai bahasa untuk menciptakan database, menyimpan
informasi ke dalam database, dan mendapatkan kembali informasi darinya.
(Kasiman, 2006, p.380)

35

Statemen SQL secara garis besar dibagi menjadi dua kategori (Bambang,
2002, p. 16):
Data Definition Language (DDL) statement
Data Manipulation Language (DML) statement
Statement DDL merupakan bahasa definisi data yang digunakan untuk
membuat, mengubah, dan menghapus struktur data asli (hold data), yang

berkaitan dengan databse itu sendiri, tabel, dan elemen lain yang merupakan
bagian dari database seperti domain, index, triggers, stored procedure, role, dan
shadow. Statemen DDL dimulai dengan keyword CREATE, ALTER, dan DROP.
Sebagai contoh CREATE TABLE untuk membuat tabel. ALTER TABLE untuk
memodifikasi tabel yang sudah ada. DROP TABLE untuk menghapus tabel.
Statement DML merupakan bahasa manipulasi data yang digunakan untuk
memanipulasi data dengan data struktur. Empat pokok statemen DML yaitu
INSERT, UPDATE, DELETE dan SELECT. INSERT untuk menambahkan data ke tabel,
UPDATE untuk memodifikasi data yang sudah ada, dan DELETE untuk membuang
atau menghapus data. Statemen SELECT untuk mendapatkan kembali atau
meminta informasi dari database.

36

BAB III
METODE PENELITIAN
3.1

Metode Penelitian
Adapun langkah-langkahdalam menyelesaikanpenelitian ini

diperlihatkanpada gambar 3.1, dengan


prinsippengerjaanmenggunakan
metode waterfall yaitu pengerjaan dari atas ke bawah secara berurutan, setiap

aktivitas pada tahap pengembangan harus diselesaikan sebelum menuju tahap

pengembangan berikutnya. Kelebihan dari model ini adalah memudahkan tim


pengembang perangkat lunak dalam memonitor penjadwalan proyek.
Riset Lapangan
Studi Pustaka
Analisa dan Desain Sistem

Implementasi Logical Database

Pembangunan Aplikasi

Uji Coba dan Evaluasi

Penulisan Laporan

Gambar 3.1 Langkah-langkah Penelitian


Adapun rincian rencana kegiatan penelitian adalah sebagai berikut :

1) Riset Lapangan, dimaksudkan untuk memperoleh informasi secara langsung


dari perusahaan dan juga dunia internet. Adapun teknik pengumpulan data
yang digunakan adalah :
a. Pengamatan, yaitu pengumpulan data dan informasi yang dilakukan
dengan cara mengamati langsung ke objek dan juga menganalisa sistem
yang sedang berjalan.

37

b. Wawancara, yaitu pengumpulan data dengan cara tanya jawab dengan


pihak terkait atau pakar.
2) Studi Pustaka adalah langkah mempelajari teori-teori untuk mendukung
kelancaran dalam penelitian. Data diperoleh melalui buku-buku literatur
yang berhubungan dengan
masalahyang akanditeliti sebagai bahan
referensi bagi penulis.
3) Analisa dan Desain Sistem, yaitu untuk menganalisa dan mendesain sistem
aplikasi yang akan dibangun.
4) Implementasi Logical Database adalah proses pembuatan database serta

tabel-tabel yang dibutuhkan oleh aplikasi sesuai desain database yang dibuat
serta berguna menampung data.
5) PembangunanSistem, yaitu proses merancang,membangundan
mengembangkan sistem yang digunakan sebagai user interface bagi para
pengguna.
6) Uji Coba dan Evaluasi, bertujuan untuk menguji kinerja sistem.
7) Penulisan Laporan, proses dokumentasi atau penyusunan laporan mulai dari
tahap awal hingga akhir.
3.2

Analisa Data
3.2.1 Atribut dan Target Atribut
Berikut Atribut (hal yang mempengaruhi/gejala) dan Target Atribut (hasil

prediksi/keputusan). Pengelompokkan tabel berdasarkan hasil interview pakar.

Tabel 3.1 Tabel Atribut dan Target Atribut


ATRIBUT

TARGET ATRIBUT

1. Kecepatan Angin

1. AMAN

2. Ketinggian Ombak

2. BAHAYA

3. Kencangnya Arus Air Laut


4. Draft Kapal
5. Draft Dermaga

38

3.2.2 Atribut dan Value of Atribut


dan Value of Atribut
Berikut Atribut (hal yangmempengaruhi/gejala)
(pengkategorian jenis atribut).

Tabel 3.2 Tabel Atribut dan Value of Atribut


NO INPUT / ATRIBUT
Value of Atribut
Value
1
of Atribut
Value
2
of Atribut 3
1. Kecepatan Angin
LEMAH
SEDANG
KENCANG
2.

Ketinggian Ombak

NORMAL

SEDANG

BESAR

3.

Kencangnya Arus

LEMAH

SEDANG

KENCANG

4.

Draft Kapal

BAIK

BURUK

5.

Draft Tepi Dermaga

BAIK

BURUK

3.2.3 Normalisasi Data


Normalisasi merupakan upaya pengolahan data dalam bentuk numerik.

Normalisasi penulis lakukan dengan mengkonversi value of atribut dan target


atribut dalam kombinasi bilangan binner. Berikut tabel konversi value of atribut
dan target atribut :
1) Konversi Value of Atribut
Tabel 3.3 Tabel Konversi Value of Atribut
NO

INPUT / ATRIBUTValue of AtributValue


1
of Atribut
Value
2
of Atribut 3

1.

Kecepatan Angin LEMAH

001

SEDANG 010

KENCANG 100

2.

Ketinggian OmbakNORMAL

001

SEDANG 010

BESAR

3.

Kencangnya Arus LEMAH

001

SEDANG 010

KENCANG 100

4.

Draft Kapal

5.

Draft Tepi Dermaga


BAIK

STANDART 01
01

100

OVER

10

BURUK

10

2) Konversi Target Atribut


Tabel 3.4 Tabel Konversi Target Atribut
TARGET ATRIBUT
1. AMAN

01

2. BAHAYA

10

39

3.2.4 Tabel Data


Tabel 3.5 dibawah merupakan data training yang menjadi acuan sistem

untuk belajar. Data ini berasal dari data history Nahkoda Kapal Tanker PALM I

dalam melakukan sandar kapal dan berperan sebagai data validasi, dalam arti
data ini tertanam dalam database untuk pengetahuan sistem.
Tabel 3.5 Tabel Data Training
NO. KECEPATANKETINGGIAN
KENCANGNYADRAFT DRAFT
OUTPUT/
ANGIN
OMBAK
ARUS
KAPAL DERMAGA TARGET ATRIBUT
1.
LEMAH
NORMAL
LEMAH
BAIK
BAIK
AMAN
2.

LEMAH

NORMAL

LEMAH

BURUK

BURUK

AMAN

3.

SEDANG

SEDANG

SEDANG

BAIK

BAIK

AMAN

4.

SEDANG

SEDANG

SEDANG

BURUK

BURUK

BAHAYA

5.

KENCANG

BESAR

KENCANG

BAIK

BAIK

BAHAYA

6.

KENCANG

BESAR

KENCANG

BURUK

BURUK

BAHAYA

Sedangkan tabel 3.6 dibawah merupakan data testing. Data ini merupakan data
rasional yang mungkin terjadi dalam upaya penyandaran kapal dan berperan
sebagai data verifikasi, dalam arti data ini digunakan untuk mentesting sistem
diluar pengetahuan.
Tabel 3.6 Tabel Data Testing
NO. KECEPATANKETINGGIAN
KENCANGNYADRAFT
ANGIN
OMBAK
ARUS
KAPAL

40

DRAFT
OUTPUT/
DERMAGA TARGET ATRIBUT
BAIK
AMAN

1.

LEMAH

SEDANG

LEMAH

BAIK

2.

LEMAH

SEDANG

LEMAH

BURUK

BURUK

AMAN

3.

SEDANG

NORMAL

SEDANG

BAIK

BAIK

AMAN

4.

SEDANG

NORMAL

SEDANG

BURUK

BURUK

BAHAYA

5.

KENCANG

SEDANG

KENCANG

BAIK

BAIK

BAHAYA

6.

KENCANG

SEDANG

KENCANG

BURUK

BURUK

BAHAYA

3.3

Implementasi Arsitektur Jaringan Backpropagation

Pola data training selanjutnya dimasukkan ke dalam arsitektur jaringan


backpropagation
yakni multilayer network. Sebagai contoh, gambar 3.2

merupakan Multilayer Network Pola Data Matang Record 1 yang akan ditraining,
satu tahap training terdiri dari :

1. Fase maju (feedforward). Pola masukan dihitung maju mulai dari layar
masukanhingga layarkeluaranmenggunakan
fungsi aktivasi yang
ditentukan.
2. Fase mundur (backpropagation). Selisih antara keluaran jaringan dengan
target yang diinginkan merupakan kesalahan yang terjadi atau error. Nilai
error ini dijadikan sebagai dasar dalam melakukan perubahan dari setiap
bobot dengan mempropagationkannya kembali, dimulai dari garis yang
berhubungan langsung dengan unit-unit di layar keluaran.
3. Fase modifikasi bobot untuk menurunkan kesalahan yang terjadi. Dan hasil
modifikasi bobot ini menjadi bobot baru pada weight matrix 1 dan 2 pada
arsitektur Multilayer Network Pola Data Matang epoch selanjutnya.

Gambar 3.2 Multilayer Network Pola Data Training Record 1


41

3.4

Flowchart Training JST Backpropagation


START
Input Data Training / Set pola pelatihan
Inisialisasi pola ke dalam Arsitektur Jaringan
Backpropagation (Multilayer Network)normalisasi data
Inisialisasi Bobot Secara Random:
Weight Matrix 1
- 0,5 s/d 0,5
Weight Matrix 2
- Set Max epoch (kondisi berhenti)
- Set Learning Rate 0,001 s/d 1

epoch < maxepoch


True

Aktifkan Neuron pada Hidden Layer :


Aktifkan Input Neuron Hidden
Aktivasi Output Neuron Hidden

Aktifkan Neuron pada Output Layer :


Aktifkan Input Neuron Output
Aktivasi Output Neuron Output
update

Hitung Error Output Layer

Hitung Error Hidden Layer

False

Modifikasi bobot matrix 2 :

Modifikasi bobot matrix 1 :

Memperoleh weight matrix 2 baru :

Memperoleh weight matrix 1 baru :

Simpan bobot optimal / terbaik


END

Gambar 3.3 Flowchart Training JST Backpropagation


42

Keterangan Flowchart Training JST Backpropagation :


1. Mulai.
2. Set pola pelatihan, sebagai sumber belajar sistem. (data training)
normalisasi
3. Inisialisasi pola ke dalam arsitektur jaringan layar
jamak
data.
(lihat gambar 3.2)
4. Inisialisasi Bobot secara random, yaitu :
-

Penentuan weight matrixji 1 (W ) secara random.

Penentuan weight matrixkj2 (W ) secara random.

Rentang nilai yang digunakan antara -0,5 s/d 0,5.


5. Set maksimal epoch karena menggunakan iterasi sebagai kondisi berhenti.
6. Set tingkat belajar / learning rate ( ). Rentang nilai yang digunakan antara
0,001 s/d 1.
7. Pengecekan epoch.
-

Jika epoch kurang dari maxepoch (bernilai true) maka dilakukan satu
siklus training, yaitu dimulai dari fase feedforward, backpropagation,
update bobot (langkah 8 t 21). Kemudian bobot baru matrix 1 dan 2
digunakan untuk training epoch selanjutnya.

Jika epoch sama dengan


maxepoch (bernilai false) maka training
berhenti dan bobot baru matrix 1 dan 2 disimpan (langkah 22).

8. Masuk fase maju (feedforward).


9. Mengaktifkan Neuron pada Hidden Layer, terdiri dari 2 langkah :
1) Aktifkan Input Neuron Hidden, menggunakan rumus :

netj

= input neuron hidden


= penjumlahan total hidden neurons

Wji

= weight matrix 1

Oi

= output neuron input

Mengaktifkan input neuron hidden didapat dari penjumlahan total dari


perkalian antara output neuron input dengan weight matrix 1 yang
menuju per neuron hidden.

43

2) Aktivasi Output Neuron Hidden

Oj

= output neuron hidden


= fungsi

= exponen

Mengaktivasi output
neuron hidden menggunakan
fungsi aktivasi
sigmoid/mensigmoidkan input neuron hidden.
10. Mengaktifkan Neuron pada Output Layer, terdiri dari 2 langkah :
1) Aktifkan Input Neuron Output

netk

= input neuron output


= penjumlahan total output neurons

Wkj

= weight matrix 2

Oj

= output neuron hidden

Mengaktifkan input neuron output didapat dari penjumlahan total dari


perkalian antara output neuron hidden dengan weight matrix 2 yang
menuju per neuron output.
2) Aktivasi Output Neuron Output

Ok

= output neuron output


= fungsi

= exponen

Mengaktivasi output
neuron output menggunakan
fungsi aktivasi
sigmoid/mensigmoidkan input neuron output.
11. Selesai fase maju (feedforward).
12. Masuk fase mundur (backpropagation).
13. Mengkalkulasi Error Output Layer, menggunakan rumus :

Error output = output neuron output (1 output neuron output) *


(output target - output neuron output)

44

14. Mengkalkulasi Error Hidden Layer, menggunakan rumus :

Error hidden = output neuron hidden (1 output neuron hidden) *


kalkulasi jumlah dari error output * weight matrix 2

15. Selesai fase mundur (backpropagation).


16. Masuk fase perubahan bobot (update bobot).
17. Perubahan bobot matrix 2

Perubahan bobot baru matrix 2 = learning rate * error output *


output neuron hidden

18. Memperoleh bobot baru matrix 2

Bobot baru matrix 2 = bobot lama matrix 2 + perubahan bobot matrix 2

19. Perubahan bobot matrix 1

Perubahan bobot baru matrix 1 = learning rate * error hidden *


output neuron input/value of atribut

20. Memperoleh bobot baru matrix 1

Bobot baru matrix 1 = bobot lama matrix 1 + perubahan bobot matrix 1

21. Selesai fase perubahan bobot (update bobot).


22. Simpan bobot optimal / terbaik.
23. Selesai
3.5

Flowchart Testing JST Backpropagation


Berikut keterangan Flowchart Testing JST Backpropagation pada gambar

3.4dibawah :
1. Mulai.
2. Input Data Testing.
3. Normalisasi Data, untuk sinkronisasi data dan memudahkan proses testing.

45

4. Ambil bobot optimal/terbaik, bobot optimal berasal dari bobot epoch


terakhir proses training.
5. Melakukan fase maju (feedforward).
6. Cek posisi index nilai target terbesar dari fase feedforward.
Jika nilai target terbesar berada pada posisi index ke t 0, artinya target
1 0 yaitu BAHAYA, sedangkan
Jika nilai target terbesar berada pada posisi index ke t 1, artinya target
0 1 yaitu AMAN.
7. Selesai.
START

Input Data Testing

Normalisasi Data

Ambil bobot optimal / terbaik

Feedforward

If maximum == 0

False

Prediksi
A0A1

True

Prediksi
BA+A<A
END

Gambar 3.4 Flowchart Testing JST Backpropagation


3.6

Desain Sistem Logical Database


Perancangan tabel merupakan hal yang sangat penting guna mendukung

jalannya sistem.
Terdapat dua tabelyang digunakandalam sistem
ini,
diantaranya :
1. Tabel admin : digunakan untuk menampung data user.
2. Tabel master : digunakan untuk menampung pola data matang.

46

Berikut adalah desain tabel database sistem yang dibuat


guna
menampung pola data matang :

Gambar 3.5 Desain Sistem Logical Database


3.7

Prototype Desain

3.7.1 Prototype Desain Master


Berikut prototype desain master, digunakan untuk menginputkan pola
data matang. Data matang ini menjadi sumber belajar sistem.

Gambar 3.6 Prototype Desain Master


3.7.2 Prototype Desain Training
Digunakan untuk fase training/pelatihan jaringan.

47

Gambar 3.7 Prototype Desain Training


3.7.3 Prototype Desain Testing
Digunakan untuk fase pengujian.

Gambar 3.8 Prototype Desain Testing

48

BAB IV
IMPLEMENTASI DAN UJI COBA
Dalam bab ini akan dibahas implementasi sekaligus uji coba sistem.
Implementasisistem menggunakanbahasa pemrogramanphp dengan
framework CodeIgniter. Adapun penjelasannya akan disajikan dalam potonganpotongan program beserta penjelasan kode program tersebut. Sistem yang
dibangun terbagi menjadi 3 bagian utama yaitu Halaman Master, Halaman
Training, dan Halaman Testing.
4.1

Halaman Login

Gambar 4.1 Halaman Login


Untuk masuk dalam sistem, user diharuskan melakukan login terlebih
dahulu, dengan mengisi textfield username dan password lalu tekan enter atau
klik button login. Jika salah satu atau kedua textfield kosong, maka akan ada
validasi yang memberitahukan bahwa textfield kosong dan diharuskan untuk
diisi. Berikut source code validation rules yang disediakan CI :
$this->form_validation->set_rules('username', 'Username',
'trim|required');
$this->form_validation->set_rules('password', 'Password',
'trim|required');

Gambar 4.2 Source Code Validation Rules


49

Berikut source code button login pada gambar 4.3, nilai value yang
dikirim textfield username dan password akan dicek dalam database, jika ada
atau count 1 maka berhasil masuk dalam halaman awal, sebaliknya jika kosong
maka akan tetap berada dalam halaman login.
if($this->form_validation->run() == TRUE)
{
$admin = $this->Query->sql("select count(*) as jumlah from
".$this->table." where username = '".$this->input->
post('username')."' and password = '".md5($this->input->
post('password'))."'");
if($admin[0]['jumlah'] == 1)
{
$this->session->set_userdata('username', $this->input
->post('username'));
$this->session->set_flashdata('message', 'Login
sukses...');
redirect('home', 'refresh');
}
else
{
$this->session->set_flashdata('message', 'Login
gagal...');
redirect('admin', 'refresh');
}
}
else
{
$this->index();
}
}

Gambar 4.3 Source Code Button Login


4.2

Halaman Awal
Setelah user berhasil melakukan login, maka akan masuk dalam halaman

awal. Halaman awal ini hanya menampilkan informasi sistem.

50

Gambar 4.4 Halaman Awal


Pada halaman awal juga terdapat sidebar menu untuk menuju halaman
lain, yaitu Halaman Master, Halaman Training, Halaman Testing, dan Logout.
Pada halaman lainpun terdapat sidebar menu serupa untuk menuju halaman
yang dikehendaki. Berikut source code button menu atau sidebar :
<!-- Sidebar -->
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<li class="sidebar-brand"><a href="<?php echo
base_url();?>index.php/home"> Welcome</a></li>
<li><a href="<?php echo base_url();?>index.php/
master">Master</a></li>
<li><a href="<?php echo base_url();?>index.php/bnn">
Training</a></li>
<li><a href="<?php echo base_url();?>index.php/
bnn/testing">Testing</a></li>
<li><a href="<?php echo base_url();?>index.php/admin/
logout">Logout</a></li>
</ul>
</div>

Gambar 4.5 Source Code Menu Sidebar

51

4.3

Halaman MASTER
Halaman Master ini digunakan untuk menampilkan data training yang

berada pada database. Data inilah yang menjadi menjadi acuan atau sumber
belajar sistem. User dapat menginputkan pola data training baru, merubah
maupun menghapus data, sehingga tidak perlu mengakses database untuk
melakukan operasi simpan, rubah, maupun hapus data yang diinginkan.

Gambar 4.6 Halaman Master


Data dalam Tabel Data Training ini tidak boleh redudance/duplicate,
karena dengan adanya data yang bersifat redudance/duplicate maka akan
memperlambat training sistem karena mempelajari pola yang sama, bahkan
pada beberapa kasus data yang redudance dapat menyebabkan kegagalan dalam
proses pelatihan.
Karena itulahsebelum melakukan
proses simpan ataupunrubah
disediakan validasi yang berfungsi untuk mengecek nilai value yang akan dikirim
dan menghindari pola yang sama dalam satu tabel. Berikut uji coba proses
simpan pola data yang sama :

52

Gambar 4.7 Input Data Matang


Pada gambar 4.7 terlihat pada saat akan melakukan proses simpan atau rubah
data training, maka nilai value yang dikirim dari textfield kecepatan_angin,
tinggi_ombak, kencang_arus , draft_dermaga , draft_kapal , prediksi akan dicek
dalam database, jika ada atau bernilai 1 maka artinya pola data ada dalam
database, proses simpan gagal dan muncul pemberitahuan bahwa pola sudah
ada, seperti gambar 4.8 berikut :

Gambar 4.8 Validasi Input Pola Data Sama


53

Sebaliknya jika bernilai 0, akan langsung menyimpan pola data. Berikut validasi
pengecekan pola data training :
$master = $this->Query->sql("select count(*) as jumlah from
".$this->table." where kecepatan_angin = '".$this->input->
post('kecepatan_angin')."' and tinggi_ombak = '".$this->input->
post('tinggi_ombak')."' and kencang_arus = '".$this->input->
post('kencang_arus')."' and draft_dermaga = '".$this->input->
post('draft_dermaga')."' and draft_kapal = '".$this->input->
post('draft_kapal')."' and prediksi = '".$this->input->
post('prediksi')."'");
if($master[0]['jumlah'] == 1)
{
$this->session->set_flashdata('message', 'Rule sudah ada');
}

Gambar 4.9 Validasi Pengecekan Pola Data Training


Berikut source code dan penjelasan dari masing-masing button :

Source code button submit.

else
{
$this->Query->sql("insert into ".$this->table."(kecepatan_
angin,tinggi_ombak,kencang_arus,draft_dermaga,draft_kapal,
prediksi)values('".$this->input->post('kecepatan_angin')."'
,'".$this->input->post('tinggi_ombak')."','".$this->input->
post('kencang_arus')."','".$this->input->post('draft_
dermaga')."','".$this->input->post('draft_kapal')."','".
$this->input->post('prediksi')."')");
$this->session->set_flashdata('message', 'Data master
berhasil ditambah...');
}
redirect('master', 'refresh');

Gambar 4.10 Source Code Button Submit

Source code button update.


Pada button update ini juga terdapat pengecekan data dalam database

untuk menghindari pola data sama. Jika ada atau bernilai 1 maka artinya pola

54

data ada dalam database, sebaliknya jika bernilai 0, akan langsung merubah pola
data. Berikut source code button update :
$master = $this->Query->sql("select count(*) as jumlah from
".$this->table." where kecepatan_angin = '".$this->input->
post('kecepatan_angin')."' and tinggi_ombak = '".$this->input->
post('tinggi_ombak')."' and kencang_arus = '".$this->input->
post('kencang_arus')."' and draft_dermaga = '".$this->input->
post('draft_dermaga')."' and draft_kapal = '".$this->input->
post('draft_kapal')."' and prediksi = '".$this->input->
post('prediksi')."'");
if($master[0]['jumlah'] == 1)
{
$this->session->set_flashdata('message', 'Rule sudah ada');
}
else
{
$this->Query->sql("update ".$this->table." set kecepatan_
angin = '".$this->input->post('kecepatan_angin')."'
,tinggi_ombak = '".$this->input->post('tinggi_ombak')."'
,kencang_arus = '".$this->input->post('kencang_arus')."'
,draft_dermaga = '".$this->input->post('draft_dermaga')."'
,draft_kapal = '".$this->input->post('draft_kapal')."'
,prediksi = '".$this->input->post('prediksi')."' where kode
= ".$this->input->post('kode'));
$this->session->set_flashdata('message', 'Data master
berhasil dirubah');
}
redirect('master', 'refresh');

Gambar 4.11 Source Code Button Update

Pseudocode button delete.

Button ini digunakan untuk menghapus data dalam database.


Berikut pseudocode button delete :
$this->Query->sql("delete from ".$this->table." where kode =
".$kode);

Gambar 4.12 Source Code Button Delete

55

Source code button cancel.

<input name="cancel" type="button" class="btn btn-warning"


value="Cancel" onClick="window.location.href='<?php echo
site_url('master');?>'" />

Gambar 4.13 Source Code Button Cancel


4.4

Halaman TRAINING
Halaman Training ini digunakan untuk menampilkan hasil akurasi dari

proses training sistem. Presentase akurasi adalah presentase ketepatan pola data
benar dan cocok, hasil dari belajar sistem.

Gambar 4.14 Halaman Training

Dan berikut source code dari button Proses Training :


public function index()
{
$this->inisialisasidata();
$this->inisialisasibobot();

Gambar 4.15 Source Code Button Proses Training

56

$sample = 0;
for($epoch = 0; $epoch < $this->maxepoch; $epoch++)
{
if($sample == $this->maxdata)
$sample = 0;
for ($i = 0; $i < $this->inputneurons; $i++)
{
$this->inputx[$i] = $this>inputlatihan
[$sample][$i];
}
for ($i = 0; $i < $this->outputneurons; $i++)
{
$this->targetx[$i] = $this->outputlatihan
[$sample][$i];
}
$this->feedforward();
$this->backpropagate();
$sample++;
}
$this->sessionn->set('wih', $this->wih);
$this->sessionn->set('who', $this->who);
$data['akurasi'] = $this->akurasi();
$this->load->view('training',$data);
}

Gambar 4.16 Source Code Button Proses Training Lanjutan


Function index() ini merupakan function pertama yang default diekskusi jika
memanggil controller bnn. Berikut alur kerja function index :
1.

Ekskusi function inisialisasidata().


Inti dari function inisialisasidata() ini adalah menginisialisasi value of atribut

dan target atribut ke dalam kombinasi bilangan binner. Selanjutnya nilai binner
ditampung pada variable $inputlatihan array multi dimensi untuk value of atribut
dan $outputtlatihan array multi dimensi untuk target atribut. (lihat Tabel 3.3 &
Tabel 3.4)

57

Singkatnya memindah data dari database ke variable array 2 dimensi yakni

inputlatihan dan outputlatihan. Serta memposisikan index value of atribut dan


target atribut (berupa kombinasi binner) dalam input layer. Berikut source code
:
function inisialisasidata()
public function inisialisasidata()
{
$this->maxdata = $this->db->count_all($this->table);
$data['semua_data'] = $this->Query->sql("select * from
".$this-> table);
for($i = 0; $i < $this->maxdata; $i++)
{
if($data['semua_data'][$i]['kecepatan_angin'] ==
"LEMAH")
{
$this->inputlatihan[$i][0] = 0;
$this->inputlatihan[$i][1] = 0;
$this->inputlatihan[$i][2] = 1;
}
else if($data['semua_data'][$i]['kecepatan_angin'] ==
"SEDANG")
{
$this->inputlatihan[$i][0] = 0;
$this->inputlatihan[$i][1] = 1;
$this->inputlatihan[$i][2] = 0;
}
else if($data['semua_data'][$i]['kecepatan_angin'] ==
"KENCANG")
{
$this->inputlatihan[$i][0] = 1;
$this->inputlatihan[$i][1] = 0;
$this->inputlatihan[$i][2] = 0;
}
if($data['semua_data'][$i]['tinggi_ombak'] ==
"NORMAL")

Gambar 4.17 Source Code Function Inisialisasidata

58

{
$this->inputlatihan[$i][3] = 0;
$this->inputlatihan[$i][4] = 0;
$this->inputlatihan[$i][5] = 1;
}
...
//atribut seterusnya
//target
if($data['semua_data'][$i]['prediksi']=="AMAN")
{
$this->outputlatihan[$i][0]=0;
$this->outputlatihan[$i][1]=1;
}
else if($data['semua_data'][$i]['prediksi']=="BAHAYA")
{
$this->outputlatihan[$i][0]=1;
$this->outputlatihan[$i][1]=0;
}
}
}

Gambar 4.18 Source Code Function Inisialisasidata Lanjutan


2. Ekskusi function inisialisasibobot()
Inti dari function inisialisasibobot() ini adalah menginisialisasi bobot
matrix 1 dan 2 secara random. Artinya memberi nilai sinyal t sinyal yang berada
pada matrix 1 maupun 2 dengan nilai acak/random dalam rentang -0.5 s/d 0,5.
(mt_rand() / mt_getrandmax())

merupakan rumus random float number

between 0 and 1.0 pada php, sehingga untuk menghasilkan rentang -0.5 s/ 0,5
:
dikurangi 0.5 . Berikut source code function inisialisasibobot()
public function inisialisasibobot()
{
for ($i = 0; $i < $this->inputneurons; $i++)
{
for ($j = 0; $j <= $this->hiddenneurons - 1; $j++)

Gambar 4.19 Source Code Function Inisialisasibobot

59

{
$this->wih[$i][$j] = (mt_rand() /
mt_getrandmax())-0.5;
}
}
for($i = 0; $i < $this->hiddenneurons; $i++)
{
for($j = 0; $j <= $this->outputneurons-1; $j++)
{
$this->who[$i][$j] = (mt_rand() /
mt_getrandmax())-0.5;
}
}
}

Gambar 4.20 Source Code Function Inisialisasibobot Lanjutan


Terdapat 2 nested for dalam function ini :
a) Nested for yang pertama, digunakan untuk membentuk formula atau
membentuksinyal antara inputneurons danhidden neurons dan
memboboti setiap sinyal secara random.
b) Nested for yang kedua pada gambar 4.20, digunakan untuk membentuk
formula atau membentuk sinyal antara hidden neurons dan output neurons
dan memboboti setiap sinyal secara random.
Sampai tahap ini multilayer network sudah terbentuk (function
inisialisasidata() dan function inisialisasibobot()).
3. Ekskusi nested for untuk kondisi berhenti sesuai maksimal epoch.
Fungsi dari nested for ini untuk membatasi proses training sesuai dengan
maksimum epoch yang diatur.
Jika epoch kurang dari maxepoch maka dilakukan satu siklus training,
dengan mengekskusi function feedforward() dan

function

backpropagate(). Selanjutnya bobot baru matrix 1 dan 2 digunakan untuk


training epoch selanjutnya.

60

Jika epoch sama dengan maxepoch (bernilai false) maka training berhenti
dan bobot baru matrix 1 dan 2 dari training epoch terakhir disimpan
dalam session.
$sample = 0;
for($epoch = 0; $epoch < $this->maxepoch; $epoch++)
{
if($sample == $this->maxdata)
$sample = 0;
........
}

Gambar 4.21 Source Code Nested for untuk kondisi berhenti


4. Ekskusi function feedforward()
Inti dari function feedforward() ini adalah :
1. Mengaktifkan neuron pada hidden layer, dan
2. Mengaktifkan neuron pada output layer.
:
Berikut source code dari function feedforward()
public function feedforward()
{
for($hid = 0; $hid < $this->hiddenneurons; $hid++)
{
for($inp = 0; $inp < $this->inputneurons; $inp++)
{
$sum += $this->inputx[$inp] * $this->
wih[$inp][$hid];
}
$this->hidden[$hid] = $this->sigmoid($sum);
}
for($out = 0; $out < $this->outputneurons; $out++)
{
$sum = 0;
for($hid = 0; $hid < $this->hiddenneurons; $hid++)
{

Gambar 4.22 Source Code Function Feedforward

61

$sum += $this->hidden[$hid]*$this->
who[$hid][$out];
}
$this->actual[$out]=$this->sigmoid($sum);
}
}

Gambar 4.23 Source Code Function Feedforward Lanjutan


Terdapat 2 nested for dalam function ini :
a) Nested for yang pertama, digunakan untuk mengaktifkan neuron pada
hidden layer. Ada 3 langkah, yaitu :
-

Membentuk formula atau membentuk setiap sinyal dari input neurons


yang masuk pada setiap hidden neurons.

Kalkulasi untuk mendapatkan input neuron hidden.

Kalkulasi untuk mendapatkan output neuron hidden dengan fungsi


aktivasi sigmoid.

b) Nested for yang kedua, digunakan untuk mengaktifkan neuron pada output
layer. Ada 3 langkah, yaitu :
-

Membentuk formula atau membentuk setiap sinyal dari hidden neurons


yang masuk pada setiap output neurons.

Kalkulasi untuk mendapatkan input neuron output.

Kalkulasi untuk mendapatkan output neuron output dengan fungsi


aktivasi sigmoid.

5. Ekskusi function backpropagate()


Inti dari function backpropagate() ini adalah :
1. Mengkalkulasi error output

fase backpropagation

2. Mengkalkulasi error hidden


3. Merubah bobot matrix 1 dan 2

fase update bobot

4. Memperoleh bobot baru matrix 1 dan 2.

:
Berikut source code dari function backpropagate()

62

public function backpropagate()


{
for($out=0; $out< $this->outputneurons; $out++)
{
$this->erroroutput[$out]=($this->targetx[$out] $this->actual[$out]) * $this->sigmoidderivative
($this->actual[$out]);
}
for($hid=0; $hid < $this->hiddenneurons; $hid++)
{
for($out=0; $out < $this->outputneurons; $out++)
{
$this->errorhidden[$hid] += $this->
erroroutput[$out] * $this->
who[$hid][$out];
}
$this->errorhidden[$hid] *= $this->
sigmoidderivative($this->hidden[$hid]);
}
for($out=0; $out < $this->outputneurons; $out++)
{
for($hid=0; $hid < $this->hiddenneurons; $hid++)
{
$this->who[$hid][$out] += ($this->learnrate *
$this->erroroutput[$out] * $this->hidden[$hid]);
}
}
for($hid=0; $hid < $this->hiddenneurons; $hid++)
{
for($inp = 0; $inp < $this->inputneurons; $inp++)
{
$this->wih[$inp][$hid] += ($this->learnrate *
$this->errorhidden[$hid] * $this->inputx[$inp]);
}
}
}

Gambar 4.24 Source Code Function Backpropagate

63

Terdapat 1 statement for dan 3 nested for dalam function ini :


a) Statement for pertama, untuk mengkalkulasi error output layer.
b) Nested for pertama, untuk mengkalkulasi error hidden layer.
c) Nested for kedua, untuk :
-

Perubahan bobot matrix 2

Memperoleh bobot baru matrix 2

d) Nested for ketiga, untuk :


- Perubahan bobot matrix 1
- Memperoleh bobot baru matrix 1
6. Menyimpan bobot matrix 1 dan 2 hasil training dalam session.
$this->sessionn->set('wih', $this->wih);
$this->sessionn->set('who', $this->who);

Gambar 4.25 Penggunaan Session untuk Penyimpanan Bobot


Setelah proses training selesai sesuai maksimal epoch, bobot baru matrix 1
dan 2 disimpan dalam session. Bobot epoch terakhir ini digunakan untuk
kepentingan akurasi dan testing.
7. Menghitung akurasi
Inti dari function akurasi() ini adalah untuk mengkalkulasi akurasi dari proses
training sistem atau mengakurasi ketepatan data hasil belajar. Perhitungannya
adalah (maksimal data t jumlah epoch salah / maksimal data) * 100.
public function akurasi()
{
$this->maxdata = $this->db->count_all($this->table);
$data['semua_data'] = $this->Query->sql("select * from ".
$this->table);
$salah = 0;
for($i = 0; $i < $this->maxdata; $i++)
{

//atribut 1
if($data['semua_data'][$i]['kecepatan_angin'] ==
"LEMAH")
{
$this->inputx[0] = 0;

Gambar 4.26 Source Code Function Akurasi


64

$this->inputx[1] = 0;
$this->inputx[2] = 1;
}
else if($data['semua_data'][$i]['kecepatan_angin'] ==
"SEDANG")
{
$this->inputx[0] = 0;
$this->inputx[1] = 1;
$this->inputx[2] = 0;
}
else if($data['semua_data'][$i]['kecepatan_angin'] ==
"KENCANG")
{
$this->inputx[0] = 1;
$this->inputx[1] = 0;
$this->inputx[2] = 0;
}
//atribut seterusnya ...
//target
$outputx = 0;
if($data['semua_data'][$i]['prediksi'] == "AMAN")
{
$outputx = 1;//posisi index 0 1
}
else if($data['semua_data'][$i]['prediksi'] ==
"BAHAYA")
{
$outputx = 0;//posisi index 1 0
}
$this->feedforward2();
if($this->maximum() != $outputx)//jika index terbesar
dari hitungan actual tidak sama dengan output/target
{
$salah++; //epoch salah
}
}
return "Akurasi ".(($this->maxdata - $salah) / $this->
maxdata * 100)."%";
}

Gambar 4.27 Source Code Function Akurasi Lanjutan


65

4.5

Hasil Pengujian Data Training


Penulis melakukan eksperimen dan uji coba pada proses training untuk

menemukan parameter yang menghasilkan pola pelatihan secara benar. Berikut


tabel hasil pengujian yang dilatihkan :
A. Hasil Pengujian Berdasarkan Jumlah Hidden Neurons Proses Training
Tabel 4.1 Hasil Pengujian Berdasarkan Jumlah Hidden
Plthn Hidden
Ke - Neurons

Ketepatan
Konstanta Iterasi
Pengenalan Waktu
Belajar
(max
Pola
Komputasi
Dari 6 pola
Akurasi
(learning rate)epoch) data training
Pada epoch ke - (detik)

0.37

200

50%

199

0.3738

0.37

200

83.33
%

199

0.3981

0.37

200

100%

113

0.2740

0.37

200

100%

69

0.2064

10

0.37

200

100%

61

0.1574

11

0.37

200

100%

10

0.0875

20

0.37

200

100%

40

0.2270

27

0.37

200

100%

57

0.2821

Menggunakanterlalu sedikit neurondi lapisan tersembunyi


akan
menghasilkan sesuatu yang disebut underfitting. Underfitting terjadi ketika
terlalu sedikit neuron di lapisan tersembunyi untuk dapat mendeteksi sinyal
dalam satu set data yang rumit atau jaringan tidak cukup fleksibel untuk

mempelajari data. Parameter hidden neurons paling optimal antara pelatihan ke


4, 5 dan 6.
B. Hasil Pengujian Berdasarkan Learning Rate Proses Training
Tabel 4.2 Hasil Pengujian Berdasarkan Learning Rate
Plthn Hidden
Ke - Neurons

Ketepatan
Konstanta Iterasi
Pengenalan
Waktu
Belajar
(max
Pola
Dari 6 pola
Komputasi
Akurasi
(learning rate)epoch) data training
Pada epoch ke 0.1
200
4
66.67%
199
0.5402

10

10

0.17

200

100%

151

0.4342

10

0.23

200

100%

117

0.3522

10

0.3

200

100%

92

0.2716

66

10

0.35

200

100%

73

0.2216

10

0.37

200

100%

63

0.2118

10

0.4

200

100%

64

0.2003

10

0.45

200

100%

101

0.2923

Jika nilai learning rate yang digunakan terlalu kecil maka terlalu banyak
epoch yang dibutuhkan untuk mencapai nilai target yang diinginkan, sehingga

menyebabkan proses training membutuhkan waktu yang lama. Semakin besar


nilai learning rate yang digunakan maka proses pelatihan jaringan akan semakin
cepat, namun jika terlalu besar justru akan mengakibatkan jaringan menjadi
tidak stabil. Parameter learning rate paling optimal antara pelatihan ke 6 dan 7.
C. Hasil Pengujian Berdasarkan Iterasi Proses Training
Tabel 4.3 Hasil Pengujian Berdasarkan Iterasi
Plthn Hidden
Ke - Neurons

Ketepatan
Konstanta Iterasi
Pengenalan
Waktu
Pola
Belajar
(max
Dari 6 pola
Komputasi
Akurasi
Pada epoch ke (learning rate)
epoch) data training
0.37
27
3
50%
26
0.1717

10

10

0.37

50

66.67%

49

0.1750

10

0.37

100

100%

35

0.1680

10

0.37

120

100%

39

0.1476

10

0.37

200

100%

22

0.1136

10

0.37

300

100%

57

0.2070

10

0.37

400

100%

81

0.2424

10

0.37

500

100%

98

0.2837

Jumlah iterasi yang dibutuhkan pada proses pelatihan dipengaruhi oleh


penentuan nilai parameter-parameter pelatihan (jumlah neuron pada lapisan
tersembunyi, learning rate). Iterasi dilakukan terus hingga semua pola memiliki

keluaran jaringan yang sama dengan targetnya (jaringan sudah memahami pola).
Parameter learning rate paling optimal antara pelatihan ke 3,4 dan 5.
D. Hasil Pengujian Optimal
Dari hasil pengujian berdasarkan jumlah hidden neurons, learning rate dan
iterasi sebelumnya. Penulis melakukan pengujian optimal untuk mendapatkan
parameter terbaik dari segi efisiensi waktu komputasi yang diperlukan dan batas
pengenalan pola pada epoch yang tidak terlalu jauh.

67

Tabel 4.4 Hasil Pengujian Optimal


Plthn Hidden
Ke - Neurons

Ketepatan
Konstanta Iterasi
Pengenalan
Waktu
Pola
Belajar
(max
Dari 6 pola
Akurasi Pada epoch keKomputasi
(learning rate)
epoch) data training
0.37
100
6
100%
92
0.2999

10

0.37

100

100%

82

0.2554

11

0.37

100

100%

89

0.2719

0.37

120

100%

76

0.2216

10

0.37

120

100%

77

0.2335

11

0.37

120

100%

68

0.2432

0.37

200

100%

57

0.1838

10

0.37

200

100%

65

0.2193

11

0.37

200

100%

84

0.2526

10

0.4

100

100%

66

0.2080

11

10

0.4

100

100%

68

0.2008

12

11

0.4

100

100%

70

0.2215

13

0.4

120

100%

85

0.2638

14

10

0.4

120

100%

77

0.2491

15

11

0.4

120

100%

88

0.3088

16

0.4

200

100%

79

0.2462

17

10

0.4

200

100%

70

0.2276

18

11

0.4

200

100%

92

0.3034

Jaringan yang menghasilkan konvergensi terbaik terdapat pada pelatihan

ke-7 dengan hidden neurons sejumlah 9, epoch maksimal 200 yang memiliki

parameter learning rate = 0.37 dengan waktu komputasi yang relatif cepat.
Parameter ini yang digunakan untuk testing.
4.6

Halaman TESTING
Halaman testing ini digunakan untuk mentesting data dan mendapatkan

hasil keputusan/prediksi dari gejala yang ada, menggunakan parameter sebagai


berikut :
Hidden neurons = 9
Learning Rate = 0.37
Max Epoch = 200

68

Gambar 4.28 Halaman Testing

Dan berikut source code dari button proses :

public function testing()


{
$data['keputusan'] = "";
if(isset($_POST['kecepatan_angin']))
{
if($_POST['kecepatan_angin'] >= 0 &&
$_POST['kecepatan_angin'] <= 10)
{
$this->inputx[0] = 0;
$this->inputx[1] = 0;
$this->inputx[2] = 1;
}
else if($_POST['kecepatan_angin'] >= 11 &&
$_POST['kecepatan_angin'] <= 21)
{
$this->inputx[0] = 0;
$this->inputx[1] = 1;
$this->inputx[2] = 0;
}

Gambar 4.29 Source Code Function Testing

69

else if($_POST['kecepatan_angin'] >= 22 &&


$_POST['kecepatan_angin'] <= 64)
{
$this->inputx[0] = 1;
$this->inputx[1] = 0;
$this->inputx[2] = 0;
}
if($_POST['tinggi_ombak'] >= 0 &&
$_POST['tinggi_ombak'] <= 2.5)
{
$this->inputx[3] = 0;
$this->inputx[4] = 0;
$this->inputx[5] = 1;
}
else if($_POST['tinggi_ombak'] >= 2.6 && $_POST
['tinggi_ombak'] <= 4)
{
$this->inputx[3] = 0;
$this->inputx[4] = 1;
$this->inputx[5] = 0;
}
else if($_POST['tinggi_ombak'] >= 4)
{
$this->inputx[3] = 1;
$this->inputx[4] = 0;
$this->inputx[5] = 0;
}
if($_POST['kencang_arus'] >= 0 && $_POST
['kencang_arus'] <= 10)
{
$this->inputx[6] = 0;
$this->inputx[7] = 0;
$this->inputx[8] = 1;
}
else if($_POST['kencang_arus'] >= 11 &&
$_POST['kencang_arus'] <= 21)
{

Gambar 4.30 Source Code Function Testing Lanjutan

70

$this->inputx[6] = 0;
$this->inputx[7] = 1;
$this->inputx[8] = 0;
}
else if($_POST['kencang_arus'] >= 22 &&
$_POST['kencang_arus'] <= 64)
{
$this->inputx[6] = 1;
$this->inputx[7] = 0;
$this->inputx[8] = 0;
}
...
//kondisi seterusnya
$this->feedforward2();
if($this->maximum() == 0)
$data['keputusan'] = "BAHAYA";
else
$data['keputusan'] = "AMAN";
$this->sessionn->set('kecepatan_angin',$_POST
['kecepatan_angin']);
$this->sessionn->set('tinggi_ombak',$_POST['tinggi_ombak']);
$this->sessionn->set('kencang_arus',$_POST['kencang_arus']);
$this->sessionn->set('draft_kapal',$_POST['draft_kapal']);
$this->sessionn->set('draft_dermaga',$_POST
['draft_dermaga']);
$this->sessionn->set('target',$data['keputusan']);
$this->load->view('testing', $data);
} else
$this->load->view('testing', $data);
}

Gambar 4.31 Source Code Function Testing Lanjutan 1


Dalam proses testing ini hanya melakukan feedforward saja dengan
menggunakan parameter terbaik hasil training. Lalu actual atau output neuron
output akan dicek index nilai terbesar. Jika index terbesar berada pada index 0
maka keputusavA ^B,z_A o]lvAi]lA ]vAAA A]vAA
ulAlvA^DE_X

71

4.7

Hasil Uji Coba Testing

Berikut keterangan untuk input kondisi :

Gambar 4.32 Keterangan


Uji coba pada halaman testing ini dibagi menjadi 2, yaitu :
1. Uji coba data training (data validasi).
Tabel 4.5 Tabel Data Training
NO. KECEPATANKETINGGIAN
KENCANGNYADRAFT DRAFT
OUTPUT/
ANGIN
OMBAK
ARUS
KAPAL DERMAGA TARGET ATRIBUT
1.
LEMAH
NORMAL
LEMAH
BAIK
BAIK
AMAN
2.

LEMAH

NORMAL

LEMAH

BURUK

BURUK

AMAN

3.

SEDANG

SEDANG

SEDANG

BAIK

BAIK

AMAN

4.

SEDANG

SEDANG

SEDANG

BURUK

BURUK

BAHAYA

5.

KENCANG

BESAR

KENCANG

BAIK

BAIK

BAHAYA

6.

KENCANG

BESAR

KENCANG

BURUK

BURUK

BAHAYA

Gambar 4.33 Uji Coba Data Training Pola 1 (Input Kondisi)

72

Gambar 4.34 Hasil Uji Coba Data Training Pola 1


Berikut ringkasan uji coba data training, dapat dilihat pada tabel 3.8 :
Tabel 4.6 Ringkasan Uji Coba Data Training
NO
1.

KECEPATANKETINGGIANKENCANGNYA DRAFT
ANGIN
OMBAK
ARUS
KAPAL
3 knot
0 meter
5 knot
BAIK

DRAFT
OUTPUT
DERMAGA TARGET
BAIK
AMAN

2.

5 knot

1 meter

7 knot

BURUK

BURUK

AMAN

3.

15 knot

2.6meter

17 knot

BAIK

BAIK

AMAN

4.

19 knot

2.7meter

21 knot

BURUK

BURUK

BAHAYA

5.

27 knot

4.5 meter

30 knot

BAIK

BAIK

BAHAYA

6.

63 knot

5 meter

64 knot

BURUK

BURUK

BAHAYA

data verifikasi sudah di konfirmasi


2. Uji coba data testing (data verifikasi)

oleh pakar.
Tabel 4.7 Tabel Data Testing
NO. KECEPATANKETINGGIAN
KENCANGNYADRAFT DRAFT
OUTPUT/
ANGIN
OMBAK
ARUS
KAPAL DERMAGA TARGET ATRIBUT
1.
LEMAH
SEDANG
LEMAH
BAIK
BAIK
AMAN
2.

LEMAH

SEDANG

LEMAH

BURUK

BURUK

AMAN

3.

SEDANG

NORMAL

SEDANG

BAIK

BAIK

AMAN

4.

SEDANG

NORMAL

SEDANG

BURUK

BURUK

BAHAYA

5.

KENCANG

SEDANG

KENCANG

BAIK

BAIK

BAHAYA

6.

KENCANG

SEDANG

KENCANG

BURUK

BURUK

BAHAYA

73

Gambar 4.35 Uji Coba Data Testing Pola 6 (Input Kondisi)

Gambar 4.36 Hasil Uji Coba Data Testing Pola 6


Berikut ringkasan uji coba data testing, dapat dilihat pada tabel 3.9 :
Tabel 4.8 Ringkasan Uji Coba Data Testing
NO
1.

KECEPATANKETINGGIANKENCANGNYA DRAFT
ANGIN
OMBAK
ARUS
KAPAL
10 knot
2.9 meter
9.8 knot
BAIK

DRAFT
OUTPUT
DERMAGA TARGET
BAIK
AMAN

2.

10 knot

2.7 meter

9.5 knot

BURUK

BURUK

AMAN

3.

18 knot

2.4 meter

19 knot

BAIK

BAIK

AMAN

4.

20 knot

2 meter

19 knot

BURUK

BURUK

BAHAYA

5.

30 knot

3 meter

35 knot

BAIK

BAIK

BAHAYA

6.

57 knot

4 meter

55 knot

BURUK

BURUK

BAHAYA

74

BAB V
PENUTUP
5.1

Kesimpulan
Setelah dilakukan analisa terhadap hasil training dan testing, maka dapat

ditarik kesimpulan, bahwa :


1) Penerapan Metode Neural Network Backpropagation untuk prediksi
resiko Sandar Kapal Tangker PALM 1 menghasilkan jaringan yang optimal
dengan parameter hidden layer 9, learning rate 0.37, dan iterasi 200.
2) Metode Neural Network Backpropagation merupakan salah satu metode
yang dapat digunakan untuk tugas prediksi dengan tingkat keberhasilan
yang cukup baik, karena 100% dari pola data training dan 90% dari pola
data testing yang diuji dapat dikenali dengan benar.
3) Faktor-faktor yang berpengaruh untuk mendapatkan hasil yang terbaik
adalah jumlah neuron pada hidden layer, learning rate, dan iterasi.
5.2

Saran
Meskipun sudah bisa dikatakan bermanfaat dan sesuai target namun

sistem ini belum sepenuhnya sempurna, saran dari penyusun diantaranya :


1. Diharapkan penerapan metode dikembangkan untuk memprediksi resiko
sandar kapal secara umum tidak terbatas bentuk dan ukuran kapal.
2. Diharapkan ada interface untuk eksperimen training.
3. Bobot optimal disimpan dalam database agar saat melakukan testing,
tidak perlu melakukan training lagi.

75

Halaman ini sengaja dikosongkan

76

DAFTAR PUSTAKA
Devi, C.J., Reddy, B.P., Kumar, K.V., Reddy, B., Nayak, N.R., "ANN Approach for
Weather Prediction using Back Propagation", International Journal of
Engineering Trends and Technology, Vol.3 - Issuel, 2012. Andhra
University : India.
Dini Oktaviani Maru'ao. 2010. Neural Network Implementation in Foreign
Exchage Kurs Prediciton. Gunadarma University : Jakarta.
Ganatra, Amit, Kosta, Y.P., Panchal,Gaurang, Gajjar Chintan, "Initial Classification
Through Back Propagation In a Neural Network Following Optimization
Through GA to Evaluate the Fitness of an Algorithm", International
Journal of Computer Science & Information Technology (IJCSIT), Vol 3,
No 1,2011. Charotar University of Science and Technology (CHARUSAT) :
India.

Haykin, S., 1999, Neural Network A Comprehensive Foundation, Second Edition,


Pearson Education, Singapore.

Heaton, J., 2008, Introduction to Neural Networks with Java, 2nd Edition, Heaton
Research.Inc, New York.
Hermawan, A., 2006, Jaringan Saraf Tiruan : Teori dan Aplikasi, Yogyakarta :
Andi.
Khalid, Marzuki. (2009). Internet. "Multilayer Neural Networks
theand
Backpropagation Algorithm". Universiti Teknologi Malaysia : Malaysia.
Retrieved Desember 20, 2014, from http://www . cairo.utm.my/
Kusumadewi, Sri. 2004. Membangun Jaringan Syaraf Tiruan Menggunakan
MATLAB & Excell Link. Yogyakarta : Graha Ilmu.
Keputusan Direktur Jenderal Perhubungan Laut Nomor : UM.002/38/18/DJPL t
11. 2011
. Standar Kinerja Pelayanan Operasional Pelabuhan Direktur
Jenderal Perhubungan Laut. Jakarta.
Maria Agustin. 2012. Penggunaan Jaringan Syaraf Tiruan Backpropagation Untuk
Seleksi Penerimaan Mahasiswa Baru Pada Jurusan Teknik Komputer Di
Politeknik Negeri Sriwijaya. Universitas Diponegoro : Semarang.
Nur Afifah. 2011. Analisis Metode Backpropagation Untuk Memprediksi Indeks
Harga Saham Pada Kelompok Indeks Bisnis-27. Universitas Islam Negeri
Syarif Hidayatullah : Jakarta.
77

Peranginangin, Kasiman. 2006. Aplikasi Web dengan PHP dan MySQL.


Yogyakarta : Andi Offset.
Peraturan Menteri Perhubungan Nomor : KM. 21. 2007. Sistem dan Prosedur
Pelayanan Kapal, Barang dan Penumpang pada Pelabuhan Laut yang
diselenggarakan oleh Unit Pelaksana Teknis (UPT) Kantor Pelabuhan.
Jakarta.
Peraturan Menteri Perhubungan Nomor : PM. 36. 2012. Organisasi dan Tata
Kerja Kantor Kesyahbandaran dan Otoritas Pelabuhan. Jakarta.

Pusat Bahasa Depdiknas. 2002. Kamus Besar Bahasa Indonesia (Edisi Ketiga).
Jakarta : Balai Pustaka.
Z}][]vUA BuvPXA XA Mengolah Database dengan SQL pada INTERBASE
Menggunakan DELPHI 6.0 Edisi I. Yogyakarta : Andi.
Siang, Jong Jek. 2004. Jaringan Syaraf Tiruan dan Pemrogramannya
Menggunakan MATLAB. Yogyakarta : ANDI.
Sidik, Betha. 2012. Framework CodeIgniter. Bandung : Informatika Bandung.
Sri Redjeki. 2013. Analisis Fungsi Aktivasi Sigmoid Algoritma Backpropagation
Pada Prediksi Data. STMIK Akakom : Yogyakarta.

Suhartono, Derwin. 2012. Dasar Pemahaman Neural Network. diakses pada 29


September2014. http://socs.binus.ac.id/2012/07/26/konsep-neuralnetwork.
Suprayogi, I., Anwar, N., Edijatno, dan Irawan, M.I. 2005. Prediksi Salinitas di
Estuari Menggunakan Jaringan Syaraf Tiruan. Jurnal Teknik. Vol. XII, No.
2, Malang.
Mardianto, Is, Dian, P. 2008. Sistem Deteksi Penyakit Pengeroposan Tulang
Dengan Metode Jaringan Syaraf Tiruan Backpropagation
dan
Representasi Ciri dalam Ruang Eigen. Jurnal Teknik Informatika. Vol. II,
No. 1. Jakarta.
Supriyadi, Didi. 2012. Sistem Informasi Penyebaran Penyakit Demam Berdarah
MenggunakanMetode Jaringan Syaraf Tiruan Backpropagation.
Universitas Diponegoro : Semarang.
Susanto, Budi. 2007. Belajar Sendiri Administrasi dan Pemrogramam Database
Oracle 10g XE. Jakarta : PT Elex Media Komputindo.

78

ST, Anhar. 2010. Panduan menguasai PHP & MySQL secara Otodidak. Jakarta :
Mediakita.
Yunita Tika. 2012. Jaringan Saraf Tiruan Resilient Backpropagation Untuk
Memprediksi Faktor Dominan Injury Severity Pada Kecelakaan Lalu
Lintas. Universitas Sumatera Utara : Medan.
Zaki, A., dan SmitDev Community. 2008. 36 Menit Belajar Komputer PHP dan
MySQL. Jakarta : PT Elex Media Komputindo.
Z.Boger and H. Guterman. ^<v}oPA]}vA(}uA](]ial neural network
u}oU_ in Proc. IEEEInt. Conf. Systems, Man
and Cybernetics
~^DC[UA1997.

79

Halaman ini sengaja dikosongkan

80

PERNYATAAN KEASLIAN TULISAN


Saya yang bertanda tangan di bawah ini :
Nama

: NURUL ICHWANTI

NIM

: 1111100736

Jurusan / Program Studi : Teknik Informatika / S1 atau Strata 1

Menyatakan dengan sebenarnya bahwa skripsi yang saya tulis ini benar-benar
merupakan hasil karya saya sendiri, bukan merupakan pengambil alihan tulisan
atau pikiran orang lain yang saya aku sebagai hasil tulisan atau pikiran saya
sendiri.
Apabila di kemudian hari terbukti atau dapat dibuktikan skripsi ini hasil jiplakan,
maka saya bersedia menerima sanksi atas perbuatan tersebut.

Banyuwangi, 21 Januari 2015


Yang membuat pernyataan,

NURUL ICHWANTI

81

Halaman ini sengaja dikosongkan

82

RIWAYAT HIDUP

Nama

: Nurul Ichwanti

NIM

: 1111100736

Tempat/Tanggal
: Banyuwangi, 03-05-1993
Lahir
Alamat Asal

: Bakungan - Banyuwangi

Jenjang Pendidikan :
1997t 1999 TK ISLAM DARUL FALAH, Banyuwangi
1999t 2005 SD MUHAMMADIYAH 1, Banyuwangi
2005t 2008 SMPN 1 GIRI, Banyuwangi
2008t 2011 SMK Negeri 1 Banyuwangi
2011t 2015 STIKOM PGRI Banyuwangi
(Program Studi S1 Jurusan Teknik Informatika)

83

You might also like