bab 2 landasan teori - library & knowledge...
TRANSCRIPT
11
BAB 2
LANDASAN TEORI
2.1 Teori Optimasi
Teori optimasi atau yang dikenal juga dengan nama riset operasi berkembang
sejak perang dunia II. Perkembangan dan penerapannya berlangsung begitu cepat dalam
bidang-bidang penting, mulai dari proyek pesawat, perencanaan strategi perang, industri,
perdagangan dan lain-lain. Menurut Miller dan M. K. Star, riset operasi adalah peralatan
manajemen yang menyatukan ilmu pengetahuan matematika dan logika dalam rangka
memecahkan masalah yang dihadapi sehari-hari sehingga dapat dipecahkan secara
optimal. Atau lebih umumnya, riset operasi merupakan proses pengambilan keputusan
yang optimal dalam penyusunan model dari sistem-sistem, baik deterministik maupun
probabilistik yang berasal dari kehidupan nyata (Sutrisno, 2008).
2.1.1 Model-Model Riset Operasi
Dalam perkembangannya terdapat beberapa model riset operasi, yaitu
sebagai berikut (Sutrisno, 2008):
a. Model ikonik
Merupakan model tiruan fisik seperti bentuk aslinya dengan skala yang
lebih kecil, seperti model gedung, model pesawat, dan lain-lain.
b. Model analog
Merupakan model fisik tetapi tidak memiliki bentuk yang mirip dengan
yang dimodelkan, seperti model pengukur temperatur.
12
c. Model simbolik
Merupakan model yang menggunakan simbol-simbol huruf, angka, bentuk,
atau gambar yang menyajikan karakteristik dan properti dari suatu sistem
seperti jaringan kerja, flow chart, dan lain-lain.
d. Model matematik
Mencakup model-model yang mewakili situasi real sebuah sistem yang
berupa fungsi matematik seperti model populasi makhluk hidup yang
dinyatakan oleh 0PaP nn = .
2.1.2 Jenis Optimasi
Ada berbagai jenis optimasi yang sudah berkembang, antara lain
pemrograman linear dan pemrograman non linear (Sutrisno, 2008).
1. Program linear
Program linear menyelesaikan kasus pada fungsi tujuan dan fungsi kendala
yang bersifat linear, yaitu pangkat dari variabelnya adalah 1.
Bentuk umum model program linear adalah:
Maks/ Min ∑=
=n
jjj xcZ
1
Kendala : ∑=
≥≤n
jijij bxa
1/ untuk i = 1,2,3,...,m
0≥jx untuk j = 1,2,3,...,n
Untuk menyelesaikan program linear, dapat digunakan metode grafik, yaitu
mentransformasikan formulasi ke dalam sebuah grafik. Tetapi metode ini
hanya efektif untuk formulasi dengan banyak variabel dua. Untuk formulasi
dengan variabel lebih dari dua, dapat digunakan metode simpleks. Metode
13
grafik dan simpleks digunakan pada program linear dengan variabelnya
dapat bernilai desimal. Tetapi dalam perkembangannya, ada program linear
di mana variabelnya harus bernilai bilangan bulat atau integer yang dikenal
dengan ILP (Integer Linear Programming) dan juga ada pula variabel yang
bernilai 0 atau 1 yang dikenal dengan nama BILP (Binary Integer Linear
Programming) dan ada pula program linear yang berupakan campuran ILP
dan BILP yaitu MILP (Mixed Integer Linear Programming).
2. Program non linear
Program non linear merupakan pemrograman dengan fungsi tujuannya saja
atau bersama dengan fungsi kendala berbentuk non linear yaitu pangkat
dari variabelnya lebih dari satu. Program non linear dapat mempunyai
kendala maupun tidak mempunyai kendala. Untuk penyelesaiannya dapat
digunakan metode Lagrangian atau Kuhn-Tucker.
2.2 Linear Programming
2.2.1 Pengertian Linear Programming
Linear programming adalah suatu teknis matematika yang dirancang
untuk membantu manajer dalam merencanakan dan membuat keputusan dalam
mengalokasikan sumber daya yang terbatas untuk mencapai tujuan perusahaan.
Tujuan perusahaan pada umumnya adalah memaksimalisasi keuntungan, namun
karena terbatasnya sumber daya, maka dapat juga perusahaan meminimalkan
biaya (Pangalajo, 2009).
Secara umum masalah linear programming sangat erat kaitannya dengan
pengalokasian sumber daya maupun sumber dana yang dapat berupa bahan baku,
14
tenaga kerja, mesin, maupun modal. Semua sumber daya dan sumber dana
tersebut pada umumnya memiliki jumlah yang sangat terbatas. Oleh karena itu
pengalokasiannya harus dilaksanakan dengan cara terbaik. Artinya keputusan
yang diambil yang merupakan pilihan dari berbagai macam alternatif yang
tersedia (Hartanto, 2005).
Linear programming memiliki empat ciri khusus yang melekat, yaitu
(Pangalajo, 2009):
1. Penyelesaian masalah mengarah pada pencapaian tujuan maksimisasi atau
minimisasi.
2. Kendala yang ada membatasi tingkat pencapaian tujuan.
3. Ada beberapa alternatif penyelesaian.
4. Hubungan matematis bersifat linear.
Karena adanya persyaratan linearitas tersebut, maka persoalan ini disebut
“linear programming”. Dengan kata lain disebut program karena untuk mencari
keputusan yang optimal didasarkan oleh keterbatasan sumber daya dan disebut
linear (Hartanto, 2005).
Secara teknis, ada lima syarat tambahan dari permasalahan linear
programming yang harus diperhatikan yang merupakan asumsi dasar, yaitu
(Pangalajo, 2009):
1. Certainty (kepastian).
Maksudnya adalah fungsi tujuan dan fungsi kendala sudah diketahui
dengan pasti dan tidak berubah selama periode analisis.
2. Proportionality (proporsionalitas).
Yaitu adanya proporsionalitas dalam fungsi tujuan dan fungsi kendala.
15
3. Additivity (penambahan).
Artinya aktivitas total sama dengan penjumlahan aktivitas individu.
4. Divisibility (bisa dibagi-bagi).
Maksudnya solusi tidak harus merupakan bilangan integer (bilangan bulat),
tetapi bisa juga berupa pecahan.
5. Non-negative variable (variabel tidak negatif).
Artinya bahwa semua nilai jawaban atau variabel tidak negatif.
2.2.2 Perumusan Model Dan Bentuk Umum
Untuk mendapatkan keputusan yang optimal dalam penyelesaian
persoalan dengan menggunakan teknik linear programming, langkah pertama
yang harus dilaksanakan adalah mengidentifikasikan masalah ke dalam bentuk
matematis atau sering disebut pembuatan model linear programming (Hartanto,
2005).
Langkah – langkah yang perlu dilakukan untuk merumuskan model
linear programming tersebut adalah (Hartanto, 2005):
1. Tentukan variabel keputusan yang akan dicari dan beri notasi dalam bentuk
matematis.
2. Tentukan batasan dari variabel keputusan tadi dan gambarkan ke dalam
bentuk persamaan linear atau ketidaksamaan linear.
3. Tentukan tujuan yang akan dicapai dari variabel keputusan tadi dan
gambarkan dalam satu set fungsi linear yang berbentuk maksimasi
keuntungan atau minimasi biaya.
Secara umum bentuk model linear programming dapat digambarkan
sebagai berikut (Hartanto, 2005):
16
Karena persoalan linear programming merupakan masalah alokasi, maka
perumusan di atas dapat diinterpretasikan sebagai berikut (Hartanto, 2005):
Z → nilai tujuan yang akan dicapai.
x1, x2, x3, ..., xn → variabel keputusan yang akan dicari.
aij → jumlah resource yang harus dialokasikan pada
setiap kegiatan ke (j).
b1, b2, b3, ..., bm → jumlah resource.
cij → nilai dari setiap kegiatan ke (j).
2.2.3 Penyelesaian Model Linear Programming
Setelah melakukan perumusan model linear programming, maka langkah
selanjutnya adalah menyelesaikan model linear programming guna mendapatkan
tujuan yang akan dicapai. Oleh karena persoalan linear programming dapat
digambarkan dalam berbagai bentuk seperti maksimisasi, atau minimisasi dan
dengan batasan dapat pula berbentuk lebih kecil sama dengan, sama dengan,
atau, lebih besar sama dengan (≤, =, ≥), maka diperlukan suatu bentuk baku yang
dapat memenuhi prosedur penyelesaian (Hartanto, 2005).
17
Bentuk baku yang sudah umum digunakan untuk menyelesaikan model
linear programming adalah (Hartanto, 2005):
1. Bentuk standar
Karakteristik dari bentuk standar ini adalah :
Fungsi tujuan (objective function) berbentuk maksimasi atau
minimisasi.
Semua kendala digambarkan dalam bentuk persamaan.
Semua variabel keputusan non – negatif.
Nilai ruas kanan setiap kendala non – negatif.
2. Bentuk kanonik
Karakteristik dari bentuk kanonik ini adalah:
Semua kendala berbentuk lebih kecil sama dengan (≤).
Semua variabel keputusan non – negatif.
Fungsi tujuan (objective function) bentuk maksimisasi.
Ada beberapa cara menyelesaikan masalah dengan model program linear,
di antaranya yaitu diselesaikan secara grafik. Secara umum metode grafik dapat
memberi masukan berharga untuk program linear dan pemecahannya, tetapi
metode ini hanya berlaku untuk dua variabel saja. Suatu teknik yang dapat
memecahkan masalah-masalah program linear secara umum yaitu metode
simpleks. Dalam metode simpleks model diubah ke dalam bentuk suatu tabel
kemudian dilakukan beberapa langkah matematis pada tabel tersebut. Langkah-
langkah matematis ini merupakan replikasi proses pemindahan dari suatu titik
ekstrem ke titik ekstrem lainnya pada daerah solusi (Kusrini, 2005).
18
Penyelesaian persoalan dengan menggunakan teknik linear
programming, bertujuan untuk mendapatkan hasil yang optimal yang dapat
membentuk maksimasi keuntungan maupun minimisasi biaya. Penyelesaian
tersebut bermula dari bentuk umum (perumusan model) ke feasible, dari feasible
menjadi feasible dasar dan akhirnya menjadi optimal (Hartanto, 2005).
Penggunaan linear programming pada saat sekarang sudah cukup luas,
misalnya dibidang ekonomi, militer, industri, maupun bidang sosial lainnya.
Disamping itu dengan kemajuan teknologi yang semakin pesat, maka proses
perhitungan penyelesaian linear programming sudah menggunakan komputer,
terutama dalam menghadapi persoalan yang memiliki variabel cukup banyak,
yang apabila dilakukan dengan proses perhitungan biasa akan memakan waktu
yang cukup lama. Dari uraian di atas dapat diakatakan bahwa linear
programming merupakan salah satu teknik matematis yang bertujuan untuk
mendapatkan keputusan optimal (Hartanto, 2005).
2.3 Metode Simpleks
2.3.1 Pengertian Metode Simpleks
Pemrograman linear (linear programming) adalah salah satu bahasan
dalam optimasi yang berkembang cukup pesat. Perumusan masalah
pemrograman linear beserta pemecahannya secara sistematis baru dimulai pada
tahun 1947 ketika George B. Dantzig merancang sebuah metode yang dikenal
dengan nama metode simpleks untuk keperluan angkatan udara AS. Apa yang
dirintis oleh Dantzig ini merupakan langkah yang penting untuk
19
mengembangkan pemrograman linear kepada penggunaan yang lebih luas
(Kosala Dwidja Purnomo, 2001).
Persoalan program linear tidak selalu sederhana karena melibatkan
banyak constraint (pembatas) dan banyak variabel sehingga tidak mungkin
diselesaikan dengan metode grafik. Oleh karena itu serangkaian prosedur
matematik (aljabar linear) diperlukan untuk mencari solusi dari persoalan yang
rumit tersebut. Prosedur yang paling luas digunakan adalah metode simpleks.
Penemuan metode ini merupakan lompatan besar dalam riset operasi dan
digunakan sebagai prosedur penyelesaian dari setiap program komputer (Kosala
Dwidja Purnomo, 2001).
Metode simpleks adalah metode iteratif, dimulai dari suatu basis yang
memenuhi dan kemudian mencari basis yang lain, yang juga memenuhi serta
mempunyai hubungan dengan meningkatnya harga dari fungsi tujuan yang
hendak dimaksimumkan maupun dengan berkurangnya harga dari fungsi tujuan
yang hendak diminimumkan (Kosala Dwidja Purnomo, 2001).
Metode simpleks ini merupakan prosedur aljabar yang progresif
mencapai hasil yang optimal melalui suatu proses iteratif. Prosedur ini langsung
menuju ke sasaran, hanya membutuhkan waktu dan kesabaran dalam
mengerjakannya. Cara ini adalah yang paling cocok untuk suatu computer
electronic (Kosala Dwidja Purnomo, 2001).
20
2.3.2 Algoritma Simpleks
Langkah-langkah yang diperlukan untuk menyelesaikan masalah linear
programming dengan metode simpleks adalah (Aris Budi Setyawan, 2006):
1. Melakukan identifikasi masalah dengan jalan menyederhanakan kasus
dalam bentuk model tabulasi.
2. Mengubah model tabulasi menjadi model matematis (fungsi tujuan dan
fungsi batasan).
3. Mengubah persamaan fungsi tujuan dan fungsi batasan ke dalam
persamaan simpleks.
4. Memindah semua nilai koefisien dalam persamaan simpleks ke dalam tabel
simpleks.
5. Menentukan kolom kunci.
Kolom kunci ini ditentukan dengan cara mencari nilai negatif terbesar yang
ada di baris tujuan (Z) pada tabel simpleks tersebut.
6. Menentukan baris kunci.
Indeks ditentukan dengan cara membagi setiap angka pada kolom Nilai
Kanan (NK) dengan setiap angka pada kolom kunci. Kemudian dari hasil
indeks tersebut dipilih baris dengan hasil indeks positif yang paling kecil
sebagai baris kunci.
KunciKolomAngkaKananNilaiIndeks =
7. Menentukan angka kunci.
Angka kunci adalah angka yang terdapat pada perpotongan antara kolom
kunci dan baris kunci. Selanjutnya menggunakan angka kunci tersebut
21
untuk menentukan baris kunci yang baru, apabila langkah ke-8 masih
menemukan nilai yang negatif.
8. Melakukan pengecekan apakah sudah tidak ada lagi angka/ nilai negatif di
baris tujuan (kecuali Nilai Kanan) pada tabel simpleks tersebut. Jika sudah
tidak ada maka tabel simpleks telah optimal. Jika masih ada yang negatif,
maka tabel belum optimal dan perlu dilanjutkan ke proses selanjutnya.
9. Jika ternyata masih ada angka negatif pada baris tujuan (Z), langkah
selanjutnya adalah menentukan nilai baris kunci yang baru. Nilai baris
kunci yang baru ditentukan dengan cara membagi semua nilai yang ada
pada baris kunci yang lama dengan angka kuncinya.
KunciAngkalamayangKunciBarisbaruyangKunciBaris =
10. Mengisi/ melengkapi sel lain dalam tabel simpleks yang masih kosong,
dengan cara angka atau nilai yang lama dikurangi dengan hasil perkalian
antara angka baris baru yang sesuai dengan angka kolom kunci yang
bersangkutan juga.
2.3.3 Penyimpangan Bentuk Simpleks
Penyimpangan bentuk simpleks dapat terjadi karena beberapa sebab,
antara lain karena (Aris Budi Setyawan, 2006):
1. Fungsi tujuan (Z) bukan maksimalisasi, tetapi minimalisasi.
2. Fungsi batasan bertanda (=) atau (≥).
3. Syarat X1 atau X2 tidak terpenuhi, misalkan X1 ≥ - 10 (negatif)
Penyelesaian untuk kasus penyimpangan ini adalah dengan membuat
kasus yang menyimpang tersebut menjadi kasus normal. Ada beberapa ketentuan
22
atau cara untuk membuat kasus yang menyimpang tersebut menjadi kasus
normal, yaitu seperti uraian yang akan dijelaskan di bawah ini (Aris Budi
Setyawan, 2006):
1. Untuk fungsi tujuan
Fungsi tujuan yang minimasi, agar menjadi maksimasi harus dikalikan
dengan (-1).
Dari minimalkan Z = 3X1 + 5X2
Menjadi maksimalkan (-Z) = -3X1 – 5X2
2. Untuk fungsi batasan:
Jika sebelumnya fungsi batasan sudah bertanda (=), maka untuk
menjadi persamaan simpleks, perlu dibuatkan sebuah variabel yang
disebut dengan variabel buatan (artificial variabel).
Jika sebelumnya fungsi batasan bertanda (≥), maka perlu dijadikan
dulu (≤) dengan cara dikalikan (-1). Namun apabila proses tersebut
menyebabkan slack variablenya bernilai negatif, maka perlu
dibuatkan juga artificial variabel.
Perlu diingat bahwa pembuatan variabel pada setiap fungsi batasan,
akan mengakibatkan fungsi tujuannya bertambah sebesar M dari
batasan yang bersangkutan. M yang muncul adalah bilangan yang
sangat besar, namun tidak tak terhingga, sehingga sering disebut
dengan the big M.
Selanjutnya, sebelum nilai fungsi tujuan dipindah ke tabel simpleks,
bilangan M yang ada dalam fungsi tujuan tersebut harus dijadikan nol
23
terlebih dahulu, karena setiap variabel dasar (slack atau artificial variabel),
harus bernilai nol.
Contoh kasus penyimpangan bentuk simpleks (Aris Budi Setyawan, 2006):
Minimalkan Z = 3X1 + 5X2
Dengan batasan:
Mesin A 2X1 = 8
Mesin B 3X2 ≤ 15
Mesin C 6X1 + 5X2 ≥ 30
Di mana X1 dan X2 ≥ 0
Maka proses perubahan menjadi kasus normalnya adalah sebagai berikut:
1. Untuk fungsi tujuan
Dari minimalkan Z = 3X1 + 5X2
Menjadi maksimalkan (-Z) = -3X1 – 5X2
2. Untuk fungsi batasan
• Fungsi batasan 1
Mesin A 2X1 = 8
Menjadi 2X1 + X3 = 8
X3 bar yang muncul bukan slack variable (variabel tambahan), namun
artificial variabel (variabel buatan), dan ini akan mengakibatkan
fungsi tujuannya memiliki tambahan nilai sebesar M.
Dari minimalkan Z = 3X1 + 5X2
maksimalkan (-Z) = -3X1 – 5X2
Menjadi maksimalkan -Z + 3X1 + 5X2 +MX3 = 0
24
• Fungsi batasan 2
Mesin B 3X2 ≤ 15
Menjadi 3X2 + X4 = 15
Karena batasan kedua ini tidak ada penyimpangan maka untuk
menjadi persamaan simpleks, cukup ditambahkan slack variable saja.
• Fungsi batasan 3
Mesin C 6X1 + 5X2 ≥ 30
-6X1 – 5X2 ≤ -30
-6X1 – 5X2 + X5 = -30
Karena nilai X1 dan X2 negatif (tidak sesuai dengan syaratnya,
dimana X1 dan X2 ≥ 0), maka harus dikalikan dengan (-1), sehingga
menjadi: 6X1 + 5X2 – X5 = 30
Permasalahan yang timbul kemudian adalah slack variablenya
sekarang bernilai negatif, dan hal ini berarti harus meniadakan
variabel tersebut, sehingga perlu dibuatkan sebuah artificial variable,
dan hasilnya menjadi :
6X1 + 5X2 – X5 + X6 = 30
Penambahan artificial tersebut akan berdampak pada fungsi tujuan,
yakni dengan bertambahnya fungsi tujuan dengan bilangan M.
Sehingga fungsi tujuannya akan berubah lagi menjadi :
Maksimalkan –Z + 3X1 + 5 X2 + MX3 + MX6 = 0
Masalah berikutnya yang muncul adalah setiap variabel dasar (slack atau
artificial variable), harus bernilai nol, sehingga MX3 dan MX6 di atas harus di-
25
nol-kan terlebih dahulu, sebelum dipindah ke tabel simpleks. Cara yang
digunakan adalah dengan mengurangi bilangan M tersebut dengan bilangan M
itu sendiri, yang sebelumnya dikalikan dengan setiap nilai batasan yang
menyebabkan munculnya bilangan M tersebut.
Nilai fungsi tujuan terakhir adalah 3 5 M 0 0 M 0
Hilangkan M yang pertama terlebih dahulu:
X1 X2 X3 X4 X5 X6 NK
3 5 M 0 0 M 0
(2 0 1 0 0 0 8) M _
3-2M 5 0 0 0 M -8M
Kemudian hilangkan M yang kedua:
X1 X2 X3 X4 X5 X6 NK
3-2M 5 0 0 0 M -8M
(6 5 0 0 -1 1 30) M _
-8M+3 -5M+5 0 0 M 0 -38M
Meskipun masih ada M pada kolom ke-5, namun M tersebut sudah tidak lagi
sebagai variabel dasar, karena sebelumnya (X5) telah bernilai negatif.
Nilai fungsi tujuan -8M+3 -5M+5 0 0 M 0 -38M
inilah yang selanjutnya akan dimasukkan ke dalam tabel awal dari tabel
simpleks. Setelah normal, langkah selanjutnya adalah sama seperti langkah-
langkah penyelesaian kasus simpleks sebelumnya.
26
2.3.4 Kasus Khusus
Terdapat kasus khusus yang dapat terjadi dalam penyelesaian linear
programming dengan metode simpleks, yaitu (Kiswara Agung Santoso, 2000):
1. Degenerasi
Kasus ini terjadi apabila satu atau lebih dari satu variabel basis berharga nol
sehingga iterasi yang dilakukan selanjutnya bisa menjadi suatu loop yang
akan kembali ke bentuk sebelumnya. Kasus ini disebut circling. Untuk
solusinya cukup dilakukan iterasi hingga 3 kali, artinya jika ternyata masih
terjadi suatu loop, maka “hentikan”. Hal ini dilakukan karena tidak semua
persoalan menghasilkan solusi degenerate yang tetap. Dengan kata lain ada
persoalan yang suatu saat bersifat degenerate, tetapi pada iterasi berikutnya
degenerasi menghilang. Kasus ini disebut degenerasi temporer.
2. Solusi optimum banyak
Kasus ini terjadi apabila fungsi tujuan paralel dengan fungsi pembatas, di
mana paling sedikit salah satu variabel non basis pada persamaan fungsi
tujuan yang mempunyai koefisien nol. Akibatnya, walaupun variabel
tersebut dinaikkan harganya, tidak akan mengubah nilai fungsi tujuan.
Karena itu, solusi-solusi optimum yang lain ini biasanya dapat
diidentifikasi dengan menunjukkan iterasi-iterasi tambahan pada metode
simpleksnya dan variabel-variabel non basis yang berkoefisien nol itu
selalu dipilih menjadi entering variable.
27
2.4 Dasar Perancangan Perangkat Lunak
Menurut Mahyuzir, perancangan merupakan proses penerapan bermacam-macam
teknik dan prinsip dengan tujuan mendefinisikan peralatan, proses atau sistem secara
rinci. Perancangan dilakukan pada tahap awal. Tujuan perancangan adalah menghasilkan
model yang akan dibuat. Perancangan perangkat lunak mengalami perubahan jika
didapatkan metode yang baru, analisis yang lebih baik dan penyusunan pengertian yang
lebih luas (Licyana Suryani, 2006).
2.4.1 Fase Pengembangan dan Perancangan Perangkat Lunak
Menurut Mahyuzir, fase pengembangan perangkat lunak terdiri dari tiga
langkah yang jelas, yaitu (Licyana Suryani, 2006):
1. Perancangan
Metodologi perancangan terdiri dari:
a. Perancangan data yang terfokus pada pendefinisian struktur data.
b. Perancangan arsitektur yang mendefinisikan hubungan antara elemen
yang utama dari struktur program.
c. Perancangan prosedural yang merupakan transformasi elemen dari
struktur program ke dalam deskripsi prosedural perangkat lunak.
2. Membuat source code
3. Uji coba
Setelah melalui tiga langkah di atas, maka dilakukan perpaduan
perangkat lunak dan validasi.
Rekayasa piranti lunak menurut Fritz Bauer adalah penetapan dan
pemakaian prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak
28
yang ekonomis yaitu terpercaya dan bekerja efisien pada mesin (komputer)
(Hendra Prasetyo, 2009).
Rekayasa piranti lunak menurut Pressman adalah suatu pembentukan dan
penggunaan prinsip-prinsip rekayasa dengan tujuan menghasilkan suatu
perangkat lunak yang ekonomis dan dapat diandalkan serta dapat bekerja secara
efisien pada mesin yang sesungguhnya. Pada dasarnya rekayasa piranti lunak
meliputi tiga elemen kunci yaitu (Eka Janitra, 2009):
1. Methods (metode)
Mengenai bagaimana membangun suatu perangkat lunak, di mana metode
terdiri dari beberapa tugas yaitu perencanaan proyek dan estimasi, analisis
kebutuhan perangkat lunak, perancangan struktur data, arsitektur program,
prosedur algoritma, pengkodean, testing dan pemeliharaan.
2. Tools (alat bantu)
Tools menyediakan dukungan baik secara otomatis maupun semi otomatis
untuk metode. Tools diintegrasikan dengan tujuan informasi yang
dihasilkan oleh suatu tools dapat digunakan oleh tools lainnya.
3. Procedures (prosedur)
Procedures merupakan perekat antara metode. Tools dan procedures juga
memungkinkan pembangunan perangkat lunak secara rasional dan berkala.
2.4.2 Prototype Model
Prototyping merupakan salah satu metode pengembangan perangkat
lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan
pelanggan dapat saling berinteraksi selama proses pembuatan sistem.
29
Sering terjadi seorang pelanggan hanya mendefinisikan secara umum apa
yang dikehendakinya tanpa menyebutkan secara detail output apa saja yang
dibutuhkan, pemrosesan dan data-data apa saja yang dibutuhkan. Sebaliknya di
sisi pengembang kurang memperhatikan efisiensi algoritma, kemampuan sistem
operasi dan interface yang menghubungkan manusia dan komputer.
Untuk mengatasi ketidakserasian antara pelanggan dan pengembang,
maka harus dibutuhkan kerja sama yang baik di antara keduanya sehingga
pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan
dengan tidak mengesampingkan segi-segi teknis dan pelanggan akan mengetahui
proses-proses dalam menyelesaikan sistem yang diinginkan. Dengan demikian
akan menghasilkan sistem sesuai dengan jadwal waktu penyelesaian yang telah
ditentukan.
Kunci agar model prototype ini berhasil dengan baik adalah dengan
mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan
pengembang harus setuju bahwa prototype dibangun untuk mendefinisikan
kebutuhan. Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat
lunak aktual direkayasa dengan kualitas dan implementasi yang sudah
ditentukan.
Tahapan-tahapan dalam prototyping adalah sebagai berikut:
1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh
perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar
sistem yang akan dibuat.
30
2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang
berfokus pada penyajian kepada pelanggan (misalnya dengan membuat
input dan format output).
3. Evaluasi prototyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah
dibangun sudah sesuai dengan keinginan pelanggan. Jika sudah sesuai
maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan
mengulangi langkah 1, 2, dan 3.
4. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah disepakati diterjemahkan ke dalam
bahasa pemrograman yang sesuai.
5. Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus
di tes dahulu sebelum digunakan. Pengujian ini dilakukan dengan White
Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.
6. Evaluasi sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai
dengan yang diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi
langkah 4 dan 5.
7. Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk
digunakan.
31
Keunggulan prototyping adalah:
1. Adanya komunikasi yang baik antara pengembang dan pelanggan.
2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan
pelanggan.
3. Pelanggan berperan aktif dalam pengembangan sistem.
4. Lebih menghemat waktu dalam pengembangan sistem.
5. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang
diharapkannya.
Kelemahan prototyping adalah:
1. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak
yang ada belum mencantumkan kualitas perangkat lunak secara
keseluruhan dan juga belum memikirkan kemampuan pemeliharaan untuk
jangka waktu lama.
2. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga
menggunakan algoritma dan bahasa pemrograman yang sederhana untuk
membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut
bahwa program tersebut hanya merupakan cetak biru sistem.
3. Hubungan pelanggan dengan komputer yang disediakan mungkin tidak
mencerminkan teknik perancangan yang baik.
Prototyping bekerja dengan baik pada penerapan-penerapan yang berciri sebagai
berikut:
1. Resiko tinggi yaitu untuk masalah-masalah yang tidak terstruktur dengan
baik, ada perubahan yang besar dari waktu ke waktu, dan adanya
persyaratan data yang tidak menentu.
32
2. Interaksi pemakai penting, sistem harus menyediakan dialog on-line
antara pelanggan dan komputer.
3. Perlunya penyelesaian yang cepat.
4. Perilaku pemakai yang sulit ditebak.
5. Sistem yang inovatif, sistem tersebut membutuhkan cara penyelesaian
masalah dan penggunaan perangkat keras yang mutakhir.
6. Perkiraan tahap penggunaan sistem yang pendek.
2.4.3 Proses Perancangan
Perancangan perangkat lunak adalah suatu proses di mana informasi-
informasi yang telah diperoleh diterjemahkan ke dalam model perangkat lunak.
Model perangkat lunak memegang peranan penting dalam penulisan program
(Licyana Suryani, 2006).
Berdasarkan manajemen proyek, perancangan perangkat lunak dikerjakan
dalam 2 langkah, yaitu (Licyana Suryani, 2006)
1. Perancangan awal
Yakni transformasi informasi-informasi ke dalam arsitektur data dan
perangkat lunak.
2. Perancangan rinci
Perancangan ini terfokus pada perbaikan model arsitektur yang memegang
peranan penting dalam pembuatan struktur data dan algoritma secara rinci
dari perangkat lunak.
33
2.4.4 Struktur Program
Gambar 2.1 Diagram Struktur Programming
Struktur program menggambarkan organisasi (hirarki) dari komponen
program (modul) dan juga menyatakan kontrol hirarki. Struktur program tidak
menggambarkan aspek prosedural perangkat lunak seperti urutan proses,
keputusan ataupun perulangan. Banyak notasi yang dapat digunakan untuk
menggambarkan struktur program, tetapi yang lebih umum adalah dalam bentuk
diagram pohon atau sering disebut sebagai bagan struktur (Licyana Suryani,
2006).
Depth dan width menyatakan jumlah tingkat yang dikontrol dan
keseluruhan tentang kontrol (Licyana Suryani, 2006).
Fan Out
34
Menyatakan jumlah modul yang secara langsung dikontrol oleh modul
yang ada di atasnya.
Fan In
Menyatakan jumlah modul yang mengontrol atau memanggil secara
bersama-sama dan langsung terhadap modul yang ada di bawahnya.
Hubungan kontrol di antara modul dapat dinyatakan dalam 2 bentuk,
yaitu (Licyana Suryani, 2006):
1. Modul superordinate
Modul yang mengontrol atau memanggil modul yang ada di bawahnya
secara langsung.
2. Modul subordinate
Modul yang dikontrol atau dipanggil oleh modul yang ada di atasnya.
Pada Gambar 2.2 modul M adalah superordinate untuk modul A,B,C.
Modul O,P,Q, dan R adalah modul subordinate dari modul L dan pada akhirnya
subordinate dari modul M.
2.5 Interaksi Manusia dan Komputer
Manusia adalah makhluk yang sering berinteraksi dengan manusia lain. Oleh
karena itulah maka penggunaan komputer dibuat sesederhana mungkin sehingga
manusia dapat berinteraksi dengan komputer semudah berinteraksi dengan manusia lain.
Proses penyederhanaan ini dikenal dengan interactive user interface (Yolanda, 2009).
Menurut Shneiderman, interaksi manusia dan komputer merupakan disiplin ilmu
yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer
interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang
berhubungan dengannya (Ade Arisandi, 2009).
35
Pada interaksi manusia dan komputer ditekankan pada pembuatan antarmuka
pemakai (user interface). User interface yang dibuat diusahakan sedemikian rupa
sehingga seorang user dapat dengan baik dan nyaman menggunakan aplikasi perangkat
lunak dibuat (Ade Arisandi, 2009).
Antar muka pemakai (user interface) adalah bagian sistem komputer yang
memungkinkan manusia berinteraksi dengan komputer. Tujuan antar muka pemakai
adalah agar sistem komputer dapat digunakan untuk menunjuk pada kemampuan yang
dimiliki oleh piranti lunak atau program aplikasi yang mudah dioperasikan dan dapat
membantu menyelesaikan suatu persoalan dengan hasil yang sesuai dengan keinginan
user, sehingga user merasa nyaman mengoperasikan program tersebut (Ade Arisandi,
2009).
2.5.1 Program Interaktif
Suatu program yang interaktif dan baik harus bersifat user friendly. Ada
lima kriteria yang harus dimiliki oleh suatu program sehingga dapat berinteraksi
dengan baik dan bersifat user friendly. Lima kriteria tersebut adalah (Yolanda,
2009):
1. Memiliki waktu belajar yang relatif singkat.
2. Mampu memberikan informasi yang diperlukan dengan cepat.
3. Mudah untuk dioperasikan oleh user.
4. Kemudahan untuk mengingat program tersebut walaupun telah lama tidak
mengoperasikannya.
5. Kepuasan pribadi.
36
2.5.2 Pedoman Merancang User Interface
Beberapa pedoman yang dianjurkan dalam merancang suatu program,
guna mendapatkan suatu program yang user friendly adalah sebagai berikut (Ade
Arisandi, 2009):
1. Delapan aturan emas (eight golden rules)
Untuk merancang sistem interaksi manusia dan komputer yang baik, harus
memperhatikan delapan aturan emas (eight golden rules) dalam
perancangan antar muka. Eight golden rules tersebut yaitu (Hendra
Prasetyo, 2009):
a. Strive for consistency
Konsistensi dalam perancangan antar muka dan bertahan untuk
konsistensi.
b. Enable frequent user to use shortcuts
Memungkinkan/ memperbolehkan user menggunakan shortcuts
secara berkala.
c. Over informative feed back
Memberikan umpan balik yang informatif.
d. Design dialogs to yield closure
Pengorganisasian yang baik sehingga user mengetahui kapan awal
dan akhir dari suatu action serta merancang dialog untuk
menghasilkan keadaan akhir.
e. Over simple error handling
Memberikan penanganan kesalahan yang sederhana sehingga user
mampu mengetahui dan memperbaiki kesalahan dengan mudah.
37
f. Permit easy reversal of actions
Mengijinkan pembalikan action dengan mudah.
g. Support internal locus of control
Mendukung user menguasai sistem yang dibuat sehingga user mampu
aktif dalam mengambil langkah selanjutnya bukan hanya merespon
pesan yang muncul.
h. Short-term memory load
Mengurangi beban ingatan jangka pendek kepada user sehingga
perancangannya harus sederhana.
2. Teori waktu respon
Waktu respon dalam sistem komputer menurut Scheiderman adalah jumlah
detik dari saat user program memulai aktivitas sampai menampilkan
hasilnya di layar atau printer. Pemakai lebih menyukai waktu respon yang
pendek, waktu respon yang panjang mengganggu, waktu respon yang
pendek menyebabkan waktu user berpikir lebih pendek. Waktu respon
harus sesuai dengan tugasnya, dan pemakai harus diberi tahu mengenai
penundaan yang panjang.
2.6 Diagram Alir
Diagram alir merupakan alat bantu pemrograman. Bagan alir (flowchart)
membantu programmer dalam mengorganisasikan pemikiran mereka dalam
pemrograman, terutama bila dibutuhkan penalaran yang tajam dalam logika prosedur
suatu program (Yolanda, 2009).
38
Simbol-simbol yang sering digunakan untuk diagram alir adalah sebagai berikut
(Yolanda, 2009):
1. Proses
Berupa proses/ pengolahan, misalnya perhitungan.
Untuk predefined process.
2. Operasi input/ output.
3. Operasi manual input.
4. Panah, menghubungkan antar komponen dan
menunjukkan arah.
5. Decision, berupa pertanyaan atau penentuan suatu
keputusan.
6. Terminal, untuk menandai awal atau akhir program.
7. Preparation, untuk inisialisasi suatu nilai.
8. Connector, sebagai penghubung dalam satu halaman.
9. Off page connector, sebagai penghubung antar halaman.