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 Pn = a n P0 . 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
Z =∑cj xj j =1
Kendala :
n
∑a j =1
ij
x j ≤ / ≥ bi
xj ≥0
untuk i = 1,2,3,...,m
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 x1, x2, x3, ..., xn aij
→
nilai tujuan yang akan dicapai.
→
variabel keputusan yang akan dicari.
→
jumlah resource yang harus dialokasikan pada setiap kegiatan ke (j).
b1, b2, b3, ..., bm cij 2.2.3
→
jumlah resource.
→
nilai dari setiap kegiatan ke (j).
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 : 9 Fungsi tujuan (objective function) berbentuk maksimasi atau
minimisasi. 9 Semua kendala digambarkan dalam bentuk persamaan. 9 Semua variabel keputusan non – negatif. 9 Nilai ruas kanan setiap kendala non – negatif.
2. Bentuk kanonik Karakteristik dari bentuk kanonik ini adalah: 9 Semua kendala berbentuk lebih kecil sama dengan (≤). 9 Semua variabel keputusan non – negatif. 9 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. Langkahlangkah 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. Indeks =
Nilai Kanan Angka Kolom Kunci
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. Baris Kunci yang baru =
Baris Kunci yang lama Angka Kunci
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
Menjadi maksimalkan (-Z)
= 3X1 + 5X2 = -3X1 – 5X2
2. Untuk fungsi batasan: 9 Jika sebelumnya fungsi batasan sudah bertanda (=), maka untuk
menjadi persamaan simpleks, perlu dibuatkan sebuah variabel yang disebut dengan variabel buatan (artificial variabel). 9 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. 9 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
= 8
2X1
3X2 ≤ 15
Mesin B 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
Menjadi maksimalkan (-Z)
= 3X1 + 5X2 = -3X1 – 5X2
2. Untuk fungsi batasan •
Fungsi batasan 1 Mesin A
2X1
Menjadi
2X1
= 8 + 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
maksimalkan (-Z) Menjadi
= 3X1 + 5X2 = -3X1 – 5X2
maksimalkan -Z + 3X1 + 5X2 +MX3 = 0
24 •
Fungsi batasan 2 Mesin B
3X2
Menjadi
3X2
≤ 15 + 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: X3
X4
X5
X6
NK
3-2M 5
0
0
0
M
-8M
(6
0
0
-1
1
-8M+3 -5M+5 0
0
M
0
X1
X2
5
30) M _ -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 langkahlangkah 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 informasiinformasi 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.