• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
25
0
0

Teks penuh

(1)

LANDASAN TEORI

2.1 Optimasi

Menurut Nash dan Sofer (1996), optimasi adalah sarana untuk mengekspresikan model matematika yang bertujuan memecahkan masalah dengan cara terbaik. Untuk tujuan bisnis, hal ini berarti memaksimalkan keuntungan dan efisiensi serta meminimalkan kerugian, biaya atau resiko. Hal ini juga berarti merancang sesuatu untuk meminimalisasi bahan baku atau memaksimalisasi keuntungan. Adapun keinginan untuk memecahkan masalah dengan model optimasi secara umum sudah digunakan pada banyak aplikasi.

Model optimasi telah digunakan selama berabad-abad. Pada masa sekarang ini, optimasi menjadi sangat esensial untuk tujuan bisnis yang semakin kompleks dan rumit. Para insinyur pun menjadi semakin ambisius dalam mengembangkan hal ini. Dalam banyak hal, keputusan dapat saja dibuat tanpa mempertimbangkan tujuan dari model tersebut. Sebagai contoh, dalam kerjasama multinasional, sebagian kecil perkembangan proses operasi dapat mencapai peningkatan keuntungan berjuta-juta dolar. Tetapi, untuk mencapainya dibutuhkan analisis dan kerjasama setiap divisi.

Untuk model yang kompleks, dengan berbagai kerumitan yang ada, keputusan bisnis akan sangat berpengaruh. Dalam beberapa dasawarsa ini, telah dikembangkan hardware dan software komputer, yang berhasil melakukan optimasi secara praktis dalam bisnis dan ilmu pengetahuan. Sekarang ini,

(2)

pemecahan masalah dengan ribuan atau bahkan jutaan variabel menjadi mungkin untuk diselesaikan.

Dalam skripsi ini, akan dibahas model optimisasi yang berhubungan dengan Linear Programming.

2.2 Linear Programming

Linear Programming merupakan model umum yang dapat digunakan

dalam pemecahan masalah pengalokasian sumber-sumber yang terbatas secara optimal. Masalah tersebut timbul apabila seseorang diharuskan untuk memilih atau menentukan tingkat setiap kegiatan yang akan dilakukannya, di mana masing-masing kegiatan membutuhkan sumber yang sama sedangkan jumlahnya terbatas. Secara sederhana, dapat diambil contoh bagian produksi suatu perusahaan yang dihadapkan pada masalah penentuan tingkat produksi masing-masing jenis produk dengan memperhatikan batasan faktor-faktor produksi: mesin, tenaga kerja, bahan mentah, dan sebagainya untuk memperoleh tingkat keuntungan maksimal atau biaya yang minimal.

Pada masa modern sekarang, Linear Programming masih menjadi pilihan dalam upaya untuk memperoleh tingkat keuntungan maksimal atau biaya yang minimal.

Dalam memecahkan masalah di atas, Linear Programming menggunakan model matematis. Sebutan “linear” berarti bahwa semua fungsi matematis yang disajikan dalam model ini haruslah fungsi-fungsi linier. Dalam Linear

Programming dikenal dua macam fungsi, yaitu fungsi tujuan (objective function)

(3)

menggambarkan tujuan/sasaran di dalam permasalahan Linear Programming yang berkaitan dengan pengaturan secara optimal sumber daya-sumber daya, untuk memperoleh keuntungan maksimal atau biaya minimal. Pada umumnya nilai yang akan dioptimalkan dinyatakan sebagai Z. Fungsi batasan merupakan bentuk penyajian secara matematis batasan-batasan kapasitas yang tersedia yang akan dialokasikan secara optimal ke berbagai kegiatan.

Menurut Supranto(1983,p76-82), suatu persoalan disebut persoalan Linear

Programming apabila memenuhi:

1. Tujuan (obyektif) yang akan dicapai harus dapat dinyatakan dalam fungsi linier. Fungsi ini disebut fungsi tujuan (fungsi obyektif).

2. Harus ada alternatif pemecahan yang membuat nilai fungsi tujuan optimum (laba yang maksimum, biaya yang minimum).

3. Sumber-sumber tersedia dalam jumlah yang terbatas (bahan mentah, modal, dan sebagainya). Kendala-kendala ini harus dinyatakan di dalam pertidaksamaan linier (linear inequalities).

Pada dasarnya, persoalan Linear Programming dapat dirumuskan sebagai berikut.

Cari x1,x2, …, xj, …, xn.

sedemikian rupa sehingga

Z = c1x1 + c2x2 + … + cjxj + … + cnxn = Optimum (Maksimum atau

(4)

dengan kendala: 0 ,..., ,..., , .... . . . .... .... .... 2 1 2 2 1 1 3 3 2 23 1 13 2 2 2 22 1 12 1 1 2 21 1 11 ≥ ≤ + + + ≤ + + + ≤ + + + ≤ + + + n j m n mn m m m m m m m m x x x x h x a x a x a h x a x a x a h x a x a x a h x a x a x a Keterangan:

Ada n macam barang yang akan diproduksi masing-masing sebesar x1, x2,

… , xj, … xn.

xj = banyaknya produksi barang yang ke j, j = 1,2,…,n

cj = harga per satuan barang ke j, disebut “price”

Ada m macam bahan mentah masing-masing tersedia h1, h2, …, hj, …, hm.

hi = banyaknya bahan mentah ke i, i = 1,2, …,m

aij = banyaknya bahan mentah ke i yang dipergunakan untuk memproduksi

1 satuan barang ke j

xj unit memerlukan aij unit bahan mentah i.

2.2.1 Asumsi-asumsi Linear Programming

Asumsi-asumsi Linear Programming dapat dirinci sebagai berikut. o Proportionality

Asumsi ini berarti bahwa naik turunnya nilai Z dan penggunaan sumber atau fasilitas yang tersedia akan berubah

(5)

secara sebanding (proporsional) dengan perubahan tingkat kegiatan.

Z = C1X1 + C2X2 + C3X3 + …..CnXn

Setiap penambahan 1 unit X1 akan menaikkan Z dengan

C1. Setiap penambahan 1 unit X2 akan menaikkan Z dengan C2,

dan seterusnya.

a11X1 + a12X2 + a13X3 + ….. + anXn ≤ b1

Setiap penambahan 1 unit X1 akan menaikkan penggunaan

sumber/fasilitas 1 dengan a11. Setiap penambahan 1 unit X2 akan

menaikkan penggunaan sumber/fasilitas 1 dengan a12, dan

seterusnya. Asumsinya adalah, setiap ada kenaikan kapasitas riil tidak perlu ada biaya persiapan (set up cost).

o Additivity

Asumsi ini berarti bahwa nilai tujuan tiap kegiatan tidak saling mempengaruhi, atau dalam Linear Programming dianggap bahwa kenaikan dari nilai tujuan (Z) yang diakibatkan oleh kenaikan suatu kegiatan dapat ditambahkan tanpa mempengaruhi bagian nilai Z yang diperoleh dari kegiatan lain.

Z = 3X1 + 5X2 di mana X1 = 10; X2 = 2;

(6)

Jika X1 bertambah 1 unit, maka sesuai dengan asumsi, maka nilai

Z menjadi 40 + 3 = 43. Jadi, nilai 3 karena kenaikan X1 dapat

langsung ditambahkan pada nilai Z mula-mula tanpa mengurangi bagian Z yang diperoleh dari kegiatan 2 (X2). Dengan kata lain,

tidak ada korelasi antara X1 dan X2.

o Divisibility

Asumsi ini menyatakan bahwa keluaran yang dihasilkan oleh setiap kegiatan dapat berupa bilangan pecahan. Demikian pula dengan nilai Z yang dihasilkan.

o Deterministic (certainty)

Asumsi ini menyatakan bahwa semua parameter yang terdapat dalam model Linear Programming (aij, bi, cj) dapat

diperkirakan dengan pasti, meskipun jarang dengan tepat.

2.3 Simplex Linear Programming

Apabila suatu masalah Linear Programming hanya mengandung dua kegiatan (variabel-variabel keputusan) saja, maka dapat diselesaikan dengan metode grafik. Bila terdapat lebih dari dua variabel maka metode grafik tidak dapat digunakan lagi, sehingga diperlukan metode simpleks. Metode ini lazim dipakai untuk menentukan kombinasi dari tiga variabel atau lebih.

Masalah Linear Programming yang melibatkan banyak variabel keputusan dapat dengan cepat dipecahkan dengan bantuan komputer. Bila variabel keputusan yang dikandung tidak terlalu banyak, masalah tersebut dapat diselesaikan dengan suatu algoritma yang biasanya sering disebut metode tabel

(7)

simpleks. Disebut demikian karena kombinasi variabel keputusan yang optimal dicari dengan menggunakan tabel-tabel.

Menurut Subagyo et al. (1983,p34-39), langkah-langkah metode tabel simpleks adalah sebagai berikut.

1. Mengubah fungsi tujuan dan batasan-batasan

Fungsi tujuan diubah menjadi fungsi implisit, artinya semua cjxj

digeser ke kiri.

2. Menyusun persamaan-persamaan di dalam tabel

Setelah formulasi disusun ke dalam tabel dan simbol, maka akan tampak seperti pada tabel 2.3.

Tabel 2.1. Tabel simpleks dalam bentuk simbol

Sumber: Subagyo (1983, p50) Variabel dasar Z X1 X2 … Xn Xn+1 Xn+2 … Xn+m NK Z Xn+1 Xn+2 . . Xn+m 1 0 0 . . 0 -c1 -c2 … -cn 0 0 … 0 a11 a12 … a1n 1 0 … 0 a21 a22 … a2n 0 1 … 0 . . … . . . … . . . … . . . … . am1 am2 … amn 0 0 … 1 0 b1 b2 . . bm

NK adalah nilai kanan persamaan, yaitu nilai di belakang tanda sama dengan (=). Variabel dasar adalah variabel yang nilainya sama dengan sisi kanan dari persamaan. Pada tabel tersebut, nilai variabel dasar pada fungsi tujuan (fungsi permulaan) ini harus 0, dan nilainya pada kendala-kendala bertanda positif.

Setelah data disusun dalam tabel-tabel di atas kemudian diadakan perubahan-perubahan agar dapat mencapai titik optimal, dengan langkah-langkah selanjutnya.

(8)

3. Memilih kolom kunci

Kolom kunci adalah kolom yang merupakan dasar untuk mengubah tabel di atas. Dipilih kolom yang mempunyai nilai pada baris fungsi tujuan yang bernilai negatif dengan angka terbesar. Kalau suatu tabel sudah tidak memiliki nilai negatif pada baris fungsi tujuan, berarti tabel itu tidak bisa dioptimalkan lagi.

4. Memilih baris kunci

Baris kunci adalah baris yang merupakan dasar untuk mengubah tabel tersebut di atas. Untuk itu, terlebih dahulu dicari indeks tiap-tiap baris dengan cara membagi nilai-nilai pada kolom NK dengan nilai yang sebaris pada kolom kunci.

Indeks = nilai kolom NK / nilai kolom kunci. Kemudian dipilih

angka yang memiliki nilai positif terkecil. 5. Mengubah nilai-nilai baris kunci

Nilai baris kunci diubah dengan cara membaginya dengan angka kunci.

6. Mengubah nilai-nilai selain pada baris kunci

Nilai-nilai baris yang lain, selain pada baris kunci dapat diubah dengan rumus berikut:

Baris baru = baris lama – (koefisien pada kolom kunci) x nilai baru baris kunci

7. Melanjutkan perbaikan-perbaikan/perubahan-perubahan

Ulangi langkah perbaikan mulai langkah ke-3 sampai langkah ke-6 untuk memperbaiki tabel-tabel yang telah diubah/diperbaiki nilainya.

(9)

Perubahan baru berhenti setelah baris pertama (fungsi tujuan) tidak ada yang bernilai negatif.

Menurut Subagyo et al. (1995,p43-46), terdapat beberapa ketentuan tambahan yang berupa :

1) Terdapat lebih dari satu kolom bernilai “negatif terbesar yang sama”

Kalau pada baris fungsi tujuan terdapat lebih dari satu kolom yang mempunyai nilai negatif yang angkanya terbesar dan sama, maka ada dua kolom yang bisa terpilih menjadi kolom kunci. Untuk mengatasi hal ini, dapat dipilih salah satu secara sembarang.

2) Dua baris atau lebih mempunyai indeks positif terkecil

Kalau ada dua baris atau lebih yang mempunyai nilai positif terkecil yang sama, maka ada beberapa baris yang dapat terpilih sebagai baris kunci. Dapat dipilih baris kunci secara bebas di antara keduanya dan hasilnya akan sama.

3) Kenaikan nilai Z tidak terbatas

Nilai Z (tujuan) suatu permasalahan dapat ditambah terus bila paling tidak ada satu kegiatan yang tidak ada batasannya. Kalau di dalam Linear Programming muncul hal-hal semacam ini, tidak perlu dilanjutkan, cukup disebutkan bahwa kenaikan nilai Z dapat tidak terbatas. Di samping itu, ada baiknya pula bila diteliti lagi formulasi masalahnya, sebab hal ini dapat pula terjadi karena kesalahan dalam formulasi.

(10)

4) Multiple Optional Solutions

Untuk mengetahui apakah suatu masalah Linear

Programming bersifat multiple solutions atau tidak, dilihat baris

fungsi tujuan pada tabel terakhir (optimal). Apabila dalam baris itu terdapat paling tidak satu kolom variabel yang mempunyai nilai 0 maka masalah itu bersifat multiple solutions. Masalah itu akan menghasilkan paling tidak dua alternatif yang mempunyai nilai Z yang sama.

Selain itu juga ada penyimpangan-penyimpangan dari bentuk standar, dimana penyimpangan-penyimpangan tersebut akan diatasi agar bisa diselesaikan dengan metode simpleks.

a) Batasan dengan tanda “sama dengan”

Kalau suatu batasan memakai tanda kesamaan, maka cara mengatasinya dengan menambahkan variabel buatan (artificial variable).

b) Minimasi

Fungsi tujuan dari permasalahan Linear

Programming yang bersifat minimasi, harus diubah

menjadi maksimasi, agar sesuai dengan bentuk standar, yaitu maksimasi. Caranya adalah dengan mengganti tanda positif dan negatif pada fungsi tujuan.

(11)

c) Fungsi pembatas bertanda ≥

Bila suatu fungsi pembatas bertanda ≥, maka harus diubah menjadi ≤ dan akhirnya menjadi = agar dapat diselesaikan dengan metode simpleks.

d) Bagian kanan persamaan bertanda negatif

Bila bagian kanan persamaan bertanda negatif maka harus diubah menjadi positif. Caranya dengan mengubah tanda positif negatif dari tiap-tiap koefisien, kemudian ditambah dengan variabel buatan.

e) Bila minimum nilai Xj boleh negatif

Pada bentuk standar, nilai Xj harus selalu positif

(dengan batasan Xj ≥ 0). Tetapi kadang-kadang suatu

masalah dapat menghasilkan formulasi Linear

Programming yang memungkinkan nilai Xj negatif.

f) Bila nilai Xj boleh positif atau negatif

Kalau hasil Linear Programming memungkinkan nilai Xj positif maupun negatif dan tidak ada batas negatif

tertentu (negatif berapa pun dimungkinkan) maka nilai Xj

diubah menjadi X'j - X''j, dengan ketentuan sebagai berikut:

X'j = mewakili nilai positif dari Xj

(12)

2.4 Fuzzy Linear Programming

2.4.1 Alasan Digunakannya Logika Fuzzy

Ada beberapa alasan orang menggunakan logika fuzzy, antara lain:

1. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti.

2. Logika fuzzy sangat fleksibel.

3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.

4. Logika fuzzy mampu memodelkan fungsi-fungsi non-linier yang sangat kompleks.

5. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.

7. Logika fuzzy didasarkan pada bahasa alami.

Pada Fuzzy Linear Programming, bentuk persamaan akan mengalami sedikit perubahan sebagai berikut.

™ Bentuk imperatif pada fungsi obyektif tidak lagi benar-benar “maksimum” atau “minimum”, karena adanya beberapa hal yang perlu mendapat pertimbangan dalam suatu sistem.

™ Tanda ≤ (pada batasan) dalam kasus maksimasi dan tanda ≥ (pada batasan) dalam kasus minimasi tidak lagi bermakna crisp secara

(13)

matematis, namun sedikit mengalami pelanggaran makna. Hal ini juga disebabkan karena adanya beberapa yang perlu dipertimbangkan dalam sistem yang mengakibatkan batasan tidak dapat didekati secara tegas.

Contoh kasus maksimasi pada Linear Programming: Maksimumkan:

f(x) = cTx dengan batasan: Ax ≤ b

x ≥ 0

dengan c,xєRn,bєRm,AєRmxn dan A,b,c adalah bilangan crisp.

Pada Fuzzy Linear Programming, akan dicari suatu nilai z yang merupakan fungi obyektif yang akan dioptimasikan sedemikian hingga tunduk pada batasan-batasan yang dimodelkan dengan menggunakan himpunan fuzzy. Akhirnya persamaan di atas dirubah menjadi sebagai berikut.

Tentukan x sedemikian hingga: cTx ≥ z

Ax ≤ b X ≥ 0

(14)

Contoh kasus minimasi pada Linear Programming: Minimumkan: f(x)=CTx dengan batasan: Ax ≥ b x ≥ 0 dengan c,xєRn,bєRm,AєRmxn

Minimasi pada Fuzzy Linear Programming: Tentukan x sedemikian hingga:

cTx ≤ z

Ax ≥ b X ≥ 0

Tiap-tiap batasan (0, 1, 2, …, m) akan direpresentasikan dengan sebuah himpunan fuzzy, dengan fungsi keanggotaan pada himpunan ke-i adalah µi[Bix].

Fungsi keanggotaan untuk model keputusan himpunan fuzzy dapat dinyatakan sebagai:

µD[x] = min{µi[Bix]}

i

Tentu saja diharapkan akan didapat solusi terbaik, yaitu solusi dengan nilai keanggotaan yang paling besar. Dengan demikian solusi sebenarnya adalah:

max µD[Bx] = max min{µi[Bix]} (1)

(15)

Dari sini terlihat bahwa µi[Bix]=0 jika batasan ke-i benar-benar

dilanggar. Sebaliknya, µi[Bix]=1 jika batasan ke-i benar-benar dipatuhi.

Nilai µi[Bix] akan naik secara monoton pada selang [0,1], yaitu:

1; jika Bix ≤ di

µi[Bix]= є [0,1] jika di < Bix ≤ di + pi (2)

0; jika Bix > di + pi

i = 0, 1, 2, …, m

Gambar 2.1 menunjukkan fungsi keanggotaan tersebut. [Bix] 1 µi[Bix] 0 di di + pi pi

Gambar 2.1 Fungsi Keanggotaan

1; jika Bix ≤ di

µi[x]= 1- Bix- di; jika di < Bix ≤ di + pi

pi

0; jika Bix > di + pi

i = 0, 1, 2, …, m

dengan pi adalah toleransi interval yang diperbolehkan untuk melakukan

pelanggaran baik pada fungi obyektif maupun batasan. Dengan mensubstitusikan (2) ke (1) akan diperoleh:

max µD[Bx] = max min 1- Bix- di

(16)

Dari gambar 2.4.1, terlihat bahwa semakin besar nilai domain, akan memiliki nilai keanggotaan yang cenderung semakin kecil. Sehingga untuk mencari nilai λ-cut dapat dihitung sebagai λ=1-t, dengan:

di + tpi = ruas kanan batasan ke-i

Dengan demikian akan diperoleh bentuk Linear Programming baru sebagai berikut:

Maksimumkan: λ

Dengan batasan: λpi + Bix ≤ di + pi i = 0, 1, …, m x≥0

2.4.2 Penyelesaian masalah dengan metode Fuzzy Linear Programming

Maksimumkan: x1 + x2

dengan batasan: x1 + 2x2 ≥ 5

x1 + x2 ≤ 4

x1 + x2 = 3

x1, x2 ≥ 0

ketiga batasan memiliki toleransi interval masing-masing p1=3, p2=2,

p3=1.

Bentuk tersebut di atas dapat diubah menjadi: Maksimumkan: x1 + x2

dengan batasan: x1 + 2x2 ≥ 5 + 3t

x1 + x2 ≤ 4 + 2t

x1 + x2 = 3 + t

(17)

Jika t=0 (λ=1), maka bentuk di atas menjadi: Maksimumkan: x1 + x2 dengan batasan: x1 + 2x2 ≥ 5 x1 + x2 ≤ 4 x1 + x2 = 3 x1, x2 ≥ 0

yang dapat diselesaikan dengan menggunakan metode simpleks. Bentuk standar Linear Programming:

Maksimumkan: z = x1 + x2

dengan batasan: x1 + 2x2 – S1 + S2 = 5

x1 + x2 + S3 = 4

x1 + x2 + S4 = 3

x1, x2 ≥ 0

Tabel simpleks untuk solusi awal adalah:

z x1 x2 S1 S2 S3 S4 Solusi

Z 1 -2M-1 -3M-1 M 0 0 0 -8M

S2 0 1 2 -1 1 0 0 5

S3 0 1 1 0 0 1 0 4

S4 0 1 1 0 0 0 1 3

Tabel simpleks untuk solusi yang baru:

z x1 x2 S1 S2 S3 S4 Solusi

Z 1 -0.5M+0.5 0 -0.5M+0.5 1.5M+0.5 0 0 7.5M+2.5

S2 0 0.5 1 -0.5 0.5 0 0 2.5

S3 0 0.5 0 0.5 -0.5 1 0 1.5

(18)

Tabel simpleks untuk solusi akhir: z x1 X2 S1 S2 S3 S4 Solusi Z 1 1M-1 1M-1 0 2M-0.5 0 0 10M S2 0 -1 -2 1 -1 0 0 -5 S3 0 1 1 0 0 1 0 4 S4 0 1 1 0 0 0 1 3

Hasil akhir untuk t=0 (λ=1), adalah: z = 10M;

Jika t=1 (λ=0), maka bentuk awal Linear Programming dapat diubah menjadi: Maksimumkan: x1 + x2 dengan batasan: x1 + 2x2 ≥ 8 x1 + x2 ≤ 6 x1 + x2 = 4 x1, x2 ≥ 0

yang juga dapat diselesaikan dengan menggunakan metode simpleks. Bentuk standar Linear Programming:

Maksimumkan: z = x1 + x2

dengan batasan: x1 + 2x2 – S1 + S2 = 8

x1 + x2 + S3 = 6

x1 + x2 + S4 = 4

(19)

Tabel simpleks untuk solusi awal adalah: z x1 x2 S1 S2 S3 S4 Solusi Z 1 -2M-1 -3M-1 M 0 0 0 -12M S2 0 1 2 -1 1 0 0 8 S3 0 1 1 0 0 1 0 6 S4 0 1 1 0 0 0 1 4

Tabel simpleks untuk solusi yang baru:

z x1 x2 S1 S2 S3 S4 Solusi

Z 1 -0.5M+0.5 0 -0.5M+0.5 1.5M+0.5 0 0 22M+4

S2 0 0.5 1 -0.5 0.5 0 0 4

S3 0 0.5 0 0.5 -0.5 1 0 2

S4 0 0.5 0 0.5 -0.5 0 1 0

Tabel simpleks untuk solusi akhir:

z x1 X2 S1 S2 S3 S4 Solusi

Z 1 1M-1 1M-1 0 2M-0.5 0 0 26M

S2 0 -1 -2 1 -1 0 0 -8

S3 0 1 1 0 0 1 0 6

S4 0 1 1 0 0 0 1 4

Hasil akhir untuk t=1 (λ=0), adalah: z =26M;

Dari kedua hasil ini (t=1 dan t=0), dapat ditentukan nilai p0, yaitu hasil

pengurangan dari z pada saat t=1 dengan z pada saat t=0 (26M-10M=16M).

Dengan mengambil λ=1-t, akhirnya dapat dibentuk model Fuzzy Linear

Programming sebagai berikut.

Maksimumkan: λ

dengan batasan: -16Mλ - x1 - x2 ≤ -26M – 16M

3λ + x1 + x2 ≤ 5 + 3

(20)

λ + x1 + x2 ≤ 3 + 1

λ, x1, x2 ≥ 0

Tabel simpleks untuk solusi awal:

z x1 x2 S1 S2 S3 S4 S5 Solusi

z 1 -16 1 1 0 0 0 0 -42

S2 0 3 1 2 -1 1 0 0 8

S3 0 2 1 1 0 0 1 0 6

S4 0 1 1 1 0 0 0 1 4

Tabel simpleks untuk solusi baru:

z x1 x2 S1 S2 S3 S4 S5 Solusi

z 1 0 6.33 11.66 5.33 5.33 0 0 0.66

S2 0 1 0.33 0.66 -0.33 0.33 0 0 2.66

S3 0 1 0.33 -0.33 0.66 -0.66 1 0 0.66

S4 0 0 0.66 0.33 0.33 -0.33 0 1 1.33

2.5 Dasar Perancangan Perangkat Lunak

Menurut Mahyuzir (1991,p78), 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 atau penyusunan pengertian yang lebih luas.

2.5.1 Fase Pengembangan dan Perancangan Perangkat Lunak

Menurut Mahyuzir (1991,p78), fase pengembangan Perangkat Lunak terdiri dari tiga langkah sebagai berikut.

(21)

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 diatas, maka dilakukan perpaduan perangkat lunak dan validasi.

Menurut Pressman (2001, p6), yang dimaksud dengan perangkat lunak adalah (1) kumpulan instruksi (program komputer) yang jika dieksekusi akan menyediakan fungsi dan dayaguna yang diinginkan, (2) kumpulan struktur data yang memungkinkan program untuk memanipulasi informasi dengan memadai, dan (3) kumpulan dokumen yang menggambarkan operasi dan penggunaan program. Dalam perancangan perangkat lunak terdapat beberapa macam model seperti

linear, spiral, incremental, dll. Dipilih model waterfall ( linier ) karena

(22)

analysis design code test System/information

engineering

Gambar 2.2 Model linear sekuensial

Sumber: Pressman (2001, p6)

Langkah-langkah dalam model waterfall adalah sebagai berikut. 1. Rekayasa dan penyusunan sistem/informasi

Tahap ini dimulai dengan menyusun kebutuhan (requirement) untuk seluruh elemen sistem dan kemudian mengalokasikan beberapa subset dari kebutuhan tersebut pada perangkat lunak (software). Proses ini sangat penting ketika perangkat lunak harus berinteraksi dengan elemen yang lainnya seperti, perangkat keras (hardware), manusia, dan basis data (database).

2. Analisis kebutuhan perangkat lunak

Proses pengumpulan kebutuhan pada tahap ini lebih diintensifkan dan difokuskan pada perangkat lunak. Pengembang perangkat lunak harus memahami tentang fungsi yang dibutuhkan, perilaku, dayaguna dan tampilan layar dari perangkat lunak yang akan dikembangkan.

(23)

3. Perancangan (design)

Perancangan perangkat lunak sesungguhnya merupakan proses bertahap yang berfokus pada empat atribut dari sebuah program, yaitu: struktur data, arsitektur perangkat lunak, representasi tampilan layar, dan detail prosedural (algoritmik). Proses desain menerjemahkan kebutuhan menjadi suatu representasi dari perangkat lunak yang dapat diakses sebelum pengkodean dimulai.

4. Pembuatan kode (code generation)

Proses penerjemahan bentuk desain menjadi bentuk yang dapat dibaca oleh mesin.

5. Pengujian (testing)

Pengujian program dilakukan setelah kode dihasilkan. Proses pengujian difokuskan pada bagian internal software secara logis, memastikan bahwa setiap pernyataan (statement) telah diuji, dan pada bagian eksternal fungsi, di mana dilakukan pengujian untuk menemukan error dan memastikan bahwa masukan yang ditentukan akan memberikan hasil yang diharapkan.

6. Pemeliharaan (Maintenance)

Ketika perangkat lunak telah selesai dikembangkan, perangkat lunak tersebut mungkin akan mengalami masalah atau

error yang tidak diharapkan sebelumnya. Untuk itu, tahapan

pemeliharaan dilakukan dengan tujuan melakukan penyesuaian dan perbaikan pada perangkat lunak tersebut.

(24)

Fase pengembangan menerapkan 75 % atau lebih biaya dalam perekayasaan perangkat lunak. Keputusan yang diambil akan mempengaruhi keberhasilan penerapan dan mengurangi pekerjaan pada fase pemeliharaan. Hal yang terpenting dalam perancangan perangkat lunak adalah kualitas. Perancangan menyediakan gambaran atau model yang dapat dinilai segi kualitasnya.

Perancangan perangkat lunak merupakan landasan untuk seluruh fase pengembangan dan pemeliharaan. Tanpa perancangan, akan dihasilkan sistem yang tidak stabil.

2.5.2 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.

Berdasarkan manajemen proyek, perancangan perangkat lunak dikerjakan dalam dua langkah sebagai berikut.

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.

(25)

2.5.3 Perancangan Prosedural

Perancangan prosedural dikerjakan setelah struktur data dan program dibuat. Perancangan prosedural umumnya menggunakan bahasa natural dalam menentukan spesifikasi dan menulis algoritma. Hal ini mempunyai tujuan agar orang-orang yang berada di luar tim pengembangan dapat mengerti dan mempelajarinya. Keburukan membuat perancangan prosedural dalam bahasa natural adalah dapat menimbulkan arti ganda. Untuk itu perlu ditentukan batasan-batasan bahasa natural yang digunakan.

Gambar

Tabel 2.1.   Tabel simpleks dalam bentuk simbol  Sumber: Subagyo (1983, p50)          Variabel  dasar  Z X 1      X 2      …    X n     X n+1      X n+2      …     X n+m  NK Z  X n+1  X n+2
Gambar 2.1 Fungsi Keanggotaan         1;    jika B i x ≤ d i
Tabel simpleks untuk solusi yang baru:
Tabel simpleks untuk solusi akhir:     z  x1  X2  S1 S2 S3 S4  Solusi  Z 1  1M-1 1M-1 0 2M-0.5 0 0   10M  S2  0  -1 -2 1 -1 0 0  -5  S3 0  1 1 0 0 1 0  4  S4 0  1 1 0 0 0 1  3
+3

Referensi

Dokumen terkait

bersangkutan memfokuskan kegiatan masyarakat untuk menghasilkan satu produk yang dipandang merupakan produk unggulan desa (daerah) tersebut (Maramis, 2013 )..  Instruksi Presiden

Dalam persaingan antara Panjalu dengan Kediri, ternyata Kediri yang unggul dan menjadi negara yang besar kekuasaannya. Jayabaya ingin mengembalikan kejayaan seperti

Kampung Malang adalah kampung yang unik dengan karakteristik yang khas yaitu adanya bangunan kuno yang berarsitektur jawa dan cina, adanya legenda atau cerita rakyat yang

Rata-rata nilai hasil belajar siswa kelas X TKB menggunakan media pembelajaran langsung menggunakan media miniatur pada kompetensi dasa pelaksanaan pekerjaan acuan/bekisting

Berdasarkan beberapa definisi ritel di atas dapat disimpulkan bahwa ritel adalah suatu kegiatan atau aktivitas bisnis yang terlibat dalam menjual barang dan jasa kepada konsumen

Dengan mengetahui besarnya kandungan bahan aktif fomesafen di dalam biji kedelai dan kacang hijau yang dihasilkan dari tanaman yang ditumbuhkan pada tanah

Mohon partisipasi seluruh anggota jemaat GPBB untuk melakukan pemungutan suara ini yang akan diadakan pada 12 Agustus setelah KU1 &amp; KU2. Hermawan atau

Dari uraian tersebut diatas peneliti tertarik untuk mendalami pelaksanaan fungsi verifikasi PPK SKPD atas pertanggungjawaban bendahara dilingkungan Pemerintah Kota