Senin, 21 Januari 2013

Penerapan Algoritma RC6 Untuk Ekripsi SMS Telepon Seluler



Penerapan Algoritma RC6 Untuk Ekripsi
SMS Telepon Seluler
Jamaluddin
Program studi Teknik Informatik, Universitas Malikussaleh
Email : addinmc@gmail.com

SMS merupakan suatu layanan yang diberikan oleh telepon selular kepada penggunanya untuk melakukan komunikasi melalui pengiriman pesan singkat dengan biaya yang murah. SMS sangatlah populer, selain dikarenakan biayanya yang murah, pesan yang dikirimkan dapat diterima oleh penerima dengan baik dan cepat. Namun komunikasi melalui media SMS ini bukanlah komunikasi point-to-point, pesan yang dikirimkan melalui media SMS tidak langsung sampai pada tujuan, melainkan melalui jaringan SMS. Pada jaringan SMS tersebut, keamanan pesan sangatlah terancam untuk dibaca oleh orang yang tidak bertanggung jawab. Perangkat lunak yang dibangun meningkatkan keamanan pesan dengan melakukan enkripsi terhadap pesan yang dikirimkan. Perangkat lunak yang dibangun menggunakan algoritma RC6 untuk melakukan enkripsi SMS agar keamanan pesan dapat ditingkatkan. Algoritma RC6 adalah suatu algoritma kunci privat yang dikenal dengan kesederhanaannya. Algoritma RC6 merupakan algoritma dengan parameter yang dapat bekerja pada panjang kunci yang beragam. Untuk aspek keamanannya, algoritma RC6 mengutamakan prinsip intered cripher.
cipher.

.


Kata Kunci: SMS, RC6, iterated cipher, enkripsi, dekrip.



1. PENDAHULUAN
Telepon selular merupakan alat komunikasi yang sudah dipakai oleh sebagian besar orang di dunia. Telepon selular menyediakan media komunikasi yang beragam dan salah satu diantaranya adalah media SMS (Short Message Service). SMS merupakan suatu layanan yang memungkinkan pengguna telepon selular untuk mengirimkan pesan singkat kepada pengguna telepon selular lainnya dengan cepat dan dengan biaya yang kecil. SMS bekerja pada sistem nirkabel. Sistem nirkabel yang paling populer di dunia adalah GSM (Global System for Mobile Communication). Komponen yang digunakan oleh GSM dalam melakukan komunikasi SMS diantaranya:
a.  Mobile Station merupakan perangkat mobile yang dapat melakukan pengiriman SMS.
b.  ESME (External Short Messaging Entities) merupakan suatu perangkat yang dapat mengirimkan dan menerima SMS, pada umumnya menggunakan jaringan Internet.
c.  BS (Base Station) menjadi antar muka antar jaringan komunikasi nirkabel dengan mobile station.
d.  MSC (Mobile Service Switching Center) merupakan komponen utama pada pengontrolan pertukaran informasi informasi yang terjadi pada jaringan selular.
e.  Register-register yang diantaranya adalah HLR (Home Location Register) dan VLR (Visitor Location Register).
f.  SMSC (Short Message Service Center) merupakan tempat di mana SMS disimpan sebelum dikirimkan ke tujuan.

Untuk lebih jelas mengenai jaringan SMS dapat dilihat pada Gambar 1 yang di mana interaksi antara mobile station dan jaringan tersebut adalah melalui BS.

Gambar 1 Jaringan SMS [ENC05]

Celah keamanan terbesar pada komunikasi SMS adalah pesan yang dikirimkan akan disimpan pada SMSC, sehingga apabila terjadi serangan pada SMSC, maka pesan yang terkirim dapat terbaca. Salah satu cara menaggulangi celah tersebut adalah dengan melakukan enkripsi terhadap pesan yang dikirimkan. Dengan semakin majunya teknologi telepon selular, implementasi suatu algoritma enkripsi menjadi mungkin. Algoritma RC6 yang dirancang oleh Ronald L. Rivest, M.J.B. Robshaw, R. Sidney, dan Y.L. Yin merupakan salah satu algoritma yang menjadi finalis kandidat untuk menjadi AES. Walaupun pada akhirnya algoritma ini tidak menang dalam kompetisi tersebut, namun algoritma ini cukup diakui kesederhanaannya sehingga menjadi mungkin diimplementasikan untuk enkripsi SMS pada telepon selular.




2. LANDASAN TEORI

2.1. Struktur Pesan SMS
Struktur pesan pada sebuah paket SMS dapat dilihatpada Gambar II-1 yang diadopsi dari [CLE03].



gambar 2.1 Struktur Pesan SMS

Pada Gambar II-1 dapat terlihat bahwa pada sebuah paket pesan SMS terdiri dari header dan body. Header pesan terdiri dari instruksi-instruksi kepada komponen-komponen yang bekerja dalam jaringan SMS. Pada instruksi-instruksi tersebut, terdapat informasi yang diperlukan selama pengiriman pesan seperti informasi validitas pesan, dan informasi informasi lainnya. Pada bagian message body, terdapat isi dari pengirim pesan yang akan dikirimkan. Panjang isi pesan pada sebuah paket SMS berukuran maksimal 160 karakter, dimana setiap karakter memiliki panjang 7 bit. Beberapa aplikasi standar telepon selular dapat mendukung panjang pesan dengan karakter sepanjang 8 bit (panjang pesan maksimum 140 karakter) dan karakter yang lebih panjang lainnya seperti 16 bit, namun karakter sepanjang 8 bit dan 16 bit ini tidak didukung oleh semua aplikasi standar telepon selular. Pada umumnya karakter sepanjang 8 bit dan 7 bit digunakan untuk menampilkan data seperti gambar dan simbol[PET07].

2.2 Algoritma RC6[RIV98]
Algoritma RC6 adalah suatu algoritma kriptografi block cipher yang dirancang oleh Ronald L. Rivest, Matt J.B. Robshaw, Ray Sidney, dan Yuqin Lisa Yin dari RSA Laboratories. Algoritma ini pada mulanya dirancang untuk menjadi AES (Advance Encryption Standard). Algoritma RC6 ini berhasil menjadi finalis dan menjadi kandidat kuat untuk menjadi AES walaupun pada akhirnya algoritma ini tidak terpilih menjadi AES melainkan algoritma rinjdael. Versi 1.1 dari RC6 mulai dipublikasikan pada tahun 1998. Dasar desain dari algoritma RC6 ini didasarkan pada pendahulunya yaitu algoritma RC5. Algoritma RC6 merupakan algoritma dengan parameter penuh, algoritma RC6 dispesifikasikan dengan notasi RC6-w/r/b. Dimana w adalah ukuran dari word dalam bit, karena pada RC6 menggunakan 4 buah register maka word adalah ukuran blok dibagi 4. r adalah jumlah iterasi, dimana r tidak boleh negatif. Dan b adalah panjang kunci dalam bytes. Pembentukan kunci internal yang akan digunakan pada proses enkripsi dan dekripsi dari algoritma RC6 menggunakan pembentukan kunci internal dari algoritma RC6. Proses untuk membangun kunci-kunci internal menggunakan dua buah konstanta yang disebut dengan “magic constant”. Dua buah magic constant Pw dan Qw tersebut didefinisikan sebagai berikut:

Pw=Odd((e-2)2w)………………(2.1)
Qw=Odd((Ø­1)2w)………………(2.2)
Dimana :

e = 2.7182818284859…(basis dari logaritma natural)
Ø­= 1.618022988749…(golden ratio)
Odd (x) adalah integer ganjil terdekat dari x, jika x genap maka diambil integer ganjil setelah x.
Berikut adalah daftar magic constant pada beberapa panjang blok dalam heksadesimal:

P16 = b7e1
Q16 = 9e37
P32 = b7e15163
Q32 = 9e3779b9
P64 = b7e151628aed2a6b
Q64 = 9e3779b97f4a7c15

Dengan menggunakan dua buah magic constant tersebut, pembangunan kunci terdiri dari tiga tahap :
1.        Konversi kunci rahasia dari bytes ke words

if c=0 then
cß1
endif

for  I ßb-1 downto 0 do
L[i/u]  ß  (L[i/u]<<<8) +
K[i]
Endfor

Dimana c = pembulatan keatas(b/u) dan u = w/8

2.        Inisialisasi array S

S[0] ß Pw
for i ß 0 to 2r+3 do
S[i] ß S[i-1]+ Qw
Endfor

3.        Mencampurkan L dan S

iß0
jß0
Aß0
Bß0
Vß3*max(c,2r+4)
for indexß1 to v do
S[i] ß (S[i]+A+B) <<< 3
AßS[i]
L[j] ß (L[j]+A+B) <<< (A+B)
BßL[j]
iß (i+1)mod(2r+4)
jß (j+1)mod c
endfor

Algoritma RC6 bekerja dengan empat buah register A,B,C,D yang masing-masing berukuran w-bit, register-register tersebut akan diisi oleh plainteks yang kemudian akan digunakan selama proses enkripsi dan setelah proses enkripsi berakhir isi dari registerregister tersebut merupakan cipherteks. Proses enkripsi dan dekripsi algoritma RC6 menggunakan enam buah operasi dasar:

a+b = penjumlahan integer modulo 2w
a - b=pengurangan integer modulo 2w
aÅb=operasi bitwise exclusive-or sebesar w-bit words
a*b = perkalian integer modulo 2w
a<<<b=rotasi sejumlah w-bit word ke kiri sebanyak jumlah yang diberikan oleh least sifnificant lg w bit dari b
a>>>b=rotasi sejumlah w-bit word ke kanan sebanyak jumlah yang diberikan oleh least sifnificant lg w bit dari b
Dimana lg w adalah logaritma basis dua dari w.

Proses enkripsi algoritma RC6 adalah sebagai berikut:

Prosedure Enkripsi
(Input :Plainteks dalam A,B,C,D
r : integer (jumlah rotasi)
S[0..2r+3] : kunci internal
Output :Cipherteks dalam A,B,C,D)

Kamus
u : integer
t : integer

Algoritma
B ßB + S[0]
D ßD + S[1]

for i ß 1 to r do
t ß(B * (2B + 1))<<<lg w
u ß(D * (2D + 1))<<<lg w
A ß((A Åt)<<<u) + S[2i]
C ß((C Åu)<<<t) + S[2i+ 1]
(A,B,C,D) ß(B,C,D,A)

endfor
A ß A + S[2r + 2]
C ß C + S[2r + 3]

Atau dapat dilihat pada Gambar 2 dengan f(x)=x*(2x+1).



Proses dekripsi dari algoritma RC6 adalah sebagaiberikut:

Prosedure Dekripsi
(Input :Cipherteks dalam A,B,C,D
r : integer (jumlah rotasi)
S[0..2r+3] : kunci internal
Output :Plainteks dalam A,B,C,D)

Kamus
u : integer
t : integer

Algoritma
C ßC - S[2r + 3]
A ßA - S[2r + 2]

for i ß r downto 1 do
(A,B,C,D) ß(D,A,B,C)
u ß(D * (2D + 1))<<<lg w
t ß (B * (2B + 1))<<<lg w
C ß((C - S[2i+ 1])>>>t) ß u
A ß((A - S[2i])>>>u) ß t

endfor
D ß D - S[1]
B ß B - S[0]

Atau dapat dilihat pada Gambar 3 dengan f(x)=x*(2x+1).



Gambar 3 Proses Dekripsi RC6

3.        PENERAPAM

3.1. Penerapan Algoritma RC6
Salah mode penerapan Algoritma RC6 untuk enkripsi Pesan  adalah mode ECB, mode ini adalah mode yang paling sederhana dan sering digunakan. Dalam block cipher dibutuhkan metode pemrosesan blok dan mode ECB yang memproses setiap blok secara independen akan memerlukan jumlah memori yang sedikit dan waktu pemrosesan yang singkat. Karakter yang dapat digunakan pada SMS beragam, sebuah karakter dapat memiliki panjang 7 bit, 8 bit atau 16 bit, sebuah pesan tidak dapat memiliki karakter dengan panjang yang beragam, hal ini harus diperhatikan dalam melakukan perancangan algoritma enkripsi. Jika panjang karakter yang digunakan menggunakan panjang 7 bit, maka akan menimbulkan masalah karena pada algoritma RC6 terdapat “lg w” dimana merupakan logaritma basis dua dengan w adalah panjang word, jika yang digunakan kerakter dengan panjang 7 bit, maka panjang word akan menjadi kelipatan 7 sehingga tidak akan ditemukan bilangan bulat dari “lg w”. Atas dasar pertimbangan tersebut

3.2  Penerapan Enkripsi SMS
Hal yang harus di perhatikan dalam penerapan ini tersebut adalah aplikasi SMS standar tiap jenis telepon selular tidaklah sama, panjang sebuah karakter dapat beragam dan kemampuan untuk melakukan konkatinasi tidak dimiliki oleh semua jenis teleponselular dan juga tidak semua aplikasi pengiriman SMS mengirimkan pesan dalam bentuk binary. Penerimaan pesan akan melalui nomor port tersebut dan pengiriman pesan akan selalu ditujukan pada nomor port tersebut. nomor port ini akan menyebabkan panjang pesan berkurang karena informasi nomor port tersebut akan dikirimkan. Pemakaian nomor port ini juga akan menyebabkan aplikasi dapat berdiri sendiri namun tidak akan dapat menerima pesan jika diimplementasikan pada telepon selular yang menggunakan kartu SIM berjenis CDMA. Nomor port tersebut dibawa pada UDH (User Data Header) pada paket data SMS, yang dimana UDH tersebut tidak terdapat pada paket data SMS pada CDMA. jika sebuah pesan telah terenkripsi, maka, dalam pengiriman pesan, pesan yang dikirim berupa pesan binary yang terdiri dari byte-byte hasil enkripsi.


1.        KESIMPULAN

Dari keseluruhan isi jurnal ini, dapat diambil kesimpulan sebagai berikut:
1.        Penerapan algoritma kunci privat untuk enkripsi SMS pada telepon selular dapat meningkatkan keamanan. Pesan yang terenkripsi tidak akan dapat dibaca jika tidak didekripsi dengan menggunakan kunci yang benar, sehingga orang yang tidak mengetahui kunci yang sebenenarnya tidak dapat membaca pesan yang dikirimkan.
2.        Algoritma RC6 dapat diterapkan  dengan baik untuk melakukan enkripsi SMS yang bekerja pada jaringan GSM dengan mengirimkan pesan yang berbentuk binary.
3.        Kekurangan dari implementasi algoritma RC6 untuk enkripsi SMS adalah pesan yang dikirimkan menjadi lebih besar karena harus bekerja pada 8 bit dan dibutuhkan paddinguntuk memenuhi panjang blok.
4.        Semakin besar jumlah rotasi pada algoritma RC6, maka tingkat keamanan akan semakin baik, namun waktu yang diperlukan untuk melakukan enkripsi dan dekripsi akan semakin besar.

5. SARAN
1.  Agar pesan terenkripsi yang dikirimkan memiliki panjang pesan yang sama dengan plainteks yang ditulis oleh pengirim, sebaiknya diterapkan sebuah algoritma kompresi untuk melakukan kompresi pesan.
2.  Algoritma enkripsi yang diterapkan sebaiknya dapat menangani panjang karakter yang memiliki panjang 7 bit untuk melakukan enkripsi SMS. Pada dasarnya panjang karakter pada SMS adalah 7 bit oleh karena itu agar SMS yang dikirimkan tidak mengalami penambahan panjang sebaiknya digunakan suatu algoritma enkripsi yang mampu menangani karakter sepanjang 7 bit.


DAFTAR PUSTAKA
Halim. Abdul, (2007) Penerapan Kriptografi dan Asimetri untuk mengamankan multimedia messaging service (MMS) http://www.digilib.itb.ac.id

Yudi Haribowo, Pengamanan Situs dengan Enkripsi Head dan Body HTML Menggunakan Algoritma RC4,

Kautzar Mohammad Gilang, Implementasi sistem enkripsi pengirim pesan instan java dengan algoritma, RC4 http:// www.if.itb.ac.id

Jati Sasongko,(2005), Pengamanan Data Informasi menggunakan Kriptografi Klasik, http://www.unisbank.ac.id







BAB II. PROGRAM LINEAR
Program linear adalah salah satu model matematika yang digunakan untuk
menyelesaikan masalah optimisasi, yaitu memaksimumkan atau meminimumkan
fungsi tujuan yang bergantung pada sejumlah variabel input.
Hal terpenting yang perlu kita lakukan adalah mencari tahu tujuan penyelesaian
masalah dan apa penyebab masalah tersebut.
Dua macam fungsi Program Linear:
Fungsi tujuan : mengarahkan analisa untuk mendeteksi tujuan perumusan
masalah
Fungsi kendala : untuk mengetahui sumber daya yang tersedia dan permintaan
atas sumber daya tersebut.
1. Masalah Maksimisasi
Maksimisasi dapat berupa memaksimalkan keuntungan atau hasil.
Contoh:
PT LAQUNATEKSTIL memiliki sebuah pabrik yang akan memproduksi 2
jenis produk, yaitu kain sutera dan kain wol. Untuk memproduksi kedua
produk diperlukan bahan baku benang sutera, bahan baku benang wol dan
tenaga kerja. Maksimum penyediaan benang sutera adalah 60 kg per hari,
benang wol 30 kg per hari dan tenaga kerja 40 jam per hari. Kebutuhan setiap
unit produk akan bahan baku dan jam tenaga kerja dapat dilihat dalam tabel
berikut:
Jenis bahan baku Kg bahan baku & Jam tenaga kerja Maksimum
dan tenaga kerja Kain sutera Kain wol penyediaan
Benang sutera 2 3 60 kg
Benang wol - 2 30 kg
Tenaga kerja 2 1 40 jam
Kedua jenis produk memberikan keuntungan sebesar Rp 40 juta untuk kain
sutera dan Rp 30 juta untuk kain wol. Masalahnya adalah bagaimana
menentukan jumlah unit setiap jenis produk yang akan diproduksi setiap hari
agar keuntungan yang diperoleh bisa maksimal.
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
6
Langkah-langkah:
1) Tentukan variabel
X1=kain sutera
X2=kain wol
2) Fungsi tujuan
Zmax= 40X1 + 30X2
3) Fungsi kendala / batasan
1. 2X1 + 3X2 60 (benang sutera)
2. 2X2 30 (benang wol)
3. 2X1 + X2 40 (tenaga kerja)
4) Membuat grafik
1. 2X1 + 3 X 2=60
X1=0, X2 =60/3 = 20
X2=0, X1= 60/2 = 30
2. 2X2 30
X2=15
3. 2X1 + X2 40
X1=0, X2 = 40
X2=0, X1= 40/2 = 20
daerah penyelesaian
X1
X2
0
A B
20
C
D
15 E
20
2
3
30
1
40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
7
Cara mendapatkan solusi optimal:
1. Dengan mencari nilai Z setiap titik ekstrim.
Titik A
X1=0, X2=0
masukkan nilai X1 dan X2 ke Z
Z = 40 . 0 + 30 . 0 = 0
Titik B
X1=20, X2=0
masukkan nilai X1 dan X2 ke Z
Z = 40 . 20 + 30 . 0 = 800
Titik C
Mencari titik potong (1) dan (3)
2X1 + 3X2 = 60
2X1 + X2 = 40
2X2=20 X2=10
Masukkan X2 ke kendala (1)
2X1 + 3X2 = 60
2X1 + 3 . 10 = 60
2X1 + 30 = 60
2X1 = 30 X1 = 15
masukkan nilai X1 dan X2 ke Z
40X1 + 30X2 = 40 . 15 + 30 . 10 = 600 + 300 = 900 (optimal)
Titik D
2X2 = 30
X2 = 15
masukkan X2 ke kendala (1)
2X1 + 3 . 15 = 60
2X1 + 45 = 60
2X1 = 15 X1 = 7,5
masukkan nilai X1 dan X2 ke Z
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
8
Z = 40 . 7,5 + 30 . 15 = 300 + 450 = 750
Titik E
X2 = 15
X1 = 0
masukkan nilai X1 dan X2 ke Z
Z = 40 . 0 + 30 .15 = 450
Kesimpulan :
untuk memperoleh keuntungan optimal, maka X1 = 15 dan X2 = 10 dengan
keuntungan sebesar Rp 900 juta.
2. Dengan cara menggeser garis fungsi tujuan.
Solusi optimal akan tercapai pada saat garis fungsi tujuan menyinggung daerah
feasible (daerah yang diliputi oleh semua kendala) yang terjauh dari titik origin.
Pada gambar, solusi optimal tercapai pada titik C yaitu persilangan garis kendala
(1) dan (3).
Titik C
Mencari titik potong (1) dan (3)
2X1 + 3X2 = 60
2X1 + X2 = 40
2X2=20
X2=10
Masukkan X2 ke kendala (1)
2X1 + 3X2 = 60
2X1 + 3 . 10 = 60
2X1 + 30 = 60
2X1 = 30 X1 = 15
masukkan nilai X1 dan X2 ke Z
40X1 + 30X2 = 40 . 15 + 30 . 10 = 600 + 300 = 900

2 . Masalah Minimisasi
Minimisasi dapat berupa meminimumkan biaya produksi. Solusi optimal tercapai
pada saat garis fungsi tujuan menyinggung daerah fasible yang terdekat dengan
titik origin.
Contoh :
Perusahaan makanan ROYAL merencanakan untuk membuat dua jenis makanan
yaitu Royal Bee dan Royal Jelly. Kedua jenis makanan tersebut mengandung
vitamin dan protein. Royal Bee paling sedikit diproduksi 2 unit dan Royal Jelly
paling sedikit diproduksi 1 unit. Tabel berikut menunjukkan jumlah vitamin dan
protein dalam setiap jenis makanan:
Jenis makanan Vitamin (unit) Protein (unit) Biaya per unit
(ribu rupiah)
Royal Bee 2 2 100
Royal Jelly 1 3 80
minimum kebutuhan 8 12
Bagaimana menentukan kombinasi kedua jenis makanan agar meminimumkan
biaya produksi.
Langkah – langkah:
1. Tentukan variabel
X1 = Royal Bee
X2 = Royal Jelly
2. Fungsi tujuan
Zmin = 100X1 + 80X2
3. Fungsi kendala
1) 2X1 + X2 8 (vitamin)
2) 2X1 + 3X2 12 (protein)
3) X1 2
4) X2 1
4. Membuat grafik
1) 2X1 + X2 = 8

X1 = 0, X2 = 8
X2 = 0, X1 = 4
2) 2X1 + 3X2 = 12
X1 = 0, X2 = 4
X2 = 0, X1 = 6
3) X1 = 2
4) X2 = 1
Solusi optimal tercapai pada titik B (terdekat dengan titik origin), yaitu
persilangan garis kendala (1) dan (2).
2X1 + X2 = 8
2X1 + 3X2 = 12
-2X2 = -4 X2 = 2
masukkan X2 ke kendala (1)
2X1 + X2 = 8
2X1 + 2 = 8
2 X1 = 6 X1 = 3
masukkan nilai X1 dan X2 ke Z
Z min = 100X1 + 80X2 = 100 . 3 + 80 . 2 = 300 + 160 = 460
Kesimpulan :
2 4 6
1
4
8
X1
X2
A
B
C
(4)
(2)
(1) (3)
daerah penyelesaian

Untuk meminimumkan biaya produksi, maka X1 = 3 dan X2 = 2 dengan biaya
produksi 460 ribu rupiah.
SOAL LATIHAN
1. Maksimumkan Z = 3X1 + 5X2
Kendala : 1) 2X1 8
2) 3X2 15
3) 6X1 + 5X2 30
X1 0 , X2 0
2. Minimumkan Z = 5 X1 + 2X2
Kendala: 1) 6X1 + X2 6
2) 4X1 + 3X2 2
3) X1 + 2X2 4 , X1 0
3. PT BAKERY memproduksi tiga jenis roti kering, yaitu pia, bolukismis dan
coklatkeju dengan keuntungan tiap jenis produk masing-masing Rp 150, Rp
400 dan Rp 600. Setiap minggu ditetapkan minimum produksi roti pia 25 unit,
bolukismis 130 unit dan coklatkeju 55 unit. Ketiga jenis roti memerlukan
pemrosesan tiga kali yaitu penyiapan bahan, peracikan dan pengovenan seperti
terlihat pada tabel berikut:
Pemrosesan Jenis roti Penyediaan max
pia bolukismis coklatkeju (jam)
penyiapan bahan 4 2 6 130
peracikan 3 4 9 170
pengovenan 1 2 4 52
Bagaimana formulasi program linear masalah PT Bakery tersebut dan hitung
solusi optimalnya!


BAB III. METODE SIMPLEX
Metode grafik tidak dapat menyelesaikan persoalan linear program yang memilki
variabel keputusan yang cukup besar atau lebih dari dua, maka untuk
menyelesaikannya digunakan Metode Simplex.
Beberapa ketentuan yang perlu diperhatikan, antara lain:
1. Nilai kanan (NK / RHS) fungsi tujuan harus nol (0).
2. Nilai kanan (RHS) fungsi kendala harus positif. Apabila negatif, nilai
tersebut harus dikalikan –1.
3. Fungsi kendala dengan tanda “ ” harus diubah ke bentuk “=” dengan
menambahkan variabel slack/surplus. Variabel slack/surplus disebut juga
variabel dasar.
4. Fungsi kendala dengan tanda “ ” diubah ke bentuk “ ” dengan cara
mengalikan dengan –1, lalu diubah ke bentuk persamaan dengan
ditambahkan variabel slack. Kemudian karena RHS-nya negatif, dikalikan
lagi dengan –1 dan ditambah artificial variabel (M).
5. Fungsi kendala dengan tanda “=” harus ditambah artificial variabel (M).
Pembuatan Tabel Simplex
Contoh soal:
Z = 3X1 + 5X2
Kendala:
1) 2X1 8
2) 3X2 15
3) 6X1 + 5X2 30
Langkah-langkah:
1. Mengubah fungsi tujuan dan fungsi kendala (lihat beberapa ketentuan yang
harus diperhatikan di atas!)
Fungsi tujuan
Z = 3X1 + 5X2 => Z - 3X1 - 5X2 = 0
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
13
Fungsi kendala
1) 2X1 8 => 2X1 + X3 = 8
2) 3X2 15 => 3X2 + X4 = 15
3) 6X1 + 5X2 30 => 6X1 + 5X2 + X5 = 30
(X3, X4 dan X5 adalah variabel slack)
2. Menyusun persamaan-persamaan ke dalam tabel
Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -3 -5 0 0 0 0
X3 0 2 0 1 0 0 8
X4 0 0 3 0 1 0 15
X5 0 6 5 0 0 1 30
3. Memilih kolom kunci
Kolom kunci adalah kolom yang mempunyai nilai pada baris Z yang bernilai
negatif dengan angka terbesar.
Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -3 -5 0 0 0 0
X3 0 2 0 1 0 0 8
X4 0 0 3 0 1 0 15
X5 0 6 5 0 0 1 30
4. Memilih baris kunci
Nilai kanan (NK)
Nilai kolom kunci
Baris kunci adalah baris yang mempunyai index terkecil
Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -3 -5 0 0 0 0
X3 0 2 0 1 0 0 8 ~
X4 0 0 3 0 1 0 15 5
X5 0 6 5 0 0 1 30 6
Index =
angka kunci koef angka kolom kunci


5. Mengubah nilai-nilai baris kunci
=> dengan cara membaginya dengan angka kunci
Baris baru kunci = baris kunci : angka kunci
sehingga tabel menjadi seperti berikut:
Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -3 -5 0 0 0 0
X3 0 2 0 1 0 0 8 ~
X2 0 0 1 0 1/3 0 5 5
X5 0 6 5 0 0 1 30 6
6. Mengubah nilai-nilai selain baris kunci sehingga nilai-nilai kolom kunci
(selain baris kunci) = 0
Baris baru = baris lama – (koefisien angka kolom kunci x nilai baris
baru kunci)
Baris Z
Baris lama [ -3 -5 0 0 0 0 ]
NBBK -5 [ 0 1 0 1/3 0 5 ]
Baris baru -3 0 0 5/3 0 25
Baris X3
Baris lama [ 2 0 1 0 0 8 ]
NBBK 0 [ 0 1 0 1/3 0 5 ]
Baris baru 2 0 1 0 0 8
Baris X5
Baris lama [ 6 5 0 0 1 30 ]
NBBK 5 [ 0 1 0 1/3 0 5 ]
Baris baru 6 0 0 -5/3 1 5
Masukkan nilai di atas ke dalam tabel, sehingga tabel menjadi seperti berikut:

Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -3 0 0 5/3 0 25
X3 0 2 0 1 0 0 8
X2 0 0 1 0 1/3 0 5
X5 0 6 0 0 -5/3 1 5
7. Melanjutkan perbaikan-perbaikan (langkah 3-6) sampai baris Z tidak ada
nilai negatif
Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -3 0 0 5/3 0 25
X3 0 2 0 1 0 0 8 4
X2 0 0 1 0 1/3 0 5 ~
X5 0 6 0 0 -5/3 1 5 5/6
Z 1 0 0 0 5/6 1/2 27½ Zmax
X3 0 0 0 1 5/9 -1/3 6 1/3
X2 0 0 1 0 1/3 0 5
X1 0 1 0 0 -5/18 1/6 5/6
Diperoleh hasil: X1 = 5/6 , X2 = 5, Zmax = 27 ½
SOAL LATIHAN
1. Selesaikan linear program berikut ini dengan metode Simplex
Maksimumkan Z = 400X1 + 300X2
Fungsi kendala/ batasan:
1) 4X1 + 6X2 1200
2) 4X1 + 2X2 800
3) X1 250
4) X2 300

2. Selesaikan linear program berikut ini dengan metode Simplex
Maksimumkan Z = 2X1 + 3X2 + X3
Dengan fungsi kendala:
1) X1 + X2 + X3 9
2) 2X1 + 3X2 25
3) X2 + 2X3 10
4) X1, X2, X3 0
PENYIMPANGAN - PENYIMPANGAN BENTUK STANDAR
1. Fungsi batasan dengan tanda sama dengan (=)
=> ditambah dengan variabel buatan
Contoh :
Fungsi kendala:
1) 2X1 8 => 2X1 +X3 = 8
2) 3X2 15 => 3X2 +X4 = 15
3) 6X1 + 5X2 = 30 => 6X1 + 5X2 + X5 = 30
Fungsi tujuan:
Z = 3X1 + 5X2 => Z – 3X1 – 5X2 + MX5 = 0
Nilai setiap variabel dasar (X5) harus sebesar 0, sehingga fungsi tujuan harus
dikurangi dengan M dikalikan dengan baris batasan yang bersangkutan (3). Nilai
baris Z sebagai berikut:
[ -3 -5 0 0 M , 0 ]
M [ 6 5 0 0 1 , 30]
(-6M-3) (-5M-5) 0 0 0 -30M
Tabel:
Var.Dsr Z X1 X2 X3 X4 X5 NK index
Z 1 -6M-3 -5M-5 0 0 0 -30M
X3 0 2 0 1 0 0 8 4
X4 0 0 3 0 1 0 15 ~
X5 0 6 5 0 0 1 30 5

VD Z X1 X2 X3 X4 X5 NK index
Z 1 0 -5M-5 3M+3/2 0 0 -6M+12
X1 0 1 0 1/2 0 0 4 ~
X4 0 0 3 0 1 0 15 5
X5 0 0 5 -3 0 1 6 6/5
Z 1 0 0 -3/2 0 M+1 18
X1 0 1 0 ½ 0 0 4 8
X4 0 0 0 9/5 1 -3/5 19/3 5/27
X2 0 0 1 -3/5 0 1/5 6/5 -2
Z 1 0 0 0 5/6 M+1/2 27 ½ max
X1 0 1 0 0 -5/18 1/6 5/6
X3 0 0 0 1 5/9 -1/3 6 1/3
X2 0 0 1 0 1/3 0 5
Diperoleh hasil : X1 = 5/6, X2 = 5 dan Zmax = 27 ½
2. Fungsi tujuan : Minimisasi
Soal minimisasi harus diubah menjadi maksimisasi dengan cara mengganti tanda
positif dan negatif pada fungsi tujuan.
Contoh:
Minimumkan Z = 3X1 + 5X2
Fungsi batasan: 1) 2X1 = 8
2) 3X2 15
3) 6X1 + 5X2 30
Penyelesaian:
Fungsi batasan: 1) 2X1 + X3 = 8
2) 3X2 + X4 = 15
3) 6X1 + 5X2 -X5 + X6 = 30

Fungsi tujuan menjadi:
maksimumkan (-Z) = -3X1 – 5X2 –MX3 – MX6
diubah menjadi fungsi implisit => -Z + 3X1 + 5X2 + MX3 + MX6 = 0
Nilai – nilai variabel dasar (X3 dan X6 ) harus = 0, maka:
[ 3 5 M 0 0 M , 0 ]
-M [ 2 0 1 0 0 0 , 8 ]
-M [ 6 5 0 0 -1 1 , 30 ]
(-8M+3) (-5M+5) 0 0 M 0 , -38M
Tabel:
VD Z X1 X2 X3 X4 X5 X6 NK index
Z -1 -8M+3 -5M+5 0 0 0 0 -38M
X3 0 2 0 1 0 0 0 8 4
X4 0 0 3 0 1 0 0 15
X6 0 6 -5 0 0 -1 1 30 5
Z -1 3 -5M+5 4M-3/2 0 M 0 -6M-12
X1 0 1 0 ½ 0 0 0 4
X4 0 0 3 0 1 0 0 15 5
X6 0 0 5 -3 0 -1 1 6 6/5
Z -1 0 0 M+3/2 0 1 M+1 -18 min
X1 0 1 0 ½ 0 0 0 4
X4 0 0 1 9/5 1 3/5 -3/5 5 2/5
X2 0 0 1 -3/5 0 -1/5 1/5 6/5
(karena –Z= -18, maka Z=18)
Penyelesaian optimal: X1 = 4, X2 = 6/5 dan Zmin = 18
+
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
19
SOAL LATIHAN
1. Minimumkan Z = 3X1 + 2X2
Fungsi batasan : 1) X1 + 2X2 20
2) 3X1 + X2 20 , X1 0 , X2 0
2. Maksimumkan Z = 4X1 + 10X2 + 6X3
Fungsi batasan: 1) X1 + 3X2 + 3X3 6
2) 2X1 – X2 + 4X3 = 4
X1, X2, X3 0

BAB III. DUALITAS
Dalam sebuah pemodelan Pemrograman Linear, terdapat dua konsep yang saling
berlawanan. Konsep yang pertama kita sebut Primal dan yang kedua Dual.Bentuk
Dual adalah kebalikan dari bentuk Primal. Hubungan Primal dan Dual sebagai
berikut:
Masalah Primal (atau Dual) Masalah Dual (atau Primal)
Koefisien fungsi tujuan ……………… Nilai kanan fungsi batasan
Maksimumkan Z (atau Y) …………... Minimumkan Y (atau Z)
Batasan i …………………………….. Variabel yi (atau xi)
Bentuk …………………………….. yi 0
Bentuk = …………………………….. yi dihilangkan
Variabel Xj ………………………….. Batasan j
Xj 0 ………………………………... Bentuk
Xj 0 dihilangkan …………………... Bentuk =
Contoh 1:
Primal
Minimumkan Z = 5X1 + 2X2 + X3
Fungsi batasan: 1) 2X1 + 3X2 + X3 20
2) 6X1 + 8X2 + 5X3 30
3) 7X1 + X2 + 3X3 40
X1 , X2 , X3 0
Dual
Maksimumkan Y= 20 y1 + 30 y2 + 40 y3
Fungsi batasan: 1) 2y1 + 6y2 + 7y3 5
2) 3y1 + 8y2 + y3 2
3) y1 + 5y2 + 3y3 1
y1, y2, y3 0

Contoh 2 :
Primal
Minimumkan Z = 2X1 + X2
Fungsi batasan: 1) X1 + 5X2 10
2) X1 + 3X2 6
3) 2X1 + 2X2 8
X1, X2 0
Dual
Maksimumkan Y = 10 y1 + 6y2 + 8y3
Fungsi batasan : 1) y1 + y2 + 2y3 2
2) 5y1 + 3y2 + 2y3 1
y1, y2 0
Contoh 3:
Primal
Maksimumkan Z = X1 + 3X2 – 2X3
Fungsi batasan: 1) 4X1 + 8X2 + 6X3 = 25
2) 7X1 + 5X2 + 9X3 = 30
X1, X2, X3 0
Dual
Minimumkan Y= 25y1 + 30y2
Fungsi batasan: 1) 4y1 + 7y2 1
2) 8y1 + 5y2 3
3) 6y1 + 9y2 -2

SOAL LATIHAN
1. Primal
Maksimumkan Z = 5X1 + 7X2
Fungsi batasan: 1) 2X1 + X2 8
2) X1 + 2X2 8
3) 6X1 + 7X2 42
X1, X2, X3 0
2. Primal
Maksimumkan Z = X1 + 3X2 – 2X3
Fungsi batasan: 1) 4X1 + 8X2 + 6X3 = 25
2) 7X1 + 5X2 + 9X3 = 30
X1, X2, X3 0
3. Primal
Minimumkan Z = 3X1 + 2X2 + X3 + 2X4 + 3X5
Fungsi batasan: 1) 2X1 + 5X2 + 4 X4 + X5 6
2) 4X2 - 2X3 + 2X4 + 3X5 5
3) X1 – 6X2 + 3X3 + 7X4 + 5X5 7
X1, X2, X3, X4, X5 0
4. Primal
Minimumkan Z = X1 + 2X2 + X3
Fungsi batasan: 1) X2 + X3 = 1
2) 3X1 + X2 + 3X3 = 4
X1, X2, X3 0

BAB IV. MASALAH PENUGASAN (ASSIGNMENT PROBLEM)
Salah satu metode yang digunakan untuk Penugasan adalah Metode Hungarian.
Pada Metode Hungarian, jumlah sumber-sumber yang ditugaskan harus sama
persis dengan jumlah tugas yang akan diselesaikan. Setiap sumber harus
ditugaskan hanya untuk satu tugas. Jadi, masalah penugasan akan mencakup
sejumlah n sumber yang mempunyai n tugas, sehingga ada n! (n faktorial)
kemungkinan. Masalah ini dapat dijelaskan dengan mudah dalam bentuk matriks
segi empat, dimana baris-barisnya menunjukkan sumber-sumber dan kolomkolomnya
menunjukkan tugas-tugas.
1. Masalah Minimisasi
Contoh:
Sebuah perusahaan kecil mempunyai 4 pekerjaan yang berbeda untuk diselesaikan
oleh 4 karyawan. Biaya penugasan seorang karyawan untuk pekerjaan yang
berbeda adalah berbeda karena sifat pekerjaan berbeda-beda. Setiap karyawan
mempunyai tingkat ketrampilan, pengalaman kerja dan latar belakang pendidikan
serta latihan yang berbeda pula. Sehingga biaya penyelesaian pekerjaan yang
sama oleh para karyawan yang berlainan juga berbeda. Tabel biaya sebagai
berikut:
pekerjaan
karyawan
I II III IV
Raihan Rp 150 Rp 200 Rp 180 Rp 220
Hamdan Rp 140 Rp 160 Rp 210 Rp 170
Hasan Rp 250 Rp 200 Rp 230 Rp 200
Dzakwan Rp 170 Rp 180 Rp 180 Rp 160
Masalahnya adalah bagaimana menugaskan keempat karyawan untuk
menyelesaikan keempat pekerjaan agar total biaya pekerjaan minimum.
Langkah-langkah:
1. Menyusun tabel biaya seperti tabel di atas.
2. Melakukan pengurangan baris, dengan cara:
a. memilih biaya terkecil setiap baris

b. kurangkan semua biaya dengan biaya terkecil setiap baris
Sehingga menghasilkan reduced cost matrix /matrik biaya yang telah dikurangi.
pekerjaan
karyawan
I II III IV
Raihan (150-150)
=0
(200-150)
=50
(180-150)
= 30
(220-150)
= 70
Hamdan (140-140)
= 0
(160-140)
= 20
(210-140)
=70
(170-140)
= 30
Hasan (250-200)
= 50
(200-200)
= 0
(230-200)
= 30
(200-200)
= 0
Dzakwan (170-160)
= 10
(180-160)
= 20
(180-160)
= 20
(160-160)
= 0
3. Melakukan pengurangan kolom
Berdasarkan hasil tabel langkah 2, pilih biaya terkecil setiap kolom untuk
mengurangi seluruh biaya dalam kolom-kolom tersebut. Pada contoh di atas hanya
dilakukan pada kolom III karena semua kolom lainnya telah mempunyai elemen
yang bernilai nol (0). Jika langkah kedua telah menghasilkan paling sedikit satu
nilai nol pada setiap kolom, maka langkah ketiga dapat dihilangkan. Berikut
matrix total opportunity cost, dimana setiap baris dan kolom terdapat paling
sedikit satu nilai nol.
Tabel total opportunity cost matrix
pekerjaan
karyawan
I II III IV
Raihan 0 50 (30-20)=10 70
Hamdan 0 20 (70-20)=50 30
Hasan 50 0 (30-20)=10 0
Dzakwan 10 20 (20-20)=0 0
4. Membentuk penugasan optimum
Prosedur praktis untuk melakukan test optimalisasi adalah dengan menarik
sejumlah minimum garis horisontal dan/ atau vertikal untuk meliputi seluruh
elemen bernilai nol dalam total opportunity cost matrix. Jika jumlah garis sama
dengan jumlah baris/ kolom maka penugasan telah optimal. Jika tidak maka harus
direvisi.

pekerjaan
karyawan
I II III IV
Raihan 0 50 10 70
Hamdan 0 20 50 30
Hasan 50 0 10 0
Dzakwan 10 20 0 0
5. Melakukan revisi tabel
a. Untuk merevisi total opportunity cost, pilih angka terkecil yang tidak
terliput (dilewati) garis. (pada contoh di atas = 10)
b. Kurangkan angka yang tidak dilewati garis dengan angka terkecil (10)
c. Tambahkan angka yang terdapat pada persilangan garis dengan angka
terkecil (10) yaitu (50) pada Hasan dan (10) pada Dzakwan.
d. Kembali ke langkah 4
Revised matrix:
pekerjaan
karyawan
I II III IV
Raihan 0 40 0 60
Hamdan 0 10 40 20
Hasan 60 0 10 0
Dzakwan 20 20 0 0
Berikut tabel penugasannya
Penugasan Biaya
Raihan - III
Hamdan - I
Hasan - II
Dzakwan - IV
Rp 180
Rp 140
Rp 200
Rp 160
Rp 680
2. Jumlah Pekerjaan Tidak Sama Dengan Jumlah Karyawan
Bila jumlah pekerjaan lebih besar dari jumlah karyawan, maka harus ditambahkan
karyawan semu (dummy worker). Biaya semu sama dengan nol karena tidak akan
terjadi biaya bila suatu pekerjaan ditugaskan ke karyawan semu. Bila jumlah
karyawan lebih banyak daripada pekerjaan, maka ditambahkan pekerjaan semu
(dummy job). Sebagai contoh, bila jumlah pekerjaan lebih besar dari jumlah
karyawan dapat dilihat pada tabel berikut:
pekerjaan
karyawan
I II III IV
Raihan Rp 150 Rp 200 Rp 180 Rp 220
Hamdan Rp 140 Rp 160 Rp 210 Rp 170
Hasan Rp 250 Rp 200 Rp 230 Rp 200
Dzakwan Rp 170 Rp 180 Rp 180 Rp 160
Dummy X Rp 0 Rp 0 Rp 0 Rp 0
Prosedur penyelesaian sama dengan langkah-langkah sebelumnya.
3. Masalah Maksimisasi
Dalam masalah maksimisasi, elemen-elemen matriks menunjukkan tingkat
keuntungan. Efektivitas pelaksanaan tugas oleh karyawan diukur dengan jumlah
kontribusi keuntungan.
Contoh: Tabel keuntungan
Pekerjaan
karyawan
I II III IV V
Afif Rp 1000 Rp 1200 Rp 1000 Rp 800 Rp 1500
Bady Rp 1400 Rp 1000 Rp 900 Rp 1500 Rp 1300
Dzaky Rp 900 Rp 800 Rp 700 Rp 800 Rp 1200
Farras Rp 1300 Rp 1500 Rp 800 Rp 1600 Rp 1100
Ghazy Rp 1000 Rp 1300 Rp 1400 Rp 1100 Rp 1700
Langkah-langkah:
a. Seluruh elemen dalam setiap baris dikurangi dengan nilai maksimum dalam
baris yang sama. Prosedur ini menghasilkan Matriks Opportunity Loss.
Matriks ini sebenarnya bernilai negatif.
Pekerjaan
karyawan
I II III IV V
Afif 500 300 500 700 0
Bady 100 500 600 0 200
Dzaky 300 400 500 400 0
Farras 300 100 800 0 500
Ghazy 700 400 300 600 0

b. Meminimumkan opportunity-loss dengan cara mengurangi seluruh elemen
dalam setiap kolom (yang belum ada nol-nya) dengan elemen terkecil dari
kolom tersebut.
Matriks total opportunity loss
Pekerjaan
karyawan
I II III IV V
Afif 400 200 200 700 0
Bady 0 400 300 0 200
Dzaky 200 300 200 400 0
Farras 200 0 500 0 500
Ghazy 600 300 0 600 0
Dari matriks di atas dapat dilihat bahwa seluruh elemen yang bernilai nol baru
dapat diliput oleh 4 garis. Jadi matriks harus direvisi.
c. Merevisi matriks
Pekerjaan
karyawan
I II III IV V
Afif 200 0 0 500 0
Bady 0 400 300 0 400
Dzaky 0 100 0 200 0
Farras 200 0 500 0 700
Ghazy 600 300 0 600 200
Schedul penugasan optimal dan keuntungan total untuk dua alternatif
penyelesaian adalah:
Penugasan alternatif 1 keuntungan Penugasan alternatif 2 keuntungan
Afif - II
Bady - I
Dzaky - V
Farras - IV
Ghazy - III
Rp 1200
Rp 1400
Rp 1200
Rp 1600
Rp 1400
Rp 6800
Afif - V
Bady - IV
Dzaky - I
Farras - II
Ghazy - III
Rp 1500
Rp 1500
Rp 900
Rp 1500
Rp 1400
Rp 6800
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
28
SOAL LATIHAN
1. Sebuah perusahaan pengecoran logam mempunyai empat jenis mesin yang
diberi nama M1, M2, M3 dan M4. Setiap mesin mempunyai kapasitas yang
berbeda dalam pengoperasiannya. Dalam minggu mendatang perusahaan
mendapatkan pesanan untuk menyelesaikan empat jenis pekerjaan (job) yaitu
J1, J2, J3 dan J4. Biaya pengoperasian setiap pekerjaan oleh keempat mesin
dapat dilihat dalam tabel berikut:
Job Mesin
M1 M2 M3 M4
J1 210 150 180 130
J2 140 160 200 190
J3 150 175 220 200
J4 200 115 160 190
Masalahnya adalah bagaimana menugaskan keempat mesin untuk
menyelesaikan keempat jenis pekerjaan agar total biaya pekerjaan minimum!
2. Seorang pengusaha konveksi mempunyai 4 orang karyawati yang
memproduksi 4 jenis produk. Jumlah produk yang dihasilkan masing-masing
karyawan tiap bulannya dapat dilihat pada tabel berikut:
Karyawati Produk
Celana panjang Rok Hem Baju safari
Ulfah 6 7 10 9
Salma 2 8 7 8
Rana 8 9 5 12
Nabila 7 11 12 3
Buat penugasan agar jumlah produk yang dihasilkan bisa maksimum!
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
29
BAB V. METODE TRANSPORTASI
Metode Transportasi merupakan suatu metode yang digunakan untuk mengatur
distribusi dari sumber-sumber yang menyediakan produk yang sama ke tempattempat
yang membutuhkan secara optimal dengan biaya yang termurah . Alokasi
produk ini harus diatur sedemikian rupa karena terdapat perbedaan biaya-biaya
alokasi dari satu sumber atau beberapa sumber ke tempat tujuan yang berbeda.
Tabel awal dapat dibuat dengan dua metode, yaitu:
1. Metode North West Corner (NWC) => dari pojok kiri atas ke pojok
kanan bawah
Kelemahan : tidak memperhitungkan besarnya biaya sehingga kurang
efisien.
2. Metode biaya terkecil => mencari dan memenuhi yang biayanya terkecil
dulu. Lebih efisien dibanding metode NWC.
Setelah tabel awal dibuat, tabel dapat dioptimalkan lagi dengan metode:
1. Stepping Stone (batu loncatan)
2. Modified Distribution Method (MODI)
Selain metode-metode di atas masih ada satu metode yang lebih sederhana
penggunaannya yaitu metode Vogel’s Approximation Method (VAM).
Contoh masalah transportasi:
ke
dari
Gudang A Gudang B Gudang C Kapasitas
pabrik
Pabrik
W
Rp 20 Rp 5 Rp 8 90
Pabrik
H
Rp 15 Rp 20 Rp 10 60
Pabrik
P
Rp 25 Rp 10 Rp 19 50
Kebutuhan gudang 50 110 40 200
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
30
Penyelesaian:
1. Metode NWC
ke
dari
Gudang A Gudang B Gudang C Kapasita
s pabrik
Pabrik
W
20 5 8 90
Pabrik
H
15 20 10 60
Pabrik
P
25 10 19 50
Kebutuhan
gudang
50
110
40
200
Biaya yang dikeluarkan :
(50 . 20) + (40 . 5) +( 60 . 20) + (10.10) + (40.19) = 3260
2. Metode biaya terkecil
ke
dari
Gudang A Gudang B Gudang C Kapasita
s pabrik
Pabrik
W
20 5 8 90
Pabrik
H
15 20 10 60
Pabrik
P
25 10 19 50
Kebutuhan
gudang
50
110
40
200
Biaya yang dikeluarkan :
(90 . 5) + (20 . 15) + (40 . 10) + (30 . 25) + (20 . 10) = 2400
50
40
60
10 40
20
90
30 20
40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
31
Mengoptimalkan tabel:
1. Metode Stepping Stone , misal tabel awal menggunakan yang NWC
ke
dari
Gudang A Gudang B Gudang C Kapasita
s pabrik
Pabrik
W
20
-
5
+
8 90
Pabrik
H
15
+
20
-
10 60
Pabrik
P
25 10 19 50
Kebutuhan
gudang
50
110
40
200
Perbaikan 1 dengan cara trial and error
ke
dari
Gudang A Gudang B Gudang C Kapasita
s pabrik
Pabrik
W
20
-
5
+ 90
8 90
Pabrik
H
15
50 +
20
- 10
10 60
Pabrik
P
25 10 19 50
Kebutuhan
gudang
50
110
40
200
Setelah dihitung dengan trial and error, biaya yang dikeluarkan:
(50 . 15) + (90 . 5) + (10 . 20) + (10 . 10) + (40 . 19) = 2260
50
40
60
10 40
50
40
60
10 40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
32
Perbaikan 2
ke
dari
Gudang A Gudang B Gudang C Kapasita
s pabrik
Pabrik
W
20
50 5
-
40 8
+
90
Pabrik
H
15
20
10 60
Pabrik
P
25 10
50 +
19
-
50
Kebutuhan
gudang
50
110
40
200
Biaya yang dikeluarkan :
(50 . 5) + (40 . 8) + (50 . 15) + (10 . 20) + (50 . 10) = 2020
Perbaikan 3
ke
dari
Gudang A Gudang B Gudang C Kapasita
s pabrik
Pabrik
W
20
60 5
+
30 8
-
90
Pabrik
H
15
20
-
10
+ 10
60
Pabrik
P
25 10
19
50
Kebutuhan
gudang
50
110
40
200
Biaya yang dikeluarkan :
(60 . 5) + (30 . 8) + (50 . 15) + (10 .10) + (50 . 10) = 1890 (paling optimal)
Jika hasil belum optimal, lakukan perbaikan terus sampai mendapatkan hasil yang
optimal.
50
90
10
10 40
50
50
10
50
40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
33
2. Metode MODI
Langkah-langkah:
a. Misal tabel awal yang digunakan adalah tabel NWC
b. Buat variabel Ri dan Kj untuk masing-masing baris dan kolom.
c. Hitung sel yang berisi (nilai tiap kolom dan tiap baris) dengan rumus:
Ri + Kj = Ci
baris kolom biaya
1. W-A = R1 + K1 = 20
2. W-B = R1 + K2 = 5
3. H-B = R2 + K2 = 20
4. P-B = R3 + K2 = 10
5. P-C = R3 + K3 =19
dari persamaan di atas, hitung K1 dan R1 dengan cara meng-nol-kan variabel
R1 atau K1, misal R1 = 0
1. R1 + K1 = 20 => 0 + K1 = 20 , K1 =20
2. R1 + K2 = 5 => 0 + K2 = 5 , K2 = 5
3. R2 + K2 = 20 => R2 + 5 = 20 , R2 = 15
4. R3 + K2 = 10 => R3 + 5 = 10 , R3 = 5
5. R3 + K3 = 19 => 5 + K3 = 19 , K3 = 14
letakkan nilai tersebut pada baris / kolom yang bersangkutan
ke
dari
Gudang A
K1 = 20
Gudang B
K2 = 5
Gudang C
K3 = 14
Kapasita
s pabrik
PabrikW
R1 = 0
20
5
8 90
PabrikH
R2 = 15
15
20
10 60
PabrikP
R3 = 5
25 10 19 50
Kebutuhan
gudang
50
110
40
200
d. Hitung nilai/ index perbaikan setiap sel yang kosong dengan rumus:
50
40
60
10 40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
34
Cij - Ri - Kj
1. H-A = 15 – 15 – 20 = - 20
2. P-A = 25 – 5 – 20 = 0
3. W-C = 8 – 0 – 14 = - 14
4. H-C = 10 – 15 – 14 = - 19
(optimal jika pada sel yang kosong, indek perbaikannya 0, jika belum maka
pilih yang negatifnya besar)
e. Memilih titik tolak perubahan
Pilih nilai yang negatifnya besar yaitu H-A
f. Buat jalur tertutup
Berilah tanda positif pada H-A. Pilih 1 sel terdekat yang isi dan sebaris (H-B), 1
sel yang isi terdekat dan sekolom (W-A), berilah tanda negatif pada dua sel
terebut. Kemudian pilih satu sel yang sebaris atau sekolom dengan dua sel
bertanda negatif tadi (W-B) dan beri tanda positif. Selanjutnya pindahkan isi
dari sel bertanda negatif ke yang bertanda positif sebanyak isi terkecil dari sel
yang bertanda positif (50). Jadi, H-A kemudian berisi 50, H-B berisi 60-50=10,
W-B berisi 40+50=90 dan W-A tidak berisi.
ke
dari
Gudang A
K1 = 20
Gudang B
K2 = 5
Gudang C
K3 = 14
Kap.
pabrik
PabrikW
R1 = 0
20
-
5
+ 90
8 90
PabrikH
R2 = 15
15
50 +
20
- 10
10 60
PabrikP
R3 = 5
25 10 19 50
Keb.Gdg 50 110 40 200
g. Ulangi langkah-langkah c – f sampai indeks perbaikan bernilai 0
hitung sel yang berisi:
W-B = R1 + K2 = 5 => 0 + K2 = 5 , K2 = 5
H-A = R2 + K1 = 15 => R2 + 0 = 15, R2 = 15
50
40
60
10 40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
35
H-B = R2 + K2 = 20 => 15 + 5 = 20 ,
P-B = R3 + K2 = 10 => R3 + 5 = 10 , R3 = 5
P-C = R3 + K3 = 19 => 5 + K3 = 19 , K3 = 14
Perbaikan indeks:
W-A = 20 – 0 – 0 = 20
W-C = 8 – 0 – 14 = - 6
H-C = 10 – 15 – 14 = - 19
P-A = 25 – 5 – 0 = 20
ke
dari
Gudang A
K1 = 0
Gudang B
K2 = 5
Gudang C
K3 = 14
Kapasita
s pabrik
PabrikW
R1 = 0
20
5
8 90
PabrikH
R2 = 15
15
20
-
10
+ 10
60
PabrikP
R3 = 5
25 10
20 +
19
- 30
50
Keb. Gdg 50 110 40 200
Biaya transportasi : (90 . 5) + (50 . 15) + (10 . 10) + (20 . 10) + (30 . 19) = 2070
Hitung sel yang berisi:
W-B = R1 + K2 = 5 => 0 + K2 = 5 , K2 = 5
P-B = R3 + K2 = 10 => R3 + 5 = 10 , R3 = 5
P-C = R3 + K3 = 19 => 5 + K3 = 19 , K3 = 14
H-C = R2 + K3 = 10 => R2 + 14 = 10 , R2 = - 4
H-A = R2 + K1 = 15 => - 4 + K1 = 15 , K1 = 19
Perbaikan indeks (sel kosong) :
W-A = 20 – 0 – 0 = 20
W-C = 8 – 0 – 14 = - 6
H-B = 20 – 15 – 5 = 0
P-A = 25 – 5 – 0 = 20
50
90
10
40
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
36
ke
dari
Gudang A
K1 = 19
Gudang B
K2 = 5
Gudang C
K3 = 14
Kapasita
s pabrik
PabrikW
R1 = 0
20
80 5
-
8
+ 10
90
PabrikH
R2 = - 4
15
20
10
60
PabrikP
R3 = 5
25 10
+ 30
19
- 20
50
Keb. Gdg 50 110 40 200
Biaya transportasi :
(80 . 5) + (10 . 8) + (50 . 15) + (10 . 10) + (30 .10) + (20 . 19) = 2010
Sel berisi:
W-B = R1 + K2 = 5 => 0 + K2 = 5 , K2 = 5
W-C = R1 + K3 = 8 => 0 + K3 = 8 , K3 = 8
H-C = R2 + K3 = 10 => R2 + 8 = 10 , R2 = 2
H-A = R2 + K1 = 15 => 2 + K1 = 15 , K1 = 13
P-B = R3 + K2 = 10 => R3 + 5 = 10 , R3 = 5
Indeks perbaikan:
W-A = 20 – 0 – 19 = 1
H-B = 20 – (-4) – 5 = 19
P-A = 25 – 5 – 19 = 1
Indeks perbaikan sudah positif semua, berarti sudah optimal.
ke
dari
Gudang A
K1 = 13
Gudang B
K2 = 5
Gudang C
K3 = 8
Kapasita
s pabrik
PabrikW
R1 = 0
20
5
8 90
PabrikH
R2 = 2
15
20
10 60
PabrikP
R3 = 5
25 10 19 50
Keb. Gdg 50 110 40 200
50
90
20 30
10
50
80
30
10
20
10
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
37
3. Metode VAM
Metode VAM merupakan metode yang lebih mudah dan lebih cepat untuk
mengatur alokasi dari beberapa sumber ke daerah tujuan.
Langkah metode VAM:
1. Cari perbedaan dua biaya terkecil, yaitu terkecil pertama dan kedua
(kolom dan baris)
2. Pilih perbedaan terbesar antara baris dan kolom
3. Pilih biaya terendah
4. Isi sebanyak mungkin yang bisa dilakukan
5. Hilangkan baris / kolom yang terisi penuh
6. Ulangi langkah 1-5 sampai semua baris dan kolom seluruhnya
teralokasikan.
A B C Kapasitas Perbedaan baris
W
H
P
kebutuhan
20
15
25
50
5
20
10
110
8
10
19
40
90
60
50
8 – 5 = 3
15 – 10 = 5
19 – 10 = 9
Perbedaan
kolom
20 –15
= 5
10-5
= 5
10-8
=2
XPB = 50
Hilangkan baris P
A B C Kapasitas Perbedaan baris
W
H
kebutuhan
20
15
50
5
20
110-50
= 60
8
10
40
90
60
8 – 5 = 3
15 – 10 = 5
Perbedaan
kolom
20 –15
= 5
20-5
= 15
10-8
=2
XWB = 60
Hilangkan kolom B
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
38
A C Kapasitas Perbedaan baris
W
H
20
15
8
10
90-60 =30
60
20 – 8 = 12
15 – 10 = 5
Kebutuhan 50 40
Perbedaan
kolom
20-15= 5 10-8=2 XWC=30
Hilangkan baris W
A C kapasitas
H 15 10 60
Kebutuhan 50 (40-30)=10 XHA=50
XHC= 10
Biaya transportasi :
(10 . 50) + (5 . 60) + (8 . 30) + (15 . 50) + (10 . 10) = 1890 (optimal)
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
39
SOAL LATIHAN
1.
ke
dari
Gudang A Gudang B Gudang C Kapasitas
pabrik
Pabrik 1 Rp 3200 Rp 3300 Rp 3400 106
Pabrik 2 Rp 3600 Rp 4200 Rp 3800 132
Pabrik 3 Rp 3400 Rp 3700 Rp 4000 127
Kebutuhan gudang 122 152 91 365
Selesaikan dengan metode:
a. NWC
b. Biaya terkecil
c. MODI
2. Produksi pabrik A, B , C adalah sebagai berikut:
Pabrik Kapasitas produksi tiap bulan
A
B
C
150 ton
40 ton
80 ton
jumlah 270 ton
Gudang pabrik tersebut mempunyai kapasitas sebagai berikut:
Gudang Kebutuhan produksi tiap bulan
H
I
J
110 ton
70 ton
90 ton
jumlah 270 ton
Biaya untuk mendistribusikan barang dari pabrik ke gudang :
Dari Biaya tiap ton (Rp)
Ke Gudang H Ke Gudang I Ke Gudang J
Pabrik A 27000 23000 31000
Pabrik B 10000 45000 40000
Pabrik C 30000 54000 35000
a. Buat tabel awal transportasi
b. Selesaikan dengan metode biaya terkecil dan optimalkan dengan metode
MODI
c. Selesaikan dengan metode VAM
BAHAN KULIAH RISET OPERASIONAL
TEK INFORMATIKA UPN YOGYAKARTA
BAMBANG YUWONO
40
DAFTAR PUSTAKA
1. Hamdy Taha, Operation Research An Introduction, Edisi 4, Macmillan,
New York
2. Richard Bronson, Theory and Problem of Operation Research ,
McGraw-Hill, Singapore.
3. Subagyo Pangestu, Marwan Asri, dan T. Hani Handoko. Dasar-Dasar
Operation Research, Yogyakarta: PT. BPFE-Yogyakarta, 2000.
4. Aminudin, Prinsip-Prinsip Riset Operasi, Erlangga, 2005
5. Yulian Zamit, Manajemen Kuantitatif, BPFE, Yogyakarta