Anda di halaman 1dari 30

BAB I

PENDAHULUAN

A. Latar Belakang
Listrik merupakan salah satu sumber energy yang digunakan untuk
keperluan sehari-hari baik dalam rumah tangga atau industri. Dalam
penggunaannya ditetapkan tarif bulanan sesuai dengan pemakaian. Tagihan
setiap bulannya tidak selalu sama, dikarenakan pemakaian serta daya yang
digunakan setiap pelanggan berbeda, biaya yang dikeluarkan untuk
membayar tagihan listrik setiap pelanggan juga berbeda. Diperlukan
perencanaan anggaran biaya tagihan listrik. Dalam hal ini, peramalan untuk
tagihan bulan depan membantu dalam perencanaan anggaran.
Seiring berkembangnya pengetahuan dan teknologi, banyak metode
yang digunakan dalam hal peramalan. Salah satu diantaranya adalah Jaringan
Syaraf Tiruan model Backpropagation. Pada penggunaannya metode ini
sudah banya digunakan untuk kasus peramalan, contoh: untuk meramalkan
harga saham, beban listrik. Dalam kasus harga saham, banyak factor yang
menyebabkan naik turunnya harga saham dan prediksi untuk harga saham
akan sangat bermanfaat bagi investor untuk dapat melihat bagaimana prospek
investasi saham sebuah perusahaan dimasa dating.

B. Rumusan Masalah
Berdasarkan latar belakang diatas dapat diambil rumusan masalah
yaitu bagaimana memperkirakan biaya tagihan listrik menggunakan jaringan
syaraf tiruan.
C. Tujuan

Tujuan dari penelitian ini adalah membangun aplikasi dengan


menerapkan jaringan syaraf tiruan model Backpropagation menggunakan
bahasa pemrograman Java untuk meramalkan biaya bulanan tagihan listrik

BAB II
LANDASAN TEORI

A. Definisi Jaringan Syaraf Tiruan


Jaringan syaraf tiruan adalah suatu sistem pengolahan informasi yang
memiliki karakteristik mirip dengan jaringan syaraf biologi. Proses tersebut
mencoba untuk mensimulasikan proses pembelajaran pada otak manusia
menggunakan program computer yang mampu menyelesaikan sejumlah
proses perhitungan selama proses pembelajaran.
B. Backpropagation
Backpropagation merupakan algoritma pembelajaran yang terawasi
dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk
mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada
lapisan tersembunyi. Algoritma Backpropagation menggunakan error output
untuk mengubah nilai bobot dalam arah mundur (backward). Untuk
mendapatkan error ini, tahap perambatan maju (forward propagation) harus
dikerjakan terlebih dahulu.

BAB III
ANALISIS DAN PERANCANGAN

A. Perancangan Aplikasi Menggunakan Matlab


Dalam perancangan neuron untuk membuat jaringan syaraf tiruan
diperlukan input, learning rate, hidden node, maksimal iterasi dan target
error sebagai parameter. Sebagai input jaringan adalah data tagihan listrik
yang terlihat pada table 1.
Variabel X1, X2 dan X3 adalah nilai tagihan listrik sebelum bulan
yang akan diramalkan. Misalkan akan meramalkan Mei, sebagai data
pelatihan X1, X2 dan X3 adalah bulan Januari, Februari, Maret dan April
sebagai target. Kemudian untuk data pelatihan yang kedua X1, X2 dan X
adalah Februari, Maret, April dan Mei sebagai target. Data tagihan berikut
adalah data tagihan listrik dari bulan Agustus 2008 sampai dengan Maret
2011.

TABEL 3.1 DATA MASUKAN


No

X1

X2

X3

Target

100.735

84.165

95.925

85.235

84.165

95.925

85.235

83.630

95.925

85.235

83.630

91.650

85.235

83.630

91.650

84.165

83.630

91.650

84.165

23.600

91.650

84.165

23.600

142.970

84.165

23.600

142.970

77.125

23.600

142.970

77.125

91.115

142.970

77.125

91.115

82.630

10

77.125

91.115

83.630

98.065

11

91.115

83.630

98.065

88.440

12

83.630

98.065

88.440

100.735

13

98.065

88.440

100.735

102.875

14

88.440

100.735

102.875

94.320

15

100.735

102.875

94.320

98.065

16

102.875

94.320

98.065

96.065

17

94.320

98.065

96.995

84.700

18

98.065

96.995

84.700

107.155

19

96.995

84.700

107.155

100.735

20

84.700

107.155

100.735

84.700

21

107.155

100.735

84.700

91.650

22

100.735

84.700

91.650

24.490

23

84.700

91.650

24.490

145.645

24

91.650

24.490

145.645

26.340

25

24.490

145.645

26.340

272.135

26

145.645

26.340

272.135

71.870

27

26.340

272.135

71.870

65.455

Data masukan tersebut kemudian dibagi untuk data pelatihan dan data
pengujian sebagai berikut:

TABEL 3.2 PELATIHAN


No

X1

X2

X3

Target

100.735

84.165

95.925

85.235

84.165

95.925

85.235

83.630

95.925

85.235

83.630

91.650

85.235

83.630

91.650

84.165

83.630

91.650

84.165

23.600

91.650

84.165

23.600

142.970

84.165

23.600

142.970

77.125

23.600

142.970

77.125

91.115

142.970

77.125

91.115

82.630

10

77.125

91.115

83.630

98.065

11

91.115

83.630

98.065

88.440

12

83.630

98.065

88.440

100.735

13

98.065

88.440

100.735

102.875

14

88.440

100.735

102.875

94.320

15

100.735

102.875

94.320

98.065

16

102.875

94.320

98.065

96.065

17

94.320

98.065

96.995

84.700

18

98.065

96.995

84.700

107.155

19

96.995

84.700

107.155

100.735

20

84.700

107.155

100.735

84.700

TABEL 3.3 DATA PENGUJIAN


No

X1

X2

X3

Target

107.155

100.735

84.700

91.650

100.735

84.700

91.650

24.490

84.700

91.650

24.490

145.645

91.650

24.490

145.645

26.340

24.490

145.645

26.340

272.135

145.645

26.340

272.135

71.870

26.340

272.135

71.870

65.455

Pada perangkat lunak yang akan dibangun, fingsi aktivasi yang


digunakan adalah sigmoid biner. Dengan parameter learning rate 1, hidden
node 24, iterasi 3000000, dan target error 0,000001.
Gambar di bawah ini merupakan struktur jaringan pada aplikasi
peramalan tagihan listrik. Terdiri dari 3 input yaitu X1, X2 dan X3 dengan 1
hidden layer dengan banyak hidden node 5 dan output yang menghasilkan
nilai tagihan listrik.

Gambar 3.1 Struktur jaringan aplikasi

Setiap unit input menerima sinyal masukan dan meneruskan ke semua


unit lapisan hidden. Pada hidden layer, tiap-tiap hidden node menjumlahkan
sinyal input terbobot dan menggunakan fungsi aktivasi sigmoid untuk
menghitung sinyal output dari lapisan atasnya. Kemudian tiap-tiap output
menjumlahkan sinyal input terbobot, dan menggunakan fungsi aktivasi
sigmoid untuk menghitung sinyal output (Y).
Tahap perambatan mundur (backward) dilakukan jika output pada
proses perambatan maju belum memenuhi target yang diharapkan. Proses
perambatan maju dan mundur dilakukan terus hingga output (Y) sudah
memenuhi target yang diinginkan.
Adapun prosedur perancangan aplikasi ini dengan menggunakan
program MATLAB adalah sebagai berikut:
1. Membuka dan menjalankan program MATLAB yang ada pada computer.

2. Setelah program matlab terbuka, pilih icon new script pada sudut kiri atas
sehingga muncul jendela editor untuk merancang aplikasi seperti pada
gambar berikut.

3. Setelah jendela editor terbuka, tahap selanjutnya adalah mulai mengetik


program untuk aplikasi peramalan pada lembar editor dengan coding
sebagai berikut:
clear;

%Data input & target


Data =[...
100735 84165 95925 85235
84165 95925 85235 83630
95925 85235 83630 91650
85235 83630 91650 84165
83630 91650 84165 23600
91650 84165 23600 142970
84165 23600 142970 77125
23600 142970 77125 91115
142970 77125 91115 83638
77125 91115 83630 98065
91115 83630 98065 88440

83630 98065 88440 100735


98065 88440 100735 102875
88440 100735 102875 94320
100735 102875 94320 98065
102875 94320 98065 96995
94320 98065 96995 84700
98065 96995 84700 107155
96995 84700 107155 100735
84700 107155 100735 84700];
P = Data(:,1:3)';
T = Data(:,4)';

%preprocessing
[pn,meanp,stdp,tn,meant,stdt]=prestd(P,T)

%membangun jaringan syaraf feedforward


net = newff(minmax(pn),[24 1],{'logsig' 'purelin'},'trainlm');

%set max epoh, goal, learning rate, show step


net.trainParam.epoch = 3000000;
net.trainParam.goal = 0.000001;
net.trainParam.mu = 0.3;

%melakukan pembelajaran
net = train(net,pn,tn);

%melakukan simulasi
an = sim(net,pn);
a = poststd(an,meant,stdt);
et = T - a

%Input baru Q akan di tes, dengan target TQ


Cek= [...
107155 100735 84700 91650
100735 84700 91650 24490
84700 91650 24490 145645
91650 24490 145645 26340
24490 145645 26340 272135
145645 26340 272135 71870
26340 272135 71870 65455];
Q = Cek(:,1:3)';
TQ = Cek(:,4)';

%Normalisasi input baru


Qn = trastd(Q,meanp,stdp);
bn = sim(net,Qn);
b = poststd(bn,meant,stdt)
e = TQ - b

4. Setelah selesai melakukan coding, save hasil codingan

5. Untuk melihat kinerja aplikasi yang sudah dibuat, jalankan program


dengan mengklik tombol run

pada jendela editor sehingga akan

muncul tampilan seperti gambar berikut.

6. Untuk melihat ouput dari aplikasi yang telah dibangun, buka jendela
command window.

10

11

BAB IV
HASIL DAN PEMBAHASAN

1.1 Kinerja Algoritma Backpropagation


Berikut adalah hasil pelatihan aplikasi peramalan tagihan listrik
dengan parameter learning rate 1, banyak hidden node 24, maksimal iterasi
3000000 dan target error 0,000001.

Gambar 4.1 Proses pelatihan pada MATLAB


Gambar 4.1 menunjukkan proses pelatihan dengan menggunakan
kombinasi 3 input, 4 neuron pada hidden layer dan 1 unit output yang
dihentikan saat iterasi mencapai 25 dari 1000 (jumlah iterasi maksimum pada
kombinasi ini), karena target error sudah tercapai. Setelah proses pelatihan
selesai maka didapatkan bobot akhir.
Kinerja aplikasi yang telah dirancang dapat dilihat pada gambar
berikut.

12

Gambar 4.2 Grafik kinerja aplikasi pada MATLAB


Hasil dari keluaran aplikasi peramalan pada command window adalah
sebagai berikut:

pn =

Columns 1 through 9

13

0.4968 -0.3002
-0.3124

0.2654 -0.2488 -0.3260

0.2474 -0.2615 -0.3379

0.2074 -0.3002 -0.3764

0.0598 -0.3002 -3.2133

0.0439 -0.3124 -3.1955

2.5282

2.4869 -0.6476

0.0044 -0.3510 -3.2266

2.4412 -0.6852 -0.0210

0.3683 -0.0946

0.4968

0.5997

0.1882

0.3683

0.4764

0.5782

0.1710

0.3493

0.2983

0.5374

0.1312

0.3090

0.2582 -0.3256

Columns 10 through 18

-0.6388

0.0341 -0.3260

0.0184 -0.3379
-0.3764

0.3493 -0.1089

0.3090 -0.1480

0.4358

Columns 19 through 20

0.3169 -0.2745
-0.2870

0.7820

0.7406

0.4358

meanp =

1.0e+004 *

9.0407
9.0728
9.1556

14

stdp =

1.0e+004 *

2.0791
2.1007
2.1061

tn =

Columns 1 through 9

-0.2732 -0.3493

0.0310 -0.3239 -3.1959

2.4646 -0.6578

0.0057 -0.3489

Columns 10 through 18

0.3352 -0.1212

0.4618

0.5633

0.1576

Columns 19 through 20

0.4618 -0.2985

meant =

15

0.3352

0.2845 -0.2985

0.7663

9.0996e+004

stdt =

2.1088e+004

Warning: NEWFF used in an obsolete way.


> In nntobsu at 18
In newff at 86
In Untitled3new at 32
See help for NEWFF to update calls to the new argument list.

et =

Columns 1 through 9

-0.0025

0.0176

0.0102

0.0046 -0.0322

0.0249

0.2182 -0.0299

0.0060

Columns 10 through 18

0.0019 -0.0101 -0.0221 -0.0102

0.0043 -0.0003 -0.0075 -0.0083 -0.0093

Columns 19 through 20

16

-0.0121 -0.0025

Warning: TRASTD is an obsolete function.


> In nntobsf at 18
In trastd at 7
In Untitled3new at 60
Use MAPSTD instead.

b=

1.0e+005 *

1.5700

1.0459

2.1441

0.9783

0.4032

0.9541

1.6787

e=

1.0e+005 *

-0.6535 -0.8010 -0.6877 -0.7149

2.3182 -0.2354 -1.0241

Warning: PRESTD is an obsolete function.


> In nntobsf at 18
In prestd at 8

17

In Untitled3new at 29
Use MAPSTD instead.

pn =

Columns 1 through 9

0.4968 -0.3002
-0.3124

0.2654 -0.2488 -0.3260

0.2474 -0.2615 -0.3379

0.2074 -0.3002 -0.3764

0.0598 -0.3002 -3.2133

0.0439 -0.3124 -3.1955

2.5282

2.4869 -0.6476

0.0044 -0.3510 -3.2266

2.4412 -0.6852 -0.0210

0.3683 -0.0946

0.4968

0.5997

0.1882

0.3683

0.4764

0.5782

0.1710

0.3493

0.2983

0.5374

0.1312

0.3090

0.2582 -0.3256

Columns 10 through 18

-0.6388

0.0341 -0.3260

0.0184 -0.3379
-0.3764

0.3493 -0.1089

0.3090 -0.1480

0.4358

Columns 19 through 20

0.3169 -0.2745
-0.2870

0.7820

0.7406

0.4358

meanp =

18

1.0e+004 *

9.0407
9.0728
9.1556

stdp =

1.0e+004 *

2.0791
2.1007
2.1061

tn =

Columns 1 through 9

-0.2732 -0.3493

0.0310 -0.3239 -3.1959

2.4646 -0.6578

0.0057 -0.3489

Columns 10 through 18

0.3352 -0.1212

0.4618

0.5633

0.1576

19

0.3352

0.2845 -0.2985

0.7663

Columns 19 through 20

0.4618 -0.2985

meant =

9.0996e+004

stdt =

2.1088e+004

Warning: NEWFF used in an obsolete way.


> In nntobsu at 18
In newff at 86
In Untitled3new at 32
See help for NEWFF to update calls to the new argument list.

et =

Columns 1 through 9

20

-0.1297 -0.2005

0.0168 -0.0521 -0.2944

0.0046 -0.0009

0.0001 -0.0068

Columns 10 through 18

-0.1305 -0.1159 -0.1744 -0.0368 -0.0531 -0.0575 -0.0355 -0.0056

Columns 19 through 20

-0.1002 -0.0654

Warning: TRASTD is an obsolete function.


> In nntobsf at 18
In trastd at 7
In Untitled3new at 60
Use MAPSTD instead.

b=

1.0e+005 *

1.3744

0.9535

0.7986

0.7531

1.1653

e=

21

1.8302

0.0719

0.0609

1.0e+005 *

-0.4579 -0.7086

0.6579 -0.4897

1.5560 -1.1115

0.5827

Warning: PRESTD is an obsolete function.


> In nntobsf at 18
In prestd at 8
In Untitled3new at 29
Use MAPSTD instead.

pn =

Columns 1 through 9

0.4968 -0.3002
-0.3124

0.2654 -0.2488 -0.3260

0.2474 -0.2615 -0.3379

0.2074 -0.3002 -0.3764

0.0598 -0.3002 -3.2133

0.0439 -0.3124 -3.1955

2.5282

2.4869 -0.6476

0.0044 -0.3510 -3.2266

2.4412 -0.6852 -0.0210

0.3683 -0.0946

0.4968

0.5997

0.1882

0.3683

0.4764

0.5782

0.1710

0.3493

0.2983

0.5374

0.1312

0.3090

0.2582 -0.3256

Columns 10 through 18

-0.6388

0.0341 -0.3260

0.0184 -0.3379
-0.3764

0.3493 -0.1089

0.3090 -0.1480

0.4358

Columns 19 through 20

22

0.3169 -0.2745
-0.2870

0.7820

0.7406

0.4358

meanp =

1.0e+004 *

9.0407
9.0728
9.1556

stdp =

1.0e+004 *

2.0791
2.1007
2.1061

tn =

23

Columns 1 through 9

-0.2732 -0.3493

0.0310 -0.3239 -3.1959

2.4646 -0.6578

0.0057 -0.3489

Columns 10 through 18

0.3352 -0.1212

0.4618

0.5633

0.1576

Columns 19 through 20

0.4618 -0.2985

meant =

9.0996e+004

stdt =

2.1088e+004

Warning: NEWFF used in an obsolete way.


> In nntobsu at 18
In newff at 86
In Untitled3new at 32

24

0.3352

0.2845 -0.2985

0.7663

See help for NEWFF to update calls to the new argument list.

et =

Columns 1 through 9

0.0599

4.8650

0.7354

1.1727 -3.8533 -3.6363

2.0933 -6.1343

2.5592

Columns 10 through 18

4.4328

2.2455 -0.4512 -0.6830 -3.6462 -13.4831 -3.2392 -6.2099

Columns 19 through 20

0.1830 -3.1606

Warning: TRASTD is an obsolete function.


> In nntobsf at 18
In trastd at 7
In Untitled3new at 60
Use MAPSTD instead.

b=

25

0.5002

1.0e+005 *

1.1013

0.9451

2.2860

0.6544

0.8902

0.2739

1.7587

e=

1.0e+005 *

-0.1848 -0.7002 -0.8296 -0.3910

1.8312

0.4448 -1.1042

>>

Dari hasil keluaran pada command window dapat dilihat bahwa hasil
peramalan Jaringan Syaraf Tiruan tidak terpaut jauh dari target, dapat dilihat
pada tabel berikut.

TABEL 4.1 HASIL PERAMALAN

26

No

Data Tagihan Asli

27

Hasil Peramalan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

85.235
83.630
91.650
84.165
23.600
142.970
77.125
91.115
82.630
98.065
88.440
100.735
102.875
94.320
98.065
96.065
84.700
107.155
100.735
84.700
91.650
24.490
145.645
26.340
272.135
71.870
65.455

28

85.235
83.625
91.649
84.164
23.604
142.970
77.123
91.121
83.635
98.061
88.438
100.740
102.880
94.324
98.078
96.0998
84.706
107.150
100.730
84.703
110.130
94.508
228.600
65.441
89.018
27.392
175.870

BAB V
PENUTUP

A. Kesimpulan
Setelah dilakukan pengujian, dapat diambil kesimpulan aplikasi
peramalan tagihan listrik menggunakan metode Backpropagation mampu
melakukan peramalan tagihan listrik. Dalam proses meramalkan tagihan,
dilakukan proses pelatihan terhadap data tagihan bulan sebelum bulan yang
akan diramalkan untuk mendapatkan bobot. Bobot tersebut digunakan untuk
mendapatkan bobot. Bobot tersebut digunakan dalam meramalkan tagihan
listrik.

B. Saran
Aplikasi peramalan tagihan listrik ini masih terdapat banyak
kekurangan, maka hendaknya dapat disempurnakan lagi. Dan alangkah
baiknya bila aplikasi ini dibangun dengan menggunakan Graphical User
Interface (GUI) Matlab.

29

DAFTAR PUSTAKA

http://lib.ui.ac.id/file?file=digital/119294-T%2025205-Peramalan%20TagihanListrik.pdF

30