bab 2 landasan teori -...
TRANSCRIPT
BAB 2
LANDASAN TEORI
2.1 Leasing
2.1.1 Pengertian Leasing
Pengertian leasing dari beberapa sumber adalah sebagai berikut :
• Financial Accounting Standard Board (FASB 13)
Leasing adalah suatu perjanjian penyediaan barang – barang
modal yang digunakan untuk suatu jangka waktu tertentu.
• The International Accounting Standard (IAS 17)
Leasing adalah suatu perjanjian di mana pemilik aset atau
perusahaan sewa guna usaha (lessor) menyediakan barang atau
aset dengan hak penggunaan kepada penyewa guna usaha (lessee)
dengan imbalan pembayaran swa untuk suatu jangka waktu
tertentu.
• The Equipment Leasing Association (ELA-UK)
Leasing adalah suatu kontrak antara lessor dengan lessee untuk
penyewaan suatu jenis barang atau aset tertentu secara langsung,
dari pabrik atau agen penjual oleh lessee. Hak kepemilikan barang
tersebut tetap berada pada lessor. Lessee memiliki hak pakai atas
barang tersebut dengan membayar sewa dengan jumlah dan
jangka waktu yang telah ditetapkan.
16
• Keputusan Bersama Menteri Keuangan, Menteri Perindustrian
dan Menteri Perdagangan Nomor Kep. 122/MK/TV/74, Nomor
32/M/SK/2174, Nomor 30/KPB/I/74 Tanggal 7 Januari 1974
Leasing adalah setiap kegiatan pembiayaan perusahaan dalam
bentuk penyediaan barang – barang modal untuk digunakan oleh
suatu perusahaan untuk suatu jangka waktu tertentu, berdasarkan
pembayaran – pembayaran berkala disertai dengan hak pilih bagi
perusahaan tersebut untuk membeli barang – barang modal yang
bersangkutan atau memperpanjang jangka waktu leasing
berdasarkan nilai sisa yang telah disepakati bersama.
• Keputusan Menteri Keuangan Nomor 1169/KMK.01/1991
Tanggal 21 November 1991 Tentang Kegiatan Sewa Guna Usaha
(Leasing)
Leasing adalah kegiatan pembiayaan dalam bentuk penyediaan
barang modal baik secara leasing dengan hak opsi (finance lease)
maupun leasing tanpa hak opsi atau sewa guna usaha biasa
(operating lease) untuk digunakan oleh lessee selama jangka
waktu tertentu berdasarkan pembayaran secara berkala. Yang
dimaksud dengan finance lease adalah kegiatan leasing dimana
lessee pada akhir kontrak mempunyai hak opsi untuk membeli
objek leasing berdasarkan nilai sisa yang disepakati. Sedangkan
yang dimaksud dengan operating lease adalah kegiatan leasing
dimana lessee pada akhir kontrak tidak mempunyai hak opsi
untuk membeli objek leasing.
17
2.1.2 Pihak yang Terkait dengan Leasing
Menurut Sigit Triandaru dan Totok Budisantoso (2006, p191), dalam
transaksi leasing sekurang – kurangnya melibatkan 4 pihak yang berkepentingan,
antara lain :
• Lessor
Yaitu perusahaan leasing atau pihak yang memberikan jasa
pembiayaan kepada pihak lessee dalam bentuk barang modal.
Dalam finance lease, lessor bertujuan untuk mendapatkan
kembali biaya yang telah dikeluarkan untuk membiayai
persediaan barang modal dengan mendapatkan keuntungan.
Sedangkan dalam operating lease, lessor bertujuan untuk
mendapatkan keuntungan dari penyediaan barang dan pemberian
jasa – jasa yang berkenaan dengan pemeliharaan dan
pengoperasian barang modal tersebut.
• Lessee
Yaitu perusahaan atau pihak yang memperoleh pembiayaan dalam
bentuk barang modal dari lessor. Dalam finance lease, lessee
bertujuan mendapatkan pembiayaan berupa barang atau peralatan
dengan cari pembayaran angsuran atau secara berkala. Sedangkan
dalam operationg lease, lessee bertujuan dapat memenuhi
kebutuhan peralatannya di samping tenaga operator dan
perawatan alat tersebut tanpa resiko bagi lessee terhadap
kerusakan.
18
• Supplier
Yaitu perusahaan atau pihak yang mengadakan atau menyediakan
barang untuk dijual kepasa lessee dengan pembayaran secara
tunai oleh lessor. Dalam finance lease, pemasok langsung
menyerahkan barang kepada lessee tanpa melalui pihak lessor
sebagai pihak yang memberikan pembiayaan. Sedangkan dalam
operational lease, pemasok menjual barangnya langsung kepada
lessor dengan pembayaran sesuai dengan kesepakatan kedua
belah pihak baik secara tunai maupun secara berkala.
• Bank atau Kreditor
Dalam suatu perjanjian atau kontrak leasing, pihak bank atau
kreditor tidak terlibat secara langsung dalam kontrak tersebut,
tetapi bank memegang peranan dalam hal penyediaan dana
kepada lessor.
2.1.3 Mekanisme Leasing
Menurut Sigit Triandaru dan Totok Budisantoso (2006, p192),
mekanisme transaksi leasing adalah seperti gambar berikut :
19
Gambar 2.1 Mekanisme Leasing
Keterangan gambar :
1. Lessee menghubungi pemasok untuk pemilihan dan penentuan
jenis barang, spesifikasi, harga, jangka waktu penagihan, dan
jaminan purna jual atas barang yang akan disewa.
2. Lessee melakukan negosiasi dengan lessor mengenai kebutuhan
pembiayaan barang modal. Dalam hal ini, lessee dapat meminta
lease quotation yang tidak mengikat dari lessor. Dalam quotation
terdapat syarat – syarat pokok pembiayaan leasing, antara lain :
keterangan barang, harga barang, cash security deposit, residual
value, asuransi, biaya administrasi, jaminan uang sewa (lease
rental), dan persyaratan – persyaratan lainnya.
3. Lessor mengirimkan letter of offer atau commitment letter kepada
lessee yang berisi syarat – syarat pokok persetujuan lessor untuk
membiayai barang modal yang dibutuhkan. Lessee
menandatangani dan mengembalikannya kepada lessor.
20
4. Penandatanganan kontrak leasing dilakukan setelah semua
persyaratan dipenuhi lessee dimana kontrak tersebut mencakup
hal – hal : pihak – pihak yang terlibat, hak milik, jangka waktu,
jasa leasing, opsi bagi lessee, penutupan asuransi, tanggung jawab
atas objek leasing, perpajakan jadwal pembayaran angsuran sewa
dan sebagainya.
5. Pengiriman order beli kepada pemasok disertai instruksi
pengiriman barang kepada lessee sesuai dengan tipe dan
spesifikasi barang yang telah disetujui.
6. Pengiriman barang dan pengecekan barang oleh lessee sesuai
pesanan serta menandatangani surat tanda terima dan perintah
bayar yang selanjutnya diserahkan kepada pemasok.
7. Penyerahan dokumen oleh pemasok kepada lessor termasuk
faktur dan bukti – bukti kepemilikan barang lainnya.
8. Pembayaran oleh lessor kepada pemasok.
9. Pembayaran sewa (lease payment) secara berkala oleh lessee
kepada lessor selama masa leasing yang seluruhnya mencakup
pengembalian jumlah yang dibiayai beserta bunganya.
2.2 Sistem Informasi
2.2.1 Pengertian Data
Menurut Turban (2009, p6), data merupakan fakta-fakta mentah atau
deskripsi dasar dari konsep-konsep, kejadian-kejadian, kegiatan-kegiatan, dan
transaksi yang dapat ditangkap, direkam, disimpan, dikelompokkan, tetapi tidak
21
terorganisir dalam membawakan suatu arti tertentu. Jadi data merupakan bentuk
yang masih mentah yang belum memiliki arti banyak, sehingga masih perlu
diolah lebih lanjut untuk menghasilkan informasi.
2.2.2 Pengertian Sistem
Menurut McLeod (2001, p15), sistem adalah sekelompok elemen yang
terintegrasi dengan tujuan yang sama untuk mencapai suatu tujuan. Sistem terdiri
dari dua jenis, yaitu sistem terbuka dan sistem tertutup. Sistem terbuka adalah
sistem yang dihubungkan dengan lingkungannya melalui arus sumber daya.
Sedangkan Sistem tertutup adalah sistem yang tidak lagi dihubungkan dengan
lingkungannya.
Menurut O’Brien (2003, p8), sistem merupakan sistem adalah
sekelompok komponen yang berhubungan yang bekerja sama untuk tujuan yang
sama dengan menerima input dan menghasilkan output dalam proses
transformasi yang terorganisir.
Model dasar dari sistem adalah :
• Input
Adalah sekumpulan data yang berasal dalam maupun luar
organisasi yang akan digunakan untuk proses sistem informasi.
• Process
Adalah kegiatan konversi, manipulasi, dan analisis data input
menjadi informasi yang lebih berharga bagi manusia.
22
• Output
Adalah kegiatan mendistribusikan informasi kepada orang atau
kegiatan yang memerlukannya.
Konsep sistem akan menjadi lebih berguna dengan memasukan dua
komponen tambahan, yaitu feedback dan control. Sistem yang memiliki
komponen feedback dan control seringkali disebut dengan sistem cybernetic,
yaitu sistem yang mampu memonitor dan mengatur dirinya sendiri.
• Feedback
Adalah data tentang kinerja dari sistem. Contohnya, data tentang
kinerja penjualan merupakan feedback sales manajer penjualan.
• Control
Control mencakup memonitor dan mengevaluasi feedback untuk
menentukan apakah suatu sistem bekerja seperti apa yang
diharapkan. Dengan adanya komponen control, maka dapat
dilakukan penyesuaian pada input dan proses, untuk
menghasilkan output yang diharapkan.
2.2.3 Pengertian Informasi
Menurut McLeod (2001, p12), informasi merupakan data yang telah
diproses atau data yang telah memiliki arti. Menurut O’Brien (2003, p13),
informasi adalah data yang telah mengalami proses konversi sehingga menjadi
lebih berarti dan berguna bagi pemakai.
23
Menurut McLeod (2001, p145), terdapat empat dimensi informasi, yaitu :
• Ketepatan waktu
Informasi harus dapat tersedia ketika dibutuhkan untuk
memecahkan suatu masalah.
• Kelengkapan
Informasi yang dapat diperoleh harus dapat memberikan
gambaran yang lengkap dari suatu permasalah, sehingga dapat
memberikan penyelesaian yang tepat pula.
• Akurasi
Informasi harus akurat untuk menunjang sistem yang akurat pula.
Akurasi selalu dibutuhkan untuk menghasilkan output yang benar,
terutama pada aplikasi-aplikasi tertentu seperti aplikasi yang
melibatkan keuangan.
• Relevansi
Informasi harus berkaitan langsung dengan masalah yang
dihadapi. Seorang manajer harus mampu memilih informasi yang
diperlukan untuk memecahkan suatu masalah.
2.2.4 Pengertian Sistem Informasi
Menurut McLeod (2001, p4), sistem informasi adalah suatu kombinasi
dari manusia, perangkat lunak, perangkat keras, jaringan komunikasi, dan
sumber daya data yang terintegrasi untuk mengumpulkan, mentransformasikan,
serta menyebarkan informasi dalam sebuah organisasi.
24
Menurut Turban (2009, p31), sistem informasi merupakan suatu sistem
yang mengumpulkan, memproses, menyimpan, menganalisis, dan menyebarkan
informasi untuk tujuan tertentu. Sistem informasi berbasis komputer adalah suatu
sistem informasi yang menggunakan teknologi komputer untuk mengerjakan
sebagian atau semua pekerjaan. Walaupun tidak semua sistem informasi
terkomputerisasi, namun saat ini hampir seluruhnya telah terkomputerisasi.
2.3 Sistem Informasi Geografi
2.3.1 Pengertian Sistem Informasi Geografi
Menurut Turban (2009, p277), sistem informasi geografi adalah teknologi
visualisasi data yang menangkap, menyimpan, memeriksa, menggabungkan,
memanipulasi, dan menampilkan data melalui peta yang digital. Secara garis
besar dapat dikatakan bahwa sistem informasi geografi dapat merepresentasikan
gambaran dunia nyata (peta) di atas monitor komputer dan ditambah dengan
kemampuan analisisnya.
Sedangkan menurut ESRI (http://www.gis.com/whatisgis), sistem
informasi geografis adalah suatu kumpulan yang terorganisir dari perangkat
keras komputer (hardware), perangkat lunas (software), data geografis dan
personil yang dirancang secara efisien untuk memperoleh, menyimpan,
memperbaharui, memanipulasi, menganalisis, dan menampilkan semua bentuk
informasi yang beresensi geografis.
25
2.3.2 Peta
Peta adalah suatu gambaran konvensional tentang pola – pola
kenampakan yang ada di permukaan bumi seolah – olah dilihat dari atas dan
ditambah dengan nama – nama untuk identifikasinya (Gunawan et al, 2007, p4).
Peta, menurut pengertian dari ICA (International Cartographic
Association), adalah suatu kenampakan nyata yang dipilih di permukaan bumi
atau benda – benda angkasa, atau kenampakan – kenampakan abstrak yang ada
di permukaan bumi, dan pada umumnya digambar pada suatu bidang datar dan
diperkecil dengan skala.
2.3.3 Model Data Peta
Menurut Prahasta (2002, p109), model data peta adalah notasi untuk
mendeskripsikan dan mengorganisasikan data dari sistem yang sedang diamati.
Model data peta yang digunakan dapat dibagi menjadi :
1. Titik (Node)
Merupakan representasi grafis yang paling sederhana untuk suatu
objek. Representasi ini tidak memiliki dimensi tetapi dapat
diidentifikasikan di atas peta dan ditampilkan pada layar monitor
dengan menggunakan simbol-simbol (Prahasta, 2002, p111). Jadi
model data peta berupa titik ini dapat dikatakan sebagai node pada
graph.
2. Garis
Merupakan bentuk linier yang menghubungkan titik-titik untuk
merepresentasikan objek-objek satu dimensi (Prahasta, 2002, p112).
26
Berdasarkan definisi sebelumnya maka garis merupakan bentuk
perwujudan dari edge pada suatu graph.
2.3.4 Graph
2.3.4.1 Pengertian Graph
Menurut Johnsonbaugh (2009, p378), suatu graph (undirected graph)
yang bila dinotasikan adalah G = (V, E), terdiri dari:
• Kumpulan node (simpul) atau verteks V.
• Kumpulan edge E dimana edge merupakan penghubung antara node
yang ada dalam graph.
Contoh graph:
Gambar 2.2 Contoh Graph
Graph dapat digunakan secara efektif untuk merefleksikan suatu
hubungan antar kota dalam suatu negara. Dalam hal ini, setiap kota didefinisikan
dengan node dan jarak yang menghubungkan kota-kota tersebut didefinisikan
dengan edge.
A
C D
B
E
27
2.3.4.2 Graph Berarah (Directed Graph)
Menurut Johnsonbaugh (2009, p378), graph berarah (directed graph)
merupakan graph yang setiap edge-nya memiliki orientasi arah tertentu terhadap
node yang saling terhubung. Suatu graph berarah (directed graph atau disebut
juga digraph) dinotasikan seperti e = (u,v). Hal itu dapat dijelaskan sebagai
berikut:
• Terdapat suatu edge yang menghubungkan node u ke node v.
• Node u adalah node awal dan node v adalah node akhir.
Gambar 2.3 Contoh Directed Graph
2.3.4.3 Graph Bernilai (Weighted Graph)
Menurut Johnsonbaugh (2009, p378), weighted graph merupakan graph
yang selain memiliki arah, juga memiliki berat atau nilai yang dituliskan pada
edge-nya. Nilai ini merepresentasikan jarak antara satu node ke node lain.
Dengan demikian pemberian nilai pada edge dapat digunakan untuk menghitung
total keseluruhan jarak yang harus ditempuh dari node awal ke node tujuannya.
1
3
2
4
5
28
Gambar 2.4 Contoh Graph Bernilai
2.3.5 Perbandingan Keuntungan Data Digital Dengan Data Analog
Keuntungan dari data digital dengan data analog dijabarkan pada tabel di
bawah ini (http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm) :
Tabel 2.1 Perbandingan keuntungan antara data digital dan data analog
Digital Analog
Mudah diupdate Harus mengubah seluruh peta jika ada
perubahan.
Transfer data mudah dan cepat
(melalui internet)
Transfer data lambat ( harus melalui pos)
Media penyimpanan yang diperlukan
adalah relatif kecil (alat-alat digital)
Media penyimpanan yang diperlukan adalah
relatf besar (perpustakaan peta tradisional)
Mudah untuk dipelihara Peta kertas tidak terintegrasi (sulit untuk
dipelihara)
Mudah dianalis dengan automatis Sulit dan tidak akurat untuk dianalisis
(contohnya untuk mengukur area dan jarak)
3
3
3
53
4
41
3
2
4
5
29
2.4 Algoritma
2.4.1 Pengertian Algoritma
Berdasarkan buku Computer Algorithms/C++ (Horowitz et al, 1998, p1)
terdapat beberapa pengertian mengenai algoritma, antara lain:
• Algoritma adalah metode yang dapat dipakai oleh komputer untuk
menyelesaikan suatu masalah. Pengertian ini pertama kali
dikemukakan oleh Abu Ja’far Mohammad ibn Musa al Khowarizmi
dari Persia pada bukunya yang berjudul Kitab al-jabr w’al-muqabala
(Rules of Restoration and Reduction).
• Algoritma adalah urut-urutan terbatas dari operasi-operasi yang
terdefinisi dengan baik yang masing-masing membutuhkan memori
dan waktu yang terbatas untuk menyelesaikan suatu masalah.
• Algoritma adalah sekumpulan instruksi yang harus dijalankan dan
harus berakhir prosesnya dengan mengeluarkan suatu keluaran.
Dari beberapa pengertian diatas dapat ditarik suatu kesimpulan bahwa
algoritma adalah urutan langkah-langkah penyelesaian masalah yang disusun
secara sistematis.
2.4.2 Analisis Algoritma
Menurut Jhonsonbaugh (2009, p193), analisis algoritma adalah suatu
proses untuk menentukan waktu dan ruang yang dibutuhkan untuk mengeksekusi
sebuah algoritma. Algoritma dirancang untuk bekerja dengan menerima masukan
dalam jumlah tertentu.
30
Menurut Horowitz (1998, p12), efesiensi atau kompleksitas dari
algoritma dapat ditentukan dari waktu yang dibutuhkan untuk mengeksekusi
sejumlah instruksi yang dilakukan (time complexity) dan memori yang
dibutuhkan (space complexity) berdasarkan jumlah input tertentu.
Menurut Jhonsonbaugh (2009, p194), ada 3 jenis waktu eksekusi pada
analisis algoritma:
1. Best-case time, yaitu waktu minimum yang dibutuhkan untuk
mengeksekusi algoritma dengan semua inputan berukuran n.
2. Worst-case time, yaitu waktu maksimum yang dibutuhkan untuk
mengeksekusi algoritma dengan semua inputan berukuran n.
3. Average-case time, yaitu waktu rata-rata yang dibutuhkan untuk
mengeksekusi algoritma dengan semua inputan berukuran n.
Menurut Horowitz (1998, p12), terdapat dua cara utama dalam
menganalisis suatu algoritma, yaitu :
1. Analisis Perkiraan Priori (priori estimate)
Merupakan analisis untuk mendapatkan waktu proses dalam bentuk
fungsi matematik. Analisis ini dilakukan sebelum algoritma tersebut
diproses dengan suatu komputer, fungsi waktu ini disimbolkan
dengan notasi O (notasi big oh).
2. Analisis Pengujian Posteriori (posteriori testing)
Merupakan analisis untuk mendapatkan waktu proses aktual dari
suatu algoritma. Hal ini dilakukan pada saat algoritma diproses oleh
komputer.
31
2.4.3 Kompleksitas Algoritma
Menurut Horowitz (1998, p33), mengetahui kompleksitas suatu program
sangat menentukan dalam menentukan berapa kebutuhan waktu untuk
memproses suatu algoritma. Asumsikan jika terdapat dua program (P dan Q),
dimana P memiliki kompleksitas O(n) dan Q memiliki kompleksitas O(n2), maka
dapat dipastikan kalau P akan lebih cepat dari Q untuk nilai n yang cukup besar.
Namun dalam menentukan kompleksitas mana yang akan dipilih, kita
perlu mengetahui berapa nilai n yang akan kita temukan. Contohnya, jika
program P berjalan dalam kecepatan 106n miliseconds, sedangkan program Q
berjalan dalam kecepatan 2n miliseconds, maka jika nilai n adalah ≤ 106, dan
kondisi yang lainnya adalah sama, program yang lebih baik adalah program Q.
Berikut adalah tabel pertumbuhan fungsi n.
Tabel 2.2 Fungsi Pertumbuhan n
Log n n n log n n2 n3 2n
0 1 0 1 1 2
1 2 2 4 8 4
2 4 8 16 64 16
3 8 24 64 512 256
4 16 64 256 4.096 65.536
5 32 160 1.024 32.768 4.294.967.296
32
2.5 Jaringan
2.5.1 Minimal Spanning Tree
Menurut Taha (2003, p215), minimal spanning tree digunakan untuk
menghubungkan node – node dalam jaringan secara langsung maupun tidak
langsung sehingga menghasilkan panjang terpendek untuk semua cabangnya.
Algoritma ini biasanya digunakan dalam konstruksi jalan yang menghubungkan
beberapa kota.
Langkah yang digunakan adalah sebagai berikut:
Step 0. Set C0 = Ǿ dan ĉ0 = N.
Step 1. Mulai dengan semua node, i, dalam ĉ0 yang tidak terhubung dan jadikan
C1 = {i}, dimana ĉ1 = N – {i}. Jadikan k = 2.
Step k. Pilih sebuah node, j*, dalam himpunan ĉk-1 yang tidak terhubung
memiliki jarak terpendek pada himpunan Ck-1 dan hapus node tersebut
dari Ck-1. Sehingga :
Ck = Ck-1 + {j*}, ĉk = ĉk-1 – {j*}
Jika himpunan node yang tidak terhubung pada ĉk kosong, selesai. Jika
tidak, jadikan k = k + 1 dan ulangi langkah tersebut.
Berikut adalah contoh persoalan dalam permasalahan minimal spanning
tree. Gambar di bawah ini menunjukkan hubungan kabel dalam suatu
perusahaan.
33
Gambar 2.5 Contoh Kasus Minimal Spanning Tree
Penyelesaiannya adalah sebagai berikut :
Gambar 2.6 Penyelesaian Untuk Minimal Spanning Tree Iterasi 1-2
34
Gambar 2.7 Penyelesaian Untuk Minimal Spanning Tree Iterasi 3-4
Gambar 2.8 Penyelesaian Untuk Minimal Spanning Tree Iterasi 5-6
2.5.2 Metode Shortest Path
2.5.2.1 Pengertian Shortest Path
Menurut Horowitz (1998, p241), pengertian shortest-path adalah
pencarian rute atau path terpendek dari node yang ada pada graph. Hasil dari
shortest-path yaitu biaya (cost) yang dihasilkan adalah yang paling minimum.
35
Cost dari shortest path dapat dihitung dari total nilai minimum yang ada pada
edge-nya.
Dalam mencari shortest path, hasil didapatkan setelah melewati node –
node tertentu, sampai akhirnya tujuan akhir node dapat dicapai. Untuk itu,
pencarian bukan hanya dilakukan dengan 1 alternatif, namun bisa ada kalanya
shortest path tersebut baru dapat ditemukan setelah membandingkan beberapa
alternatif untuk mencapai tujuan
2.5.2.2 Single Source Shortest Path
Menurut Horowitz (1998, p241), single source shortest path adalah jarak
terpendek dari setiap verteks tunggal pada graph berarah yang berbobot menuju
verteks tujuan tertentu. Disebut single source karena membutuhkan satu titik
sebagai awal pencarian. Algoritma yang termasuk single source shortest path ini
adalah Algoritma Dijkstra dan Bellman Ford.
2.5.2.3 Algoritma Dijkstra
Algoritma Dijkstra digunakan untuk menemukan path bernilai terkecil
dari verteks awal tunggal ke semua verteks pada graph. Algoritma ini ditemukan
oleh Edsgar Wybe Dijkstra (Horowitz et al, 1998, p243). Algoritma ini akan
melihat verteks yang terdeteksi dengan verteks awal, melihat successor dari
verteks tersebut kemudian memperbarui jaraknya dari awal, demikian seterusnya
sampai verteks tujuan berhasil ditemukan. Hasilnya pasti berupa jalur terpendek.
36
Jika dimisalkan ui adalah jarak terpendek dari node awal ke node ke-i,
dan ditentukan kalau dij ( ≥ 0 ) merupakan panjang jalur antara node ke-i dengan
node ke-j, maka algoritma untuk menentukan label node penerus berikutnya
dapat dirumuskan menjadi (Taha, 2003, p225) :
[uj,i] = [uj + dij , i] , dij ≥ 0
Label untuk node awal adalah [ 0, - ], menyatakan kalau node tersebut tidak
memiliki predecessor.
Label node dalam Dijkstra terbagi menjadi dua tipe, yaitu temporary dan
permanent. Node yang temporary akan diubah menjadi permanent ketika rute
yang terpendek telah ditemukan. Jika tidak ada rute terbaik yang dapat
ditemukan pula, maka status temporary juga akan berubah menjadi permanent.
Langkah 0. Labelkan node awal menjadi permanent [ 0, - ]. Nilai i adalah 1.
Langkah i. (a) Hitung temporary label [ ui + dij , i ] untuk setiap node j yang
dapat dicapai dari node ke-i, yang belum dilabelkan permanent. Jika
node j telah dilabelkan dengan [ uj , k ] melalui node lain ( k ), dan
jika ui + dij < uj, ubah nilai [uj , k] dengan [ ui + dij , i ].
(b) Jika semua node telah menjadi permanent, maka proses selesai.
Jika belum, maka pilih label [ur , s] yang memiliki jarak terpendek
(=ur) di antara label yang temporary. Nilai i = r, dan ulangi langkah
ke-i.
37
Gambar 2.9 Contoh Gambar untuk Algoritma Dijkstra
Langkah 0. Jadikan node 1 menjadi permanent [ 0, - ]
Langkah 1. Node 2 dan 3 dapat dicapai dari node 1. List dari node yang terkait
adalah seperti berikut :
Node Label Status
1 [0,-] Permanent
2 [0 + 100, 1] = [100, 1] Temporary
3 [0 + 30, 1] = [30, 1] Temporary
Dari dua temporary label di atas, node 3 memiliki jarak yang lebih
pendek, maka status dari node ke-3 berubah menjadi permanent.
Langkah 2. Node 4 dan node 5 dapat dicapai dari node 3. Maka list node yang
terkait adalah sebagai berikut :
38
Node Label Status
1 [0,-] Permanent
2 [100, 1] Temporary
3 [30, 1] Permanent
4 [30 + 10, 3] = [40, 3] Temporary
5 [30 + 60, 3] = [90, 3] Temporary
Status dari node ke-4 berubah menjadi permanent.
Langkah 3. Node 2 dan Node 5 dapat dicapai dari node 4. Maka list node yang
terkait adalah sebagai berikut :
Node Label Status
1 [0,-] Permanent
2 [40 + 15, 4] = [55, 4] Temporary
3 [30, 1] Permanent
4 [40, 3] Permanent
5 [90, 3] or [40 + 50, 4] = [90, 4] Temporary
Di sini terlihat, node 2 yang temporary labelnya memiliki jarak 100,
diubah menjadi [55, 4], yang menandakan kalau ada rute yang lebih
pendek, yaitu melalui node 4. Kemudian status node 2 berubah
menjadi permanent.
Langkah 4. Hanya node 3 yang dapat dicapai dari node 2, sedangkan node 3
telah permanent, dan statusnya tidak dapat diubah. List node yang
ada sama seperti langkah 3, hanya node 2 sekarang telah berubah
39
menjadi permanent. Sekarang hanya ada node 5 yang masih
temporary, dan statusnya diubah menjadi permanent. Selesai.
Pseudocode untuk algoritma Dijkstra (Horowitz, 1998, p244) adalah
sebagai berikut :
1 DijkstraShortestPaths(int v, float const[][SIZE],
2 float dist[], int n)
3 // dist[j], 1<=j<=n is set to the length of the
4 // shortest path from vertex v to vertex j in a
5 // digraph G with n vertices. dist[v] is set to
6 // zero. G is represented by its cost adjacency
7 // matrix cost[1:n][1:n]
8 {
9 int u; bool S[SIZE];
10 for (int i=1; i<=n; i++) { // Initialize S.
11 S[i] = false; dist[i] = cost[v][i];
12 }
13 S[v] = true; dist[v] = 0.0; // Put v in S.
14 for (int num = 2; num < n; num++ ){
15 // Determine n-1 paths from v.
16 choose u from among those vertices not
17 in S such that dist[u] us minimum;
18 S[u] = true; // Put v in S.
19 for (int w=1; w<=n; w++) // Update distances.
20 if ((S[q]==false && (dist[w]>dist[u]+cost[u][w]))
21 dist[w] = dist[u] + cost[u][w];
22 }
23 }
40
2.5.2.4 Algoritma Bellman – Ford
Menurut Horowitz (1998, p270), Algoritma Bellman Ford adalah
algoritma untuk menemukan shortest path dari suatu verteks awal menuju semua
verteks yang ada pada graph berarah yang berbobot. Algoritma ini menggunakan
rumus:
distk [u] = min {distk-1 [u], min {distk-1 [i] + cost [i] [u]}}
n = jumlah node
k = 2,3,…n-1
Hasil dari perhitungan rumus diatas dimasukkan dalam suatu tabel,
sehingga pada iterasi tertentu akan dapat dilihat jarak terpendeknya.
Gambar 2.10 Contoh Graph untuk Algoritma Bellman Ford
k=1
Pada k = 1 dilakukan inisialisasi jarak pada node yang langsung terhubung ke
node asal (node 1) sehingga didapatkan:
dist1 [1] = 0, dist [2] = 10, dist1 [3] = ~, dist1 [4] = 30, dist1 [5] =100
20
5010
50
30
10010
43
52
1
41
Tabel 2.3 Iterasi Algoritma Bellman Ford Untuk k = 1
dist k [1…5] k
1 2 3 4 5
1 0 10 ~ 30 100
2 ~ ~ ~ ~ ~
3 ~ ~ ~ ~ ~
4 ~ ~ ~ ~ ~
k = 2
untuk i = 2, 3, 4, 5 dan u = 1
dist2 [1] = min {dist1 [1], min {dist1 [i] + cost [i][1]}}
= min {0, 10 + ~, ~ + ~, 30 + ~, 100 + ~} = 0
untuk i = 1, 3, 4, 5 dan u = 2
dist2 [2] = min {dist1 [2], min {dist1 [i] + cost [i,2]}}
= min {10, 0+10, ~+~, 30+~, 100+~} = 10
untuk i = 1, 2, 4, 5 dan u = 3
dist2 [3] = min {dist1 [3], min {dist1 [i] + cost [i,3]}}
= min {~, 0+~, 10+50, 30+20, 100+~} = 50
untuk i = 1, 2, 3, 5 dan u = 4
dist2 [4] = min {dist1 [4], min {dist1 [i] + cost [i,4]}}
= min {30, 0+30, 10+~, ~+~, 100+~} = 30
untuk i = 1, 2, 3, 4 dan u = 5
42
dist2 [5] = min {dist1 [5], min {dist1 [i] + cost [i,5]}}
= min {100, 0+100, 10+~, ~+10, 30+50} = 80
Tabel 2.4 Iterasi Algoritma Bellman Ford Untuk k = 2
dist k [1…5] k
1 2 3 4 5
1 0 10 ~ 30 100
2 0 10 50 30 80
3 ~ ~ ~ ~ ~
4 ~ ~ ~ ~ ~
k = 3
untuk i = 2, 3, 4, 5 dan u = 1
dist3 [1] = min {dist2 [1], min {dist2 [i] + cost [i,1]}}
= min {0, 10+~, 50+~, 30+~, 80+~} = 0
untuk i = 1, 3, 4, 5 dan u = 2
dist3 [2] = min {dist2 [2], min {dist2 [i] + cost [i,2]}}
= min {10, 0+10, 50+~, 30+~, 80+~} = 10
untuk i = 1, 2, 4, 5 dan u = 3
dist3 [3] = min {dist2 [3], min {dist2 [i] + cost [i,3]}}
= min {50, 0+~, 10+50, 30+20, 80+~} = 50
43
untuk i = 1, 2, 3, 5 dan u = 4
dist3 [4] = min {dist2 [4], min {dist2 [i] + cost [i,4]}}
= min {30, 0+30, 10+~, 50+~, 80+~} = 30
untuk i = 1, 2, 3, 4 dan u = 5
dist3 [5] = min {dist2 [5], min {dist2 [i] + cost [i,5]}}
= min {80, 0+100, 10+~, 50+10, 80+50} = 60
Tabel 2.5 Iterasi Algoritma Bellman Ford Untuk k = 3
dist k [1…5] k
1 2 3 4 5
1 0 10 ~ 30 100
2 0 10 50 30 80
3 0 10 50 30 60
4 ~ ~ ~ ~ ~
k = 4
untuk i = 2, 3, 4, 5 dan u = 1
dist4 [1] = min {dist3 [1], min {dist3 [i] + cost [i,1]}}
= min {0, 10+~, 50+~, 30+~, 60+~} = 0
untuk i = 1, 3, 4, 5 dan u = 2
dist4 [2] = min {dist3 [2], min {dist3 [i] + cost [i,2]}}
= min {10, 0+10, 50+~, 30+~, 60+~} = 10
44
untuk i = 1, 2, 4, 5 dan u = 3
dist4 [3] = min {dist3 [3], min {dist3 [i] + cost [i,3]}}
= min {50, 0+~, 10+50, 30+20, 60+~} = 50
untuk i = 1, 2, 3, 5 dan u = 4
dist4 [4] = min {dist3 [4], min {dist3 [i] + cost [i,4]}}
= min {30, 0+30, 10+~, 50+~, 60+~} = 30
untuk i = 1, 2, 3, 4 dan u = 5
dist4 [5] = min {dist3 [5], min {dist3 [i] + cost [i,5]}}
= min {60, 0+100, 10+~, 50+10, 30+50} = 60
Tabel 2.6 Iterasi Algoritma Bellman Ford Untuk k = 4
dist k [1…5] k
1 2 3 4 5
1 0 10 ~ 30 100
2 0 10 50 30 80
3 0 10 50 30 60
4 0 10 50 30 60
Proses pencarian selesai dengan hasil shortest path sebesar 60.
45
Pseudocode untuk algoritma Bellman Ford (Horowitz, 1998, p273)
adalah sebagai berikut :
1 void BellmanFord (int v, float cost[][SIZE],
2 float dist[], const int n)
3 // Single-source/all-destinations shortest paths
4 // with negative edge costs
5 {
6 for (int i=1; i<=n; i++) //Initialize dist.
7 dist[i] = cost[v][i];
8 for (int k=2; k<=n-1; k++)
9 for (each u such that u!=v and u has
10 at least one incoming edge)
11 for (each <i,u> in the graph)
12 if (dist[u] > dist[i]+cost[i][u])
13 dist[u] = dist[i]+cost[i][u];
14 }
2.5.3 Maximal Flow Model
Menurut Taha (2003, p239), model ini biasanya digunakan pada jaringan
pipa yang mengalirkan minyak dari sumur ke tempat pengilangan, dimana setiap
segmen dalam pipa memiliki kapasitas maksimum. Pipa bisa saja satu arah
ataupun dua arah tergantung desainnya. Pipa yang memiliki satu arah memiliki
kapasitas tertentu untuk satu arah dan kapasitas kosong untuk arah yang
berlawanan.
46
Gambar di bawah ini menunjukkan jaringan pipa yang memiliki satu
sumber dan satu tujuan dan beberapa node pemompa.
Gambar 2.11 Contoh Kasus Jaringan Pipa
Solusi untuk problem di atas memerlukan pengubahan jaringan menjadi
satu sumber dan satu tujuan. Kebutuhan ini dapat dicapai dengan menggunakan
uni directional infinite capacity seperti yang digambarkan garis putus – putus
pada gambar di atas.
Jika arc (i, j) dengan i < j dimana kita menggunakan notasi (Cij, Cji) untuk
menunjukkan kapasitas arus dalam arah i menuju j, dan j menuju i. untuk
menghikangkan ambiguitas kita meletakkan Cij pada garis diatas node i dan Cji
diletakkan di sebelah node j seperti gambar di bawah ini.
Gambar 2.12 Penggambaran Flow
47
Berikut adalah langkah penyelesaian yang digunakan untuk untuk
menyelesaikan persoalan maximal flow.
1. Secara acak, pilih salah satu path dalam network dari asal ke
tujuan
2. Ubah kapasitas pada setiap node dengan mengurangi maximal
flow untuk path yang dipilih pada langkah 1.
3. Tambahkan maximal flow disekitar path ke flow pada arah yang
berlawanan pada setiap node.
4. Ulang langkah 1, 2, dan 3 sampai tidak ada lagi path dengan
kapasitas flow tersedia.
2.5.4 CPM and PERT
CPM (Critical Path Method) dan PERT (Program Evaluation and Review
Technique) merupakan metode berbasis jaringan yang digunakan untuk
membantu perencanaan, penjadwalan, dan kontrol suatu project. Suatu project
merupakan kumpulan dari aktivitas yang saling berkaitan dimana setiap aktivitas
memakan waktu dan resource. Tujuan dari CPM dan PERT adalah untuk
menyediakan alat analisis untuk fungsi penjadwalan aktivitas
Langkah pertama, kita menentukan aktivitas dalam project, kemudian
menentukan hubungan antar aktivitas dan kebutuhan waktunya. Kemudian
project diterjemahkan ke dalam suatu jaringan yang memperlihatkan hubungan
diantara aktivitas – aktivitas tersebut. Langkah terakhir, adalah menghitung
jaringan tersebut dalam basis yang berguna untuk pengembangan jadwal untuk
proyek tersebut.
48
Dalam pelaksanaan project tersebut jadwal mungkin tidak dapat terwujud
seperti yang direncanakan sehingga menyebabkan beberapa aktivitas tertunda.
Dalam kasus ini diperlukan update untuk mencerminkan kenyataan pada
lapangan. CPM dikembangkan untuk aktivitas yang bersifat deterministik,
sedangkan PERT digunakan untuk aktivitas yang bersifat probabilistik. PERT
berbeda dengan CPM karena basis durasinya pada suatu aktivitas terdiri atas tiga
perkiraan, yaitu:
• Optimistic time, a, yang mengasumsikan aktivitas berjalan lancar
• Most likely time, m, yang mengasumsikan aktivitas berjalan
dalam kondisi yang normal.
• Pessimistic time, b, yang mengasumsikan aktivitas berjalan tidak
lancar.
Oleh karena itu, durasi dinyatakan dalam:
64 bmaD ++
=
Berikut adalah contoh gambar project network yang terdiri atas 9
aktivitas yang berkaitan.
Gambar 2.13 Contoh Project Network
49
2.6 Pengertian Manajemen
Menurut James A.F. Stoner, manajemen adalah suatu proses
perencanaan, pengorganisasian, kepemimpinan, dan pengendalian upaya dari
anggota organisasi serta penggunaan semua sumber daya yang ada pada
organisasi untuk mencapai tujuan organisasi yang telah ditetapkan sebelumnya
(http://organisasi.org/pengertian_definisi_dari_manajemen).
Manajemen menggolongkan proses memimpin dan mengarahkan semua
atau sebagian organisasi (biasanya sebuah bisnis) melalui penyebaran dan media
sumber (manusia, finansial, material, intelektual, dan hal-hal lain yang tidak
kasat mata). Kata manage berasal dari bahasa Italia maneggiare, yang juga
didapatkan dari bahasa Latin manus, tangan. Seseorang dapat juga berpikir
tentang manajemen secara fungsional, sebagai sebuah tindakan untuk mengukur
suatu kuantitas secara teratur dan tentang menyesuaikan beberapa rencana awal;
atau sebagai tindakan yang diambil untuk mencapai tujuan yang dihadapkan
seseorang. Ini berlaku bahkan di situasi ketika perencanaan tidak ada. Menurut
pendapat Henry Fayol, manajemen terdiri dari lima fungsi yaitu perencanaan,
pengorganisasian, kepemimpinan, koordinasi, serta pengontrolan
(http://en.wikipedia.org/wiki/Management).
Sedangkan menurut Kamus Besar Bahasa Indonesia Edisi kedua pada
halaman 623, manajemen adalah :
1. proses penggunaan sumber daya secara efektif untuk mencapai
sasaran.
2. pimpinan yang bertanggung jawab atas jalannya perusahaan dan
organisasi.
50
2.7 Object Oriented Analysis and Design (OOAD)
2.7.1 Pengertian Object Oriented Analysis and Design (OOAD)
Menurut Whitten et al. (2004, p31), Object Oriented Analysis and Design
(OOAD) merupakan kumpulan alat dan teknik mengembangkan sistem dengan
menggunakan teknologi objek untuk merancang sebuah sistem dan programnya.
Sedangkan menurut Mathiassen et al. (2000, pp3-4), OOAD merupakan metode
untuk menganalisis dan merancang suatu sistem informasi dengan menggunakan
objek dan class sebagai konsep dasarnya.
2.7.2 Objek dan Class
Objek adalah sebuah entitas yang memiliki identitas, status, dan perilaku
(Mathiassen et al., 2000, p4). Contoh dari objek misalnya pelanggan. Pelanggan
merupakan entitas dengan identitas yang spesifik, dan memiliki status dan
perilaku tertentu yang khusus. Dalam desain, objek konsumen dapat
merepresentasikan bagian dari history dan state konsumen di dalam sistem.
Sedangkan class merupakan kumpulan objek yang memiliki struktur,
pola perilaku, dan atribut yang sama (Mathiassen et al., 2000, p4). Contoh dari
class misalnya pada pelanggan. Class pelanggan bisa menyimpan satu objek
pelanggan tertentu, dan pada class yang sama pula, terdapat banyak objek
pelanggan yang lain, masing – masing dengan identitas, state dan behaviour
yang unik.
51
2.7.3 Keuntungan dan Kelemahan Object Oriented Analysis and Design
Mathiassen et al. (2000, pp5-6) menyebutkan bahwa keuntungan
menggunakan OOAD adalah sebagai berikut:
1. OOAD memberikan informasi yang jelas mengenai context sistem.
2. Dapat menangani data yang seragam dalam jumlah yang besar dan
mendistribusikannya ke seluruh bagian organisasi.
3. Hubungan erat antara analisis berorientasi objek, perancangan
berorientasi objek, user interface berorientasi objek, dengan
pemrograman berorientasi objek.
Selain keuntungan yang diperoleh dalam menggunakan OOAD seperti
yang telah disebutkan di atas, ternyata juga terdapat beberapa kelemahan yang
berhasil diidentifikasi oleh McLeod (2001, p341) yaitu:
1. Diperlukan waktu lama untuk memperoleh pengalaman
pengembangan.
2. Kesulitan metodologi untuk menjelaskan sistem bisnis yang rumit.
3. Kurangnya pilihan peralatan pengembangan yang khusus disesuaikan
untuk sistem bisnis.
2.7.4 Aktivitas Utama Object Oriented Analysis and Design
Empat buah aktivitas utama dalam analisis dan perancangan berorientasi
objek yang digambarkan seperti gambar di bawah ini (Mathiassen et al, 2000,
pp14-15) :
52
Gambar 2.14 Aktivitas Utama dalam OOAD
Berikut ini merupakan penjelasan lebih rinci mengenai keempat aktivitas
utama dalam melakukan analisis dan perancangan berorientasi objek.
1. Analisis Problem Domain
Problem domain adalah bagian dari konteks yang diatur,
diawasi, dan dikendalikan oleh sistem. Tujuan analisis problem
domain adalah mengidentifikasi dan memodelkan problem domain
(Mathiassen et al. 2000, pp45-48).
Analisis problem domain terbagi menjadi tiga aktivitas yang
digambarkan dalam Gambar 2.8, yaitu:
a. Memilih objek, class, dan event yang akan terlibat dalam
model problem domain.
53
b. Melihat bagaimana hubungan antara class dan object secara
konsep berhubungan satu sama lain.
c. Mendeskripsikan properti dinamis dan atribut untuk setiap
class.
Gambar 2.15 Aktivitas Analisis Problem Domain
Pada aktivitas classes (Mathiassen et al. 2000, pp49-50),
langkah awal yang perlu dilakukan adalah menentukan class.
Langkah berikutnya adalah membuat sebuah event table yang dapat
membantu menentukan event-event yang dimiliki oleh setiap class.
Pada aktivitas structure (Mathiassen et al. 2000, p69), class-
class yang telah ditentukan sebelumnya akan dihubungkan
berdasarkan tiga jenis hubungan yaitu generalisasi, agregasi, atau
asosiasi sehingga menjadi sebuah skema yang disebut class diagram.
54
Dalam aktivitas behavior (Mathiassen et al. 2000, pp89-
93), definisi class dalam class diagram akan diperluas dengan
menambahkan deskripsi pola perilaku dan atribut dari masing-masing
class. Pola perilaku dari class terdiri dari tiga jenis, yaitu:
• Sequence
Merupakan event yang terjadi secara berurutan satu per satu.
• Selection
Merupakan pemilihan salah satu dari beberapa event yang
terjadi.
• Iteration
Merupakan event yang terjadi berulang kali.
Hasil dari aktivitas ini adalah sebuah statechart diagram yang
menunjukkan perubahan status dari masing-masing class yang
dikarenakan oleh event tertentu mulai dari initial state sampai dengan
final state.
2. Analisis Application Domain
Application domain merupakan organisasi yang mengatur,
mengawasi, atau mengendalikan problem domain. Tujuan
dilakukannya analisis application domain adalah untuk menentukan
kebutuhan penggunaan sistem (Mathiassen et al. 2000, pp115-118).
55
Sama seperti analisis problem domain, analisis application
domain juga terdiri dari beberapa aktivitas sebagai berikut:
a. Usage
Menentukan bagaimana sistem berinteraksi dengan orang dan
sistem dalam konteks yang sama.
b. Functions
Menentukan kemampuan sistem dalam mengolah informasi.
c. Interfaces
Menentukan kebutuhan interface sistem dan merancang
interface.
Berikut ini merupakan gambaran aktivitas-aktivitas yang
dilakukan pada saat melakukan analisis application domain.
Gambar 2.16 Aktivitas Analisis Application Domain
Tujuan dalam aktivitas usage adalah untuk menentukan
bagaimana actor berinteraksi dengan sistem. Langkah pertama yang
harus dilakukan adalah membuat actor table yang dapat membantu
menentukan actor dan use case yang berkaitan. Langkah selanjutnya
56
adalah membuat use case diagram sehingga terlihat lebih jelas
interaksi antara actor dengan masing-masing use case (Mathiassen et
al. 2000, pp119 – 120).
Functions merupakan fasilitas sistem yang menjadikan sistem
tersebut berguna bagi actor. Terdapat empat jenis function, yaitu
(Mathiassen et al. 2000, pp137 - 138):
• Update
Fungsi update diaktifkan oleh event problem domain dan
menghasilkan perubahan status model.
• Signal
Fungsi signal diaktifkan oleh perubahan status model dan
menghasilkan reaksi di dalam context.
• Read
Fungsi read diaktifkan oleh kebutuhan actor akan informasi
dan menghasilkan tampilan model sistem yang relevan.
• Compute
Fungsi compute diaktifkan oleh kebutuhan actor akan
informasi dan berisi perhitungan yang dilakukan baik oleh
actor maupun oleh model. Hasilnya adalah tampilan dari hasil
perhitungan yang dilakukan.
Aktivitas interface bertujuan untuk menentukan interface –
interface dalam sistem. Hasil dari aktivitas ini adalah dialogue style,
57
contoh tampilan window, dan mencakup pembuatan navigation
diagram yang merupakan skema yang menunjukkan tampilan dari
sistem dan relasi antar interface (Mathiassen et al. 2000, p151).
3. Architectural Design
Architectural design bertujuan untuk menstrukturisasi sebuah
sistem yang terkomputerisasi. Architectural design berfungsi sebagai
kerangka kerja dalam aktivitas pengembangan sistem dan
menghasilkan struktur komponen dan proses sistem (Mathiassen et
al. 2000, pp173 - 176).
Tahap architectural design terdiri dari tiga aktivitas yaitu
criteria, component architecture, dan process architecture seperti
yang digambarkan pada Gambar 2.17.
Gambar 2.17 Aktivitas Architectural Design
Tujuan dari aktivitas menentukan crieria adalah untuk
mendapatkan prioritas desain. Criterion adalah merupakan properti
58
yang diinginkan dari sebuah arsitektur. Desain yang baik memiliki
keseimbangan dalam beberapa criteria. Tabel 2.7 menunjukkan
criteria yang telah ditentukan oleh para peneliti untuk menentukan
kualitas dari sebuah software (Mathiassen et al. 2000, pp177 - 179).
Tabel 2.7 Criteria untuk Menentukan Kualitas Software
Criterion Ukuran
Usable Kemampuan sistem beradaptasi dengan context
organisasional dan teknikal.
Secure Pencegahan akses ilegal terhadap data dan fasilitas.
Efficient Eksploitasi ekonomis dari fasilitas technical platform.
Correct Kesesuaian dengan kebutuhan.
Reliable Fungsi yang dijalankan secara tepat.
Maintainable Biaya untuk mencari dan memperbaiki kerusakan sistem.
Testable Biaya untuk menjamin bahwa sistem melakukan fungsinya.
Flexible Biaya memodifikasi sistem.
Comprehensible Usaha yang diperlukan untuk memahami sistem.
Reusable Penggunaan bagian dari sistem ke dalam sistem lain yang
berkaitan.
Portable Biaya memindahkan sistem ke technical platform lain.
Interoperable Biaya pemasangan sistem dengan sistem lain.
59
Mathiassen et al. (2000, pp179-182) menyebutkan bahwa
kriteria usable, flexible, dan comprehensible tergolong sebagai
kriteria umum yang harus dimiliki oleh sebuah sistem dan
menentukan baik tidaknya suatu rancangan sistem.
Component architecture adalah struktur sistem dari
komponen-komponen yang berkaitan. Dalam aktivitas ini, perlu
ditentukan pola arsitektural yang paling sesuai dengan model sistem .
Pola-pola arsitektural tersebut antara lain:
• Layered Architecture Pattern
• Generic Architecture Pattern
• Client-Server Architecture Pattern
Hasil dari aktivitas ini adalah sebuah component diagram
yang merupakan class diagram yang dilengkapi dengan spesifikasi
komponen yang kompleks (Mathiassen et al., 2000, pp189 - 200).
Process architecture adalah sebuah struktur eksekusi sistem
yang terdiri dari proses-proses yang saling tergantung satu sama lain.
Dalam aktivitas ini juga perlu menentukan pola distribusi yang sesuai
dengan model sistem (Mathiassen et al., 2000, pp209 - 219). Pola-
pola distribusi yang ada sebagai berikut:
• Centralized Pattern
• Distributed Pattern
• Decentralized Pattern
60
Hasil dari aktivitas ini adalah sebuah deployment diagram
yang menunjukkan processor dengan program component dan active
objects.
4. Component Design
Component design bertujuan untuk menentukan implementasi
kebutuhan di dalam kerangka kerja arsitektural. Hasilnya adalah
deskripsi mengenai komponen-komponen sistem. (Mathiassen et al.,
2000, p231).
Component design terdiri dari tiga aktivitas, yaitu:
a. Model component
Merupakan bagian sistem yang mengimplementasikan model
problem domain. Dalam aktivitas ini dihasilkan sebuah class
diagram dari model component. Hasil revisi dari class
diagram dalam model component seringkali terdiri dari
beberapa classes, attributes, structures tambahan untuk
merepresentasikan event (Mathiassen et al., 2000, pp235 –
236).
b. Function component
Merupakan bagian sistem yang mengimplementasikan
kebutuhan fungsional. Hasilnya adalah class diagram dengan
operasi dan fungsi-fungsi yang kompleks (Mathiassen et al.,
2000, pp251 - 264).
61
Terdapat empat pola eksplorasi untuk merancang function
component, yaitu:
• Model-Class Placement
• Function-Class Placement
• Strategy
• Active Function
c. Connecting component
Merupakan desain hubungan antarkomponen untuk
memperoleh rancangan yang fleksibel dan mudah dimengerti.
Hasilnya adalah sebuah class diagram yang terdiri dari
komponen-komponen yang terlibat.
Gambar 2.18 Aktivitas Component Design
2.8 Unified Modeling Language (UML)
2.8.1 Sejarah UML
Pada akhir tahun 80-an dan awal tahun 90-an, sudah banyak terdapat
metode pemodelan berorientasi objek yang digunakan pada industri-industri,
62
diantaranya Booch Method yang diperkenalkan oleh Grady Booch, Object
Modeling Technique (OMT) yang diperkenalkan oleh James Rumbaugh, dan
Object-Oriented Software Engineering (OOSE) yang diperkenalkan oleh Ivar
Jacobson. Keberadaan berbagai metode tersebut justru menjadi masalah utama
dalam pengembangan sistem berorientasi objek, karena dengan banyaknya
metode pemodelan objek yang digunakan akan membatasi kemampuan untuk
berbagi model antar proyek dan antar tim pengembang. Hal tersebut
disebabkan oleh berbedanya konsep masing-masing metode pemodelan objek
sehingga menghambat komunikasi antara anggota tim dengan user yang
berujung pada banyaknya kesalahan atau error pada proyek. Dikarenakan
masalah-masalah tersebut, maka diperlukanlah suatu standarisasi penggunaan
bahasa pemodelan.
Pada tahun 1994, Grady Booch dan James Rumbaugh bekerja sama dan
menyatukan metode pengembangan berorientasi objek mereka dengan tujuan
untuk menciptakan sebuah sistem pengembangan berorientasi objek yang
standar. Pada tahun 1995 Ivar Jacobson ikut bergabung dengan mereka dan
ketiganya memusatkan perhatian untuk menciptakan sebuah bahasa pemodelan
objek yang standar, bukan lagi berkonsentrasi pada metode atau pendekatan
berorientasi objek. Berdasarkan pemikiran ketiga tokoh tersebut, maka
akhirnya pada tahun 1997 bahasa pemodelan objek standar Unified Modeling
Language (UML) versi 1.0 mulai diperkenalkan kepada masyarakat luas.
UML bukan merupakan metode untuk mengembangkan sistem,
melainkan hanya berupa notasi yang kemudian pada saat ini diterima dengan
luas sebagai bahasa pemodelan objek yang standar. Object Management Group
63
(OMG) mengadopsi UML pada bulan November 1997 dan sejak saat itu terus
mengembangkannya berdasarkan pada kebutuhan dunia industri. Pada tahun
2004, telah diluncurkan UML versi 1.4 dan pada saat itu juga OMG telah mulai
merencanakan pengembangan UML versi 2.0.
2.8.2 Diagram – Diagram UML
2.8.2.1 Activity Diagram
Activity Diagram digunakan untuk menggambarkan uraian aliran aktifitas
secara kronologis, bagian dari proses bisnis atau tahapan dari use case atau
logic dari behaviour suatu objek atau disebut sebagai method . Diagram ini
memodel langkah-langkah suatu proses atau kegiatan yang ada dalam sistem.
Diagram ini juga dapat untuk memodel aksi yang akan dilakukan ketika suatu
operasi dijalankan dan berikut hasil yang dikeluarkan dari aksi tersebut.
Activity Diagram memiliki kemiripan dengan flowchart. Perbedaannya adalah,
Activity diagram menyediakan mekanisme untuk menggambarkan aktifitas
yang muncul secara paralel. Activity Diagram ini dapat dilakukan pada tahap
analisis maupun pada perancangan. Berikut ini beberapa simbol yang
digunakan dalam diagram ini (Whitten et al., 2004, pp450-454).
64
Tabel 2.8 Keterangan Simbol yang Digunakan pada Activity Diagram
SIMBOL PENJELASAN SIMBOL
Menjelaskan tentang awal dari suatu proses
Menggambarkan suatu kegiatan atau tugas yang harus
dilakukan.
Disebut sebagai batang sinkronisasi (synchronization bar).
Simbol ini memungkinkan penggambaran dari kegiatan
yang dilakukan secara paralel (lebih dari satu kegiatan
dalam satu waktu) dan dapat ditaruh dari lebih dari satu
cabang.
[ ] Kata/kalimat yang ada dalam simbol ini merupakan
sebuah pemacu yang menghasilkan sebuah aktifitas
Simbol ini menggambarkan aktifitas pengambilan
keputusan.
Menggambarkan akhir dari suatu proses.
2.8.2.2 Class Diagram
Class Diagram menggambarkan struktur objek dari sistem. Class
diagram menunjukkan class objek yang membentuk sistem dan hubungan
struktural diantara class objek tersebut (Mathiassen et al., 2000, p336).
Terdapat tiga jenis hubungan antar class yang biasa digunakan dalam class
65
diagram (Whitten et al., 2004, pp455-459). Ketiga jenis hubungan tersebut
antara lain:
1. Asosiasi
Asosiasi merupakan hubungan statis antar dua objek atau class.
Hubungan ini menggambarkan apa yang perlu diketahui oleh sebuah
class mengenai class lainnya. Hubungan ini memungkinkan sebuah
objek atau class mereferensikan objek atau class lain dan saling
mengirimkan pesan.
Sumber: Whitten et al. (2004, p461)
Gambar 2.19 Contoh Hubungan Asosiasi
2. Generalisasi (atau Spesialisasi)
Dalam hubungan generalisasi, terdapat dua jenis class, yaitu class
supertype dan class subtype. Class supertype atau class induk
memiliki atribut dan behavior yang umum dari hirarki tersebut. Class
subtype atau class anak memiliki atribut dan behavior yang unik dan
juga memiliki atribut dan behavior milik class induknya. Class induk
merupakan generalisasi dari class anaknya, sedangkan class anak
merupakan spesialisai dari class induknya.
66
Sumber: Whitten et al. (2004, p461)
Gambar 2.20 Contoh Hubungan Generalisasi
3. Agregasi
Agregasi merupakan hubungan yang unik dimana sebuah objek
merupakan bagian dari objek lain. Hubungan agregasi tidak simetris
dimana jika objek B merupakan bagian dari objek A, namun objek A
bukan merupakan bagian dari objek B. Pada hubungan ini, objek yang
menjadi bagian dari objek tertentu tidak akan memiliki atribut atau
behavior dari objek tersebut.
67
Sumber: Whitten et al. (2004, p461)
Gambar 2.21 Contoh Hubungan Agregasi
Sumber: Whitten et al. (2004, p461)
Gambar 2.22 Contoh Class Diagram
2.8.2.3 Statechart Diagram
Statechart Diagram digunakan untuk memodelkan perilaku umum dari
sebuah objek dalam sebuah class yang spesifik dan berisi state dan transition
(Mathiassen et al., 2000, p341). Statechart diagram mengilustrasikan siklus
objek hidup yaitu berbagai status yang dapat dimiliki objek dan event yang
68
menyebabkan status objek berubah menjadi status lain (Whitten et al., 2004,
p700).
Statechart diagram dibuat dengan langkah-langkah sebagai berikut
(Whitten et al., 2004, p700):
1. Mengidentifikasi initial dan final state.
2. Mengidentifikasi status objek selama masa hidup objek tersebut.
3. Mengidentifikasi event pemicu perubahan status objek.
4. Mengidentifikasi jalur perubahan status.
Sumber: Mathiassen et al. (2000, p425)
Gambar 2.23 Contoh Statechart Diagram
69
2.8.2.4 Use Case Diagram
Use Case Diagram menggambarkan interaksi antara sistem dan user
(Whitten et al., 2004, p441). Use case diagram mendeskripsikan secara grafis
hubungan antara actors dan use case (Mathiassen et al., 2000, p343).
Penjelasan use case biasa ditambahkan untuk menjelaskan langkah-langkah
interaksi.
Library System
Visitor
Patron
Apply formembership
Search libraryinventory
Check out books
Sumber: Whitten et al. (2004, p282)
Gambar 2.24 Contoh Use Case Diagram
2.8.2.5 Sequence Diagram
Bennet et al. (2006, p253) mengemukakan bahwa sequence diagram
menunjukkan interaksi antar objek yang diatur berdasarkan urutan waktu.
Sequence diagram dapat digambarkan dalam berbagai level of detail yang
berbeda untuk memenuhi tujuan yang berbeda-beda pula dalam daur hidup
70
pengembangan sistem. Aplikasi sequence diagram yang paling umum adalah
untuk menggambarkan interaksi antar objek yang terjadi pada sebuah use case
atau sebuah operation.
Bennet et al. (2006, pp253-254) menyatakan bahwa setiap sequence
diagram harus diberikan frame yang memiliki heading dengan menggunakan
notasi sd yang merupakan kependekan dari sequence diagram. Bennet et al.
(2006, p270) juga menyatakan bahwa terdapat beberapa notasi penulisan
heading pada setiap frame yang terdapat dalam sequence diagram, antara lain:
a. alt
Notasi alt merupakan kependekan dari alternatives yang
menyatakan bahwa terdapat beberapa buah alternatif jalur eksekusi
untuk dijalankan.
b. opt
Notasi opt merupakan kependekan dari optional dimana frame yang
memiliki heading ini memiliki status pilihan yang akan dijalankan
jika syarat tertentu dipenuhi.
c. loop
Notasi loop menyatakan bahwa operation yang terdapat dalam frame
tersebut dijalankan secara berulang selama kondisi tertentu.
d. break
Notasi break mengindikasikan bahwa semua operation yang berada
setelah frame tersebut tidak dijalankan.
71
e. par
Merupakan kependekan dari parallel yang mengindikasikan bahwa
operation dalam frame tersebut dijalankan secara bersamaan.
f. seq
Notasi seq merupakan kependekan dari weak sequencing yang berarti
operation yang berasal dari lifeline yang berbeda dapat terjadi pada
urutan manapun.
g. strict
Notasi strict merupakan kependekan dari strict sequencing yang
menyatakan bahwa operation harus dilakukan secara berurutan.
h. neg
Notasi neg merupakan kependekan dari negative yang
mendeskripsikan operasi yang tidak valid.
i. critical
Frame yang memiliki heading critical menyatakan bahwa operasi-
operasi yang terdapat di dalamnya tidak memiliki sela yang kosong.
j. ignore
Notasi ini mengindikasikan bahwa tipe pesan atau parameter yang
dikirimkan dapat diabaikan dalam interaksi.
k. consider
Consider menyatakan pesan mana yang harus dipertimbangkan
dalam interaksi.
72
l. assert
Merupakan kependekan dari assertion yang menyatakan urutan pesan
yang valid.
m. ref
Notasi ref merupakan kependekan dari refer yang menyatakan bahwa
frame mereferensikan operation yang terdapat di dalamnya pada
sebuah sequence diagram tertentu.
Campaign Manager :Client
getName()
listCampaigns()
:Campaign
getCampaignDetails()
:Advert
loop [for all client’s campaigns]
listAdverts()
getAdvertDetails()loop [for all campaign’s adverts]
addNewAdverts()
AdvertnewAd:Advert
Sumber: Bennet et al. (2006, p254)
Gambar 2.25 Contoh Sequence Diagram
73
2.8.2.6 Navigation Diagram
Navigation Diagram merupakan statechart diagram khusus yang
berfokus pada user interface (Mathiassen et al., 2000, p344). Diagram ini
menunjukkan window-window dan transisi diantara window-window tersebut.
Sebuah window dapat digambarkan sebagai sebuah state. State ini
memiliki nama dan berisi gambar miniatur window. Transisi antar state dipicu
oleh ditekannya sebuah tombol yang menghubungkan dua window.
Gambar 2.26 Contoh Navigation Diagram
2.8.2.7 Component Diagram
Component Diagram merupakan diagram implementasi yang digunakan
untuk menggambarkan arsitektur fisik dari software sistem. Diagram ini dapat
menunjukkan bagaimana coding pemrograman terbagi menjadi komponen-
74
komponen dan juga menunjukkan ketergantungan antar komponen tersebut
(Whitten et al., 2004, p442).
Sebuah komponen digambarkan dalam UML sebagai sebuah kotak
dengan dua kotak kecil di sebelah kirinya. Ketergantungan antar dua
komponen menunjukkan bagaimana kedua komponen tersebut saling
berkomunikasi.
Sumber: Mathiassen et al. (2000, p201)
Gambar 2.27 Contoh Component Diagram
2.8.2.8 Deployment Diagram
Deployment Diagram, sama seperti component diagram, juga merupakan
diagram implementasi yang menggambarkan arsitektur fisik sistem.
Perbedaannya, deployment diagram tidak hanya menggambarkan arsitektur
75
fisik software saja, melainkan software dan hardware. Diagram ini
menggambarkan komponen software, processor, dan peralatan lain yang
melengkapi arsitektur sistem (Whitten et al., 2004, p442). Menurut Mathiassen
et al. (2000, p340), deployment diagram menunjukkan konfigurasi sistem
dalam bentuk processor dan objek yang terhubung dengan processor tersebut.
Setiap kotak dalam deployment diagram menggambarkan sebuah node
yang menunjukkan sebuah hardware. Hardware dapat berupa PC, mainframe,
printer, atau bahkan sensor. Software yang terdapat di dalam node
digambarkan dengan simbol komponen. Garis yang menghubungkan node
menunjukkan jalur komunikasi antar device. Gambar 3.23 berikut ini
menunjukkan sebuah contoh deployment diagram.
Sumber: Mathiassen et al. (2000, p217)
Gambar 2.28 Contoh Deployment Diagram