2012-2-00252-tisi bab2001 (1)

10
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 4

Upload: anonymous-wota6hle

Post on 06-Feb-2016

215 views

Category:

Documents


0 download

DESCRIPTION

HHHG

TRANSCRIPT

Page 1: 2012-2-00252-TISI Bab2001 (1)

BAB 2

LANDASAN TEORI

2.1 Proses OptimasiOptimasi 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 MetaheuristikHeuristik 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 PasokPengaturan 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).

4

Page 2: 2012-2-00252-TISI Bab2001 (1)

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

Page 3: 2012-2-00252-TISI Bab2001 (1)

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 flightsend ifAttractiveness varies with distance r via exp[-γr]Evaluate new solutions and update light intensity

end for jend for iRank the fireflies and find the current bestend whilePostprocess results and visualization

endSumber: (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:

Page 4: 2012-2-00252-TISI Bab2001 (1)

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

Page 5: 2012-2-00252-TISI Bab2001 (1)

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 TableMerupakan 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 DiagramMerupakan 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 DescriptionMerupakan 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 DiagramMerupakan 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.

Page 6: 2012-2-00252-TISI Bab2001 (1)

9

Penghubung antar entitas nantinya akan menggunakan garis (Satzinger, Jackson, & Burd, 2010, p. 187).

6. Activity Data MatrixMerupakan 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 DiagramMerupakan 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 DiagramMerupakan 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 DiagramMerupakan 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 DiagramMerupakan 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 DiagramMerupakan 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 DiagramMerupakan diagram yang menggambarkan hubungan view layer,

domain layer dan data access layer yang ada pada sistem. Penggambaran menggunakan dependency relationship yang

Page 7: 2012-2-00252-TISI Bab2001 (1)

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 StandardsMerupakan 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 Consistency2. Enable Frequent Users to Use Shortcuts3. Offer Informative Feedback4. Design Dialogs to Yield Closure5. Offer Simple Error Handling6. Permit Easy Reversal of Actions7. Support Internal Locus of Control8. Reduce Short-Term Memory Load

2.9 MatlabMatlab 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).