BAB 3 LANDASAN TEORI
3.1.
Penjadwalan di Industri Penerbangan Dalam dunia penerbangan, penjadwalan yang dilakukan dapat terbagi menjadi empat tahap sebagai berikut ( Anbil, Forrest, dan Pulleyblank, 1998, p677 – 678 ) : a. Penyusunan jadwal penerbangan Tahap ini merupakan langkah pertama yang dilakukan dalam rangkaian penjadwalan penerbangan. Aspek komersial biasanya menjadi faktor utama yang sangat mempengaruhi penyusunan jadwal penerbangan. Tujuan penyusunan jadwal penerbangan adalah untuk memenuhi kebutuhan pasar sesuai dengan armada yang dimiliki oleh perusahaan dengan kendala jaringan, misalnya alokasi slot waktu di bandara. Sekalipun demikian, tahapan ini tidak dapat dipisahkan dengan tahapan – tahapan berikutnya yang akan dijelaskan selanjutnya. b. Penugasan armada pesawat Setelah jadwal penerbangan ditetapkan, selanjutnya ditentukan pesawat – pesawat jenis apakah yang akan digunakan dalam melayani rute – rute yang telah ditetapkan dalam jadwal penerbangan. Tujuan penugasan pesawat ini adalah untuk memaksimalkan utilisasi armada yang dimiliki oleh maskapai
25
penerbangan untuk memaksimalkan keuntungan perusahaan. Hal – hal yang biasanya dipertimbangkan dalam penugasan pesawat ini antara lain adalah potensi penumpang pada suatu jalur, medan suatu jalur, serta kemampuan bandara untuk didarati oleh suatu jenis pesawat tertentu. c. Penyusunan rotasi penugasan awak pesawat ( crew pairing ) Tahapan selanjutnya adalah melakukan penjadwalan terhadap awak pesawat. Awak pesawat ini terdiri dari awak cockpit yang terdiri dari pilot dan co – pilot, serta awak cabin yang terdiri dari beberapa pramugara/i. Masing – masing jenis pesawat memiliki jumlah kebutuhan awak yang berbeda. Dalam tahap penjadwalan awak pesawat ini belum dilakukan penjadwalan secara individu, tetapi hanya berupa rotasi penugasan awak pesawat pada jadwal dan rute yang ada. Rotasi penugasan dilakukan untuk penugasan single day ( duty periods ) serta multidays ( pairing ).
Gambar 3.1. Rotasi Penugasan Awak Pesawat
Rotasi penugasan awak pesawat harus dibuat dengan mematuhi berbagai aturan keselamatan awak, baik yang telah ditetapkan oleh badan internasional maupun oleh maskapai penerbangan sendiri, dengan tetap melayani semua jalur penerbangan yang telah ditetapkan. Hal lain yang juga harus
26
diperhatikan adalah tersedianya jumlah awak yang memadai sesuai dengan beban kerja yang ada pada masing – masing homebase. Kesulitan dalam menyusun rotasi penugasan ini, disebabkan oleh beberapa faktor, diantaranya : •
peraturan yang ditetapkan oleh CASR ( Civil Aviation Safety Regulation ) serta peraturan – peraturan yang ditetapkan oleh perusahaan penerbangan.
•
perhitungan biaya rotasi penugasan yang sangat kompleks, meliputi biaya ( Proksch dan Weinert, 1999, p422 ) : -
deadhead : biaya yang dikeluarkan perusahaan untuk membayar waktu penerbangan awak pesawatnya sebagai penumpang dikarenakan kota keberangkatan pada awal rotasi penugasan tidak berasal dari kota home base awak pesawat.
-
hotel : biaya akomodasi karena kota penerbangan terakhir dan kota keberangkatan pertama di hari penugasan tidak sama dengan home base awak pesawat ( RON : Remain Over Night ).
-
x-work : unproductive time awak pesawat, yaitu selang waktu bertugas antar penggal penerbangan, di luar waktu terbang awak pesawat.
-
rotation changes : perpindahan pesawat selama rotasi penugasan. Minimasi perpindahan pesawat akan membantu dalam menjaga stabilitas jadwal penerbangan kala terjadi penundaan, ataupun pemecahan rotasi penugasan.
27
-
shorties : banyaknya penggal penerbangan yang ditugaskan dalam suatu rotasi penugasan.
•
jumlah rotasi penugasan yang memungkinkan sangat besar, sehingga sangatlah tidak praktis untuk menghasilkan satu himpunan lengkap rotasi penugasan untuk suatu permasalahan
d. Penjadwalan awak pesawat secara individu ( crew rostering ) Setelah dibuat rotasi penugasan awak pesawat, tahap selanjutnya adalah menugaskan masing – masing individu pada rotasi penugasan yang telah ditetapkan dengan pembuatan jadwal untuk masing – masing awak. Tahap ini merupakan proses yang kompleks. Penugasan awak per individu ini biasanya mempertimbangkan senioritas. Beberapa perusahaan penerbangan berusaha memodelkan proses ini dengan model optimalisasi dengan tujuan untuk memaksimalkan total keadilan jam terbang di antara para awak. Dalam penjadwalan ini, tidak hanya penugasan untuk terbang saja, tetapi juga penjadwalan penugasan untuk reserved.
Dalam empat tahap proses penjadwalan di atas, perubahan merupakan hal yang sulit untuk dihindarkan, mengingat banyaknya faktor yang berpengaruh ( Gustafsson, 1999, p2 ). Perubahan dapat terjadi pada masing – masing tahap, dan biasanya memiliki pengaruh pada tahap – tahap yang lain. Misalnya, jika sebuah penerbangan dibatalkan, maka penjadwalan awak harus
28
diatur sedemikian rupa agar tidak terlalu mengganggu penjadwalan yang telah ditetapkan semula. Solusi yang dibutuhkan dalam menghadapi adanya perubahan ini, tidak hanya dituntut untuk memiliki biaya yang rendah, tetapi juga memiliki efek rantai yang sekecil mungkin terhadap pembuatan jadwal – jadwal lainnya.
3.2.
Penjadwalan Awak Pesawat
3.2.1. Istilah dalam Penjadwalan Awak Pesawat Tujuan dalam permasalahan penjadwalan awak pesawat ini adalah untuk meminimalkan biaya penugasan awak pada jadwal penerbangan yang ada. Seperti yang telah dijelaskan sebelumnya, bahwa jadwal penerbangan yang dibuat kemudian ditugaskan pada jenis – jenis armada pesawat yang dimiliki oleh sebuah maskapai penerbangan. Biasanya awak pesawat memiliki kualifikasi untuk menerbangi jenis pesawat tertentu. Hal ini umumnya lebih berlaku untuk pilot dan co - pilot. Sedang pramugara/i biasanya memiliki kualifikasi untuk bertugas pada lebih dari satu jenis pesawat. Meskipun demikian, permasalahan penjadwalan baik untuk pilot, co – pilot, maupun pramugara/i memiliki struktur umum yang sama sehingga dapat diselesaikan dengan metodologi yang sama.
29
Sebelum dijelaskan lebih lanjut mengenai pembuatan rotasi penugasan awak pesawat, akan dijelaskan terlebih dahulu beberapa istilah yang terkait sebagai berikut ( Vance, 1995, p2 ) : •
Penggal penerbangan ( flight leg ) : segmen penerbangan yang berupa penerbangan tunggal non – stop.
•
Periode tugas ( duty period ) : rangkaian penggal penerbangan dengan waktu istirahat singkat di antaranya yang biasanya berupa waktu transit pesawat. Termasuk dalam periode tugas adalah waktu pelaporan yang dilakukan pada awal dan akhir sebuah periode tugas. Sebuah periode tugas biasanya dapat dipandang sebagai hari kerja tunggal untuk seorang awak.
•
Rotasi penugasan ( pairing ) : rangkaian periode tugas dengan istirahat yang berupa waktu inap di antaranya. Masing – masing pairing berawal dan selesai pada homebase yang sama, di mana awak bertempat tinggal.
•
Deadhead : awak pesawat terbang sebagai penumpang sebelum / setelah menjalankan
tugasnya
yang diawali atau diakhiri
pada kota di luar
homebase - nya.
3.2.2. Batasan Pembuatan Rotasi Penugasan Dalam dunia penerbangan, keselamatan merupakan faktor utama yang harus diperhatikan. Faktor manusia sangat berpengaruh terhadap keselamatan suatu penerbangan. Dari berbagai pengalaman yang ada, tidak jarang
30
terjadinya kecelakaan pesawat disebabkan karena faktor kesalahan manusia. Hal ini merupakan faktor yang tidak dapat dihilangkan, tetapi dapat diminimalkan. Upaya untuk meminimalkan hal tersebut antara lain dengan adanya aturan – aturan dalam penjadwalan tugas bagi awak pesawat. Peraturan – peraturan secara garis besar telah ditetapkan oleh badan penerbangan internasional melalui CASR ( Civil Aviation Safety Regulation ). Untuk pelaksanaannya, biasanya disesuaikan dengan situasi dan kondisi masing – masing wilayah pengoperasian penerbangan. Sebuah maskapai penerbangan biasanya mengeluarkan kebijakan sendiri yang lebih merinci aturan – aturan yang ada. Hal – hal yang biasanya diatur dalam penugasan awak pesawat adalah sebagai berikut : a. waktu terbang maksimum ( maximum flight time ) b. waktu tugas maksimum ( maximum duty hours ) c. waktu istirahat minimum ( minimum rest time ) d. jumlah pendaratan maksimum per hari
3.2.3. Struktur Biaya Penugasan Awak Pesawat Dalam industri penerbangan, struktur biaya dalam suatu periode tugas dapat dirumuskan sebagai berikut : bd = max{ f d * elapse, fly + f dead * dhdtime}
(1)
31
•
bd
: biaya tugas yang ditunjukkan dalam jam
•
fd*elapse
: sebuah pecahan yang dikalikan dengan panjangnya waktu periode tugas
•
fdead*dhdtime : sebuah pecahan yang dikalikan dengan jumlah jam ketika awak
diterbangkan
sebagai
penumpang
pada
saat
deadheading
Biaya pairing p juga dirumuskan dalam bentuk jam, cp, yang merupakan maksimum dari tiga komponen sebagai berikut : ⎫ ⎧ c p = max ⎨ NDP * mg p , f p * TAFB, ∑ bd ⎬ d ∈p ⎭ ⎩
(2)
Seperti yang terdapat dalam rumus di atas, tiga komponen tersebut adalah : •
NDP*mgp : jumlah periode tugas yang terdapat dalam pairing, yang dikalikan dengan jumlah jam minimum dalam suatu periode tugas
• •
fp*TAFB : sebuah pecahan yang dikalikan dengan panjangnya waktu pairing
∑b
d ∈p
d
: jumlah biaya dari masing – masing periode tugas yang menyusun suatu pairing
Biaya – biaya dalam perumusan di atas diwakili dengan jam, bukan berdasarkan satuan uang karena perhitungan biaya tersebut dihitung
32
berdasarkan jam. Dari perumusan di atas, dapat diketahui bahwa pinalti akan terjadi pada pairing yang memiliki TAFB relatif tinggi terhadap jumlah jam yang diterbangi dan pairing yang memiliki jumlah jam terbang yang sedikit dalam suatu periode tugas. Biasanya, tujuan dari model optimalisasi dibuat untuk menemukan periode tugas yang mempartisi penerbangan, serta pairing yang melingkupi periode tugas dengan biaya yang sedekat mungkin dengan total waktu penerbangan yang dijadwalkan.
3.2.4. Penugasan untuk Penerbangan Domestik Penjadwalan awak pesawat untuk rute domestik berbeda dengan penjadwalan untuk rute internasional. Struktur hub dan spoke untuk jaringan penerbangan domestik menambah kompleksitas permasalahan karena dapat meningkatkan jumlah kemungkinan koneksi awak pesawat sehingga dapat menambah kemungkinan jumlah pairing. Hal
lain
yang
membedakan
penerbangan
domestik
dengan
penerbangan internasional adalah penggal penerbangan. Untuk penerbangan domestik, masing – masing penggal penerbangan memakan waktu yang relatif singkat, sehingga dalam satu periode tugas dapat terdiri dari beberapa penggal penerbangan. Sedang untuk penerbangan internasional, satu penggal penerbangan umumnya dapat memakan waktu yang relatif lama, yang
33
menyebabkan satu periode tugas tidak terdiri dari banyak penggal penerbangan. Ketika dilakukan penugasan awak pesawat pada jadwal penerbangan yang ada, masing – masing penggal penerbangan harus ditugaskan kepada minimal satu set awak pesawat. Hal ini menimbulkan kemungkinan adanya dua set awak pesawat yang ditugaskan pada penggal penerbangan yang sama. Apabila hal ini terjadi, maka timbul biaya deadhead, yaitu biaya yang dikeluarkan
perusahaan
untuk
membayar
waktu
penerbangan
awak
pesawatnya sebagai penumpang serta untuk membayar waktu penerbangan awak pesawatnya selama pengangkutan. Biaya yang dikeluarkan untuk mengangkut awak pesawat sebagai penumpang ini adalah berupa biaya pembayaran tiket pesawat ( jika awak pesawat menggunakan maskapai penerbangan lain ) atau berupa biaya yang timbul akibat berkurangnya kursi pesawat yang seharusnya bisa dijual ke penumpang.
3.2.5. Model Matematis Rotasi Penugasan Awak Pesawat 3.2.5.1.Model Dasar Model dasar rotasi penugasan awak pesawat adalah berupa programa
integer dengan kategori partisi set ( set partitioning ) yang dapat dirumuskan sebagai berikut :
34
min ∑ c p y p p∈P
∑y
p:i∈ p
p
=1 i∈ F
(3)
yp ∈ {0,1} p ∈ P
dimana : •
yp : 1 jika pairing p merupakan penyelesaiannya dan yp = 0 jika bukan
•
F : himpunan penggal penerbangan
•
P : himpunan pairing
•
p
•
cp : biaya pairing p
: memiliki nilai 1 pada baris i jika penerbangan i diterbangi oleh pairing p
Dalam menggunakan rumus di atas, pairing harus dienumerasikan atau dihasilkan terlebih dahulu. Enumerasi pairing ini merupakan pekerjaan yang kompleks karena banyaknya aturan yang harus diakomodasikan untuk sejumlah penerbangan yang tidak sedikit sehingga dihasilkan jumlah kemungkinan pairing yang memenuhi aturan yang telah ditetapkan. Hal ini biasanya
dilakukan
dengan
terlebih
dahulu
mengenumerasi
semua
kemungkinan periode tugas pada suatu jadwal penerbangan, yang kemudian diikuti dengan mengenumerasi semua kemungkinan kombinasi periode tugas tersebut dalam bentuk pairing. Enumerasi periode tugas dapat dilakukan dengan pendekatan depth – first search.
35
Untuk masing – masing penggal penerbangan, dapat dikonstruksikan sebuah pohon dengan titik yang menggambarkan penggal penerbangan. Titik tersebut memiliki anak yang menggambarkan kemungkinan hubungan dengan penggal penerbangan lainnya. Pada masing – masing tingkat berikutnya, masing – masing titik memiliki sebuah anak untuk setiap hubungan yang memungkinkan. Kedalaman pohon akan dibatasi dengan jumlah maksimum penggal penerbangan yang diizinkan dalam sebuah periode tugas. Masing – masing jalur yang terdiri dari rangkaian – rangkaian titik tersebut menggambarkan periode tugas yang memungkinkan. Selanjutnya jalur tersebut diperiksa ulang untuk menjamin bahwa jalur periode tugas tersebut tidak melanggar aturan – aturan penerbangan yang telah ditetapkan. Pairing juga dapat dihasilkan menggunakan cara seperti di atas dengan membuat pohon dengan periode tugas sebagai titiknya. Dalam kenyataannya, pembuatan pairing melibatkan variabel yang cukup banyak, misalnya 800 penerbangan mungkin memiliki jutaan pairing, maka digunakanlah pendekatan optimasi lokal ( Anbil, p71-78 ). Optimasi lokal ini bisa dilakukan dengan menggunakan variasi rumus partisi set untuk memperoleh penyelesaian yang layak dengan membuat penggal penerbangan banyak terlingkupi dan tak terlingkupi dengan membayar pinalti. Jika telah ditemukan penyelesaian yang layak, optimasi lokal digunakan untuk meningkatkan kualitas penyelesaian.
36
Untuk memperoleh penyelesaian yang optimal secara global, digunakan pendekatan Sprint ( Anbil, p681 ) di mana ribuan kolom dimasukkan ke perangkat lunak untuk penyelesaian program linier, dan kemudian kolom tersebut dioptimalisasi melalui program linier. Kemudian, kolom non dasar dibuang, dan sejumlah kolom ditambahkan. Proses ini berlanjut sehingga semua kolom diperhitungkan. Pendekatan lainnya adalah dengan menggunakan metode jalur terpendek dengan jalur terstruktur khusus untuk mendapatkan pairing yang optimal. Alternatif pendekatan lain yang juga dapat digunakan adalah dengan algoritma branch – and – cut.
3.2.5.2.Perumusan Berdasarkan Periode Tugas Selain menggunakan pairing untuk mempartisi penerbangan seperti yang terdapat pada rumus (3), model rotasi penugasan awak pesawat dapat dipecah menjadi dua tahap. Pertama, dibuatlah himpunan periode tugas yang mempartisi penggal penerbangan dan kemudian selanjutnya dibuat himpunan
pairing yang mempartisi periode – periode tugas tersebut. Dengan melihat permasalahan dengan sudut pandang ini, maka dibentuk skema dekomposisi baru yang menghasilkan penyelesaian pairing dengan terlebih dahulu mengidentifikasikan periode tugas yang memungkinkan. Formulasi ini akan lebih besar daripada yang terdapat pada rumus (3).
37
Perumusan berdasarkan periode tugas untuk rotasi penugasan pesawat adalah sebagai berikut :
min ∑ bd x d + ∑ cˆ p z p d ∈D
∑x
d :i∈d
d
− xd +
p∈P
=1 i∈F
∑z
p:d ∈ p
p
=0 d∈D
(4)
x d ∈ {0,1} d ∈ D z p ∈ {0,1} p ∈ P
dimana : xd
:
1 jika dipilih periode tugas d, dan 0 jika tidak
zp
:
1 jika dipilih pairing p, dan 0 jika tidak
F
:
himpunan penggal penerbangan yang terdapat pada jadwal
D
:
himpunan periode tugas
P
:
himpunan pairing
bd
:
biaya periode tugas d
cˆ p
:
biaya lebih pairing yang merupakan selisih antara biaya pairing dengan jumlah total biaya periode tugas yang terdapat dalam pairing
Kendala pertama dalam perumusan di atas akan membuat masing – masing penggal penerbangan termasuk dalam satuan periode tugas. Sedang kendala kedua dimaksudkan agar sebuah pairing meliputi suatu rangkaian periode tugas yang di dalamnya terdapat penggal – penggal penerbangan.
38
Perumusan di atas akan memiliki lebih banyak kolom dan baris dibanding rumus (3). Seperti pada (3), rumus (4) di atas memiliki kolom tersendiri untuk masing – masing pairing. Akan tetapi, secara umum kolom pairing yang terdapat pada perumusan di atas lebih jarang karena mengandung nilai bukan nol untuk masing – masing periode tugasnya. Terdapat juga kolom tambahan untuk masing – masing periode tugas, tetapi tidak memiliki pengaruh yang besar terhadap total jumlah kolom karena jumlah tugas umumnya kurang dari jumlah pairing. Rumus (4) juga memiliki lebih banyak baris karena terdapat baris tambahan untuk periode tugas yang harus termasuk dalam sebuah pairing. Teorema 1 Relaksasi programa linier rumus (4) akan memberikan batas yang sama dengan relaksasi program linier rumus (3). Bukti Variabel zp dan yp mewakili pairing yang sama. zp mewakili pairing yang melingkupi periode tugas sedang yp mewakili pairing yang melingkupi penggal penerbangan. Dari penyelesaian program linier, dapat dinyatakan zp* = yp* untuk p ∈ P , dan x d = *
∑z
p:d ∈ p
* p
. Dari pilihan y*, z*, serangkaian kendala
kedua pada rumus (4) terpenuhi. Ekuivalen partisi penerbangan dan tugas terjadi dari :
39
∑x
d :i∈d
* d
=
∑∑
d :i∈d p:d ∈ p
zp = *
∑y
p:i∈ p
* p
=1
Berdasarkan persamaan di atas, dapat dibuktikan bahwa penyelesaian y* dan x*, z* memberikan batasan programa linier yang sama. Jika
∑b
d∈ p
d
+ cˆ p = c p
untuk semua pairing p. Fungsi tujuan rumus (3) dapat dinyatakan dengan :
∑c p∈P
p
* * y p = ∑ (cˆ p + ∑ bd ) z p p∈P
d∈ p
= ∑ cˆ p z p + ∑ *
p∈P
∑b
d ∈D p:d ∈ p
= ∑ cˆ p z p + ∑ bd xd *
p∈P
d
zp
*
*
d ∈D
Dari perumusan di atas, dapat diketahui bahwa persamaan terakhir merupakan tujuan fungsi persamaan (4).
Jika diterapkan dekomposisi Dantzig – Wolfe terhadap rumus (4) dengan membuat kendala partisi set sesuai dengan penerbangan :
∑x d :i∈
d
=1 i∈F
Pada subproblem, diperoleh perumusan problem utama ( master problem ) sebagai berikut :
40
min ∑ C s ws + ∑ cˆ p z p s∈S
∑w s∈S
s
p∈P
=1
− ∑ ws + ∑ z p = 0 d ∈ D s∈S
(5)
p∈P
ws ∈ {0,1} s ∈ S
z p ∈ {0,1} p ∈ P
dimana :
s
:
periode tugas yang mempartisi penerbangan yang digunakan sebagai acuan yang mempartisi penerbangan
ws :
1 jika set s digunakan untuk menerbangi penerbangan, dan 0 jika tidak
zp :
1 jika digunakan pairing p dan 0 jika tidak
S :
himpunan dari himpunan periode tugas pada perumusan
P :
himpunan pairing
Cs :
biaya dimana terkait dengan s yang merupakan penjumlahan biaya periode tugas secara individu pada set tersebut,
∑b d ∈s
d
.
Kendala pertama menjadikan tepat hanya satu calon set yang terpilih. Kendala lainnya, seperti yang terdapat pada (4) dimaksudkan agar sebuah
pairing yang dipilih melingkupi periode tugas yang melingkupi penerbangan. Perumusan (5) dapat disebut dengan problem utama terbatas ( restricted
master problem ). Alasan utama untuk menggunakan perumusan (5) menggantikan perumusan (3) adalah untuk memperoleh batas yang lebih baik dari relaksasi
41
program linier. Relaksasi dilakukan untuk menghapus kendala yang membuat suatu permasalahan lebih sulit untuk dipecahkan. Untuk programa integer, relaksasi dilakukan dengan menghapus kendala integernya. Relaksasi programa linier perumusan (5) adalah sebagai berikut : min ∑ C s ws + ∑ cˆ p z p s∈S
∑w s∈S
s
p∈P
=1
− ∑ ws + ∑ z p = 0 d ∈ D s∈S
(6)
p∈P
ws ≥ 0 s ∈ S zp ≥ 0 s ∈ S Teorema 2 Batas dari rumus (6) adalah lebih besar atau sama dengan batas dari relaksasi program linier dari (4) atau (3).
Bukti Diketahui
(wˆ , zˆ )
merupakan penyelesaian relaksasi programa linier dari
perumusan (6). Kemudian dapat dibuat sebuah penyelesaian ( x*, z* ) terhadap relaksasi programa linier dari (4) dengan x d = *
∑ wˆ
s:d ∈s
s
* dan z p = zˆ p . Dapat
diketahui bahwa kendala kedua perumusan (4) dipenuhi oleh x*, z*. Untuk kendala pertama, dapat dinyatakan :
∑x
d :i∈d
* d
=
∑ ∑ wˆ = ∑ wˆ
d :i∈d s:d ∈s
s
s∈S
s
=1
42
Persamaan kedua mengikuti kenyataan bahwa masing – masing periode tugas mempartisi penerbangan. Oleh karena itu masing – masing penerbangan termasuk dalam salah satu periode tugas pada himpunan yang diketahui. Dengan demikian ( x*, z* ) adalah layak terhadap relaksasi programa linier perumusan (4). Kedua penyelesaian programa linier memberikan batasan yang sama karena :
∑ cˆ p∈P
p
* zˆ p = ∑ cˆ p z p p∈P
dan
∑ C wˆ =∑∑ b wˆ s∈S
s
s
s∈S d ∈s
d
s
=
∑ ∑ b wˆ
d ∈D s:d ∈s
d
s
=
∑b
d ∈D
d
xd
*
Penyelesaian programa linier ( x*, z* ) terhadap rumus (4) adalah sedemikian rupa sehingga x* terdapat dalam : ⎫ ⎧ Pd = conv ⎨ x : ∑ x d = 1 i ∈ F ; x d ∈ {0,1} d ∈ D ⎬ ⎭ ⎩ d :i∈d Masing – masing titik integer pada Pd adalah vektor insiden himpunan periode tugas s. Karena x* terdapat dalam Pd, x* dapat dinyatakan sebagai kombinasi konveks dari vektor ini. Penyelesaian yang layak untuk relaksasi programa linier (6) adalah dengan menjadikan wˆ s sebagai bobot vektor yang mewakili himpunan s untuk semua s, dalam kombinasi konveks yang memberikan x* * dan menjadikan zˆ p = z p . Karena x* adalah kombinasi konveks titik – titik
43
integer pada Pd, maka x d = *
∑ wˆ
s:d ∈s
s
untuk semua tugas d. Seperti sebelumnya,
kedua penyelesaian memberikan batas program linier yang sama. Akhirnya, jika sebuah penyelesaian programa linier ( x*, z* ) terhadap (4) sedemikian rupa sehingga x* tidak terdapat dalam Pd, maka tidak terdapat bobot ws pada set tugas sedemikian rupa sehingga x d = *
∑ wˆ
s:d ∈S
s
untuk semua
tugas d. Oleh karena itu, tidak terdapat penyelesaian (wˆ , zˆ ) terhadap (6) * dengan zˆ p = z p untuk semua p ∈ P . Dengan demikian, untuk beberapa
fungsi tujuan, (6) memberikan batas programa linier yang lebih kuat dibanding (4) dan (3). Jika
∑ (b d ∈s
d
+ π d ) < σ adalah variabel dual (6) dan π d merupakan
variabel dual dari masing – masing kendala sesuai dengan periode tugas d, maka dual dari (6) adalah sebagai berikut : max σ
σ−
max σ
∑π d ∈S
d
≤ Cs
∑ π d ≤ cˆs
s∈S
p∈P
(7)
d∈ p
σ d , π d bebas Penyelesaian yang layak terhadap versi terbatas rumus (6) adalah optimal untuk permasalahan dengan semua kolomnya jika penyelesaian dual yang sesuai adalah layak terhadap (7) dengan termasuk semua baris yang memungkinkan di dalamnya.
44
Terdapat dua tipe kolom yang perlu dihasilkan untuk membuktikan optimalitas (6). Kolom himpunan periode tugas perlu dihasilkan lagi apabila
∑ (b d ∈s
d
+πd )<σ
di mana σ adalah nilai fungsi tujuan pada (7) dan (6).
Kolom pairing perlu dihasilkan lagi jika
∑π
d∈ p
d
> cˆ s
p∈ P.
Kemungkinan perlu tidaknya untuk menghasilkan himpunan periode tugas lagi, dapat diidentifikasi dengan menyelesaikan subpermasalahan partisi set seperti yang dirumuskan berikut : min ∑ (bd + π d )x d d ∈D
∑x
d :i∈d
d
=1 i∈F
(8)
x d ∈ {0,1} d ∈ D
dimana : bd :
biaya periode tugas d
πd :
variabel dual yang terkait dengan baris pada perumusan (6) yang sesuai
Jika nilai fungsi tujuan optimal (8) tidak kurang dari σ , maka tidak perlu dihasilkan kolom periode tugas lagi. Hasil ini dapat digunakan untuk menghentikan enumerasi kolom ketika penyelesaian dalam toleransi tertentu telah diidentifikasikan. Jika penyelesaian (6) adalah integral dengan nilai tujuan σ dan tidak terdapat pairing yang memiliki reduce cost negatif,
45
subpermasalahan
periode
tugas
memberikan
batas
bawah
terhadap
penyelesaian optimal. Jika perbedaan antara σ dan batas bawah ini adalah kurang dari suatu toleransi tertentu, enumerasi kolom dapat dihentikan. Pembuktian
melalui
menggunakan rumus dasar
subpermasalahan
∑π
d∈ p
dengan mengurangi, cˆ p , dengan
d
> cˆ p
∑π
d∈ p
d
pairing
adalah
dengan
p ∈ P . Perhitungan dilakukan
sesuai dengan periode tugas yang
terdapat dalam pairing tersebut. Perlu dihasilkan kolom pairing lagi, jika ternyata ditemukan hasil pengurangan atau reduced cost yang bernilai negatif. Untuk
mengawali
prosedur
pembuatan
kolom,
dibutuhkan
penyelesaian yang layak pada relaksasi programa linier permasalahan utama. Penyelesaian awal ini dapat diperoleh melalui dua cara. Yang pertama adalah dengan menggunakan penyelesaian buatan menggunakan periode tugas pada himpunan periode sembarang untuk menyusun pairing. Jika beberapa pairing tidak memenuhi batasan yang telah ditetapkan, pairing tersebut dapat diberi biaya pinalti yang tinggi. Keuntungan pendekatan ini adalah penyelesaian buatan dapat disusun secara mudah. Akan tetapi, dengan cara ini konvergensi akan lama dicapai karena variabel dual awal memberikan perkiraan yang jelek terhadap biaya periode tugas dalam pairing. Pendekatan kedua adalah dengan menggunakan penyelesaian yang layak. Penyelesaian yang layak umumnya dapat ditemukan karena jadwal penerbangan tidak berubah secara dramatis
46
dari periode perencanaan satu ke yang lain. Penyelesaian yang layak dapat disusun dengan memodifikasi sedikit penyelesaian periode sebelumnya. Perhitungan untuk penjadwalan awak pesawat dengan penerbangan sekitar 100 dengan metode ini cukup menjanjikan. Konvergensi programa linier terhadap integer optimal diperoleh lebih cepat jika penyelesaian awal yang layak digunakan. Sekalipun demikian, perlu juga dipertimbangkan untuk menggunakan rumus (3) sebagai perumusan partisi set standard yang dapat memberikan penyelesaian yang integral dimana sejumlah kecil pairing yang memungkinkan dapat dihasilkan secara lebih cepat.
3.3.
Linear Programming
3.3.1. Pengertian Linear Programming
Linear
Programming
menggunakan
model
matematika
untuk
menggambarkan permasalahan. Menurut Hillier dan Lieberman ( 1995, p26 ), kata linear berarti semua fungsi matematika yang digunakan dalam model ini memerlukan fungsi linear. Kata programming disini berarti perencanaan. Jadi linear programming melibatkan aktivitas perencanaan untuk mendapatkan hasil optimal, yaitu suatu hasil terbaik yang mencapai suatu tujuan dari alternatif - alternatif lain yang layak. Bentuk dasar dari masalah linear programming dapat diformulasikan sebagai berikut ( Hillier dan Lieberman, 1995, p34 ) :
47
Maksimasi atau Minimasi :
Z = c1x1 + c2x2 + .... + cnxn
Dengan memperhatikan hubungan - hubungan sebagai berikut : a11 x1 + a12 x2 + a1j xj + .... + a1n xn ( <, =, > ) b1 a21 x1 + a22 x2 + a2j xj + .... + a2n xn ( <, =, > ) b2
am1 x1 + am2 x2 + amj xj + .... + amn xn ( <, =, > ) bm dimana : x1, x2, .... xn ≥ 0 Koefisien-koefisien c1, c2, ...., cn adalah koefisien biaya atau keuntungan, sedangkan untuk x1, x2, .... xn adalah variabel keputusan. Fungsi Z adalah fungsi tujuan, sedangkan untuk persamaan dan atau pertidaksamaan pada persamaan di bawahnya adalah set fungsi pembatas. Persamaan terakhir disebut dengan pembatas non negatif. Beberapa syarat utama yang harus dipenuhi dari linear programming dalam suatu industri, yaitu ( Suwondo, 2001, p12 ) : a. Mempunyai tujuan untuk dicapai b. Harus ada alternatif tindakan yang salah satu darinya akan mencapai tujuan c. Sumber harus merupakan persediaan terbatas Beberapa metode penyelesaian linear programming antara lain ( Suwondo, 2001, p13 - 14 ):
48
a. Metode Grafis
Metode ini digunakan apabila variabel model linear programming yang ada tidak melebihi dua varibel atau yang berdimensi 2 x n atau m x 2. b. Metode Simpleks
Apabila suatu masalah linear programming melibatkan lebih dari dua kegiatan maka metode grafik tidak dapat digunakan dalam menentukan kombinasi optimal, untuk itu digunakanlah metode simpleks.
3.3.2. Asumsi Linear Programming
Menurut Hillier dan Lieberman ( 1995, p38 – 44 ) asumsi - asumsi yang terdapat pada linear programming meliputi : a. Asumsi kesebandingan ( Proportionality )
Kontribusi setiap aktivitas terhadap nilai fungsi tujuan Z proporsional terhadap tingkat aktivitas xj, seperti yang diwakili simbol cjxj pada fungsi objektif. Kontribusi setiap aktivitas pada sisi kiri untuk setiap fungsi batasan juga proporsional terhadap tingkat aktivitas xj, seperti yang diwakili oleh simbol ajxj pada batasan. b. Asumsi penambahan ( Additivity )
Setiap fungsi pada model linear programming ( baik fungsi tujuan ataupun fungsi pada sisi kiri fungsi batasan ) adalah jumlah dari kontribusi individual aktivitas yang berkaitan.
49
c. Asumsi pembagian ( Divisibility )
Variabel keputusan pada model linear programming diizinkan untuk mempunyai sembarang nilai, termasuk nilai non integer, yang memenuhi batasan fungsional dan non negatif. Sehingga, variabel - variabel ini tidak dibatasi hanya untuk nilai integer. Karena setiap keputusan mewakili tingkatan sebagian aktivitas, aktivitas ini dapat diasumsikan dapat berjalan pada tingkatan fraksional. d. Asumsi kepastian ( Certainty )
Nilai yang diberikan untuk setiap parameter model linear programming diasumsikan sebagai konstanta yang diketahui.
3.3.3. Tipe – tipe Khusus Persoalan Linear Programming
Persoalan linear programming yang bertipe khusus, memiliki kekhususan yang terletak pada beberapa karakteristik utama. Karakter – karakter khusus itu di antaranya ialah bahwa persoalan – persoalan tersebut cenderung membutuhkan sejumlah pembatas dan variabel yang sangat banyak sehingga penggunaan komputer dalam penyelesaian metode simpleksnya akan sangat mahal, atau mungkin proses penghitungannya akan menghadapi berbagai hambatan. Karakteristik lain adalah bahwa kebanyakan koefisien aij dalam pembatas – pembatasnya berharga nol, dan sedikit sekali koefisien
50
yang berharga bukan nol terjadi / muncul dalam suatu pola tertentu ( Dimyati, 2003, p128 ). Tipe khusus persoalan linear programming yang paling penting ialah apa yang dikenal sebagai persoalan transportasi, persoalan transshipment, dan persoalan penugasan ( assignment ).
3.3.4. Model Penugasan ( Assignment Model )
Model penugasan merupakan kasus khusus dari model transportasi, dimana sejumlah m sumber ditugaskan kepada sejumlah n tujuan ( satu sumber untuk satu tujuan ) sedemikian sehingga didapat ongkos total yang minimum. Biasanya yang dimaksud dengan sumber
ialah pekerjaan ( atau
pekerja ), sedangkan yang dimaksud dengan tujuan ialah mesin – mesin. Jadi, dalam hal ini, ada m pekerjaan yang ditugaskan pada n mesin, dimana apabila pekerjaan i ( i = 1, 2, 3, ..., m ) ditugaskan kepada mesin j ( j = 1, 2, 3, ..., n ) akan muncul ongkos penugasn cij. Karena satu pekerjaan ditugaskan hanya pada satu mesin, maka supply yang dapat digunakan pada setiap sumber adalah 1 ( atau ai = 1, untuk seluruh i ). Demikian pula halnya dengan mesin – mesin; karena satu mesin hanya dapat menerima satu pekerjaan, maka demand dari setiap tujuan adalah 1 ( atau bj = 1, untuk seluruh j ). Jika ada suatu pekerjaan yang tidak dapat ditugaskan pada mesin tertentu, maka cij
51
yang berkorespondensi dengannya dinyatakan sebagai M, yang merupakan ongkos yang sangat tinggi. Penggambaran umum persoalan penugasan ini adalah sebagai berikut : Tabel 3.1. Gambaran Umum Persoalan Penugasan Mesin 2 …
1
Pekerjaan
n
1
c11
c12
…
c1n
1
2 . . .
c21 . . .
c22 . . .
…
c2n . . .
1 . . .
m
cm1 1
cm2 1
… …
cmn 1
1
Sebelum model ini dapat dipecahkan dengan teknik transportasi, terlebih dahulu persoalannya harus diseimbangkan dengan menambahkan pekerjaan – pekerjaan atau mesin – mesin khayalan, bergantung pada apakah m < n atau m > n. Dengan demikian, diasumsikan bahwa m = n. Secara matematis, model penugasan ini dapat dinyatakan sebagai berikut :
⎧0, jika pe ker jaan ke − i tidak ditugaskan pada me sin ke − j xij = ⎨ ⎩1, jika pe ker jaan ke − i ditugaskan pada me sin ke − j Dengan demikian, model persoalan penugasan ini adalah : n
n
Minimumkan : z = ∑∑ cij xij i =1 j =1
52
Berdasarkan pembatas : n
∑x j =1
ij
= 1 , i = 1, 2, ..., n
ij
= 1 , j = 1, 2, ..., n
n
∑x i= j
xij = 0 atau 1
Suatu ciri khas persoalan penugasan ialah bahwa solusi optimum akan tetap sama bila suatu konstanta ditambahkan atau dikurangkan kepada baris atau kolom yang mana pun dari matriks ongkosnya. Hal ini dapat dibuktikan sebagai berikut : Jika pi dan qj merupakan konstanta pengurang terhadap baris i dan kolom j, maka elemen ongkos yang baru adalah : cij’ = cij – pi - qj sehingga fungsi tujuan baru menjadi : z ' = ∑∑ cij ' i
xij = ∑∑ (cij − pi − q j ) xi j
j
i
= ∑∑ cij xij
−
Karena ∑ xij
=
i
j
j
j
∑ p ∑ x − ∑q ∑ x i
i
ij
j
∑x
ij
j
j
ij
i
= 1, maka z ' = z − kons tan ta
i
Hal ini menunjukkan bahwa meminimumkan z akan menghasilkan solusi yang sama dengan meminimumkan z’. Suatu hal yang menarik adalah bahwa jika kita melakukan operasi pengurangan pi dan qj terhadap matriks ongkos akan diperoleh zero entries, yaitu elemen – elemen ongkos dalam matriks yang berharga nol, yang juga
53
merupakan variabel – variabel yang menghasilkan solusi optimum bagi z’ sehingga berdasarkan pembuktian di atas, merupakan solusi optimal bagi z. Sebagai ilustrasi, perhatikanlah sebuah persoalan penugasan berikut ini : Tabel 3.2. Model Persoalan Penugasan Mesin 1
Pekerjaan
2
3
1
5
7
9
2
14
10
12
3
15
13
16
1
1
1 1 1
1
Tabel 3.3. Solusi Awal Contoh Persoalan Penugasan Mesin 2
1 1 Pekerjaan
5
1
2
14
3
15 1
1
3 7
9
10
12
13 1
16
1
1 1 1
1
Pada Tabel 3.3., elemen – elemen nol dibuat dengan mengurangkan elemen terkecil masing – masing baris ( kolom ) dari baris ( kolom ) yang bersangkutan. Dengan demikian, matriks cij’ yang baru adalah :
54
Tabel 3.4. Matriks cij’ ( Matriks Ongkos yang Baru )
1 2 3
1
2
3
0 4 2
2 0 0
4 2 3
p1 = 5 p2 = 10 p3 = 13
Matriks terakhir dapat dibuat untuk memperbanyak elemen matriks yang berharga nol dengan cara mengurangkan q3 = 2 dari kolom ketiga. Hasilnya adalah sebagai berikut : Tabel 3.5. Hasil Matriks 1
2
3
1
0
2
2
2
4
0
0
3
2
0
1
Segi empat pada tabel merupakan penugasan yang fleksibel dan sekaligus optimum, yaitu ( 1, 1 ), ( 2, 3 ), dan ( 3, 2 ) dengan ongkos penugasan sebesar 5 + 12 + 13 = 30. Perhatikan bahwa besarnya ongkos ini sama dengan p1 + p2 + p3 + q3. Sayang sekali bahwa penugasan yang fisibel ini tidak selalu dapat kita peroleh seperti pada contoh di atas. Karena itu, diperlukan suatu aturan untuk mencapai solusi optimum, yang akan diterangkan melalui ilustrasi berikut ini :
55
Perhatikan suatu persoalan penugasan yang digambarkan sebagai berikut : Tabel 3.6. Persoalan Penugasan
1 2 3 4
1 1 9 4 8
2 4 7 5 7
3 6 10 11 8
4 3 9 7 5
Dengan proses pengurangan seperti di atas diperoleh : Tabel 3.7. Proses Pengurangan ( 1 )
1 2 3 4
1 0 2 3 0
2 3 0 1 2
3 5 3 7 3
4 2 2 3 0
Tabel 3.8. Proses Pengurangan ( 2 )
1 2 3 4
1 0 2 3 0
2 3 0 1 2
3 2 0 4 0
4 2 2 3 0
Dalam kasus ini penugasan yang fisibel terhadap elemen – elemen nol tidak mungkin diperoleh sehingga diperoleh prosedur sebagai berikut : 1. Tariklah garis pada semua baris dan kolom yang mengandung elemen nol dengan jumlah garis minimum, sedemikian sehingga tidak terdapat lagi nol pada matriks yang bersangkutan.
56
2. Tentukan di antara elemen – elemen yang tidak ikut tergaris, satu elemen dengan harga terkecil, kemudian kurangkan sebesar harga elemen ini kepada semua elemen yang tidak tergaris. 3. Tambahkan sebesar harga elemen tersebut ( pada point 2 ) kepada semua elemen yang terletak pada perpotongan dua garis. 4. Alokasikan pekerjaan pada elemen – elemen nol tersebut. 5. Jika solusi optimum belum juga ditemukan, ulangi lagi langkah 1 sampai dengan 4 hingga dicapai penugasan yang fisibel. Kembali kepada contoh soal di atas, sebagai kelanjutan dari Tabel 3.8. adalah: Tabel 3.9. Proses Pengurangan ( 3 )
1 2 3 4
1 0 2 3 0
2
3
4
3 0 1 2
2 0 4 0
2 2 3 0
Tabel 3.10. Matriks Hasil 1
2
3
4
1
0
2
1
1
2
3
0
0
2
3
0
0
3
2
1
4
2
0
0
57
Tabel 3.10. memberikan penugasan yang optimum, yaitu ( 1, 1 ), ( 2, 3 ), ( 3, 2 ) dan ( 4, 4 ) dengan ongkos total sebesar 1 + 10 + 5 + 5 = 21.
3.4.
Sistem Informasi
3.4.1. Pengertian Sistem
Menurut McLeod ( 2001, p9 ) sistem adalah sekelompok elemen elemen yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan tertentu, di mana unsur - unsur dari sistem meliputi input, transformasi, output, mekanisme pengendalian, tujuan, dan umpan balik. Menurut O’Brien ( 1997, p18 ) sistem adalah sekumpulan komponen yang saling berhubungan dan bekerja sama untuk mencapai satu tujuan bersama dengan menerima input dan menghasilkan output dalam suatu proses transformasi yang terorganisasi. Berdasarkan kedua definisi tersebut maka dapat disimpulkan bahwa sistem adalah sekumpulan elemen yang saling berhubungan dan bekerja sama untuk mencapai tujuan bersama dengan menerima input, melakukan proses, dan menghasilkan output.
58
3.4.2. Pengertian Informasi
Menurut O’Brien ( 1997, p24 ) informasi adalah data yang telah dikonversikan menjadi bentuk yang berarti dan berguna bagi pengguna akhir yang spesifik. Menurut McLeod ( 2001, p12 ) informasi merupakan data yang telah diproses atau data yang memiliki arti. Sedangkan data itu sendiri terdiri dari fakta - fakta dan angka - angka yang secara relatif tidak berarti bagi pemakai. Terdapat empat dimensi informasi menurut McLeod ( 2001, p145 ), yaitu: -
Relevansi
Informasi disebut relevan jika informasi tersebut berkaitan langsung dengan masalah yang sedang dihadapi. Manajer harus mampu memilih informasi yang diperlukan. -
Akurasi
Secara ideal, semua informasi harus akurat untuk menunjang terbentuknya sistem yang akurat pula. Akurasi ini terutama diperlukan dalam aplikasi aplikasi tertentu seperti aplikasi yang melibatkan keuangan, semakin teliti informasi yang diinginkan maka biaya pun semakin bertambah. -
Ketepatan Waktu
Informasi harus dapat tersedia untuk memecahkan masalah pada waktu yang tepat sebelum situasi menjadi tidak terkendali atau kesempatan yang
59
ada menghilang. Manajer juga harus mampu memperoleh informasi yang menggambarkan keadaan yang sedang terjadi sekarang, selain apa yang telah terjadi pada masa lalu. -
Kelengkapan
Perusahaan khususnya manajer harus dapat memperoleh informasi yang memberi gambaran lengkap dari suatu permasalahan atau penyelesaian. Namun pemberian informasi yang tidak berguna secara berlebihan harus dihindari.
Dari beberapa definisi di atas maka dapat disimpulkan bahwa informasi adalah data yang telah diolah atau diproses untuk menghasilkan sesuatu arti atau bentuk yang berguna bagi kelancaran manajemen dalam mengambil keputusan.
3.4.3. Pengertian Sistem Informasi
Menurut Alter ( 1999, p42 ), sistem informasi adalah suatu jenis sistem kerja yang menggunakan teknologi informasi untuk mengumpulkan, meneruskan, menyimpan, mendapatkan kembali, memanipulasi, ataupun menampilkan informasi, sehingga mendukung satu atau lebih sistem kerja. Sementara itu sistem kerja adalah sistem di mana manusia berpartisipasi untuk
60
melakukan proses bisnis menggunakan teknologi informasi dan sumber daya lain untuk menghasilkan suatu produk bagi pihak internal maupun eksternal. Menurut McLeod ( 2001, p4 ) sistem informasi adalah suatu kombinasi yang terorganisasi dari manusia, perangkat lunak, perangkat keras, jaringan komunikasi, dan sumber daya data yang mengumpulkan, mentransformasikan, serta menyebarkan informasi di dalam sebuah organisasi. Dari pengertian sistem dan informasi yang telah dibahas di atas, maka sistem informasi dapat didefinisikan sebagai sistem dalam suatu organisasi yang digunakan untuk mengatur kegiatan organisasi dalam mencapai sasaran dan tujuannya.
3.4.4. Pengertian Analisa Sistem
Menurut Laudon dan Laudon ( 1998, p400 ), analisa sistem adalah suatu proses analisa terhadap masalah yang akan diselesaikan oleh sebuah organisasi dengan menggunakan sistem informasi, yang terdiri dari pendefinisian masalah dan identifikasi spesifikasi kebutuhan yang harus dipenuhi oleh solusi dari sistem. Menurut McLeod ( 2001, p234 ), analisis sistem adalah penelitian atas sistem yang telah ada dengan tujuan untuk merancang sistem yang baru atau diperbaiki. Jadi dapat disimpulkan bahwa analisis sistem adalah penelitian
61
sistem yang ada dengan tujuan penyempurnaan sistem yang dapat dimanfaatkan oleh pengguna sistem.
3.4.5. Pengertian Perancangan Sistem
Menurut O’Brien ( 2002, p352 ), analisa sistem mencakup apakah yang harus dapat dilakukan sistem untuk memenuhi kebutuhan informasi dari pengguna, sedangkan perancangan
sistem mencakup bagaimana sebuah
sistem dapat memenuhi kebutuhan ini. Perancangan sistem terdiri dari aktivitas perancangan yang menghasilkan spesifikasi sistem sesuai dengan kebutuhan yang dikembangkan di dalam proses analisis sistem. Proses perancangan terdiri dari 3 aktivitas, yaitu : 1. Perancangan antarmuka pengguna, yaitu merancang tampilan layar untuk mendukung interaksi antara pengguna dengan aplikasi komputer. 2. Perancangan basis data, yaitu merancang bagaimana elemen data tersusun dalam sebuah media dengan struktur yang baik, sehingga mudah diakses. 3. Perancangan proses, yaitu serangkaian perancangan prosedur dan kegiatan merancang kode – kode program sesuai dengan spesifikasi proses agar sistem informasi yang dirancang dapat berfungsi untuk memenuhi kebutuhan.
62
3.4.6. Analisa dan Perancangan Sistem Informasi dengan Metode Berorientasi Objek 3.4.6.1.Konsep Dasar Metode Berorientasi Tahapan Pengembangan Sistem Informasi Berorientasi Objek
Metode berorientasi objek / Object Oriented ( OO ) diawali dari perkembangan Object Oriented Programming ( OOP ) yang berkembang menjadi Object Oriented Design ( OOD ) dan akhirnya menjadi Object Oriented Analysis ( OOA ). Berbeda dengan dekomposisi fungsional, Object Oriented melihat suatu permasalahan yang kompleks sebagai suatu kumpulan objek yang mempunyai arti dan bekerja sama satu sama lain untuk mencapai tingkat behavior yang lebih tinggi, dan juga menggambarkan bagaimana melihat suatu permasalahan yang kompleks. Hal ini membuat OO dapat melakukan tugas pengembangan suatu sistem yang besar dan kompleks dengan lebih baik. Secara garis besar metode OO terdiri dari OOA, OOD, dan implementasi. Dalam kegiatan OOA, kegiatan ditekankan pada menemukan dan menggambarkan objek - objek atau konsep - konsep dalam problem domain, sebagai contoh dalam suatu sistem informasi perpustakaan beberapa konsep yang umum adalah Book, Library, dan Catalog. Sementara itu, dalam OOD, kegiatan ditekankan pada pendefinisian objek logical software yang pada akhirnya akan diimplementasikan dalam object oriented programming
63
language, sebagai contoh dalam suatu sistem informasi perpustakaan, objek software Book dapat berupa judul ataupun jenis percetakan buku tersebut. Tahapan terakhir adalah implementasi, yaitu kegiatan konstruksi atau OOP di mana desain komponen akan diimplementasikan dalam bahasa pemrograman.
3.4.6.2.Konsep Objek
Terdapat 3 konsep objek : 1. Enkapsulasi ( Information Hiding )
Enkapsulasi adalah menyembunyikan cara pengimplementasian suatu benda dari pengguna, sehingga pengguna hanya tergantung dan berhubungan dengan antarmuka luarnya saja. Enkapsulasi sering disebut dengan "penyembunyian informasi". Ini akan memungkinkan pengguna mengoperasikan suatu sistem tanpa harus mengetahui cara / mekanisme implementasi dari antarmukanya. Sebagai contoh nyata enkapsulasi adalah saat kita menggunakan sebuah remote control untuk televisi, maka fungsi - fungsi detail dan cara implementasi fungsi pada remote control telah terenkapsulasi, kita sebagai pengguna hanya akan berhubungan dengan tombol - tombol sebagai antarmukanya. 2. Inheritance
Objek - objek memiliki banyak persamaan, namun ada sedikit perbedan. Misalnya beberapa buah mobil yang mempunyai kegunaan
64
yang berbeda - beda. Ada mobil bak terbuka seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian objek - objek ini memiliki kesamaan yaitu teridentifikasi sebagai objek mobil, objek ini dapat dikatakan sebagai objek induk ( parent ). Sedangkan minibus dikatakan sebagai objek anak ( child ), hal ini juga berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus. 3. Polimorphism
Polymorphism adalah kemampuan dari tipe objek yang berbeda untuk menyadari property dan operasi yang sama dalam hal yang berbeda. Polymorphism adalah hasil natural dari fakta bahwa objek dari tipe yang berbeda ( bukan dari subtype yang berbeda ) dapat menggunakan property dan operasi yang sama dalam hal yang berbeda. Sebagai contoh antar muka bernama musik, dengan operasi main dan berhenti, kita menerapkannya pada objek piano, gitar, drum dan bass, maka jika melakukan perintah main kepada semua objek maka semua objek akan mengimplemetasikan perintah tersebut dengan memainkan alat musik yang bebeda - beda, walaupun dengan satu perintah dari antar muka yang sama.
65
3.4.6.3.Tahapan Pengembangan Sistem Informasi Berorientasi Objek
Menurut Mathiassen et al. ( 2000, pp14-15 ), untuk menganalisa sistem informasi berbasiskan objek terdapat empat kegiatan utama yang harus dilakukan yang dijelaskan dan digambarkan pada Gambar 3.2.
( Mathiassen, 2000, p15 ) Gambar 3.2. Empat Kegiatan Utama Dalam Menganalisa Sistem
1. Problem Domain Analysis
Pada tahapan ini, sistem akan dirancang sesuai dengan spesifikasi kebutuhan dari pengguna sistem. Laporan yang dihasilkan pada tahap ini adalah class diagram dan statechart diagram. 2. Application Domain Analysis
Pada tahapan ini lebih difokuskan pada aplikasi suatu sistem, yaitu bagaimana suatu sistem akan digunakan oleh pengguna. Laporan yang diperoleh dari hasil Application Domain Analysis adalah berikut ini :
66
a. Diagram Use Case, yang menggambarkan interaksi antara pengguna sebagai aktor dengan sistem informasi. b. Function List, yaitu kemampuan yang harus dimiliki oleh suatu sistem sebagai kebutuhan dasar dari user. c. Diagram Navigasi User Interface, merupakan diagram yang menggambarkan tampilan layar yang akan dirancang untuk memenuhi kebutuhan user. 3. Desain Arsitektur ( Architecture Design )
Pada tahap ini, akan dirancang arsitektur hubungan antara client dan server yang memadai untuk sistem agar dapat berjalan dengan baik. Laporan yang dihasilkan adalah Diagram Deployment. Perancangan di sini akan menentukan bagaimana struktur sistem fisik akan dibuat dan bagaimana distribusi sistem informasi pada rancangan fisik tersebut. 4. Desain Komponen ( Component Design )
Desain komponen merupakan sistem struktur yang menghubungkan antar komponen. Laporan yang dihasilkan oleh desain komponen adalah diagram komponen, yaitu diagram yang menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan ( dependency ) di antaranya. Pada tahap ini akan terlihat bagaimana sistem bekerja dan interaksi yang terjadi antara sistem dengan pengguna.
67
3.4.6.4.Dokumentasi
Dalam pengembangan sistem, dokumen memainkan peran penting dan melayani kebutuhan yang berbeda sebagai alat kerja yang mengumpulkan dan mengatur sub hasil ketika diproduksi, alat kontrol untuk mengukur kemajuan kerja, dan sebagai alat yang menetapkan persetujuan mengenai persyaratan dan rancangan sistem. ( Mathiassen et al., 2000, p300 ). Dokumentasi analisa adalah presentasi koheren dari hasil analisa, termasuk laporan pra - analisa dan definisi sistem. Menurut Mathiassen et al. ( 2000, pp 301 - 302 ) standar dokumentasi analisa adalah : 1. Tugas, berisikan deskripsi singkat latar belakang dan hubungan dokumen a. Tujuan, berisikan tujuan keseluruhan dari proyek pengembangan sistem b. Definisi
Sistem,
yaitu
deskripsi
singkat
suatu
sistem
yang
terkomputerisasi yang diekspresikan dalam bahasa sehari - hari. Suatu definisi sistem menggambarkan secara dasar sifat - sifat dari pengembangan dan penggunaaan sistem dengan tujuan meniadakan intepretasi dan kemungkinan - kemungkinan yang berbeda. Definisi sistem ini dapat diuji dengan kriteria FACTOR, yaitu Functionality
Fungsi sistem yang mendukung tugas - tugas application domain
68
Application Domain Bagian suatu organisasi yang menjalankan, memonitor, atau mengontrol problem domain ( bagian dari konteks yang dijalankan, dimonitor, atau dikontrol oleh sebuah sistem ). Conditions
Kondisi di mana sistem akan dikembangkan dan digunakan.
Technology
Teknologi
baik
digunakan
untuk
mengembangkan sistem dan untuk menjalankan sistem. Objects
Objek utama dalam problem domain.
Responsibility
Tanggung jawab keseluruhan sistem berkaitan dengan konteksnya.
c. Konteks, yaitu deskripsi aspek yang relevan pada lingkungan sekeliling sistem, antara lain dapat berupa rich picture. Sebuah rich picture adalah gambaran informal yang mewakili pengertian terhadap situasi. 1. Problem Domain, berisikan presentasi informal terhadap inti fenomena dalam problem domain sistem. 2. Application Domain, berisikan presentasi informal dari aktor dan tugas kerja.
69
2. Problem Domain, berisikan deskripsi class, structure, dan dynamics dalam sistem objek. a. Cluster, yaitu suatu koleksi dari class yang berhubungan. b. Struktur, berisikan diagram class yang terdiri dari struktur generalization, aggregation, dan association. Struktur generalization adalah suatu hubungan antara dua atau lebih class spesialisasi dan class yang lebih umum, di mana class yang lebih umum ( super class ) mendeskrepsikan sifat - sifat umum dari sekelompok class spesialisasi ( subclasses ). Struktur aggregation adalah suatu antara dua atau lebih objek, di mana satu objek adalah sebuah dasar dan mendefinisikan bagian objek lain. Aggregation adalah sebuah objek superior ( keseluruhan ) yang terdiri dari sejumlah objek lain yang inferior ( bagian ). Struktur association adalah suatu hubungan antara dua atau lebih objek, tetapi berbeda dari aggregation di mana objek association tidak mendefinisikan sifat dari sebuah objek. c. Classes, yaitu sebuah gambaran dari sekumpulan objek yang memiliki struktur pola behavior, dan atribut. Pola behavior adalah suatu gambaran dari urutan event untuk semua objek di dalam sebuah class. Atribut adalah suatu sifat deskriptif daru suatu class atau sebuah event.
70
1. Definisi, yaitu karakteristik singkat dari objek dalam class. 2. Pola behavior, yang dapat digambarkan menggunakan diagram statechart. d. Events, yaitu suatu kejadian singkat ( instantaneous ) yang melibatkan satu atau lebih objek, dapat digambarkan dengan event table dan sequence diagram. 3. Application Domain, berisikan deskripsi lengkap dari usage, function, interfaces, dan persyaratan sistem lainnya. a. Usage, yaitu deskripsi dari interaksi sistem dengan lingkungan sekitar. Analisa terhadap application domain dapat menciptakan detail informasi yang besar tetapi mempunyai nilai yang kecil dalam proses pengembangan, sehingga
untuk mencapai fokus yang relevan
digunakan use case. Use case adalah suatu pola interaksi antara sistem dan aktor dalam application domain. Pengertian aktor adalah abstraksi dari user atau sistem lain yang berinteraksi dengan sistem sistem target. 1. Overview, berisikan tabel aktor yang memperlihatkan aktor dan use case yang terlibat dalam interaksi. 2. Aktor, berisikan spesifikasi aktor untuk semua aktor. 3. Use Cases, berisikan spesifikasi use case atau diagram statechart untuk semua use case.
71
b. Fungsi, berisikan deskripsi dari fungsionalitas sistem. 1. Complete Function List, berisikan semua fungsi, termasuk jenis fungsi dan taksiran kompleksitas untuk masing-masing fungsi. Empat jenis fungsi yaitu: •
Fungsi update yang diaktifkan oleh event problem domain dan menghasilkan perubahan dalam state model.
•
Fungsi signal yang diaktifkan oleh perubahan dalam state model dan menghasilkan reaksi dalam konteks; reaksi ini dapat berupa display kepada aktor dalam application domain, atau dapat berupa intervensi langsung dalam problem domain.
•
Fungsi read yang diaktifkan oleh kebutuhan informasi di dalam kerja aktor dan menghasilkan sistem mendisplay bagian yang relevan dari model.
•
Fungsi compute yang diaktifkan oleh kebutuhan informasi di dalam kerja aktor dan terdiri dari perhitungan yang melibatkan informasi yang disediakan oleh aktor atau model.
2. Spesifikasi Fungsi, berisikan fungsi kompleks dalam detail yang relevan. c. User Interface, berisikan presentasi koheren persyaratan dari user interface sistem.
72
1. Dialogue style, berisikan gambaran presentasi dan dialog dan daftar lengkap elemen dalam user interface. 2. Overview, berisikan diagram navigasi untuk seluruh user interface. d. Technical Platform, kerangka platform teknis dan keluaran untuk sistem dan alat lain. 4. Rekomendasi, berisikan argumentasi untuk pengerjaan pengembangan selanjutnya. a. Kegunaan dan Kelayakan Sistem, berisikan taksiran terhadap hubungan persyaratan dengan lingkungannya dan kemungkinan kemungkinan teknis. b. Strategi,
yaitu
strategi
yang
diusulkan
untuk
pengerjaan
pengembangan selanjutnya. c. Ekonomi Pengembangan, yaitu memperkirakan sumber daya dan waktu yang dikonsumsi untuk pengerjaan pengembangan selanjutnya.
Dokumentasi perancangan adalah presentasi koheren dari hasil perancangan. Menurut Mathiassen et al. ( 2000, pp304-305 ) standar dokumentasi perancangan adalah sebagai berikut: 1. Tugas, berisikan deskripsi singkat tugas dan tujuan kualitas yang diformulasi.
73
a. Tujuan, berisikan tujuan keseluruhan dari proyek pengembangan sistem. b. Koreksi terhadap Analisa, berisikan koreksi kesalahan, modifikasi yang diperlukan, dan tambahan terhadap dokumen analisa. c. Tujuan Kualitas, berisikan ringkasan prioritas kriteria rancangan dan tujuan tambahan untuk arsitektur. 2. Technical Platform, berisi gambaran ringkas dari bahasa perancangan dan peralatan, software sistem, dan sistem tempat di mana sistem akan dikembangkan dan direalisasi. a. Peralatan, yaitu deskripsi peralatan yang relevan. b. Software sistem, berisikan deskripsi software sistem yang relevan. c. Interface sistem, berisikan deskripsi dari rancangan keluaran terhadap sistem
yang
mana
akan
berinteraksi
dengan
sistem
yang
dikembangkan. d. Bahasa perancangan, berisikan deskripsi bahasa perancangan yang digunakan dengan referensi dengan bahasan dan standar yang familiar. 3. Arsitektur, berisikan deskripsi strukturisasi sistem ke dalam komponen dan proses. Termasuk deskripsi perancangan arsitektur standar. a. Arsitektur Komponen, berisikan class diagram yang memperlihatkan strukturisasi sistem ke dalam komponen - komponen yang terkait.
74
b. Arsitektur Proses, berisikan deployment diagram yang memperlihatkan prosesor yang tersedia, objek yang aktif, dan koneksinya. c. Standar, berisikan standar perancangan yang digunakan. 4. Komponen, berisikan deskripsi model, fungsi, interface sistem, user interface, dan komponen lainnya. 5. Rekomendasi,
berisikan
rencana
substansi
untuk
pengerjaan
pengembangan selanjutnya. a. Kegunaan Sistem, berisikan evaluasi menyeluruh terhadap hubungan perancangan dengan konteks berdasarkan tujuan kualitas. b. Rencana
untuk
Penggunaaan
Awal,
berisikan
rencana
yang
direkomendasikan bagaimana sistem digunakan. c. Rencana Implementasi, berisi rencana yang direkomendasikan untuk realisasi sistem meliputi aktivitas dan perkiraan waktu dan konsumsi sumber daya.
3.4.7. Keunggulan dan Kelemahan Analisis dan Perancangan Berorientasi Objek 3.4.7.1.Keunggulan Analisis dan Perancangan Berorientasi Objek
Terdapat dua kemampuan sistem berorientasi objek ( McLeod, 2001, p613-614 ) yaitu :
75
1. Reusability
Kemampuan untuk menggunakan kembali pengetahuan dan kode program yang ada, dapat menghasilkan keunggulan saat suatu sistem baru dikembangkan atau sistem yang ada dipelihara atau direkayasa ulang. Setelah suatu objek diciptakan, ia dapat digunakan kembali, mungkin hanya dengan modifikasi kecil di sistem lain. Ini berarti biaya pengembangan yang ditanamkan di satu proyek dapat memberikan keuntungan bagi proyek - proyek lain. 2. Interoperability
Kemampuan untuk mengintegrasikan berbagai aplikasi dari beberapa sumber, seperti program yang dikembangkan sendiri dan perangkat lunak jadi, serta menjalankan aplikasi - aplikasi ini di berbagai platform perangkat keras.
Reusability dan interoperability menghasilkan empat keunggulan kuat ( McLeod, 2001, p614 - 615 ), yaitu: -
Peningkatan kecepatan pembangunan, karena sistem dirancang seperti dunia nyata melihatnya.
-
Pengurangan biaya pengembangan, karena pengembangan lebih cepat.
76
-
Kode berkualitas tinggi memberikan keandalan lebih besar dan ketangguhan yang lebih dibandingkan yang biasa ditemukan dalam sistem berorientasi proses.
-
Pengurangan biaya pemeliharaan dan rekayasa ulang sistem, karena kode yang berkualitas tinggi dan kemampuan pemakaian kembali.
3.4.7.2. Kelemahan Analisis dan Perancangan Berorientasi Objek
Beberapa kelemahan dari sistem berorientasi objek ( McLeod, 2001, p615 ) adalah: -
Diperlukan waktu lama untuk memperoleh pengalaman pengembangan.
-
Kesulitan metodologi untuk menjelaskan sistem bisnis yang rumit.
-
Kurangnya pilihan peralatan pengembangan yang khusus disesuaikan untuk sistem bisnis.