Upload
ngokhanh
View
234
Download
0
Embed Size (px)
Citation preview
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 :
{ }dhdtimefflyelapsefb deaddd *,*max += (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 :
⎭⎬⎫
⎩⎨⎧
= ∑∈pd
dppp bTAFBfmgNDPc ,*,*max (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
• ∑∈pd
db : 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
{ } Ppyp
Fiy
yc
pipp
Pppp
∈∈
∈=∑
∑
∈
∈
1,0
1
min
: (3)
dimana :
• yp : 1 jika pairing p merupakan penyelesaiannya dan yp = 0 jika bukan
• F : himpunan penggal penerbangan
• P : himpunan pairing
• p : memiliki nilai 1 pada baris i jika penerbangan i diterbangi oleh pairing p
• cp : biaya 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 :
{ }{ } Ppz
Ddx
Ddzx
Fix
zcxb
p
d
pdppd
didd
Dd Ppppdd
∈∈∈∈
∈=+−
∈=
+
∑
∑
∑ ∑
∈
∈
∈ ∈
1,01,0
0
1
ˆmin
:
:
(4)
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
pc : 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 Pp∈ , dan ∑
∈
=pdp
pd zx:
** . Dari pilihan y*, z*, serangkaian kendala
kedua pada rumus (4) terpenuhi. Ekuivalen partisi penerbangan dan tugas
terjadi dari :
39
∑ ∑ ∑ ∑∈ ∈ ∈ ∈
===did did pdp pip
ppd yzx: : : :
*** 1
Berdasarkan persamaan di atas, dapat dibuktikan bahwa penyelesaian y* dan
x*, z* memberikan batasan programa linier yang sama. Jika ∑∈
=+pd
ppd ccb ˆ
untuk semua pairing p. Fungsi tujuan rumus (3) dapat dinyatakan dengan :
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 :
∑∈
∈=id
d Fix:
1
Pada subproblem, diperoleh perumusan problem utama ( master problem )
sebagai berikut :
∑ ∑
∑ ∑ ∑
∑ ∑ ∑
∈ ∈
∈ ∈ ∈
∈ ∈ ∈
+=
+=
+=
Pp Ddddpp
Pp Dd pdppdpp
Pp Pp pdpdppp
xbzc
zbzc
zbcyc
**
:
**
**
ˆ
ˆ
)ˆ(
40
{ }{ } Ppz
Ssw
Ddzw
w
zcwC
p
s
Ss Ppps
Sss
Pppp
Ssss
∈∈∈∈
∈=+−
=
+
∑ ∑
∑
∑∑
∈ ∈
∈
∈∈
1,01,0
0
1
ˆmin
(5)
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, ∑∈sd
db .
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 :
SszSsw
Ddzw
w
zcwC
p
s
Ss Ppps
Sss
Ss Ppppss
∈≥∈≥
∈=+−
=
+
∑ ∑
∑
∑ ∑
∈ ∈
∈
∈ ∈
00
0
1
ˆmin
(6)
Teorema 2
Batas dari rumus (6) adalah lebih besar atau sama dengan batas dari relaksasi
program linier dari (4) atau (3).
Bukti
Diketahui ( )zw ˆ,ˆ merupakan penyelesaian relaksasi programa linier dari
perumusan (6). Kemudian dapat dibuat sebuah penyelesaian ( x*, z* ) terhadap
relaksasi programa linier dari (4) dengan ∑∈
=sds
sd wx:
* ˆ dan pp zz ˆ* = . Dapat
diketahui bahwa kendala kedua perumusan (4) dipenuhi oleh x*, z*. Untuk
kendala pertama, dapat dinyatakan :
∑ ∑∑ ∑∈ ∈ ∈ ∈
===did did sds Ss
ssd wwx: : :
* 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 :
∑∑∈∈
=Pp
ppPp
pp zczc *ˆˆˆ
dan
∑∑∑∑∑∑∈∈ ∈∈ ∈∈
===Dd
ddDd sds
sdSs sd
sdSs
ss xbwbwbwC *
:
ˆˆˆ
Penyelesaian programa linier ( x*, z* ) terhadap rumus (4) adalah
sedemikian rupa sehingga x* terdapat dalam :
{ }⎭⎬⎫
⎩⎨⎧
∈∈∈== ∑∈
DdxFixxconvPd ddid
d 1,0;1::
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 sw sebagai bobot vektor yang mewakili
himpunan s untuk semua s, dalam kombinasi konveks yang memberikan x*
dan menjadikan *ˆ pp zz = . Karena x* adalah kombinasi konveks titik – titik
43
integer pada Pd, maka ∑∈
=sds
sd wx:
* ˆ 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 ∑∈
=Sds
sd wx:
* ˆ untuk semua
tugas d. Oleh karena itu, tidak terdapat penyelesaian ( )zw ˆ,ˆ terhadap (6)
dengan *ˆ pp zz = untuk semua Pp∈ . Dengan demikian, untuk beberapa
fungsi tujuan, (6) memberikan batas programa linier yang lebih kuat
dibanding (4) dan (3).
Jika ( ) σπ <+∑∈sd
ddb 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 :
bebas
Ppc
SsC
dd
pdsd
Sdsd
πσ
π
πσ
σσ
,
ˆ
maxmax
∑
∑
∈
∈
∈≤
∈≤− (7)
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
( ) σπ <+∑∈sd
ddb di mana σ adalah nilai fungsi tujuan pada (7) dan (6).
Kolom pairing perlu dihasilkan lagi jika Ppcpd
sd ∈>∑∈
ˆπ .
Kemungkinan perlu tidaknya untuk menghasilkan himpunan periode
tugas lagi, dapat diidentifikasi dengan menyelesaikan subpermasalahan partisi
set seperti yang dirumuskan berikut :
( )
{ } Ddx
Fix
xb
d
didd
dDd
dd
∈∈
∈=
+
∑
∑
∈
∈
1,0
1
min
:
π
(8)
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 subpermasalahan pairing adalah dengan
menggunakan rumus dasar ∑∈
∈>pd
pd Ppcπ . Perhitungan dilakukan
dengan mengurangi, pc , dengan ∑∈pd
dπ 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 1 2 … n
1 c11 c12 … c1n 1 2 c21 c22 … c2n 1
Pekerjaan . . . . . . . . . . . . . . . m cm1 cm2 … cmn 1 1 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 :
⎩⎨⎧
−−−−
=jkemepadaditugaskanikejaanpejika
jkemepadaditugaskantidakikejaanpejikaxij sinker,1
sinker,0
Dengan demikian, model persoalan penugasan ini adalah :
Minimumkan : ∑∑= =
=n
i
n
jijij xcz
1 1
52
Berdasarkan pembatas :
10
...,,2,1,1
...,,2,1,11
ataux
njx
nix
ij
n
jiij
n
jij
=
==
==
∑
∑
=
=
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 :
takonszzmakaxxKarena
xqxpxc
xiqpcxcz
j iijij
j j iijjij
i j iiijij
i jjjiijij
i jij
tan',1
)(''
−===
−−=
−−==
∑ ∑
∑ ∑ ∑∑∑ ∑
∑∑∑∑
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 2 3 1 5 7 9
1
Pekerjaan 2 14 10 12
1
3 15 13 16
1
1 1 1
Tabel 3.3. Solusi Awal Contoh Persoalan Penugasan
Mesin 1 2 3 1 5 7 9
1
1
Pekerjaan 2 14 10 12
1
1
3 15 13 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 0 2 4 p1 = 5 2 4 0 2 p2 = 10 3 2 0 3 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 4 6 3 2 9 7 10 9 3 4 5 11 7 4 8 7 8 5
Dengan proses pengurangan seperti di atas diperoleh :
Tabel 3.7. Proses Pengurangan ( 1 )
1 2 3 4 1 0 3 5 2 2 2 0 3 2 3 3 1 7 3 4 0 2 3 0
Tabel 3.8. Proses Pengurangan ( 2 )
1 2 3 4 1 0 3 2 2 2 2 0 0 2 3 3 1 4 3 4 0 2 0 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 3 2 2 2 2 0 0 2 3 3 1 4 3 4 0 2 0 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 ter-
enkapsulasi, 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.