BAB 2 LANDASAN TEORI
2.1
Pemodelan Matematika Menurut E.A. Bender. (2000, p11-12), pemodelan matematika adalah proses
membuat representasi aspek esensial dari sistem yang sudah ada (atau sistem yang akan dikonstruksi) yang mempresentasikan pengetahuan pada sistem tersebut dalam bentuk yang berguna. Sementara menurut Jay I. Myung dan Mark A. Pitt (2001, p115), saat sebuah struktur matematis, misalnya grafik, digunakan untuk mendeskripsikan dan mempelajari masalah dunia nyata, struktur itu adalah sebuah model matematika untuk masalah asli. Jadi dapat disimpulkan bahwa pemodelan matematika adalah proses membuat representasi dan deskripsi yang berguna untuk mempelajari masalah sistem atau dunia nyata.
2.2
Pemrograman Matematika Pemrograman Matematika (mathematical programming) adalah studi yang
menyangkut optimalisasi suatu fungsi riil yang dibatasi oleh variabel-variabel bernilai riil atau bulat. Perlu diingat bahwa pemrograman dalam hal ini bukan pemrograman komputer atau pengembangan software, walaupun dalam penerapannya sering menggunakan komputer. Pemrograman matematika adalah suatu masalah optimasi yang dapat dinyatakan dalam bentuk berikut.
9 Maksimumkan f ( x) : x ∈ X , g ( x) ≤ 0, h( x) = 0 , di mana X ⊂ R n dan X berada
dalam domain dari nilai riil fungsi f, g dan h. Hubungan g ( x) ≤ 0 dan h( x) = 0 disebut kendala (constraints), dan f disebut fungsi tujuan (objective function).
2.3
Linear Programming
George B. Dantzing yang sering disebut Bapak Linear Programming, di dalam bukunya: Linear Programming and Extension, menyebutkan, bahwa ide dari pada linear
programming ini berasal dari ahli matematik Rusia bernama L.V. Kantorivich yang pada tahun 1939 menerbitkan sebuah karangan dengan judul : “Mathematical Methods in the Organization and Planing of Production”. Di dalam karangan tersebut telah dirumuskan persoalan linear programming untuk pertama kalinya. Akan tetapi ide ini rupanya di Rusia tidak dapat berkembang. Ternyata dunia barat yang memanfaatkan ide ini selanjutnya. Kemudian pada tahun 1947 seorang ahli matematik dari Amerika Serikat, yaitu George D. Dantzig menemukan suatu cara untuk memecahkan persoalan linear
programming tersebut dengan suatu metode yang disebut “simplex method”. Sejak saat itu yaitu sejak tahun lima puluhan linear programming tersebut berkembang dengan pesat; dalam bidang kemiliteran (untuk penyusunan strategi perang, persoalan bombing
pattern) maupun di dalam bidang business (persoalan untuk mencapai maksimum profit, minimum loss, dan lan sebagainya). Sekarang penggunaan linear programming bukan saja terbatas pada bidang kemiliteran, atau bidang ekonomi perusahaan yang sifatnya mikro (sebagai alat management), akan tetapi sudah meluas terutama di dalam perencanaan pembangunan ekonomi nasional yang bersifat makro, misalnya di dalam
10 penentuan allocation of resources, allocation of investments, rotation corp policy, peningkatan penerimaan devisa, dan lain sebagainya. Secara umum, persoalan linear programming ialah suatu persoalan untuk menentukan besarnya masing-masing nilai variabel sedemikian rupa sehingga nilai fungsi tujuan atau objektif (objective function) yang linier menjadi optimum (maksimum atau minimum) dengan memperhatikan pembatasan-pembatasan yang ada; yaitu pembatasan mengenai inputnya. Pembatasan-pembatasan inipun harus dinyatakan dalam pertidaksamaan yang linier (linear inequalities). Berikut adalah bentuk umum dari
Linear Programming. maks Z = C1 X 1 + C 2 X 2 + ... + C n X n Dengan kendala a11 x1 + a12 x 2 + ... + a1m x n ≤ b1 a 21 x1 + a 22 x 2 + ... + a 2 m x n ≤ b2 ....
....
.....
a m1 x1 + a m 2 x 2 + ... + a mn x n ≤ bm x1 , x 2 , x3 ,..., x n ≤ 0
Suatu persoalan disebut persoalan Linear Programming apabila memenuhi halhal berikut. 1. Tujuan (objective) yang akan dicapai harus dapat dinyatakan dalam bentuk fungsi linier. Fungsi ini disebut fungsi tujuan (objective function). 2. Harus ada alternatif pemecahan. Pemecahan yang membuat nilai fungsi tujuan optimum (laba yang maksimum, biaya yang minimum) yang harus dipilih.
11 3. Sumber-sumber tersedia dalam jumlah yang terbatas (bahan mentah terbatas, modal terbatas, ruangan untuk menyimpan barang terbatas). Pembatasan-pembatasan harus dinyatakan di dalam pertidaksamaan yang linier (linear inequality).
2.4
Integer Programming
Integer Programming adalah suatu Linear Programming dengan tambahan persyaratan bahwa semua atau beberapa variabel bernilai bulat (non-negatif), namun tidak perlu bahwa parameter model juga bernilai bulat. Ada beberapa persoalan Linear Programming yang jawabannya tidak masuk akal jika pemecahannya menghasilkan bilangan-bilangan pecahan. Di dalam persoalan ekonomi sering kali dijumpai variabel-variabel yang nilainya harus positif misalnya produksi mobil, produksi kapal terbang/laut, jumlah jembatan, jumlah gedung. Dalam persoalan ini bilangan-bilangan pecahan tidak mempunyai arti. Seringkali dalam praktek dilakukan pembulatan saja dari hasil pemecahan persoalan Linear Programming. Misalnya produksi mobil sebanyak (dalam ribuan) 374963,4 dibulatkan saja menjadi 375000. Terdapat tiga jenis Integer Programming sebagai berikut. 1. Pure (all) Integer Programming (PIP): model Integer Programming yang semua variabel basis bernilai integer (bulat positif/nol). 2. Mixed Integer Programming (MIP): model Integer Programming yang hanya variabel tertentu yg bernilai integer (bulat positif/nol). 3. Zero One Integer Programming (ZIP): model Integer Programming yang variabelnya hanya bernilai nol atau satu.
12 Masalah Integer Programming dapat dirumuskan dalam bentuk berikut. n
max f = ∑ C j X j j =1
Dengan kendala : n
∑a j =1
ij
x j (≥, =, ≤)bi
untuk : i = 1,2,3…, m j = 1,2,3,…, n
xij ≥ 0
2.5
Masalah Alokasi Multi-Kriteria Sumber Daya Manusia
2.5.1
Optimisasi Satu Kriteria
Dmitris Alevras dan Manfred W. Padberg (2001, p235), model matematis umum untuk masalah optimisasi satu kriteria sering juga disebut sebagai program nonlinear. Diberikan fungsi-fungsi linear dan/atau nonlinear
f : R n → R, g : R n → R m , h : R n → R l Tetapkanlah x * agar f ( x * ) memiliki nilai optimum dengan pembatas m + l dimana
g (x* ) = 0 h( x * ) ≥ 0 .
13 Di sini x = ( x1 , x 2 ,..., x n ) T akan disebut sebagai variabel keputusan (decision
variables),
f (x) disebut fungsi sasaran (objective function), g ( x * ) = 0 disebut
persamaan pembatas (equality constraints), dan h( x * ) ≥ 0 disebut pertidaksamaan pembatas (inequality constraints). Dalam hal ini diambil kesepakatan bahwa yang dimaksud dengan nilai optimum adalah nilai minimum dari fungsi yang bersangkutan. Masalah mencari x * agar f ( x * ) maksimum dapat diungkapkan sebagai masalah mencari x * agar - f ( x * ) minimum, sebab max f(x) = -min -f(x).
2.5.2
Masalah Optimisasi Multi-Kriteria / Multi-Objektif
Menurut Clerc, M. (2004,p.43-45), dalam masalah optimisasi multi-objektif, fungsi multi-objektif perlu dioptimasi secara simultan. Dalam kasus banyak objektif/tujuan, tidak diperlukan solusi yang terbaik terhadap semua objektif karena bisa terjadi konflik antar objektif karena masing-masing objektif mempunyai kondisi yang berbeda dan tidak berhubungan sehingga tidak dapat dibandingkan. Suatu solusi dapat merupakan solusi yang terbaik pada satu objektif tetapi terburuk pada objektif lain. Oleh karena itu, biasanya terdapat suatu himpunan solusi untuk kasus multiple-objective yang tidak dapat secara sederhana dibandingkan dengan objektif lain. Untuk solusi seperti itu, disebut solusi tanpa dominasi, atau solusi optimal Pareto, di mana tidak akan ada perbaikan yang mungkin terjadi pada fungsi objektif tanpa mengorbankan minimal satu fungsi objektif lain. Pada umumnya, masalah multi-objektif dapat diekspresikan sebagai berikut.
14 min y = f ( x) = ( f 1 ( x), f 2 ( x),..., f n ( x)),
(1-1)
di mana g i ( x) ≤ 0. Vektor pengambilan keputusan x ∈ Rm , vektor tujuan y ∈ Rn , f1 ( x)(i = 1,2,..., n) adalah fungsi objektif, g1 ( x) ≤ 0 adalah fungsi pembatas/kendala. Definisi 1. Jika x * ∈ Rm adalah sebuah titik dalam ruang pencarian; jika dan hanya jika tidak terdapat i (dalam ruang pencarian) yang membuat f i ( x) < f i ( x * ). , maka x * adalah solusi non-dominasi, Definisi 2. Diasumsikan u, y ∈ Rm , jika dan hanya jika vektor-vektor bertemu dengan, f i (u ) < f i (v), ∀ i ∈ {1,2,..., n}; f j (u ) < f j (v), ∃ j ∈ {1,2,..., n}; Maka vektor u dikatakan mendominasi vektor v, dinotasikan sebagai u p v Definisi 3. Diberikan individu x ∈ P , jika tidak ada individu yang membuat y p x , maka x dikatakan individu non-dominasi. Semua individu non-dominasi
pada P terkandung suatu himpunan yang disebut himpunan dominasi P.
2.5.3
Model Matematika dari Alokasi Multi-Kriteria Sumber Daya Manusia
Menurut Zhengyuan Jia dan Lihua Gong (2008, p.1188), model matematika untuk alokasi multi-kriteria sumber daya manusia, untuk menugaskan sebanyak M karyawan ke n departeman/posisi berbeda untuk memaksimalisasi keuntungan dan meminimalisasi biaya dengan satu sumber pembatas dapat diformulasikan sebagai model pemrograman bilangan bulat multi-kriteria sebagai berikut.
15
n
max z1 ( y ) = ∑ f1 ( y i )
(2-1)
i =1
n
min z 2 ( y ) = ∑ f 2 ( yi )
(2-2)
i =1
n
G0 ( y ) = ∑ g i ( yi ) ≤ M
(2-3)
yi = 0,1,..., M
(2-4)
i =1
∀i.
Berdasarkan dengan model matematika di atas, model ini dapat diperluas menjadi model baru untuk optimisasi multi-objective, di mana pada masalah alokasi multi-kriteria sumber daya manusia, untuk menugaskan sejumlah M karyawan ke sejumlah n posisi yang berbeda untuk memaksimalkan keuntungan dan meminimalkan biaya dengan satu sumber pembatas. Model ini diformulasikan sebagai pemrograman bilangan bulat multi-kriteria menurut Zhengyuan Jia dan Lihua Gong (2008, p.1188) sebagai berikut. n
M
max z1 ( x) = ∑∑ pij xij
(2-5)
i =1 j = 0
n
M
min z 2 ( x) = ∑∑ cij xij
(2-6)
i =1 j =0
n
pij = Vi × ∑ i
α il (d ijl − d il0 ) d
0 il
n
α il (d ijl − d il0 )
i
d il0
cij = Wi × ∑
n
×
Dij D j max
(2-7)
(2-8)
M
di mana G0 ( x) = ∑∑ jxij ≤ M , i =1 j =0
(2-9)
16 n
Gi ( x) = ∑ xij = 1, ∀i,
(2-10)
j =1
n
α il (d ijl − d il0 )
i
d il0
∑
≥ 0,
xij = 0atau1, ∀i, j.
(2-11) (2-12)
di mana : i = indeks dari pos/departemen (i=1,2,…,n) j = indeks dari karyawan (j=1,2,…,M) n = jumlah total pos/departemen M = jumlah total karyawan cij = biaya (cost) dari pos/departemen ke-i jika karyawan ke-j ditugaskan pij = keuntungan (profit) dari pos/departemen ke-i jika karyawan ke-j ditugaskan Vi = nilai dari pos/departemen ke-i
α il = berat (weight) kompetensi ke-l dari pos/departemen ke-i untuk l = 1,2,...M d ijl = level kompetensi karyawan ke-j untuk kompetensi ke-l pos/departemen ke-i untuk l = 1,2,...M;
1 ≤ d ijl ≤ 9, d ijl ∈ N ;
d il0 = level referensi dari kompetensi ke-l dari pos/departemen ke-i untuk l = 1,2,...M Dij = level ekspektasi karyawan ke-j terhadap pos/departemen ke-i
17 Untuk 1 ≤ Dij ≤ 9, Dij ∈ N ; D j max = level ekspektasi tertinggi dari karyawan ke-j terhadap
keseluruhan pos/departemen Wi = upah dari pos/departemen ke-i
2.6
System Development Life Cycle (SDLC) SDLC (Systems Development Life Cycle, siklus hidup pengembangan sistem),
adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Dalam rekayasa perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi pengembangan perangkat lunak. Model sekuensial linier/waterfall model untuk software engineering, sering disebut juga dengan siklus kehidupan klasik atau model air terjun. Model ini mengusulkan sebuah pendekatan kepada perkembangan software yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Model sekuensial linier melingkupi aktivitas– aktivitas sebagai berikut. 1. Rekayasa dan pemodelan sistem/informasi Karena sistem merupakan bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software harus berhubungan dengan elemen-elemen yang lain seperti software, manusia, dan database. Rekayasa dan anasisis sistem menyangkut pengumpulan
18 kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta disain tingkat puncak. Rekayasa informasi mencakup juga pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis. 2. Analisis kebutuhan software Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada software. Untuk memahami sifat program yang dibangun, analis harus memahami domain informasi, tingkah laku, unjuk kerja, dan interface yang diperlukan. Kebutuhan baik untuk sistem maupun software didokumentasikan dan dilihat lagi bersama dengan pelanggan. 3. Desain Desain software adalah proses yang berfokus pada empat atribut program yang berbeda: struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Syarat/kebutuhan di dalam sebuah representasi software dapat diperkirakan demi kualitas sebelum dimulai pembuatan kode. Sesuai persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi software. 4. Generasi kode Desain harus diterjemahkan ke dalam bentuk yang bisa dibaca. Proses penerjemahan dilakukan melalui pembuatan kode. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis. 5. Pengujian Setelah program dibuat, pengujian program dimulai. Proses pengujian terfokus pada logika internal software (memastikan bahwa semua pernyataan sudah diuji) dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan-
19 kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan. 6. Pemeliharaan Software dapat mengalami perubahan setelah disampaikan kepada pelanggan. Perubahan bisa terjadi karena software harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Proses pemeliharaan software akan mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.
Sumber: Horner, K. (2009). Methodology as a Productivity Tool, in Software Productivity Handbook, J. Keyes, New York, NY: Windcrest/McGraw-Hill Gambar 2.1 Model Sekuensial Linier/Waterfall
20 2.7
Pengenalan Java Applet
Java applet adalah sebuah program kecil yang ditulis dengan menggunakan bahasa pemrograman java, yang diakses melalui halaman web dan dapat di-download ke dalam mesin klien yang kemudian menjalankannya di dalam jendela web browser. Java applet dapat secara dinamis menambahkan beberapa fungsi kepada halaman-halaman web yang bersifat statis. Akan tetapi, untuk menjalankannya sebuah komputer harus memiliki program web browser yang dapat menjalankan java, seperti Microsoft Internet Explorer 4.0 ke atas, Netscape Navigator, Mozilla Firefox, dan Opera. Ketika sebuah java applet dibuat, semua pernyataan java yang terkandung di dalam kode sumbernya (source code) akan dikompilasi menjadi java bytecode, yakni sebuah bahasa mesin semu (virtual engine/machine language) yang dibentuk oleh java. Berkas yang berisi java bytecode ini akan disimpan sebagai sebuah berkas kelas java (java class file) di dalam sebuah web server, seperti halnya Apache HTTP Server atau Microsoft Internet Information Services (IIS). Sebuah halaman web yang hendak menggunakan applet tersebut harus menggunakan tag <APPLET>... di dalam kode sumber-nya. Ketika sebuah web browser milik klien melakukan request kepada halaman web tersebut dan menemukan bahwa di dalamnya terdapat tag <APPLET>..., bytecode di dalam java class file akan dieksekusi oleh
mesin semu di dalam jendela web browser, yang dapat berupa Microsoft Java Virtual Machine atau Java Runtime Engine dari Sun Microsystems.
2.8
Perancangan Antarmuka Pemakai
Menurut Shneiderman (1993, p72), prinsip atau aturan dari delapan Golden Rules yang merupakan aturan perancangan antarmuka pemakai adalah sebagai berikut.
21 a. Strive for consistency Interface dari suatu aplikasi dijaga agar tetap konsisten, dimulai dari menu-menu yang ada dalam setiap layar tetap sama, dengan ukuran, resolusi yang berbeda dengan tampilan interface yang tetap sama. b. Enable frequent user to use shortcuts Semakin sering user menggunakan suatu aplikasi, user dapat dimudahkan dengan adanya shortcuts yang berupa special keys, hidden commands dan lain sebagainya. c. Offer informative feedback Aplikasi yang digunakan dapat memberikan informasi yang berguna untuk memudahkan user dalam menggunakannya. d. Design dialog to yield closure Aplikasi yang dibuat didesian untuk memberikan kemudahan bagi user dengan memberikan suatu informasi untuk melengkapi suatu action yang dilakukan oleh user. e. Offer simple error handling Sebisa mungkin aplikasi yang dibuat, membuat user untuk tidak melakukan suatu kesalahan fatal. Jika ada suatu kesalahan yang dibuat maka aplikasi yang dibuat haruslah dapat menunjukkan di mana terjadi kesalahan dan menawarkan suatu cara yang mudah untuk menangani kesalahan tersebut. f. Permit easy reversal of actions Aplikasi yang dibuat dapat melakukan suatu action untuk kembali ke action yang sebelumnya jika terjadi suatu kesalahan.
22 g. Support internal locus of control Mendukung user yang berpengalaman untuk menjadi suatu initiators dari suatu kegiatan bukan sebagai responders. h. Reduce short-term memory load Aplikasi dibuat sederhana untuk mengurangi waktu proses, training dan lain sebagainya dikarenakan keterbatasan manusia untuk memproses informasi.