Top Banner
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
31

UNIMED Undergraduate 22160 BAB II

Apr 24, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: UNIMED Undergraduate 22160 BAB II

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

Page 2: UNIMED Undergraduate 22160 BAB II

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

Page 3: UNIMED Undergraduate 22160 BAB II

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

Page 4: UNIMED Undergraduate 22160 BAB II

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

Page 5: UNIMED Undergraduate 22160 BAB II

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

Page 6: UNIMED Undergraduate 22160 BAB II

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:

Page 7: UNIMED Undergraduate 22160 BAB II

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 :

Page 8: UNIMED Undergraduate 22160 BAB II

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

Page 9: UNIMED Undergraduate 22160 BAB II

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

Page 10: UNIMED Undergraduate 22160 BAB II

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

Page 11: UNIMED Undergraduate 22160 BAB II

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.

Page 12: UNIMED Undergraduate 22160 BAB II

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.

Page 13: UNIMED Undergraduate 22160 BAB II

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

Page 14: UNIMED Undergraduate 22160 BAB II

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

Page 15: UNIMED Undergraduate 22160 BAB II

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

Page 16: UNIMED Undergraduate 22160 BAB II

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

Page 17: UNIMED Undergraduate 22160 BAB II

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.

Page 18: UNIMED Undergraduate 22160 BAB II

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

Page 19: UNIMED Undergraduate 22160 BAB II

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

Page 20: UNIMED Undergraduate 22160 BAB II

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

Page 21: UNIMED Undergraduate 22160 BAB II

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 :

Page 22: UNIMED Undergraduate 22160 BAB II

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.

Page 23: UNIMED Undergraduate 22160 BAB II

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

Page 24: UNIMED Undergraduate 22160 BAB II

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

Page 25: UNIMED Undergraduate 22160 BAB II

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.

Page 26: UNIMED Undergraduate 22160 BAB II

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)

Page 27: UNIMED Undergraduate 22160 BAB II

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 :

Page 28: UNIMED Undergraduate 22160 BAB II

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

Page 29: UNIMED Undergraduate 22160 BAB II

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

Page 30: UNIMED Undergraduate 22160 BAB II

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

Page 31: UNIMED Undergraduate 22160 BAB II

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