BAB 2 LANDASAN TEORI
2.1 Jaringan Saraf Propagasi Balik
Jaringan saraf propagasi balik merupakan jaringan saraf yang menggunakan konsep jaringan berlapis jamak. Lapisan pertama adalah lapisan masukan input dan yang
terakhir adalah lapisan keluaran output. Lapisan diantara lapisan masukan dan lapisan keluaran disebut dengan lapisan tersembunyi hidden Hermawan, 2006.
Jaringan saraf propagasi balik menerapkan metode pelatihan yang terawasi yaitu metode pelatihan yang memberikan nilai target yang diinginkan dari setiap
neuron pada lapisan keluaran. Puspitaningrum 2006, hal:125 menyatakan bahwa istilah “propagasi balik” atau “penyiaran kembali”diambil dari cara kerja jaringan ini,
yaitu bahwa gradien error neuron-neuron lapisan tersembunyi diturunkan dari penyiaran kembali error-error yang diasosiasikan dengan neuron-neuron lapisan
keluaran. Hal ini karena nilai target untuk neuron-neuron tersembunyi tidak diberikan.
2.1.1 Arsitektur jaringan saraf propagasi balik
Pada jaringan saraf propagasi balik setiap lapisan akan memiliki jumlah neuron yang berbeda, tergantung pada permasalahan yang akan diselesaikannya.
Secara umum arsitektur dari jaringan saraf propagasi balik dengan satu lapisan tersembunyi adalah sebagai berikut
Universitas Sumatera Utara
Gambar 2. 1 Arsitktur Jaringan Saraf Propagasi Balik
2.1.2 Proses komputasi jaringan
Proses komputasi pada jaringan saraf propagasi balik dapat dibagi menjadi dua tahap yaitu komputasi maju pass forward dan komputasi mundur pass backward
Setawan, 1999. Komputasi maju bertujuan untuk menghasilkan nilai keluaran aktual, sedangkan komputasi mundur bertujuan untuk melakukan perubahan nilai bobot pada
setiap lapisan.
2.1.2.1 Komputasi maju
Komputasi maju pada jaringan saraf propagasi balik dimulai dari lapisan masukan tetapi neuron-neuron yang melakukan proses komputasi adalah neuron-neuron pada
lapisan tersembunyi. Hal ini disebabkan karena neuron-neuron pada lapisan masukan hanya berfungsi meneruskan nilai masukan untuk neuron-neuron pada lapisan
tersembunyi.
Bias
i
N 1
1
j
L Bias
1
k
M .
. .
. .
. .
. .
. .
. .
. .
. .
.
Lapisan Masukan Lapisan Tersembunyi
Lapisan Keluaran x
p1
x
pi
x
pN
M A
S U
K A
N o
p1
o
pk
o
pM
K E
L U
A R
A N
Universitas Sumatera Utara
Proses komputasi maju pada jaringan saraf propagasi balik yang memiliki satu
lapisan tersembunyi dapat dijabarkan sebagai berikut. Misalkan X
p
= x
p1
, x
p2
, . . . , x
pN
merupakan vektor masukan untuk pola ke p dari setiap neuron pada lapisan masukan yang akan diteruskan ke setiap neuron j pada lapisan tersembunyi. Setiap
neuron j pada lapisan tersembunyi untuk selanjutnya akan melakukan proses komputasi seperti yang telah diterangkan pada bab 1 yaitu dengan terlebih dahulu
menghitung nilai net input nya. Nilai net input untuk setiap neuron j pada lapisan tersembunyi adalah
1 N
h h
h pj
ji pi
j i
net w x
2.1 dimana
h pj
net = nilai net input neuron ke-j pola ke-p pada lapisan tersembunyi
h ji
w = bobot yang menghubungkan neuron i dengan neuron j pada lapisan tersembunyi
pi
x = nilai keluaran dari neuron i untuk pola ke-p
h j
= bobot dari neuron bias ke neuron j pada lapisan tersembunyi, neuron bias adalah neuron dengan nilai keluaran
selalu sebesar 1 Dengan menggunakan nilai net input pada lapisan tersembunyi
h pj
net ini, maka setiap neuron pada lapisan tersembunyi akan diaktifkan oleh fungsi aktifasinya
sehingga akan menghasilkan suatu nilai, nilai tersebut adalah
h h
pj j
pj
i f
net
2.2 dimana
pj
i = nilai keluaran neuron ke-j pada lapisan tersembunyi untuk pola ke-p
h h
j pj
f net
= fungsi aktifasi neuron ke-j pada lapisan tersembunyi 12
Universitas Sumatera Utara
Nilai-nilai tersebut yang selanjutnya akan di teruskan sebagai nilai masukan untuk setiap neuron k pada lapisan berikutnya lapisan keluaran. Pada lapisan
keluaran proses komputasi yang sama seperti pada lapisan tersembunyi juga terjadi, yaitu dengan menghitung nilai net input dari setiap neuron k pada lapisan keluaran
yang di rumuskan sebagai berikut :
1 L
o o
o pk
kj pj
k j
net w i
2.3 dimana
o pk
net = nilai “net input” neuron ke-k pola ke-p pada lapisan keluaran
o kj
w = bobot yang menghubungkan neuron j dengan neuron k pada lapisan keluaran
pj
i = nilai keluaran dari neuron j untuk pola ke-p
o k
= bobot ke-k dari neuron bias pada lapisan keluaran, neuron bias adalah neuron dengan nilai keluaran
selalu sebesar 1 Dengan menggunakan nilai net input pada lapisan keluaran
o pk
net ini, maka setiap neuron pada lapisan keluaran akan diaktifkan oleh fungsi aktifasinya sehingga akan
menghasilkan nilai keluaran aktual, nilai keluaran aktual tersebut adalah
o o
pk k
pk
o f
net
2.4 dimana
o
pk
= nilai keluaran neuron ke-k pada lapisan keluaran untuk pola ke-p
o o
k pk
f net
= fungsi aktifasi neuron ke-k pada lapisan keluaran
Setelah diperoleh nilai keluaran aktual pada komputasi maju maka proses komputasi selanjutnya adalah proses komputasi mundur.
Universitas Sumatera Utara
2.1.2.2 Komputasi mundur
Komputasi mundur bertujuan untuk melakukan perubahan terhadap bobot jaringan. Salah satu aturan pada jaringan saraf yang digunakan untuk melakukan perubahan
bobot adalah aturan delta, yang dapat dituliskan dalam persamaan matematika sebagai berikut
1 w t
w t w t
2.5 dimana
1 w t
= bobot pada iterasi ke t+1 w t = bobot pada iterasi ke t
w t
= perubahan bobot pada iterasi ke t
Aturan delta melakukan perubahan bobot dengan tujuan untuk meminimalkan error yang terjadi Fausett, 1994. Perubahan bobot yang meminimalkan error dapat
ditentukan dengan menggunakan metode steepest descent yaitu dengan menghitung negatif gradien dari error Freeman et al, 1992. Error secara eksplisit dapat
dipandang sebagai fungsi dari bobot, sehingga untuk menentukan gradien dari error dapat dilakukan dengan menurunkannya secara parsial terhadap bobot Fausett, 1994.
Aturan delta pada jaringan saraf propagasi balik merupakan aturan delta yang digeneralisasi, karena fungsi aktifasi yang digunakannya adalah fungsi yang dapat
diturunkanFausett, 1994. Komputasi mundur pada jaringan saraf propagasi balik dengan satu lapisan
tersembunyi dapat dibagi menjadi dua tahap yaitu komputasi mundur dari lapisan keluaran ke lapisan tersembunyi dan komputasi mundur dari lapisan tersembunyi ke
lapisan masukan. 14
Universitas Sumatera Utara
2.1.2.2.1 Komputasi mundur tahap I
Komputasi mundur tahap I adalah komputasi mundur dari lapisan keluaran ke lapisan tersembunyi yang bertujuan untuk melakukan perubahan terhadap bobot- bobot antar
kedua lapisan tersebut. Proses komputasi tahap I dimulai dengan menghitung error yang terjadi untuk
setiap pola p melalui fungsi error yang telah ditentukan dan selanjutnya diturunkan secara parsial terhadap bobot pada lapisan keluaran untuk menentukan negatif
gradiennya. Pada penelitian ini error tersebut dihitung dengan rumus Mean Squere Error MSE yaitu :
2 1
1 2
M p
pk pk
k
E y
o
2.6
dimana
p
E = error pola ke-p
pk
y = nilai target neuron ke-k pada pola ke-p
pk
o = nilai keluaran aktual neuron ke-k pada pola ke-p sehingga
o o
p pk
k pk
pk o
o o
kj pk
kj
E net
f y
o w
net w
2.7
karena
1 L
o o
kj j
k o
j pk
pj o
o kj
kj
w i net
i w
w
2.8
maka
p o
o pk
pk k
pk pj
o kj
E y
o f
net i
w
2.9 15
Universitas Sumatera Utara
Pada persamaan 2.9 diatas
o o
k pk
f net
adalah turunan pertama dari fungsi aktifasi neuron keluaran. Penelitian ini menggunakan fungsi aktifasi sigmoid untuk
mengaktifkan neuron-neuron pada lapisan keluaran, yang bentuknya adalah sebagai berikut
1 1
o pk
o o
k pk
net
f net
e
2.10 maka
1
o o
k pk
pk pk
f net
o o
2.11
sehingga diperoleh 1
p pk
pk pk
pk pj
o kj
E y
o o
o i
w
2.12
Jika
o o
pk pk
k pk
y o
f net
kita definisikan sebagai faktor kesalahan pada
neuron lapisan keluaran yang disimbolkan dengan
o pk
maka persamaan 2.9 dapat dituliskan menjadi
p o
pk pj
o kj
E i
w
2.13 Dengan aturan delta, maka perubahan bobot-bobot antara lapisan tersembunyi dengan
lapisan keluaran adalah 1
o o
o kj
kj p
kj
w t w t
w t
2.14 dimana
p o
p kj
o kj
E w t
w
2.15
Universitas Sumatera Utara
2.1.2.2.2 Komputasi mundur tahap II
Komputasi mundur tahap II adalah komputasi mundur dari lapisan tersembunyi ke lapisan masukan yang bertujuan untuk melakukan perubahan terhadap bobot- bobot
antar kedua lapisan tersebut. Komputasi mundur tahap II memerlukan analisis matematika yang lebih
cermat karena setiap neuron pada lapisan tersembunyi tidak memiliki target yang harus dipenuhi oleh nilai keluarannya, sehingga error pada lapisan tersembunyi tidak
dapat ditentukan rumusannya. Namun hal tersebut tidak menjadi masalah ketika kita akan melakukan perubahan bobot pada lapisan tersembunyi karena secara intuisi nilai
error pada persamaan 2. 6 dapat kita hubungkan dengan bobot-bobot pada lapisan tersembunyi
h ji
w Freeman et al, 1992. Secara matematis hal tersebut dapat
dijabarkan sebagai berikut, dari persamaan 2. 6 kita ketahui bahwa
2 1
1 2
M p
pk pk
k
E y
o
2 1
1 2
M o
o pk
k pk
k
y f
net
2 1
1
1 2
M L
o o
o pk
k kj
pj k
k j
y f
w i
2.16
Melalui persamaan 2. 16 dapat dilihat bahwa fungsi error secara eksplisit juga tergantung pada
pj
i . Sedangkan dari persamaan 2. 1 dan persamaan 2. 2 kita ketahui bahwa nilai
pj
i merupakan nilai keluaran dari neuron lapisan tersembunyi yang berhubungan dengan bobot-bobot pada lapisan tersembunyi
h ji
w . Hal ini
menyebabkan gradien dari
p
E pada lapisan tersembunyi dapat diperoleh dengan menurunkannya secara parsial terhadap bobot-bobot pada lapisan tersembunyi
h ji
w .
Dari persamaan 2. 16 dapat diperoleh 17
Universitas Sumatera Utara
2 1
1
1 2
L o
o o
pk k
kj pj
k M
p j
h h
k ji
ji
y f
w i E
w w
1 o
h M
pk pk
pj pj
pk pk
o h
h k
pk pj
pj ji
o net
i net
y o
net i
net w
2.17 karena
o o
pk k
pk o
o k
pk o
o pk
pk
o f
net f
net net
net
2.18
1 L
o o
o kj
pj k
pk j
o kj
pj pj
w i net
w i
i
2.19
h h
pj j
pj h
h j
pj h
h pj
pj
i f
net f
net net
net
2.20
1 L
h h
h ji
pi j
pj j
pi h
h ji
ji
w x net
x w
w
2.21 maka persamaan 2. 17 dapat ditulis menjadi
1 M
p h
h o
o o
j pj
pi pk
pk k
pk kj
h k
ji
E f
net x
y o
f net
w w
1 M
h h
o o
j pj
pi pk
kj k
f net
x w
2.22
Pada persamaan diatas
h h
j pj
f net
merupakan turunan pertama dari fungsi aktifasi neuron lapisan tersembunyi. Penelitian ini menggunakan fungsi aktifasi
sigmoid untuk mengaktifkan neuron-neuron pada lapisan tersembunyi, yang bentuknya adalah
Universitas Sumatera Utara
1 1
h pj
h h
j pj
net
f net
e
2.23
sehingga 1
h h
j pj
pj pj
f net
i i
2.24
Jika
1 M
h h
o o
j pj
pk kj
k
f net
w
kita definisikan sebagai faktor kesalahan pada neuron lapisan tersembunyi yang disimbolkan dengan
h pj
maka persamaan 2.22 dapat dituliskan menjadi
p h
pj pi
h ji
E x
w
2.25 Dengan aturan delta, maka perubahan bobot-bobot antara lapisan masukan dengan
lapisan tersembunyi adalah 1
h h
h ji
ji p
ji
w t w t
w t
2.26 dimana
p h
p ji
h ji
E w t
w
2.27
Setiap iterasi t pada komputasi maju dan komputasi mundur dilakukan untuk setiap pola pelatihan p. Satu siklus pelatihan epoch adalah suatu keaadaan ketika
seluruh pola telah melalui proses komputasi maju dan proses komputasi mundur.
2.1.3 Komputasi pelatihan
Proses komputasi jaringan pada jaringan saraf propagasi balik merupakan proses komputasi yang meminimalisasi kesalahan yang dihitung untuk pola yang sedang
dikomputasi dalam jaringan dengan menggunakan fungsi kesalahan yang bertujuan untuk melakukan penyesuaian bobot jaringan Setawan, 1999. Untuk tujuan penilaian
kualitas dan keberhasilan pelatihan, kesalahan harus dihitung untuk semua pola yang dilibatkan dalam pelatihan, kesalahan ini disebut kesalahan pelatihan Setawan, 1999.
Universitas Sumatera Utara
Pada penelitian ini kesalahan pelatihan dihitung dengan Sum Squere Error SSE. Jika pelatihan pada jaringan saraf propagasi balik akan melibatkan P buah pola,
maka kesalahan pelatihan yang dihitung pada setiap epoch untuk penelitian ini di rumuskan sebagai berikut
1 e
P p
p
E SSE
E
2.28
dimana E
e
= kesalahan pelatihan untuk setiap epoch SSE = Sum Squere Error
E
p
= kesalahan jaringan untuk pola ke p Pelatihan pada jaringan saraf propagasi balik dilakukan sampai tercapainya
kesalahan pelatihan yang diinginkan atau sampai batas epoch maksimum.
2.1.4 Faktor-faktor pada jaringan saraf propagasi balik
Jaringan saraf yang baik adalah jaringan saraf yang mampu mempelajari pola yang ada dengan cepat, sehingga proses pelatihan tidak membutuhkan waktu yang lama dan
mempunyai tingkat akurasi yang baik. Pada jaringan saraf propagasi balik ada beberapa faktor yang dapat diteliti untuk melakukan hal tersebut yaitu:
2.1.4.1 Laju pembelajaran
Laju pembelajaran adalah suatu konstanta positip yang digunakan sebagai parameter untuk mengendalikan proses penyesuaian bobot Setawan, 1999. Penyesuaian bobot
yang cepat sangat menentukan tercapainya suatu tingkat konvergensi ke arah error yang diinginkan Setawan, 1999.
Universitas Sumatera Utara
Hubungan laju pembelajaran dengan perubahan bobot pada lapisan keluaran dapat dinyatakan dengan
p o
p kj
o kj
E w t
w
2.29 Hal tersebut juga dilakukan terhadap penyesuaian bobot pada lapisan tersembunyi,
sehingga perubahan bobot pada lapisan tersembunyi menjadi
p h
p ji
h ji
E w t
w
2.30
2.1.4.2 Momentum
Momentum merupakan parameter yang berfungsi terutama untuk meningkatkan kecepatan pembelajaran Setawan, 1999. Penyesuaian bobot dengan
momentum akan mempertimbangkan penyesuaian bobot pada langkah sebelumnya. Hal ini menyebabkan perubahan bobot pada lapisan keluaran menjadi
1
p o
o p
kj kj
o kj
E w t
w t w
2.31 Hal yang sama juga terjadi pada perubahan bobot pada lapisan tersembunyi, sehingga
perubahan bobot pada lapisan tersembunyi akan menjadi
1
p h
h p
ji ji
h ji
E w t
w t w
2.32
2.1 4.3 Faktor proporsional
Jaringan saraf propagasi balik yang selama ini digunakan untuk berbagai macam aplikasi adalah jaringan saraf propagasi balik yang standard standard
backpropagation yaitu jaringan saraf propagasi balik yang menggunakan kedua faktor di atas laju pembelajaran dan momentum.
Universitas Sumatera Utara
Pada penelitian ini digunakan faktor ketiga yang disebut sebagai faktor proporsional
. Faktor proporsional ini pertama sekali diperkenalkan dan digunakan pada permasalahan XOR Zweiri et al, 2003. Modifikasi terhadap jaringan saraf
propagasi balik dengan menambahkan faktor ketiga yang disebut faktor proporsional akan menyebabkan bertambahnya satu konstanta baru yang menyertainya, konstanta
tersebut adalah ewt Zweiri et al, 2003. Untuk mendapatkan nilai ewt maka dapat digunakan rumus berikut ini Zweiri et al, 2003:
k
e w t e
2.33
dimana
1 M
k pk
pk k
e y
o
2.34
Faktor ketiga tersebut menyebabkan perubahan bobot pada lapisan keluaran akan menjadi
1
p o
o p
kj kj
o kj
E w t
w t e w t
w
2.35 Sedangkan perubahan bobot pada lapisan tersembunyi akan menjadi
1
p h
h p
ji ji
h ji
E w t
w t e w t
w
2.36
Dengan adanya faktor ketiga yang disebut faktor proporsional, maka saat ini pada jaringan saraf propagasi balik telah ada 3 faktor yang dapat diteliti untuk
mendapatkan kinerja yang diinginkan. 22
Universitas Sumatera Utara
2.2 Transformasi data dengan menggunakan metode Principal Component
Analysis PCA
Metode Principal Component Analysis PCA merupakan suatu metode matematika untuk merepresentasikan data, mengekstraksi ciri-ciri data tersebut dan mereduksinya
dengan cara mentransformasikannya menggunakan eigenvalue dan eigenvektor secara linierHarahap, 2007.
Suwandi et al 2006 : hal 8 menyatakan bahwa kegunaan utama dari Principal Component Analysis PCA adalah untuk mengurangi variasi yang ada
dengan tetap menjaga informasi yang diperlukan, supaya variasi yang tersisa memang variasi yang paling menonjol dan paling mencerminkan feature yang ada. Sisa variasi
yang tersisa ini disebut sebagai Principal Component. Pada proses pengurangan variasi ini dilakukan dengan mereduksi daerah matriks yang mempunyai nilai ciri
mulai dari yang paling lemah. Kegunaan lain dari Principal Component Analysis PCA adalah akan membuat aplikasi yang menggunakannya akan lebih cepat, karena
data yang digunakan sudah direduksi. Eigenvektor-eigenvektor yang diperoleh pada metode Principal Component
Analysis PCA merupakan eigenvektor-eigenvektor dari matriks covariance. Untuk memperoleh matriks covariance, terlebih dahulu harus dihitung perbedaan antara
data-data tersebut dengan rata-ratanya. Andaikan terdapat M data, maka untuk menghitung rata-ratanya dapat dilakukan dengan menggunakan rumus:
1 M
i i
M
2.37 dimana
= rata-rata
i
= data ke-i M = banyak data
Universitas Sumatera Utara
Pengurangan setiap data dengan rata-ratanya tersebut dapat dilakukan dengan menggunakan rumus berikut ini
1, 2,3, ,
i i
i M
2. 38 dimana
i
= selisih data ke-i dengan rata-rata
i
= data ke-i = rata-rata
Selisih tersebut yang selanjutnya akan digunakan untuk menghitung matriks covariance dengan menggunakan rumus:
T
C A A
2. 39
dimana C = matriks covariance
1 2
3 M
A
A
T
= transpose matriks A Dari persamaan 2. 39 dapat disimpulkan bahwa matriks covariance C
tersebut merupakan matriks persegi. Dengan demikian untuk mendapatkan eigenvektor-eigenvektor dari suatu matriks persegi, terlebih dahulu harus dihitung
eigenvalue-eigenvalue dari matriks persegi tersebut Spence et al, 2000. Untuk hal tersebut kita harus memahami beberapa teori pada aljabar linier
mengenai eigenvalue dan eigenvektor. Misalkan B merupakan sebuah matriks persegi berukuran n x n maka sebuah vektor tak nol v disebut eigenvektor dari B, jika
Bv = λv
2.40 untuk beberapa skalar
λ Spence et al, 2000. Skalar λ tersebut adalah eigenvalue dari B yang berkorespondensi terhadap v Spence et al, 2000.
Universitas Sumatera Utara
Eigenvalue-eigenvalue dari sebuah matriks persegi B yang berukuran n x n merupakan nilai dari
λ yang memenuhi det
n
B I
2.41
dimana
n
I = matriks identitas berukuran n x n Persamaan 2.41 diatas merupakan persamaan karekteristik dari B sedangkan
det
n
B I
disebut polynomial karekteristik dari B. Dari persamaan tersebut dapat diketahui bahwa eigenvalue-eigenvalue dari matriks B merupakan akar-akar dari
polinomial karekteristik B Spence et al, 2000. Sehingga Eigenvektor-eigenvektor yang berkorespondensi dengan eigenvalue-eigenvalue dari matriks B tersebut
merupakan solusi tak nol dari
n
B I
x
2.42 Untuk matriks covariance C yang berukuran sangat besar maka dapat
dilakukan suatu modifikasi matematis untuk mendapatkan eigenvektor-eigenvektor dari matriks covariance tersebut sehingga lebih efisien dalam penerapannya.
Modifikasi matematis tersebut dilakukan dengan membentuk sebuah matriks baru, misalkan matriks baru tersebut adalah matriks L. Matriks L merupakan matriks yang
dibentuk dari perkalian antara matriks A
T
dengan matriks A, dengan kata lain L = A
T
A. Misalkan eigenvektor-eigenvektor dari matriks L adalah v
i
untuk setiap eigenvalue- eigenvalue
i
, maka akan berlaku
i i
i
L v v
T i
i i
A A v v
2.43 Pada persamaan 2.43 tersebut jika kedua ruas dikalikan dengan A maka akan berlaku
T i
i i
A A A v Av
2.44 karena
AA
T
= C maka
i i
i
C Av Av
2.45 25
Universitas Sumatera Utara
Dari persamaan 2.45 dapat disimpulkan bahwa Av
i
merupakan eigenvektor dari matriks covariance C untuk eigenvalue yang bersesuaian µ
i .
Transformasi data dengan menggunakan metode Principal Component Analysis PCA dilakukan untuk mentransformasikan data tersebut ke ruang dimensi
yang lebih kecil. Ruang dimensi yang lebih kecil dan merupakan ruang dimensi yang terbaik dapat ditentukan melalui eigenvektor-eigenvektor terbaik, yaitu eigenvektor-
eigenvektor yang berkorespondensi dengan eigenvalue-eigenvalue terbesar dari matriks covariance C Asmat, 2008. Eigenvektor-eigenvektor yang diperoleh
melalui modifikasi matematis yang dilakukan untuk mendapatkan eigenvektor- eigenvektor pada matriks covariance C yang berukuran sangat besar juga
merupakan eigenvektor-eigenvektor yang terbaik Asmat, 2008. Misalkan eigenvektor-eigenvektor terbaik dari matriks covariance C adalah
u
1
, u
2
, u
3
, . . . , u
k
maka
T i
i
U
, i = 1, 2, 3, . . . , M 2.46
dimana
i
= hasil transformasi data ke-i U
T
= [ u
1
u
2
u
3
. . . u
k
]
T
Principal Component Analysis PCA merupakan teknik statistikal yang sering digunakan dalam lingkungan seperti face recognition dan image compression,
dan merupakan teknik yang biasa dipakai untuk menemukan pola dalam data dengan dimensi yang besar Suwandi et al, 2006
Universitas Sumatera Utara
BAB III METODOLOGI