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. 6
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 BoxJenkins dilakukan dengan tahapan sesuai dengan Gambar 2.1.
11
Rumusan kelompok model-model umum
Tahap I Identifikasi Model
Penetapan model sementara
tidak
Penaksiran parameter model sementara
Tahap II Taksiran dan Diagnostik model
Pemeriksaan Diagnostik ya Gunakan model untuk peramalan
Tahap II Aplikasi Model
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 timeseries 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
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
Z
B Z
Z
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 shockat. Proses waktu dilambangkan dengan t, t - 1, t - 2, … , 1 pada , merupakan deviasi dari μ yaitu
dimana
,…,
adalah nilai variabel pada
13 waktu t dan μ adalah perkiraan rata – rata populasi maka persamaan model autoregressive adalah : Z
Z
Z
Z
a
Operatorautoregressive pada order p dapat dinyatakan dengan : B
1
B
B
B
Sehingga model autoregressive penulisannya dapat disederhanakan menjadi : B Z
a
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
a
θ a
θ a
θ a
Operatormoving average dinyatakan dengan : θ B
1
θ B
θ B
θ B
Sehingga model moving averagepenulisannya dapat disederhanakan menjadi : Z
θ B a
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
Z
Z
Z
a
θ a
θ a
θ a
Dan penulisannya dapat disederhanakan menjadi : B Z
θ B a
2.5.6. Model Autoregressive Integrated Moving Average (ARIMA) Boxet al (1994,pp92-93) memberikan cara untuk merubah proses timeseries yang tidak stasioner menjadi stasioner yaitu dengan menggunakan operator differencing sebagai berikut : 1
B
Sehingga model persamaan untuk model ARIMA menjadi : B 1
B Z
θ B a
Atau B
Z
θ B a
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 sebagai
,…,
, covariance pada lagk, dinotasikan
dan dapat diestimasi dengan cara : 1 n
γ
ww
untuk k = 0,1, … , M untuk k = 0, γ
variance
Madalah jumlah lag paling besar yang didapat dari : n 4
M
Maka ACF dan PACF pada lagk yang dinotasikan menjadi dapat diestimasi dengan cara :
α α
ρ
γ γ
α
ρ
ρ ,
1 ,
α
α
∑
ρ
∑
ρα
,
α
α
,
( j =1,2, … , k ) Untuk k = 1,2, … , M
dan
16 Menurut Wang (2009,p3) untuk mendapatkan nilai orde dpada proses timeseries yang dinotasikan
,
,…,
dapat menggunakan langkah - langkah
berikut : 1. Beri nilai awal d = 0 2. Buat proses time-series yang didifferencing dan dinotasikan sebagai : 1 Untuk t = d + 1, d + 2, … , N 3. Hitung ACF untuk
,
,…,
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 ,
deret stasioner
,…,
,
,…,
telah dirubah menjadi
dan kita dapat mengestimasi rata – ratanya dengan
: z
N
1 N
d
z
Lalu kita dapat mendapatkan deret dengan rata – rata kosong ,
,…,
dimana
(p,d,q) untuk untuk
,
,…,
,
,…,
sehingga permasalahan model ARIMA dirubah menjadi permasalahan model ARMA (p,q)
dan dapat menggunakan permodelan ARMA yaitu : B x
θ B a
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
. 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
MSE
,
N
1 N
d
x
x
,
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.
Communication Planning Modeling Construction Deployment
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
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 wellknown 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 entity’s 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
dimana
dimensi 1,2, … ,
vector
yaitu
,
,…,
dan
.
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 :
28 dan
adalah kecepatan dan posisi partikel ke i pada iterasi ke k.
adalah posisi terbaik pada partikel ke i dan partikel dalam swarm. ,
adalah posisi terbaik dari semua
adalah bilangan random antara 0 dan 1 dan ,
adalah
bilangan konstan antara 0 dan 2, dan Wang (2009,p6) menyarankan menggunakan nilai 2.
adalah inertia weight yang dapat dihitung dari :
Dimana
dan
batas terbesar iterasi dan
adalah nilai terbesar dan terkecil dari
.
adalah
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
dan
maka inisialisasi yang efisien untuk posisi dapat didapat dengan cara : ,
,
,
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 Inisialisasi
adalah
dan inisialisasi
adalah
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
,
1,2, … , ,
1,2, … ,
maka dimensi
pencarian dari swarm adalah n = p + q. Fungsi Objektif yang digunakan dalam menduga parameter ARIMA dengan PSO adalah MSE yaitu : MSE
,
N
1 N
d
x
x
,
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 ,
adalah
1:
dan
1,
.
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.