6
BAB II
TINJAUAN PUSTAKA
2.1. Program Linier
Program linier adalah suatu teknik optimalisasi dimana variabel-
variabelnya linier. Metode ini dipakai pada saat penulis dihadapkan pada beberapa
pilihan dengan batasan-batasan tertentu, sedangkan dilain pihak penulis
menghendaki keputusan yang optimum (maksimum/minimum).Pemrograman
linier berkaitan dengan penjelasan suatu kasus dalam dunia nyata sebagai suatu
model matematika yang terdiri dari sebuah fungsi tujuan linier dengan beberapa
kendala linier. Pemrograman linier meliputi perencanaan aktivitas untuk
mendapatkan hasil optimal, yaitu sebuah hasil yang mencapai tujuan terbaik
(menurut model matematika) diantara semua kemungkinan alternatif yang ada.
Sekilas tentang sejarah program linier, Seorang Matematikawan Rusia
L.V. Kantorovich pada 1939 berhasil menemukan pemecaham masalah yang
berkaitan dengan program linear. Pada waktu itu Kantorovich bekerja untuk
Kantor Pemerintah Uni Soviet. Ia diberi tugas untuk mengoptimalkan produksi
pada industri plywood. Ia kemudian muncul dengan teknik matematis yang diakui
sebagai pemrograman linear. Matematikawan Amerika George B. Dantzig
secara independen juga mengembangkan pemecahan masalah tersebut, dimana
hasil karyanya pada masalah tersebut pertama kali dipublikasikan pada tahun
1947. selanjutnya, sebuah teknik yang lebih cepat, tetapi lebih rumit, yang cocok
untuk memecahkan masalah program linear dengan ratusan atau bahkan ribuan
variabel, dikembangkan oleh matematikawan Bell Laboratories, Naranda
Karmarkar pada tahun 1983, Program linear sangat penting khususnya dalam
perencanaan militer dan industri.
(wikipedia.org)
Program linier (linear programming) merupakan model optimasi
persamaan linier yang berkenaan dengan masalah-masalah pertidaksamaan linier,
Masalah program linier berarti masalah nilai optimum (maksium atau minimum)
sebuah fungsi linier pada suatu sistem pertidaksamaan linier yang harus
6
7
memenuhi optimasi fungsi objektif. Dalam banyak situasi sering dijumpai
masalah-masalah yang berhubungan dengan program linier. Agar masalah
optimasinya dapat diselesaikan dengan program linier, maka masalah tersebut
harus diterjemahkan dalam bentuk model matematika.( Mulyono, Sri. 2007)
2.2. Bentuk Umum Program Linier
Pada setiap masalah, ditentukan variabel keputusan, fungsi tujuan, dan
sistem kendala, yang bersama-sama membentuk suatu model matematika dari
dunia nyata. Bentuk umum dari program linier adalah :
Maksimumkan ∑=
=n
jjj XCZ
1
Dengan batasan : { }∑=
>=<n
jijij bXa
1
,, untuk i = 1, 2, 3, … , m
Keterangan :
Z: nilai fungsi tujuan.
Cj : sumbangan per unit kegiatan, untuk masalah maksimisasi Cj menunjukkan
keuntungan atau penerimaan per unit, sementara dalam kasus minimisasi
menunjukkan biaya per unit.
Xj: banyaknya kegiatan j, dimana j = 1, 2, 3, … n. berarti disini terdapat n
variabel keputusan.
aij : banyaknya sumberdaya i yang dikonsumsi sumberdaya j.
bi: jumlah sumberdaya i (i = 1, 2, …, m)
(Mulyono, Sri. 2007)
2.3. Metode Simpleks
Persoalan program linier tidak selalu sederhana karena melibatkan
banyak constraint (pembatas) dan banyak variabel sehingga tidak mungkin
diselesaikan dengan metode grafik. Oleh karena itu serangkaian prosedur
8
matematik (aljabar linier) 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 ia
digunakan sebagai prosedur penyelesaian dari setiap program komputer.
Metode simpleks pertama kali diperkenalkan oleh George B. Dantzig
(Mulyono, Sri., 2007) pada tahun 1947 dan telah diperbaiki oleh beberapa ahli
lain. Metode ini menyelesaikan masalah program linier melalui perhitungan-ulang
(iterasi) dimana langkah-langkah perhitungan yang saman diulang berkali-kali
sebelum solusi optimum dicapai.
Metode simpleks adalah suatu prosedur ulang yang bergerak dari satu
jawab layak basis ke jawab berikutnya sedemikian rupa sehingga harga fungsi
tujuan terus menaik (dalam permasalahan maksimisasi). Proses ini akan
berkelanjutan sampai dicapai jawab optimal (kalau ada) yang memberi harga
maksimum (Siagian, P., 2006).
Metode simpleks merupakan suatu cara yang lazim dipakai untuk
menentukan kombinasi optimal dari tiga variabel atau lebih. Masalah-masalah
yang melibatkan banyak variabel-variabel keputusan dapat dengan cepat
dipecahkan dengan bantuan komputer. Bila variabel keputusan yang dikandung
tidak terlalu banyak masalah maka dapat diselesaikan dengan suatu algoritma
yang biasanya sering disebut dengan “metode tabel simpleks”.
2.3.1 Bentuk Aljabar Simpleks
Berikut adalah contoh kasus permasalahan dalam perusahaan tas PT.
Rezeki Jaya.
Sebuah Perusahaan tas PT. Rezeki Jaya mempoduksi dua jenis tas, yaitu tas model
ransel dan tas model samping. Untuk memproduksi 2 unit produksi tas model
ransel dan 2 unit produksi tas model samping dibutuhkan waktu untuk
pemotongan bahan baku selama 800 jam. Untuk memproduksi 2 unit produksi tas
ransel dan 2,3 unit produksi tas samping dibutuhkan waktu 1000 jam untuk
penjahitan. Untuk menyelesaikan satu unit produksi tas ransel dan 0,5 unit
produksi tas samping dibutuhkan waktu 300 jam untuk penyelesaian. Untuk
9
memproduksi 2 unit produksi tas ransel dan 1,5 unit produksi tas samping
dibutuhkan waktu 650 jam untuk pemeriksaan dan pengepakan. Berapakah
keuntungan maksimal yang dapat diperoleh perusahaan tersebut dalam
memprodukksi 3 unit produksi tas ransel dan 2 unit produksi tas samping. Dari
persoalan diatas dimisalkan X1 adalah tas model ransel dan X2 adalah tas
samping. Persamaan linier dari persoalan diatas adalah :
Maks. Z = 3X1 + 2X2
Dengan kendala :
2X1 + 2X2 <= 800
2X1 + 2.3X2 <= 1000
X1 + 0.5X2 <= 300
2X1 + 1.5X2 <= 650
Dengan menyertakan variabel Slack atau surplus maka model tersebut dibuat
menjadi bentuk standar berikut:
Maks. Z = 3X1 + 2X2 + 0S1 + 0S2 + 0S3 + 0S4
Kendala menjadi:
2X1 + 2X2 + S1 = 800 ... (1)
2X1 + 2.3X2 + S2 = 1000 ... (2)
X1 + 0.5X2 + S3 = 300 ... (3)
2X1 + 1.5X2 + S4 = 650 ... (4)
X1,X2,S1,S2,S3,S4 ≥ 0
Keempat fungsi pembatas tersebut merupakan suatu persamaan sistem
dengan enam variabel. Jika suatu sistem persamaan memiliki veriabel yang lebih
banyak dibanding dengan jumlah persamaannya maka solusi dari persamaan sistem
tersebut adalah infinity. Metode simpleks dengan demikian merupakan prosedur
10
aljabar untuk mendapatkan solusi terbaik bagi suatu sistem persamaan. Dalam proses
mencari solusi terbaik (best solution), solusi yang tidak memenuhi persyaratan non
negatif akan dieliminasi.
2.3.2. Mendapat Solusi Dasar Dalam maksimisasi
Oleh karena jumlah variabel dalam persamaan sistem lebih besar dibanding
jumlah persamaaannya –-dalam hal ini ada enam variabel untuk empat persamaan--
maka metode simpleks memberikan nilai nol untuk dua variabel, dan mencari solusi
terbaik bagi empat variabel lainnya dalam sistem persamaan tersebut. Misalkan X2 = 0
dan S1 = 0 sehingga persamaan sistem tersebut menjadi:
2X1 = 800 ... (5)
2X1 + S2 = 1000 ... (6)
X1 + S3 = 300 ... (7)
2X1 + S4 = 650 ... (8)
Dengan menetapkan nilai nol untuk variabel X2 dan S1 maka persamaan sistem
tersebut direduksi menjadi empat persamaan dengan empat variabel (X1,S2,S3,S4).
Dari persamaan (5) diperoleh
2X1 = 800
sehingga X1 = 800/2 = 400.
Dari persamaan (6) masukkan nilai X1 = 400 untuk mendapatkan nilai S2 yaitu
2X1 + S2 = 1000
sehingga S2 = 1000 – (2*400) = 200
Dari persamaan (7) diperoleh
X1 + S3 = 300
sehingga S3 = 300 – 400 = -100
Dari persamaan (8) diperoleh
11
2X1 + S4 = 650
sehingga diperoleh S4 = 650 – (2*400) = -150
Dengan demikian diperoleh solusi dari persamaan sistem dengan enam variabel dan
empat persamaan, yaitu:
X1 = 400
X2 = 0
S1 = 0
S2 = 200
S3 = -100
S4 = -150
Solusi diatas disebut Solusi dasar (Basic Solution). Prosedur umum untuk
mendapatkan basic solution adalah dengan membangun bentuk persamaan standar
untuk n variabel (termasuk variabel keputusan, slack dan surplus) dan m persamaan
pembatas dimana n lebih besar dari m.
Untuk mendapatkan solusi dasar, tetapkan n-m variabel mana saja seb agai variabel
non basis dan beri nilai nol dan temukan solusi dari m persamaan pembatas untuk m
variabel lainnya.
2.3.3. Solusi Fisibel Dasar (Basic Feasible Solution)
Solusi dasar mungkin saja fisibel atau infisibel. Sebuah solusi dasar fisibel
akan memenuhi persyaratan tidak negatif. Solusi dasar yang diperoleh diatas dengan
menetapkan X2 dan S1 sebagai variabel bukan basis dan bernilai sama dengan nol telah
mendapatkan solusi untuk nilai X1,S2,S3,S4 bukan sebagai solusi dasar fisibel karena
nilai S3 = -100 dan S4 = -150. Olehkarena itu pemilihan variabel bukan basis perlu
diubah. Jadi jika variabel yang dipilih sebagai variabel bukan basis adalah X1 dan X2
dan bernilai nol maka solusi basis yang diperoleh adalah fisibel, yaitu:
12
S1 = 800
S2 = 1000
S3 = 300
S4 = 650
dengan variabel bukan basis X1 = 0 dan X2 = 0.
2.3.4. Prosedur Penyelesaian Program Linier Dengan Metode Simpleks
1. Formulasikan persoalan menjadi model linear.
2. Transformasikan model tersebut kedalam bentuk standar dengan
menambahkan variabel slack atau mengurangi dengan variabel surplus.
3. Buatlah tabel simpleks.
2.3.5. Menyusun Tabel Simpleks Awal (Initial Simplex Table)
Setelah melakukan konversi program linier kedalam tabel simpleks maka
tahap pertama adalah membangun tabel simpleks awal (initial simplex table). Pada
tahap ini termasuk pemberian notasi bagi semua konstanta yaitu:
cj = konstanta fungsi tujuan untuk variabel j
bi = konstanta sisi kanan (RHS) untuk constraint ke i
aij = konstanta yang berasosiasi dengan variabel j pada constraint i
Koefisien-koefisien ini merupakan bagian yang menyususn tabel simpleks seperti
berikut :
13
Jadi tabel simpleks awal untuk persoalan diatas adalah :
Tabel 2.1
Baris pertama tabel simpleks awal tersebut menunjukkan koefisien dari masing-
masing variabel pada fungsi tujuan, sedangkan koefisien di bawahnya dan di sebelah
kiri garis vertikal merupakan koefisien dari masing-masing variabel pada setiap
constraint. Elemen di sebelah kanan garis vertikal menunjukkan nilai dari sisi kanan
dari constraint. Demi kemudahan, setiap kategori koefisien diperlakukan sebagai suatu
grup yang terdiri dari:
Baris C = baris dari koefisien fungsi tujuan
Kolom B = kolom dari nilai sisi kanan masing-masing constraint
Matrix A = marupakan matrix m x n dari koefisien masing-masing variabel pada
setiap
constraint.
Guna lebih memudahkan dalam mengingat masing-masing koefisien maka di
bagian paling atas tabel simpleks dituliskan simbol masing-masing variabel menjadi:
Tabel 2.2
14
Dari tabel simpleks awal dapat diketahui dengan mudah solusi fisibel dasar awal (
initial basic feasible solution ) karena untuk setiap kolom dari variabel basis
terdapat koefisien yang bernilai satu demikian juga untuk setiap barisnya. Nilai
dari variabel basis dengan demikian dinyatakan oleh nilai sisi kanan yang berada
pada kolom bi. Misalkan nilai S2 adalah 1000
Tabel 2.3
2.3.6. Perbaikan Solusi
Guna meningkatkan solusi maka metode simpleks harus menghasilkan solusi
fisibel dasar ( basic feasible solution ) yang baru ( ekstreme point ) yang memberikan
perbaikan pada nilai fungsi tujuan. Hal ini dilakukan dengan mengganti salah satu
variabel basis dengan variabel bukan basis, artinya menetapkan variabel yang semula
adalah bukan basis untuk menggantikan satu variabel yang semula variabel basis.
Metode simpleks memberikan cara dan prosedur untuk proses penggantian variabel
ini. Untuk lebih memudahkan proses maka ditambahkan dua kolom pada bagian kiri
tabel simpleks awal, satu kolom diberi label Basis dan kolom lainnya diberi label Cb.
Pada kolom basis ditulis nama variabel basis sedangkan pada kolom Cb ditulis nilai
koefisien dari variabel basis tersebut seperti terdapat pada fungsi tujuan.
Untuk kasus persoalan di atas maka tabel simpleks menjadi :
Tabel 2.4
15
Untuk mengetahui apakah perbaikan solusi masih dapat dilakukan, maka
ditambahkan dua baris lagi pada bagian bawah tabel simpleks ini. Baris yang satu
diberi label Zj yang menunjukkan perubahan pada nilai fungsi tujuan jika satu unit
variabel matrix A pada kolom j dimasukkan menjadi variabel basis. Baris yang kedua
diberi label Cj-Zj yang menyatakan pengaruh neto dari pemasukan satu unit variabel
tersebut pada nilai fungsi tujuan. Baris ini disebut baris evaluasi netto ( net evaluation
row ). Berikut disajikan bagaimana elemen baris Zj disusun bila satu unit variabel X1
menjadi variabel dasar sedangkan variabel X2 tetap sebagai bukan variabel dasar yang
bernilai nol. Dari persamaan pembatas (constraint) pertama diketahui:
2X1 + 2X2 + S1 = 800
Variabel dasar saat ini adalah S1, dan jika X1 yang merupakan bukan variabel
dasar nilainya ditingkatkan satu unit dari 0 menjadi 1 maka nilai S1 harus dikurangi 2
unit agar tetap memenuhi pembatas pertama tersebut. Dari pembatas kedua dan
seterusnya maka variabel S2 juga harus dikurangi 2 unit, variabel S3 berkurang 1 unit
dan variabel S4 berkurang 2 unit. Setelah dilakukan analisis untuk semua persamaan
pembatas maka dapat dikatakan koefisien pada kolom X1 menunjukkan jumlah unit
dari variabel dasar harus dikurangkan dengan masuknya variabel X1 menjadi variabel
dasar bernilai 1 untuk tetap menjaga terpenuhinya semua pembatas. Hal yang sama
dapat dilakukan untuk bukan variabel dasar lainnya seperti X2. Dengan menetapkan X1
sebagai bukan variabel dasar benilai 0 maka untuk satu unit penambahan nilai X2 dari
0 menjadi 1 maka variabel S1 harus dikurangi 2 unit, S2 berkurang 2.3 unit, S3
berkurang 0.5 unit dan S4 berkurang 1.5 unit supaya tetap memenuhi semua fungsi
pembatas secara simultan. Karena kolom Cb merupakan koefisien dari variabel dasar
pada fungsi tujuan maka untuk menghitung perubahan nilai fungsi tujuan (Zj) apabila
nilai variabel dasar Xj meningkat dari nol menjadi 1 adalah:
Z1 = 0(2)+ 0(2) + 0(1) + 0(2) = 0
Z2 = 0(2)+ 0(2.3)+ 0(0.5)+ 0(1.5) = 0
Z3 = 0(1)+ 0(0) + 0(0) + 0(0) = 0
Z4 = 0(0)+ 0(1) + 0(0) + 0(0) = 0
Z5 = 0(0)+ 0(0) + 0(1) + 0(0) = 0
16
Z6 = 0(0)+ 0(0) + 0(1) + 0(1) = 0
Karena nilai koefisien C1, C2, C3, C4, C5, C6 pada fungsi tujuan masing-
masing bernilai 3, 2, 0, 0, 0, 0 maka C1-Z1 = 3-0 = 3; C2-Z2 = 2-0 = 2 dan seterusnya.
Sampai dengan tahap ini maka tabel simpleks menjadi:
Tabel 2.5
Pada tabel tersebut juga diperoleh nilai Zj = 0 dengan cetak tebal pada kolom
terakhir yang merupakan perkalian antar a kolom bi dengan koefisien variabel basis-
nya [0(800)+ 0(1000)+ 0(300)+ 0(650)] = 0.
Dari baris evaluasi neto diketahui setiap produksi satu unit X1 (Tas Model
Ransel) memberikan tambahan keuntungan Rp. 3 (dlm puluhan ribu) dan Rp. 2 (juga
dlm puluhan ribu) untuk satu unit X2 pada nilai fungsi tujuan. Guna memaksimumkan
nilai fungsi tujuan maka variabel X1 dimasukan sebagai variabel basis karena memiliki
nilai positif terbesar dan menggantikan salah satu variabel basis yang ada. Untuk
menemukan variabel basis yang harus diganti maka dicari variabel yang berasosiasi
dengan constraint yang paling membatasi nilai X1 (most restrictive). Dari contraint 1
diperoleh nilai maksimum X1 adalah 400 karena untuk setiap produksi X1 memerlukan
2 jam pengerjaan karena waktu yang tersedia adalah 800. Pada constraint kedua X1
bernilai 500, constraint ketiga dan keempat menghasilkan X1 masing-masing bernilai
300 dan 325. Dari analisis tersebut terlihat bahwa constraint tiga paling membatasi
sehingga nilai X1 tidak boleh melebihi 300. Oleh karena itu variabel basis yang
berasosiasi dengan constraint ini yaitu variabel S3 menjadi variabel non basis.
17
Tabel 2.6
Untuk memperbaiki solusi awal X1=0, X2=0, S1=800, S2=1000, S3=300, dan S4=650
yang menghasilkan keutungan pada nilai fungsi tujuan = 0 maka X1 ditingkatkan
nilainya menjadi 300 sehingga keuntungan menjadi 3(300) = 900. Dengan
memproduksi 300 unit X1 maka semua waktu kerja yang tersedia pada bagian
penyelesaian habis digunakan dan menyebabkan nilai S3 menjadi nol, sehingga X1
sekarang menjadi variabel basis menggantikan variabel S3 yang sekarang menjadi non
basis. Elemen matrix yang merupakan perpotongan antara kolom X1 dengan baris S3
disebut elemen pivot (tanda kotak), sedangkan baris dan kolom yang
berasosiasi dengan elemen pivot disebut baris pivot dan kolom pivot.
2.3.7. Penyusunan Tabel Simpleks Berikutnya
Untuk menemukan basis solution yang baru maka perlu dilakukan perubahan
pada tabel simpleks yang terakhir. Masuknya variabel X1 sebagai variabel basis harus
tetap menjaga pola seperti pola variabel S3 yang digantikannya yang sekarang menjadi
non basis. Matrix kolom X1 tetap dipertahankan seperti pola seperti matrix unity S3
yaitu:
�
0010
�
Prosedur transformasi tabel simpleks sehingga tetap merupakan sistem persamaan
constraint yang ekuivalen adalah dengan mengikuti langkah Operasi Baris Elementer
( elementary row operation). Pada Operasi Baris Elementer penulis akan mengalikan
setiap baris (persamaan) dengan bilangan bukan nol dan menggantikan setiap baris
(persamaan) dengan hasil penambahan atau pengurangan berganda dari baris lainnya.
18
Operasi baris elementer ini tidak merubah solusi dari sistem persamaan simultan tetapi
operasi ini akan merubah koefisien dari variabel dan nilai sisi kanan constraint. Tujuan
dari oprasi baris ini adalah untuk mentransformasikan sistem persamaan constraint
menjadi bentuk yang mudah untuk mengidentifikasi solusi basis yang baru. Kolom X1
pada tabel simpleks menjadi:
a11 = 0
a21 = 0
a31 = 1
a41 = 0
Secara kebetulan elemen matrix a31 sudah bernilai 1 seperti tampak pada persamaan
constraint baris 3 berikut :
X1 + 0.5X2 + 0S1 + 0S2 + S3 + 0S4 = 300
sehingga tidak diperlukan operasi baris elementer. Baris tersebut sekarang menjadi
baris pivot yang baru pada tabel simpleks yang diperbaiki. Untuk membuat elemen a11
= 0 maka operasi baris elementer yang dilakukan adalah dengan mengalikan baris
pivot tersebut dengan 2 sehingga menjadi:
2(X1 + 0.5X2 + 0S1 + 0S2 + S3 + 0S4) = 2(300)
atau
2X1 + X2 + 0S1 + 0S2 + 2S3 + 0S4 = 600
Berikutnya adalah mengurangkan baris pertama dengan persamaan diatas menjadi :
(2X1 + 2X2 + S1)- (2X1 + X2 + 0S1 + 0S2 + 2S3 + 0S4) = 800 – 600
atau
0X1 + X2 + S1 – 0S2 -2S3 -0S4 = 200
Untuk membuat elemen a21 = 0 maka operasi yang harus dilakukan adalah mengalikan
baris pivot tersebut dengan 2 sehingga menjadi:
2(X1 + 0.5X2 + 0S1 + 0S2 + S3 + 0S4) = 2(300)
atau
2X1 + X2 + 0S1 + 0S2 + 2S3 + 0S4 = 600
kemudian lakukan pengurangan terhadap persamaan baris kedua sehingga
(2X1 + 3.3X2 + S2) – (2X1 + X2 + 0S1 + 0S2 + 2S3 + 0S4) = 1000-600
atau
19
0X1 + 2.3X2 – 0S1 + 1S2 – 2S3 – 0S4 = 400
Untuk menghasilkan elemen a41 = 0 maka baris pivot juga kalikan 2 menjadi :
2( X1 + 0.5X2 + 0S1 + 0S2 + S3 + 0S4) = 2(300)
atau
2X1 + X2 + 0S1 + 0S2 + 2S3 + 0S4 = 600
kemudian lakukan pengurangan terhadap persamaan baris keempat sehingga
(2X1 + 1.5X2 + S4) – (2X1 + X2 + 0S1 + 0S2 + 2S3 + 0S4) = 650-600
atau
0X1 + 0.5X2 – 0S1 - 1S2 – 2S3 + 1S4 = 50
Karena pola matrix kolom X1 sudah ditransformasikan menjadi unity maka bagian
tabel simpleks yang baru adalah sebagai berikut :
Tabel 2.7
Berikutnya adalah menghitung perubahan nilai Zj dan Cj-Zj untuk masing-
masing kolom termasuk nilai Zj pad kolom bi. Setelah menghitung nilai-nilai tersebut
dengan cara yang sama seperti pada tabel simpleks awal maka diperoleh tabel
simpleks iterasi pertama berikut:
Tabel 2.8
Proses selanjutnya adalah terus mengusahakan perbaikan nilai fungsi tujuan
dengan memasukan variabel non basis menjadi variabel basis yang baru dengan
20
mengikuti prosedur seperti pada iterasi pertama. Dari evaluasi baris neto diketahui
variabel X2 memiliki nilai positif terbesar (0.5) sehingga ia menjadi variabel basis
yang baru, kolom X2 sekarang adalah sebagai kolom pivot. Untuk menemukan baris
pivot maka dicari nilai terkecil dari X2 dengan menghitung nilai Bi/ai2 (most
restrictive X2). Hasilnya disajian pada tabel berikut:
Tabel 2.9
Dari tabel tersebut diketahui constraint 4 paling restriktif sehingga variabel S4 menjadi
non basis karena bernilai nol karena semua jam kerja yang ada pada bagaian ini
digunakan untuk menghasilkan 100 unit X2. Operasi baris elementer harus dilakukan
untuk membuat elemen metrik kolom X2 menjadi unity dengan mempertahankan pola
seperti S4, yaitu:
a12 = 0
a22 = 0
a32 = 0
a42 = 1
Untuk menjadikan elemen matrix a42 = 1 maka baris pivot harus dikalikan 2 menjadi :
2(0X1 + 0.5X2 + 0S1 + 0S2 – 2S3 + S4) = 2(50)
atau
0X1 + X2 + 0S1 + 0S2 – 4S3 + 2S4 = 100
Persamaan tersebut sekarang menjadi baris pivot yang baru. Untuk mendapatkan
elemen matrix a12 = 0 maka operasi baris elementer dilakukan dengan hanya
mengurangkan baris pivot dari persamaan baris pertama (variabel basis S1) karena
koefisien X2 yang ada pada baris pertama dengan yang ada pada baris pivot, yaitu
sama-sama 1. Baris pertama yang baru dengan demikian menjadi:
(0X1+ X2+ S1 +0S2–2S3+0S4)-(0X1 + X2 + 0S1 + 0S2 – 4S3 + 2S4) = 200-100
atau
21
0X1 – 0X2 + S1 + 0S2 + 2S3 – 2S4 = 100
Untuk mendapatkan elemen matrix a22 = 0 maka operasi baris elementer dilakukan
dengan mengalikan baris pivot dengan 2.3 dan mengurangkan hasilnya dari persamaan
baris 2 (variabel basis S2), yaitu:
2.3(0X1 + X2 + 0S1 + 0S2 – 4S3 + 2S4) = 2.3(100)
atau
0X1 + 2.3X2 + 0S1 + 0S2 – 9.2S3 + 4.6S4 = 230
Setelah operasi pengurangan maka diperoleh hasil sebagai berikut:
(0X1+ 2.3X2 + 0S1+ S2 - 2S3 + 0S4)- (0X1 + 2.3X2 + 0S1 + 0S2 – 9.2S3 + 4.6S4) =
400-230
atau
0X1 + 0X2 + 0S1 + S2 + 7.2S3 -4.6S4 = 170
Untuk mendapatkan elemen matrix a32 = 0 maka operasi baris elementer dilakukan
dengan mengalikan baris pivot dengan 0.5 dan mengurangkan hasilnya dari persamaan
baris 3 (variabel basis X1), yaitu:
0.5(0X1 + X2 + 0S1 + 0S2 – 4S3 + 2S4) = 0.5(100)
atau
0X1 + 0.5X2 + 0S1 + 0S2 –2S3 + 1S4 = 50
Setelah operasi pengurangan maka diperoleh hasil sebagai berikut :
( X1 + 0.5X2 + 0S1 + 0S2 + S3 + 0S4) - (0X1 + 0.5X2 + 0S1 + 0S2 – 2S3 + S4) =
300-50
atau
X1 + 0X2 + 0S1 + 0S2 + 3S3 – S4 = 250
Setelah mendapatkan semua persamaan constraint maka bagian tabel simpleks yang
baru adalah :
Tabel 2.10
22
Berikutnya adalah menghitung perubahan nilai Zj dan Cj-Zj untuk masing-masing
kolom termasuk nilai Zj pad kolom bi. Setelah menghitung nilai-nilai tersebut dengan
cara yang sama seperti pada iterasi pertama maka diperoleh tabel simpleks iterasi
kedua berikut:
Tabel 2.11
2.3.8. Interpretasi Solusi Optimal
Dari baris evaluasi neto tidak lagi ditemukan nilai positif yang berarti solusi
yang diperoleh sudah maksimum, yaitu X1 = 250, X2 = 100 dan nilai fungsi tujuan Zj
= 950 ( dalam puluhan ribu rupiah) Dari tabel tersebut diketahui S1 = 100 dan S2 = 170
yang berarti waktu kerja pada bagian pemotongan masih tersisa (slack) 100 jam
sedangkan sisa waktu pada bagian penjahitan adalah 170 jam. Pada bagian lainnya
(penyelesaian, pemeriksaan & pengepakan) seluruh waktu kerja sudah habis
digunakan. Merujuk kembali pada gambar terdahulu diketahui bahwa solusi optimal
bergerak mulai dari titik ekstem 1 dengan solusi awal X1=0, X2=0, S1=800,
S2=1000, S3=300, S4=650 dan menghasilkan nilai fungsi tujuan nol. Pada iterasi
pertama variabel X1 memasuki basis dan mengakibatkan va riabel S3 menjadi non
basis variabel. Solusi dasar kedua berada pada titik ekstem 2 yaitu X1=300, X2=0,
S1=200, S2=400, S3=0, dan S4=50 serta menghasilkan nilai 900 pada fungsi tujuan.
Pada iterasi selanjutnya X2 memasuki basis mendorong S4 untuk keluar. Hal ini
menyebabkan solusi bergerak kearah sumbu X2 menuju titik ekstem 3. Pada titik ini
solusi yang didapat sudah optimum yaitu X1=250, X2=100, S1=100, S2=170, S3=0 dan
S4=0 sedangkan nilai fungsi tujuan maksimum yaitu 950.
23
2.3.9. Ringkasan Prosedur Metode Simpleks Pada Maksimisasi
1. Formulasikan persoalan kedalam model linear
2. Tambahkan variabel Slack pada masing-masing constraint (pembatas)untuk
memperoleh bentuk standar. Model ini digunakan untukidentifikasi solusi feasible
awal dari pembatas bertanda lebih kecil atau sama dengan.
3. Buat tabel simpleks awal (initial simpleks table)
4. Pilih variabel non basis yang memiliki nilai positif terbesar padabaris evaluasi neto
menjadi variabel basis. Variabel ini menjadi kolom pivot, yaitu kolom
yangberasosiasi dengan variabel basis yang masuk.
5. Pilih baris pivot yang memiliki ratio bi/aij terkecil dimana aij ≥ 0, dimana j
adalah kolom pivot. Hal ini sekaligus menunjukkan variabel yang
meninggalkan basis menjadi non basis.
6. Lakukan operasi baris elementer jika diperlukan untuk mentransformasikan
kolom dari variabel yang memasuki basis menjadi kolom unitary yang bernilai
1 pada baris pivotnya.
a. Kalikan atau bagi setiap elemen baris pivot dengan pivot elemen
b. Hasilkan nilai 0 pada elemen kolom lainnya dengan cara mengurangkan baris pivot dari baris-baris constraint lainnya.
7. Lakukan pengujian tingkat optimalitas. Jika Cj-Zj = 0 untuk semuakolom maka
solusi optimal sudah diperoleh, jika tidak maka ulangiprosedur 4 kembali.
(http://mathematica.aurino.com/wp-content/uploads/2008/10/simplex.pdf)
2.3.10. Penyimpangan-penyimpangan dari bentuk standar
Masalah-masalah yang dihadapi tidak selalu dapat diformulasikan
menjadi bentuk standar. Berikut ini akan dibahas cara-cara mengatasi
penyimpangan-penyimpangan dari bentuk standar agar bisa diselesaikan dengan
menggunakan metode simpleks :
1. Batasan dengan tanda “sama dengan”.
Jika suatu batasan memakai tanda kesamaan, maka cara mengatasinya
dengan menambahkan variabel buatan (artificial variable).
24
2. Minimisasi
Fungsi tujuan dari persamaan program linier yang bersifat minimisasi,
harus dirubah menjadi maksimisasi, agar sesuai dengan bentuk standar,
yaitu maksimisasi. Caranya dengan mengganti tanda positif dan negatif
pada fungsi tujuan.
Minimumkan Z ∑=
=n
jjj XC
1
sama dengan
Maksimumkan (-Z) ∑=
−=n
jjj XC
1
)(
3. Fungsi pembatas bertanda ≥.
Bila suatu funsi pembatas bertanda ≥, maka harus dirubah menjadi ≤ dan
akhirnya menjadi = agar dapat diselesaikan dengan metode simpleks.
4. Bagian kanan persamaan bernilai negatif.
Bila bagian kanan persamaan bertanda maka harus dirubah menjadi
positif. Caranya dengan merubah tanda positif negatif dari tiap-tiap
koefisien, kemudian ditambah dengan variabel buatan.
5. Bila minimum nilai Xj boleh negatif.
Pada bentuk standar, nilai Xj harus selalu positif (dengan batasan Xj ≥ 0).
6. Bila nilai Xj boleh negatif atau negatif.
Kalau hasil program linier memungkinkan nilai Xj positif maupun negatif
dan tidak ada batas negatif tertentu (negatif berapapun dimungkinkan)
maka nilai Xj dirubah menjadi Xj’ – Xj” dengan ketentuan sebagai berikut :
Xj’ = mewakili nilai positif dari Xj
Xj” = mewakili nilai positif dari Xj
(Subagyo, Pangestu., 2005)
2.4. Java
Java adalah bahasa pemrograman berorientasi objekyang dikembangkan
oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan
model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih
25
mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis
sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk
pemrograman di Internet sehingga dirancang agar aman dan portabel.
Maksud dari platform independent disini artinyaprogram yang ditulis
dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem
operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk
dapat mencapai tujuan Java sebagai bahasa pemrograman Internet dimana sebuah
program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis
sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari
program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa
Java mempunyai ukuran yang konsisten di semua jenis platform. Source code
program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin
mengkompile ulang di platform lain.
(http://lisna.staff.gunadarma.ac.id/Downloads/files/9160/eko-dasarjava.pdf)
2.4.1 Sejarah Singkat Java
Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton
dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer
seperti cable TV Box. Karena perangkat tersebut tidak memiliki banyak memori,
bahasa harus berukuran kecil dan mengandung kode yang liat. Juga karena
manufaktur-manufaktur berbeda memilih processor yang berbeda pula, maka
bahasa harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.
Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform
mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus
Wirth, pencipta bahasa Pascal telah merancang bahasa portabel yang
menghasilkan intermediate code untuk mesin hipotesis. Mesin ini sering disebut
dengan mesin maya (virtual machine). Kode ini kemudian dapat digunakan di
sembarang mesin yang memiliki interpreter. Proyek Green menggunakan mesin
maya untuk mengatasi isu utama tentang netral terhadap arsitektur mesin.Karena
orang-orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan
26
sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural.
Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang
mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya,
namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman
yang telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama
JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di
sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka
menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka
sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama
Java.Produk pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh
yang sangat cerdas. Dikarenakan pasar masih belum tertarik dengan produk
konsumer cerdas maka proyek Green harus menemukan pasar lain dari teknologi
yang diciptakan. Pada saat yang sama, implementasi WWW dan Internet sedang
mengalami perkembangan pesat. Dilain pihak, anggota dari proyek Green juga
menyadari bahwa Java dapat digunakan pada pemrograman internet, sehingga
penerapan selanjutnya mengarah menjadi teknologi yang berperan di web.
Tabel 2.12
Java telah mengakomodasi hampir seluruh fitur penting bahasa – bahasa
pemrograman yang ada semenjak perkembangan komputasi modern manusia :
27
1. Dari SIMULA, bahasa pada tahun 65-an, bahasa yang paling
mempengaruhiJava sekaligus C++. Dari bahasa ini diadopsi bentukan –
bentukan dasar dari pemrograman berorientasi objek.
2. Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection,
serta kemampuan untuk meniru generic list processing, meski fasilitas ini
jarang yang memanfaatkannya.
3. Dari Algol – bahasa pada tahun 60-an, diambil struktur kendali yang
dimilikinya.
4. Dari C++, diadopsi sintaks, sebagian semantiks dan exception handling.
5. Dari bahasa Ada, diambil strongly type, dan exception handling.
6. Dari Objective C, diambil fasilitas interface.
7. Dari bahasa SmallTalk, diambil pendekatan single-root class hiérarchie,
dimana objek adalah satu kesatuan hirarki pewarisan.
8. Dari bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian
JDK 1.4
(http://duniawebid.com/forum/sejarah-pemrograman-java-t-227.html)
2.4.2 Keistimewaan Java
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik
berikut :
1. Sederhana (simple)
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++
namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan
penggunaan pointer yang rumit dan multiple inheritance. Java juga
menggunakan automatic memory allocation dan memory garbage
collection.
2. Berorientasi objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat
program dapat dibuat secara modular dan dapat dipergunakan
kembali.Pemrograman berorientasi objek memodelkan dunia nyata
kedalam objek dan melakukan interaksi antar objek-objek tersebut.
28
3. Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan
adanya libraries networking yang terintegrasi pada Java.
4. Interpreted
Program Java dijalankan menggunakan interpreter yaitu Java Virtual
Machine (JVM). Hal ini menyebabkan source code Java yang telah
dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang
berbeda-beda.
5. Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai
kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa
pemrograman lain. Java mempunyai runtime-Exception handling untuk
membantu mengatasi error pada pemrograman.
6. Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi,
Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi
tidak digunakan untuk merusak sistem komputer yang menjalankan
aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup
mempunyai satu buah versi yang dapat dijalankan pada platform berbeda
dengan Java Virtual Machine.
8. Portable
Source code maupun program Java dapat dengan mudah dibawa ke
platform yang berbeda-beda tanpa harus dikompilasi ulang.
9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun
performance Java dapat ditingkatkan menggunakan kompilasi Java lain
29
seperti buatan Inprise, Microsoft ataupun Symantec yang menggunakan
Just In Time Compilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat
melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis.
Perubahan pada suatu class dengan menambahkan properties ataupun
method dapat dilakukan tanpa menggangu program yang menggunakan
class tersebut.
2.4.3 Beberapa Fitur Dari Java
1. Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan
menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan
spesifikasi hardware dan platform dimana kompilasi kode Java terjadi.
Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari
platform manapun karena proses kompilasi diselesaikan oleh JVM.
Aplikasi program Java diciptakan dengan file teks berekstensi .java.
Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi
.class atau lebih. Bytecode adalah serangkaian instruksi serupa instruksi
kode mesin. Perbedaannya adalah kode mesin harus dijalankan pada
sistem komputer dimana kompilasi ditujukan, sementara bytecode
berjalan pada java interpreter yang tersedia di semua platform sistem
komputer dan sistem operasi.
2. Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan seorang pemrogram
mengalokasikan memori pada saat dijalankan. Namun, setelah
menggunakan alokasi memori tersebut, harus terdapat cara untuk
menempatkan kembali blok memori tersebut supaya program lain dapat
menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah pemrogram
30
yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan
bilamana pemrogram tersebut alpa untuk mengembalikan blok memori
sehingga menyebabkan situasi yang dikenal dengan nama memory leaks.
Program Java melakukan garbage collection yang berarti program tidak
perlu menghapus sendiri objek – objek yang tidak digunakan lagi. Fasilitas
ini mengurangi beban pengelolaan memori oleh pemrogram dan
mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat
pada bahasa yang memungkinkan alokasi dinamis.
3. Code Security
Code Security terimplementasi pada Java melalui penggunaan Java
Runtime Environment (JRE). Java menggunakan model pengamanan 3
lapis untuk melindungi sistem dari untrusted Java Code.
a. Pertama, class-loader menangani pemuatan kelas Java ke runtime
interpreter. Proses ini menyediakan pengamanan dengan
memisahkan kelas – kelas yang berasal dari local disk dengan
kelas – kelas yang diambil dari jaringan. Hal ini membatasi
aplikasi Trojan karena kelas – kelas yang berasal dari local disk
yang dimuat terlebih dahulu.
b. Kedua, bytecode verifier membaca bytecode sebelum dijalankan
dan menjamin bytecode memenuhi aturan – aturan dasar bahasa
Java.
c. Ketiga, manajemen keamanan menangani keamanan tingkat
aplikasi dengan mengendalikan apakah program berhak mengakses
sumber daya seperti sistem file, port jaringan, proses eksternal dan
sistem windowing.
Setelah seluruh proses tersebut selesai dijalankan, barulah kode program
dieksekusi.
31
2.4.4 Fase Pemrograman Java
Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi
sebuah program Java :
Langkah pertama dalam pembuatan sebuah program berbasis Java adalah
menuliskan kode program pada text editor. Contoh text editor yang dapat
digunakan antara lain notepad, vi, emacs dan lain sebagainya. Kode program yang
dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java.
Setelah membuat dan menyimpan kode program, kompilasi file yang
berisi kode program tersebut dengan menggunakan Java Compiler.Hasil dari
adalah berupa berkas bytecode dengan ekstensi .class.
Berkas yang mengandung bytecode tersebut kemudian akan
dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuai dengan jenis dan
platform yang digunakan.
Tabel 2.13
(http://lisna.staff.gunadarma.ac.id/Downloads/files/9160/eko-dasarjava.pdf)
32
2.5. PHP
PHP singkatan dari Personal Home Page atau situs personal
(http://ilmukita.com/pengertian-php/) yang digunakan sebagai bahasa skript
server-side dalam pengembangan web yang disisipkan pada dokumen HTML
(HyperText Markup Languages). Penggunaan PHP memungkinkan web yang
dapat dibuat dinamis sehingga maintenance situs web menjadi lebih mudah dan
efisien.
PHP diciptakan pertama kali oleh Ramus Lerdorf pada tahun 1994
(Peranginangin, Kasiman., 2006). Awalnya PHP digunakan untuk mencatat
jumlah serta untuk mengetahui siapa saja pengunjung pada homepage-nya.
Rasmus Lerdorf adalah salah seorang pendukung open source. Oleh karena itu, ia
mengelurakan Personal Home Page Tools versi 1.0 secara gratis, kemudian
menambah kemampuan PHP 1.0 dan meluncurkan PHP 2.0.
Pada tahun 1996, PHP telah banyak digunakan dalam website di dunia.
Sebuah kelompok pengembang software yang terdiri dari Ramus, Zeew Suraski,
Andi Gutman, Stig Bakken, Shane Caraveo, dan Jim Winstead bekerja sama
untuk menyempurnakan PHP 2.0. Akhirnya, pada tahun 1998, PHP 3.0
diluncurkan. Penyempurnaan terus dilakukan sehingga pada tahun 2000
dikeluarkan 4.0. Tidak berhenti sampai di situ, kemampuan PHP terus ditambah
hingga sampai saat ini versi terbaru yang dikeluarkan adalah PHP 5.0.x.
PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script
sejenis. Adapun kelebihan PHP yaitu :
1. PHP dapat digunakan pada semua sistem operasi, antara lain Linux, Unix
(termasuk variansnya HP-UX, solaris, dan OpenBSD), Microsoft Window,
Mac OS X, RISC OS.
2. PHP memiliki kemampuan untuk mengolah keluaran gambar, file PDF,
dan movies Flash.
3. PHP dapat menghasilkan teks seperti XHTML dan file XML lainnya.
Sintaks Program/Script ditulis dalam apitan tanda khusus PHP. Ada empat macam
pasangan tag PHP yang dapat digunakan untuk menandai blok script PHP :
33
1. <?php … ?>
2. <script language = “PHP> …< /script>
3. <? …?>
4. <% …%>
Dari keempat cara di atas, cara 1 dan 2 merupakan cara yang paling umum
digunakan.
2.5.1 Tipe data pada php
PHP mendukung delapan tipe data:
Tipe data scalar :
• Boolean
• Integer
• Floating-point
• String
Tipe data compound :
• Array
• Object
Tipe data khusus :
• Resource
• NULL
34
2.6. XML
Ditinjau dari segi bahasa XML merupakan singkatan dari Extensible
Markup Language.Teknologi ini mulai dikembangkan mulai dari tahun 1996 dan
mendapatkan pengakuan dari W3C pada bulan februari 1998. Teknologi yang
dgunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan
dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak
digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML
dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling
penting pada SGML dan dengan berpedoman pada pengembangan HTML
menghasilkan markup language yang tidak kalah hebatnya dengan SGML.
XML merupakan teknologi cross platform, dan merupakan tool untuk
melakukan transmisi informasi. XML adalah sebuah teknologi "bahasa", sebuah
protokol dengan berbagai aturan tertentu.Dikarenakan teknologi cross platform
tersebut maka XML mudah melakukan pertukaran data dengan computer-
komputer yang memiliki platform yang berbeda sehingga disinilah yang menjadi
kelebihan XML. XML juga memungkinkan penulis untuk mengumpulkan
informasi dan menggunakannya kembali dengan berbagai cara karena database
XML mudah untuk dikonversikan ke dalam bentuk-bentuk lain.
Pada penelitian kali ini peneliti akan menggunakan XML sebagai struktur
database penunjang aplikasi berbasis javascript yang akan saya buat seperti yang
telah peneliti jelaskan pada bagian-bagian sebelumnya. Alasan peneliti memilih
XML sebagai struktur database penunjang program adalah dikarenakan kelebihan-
kelebihan XML yang telah peneliti jelaskan sebelumnya. Selain itu karena
kemudahan pengkonversian database XML ini akan memungkinkan bagi peneliti-
peneliti lain yang ingin melanjutkan penelitian ini ke jenjang yang lebih tinggi
seperti pembuatan aplikasi-aplikasi matematika lainnya yang dapat berjalan pada
perangkat mobile seperti telepon genggam, PDA, serta perangkat-perangkat
seperti ponsel cerdas dan sejenisnya(http://www.learn-xml-tutorial.com).
2.7. HTML
Hyper Text Markup Language (HTML) adalah sebuah bahasa markup
yang digunakan untuk membuat sebuah halaman web, menampilkan berbagai
35
informasi di dalam sebuah Penjelajah web Internet dan formating hypertext
sederhana yang ditulis kedalam berkas format ASCII agar dapat menghasilkan
tampilan wujud yang terintegerasi. Dengan kata lain, berkas yang dibuat dalam
perangkat lunak pengolah kata dan disimpan kedalam format ASCII normal
sehingga menjadi home page dengan perintah-perintah HTML.
Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia
penerbitan dan percetakan yang disebut dengan SGML (Standard Generalized
Markup Language), HTML adalah sebuah standar yang digunakan secara luas
untuk menampilkan halaman web. HTML saat ini merupakan standar Internet
yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web
Consortium (W3C). HTML dibuat oleh kolaborasi Caillau TIM dengan Berners-
lee robert ketika mereka bekerja di CERN pada tahun 1989 (CERN adalah
lembaga penelitian fisika energi tinggi di Jenewa).
Tahun 1980, IBM memikirkan pembuatan suatu dokumen yang akan
mengenali setiap elemen dari dokumen dengan suatu tanda tertentu. IBM
kemudian mengembangkan suatu jenis bahasa yang menggabungkan teks dengan
perintah-perintah pemformatan dokumen. Bahasa ini dinamakan Markup
Langiage, sebuah bahasa yang menggunakan tanda-tanda sebagai basisnya. IBM
menamakan sistemnya ini sebagai Generalized Markup Language atau GML.
Tahun 1986, ISO menyatakan bahwa IBM memiliki suatu konsep tentang
dokumen yang sangat baik, dan kemudian mengeluarkan suatu publikasi ( ISO
8879 ) yang menyatakan markup language sebagai standar untuk pembuatan
dokumen-dokumen. ISO membuat bahasa ini dari GML milik IBM, tetapi
memberinya nama lain, yaitu SGML ( Standard Generalized Markup Language ).
ISO dalam publikasinya meyakini bahwa SGML akan sangat berguna
untuk pemrosesan informasi teks dan sistem-sistem perkantoran. Tetapi diluar
perkiraan ISO, SGML dan terutama subset dari SGML, yaitu HTML juga berguna
untuk menjelajahi internet. Khususnya bagi mereka yang menggunakan World
Wide Web. Versi terakhir dari HTML adalah HTML 4.01, meskipun saat ini telah
berkembang XHTML yang merupakan pengembangan dari HTML. HTML
36
dokumen tersebut mirip dengan dokumen teks biasa, hanya dalam dokumen ini
sebuah teks bisa memuat instruksi yang ditandai dengan kode atau lebih dikenal
dengan TAG tertentu. Sebagai contoh jika ingin membuat teks ditampilkan
menjadi tebal seperti: TAMPIL TEBAL.
Secara garis besar, terdapat 4 jenis elemen dari HTML, yang pertama
adalah structural. Structural adalah tanda yang menentukan level atau tingkatan
dari sebuah teks. Yang kedua adalah presentational yaitu tanda yang menentukan
tampilan dari sebuah teks tidak peduli dengan level dari teks tersebut (contoh,
boldface akan menampilkan bold. Tanda presentational saat ini sudah mulai
digantikan oleh CSS dan tidak direkomendasikan untuk mengatur tampilan teks.
Sementara yang ketiga adalah hypertext yaitu tanda yang menunjukkan pranala ke
bagian dari dokumen tersebut atau pranala ke dokumen lain belakangan ini hal ini
sering disebut dengan tautan atau link dalam istilah teknologi informasi secara
umum. Dan elemen yg terakhir adalah Elemen widget yaitu yang membuat objek-
objek lain seperti tombol dan garis horizontal.
Berikut adalah contoh script HTML sederhana :
html>
<title>Halo HTML</title>
</head>
<body>
<p>Halo Dunia!</p>
</body</html>
Script diatas adalah perintah untuk menampilkan text “Halo Dunia!” pada browser
yang menjalankan script HTML tersebut.
(http://id.wikipedia.org/wiki/HyperText_markup_language