Anda di halaman 1dari 7

4

BAB 2

LANDASAN TEORI

2.1 Proses Optimasi


Optimasi ialah sebuah cabang keilmuan yang sudah lama berkembang
dan masih berkembang dalam hal teknik maupun aplikasinya. Optimasi
sendiri bisa digambarkan secara definitif sebagai suatu kumpulan formula
matematis dan metode numerik untuk menemukan dan mengidentifikasikan
kandidat terbaik dari sekumpulan alternatif tanpa harus secara eksplisit
menghitung dan mengevaluasi semua alternatif yang memungkinkan (Santosa
& Willy, 2011, p. 8).
Lebih dalam lagi, optimasi dapat dikategorikan berdasarkan hasil
akhirnya menjadi dua jenis yaitu Local Optimum Solution Optimization dan
Global Optimum Solution Optimization. Apabila suatu permasalah optimasi
hanya mempunyai satu titik optimum dengan nilai paling baik, maka
permasalahan optimasi tersebut bisa dinamakan Global Optimum Solution
Optimization. Apabila suatu permasalahan optimasi mempunyai beberapa
titik optimum dengan nilai paling baik, maka permasalahan optimasi tersebut
bisa dinamakan Local Optimum Solution Optimization (Santosa & Willy,
2011, p. 13).

2.2 Heuristik dan Metaheuristik


Heuristik merupakan strategi algoritma pencarian solusi optimum
dengan melakukan trial-and-error untuk menghasilkan sebuah solusi yang
dapat diterima untuk pemecahan masalah yang cukup kompleks. Akan tetapi,
permasalahan yang kompleks itu sendiri akan membuat waktu komputasi
yang cukup lama dan sulit dalam menggunakan algoritma heuristik ke
komputer (Yang X. S., Engineering Optimization, 2010, pp. 7-8).
Menjawab keterbatasan yang ada pada algoritma heuristik, muncul
suatu pendekatan yang berbeda yang dinamakan algoritma metaheuristik.
Metaheuristik sendiri merupakan sebuah algoritma yang sebagian besar
terinspirasi oleh kejadian yang ada di alam, atau lebih dikenal dengan nature
inspired algorithm. Algoritma ini lebih sederhana dan lebih mudah
diaplikasikan ke dalam bahasa pemrograman komputer sehingga mampu
memberikan solusi yang lebih cepat dari algoritma heuristik (Yang X. S.,
Nature-Inspired Mateheuristic Algorithms: Success and New Challenges,
2012).

2.3 Transportasi di Dalam Pengaturan Rantai Pasok


Pengaturan rantai pasok merupakan sebuah proses pengaturan
distribusi yang bertujuan untuk memenuhi kebutuhan konsumen. Dalam
proses rantai pasok, tidak hanya melibatkan produsen dan pemasok saja.
Proses ini juga melibatkan pelaku transportasi, gudang, pengecer, dan
konsumen sendiri (Chopra & Meindl, 2007, p. 3).
Peran proses transportasi sendiri di dalam pengaturan rantai pasok
dirasakan cukup besar. Hal itu disebabkan karena pengaturan rantai pasok
tidak dapat berjalan dengan baik apabila tidak ada proses transportasi yang
baik (Chopra & Meindl, 2007, pp. 385-386).
5

2.4 Traveling Salesman Problem(TSP)


TSP merupakan sebuah permasalahan yang sudah umum dalam
bidang optimasi dimana seorang salesman harus mengunjungi sejumlah N
kota, dimana kota-kota tersebut hanya dikunjungi tepat satu kali. Salesman
harus memilih rute terbaik sehingga jarak yang ia tempuh minimum. Dalam
(Santosa & Willy, 2011, p. 18) masalah ini dapat dirumuskan sebagai berikut:

Pada persamaan diatas, cij adalah jarak antara kota i ke kota j dan xij
bernilai 1 jika ij masuk ke dalam rute dan 0 jika ij tidak merupakan bagian
dari rute. Batasan pertama berfungsi untuk menjamin satu kota hanya akan
dikunjungi dari satu kota yang lain. Batasan kedua berfungsi untuk menjamin
satu kota hanya akan menuju satu kota yang lain. Sedangkan batasan ketiga
untuk menjamin agar tidak terjadi subrute dari satu kota i ke kota j dan
langsung kembali ke i lagi.

2.5 Nearest Neighbor Heuristic (NNH)


NNH merupakan suatu metode heuristik untuk memecahkan masalah
TSP. NNH dimulai dengan cara memilih satu node awal sebagai inisiasi dan
secara bertahap menambahkan rute ke node yang terdekat dari node
sebelumnya. Kondisi ini berlangsung sampai semua node yang ada selesai
dikunjungi tepat sebanyak satu kali (Pimentel, 2011). NNH sendiri nantinya
akan digunakan sebagai inisiasi awal pada metode metaheuristik
(Kumbharana & Pandey, 2013, p. 55).
Dalam (Reinelt, 1994, p. 74), prosedur sederhana dari NNH
digambarkan sebagai berikut:
1. Select an arbitrary node j, set l = j and T = {1,2,,n} \ {j}.
2. As long as T 0 do the following:

a. Let j T such that =mi n { }


b. Connect l to j and set T = T \ {j} and l = j.
3. Connect l to the first node (selected in Step (1)) to form a tour

2.6 Levy Flight Discrete Firefly Algorithm (LDFA)


LDFA merupakan sebuah algoritma optimasi dengan pendekatan
metaheuristik yang adalah hasil pengembangan dari Firefly Algorithm. LDFA
sendiri mengambil inspirasi dari perilaku kawanan kunang-kunang yang
terbang di udara dalam mencari makanan dengan perilaku gerakan Levy
6

Flight. Dengan adanya gerakan Levy Flight, maka diharapkan pergerakan dari
kunang-kunang tidak terlalu liar. Dengan pergerakan yang lebih teratur,
tentunya kunang-kunang akan terhindar dari pencarian solusi yang bersifat
lokal.
Firefly sendiri merupakan algoritma yang mudah diterapkan, terus
berkembang, dan telah mampu memecahkan berbagai permasalahan optimasi
(Yang, Firefly Algorithms for Multimodal Optimization, 2009). LDFA sendiri
memiliki logika komputasi atau pseudocode sebagai berikut (Yang, Firefly
algorithm, Levy flights and global optimization, 2010, p. 4):
begin
Objective function f(x), x = ( )T

Generate initial population of fireflies

Light intensity at is determined by f( )


Define light absorption coefficient
while (t < MaxGeneration)
for i = 1: n all n fireflies
for j = 1 : i all n fireflies
if( )
Move firefly I towards j in d-dimension via Levy flights
end if
Attractiveness varies with distance r via exp[-r]
Evaluate new solutions and update light intensity
end for j
end for i
Rank the fireflies and find the current best
end while
Postprocess results and visualization
end
Sumber: (Yang, Firefly algorithm, Levy flights and global optimization, 2010, p. 4)

Berikut ini merupakan penjelasan dari pseudocode yang digambarkan


dengan tiga konsep utama yang ada pada algoritma kunang-kunang:
1. Intensitas Cahaya (2.1)
Merupakan sebuah indikasi yang menentukan apakah kunang-kunang
melakukan perpindahan atau tidak. Pada permasalahan ini, intensitas
dari kunang-kunang digambarkan dengan rumus:

dimana nilai f(x) adalah total dari jarak yang ditempuh.


2. Jarak (2.2)
Jarak antara sebaran kunang-kunang diukur menggunakan diagram
Cartesian yang menggunakan rumusan sebagai berikut:

dimana:
7

= jarak antara kunang-kunang i dan j

= nilai dimensi k pada kunang-kunang i

= nilai dimensi k pada kunang-kunang j

3. Pergerakan (2.3)
Berikut merupakan rumus pergerakan dari kunang-kunang yang
dipengaruhi oleh Levy-Flight:

(1 < 3)
dimana:
= posisi kunang-kunang i

= daya tarik kunang-kunang pada posisi 0

= koefisien penyerapan cahaya

= koefisien bilangan random

=jumlah iterasi

=konstanta lamda

= jarak antara kunang-kunang i dan j

2.7 Sistem Informasi


Untuk menyelesaikan masalah, seorang pakar sistem informasi
bertugas untuk melakukan analisis dan mengembangkan sebuah sistem
untuk pemecahan masalah. Hal ini merupakan jawaban dari
perkembangan dunia yang mengutamakan teknologi informasi untuk
pemecahan masalah.
Secara mendasar, sistem sendiri ialah sebuah kumpulan dari
komponen terkait yang mempunyai fungsi secara bersamaan untuk
memecahkan masalah yang ada. Sedangkan sistem informasi ialah sebuah
kumpulan komponen terkait yang berperan untuk mengumpulkan data,
mengolah data menjadi informasi, dan menyimpan informasi yang
dibutuhkan untuk mendukung proses pengambilan keputusan (Satzinger,
Jackson, & Burd, 2010, pp. 6-7).

2.8 Object Oriented Analysis and Design (OOAD)


OOAD merupakan serangkaian dari model atau desain yang berorientasi pada
objek yang dibuat dan digunakan oleh perancang sistem. OOAD digunakan
8

untuk menggambarkan apa yang menjadi kebutuhan sistem yang dilandaskan


pada keinginan konsumen (Satzinger, Jackson, & Burd, 2010, p. 388). OOAD
sendiri nantinya akan menggunakan UML(Unified Modeling Language) yang
merupakan bentuk penggambaran baku dari OOAD sendiri (Satzinger,
Jackson, & Burd, 2010, p. 127). Proses peracangan dimulai dengan
menentukan aktivitas yang ada pada perusahaan akan digambarkan pada
Activity Diagram. Lalu setiap aktivitas yang dilakukan oleh sistem akan
dicatat di Event Table dan Use Case Diagram. Setiap entitas dari sistem akan
digambarkan melalui Class Diagram. Adapun penggambaran dari proses
yang ada di sistem akan dijelaskan secara lebih lengkap pada Sequence Three
Layer Diagram. Berikut merupakan penjelasan dari beberapa komponen
UML yang akan digunakan dalam proses perancangan sistem informasi:
1. Activity Diagram
Merupakan komponen UML yang berperan untuk
menggambarkan proses dan aktivitas yang ada di perusahaan baik yang
dilakukan oleh sistem (system use case) dan oleh manusia (manual use
case) dari awal proses hingga akhir (Satzinger, Jackson, & Burd, 2010, p.
141). Aktivitas yang ada pun bisa dilakukan oleh beberapa aktor yang
memegang peranan dalam sistem. Beberapa notasi yang digunakan dalam
penggambaran Activty Diagram ialah Activity, Decision Activity, Ending
Activity, Starting Activity, Swimlane, Synchronization Bar,dan Transition
Arrow.
2. Event Table
Merupakan tabel yang digunakan untuk menggambarkan setiap
kegiatan yang dilakukan oleh sistem secara terperinci mulai dari
penyebab kegiatan itu terjadi hingga hasil dari kejadian tersebut. Adapun
tabel yang ada mencatat beberapa informasi seperti Event, Trigger,
Source, Use Case, Response, dan Destination (Satzinger, Jackson, &
Burd, 2010, p. 169).
3. Use Case Diagram
Merupakan diagram yang menggambarkan kegiatan apa saja yang
ada pada sistem dan siapa subjek pelaku dari setiap event atau kejadian
yang ada pada sistem tersebut. Diagram ini ditampilkan dengan beberapa
notasi seperti oval sebagai aktivitas, orang sebagai aktor atau pelaku dari
event yang ada, garis sebagai penghubung antara aktor dan aktivitas,
serta batasan berupa kotak yang biasa disebut dengan automation
boundary (Satzinger, Jackson, & Burd, 2010, p. 243).
4. Use Case Description
Merupakan tabel yang digunakan untuk penjabaran dari setiap
use case yang ada. Tabel ini memiliki beberapa komponen seperti Use
Case Name, Scenario, Triggering Event, Brief Description, Actors,
Related Use Cases, Stakeholders, Flow of Events, Exception Condition,
Pre-Condition, dan Post-Condition (Satzinger, Jackson, & Burd, 2010, p.
174) .
5. Domain Class Diagram
Merupakan diagram yang menggambarkan relasi atau hubungan
antar entitas dimana setiap entitas memiliki atribut yang menjadi ciri dari
setiap entitas tersebut. Keberadaan setiap entitas sendiri akan
digambarkan dengan kotak yang dihubungkan dengan entitas lain.
9

Penghubung antar entitas nantinya akan menggunakan garis (Satzinger,


Jackson, & Burd, 2010, p. 187).
6. Activity Data Matrix
Merupakan matriks yang menggambarkan hubungan antara
aktivitas yang ada pada sistem dan proses penggunaan data yang
disimpan dalam sistem. Aktivitas yang biasa digunakan ialah create-
read-update-delete (CRUD) (Satzinger, Jackson, & Burd, 2010, p. 231).
7. State Machine Diagram
Merupakan diagram yang digunakan untuk menggambarkan
siklus hidup dari suatu objek beserta proses transisi yang terjadi pada
objek tersebut. Notasi yang biasa digunakan untuk penggambaran
diagram ini ialah Pseudostate, State, Destination State, Transition,
Message Event, dan Guard Condition (Satzinger, Jackson, & Burd, 2010,
p. 260).
8. System Sequence Diagram
Merupakan diagram yang menggambarkan interaksi manusia
dengan sistem. Penggambaran berfokus kepada aliran informasi yang
keluar dan masuk ke sistem. Notasi yang biasa digunakan untuk
penggambaran diagram ini ialah Actor, Lifetime, Input Message,
Returned Value, Object, dan Optional Note (Satzinger, Jackson, & Burd,
2010, p. 252).
9. First Cut Design Class Diagram
Merupakan diagram pengembangan dari Domain Class Diagram.
Penambahan dilakukan dengan penambahan tipe dari atribut yang
dimiliki oleh setiap entitas dan panah navigation visibility yang bertujuan
untuk menggambarkan apakah sebuah objek mampu melihat dan
berinteraksi dengan attribute yang dimiliki atau tidak. (Satzinger,
Jackson, & Burd, 2010, p. 413)
10. Deployment Environment (DE) and Software Architecture (SA)
DE merupakan penggambaran dari susunan perangkat keras,
perangkat lunak, dan jaringan (Satzinger, Jackson, & Burd, 2010, p. 291).
SA adalah arsitektur yang digunakan untuk pembangunan sistem secara
fisik yang terdiri dari Single and Multitier Computer Architechture,
Centralized and Distributed Architecture, Client / Server Architechture,
dan Three Layer Client / Server Architechture (Satzinger, Jackson, &
Burd, 2010, pp. 339-344).
11. Completed Three-Layer Sequence Diagram
Merupakan diagram hasil dari pengembangan SSD yang
menyajikan penggambaran yang lebih rinci. Diagram ini terdiri dari tiga
komponen yaitu view layer, business layer, dan data access layer
(Satzinger, Jackson, & Burd, 2010, p. 435).
12. Updated Design Class Diagram
Merupakan diagram hasil dari pengembangan first-cut design
class diagram. Pada diagram ini ada beberapa penambahan seperti
constructor methods, data set and get methods, dan use case specific
methods (Satzinger, Jackson, & Burd, 2010, p. 457).
13. Package Diagram
Merupakan diagram yang menggambarkan hubungan view layer,
domain layer dan data access layer yang ada pada sistem.
Penggambaran menggunakan dependency relationship yang
10

menunjukkan bahwa hubungan antara package, class, atau use case yang
mengindikasikan perubahan pada independent item akan memerlukan
perubahan juga pada dependent item (Satzinger, Jackson, & Burd, 2010,
p. 460).
14. Interface Design Standards
Merupakan aturan umum yang harus diikuti untuk perancangan
antar muka dalam setiap proses pembuatan sistem. Peraturan ini
diwujudkan dalam delapan aturan emas untuk proses desain antar muka
yang bersifat interaktif yang terdiri dari (Satzinger, Jackson, & Burd,
2010, pp. 540-541):
1. Strive for Consistency
2. Enable Frequent Users to Use Shortcuts
3. Offer Informative Feedback
4. Design Dialogs to Yield Closure
5. Offer Simple Error Handling
6. Permit Easy Reversal of Actions
7. Support Internal Locus of Control
8. Reduce Short-Term Memory Load

2.9 Matlab
Matlab merupakan sebuah bahasa pemrograman yang digunakan untuk
melakukan proses komputasi numerik perfroma tinggi. Matlab sendiri sering
digunakan untuk proses komputasi aljabar linier, analisis data, pengolahan
sinyal, proses optimalisasi, dan berbagai permasalahan numerik yang bersifat
scientific (Pratap, 2010, p. 1).
Dalam penerapannya, Matlab sendiri sering digabungkan dengan bahasa
pemrograman lain. Tentunya hal ini akan sangat membantu programmer
dalam mengembangkan program, apabila telah menggunakan external
inteface yang lain seperti Java, C, Fortran, dan algoritma lain yang biasa
digunakan dalam kebutuhan sehari-hari (Pratap, 2010, pp. 1-2).

Anda mungkin juga menyukai