Anda di halaman 1dari 31

6

BAB 2
LANDASAN TEORI
2.1. RequirementsPlanning
Menurut Kappauf& Koch (2010,p85) tugas utama dari requeirements planning
adalah memastikan tersedianya material dengan melakukan pembelian yang mempunyai
jumlah dan waktu yang tepat untuk pendistribusian. Menggunakan berbagai macam
perencanaan dan prosedur, sistem akan mengenali situasi kekurangan material dan
melakukan proposal pembelian material.
Menurut Kappauf & Koch (2010,p85) secara general material requirements
planning dapat dibedakan menjadi consumption based planning dan deterministic
planning berdasarkan parameter yang bersangkutan di dalam material
masternya.Consumption based planning ditujukan untuk digunakan pada perusahaan
yang tidak memproduksi barangnya sendiri sendangkan deterministic MRP lebih
ditujukan pada perusahaan yang melakukan produksi terhadap barangnya sendiri.
Menurut Kappauf & Koch (2010,p85) consumption based planning berdasarkan
pada jumlah kebutuhan yang lalu dan tidak ada hubungannya dengan perencanaan
produksi. Kebutuhan utamanya ditentukan oleh prosedur statistik atau peramalan jumlah
kebutuhan yang lalu.
Menurut Kappauf & Koch (2010,p86) tiga prosedur yang tersedia untuk
consumption based planning adalah :
Reorder point planning
Pada reorder point planning pembelian terjadi ketika jumlah stock yang
tersedia lebih kecil daripada reorder point.
7

Reorder point dipilih yang dapat menggambarkan jumlah nilai penjualan
selama lead time ditambah dengan safety stock.
Lead time adalah selisih waktu antara waktu pemesanan dengan waktu
datangnya barang.
Safety stock adalah besaran yang digunakan mengantisipasi fluksutasi
penjualan, error dalam peramalan ataupun telat datangnya barang oleh supplier.
Forecast based planning
Forecast based planning menggunakan peramalan jumlah penjualan sama
seperti reorder point planning tetapi forecast based planning lebih menekankan
kepada jumlah stock selama jangka waktu perencanaan yang mempunyai efek
langsung kepada material requirements planning.
Time phased materials planning
Time phased materials planning digunakan jika supplier material melakukan
penyediaan menggunakan pola tertentu atau hanya pada waktu tertentu.
2.2. Reorder Point
Menurut Siegelet al (2008,p416) reorder point adalah titik untuk menetapkan
pemesanan baru yang membutuhkan pengetahuan tentang lead time dan safety stock
serta dihitung dengan cara sebagai berikut
Reorder Point = (Average usage per unit of lead time x Lead Time) + Safety Stock
2.3. Peramalan
Pada bagian ini diberikan kebutuhan peramalan, kegunaan peramalan, dan
beberapa metode peramalan.
8

2.3.1. Kebutuhan Peramalan
Menurut Makridakis (1999,p14) dalam bukunya Metode dan Aplikasi
Peramalan, adanya waktu tenggang (lead time) yaitu perbedaan waktu antara
kebutuhan mendatang dengan suatu peristiwa menjadi alasan utama bagi
perencanaan dan peramalan. Jika waktu tenggang ini panjang dan hasil peristiwa
akhir bergantung terhadap faktor faktor yang diketahui maka perencanaan
memegang peranan penting dan peramalan diperlukan untuk menetapkan kapan
suatu peristiwa akan terjadi sehingga tindakan yang tepat dapat dilakukan.
MenurutMakridakis (1999,p15) keberhasilan suatu perusahaan bergantung
pada dua jenis peristiwa yaitu peristiwa eksternal yang diluar kendali seperti
peristiwa yang berasal dari ekonomi nasional, pemerintah, pelanggan dan pesaing,
dan peristiwa internal yang dapat dikendalikan seperti keputusan perusahaan
dalam pemasaran atau manufaktur. Peramalan mempunyai peranan langsung pada
peristiwa eksternal sedangkan pengambilan keputusan berperan pada peristiwa
internal. Perencanaan merupakan perpaduan dari peramalan dan pengambilan
keputusan.
2.3.2. Kegunaan dan Peran Peramalan
Menurut Makridakis (1999,p17) peramalan memiliki pernanan penting
dalam beberapa bagian organisasi yaitu :
Penjadwalan sumber daya yang tersedia
9

Penggunaan sumber daya yang efisien memerlukan penjadwalan produksi,
transportasi, kas, personalia dan memerlukan input berupa ramalan tingkat
permintaan produk, bahan, tenaga kerja, finansial atau jasa pelayanan.
Penyediaan sumber daya tambahan
Peramalan digunakan untuk menentukan kebutuhan sumber daya di masa
mendatang ketika terjadi waktu tenggang untuk memperoleh bahan baku,
menerima pekerja baru, membeli mesin dan lainnya.
Penentuan sumber daya yang diinginkan
Penentuan sumber daya yang dimiliki dalam jangka panjang perlu
didukung oleh peramalan pada kesempatan pasar, faktor faktor
lingkungan dan pengembangan internal dari sumber daya finansial,
manusia, produk dan teknologis.
2.4. Metode Peramalan
Menurut Aswi (2006,p2) metode peramalan dapat dibagi dalam dua kategori
utama, yaitu metodekualitatif dan metode kuantitatif. Metode kualitatif didasarkan pada
meikirian intuitif, perkiraan logis atau pengetahuan yang diperoleh dari peneliti
sebelumnya. Metode kualitatif biasanya digunakan untuk ramalan jangka pendek /
pengambilan kemputusan yang menggunakan intuisi. Metode kuantitatif menggunakan
informasi masa lalu yang dirubah dalam bentuk data numeric sehingga dapat diramalkan
menggunakan perhitungan matematika dan statistika. Model peramalan pada metode
kuantitatif ada dua yaitu model deret waktu dan model regresi.
Menurut Aswi (2006,p2) model regresi memasukkan dan menguji peubah yang
diduga mempengaruhi peubah terikat dengan tujuan menemukan bentuk hubungan
10

tersebut dan menggunakannya untuk menaksir nilai dari peubah terikat sedangkan model
deret waktu berupaya meramalkan kondisi masa yang akan datang dengan menggunakan
data histori dan memproyeksikannya ke masa depan.
Menurut Aswi (2006,p4) permalan kuantitatif dapat diterapkan bila memenuhi
tiga kondisi yaitu :
Tersedia informasi tentang masa lalu.
Informasi tersebut dapat dikuantitatifkan dalam bentuk data numerik.
Diasumsikan bahwa beberapa aspek pola masa lalu akan berlanjut di masa
mendatang.
2.5. Metode Box-Jenkins
Menurut Aswi (2006, p21) model Auto Regressive / Integrated / Moving Average
(ARIMA) dipelajari oleh George Box dan Gwilym Jenkins (1976) sehingga nama
mereka sering disinonimkan dengan model ini. Model ARIMA terdiri dari dua aspek
yaitu aspek autoregressive dan moving average. Model ARIMA ini dituliskan dengan
notasi ARIMA (p,d,q) dimana p adalah orde dari autoregressive (AR), d menyatakan
nilai differencing dan q menyatakan orde moving average (MA).
Menurut Aswi (2006,p22) proses dari peramalan menggunakan metode Box-
Jenkins dilakukan dengan tahapan sesuai dengan Gambar 2.1.
11


Gambar 2.1 Skema Tahapan Metode Box-Jenkins
Sumber : Aswi & Sukarna (2006)
2.5.1. Model stokastik stasioner dan non-stasioner
Menurut Boxet al (1994,p7) untuk mendeskripsikan sebuah data time-
series dapat digunakan perhitungan model matematika yaitu model stokastik
stasioner dimana diasumsikan bahwa sebuah proses time-series nilainya tetap
bergerak pada rata rata yang konstan. Tetapi dalam industri, bisnis dan ekonomi
sering dijumpai time-series yang tidak stasioner atau tidak memiliki rata rata
yang konstan. Pendekatan pertama yang dilakukan adalah menemukan model yang
Rumusan kelompok
model-model umum
Penetapan model
sementara
Penaksiran parameter
model sementara
Pemeriksaan Diagnostik
Gunakan model untuk
peramalan
ya
tidak
Tahap I
Identifikasi Model
Tahap II
Taksiran dan
Diagnostik model
Tahap II
Aplikasi Model
12

tepat bagi time-series yang akan diramalkan. Setelah model yang tepat didapatkan
maka prosedur peramalan dapat dijalankan.
Untuk model stokastik stationer meliputi model autoregressive (AR),
model moving average (MA), ataupun campuran keduanya yaitu model
autoregressive moving average (ARMA).
Untuk model stokastik non-stasioner adalah model yang mengalami
differencing sehingga model tersebut bisa dirubah menjadi model stokastik
stasioner yaitu model autoregressive integrated moving average (ARIMA).
2.5.2. Backward shift Operator
Boxet al(1994,p8) memberikan operator B yang berguna sebagai operator
yang memundurkan suatu variabel ke satuan waktu sebelumnya.
BZ
t
= Z
t-1

B
m
Z
t
= Z
t-m

Operator ini digunakan pada peramalan time-seriesuntuk mempermudah
menyatakan hubungan antara variabel pada waktu sekarang dengan variabel pada
waktu sebelumnya.
2.5.3. Model Autoregressive (AR)
Menurut Box et al(1994,p9) model autoregressive menyatakan nilai
variabel pada waktu sekarang merupakan agregat linear dari nilai variabel pada
waktu sebelumnya dan sebuah random shocka
t
.
Proses waktu dilambangkan dengan t, t - 1, t - 2, , 1 padaZ

t
, Z

t-1
, , Z

1

merupakan deviasi dari yaitu Z

t
= Z
t
-p dimana Z
t
adalah nilai variabel pada
13

waktu t dan adalah perkiraan rata rata populasi maka persamaan model
autoregressive adalah :
Z

t
=
1
Z

t-1
+
2
Z

t-2
++
p
Z

t-p
+a
t

Operatorautoregressive pada order p dapat dinyatakan dengan :
(B) = 1 -
1
B -
2
B
2
--
p
B
p

Sehingga model autoregressive penulisannya dapat disederhanakan
menjadi :
(B)Z

t
= a
t

2.5.4. Model Moving Average (MA)
Menurut Boxet al (1994,p10) model movingaverage menyatakan nilai
variabel pada waktu sekarang merupakan agregat linear dari nilai random
shocksebelumnya.

Persamaan model moving average adalah :
Z

t
= a
t
-
1
a
t-1
-
2
a
t-2
--
q
a
t-q

Operatormoving average dinyatakan dengan :
(B) = 1 -
1
B -
2
B
2
--
q
B
q

Sehingga model moving averagepenulisannya dapat disederhanakan
menjadi :
Z

t
= (B)a
t



14

2.5.5. Model Autoregressive Moving Average (ARMA)
Boxet al(1994,p53) juga menunjukkan bahwa model time-series tidak
hanya direpresentasikan oleh salah satu model AR atau MA tetapi bisa juga
merupakan gabungan keduanya.
Maka persamaan untuk model ARMA menjadi :
Z

t
=
1
Z

t-1
+
2
Z

t-2
++
p
Z

t-p
+a
t
-
1
a
t-1
-
2
a
t-2
--
q
a
t-q

Dan penulisannya dapat disederhanakan menjadi :
(B)Z

t
= (B)a
t

2.5.6. Model Autoregressive Integrated Moving Average (ARIMA)
Boxet al (1994,pp92-93) memberikan cara untuk merubah proses time-
series yang tidak stasioner menjadi stasioner yaitu dengan menggunakan operator
differencing sebagai berikut :
v
d
= (1 -B)
d

Sehingga model persamaan untuk model ARIMA menjadi :
(B)(1 -B)
d
Z

t
= (B)a
t

Atau
(B)v
d
Z

t
= (B)a
t

2.5.7. Identifikasi Model
Menurut Wang (2009,p2) pada jurnal yang dibuatnya, identifikasi model
dilakukan untuk menemukan orde dari operator AR (p), order dari operator
differencing (d) dan order dari operator MA (q).Untuk dapat mencari nilai dari
15

(p,d,q) digunakan diagram autocorrelation function (ACF) dan diagram partial
autocorrelationfunction (PACF) dengan cara melakukan plot nilai ACF dan PACF
terhadap lag time.
Wang (2009,pp2-3) menunjukkan bahwa ACF dan PACF didasarkan pada
covariance. Untuk time-series{w
1
, w
2
, , w
n
], covariance pada lagk, dinotasikan
sebagai y
k
dan dapat diestimasi dengan cara :

k
=
1
n
w
I
w
I+k
n-k
I=1

untuk k = 0,1, , M
untuk k = 0,
0
= variance
Madalah jumlah lag paling besar yang didapat dari :
N =
n
4

Maka ACF dan PACF pada lagk yang dinotasikan menjadi p
k
dan o
kk

dapat diestimasi dengan cara :

k
=

k

11
=
1

k+1,k+1
=

k+1
-
k+1-j

kj
k
j=1
1 -
j

kj
k
j=1

k+1,j
=
kj
-
k+1,k+1

k,k-j+1

( j =1,2, , k )
Untuk k = 1,2, , M
16

Menurut Wang (2009,p3) untuk mendapatkan nilai orde dpada proses time-
series yang dinotasikan {y
1
, y
2
, , y
N
]dapat menggunakan langkah - langkah
berikut :
1. Beri nilai awal d = 0
2. Buat proses time-series yang didifferencing dan dinotasikan sebagai :
z
t+d
= 7
d
y
t
= (1 -B)
d
y
t

Untuk t = d + 1, d + 2, , N
3. Hitung ACF untuk {z
1
, z
2
, , z
N-d
]
4. Jika nilai ACF turun sangat lambat menuju 0 maka d = d + 1 dan kembali
ke langkah 1, lainnya maka nilai d sudah didapat.
Setelah mendapat nilai d maka deret {y
1
, y
2
, , y
N
] telah dirubah menjadi
deret stasioner {z
1
, z
2
, , z
N-d
] dan kita dapat mengestimasi rata ratanya dengan
:
z =
1
N -u
z
I
N-d
I=I

Lalu kita dapat mendapatkan deret dengan rata rata kosong
{x
1
, x
2
, , x
N-d
]dimana x
t
= z
t
-z sehingga permasalahan model ARIMA
(p,d,q) untuk {y
1
, y
2
, , y
N
] dirubah menjadi permasalahan model ARMA (p,q)
untuk {x
1
, x
2
, , x
N-d
] dan dapat menggunakan permodelan ARMA yaitu :
(B)x
t
= (B)a
t

Menurut Wang& Zhao (2009,p4) untuk mengetahui nilai orde p dan q
dilakukan dengan melihat plot ACF dan PACF. Nilai p didapat dari banyaknya
17

nilai PACF yang signifikan tidak sama dengan 0 dan nilai q didapat dari
banyaknya nilai ACF yang signifikan tidak sama dengan 0.
2.5.8. Estimasi Parameter Model
Menurut Wang& Zhao (2009,p4) setelah model didapatkan langkah
selanjutnya adalah menentukan nilai dari parameter model yaitu nilai dari {

] dan
{0

]. Salah satu metode yang biasa digunakan untuk mengestimasi nilai parameter
model ini menggunakan persamaan Yule-Walker.
Wang& Zhao (2009,p5) memperlihatkan bahwa perhitungan estimasi
parameter ini susah untuk dilakukan terutama ketika nilai order p dan q> 1. Untuk
mengatasi ini cara lain yang diajukan oleh Wang& Zhao dalam mengestimasi
parameter adalah dengan menggunakan algoritma PSO dan telah dibuktikan
estimasi parameter model ARIMA dengan PSO memberikan error yang lebih kecil
oleh Wang& Zhao (2009,p10) yang dapat dilihat pada Gambar 2.2.

Gambar 2.2 MSE PSO ARIMA
Sumber : Wang& Zhao (2009,p9)
2.5.9. Ukuran Ketepatan Peramalan
Pada percobaan yang dilakukan Wang& Zhao (2009,p7) ukuran ketepatan
peramalan yang digunakan dalam mengidentifikasi nilai dari parameter model
adalah mean square error (MSE) dengan rumus sebagai berikut :
18

NSE
(q,)
=
1
N -u
(x
t
-x
t
(q,)
)
2
N-d
t=1

2.6. Model Waterfall
Menurut Pressman (2005,p79-80), waterfall model memberikan pendekatan yang
sistematis dan sekuensial bagi pengembangan software yang dimulai dari level system
dan melalui tahapan communication, planning, modeling, construction, dan
deployment.Gambaran tahapan pada model waterfall dapat dilihat padaGambar 2.3.

Gambar 2.3 Model Waterfall
Berikut penjelasan detail dari tahapan-tahapan tersebut :
1. Communication
Terdiri dari project initiation dan requirement gathering. Merupakan tahapan
pengumpulan kebutuhan yang dilakukan secara intensif dan focus terutama kepada
software
2. Planning
Terdiri dari estimating, scheduling, dan tracking. Pada tahap ini pengembang
software membuat perkiraan yang diperlukan dan dilakukan penjadwalan untuk
Communication
Planning
Modeling
Construction
Deployment
19

menyelesaikan tahap-tahap pembuatan software sesuai dengan waktu yang
diperkirakan.
3. Modeling
Terdiri dari analysis dan design. Pada saat mendesai software terdapat empat
atribut yang difokuskan yaitu struktur data, arsitektur software, representasi
interface, dan detail algoritma. Proses desain mengubah kebutuhan menjadi
representasi dari software yang dapat dinilai untuk kualitas sebelum penulisan
code dimulai.
4. Construction
Terdiri dari penulisan code dan pengujiansoftware. Pada tahap ini desain
diterjemahkan menjadi bentuk yang dapat dibaca oleh mesin. Setelah penulisan
code selesai maka dilakukan pengujian software yang ditekankan kepada logika
internal, meyakinkan semua pernyataan telah diuji, dan pada fungsi external.
5. Deployment
Tediri dari delivery, support, dan feedback. Pada tahap ini pengembang software
menyediakan software yang menyediakan fungsi dan fitur yang bermanfaat.
Pengembang software juga menyediakan dokumentasi untuk semua fitur dan
fungsi. Pada tahap ini juga, pengembang software mendapatkan umpan balik
terhadap software yang berujung pada pemodifikasian fitur dan fungsi.
2.7. Interaksi Manusia dan Komputer (IMK)
Menurut Shneiderman (2010,p32) terdapat lima factor manusia terukur yang dapat
dijadikan sebagai pusat evaluasi yaitu :
20

1. Waktu belajar, berapa lama waktu yang diperlukan user untuk mempelajari cara
yang relevan untuk melakukan suatu tugas.
2. Kecepatan kinerja, berapa lama waktu yang diperlukan untuk mengerjakan suatu
tugas?
3. Tingkat kesalahan user, berpaa banyak kesalahan dan kesalahan apakah yang bisa
terjadi saat user mengerjakan tugas tersebut?
4. Daya ingat, bagaimana user mengatur pengetahuan setelah beberapa waktu?
5. Kepuasan yang subjektif, seberapa banyak user menyukai penggunaan bermacam
aspek dalam antarmuka?
Menurut Shneiderman (2010,p88-89) terdapat delapan aturan emas dalam
merancang antarmuka yaitu :
1. Berusaha untuk konsisten
Tindakan konsisten yang diperlukan dalam situasi yang ersupa seperti pembuatan
prompt, menu, help screen dan command user.
2. Memungkinkan pengguna untuk menggunakan shortcut
Seiring meningkatnya frekuensi penggunaan, pengguna juga ingin mengurangi
jumlah interaksi dan meningkatkan laju interaksi. Singkatan, tombol fungsi,
perintah tersembunyi, dan fasilitas makro sangat membantu bagi expert users.
3. Menawarkan umpan balik yang informatif
Untuk setiap tindakan dari operator harus ada system umpan balik. Untuk tindakan
sering dan kecil, tanggapan dapat bersifat sederhana, sedangkan untuk tindakan
jarang dan utama, tanggapan harus bersifat detail.
4. Desain dialog untuk menghasilkan penutupan
21

Urutan-urutan dari tindakan yang ada harus diatur menjadi bagian awal, tengah,
dan akhir. Umpan balik informative pada sekumpulan tindakan yang ada
memberikan kepuasan penyelesaian, rasa lega, tanda untuk menghentikan suatu
rencana dan lilihan dari pikiran mereka, dan indikasi bahwa caranya jelas yaitu
untuk mempersiapkan sekelompok tindakan yang ada berikutnya.
5. Penawaran penangan error yang sederhana
Sebisa mungkin desain dibuat dari system yang ada agar pengguna tidak berbuat
kesalahan yang serius. Namun jika kesalahan dibuat system harus dapat
mendeteksi kesalahan yang sederhana dan mekanisme yang mudah dipahamai
untuk penanganan kesalahan.
6. Mengizinkan pembalikan tindakan
Fitur ini bertujuan untuk mengurangi kecemansan karena pengguna tahu bahwa
kesalahan dapat dibatalka sehingga mendorong pengguna dalam menjelajah
pilihan-pilihan tindakan yang asing. Bentuk dari pembalikan tidndakan dapat
berupa satu tindakan, entri data, atau sekelompok lengkap dari tindakan-tindakan
yang ada.
7. Dukungan internal lokus control
Operator berpengalaman berkeinginan kuat mengenai rasa mereka bertanggung
jawab atas sistem dan sistem pun merespon tindakan mereka. Buatu desain dari
sistem untuk membuat pengguna berperan sebagai pengambil inisiatif daripada
para responden yang ada.
8. Kurangi beban memori jangka pendek
Keterbatasan manusia dalam mengolah informasi dalam jangka waktu pendek
memerlukan sesuatu yang dapat ditampilkan namun disimpan dalam bentuk
22

sederhana. Halaman-halaman ganda diperketat, frekuensi dari window-motion
dikurangi, waktu pelatihan yang memadai dialokasikan untuk kode, mnemonic,
dan urutan tindakan.
2.8. Unified Modeling Language (UML)
Menurut Bentley&Whitten (2007,p371) UML adalah satu setdari
ketentuanmodeling yang digunkan untuk menspesifikasi atau mendeksripsikan sebuah
sistem software dalam suatu kondisi dari objek.
UML dibagi menjadi beberapa komponen yaitu :
1. Class Diagram
Menurut Bentley&Whitten (2007,p400) class diagram menggambarkan struktur
sistem suatu objek. Diagram ini menampilkan kelas-kelas objek yang sistemnya
tersusun seperti hubungan antara kelas-kelas objek.
2. Use Case Diagram
Menurut Bentley&Whitten (2007,pp246-250) use case diagram menggambarkan
interaksi antara sistem dan sistem eksternal dan user. Dengan kata ain secara
grafikal mendeskripsikan siapa yang akan menggunakan system dan dengan cara
seperti apa yang diharapkan user berinteraksi dengan sistem.
Use case diagram memiliki komponen sebagai berikut :
a. Pelaku
Pada use case diagram pelaku adalah segala sesuatu yang perlu berinteraksi
dengan sistem untuk pertukaran informasi.
b. Relationship(hubungan)
23

Pada use case diagram hubungan digambarkan dalam sebuah garis di antara
dua simbol.
3. Activity Diagram
Menurut Bentley&Whitten (2007,p390) activity diagram menggambarkan alur
yang berurutan dari aktifitas use case atau proses bisnis. Diagram ini juga dapat
digunakan untuk memodelkan logika dengan suatu sistem.
Activity diagram memiliki komponen sebagai berikut :
1. Titik solid
Menggambarkan awal sebuah proses.
2. Segi empat dengan sudut tumpul
Menggambarkan tugas yang perlu dilakukan.
3. Panah
Menggambarkan sasaran yang mengawali kegiatan.
4. Diamond
Menggambarkan sebuah kegiatan keputusan.
5. Titik solid di dalam lingkaran
Menggambarkan akhir sebuah proses.
2.9. Object Oriented Programming (OOP)
Menurut Azis&Farid (2005,p2) object oriented programming memandangsoftware
sebagai sekumpulan objek yang saling berinteraksi dalam sebuah sistem. Merancang
software yang berorientasi objek dilakukan dengan membagi fungsi-fungsi berdasarkan
pembagian tanggung jawab yang ditetapkan kepada setiap kelas yang dibuat. Setiap
24

kelas menyediakan pelayanan untuk mengerjakan operasi tertentu dan dilakukan oleh
objek yang dibuat dari kelas tersebut.
Menurut Azis&Farid (2005,p3) keuntungan yang diperoleh dari pemrograman
berorientasi objek adalah kemudahan untuk mengelola kompleksitas aplikasi yang
dibuat dan kemudahan untuk melakukan perubahan dan pengembangan aplikasi
tersebut. Operasi dan data dibungkus rapi di dalam sebuah kelas. Data hanya dapat
dimanipulasi menggunakan operasi-operasi di dalam kelas dan bila terjadi kesalahan
bisa ditelusuri kesalahan terjadi pada kelas yang mana dimana jika terjadi perbaikan
pada kelas tersebut tidak mengakibatkan perubahan pada kelas lainnya.
2.9.1. Encapsulation
MenurutGilmore (2010,p136) encapsulation adalah The practice of
separating the user from the true inner workings of an application through well-
known interfaces. Gilmore (2010,p135) memberikan ilustrasi encapsulation
seperti ketika kita ingin menyalakan radio, kita tidak tahu bagaimana cara radio
bekerja, yang perlu dilakukan adalah menekan tombol yang membuat radio
menyala, dalam kasus ini tombol ini adalah interface.
Gilmore (2010,p136) juga mengatakan dengan encapsulation maka setiap
komponen menjadi independen dari komponen lainnya sehingga bisa direuse dan
juga bisa dipecah-pecah menjadi komponen yang kecil sehingga bisa disatukan
menjadi satu seperti puzzle.


25

2.9.2. Class
Menurut Gilmore (2010,p137) mengatakan Each entity is defined by a
particular set of characteristic and behaviors that ultimately serves to define the
entity for what it is. Sebagai contoh setiap kendaraan memiliki karakteristik seperti
warna, jumlah roda, kapasitas dan memiliki kelakuan seperti berjalan, berhenti,
putar arah dan membunyikan bel.
Menurut Gilmore (2010,p137) class adalah An embodiment of an entitys
defining attributes and behaviors. Dalam konsep OOP characteristic lebih
dikenal dengan properties dan behaviors lebih dikenal method.
2.9.3. Object
Menurut Gilmore (2010,p138) object adalah A basis form which you can
create specific instances of the entity the class models.
2.10. Computational Swarm Intelligence
Engelbrecht (2007,p285) menggunakan ilustrasi pencarian harta karun dalam
menggambarkan computationalswarmintelligence. Jika sebuah kelompok yang terdiri
dari beberapa orang sedang mencari harta karun dan yang diketahui adalah area lokasi
harta karun berada tetapi tidak diketahui persis dimana letaknya, lalu terdapat perjanjian
pembagian harta karun di antara orang dalam kelompok sehingga semua orang yang
telah membantu melakukan pencarian akan mendapatkan bagian. Mekanisme
pembagiannya adalah orang yang menemukan harta karun akan mendapatkan bagian
paling banyak dan sisanya akan mendapatkan bagian sesuai dengan jarak dari harta
karun ketika harta karun ditemukan. Setiap orang memiliki alat untuk mendeteksi
26

seberapa jauh mereka dari harta karun dan juga mengetahui apakah teman dalam
kelompoknya ada yang lebih dekat dengan harta karun. Ada 2 aksi yang dapat
dilakukan, yang pertama adalah menghiraukan teman lain dalam kelompok dan mencari
harta karun sendirian. Dengan ini jika harta karun ditemukan maka harta karun akan
menjadi milik sendiri, tetapi jika tidak ditemukan maka tidak mendapatkan apa apa.
Yang kedua adalah dengan menggunakan informasi dari teman team yang lainnya dan
bergerak menuju teman yang jaraknya terdekat dari harta karun. Dengan cara kedua
maka peluang menemukan harta karun lebih besar atau paling tidak memaksimalkan
pembagian harta karun yang akan didapat.
Ilustrasi inilah yang menggambarkan keuntungan dari kerjasama dalam sebuah
situasi dimana pengetahuan global tidak diketahui dalam sebuah lingkungan. Setiap
individu dalam kelompok bertukar informasi lokal untuk dapat memecahkan masalah
global yang diakhirnya masalah dapat dipecahkan secara lebih efisien.
Dalam computational swarm intelligence kelompok ini disebut dengan swarm.
Menurut Engelbrecht (2007,p285) swarm dapat didefinisikan sebagai sebuah kelompok
agen yang berkomunikasi satu sama lain dengan melakukan aksi terhadap lingkungan
lokal mereka. Menurut Engelbrecht (2007,p285) swarm intelligence mengacu kepada
pemecahan masalah yang menggunakan interaksi antara agen dalam swarm untuk
pemecahan masalah dan computational swarm intelligence mengacu kepada model
algoritma dari pemecahan masalah ini.
Engelbrecht (2007,p286) mengatakan bahwa penelitian terhadap kehidupan sosial
binatang dan serangga menghasilkan model model computational swarm intelligence
contohnya adalah kawan semut, lebah, laba-laba, ikan dan burung. Dalam kawanan ini
tiap individual berstruktur sederhana tetapi interaksi antara indiviualnya sangat rumit.
27

2.11. Particle Swarm Optimization
Menurut Engelbrecht (2007,p289) algoritma particle Swarm Optimization (PSO)
adalah algoritma yang berdasarkan interaksi sosial dari sekumpulan burung. Konsep
awal dari algoritma ini adalah untuk mensimulasikan pergerakan yang tidak terprediksi
dari sekumpulan burung dan bertujuan untuk mengetahui pola pergerakan burung yang
dapat berubah secara tiba tiba dan membuat formasi yang optimal.
Dalam PSO individual yang disebut dengan partikel terbang dalam lingkungan
pencarian. Perubahan posisi partikel didasari dengan interaksi sosial antara partikel
dalam swarm dengan saling bertukar informasi untuk mencapai tujuan. Setiap partikel
mempunyai sifat untuk mengikuti keberhasilan dari partikel lainnya atau partikel itu
sendiri. Posisi terbaru dari sebuah partikel ditentukan dengan menambahkan kecepatan
partikel tersebut terhadap posisi sebelumnya.
Menurut Wang (2009,p6) jika lingkungan pencarian terdiri dari n dimensi dan
sebuah swarm terdiri dari m partikel, maka partikel ke i dan kecepatannya dapat
disimbolkan dengan n dimensi vector yaitux

= (x
1
, x
2
, , x
n
)dan
:

= (:
1
, :
2
, , :
n
) dimana i = 1,2, , m.
Setiap partikel mengetahui nilai terbaiknya yang dapat dihitung sesuai dengan
fungsi objektif dari permasalahan, posisi terbaik yang pernah dicapainya dan posisi
partikel terbaik dalam swarm tersebut maka menurut Wang (2009,p6) kecepatan terbaru
dan posisi terbaru dari sebuah partikel dapat dihitung dengan cara :
:

k+1
= w :

k
+c
1
r
1
(pxbcst

-x

k
) +c
2
r
2
(gxbcst -x

k
)
x

k+1
= x

k
+:

k+1

28

:

k
dan x

k
adalah kecepatan dan posisi partikel ke i pada iterasi ke k. pxbcst


adalah posisi terbaik pada partikel ke i dan gxbcst adalah posisi terbaik dari semua
partikel dalam swarm.r
1
, r
2
adalah bilangan random antara 0 dan 1 dan c
1
, c
2
adalah
bilangan konstan antara 0 dan 2, dan Wang (2009,p6) menyarankan menggunakan nilai
2. w adalah inertia weight yang dapat dihitung dari :
w = w
mux
-(w
mux
-w
mn
)
Num
Num
mux
,
Dimana w
mux
dan w
mn
adalah nilai terbesar dan terkecil dari w. Num
mux
adalah
batas terbesar iterasi dan Num adalah jumlah iterasi sekarang. Pada setiap iterasi akan
dilakukan perhitungan ulang pada kecepatan, posisi tiap partikel, posisi terbaik tiap
partikel, posisi terbaik dari semua partikel dalam swarm. Penandaan posisi terbaik
dilakukan dengan fungsi objektif.
2.11.1. Inisialisasi PSO
MenurutEngelbrecht (2007,p297) biasanya inisialisasi posisi dari partikel
dilakukan dengan penyebaran yang mencakup lingkungan pencarian. Jika posisi
terkecil dan terbesar partikel dalam swarm dinotasikan dengan x
mn
dan x
mux

maka inisialisasi yang efisien untuk posisi dapat didapat dengan cara :
x

0
= x
mn,
+r

(x
mux,
-x
mn,
)
Engelbrecht (2007,p297) menyarankan inisialisasi kecepatan partikel
adalah 0 karena jika pemberian nilai inisialisasi yang salah pada awal bisa
menyebabkan partikel bergerak terlalu jauh dan dapat menambah jumlah interasi
sebelum mendapatkan solusi.
29

Inisialisasipxbcst

adalah x

0
dan inisialisasi gxbcst adalah pxbcst


dengan nilai terbaik dari fungsi objektif
2.11.2. Kondisi berhenti
Menurut Engelbrecht (2007,p298) ada 2 aspek penting dalam memilih
kondisi berhenti yaitu :
Kondisi berhenti tidak menyebabkan PSO konvergen premature dimana
solusi tidak optimal yang akan didapat.
Kondisi berhenti harus melindungi dari kondisi oversampling pada
nilainya. Jika kondisi berhenti memerlukan perhitungan yang terus menerus
maka kerumitan dari proses pencarian akan meningkat.
Beberapa kondisi berhenti yang dipakai menurut Engelbrecht (2007,p298)
adalah :
Berhenti ketika jumlah iterasi telah mencapai jumlah iterasi maksimum
yang diperbolehkan
Berhenti ketika solusi yang dapat diterima telah ditemukan
Berhenti ketika tidak ada perkembangan setelah beberapa iterasi

2.12. Estimasi parameter model ARIMA dengan PSO
Wang& Zhao (2009,p6) menunjukkan algoritma PSO dapat diterapkan dalam
mengestimasi parameter dari model ARIMA. Jumlah dari parameter yang akan
30

diestimasi adalah p + q yaitu(

, 0
]
, i = 1,2, , p, ] = 1,2, , q) maka dimensi
pencarian dari swarm adalah n = p + q.
Fungsi Objektif yang digunakan dalam menduga parameter ARIMA dengan PSO
adalah MSE yaitu :
NSE
(q,)
=
1
N -u
(x
t
-x
t
(q,)
)
2
N-d
t=1

Prosedur yang digunakan Wang& Zhao (2009,p7) dalam mengestimasi
parameterARIMA dengan PSO dapat dilihat pada Gambar 2.4:
31


Gambar 2.4Prosedur Estimasi Parameter ARIMA dengan PSO
Sumber : Wang (2009,p7)
Hasil estimasi parameter dari , 0 adalah gxbcst(1: p) dan gxbcst(p +1, p +q).


32

2.13. CodeIgniter sebagai Framework PHP
Mengacu kepada http://codeigniter.com/CodeIgniter adalah A powerful PHP
framework with a very small footprint, built for PHP coders who need a simple and
elegant toolkit to create full-featured web applications. CodeIgniter berlisensi dibawah
Apache/BSD-style open source license, tidak membutuhkan resources yang berat dan
memiliki performa yang cepat.
CodeIgniter menggunakan pendekatan Model-View-Controller (MVC) sehingga
dapat memisahkan antara halaman logikal dan halaman presentasi.
2.13.1. Fitur CodeIgniter
Berikut adalah fitur yang didukung oleh CodeIgniter yang diambil dari
http://codeigniter.com/user_guide/overview/features.html :
Model-View-Controller Based System
Extremely Light Weight
Full Featured database classes with support for several platforms.
Active Record Database Support
Form and Data Validation
Security and XSS Filtering
Session Management
Email Sending Class. Supports Attachments, HTML/Text email, multiple
protocols (sendmail, SMTP, and Mail) and more.
Image Manipulation Library (cropping, resizing, rotating, etc.). Supports
GD, ImageMagick, and NetPBM
33

File Uploading Class
FTP Class
Localization
Pagination
Data Encryption
Benchmarking
Full Page Caching
Error Logging
Application Profiling
Calendaring Class
User Agent Class
Zip Encoding Class
Template Engine Class
Trackback Class
XML-RPC Library
Unit Testing Class
Search-engine Friendly URLs
Flexible URI Routing
Support for Hooks and Class Extensions
Large library of "helper" functions


34

2.13.2. Flow Chart Aplikasi CodeIgniter
Gambar 2.5mengilustrasikan bagaimana data mengalir dalam sistem.

Gambar 2.5 Flow Chart Aplikasi CodeIgniter
1. Index.php bekerja sebagai front controller, inisialisasi base resource yang
dibutuhkan untuk menjalankan CodeIgniter.
2. Router memeriksa HTTP request untuk menentukan apa yang harus
dilakukan setelahnya.
3. Jika cache aktif maka hasil output akan langsung dikirimkan ke browser
tanpa melewati eksekusi sistem normal.
4. Sebelum controller dibuka maka HTTP request dan semua hasil submit
user akan disaring oleh Security.
5. Controller akan membuka model, core libraries, helpers, dan semua
resource yang dibutuhkan untuk memenuhi request.
6. Hasil final view akan dirender dan dikirimkan ke browser. Jika caching
aktif maka hasil view akan disimpan dalam cache sehingga bisa langsung
diberikan pada request berikutnya.


35

2.13.3. Model-View-Controller (MVC)
CodeIgniter berbasiskan pola pengembangan Model-View-Controller.
Mengacu kepada http://codeigniter.com/user_guide/overview/mvc.html MVC
adalah pendekatan software yang memisahkan antara logikal aplikasi dari
presentasinya sehingga dalam prakteknya pada halaman web membuat pembuatan
skrip lebih minim karena skrip presentasi dipisahkan dengan skrip PHP.
Model
Merepresentasikan struktur data. Biasanya kelas model berisikan fungsi
untuk membantu dalam menerima, memasukkan dan mengubah informasi
dalam database.
View
Merupakan informasi yang dipresentasikan ke user. Biasanya berupa
halaman web.
Controller
Berguna sebagai perantara antara Model dan View dan semua resource
yang dibutuhkan HTTP request untuk membuat halaman web.
2.13.4. Desain dan Tujuan Arsitektur CodeIgniter
Menuruthttp://codeigniter.com/user_guide/overview/goals.html tujuan
CodeIgniter adalah performa yang maksimal, berkemampuan, fleksibel dalam
paket yang kecil dan ringan.
Dari sudut pandang teknikal dan arsitektural, CodeIgniter diciptakan
dengan objektif sebagai berikut :
36

Dynamic Instantiation
Pada CodeIgniter komponen dibuka dan dieksekusi hanya ketika diminta
daripada dijalankan secara global. Secara default sistem akan berjalan
sangat ringan karena hanya akan menjalankan core resources. Event yang
ditriger oleh HTTP request, controller dan view yang didesain lah yang
menentukan resource apa yang terlibat.
Loose Coupling
Coupling adalah tingkat dimana komponen didalam sistem bergantung
satu sama lainnya. Semakin kecil coupling maka sistem menjadi
semakin reusable dan fleksibel.
Component Singularity
Singularity adalah tingkat dimana komponen dikhususkan untuk tujuan
tertentu. Pada CodeIgniter setiap kelas memiliki autonomous yang
tinggi untuk menciptakan kegunaan yang maksimum.

Anda mungkin juga menyukai