• Tidak ada hasil yang ditemukan

ALGORITMA PERUBAHAN PEMROGRAMAN LINIER KLASIK MENJADI PEMROGRAMAN LINIER FUZZY

2. Permasalahan

Masalah yang dibahas adalah bagaimana mengubah bentuk sistem pemrograman linier (klasik) menjadi bentuk sistem pemrograman linier fuzzy. Selanjutnya untuk memudahkan, pemrograman linier (klasik) dinamakan pemrograman linier sesuai sebutan yang dikenal. Langkah pertama, diperkenalkan bentuk sistem pemrograman linier. Dengan syarat tambahan dari PK, pemrograman linier ini diubah ke bentuk pemrograman linier fuzzy. Langkah penyelesaianya pada masalah pemrograman linier menggunakan metoda simpleks.

Masalah Pemrograman Linier

Untuk lebih cepat pamahaman, langsung pada permasalahan perencanaan produksi dan metoda penyelesaian menggunakan metoda simpleks yang ada pada program aplikasi Lindo sebagai berikut. (contoh 1).

Contoh 1.

Sebuah perusahaan ingin memkasimalkan keuntungan untuk dua macam produksi barangnya P1, dan P2 yang dibuat dari 3 macam bahan baku M1, M2, dan M3. Untuk memproduksi 1ton P1 diperlukan bahan 2 ton M1, 8 ton M2, dan 3 ton M3. Untuk memproduksi 1 ton P2 diperlukan bahan 6 ton M1, 6 ton M2, dan 1 ton M3. Bahan-bahan yang tersedia 27 ton M1, 45 ton M2, dan 15 ton M3. Keuntungan dari P1 setara dengan 1 juta rupiah,per ton dan P2 setara dengan 2 juta rupiah per ton. Dengan kondisi ini, perusahaan ingin memproduksi P1 dan P2 untuk mendapatkan total keuntungan yang maksimum.

Dari narasi masalah di atas, dibuat tabel kondisi (Tabel 1).

Tabel 1 Kondisi Produksi dan Keuntungan Nama

Bahan

Barang Produksi

Bahan Tersedia P1 P2

M1 2 6 27 M2 8 6 45 M3 3 1 15 Untung

(Juta Rp) 1 2 -

Masalah ditulis dalam sistem pemrograman linier, sebagai berikut maks z = cx

kendala Ax ≤ b x ≥ 0

dengan c = (1 2), x = (x1 x2)T, b = (27 45 15),

dan A =

⎥⎥

⎢⎢

1 6 6

3 8 2

(4)

Untuk kesesuaian bahasan, fungsi objektif dibuat kebalikanya (opposite) menjadi min z = -c x dengan –c = (-1 -2), dan yang lainya tidak berubah. Penyelesaikan menggunakan metoda simpleks diperoleh nilai-nilai x1 = 3, dan x2 = 3,5 sehingga z = -10.

Selanjutnya persamaan (4) dengan tambahan kendala yang diberikan oleh seorang PK, diubah ke bentuk pemrograman linier fuzzy. Kendala fuzzy yang diberikan

Tabel 2 Kendala nonfuzzy dan fuzzy Nonfuzzy

Kondisi Fuzzy (dari PK) µ=0 µ=1 Fungsi

Objektif

-10 -9,5 -10,5

Kendala 1 27 30 27

Kendala 2 45 50 45

Kendala 3 15 17 15

Bentuk akhir dari sistem pemrograman linier fuzzy dari maslah di atas adalah

min λ

kendala

0 ,

5 , 9 2

5 , 8 5

, 0 5 , 1

10 2

, 1 6 , 1

10 3 2

2

2 1

2 1

2 1

2 1

2 1

++ + ≤

≤ + +

≤ + +

x x

x x

x x

x x

x x

λ λ λ λ

(5)

dengan menambahakan variabel baru λ. Perubahan ini diuraikan pada bagian selanjutnya.

Mengubah Pemrograman Linier Menjadi Pemrograman Linier Fuzzy

Persamaan (1) diubah ke bentuk fuzzy dengan persyaratan kefazian (batas kendala/ketersediaan bahan bukan berupa satu nilai. Juga nilai fungsi objektif bukan satu nilai) yang diberikan oleh seorang pembuat keputusan, sehingga didapat bentuk persamaan (2).

Bentuk fuzzy goal (tujuan fuzzy) cx ≤ z0 dan fuzzy constrains (kendala fuzzy) Ax

≤ b pada (2) digabung sehingga menjadi (Sakawa, 1993) Bx ≤ b’

x ≥ 0 (6)

   

dengan B = ⎥

⎢ ⎤

A

c , b’ = ⎥

⎢ ⎤

b z0

Fungsi keanggotaan dari (Bx)i ≤ bi’ yang merupakan kesamaan dari kendala fuzzy Bx ≤ b’ adalah

µi((Bx)i) =

⎪⎪

⎪⎪⎨

+

+

− ≤

i i i

i i i i

i i i

i i i

d b Bx

d b Bx d b

b Bx

b Bx

' ' '

'

) (

; 0

) ( ) ;

1 (

) (

; 1

(7)

di = beda nilai subjektif (jarak) yang ada pada kondisi fuzzy. bi dan di masing-masing ditulis dalam vektor adalah b=(bi)=(b1, b2, …, bn) dan d=(di)=(d1, d2, …, dn). Grafik fungsi keanggotaannya ada pada gambar 1.

Gambar 1 Grafik Fungsi Keanggotaan

Keputusan fuzzy berikut keanggotaan linier pada masalah tersebut, yaitu dengan mendapatkan nilai maksimum dari x* sehingga

µ(x*) = max min {µi((Bx)i)}

x≥0 i=0,1,…,m

Dengan kata lain, penyelesaian masalah adalah dengan mendapatkan x* > 0 yang memaksimumkan pada minimum nilai fungsi keanggotaan.

Dengan cara konstanta sistem pada persamaan 4 dibagi dengan di, didapat

i i

i b d

b''= ' , (B’x)i = (Bx)i/di (8) Sehingga masalah dapat ditulis menjadi µ(x*) = max min {1 + bi''- ((B’x)i)} (9) x≥0 i=0,1,…,m

Dengan memperkenalkan variable λ, masalah ditransformasikan ke bentuk pemrograman linier (klasik) sebagai

maks λ

kendala λ ≤ 1 + bi''- (B’x)i ; i = 0, 1, . . . , m (10) x ≥ 0

b bi+d  B(x)

 µ 

d

Bentuk persamaan (10) dapat langsung diselesaikan menggunakan metoda simpleks.

Contoh 2

Kasus mengubah bentuk pemrograman linier ke bentuk pemroraman linier fuzzy.

Ambil kasus contoh 1, dengan pembuat keputusan (PK) memiliki fuzzy goal dan fuzzy constrains (yang pada sistem ada pada sisi kanan) untuk nilai fungsi keanggotaan µ=0, dan µ=1 seperti disajikan pada Tabel 2.

Ambil z0 = -10,5 (dengan nilai fungsi keanggotaan µ=1), maka persamaan (2) dengan fungsi objektif yang kebalikannya (opposite) diperoleh bentuk fuzzy

-cx ≤ z0

Ax ≤ b x ≥ 0

dengan menggabungkan fuzzy objektif dan fuzzy kendala didapat bentuk (6) Bx ≤ b’

x ≥ 0

dengan B = ⎥

⎢ ⎤

A c =

⎥⎥

⎥⎥

⎢⎢

⎢⎢

⎡− −

1 6 6 2

3 8 2 1

, dan

b’ =

⎡−

15 45 27 5 , 10

(11)

Dari kondisi fuzzy pada tabel 2 didapat di (jarak yang dimungkinkan pada kondisi fuzzy dari PK), yaitu d0 = -9,5 – (-10,5) = 1, d1 = 30-27=3, d2 = 5, dan d3 = 2. Selanjutnya ditulis d = (1 3 5 2)T. Fungsi keanggotaanya adalah

µi((Bx)i) =

+

+

+

+

+

+ +

+

i i i

i i

d b Bx

x x x

x

x x x

x

x x x

x

x x x

x

b Bx

'

2 1 2

1

2 1 2

1

2 1 2

1

2 1 2

1

'

) (

; 0

17 ) 3 ( 15

; 2 / ) 15 ) 3 ((

1

50 ) 6 8 ( 45

; 5 / 45 ) 6 8 ((

1 ((2 6 ) 27)/3; 27 (2 6 ) 30 1

5 , 9 ) ( 5 , 10 );

5 , 10 ) ((

1

) (

; 1

(12)

Nilai-nilai pada persamaan (8) dan di diperoleh

=

= i i

i b d

b'' ' (-10,5 9 9 7,5)T dan

(B’x)i = (Bx)i/di =

⎥⎥

⎥⎥

⎢⎢

⎢⎢

⎡ −

5 , 0

2 , 1

2 2

5 , 1

6 , 13 21

.

   

Bentuk pemrograman linier fuzzy dengan vaiabel λ (bentuk persamaan (10)) adalah bentuk persamaan (5). Persamaan (5) diselesaikan menggunakan metoda simpleks (LINDO), diperoleh x1 = 3,0789, x2 = 3,5921, dan λ = 0,7632.

ALGORITMA

Algoritma adalah urutan langkah-langkah penyelesaian suatu masalah secara sistematis dan efisien. Efisiensi algoritma dapat diukur dari berapa banyak waktu dan besar ruang (memori) yang diperlukan untuk mejalankan algoritma tersebut. Ukuran waktu yang dibutuhkan untuk menjalankan algoritma dapat diukur dari berapa banyak opersai-operasi dasar yang dijalankan, dan ukuran besar ruang dapat dilihat dari berapa besar data yang dioperasikan pada saat algoritma dijalankan.

Sebelum menganalisis algoritma pengubah bentuk sistem persamaan linier klasik ke bentuk sistem persamaan linier fuzzy, terlebih dulu akan dirangcang algoritmanya.

Berikut perancangan algoritmanya.

Setelah kendala fuzzy dimasukan pada sistem pemrograman linier, diperoleh system persamaan linier fuzzy (persamaan 11). Matriks sistem (matriks yang elemennya merupakan konstanta-konstanta variable pada sistem) pada persamaan (11) akan diubah ke bentuk persamaan (10). Matriks-matriks yang akan diproses sehingga diperoleh bentuk yang diinginkan pada persamaan 10, adalah matriks B berordo m x n, matriks b’

berordo m x 1, dan tabel 2 pada kendala non fuzzy (nzi) dan kendala fuzzy (fµ0i dan fµ1i) dengan i=1,2,3,...,m, dan C = (ci) vektor yang menyimpan konstanta.

Prosedur konst_sistem(fµ0, fµ1, B, b’, d, b”, B’) // A. variabel d[1..m]

For (i=1; i<=m; i++) d[i] = fµ0[i] - fµ1[i]

// B. Hitung b” – pada persamaan 8 For (i=1; i<=m; i++)

b”[i] = b’[i]/d[i]

// C. Hitung matriks B’ dengan elemen b[i, j] – pada persamaan 8 For (i=1; i<=m; i++)

For(j=1; j<=n; j++) b’[i, j] = b[i, j]/d[i]

//D. Hitung konstanta pada persamaan 10 For (i=1; i<=m; i++)

c[i] = b”[i] + 1

Prosedur di atas sudah memproses semua nilai yang diperlukan pada sistem persamaan linier fuzzy (konstanta pada matriks B’ dan b”). Langkah selanjutnya tinggal membentuk model (formula) matematik sistem persamaan linier yang dimaksud (persamaan 10). Rancangan untuk membentuk sistem ini diberi nama prosedur model_PLfuzzy berikut ini.

Prosedur model_PLfuzzy(B’, C)

// membentuk model pemrograman linier fuzzy – ke persamaan 5

// B’ matriks m x n yang menyimpan elemen konstanta sistem PL Fuzzy, // dan C vektor nilai konstanta ruas kanan.

Kompleksitas algoritma ditentukan dari setiap blok proses yang terbentuk. Blok proses A, B, dan D menhasilkan sebanyak m proses Blok proses C menghasilkan sebanyak mn proses. Persamaan kompleksitasnya P(n, m) = mn + m. Jika m=n, maka P(n) = n2 + n. Dari hal tersebut diperoleh kompleksitasnya O(n2).

3. Kesimpulan

Bentuk bentuk sistem PL dirubah ke bentuk sistem PL fuzzy menggunakan logika fuzzy. Perubahan ini dikarenakan nilai kendala itu tidak merupakan satu nilai (biasanya dalam interval terentu), dan untuk menghasilkan solusi yang optimal. Perubahan bentuk sistem ini memerlukan beberapa tahap, sehingga dipeorleh bentuk sistem PL fuzzy.

Algoritma untuk mengubah bentuk sistem PL ke bentuk sistem PL fuzzy memiliki kompleksitas O(n2). Bentuk sistem PL fuzzy diperlukan, agar sistem PL dapat langsung diselesaikan menggunakan program aplikasi LINDO.

Daftar Pustaka

[1] Kocay, William. Krehen, L Donald. Graph, Algorithm, and Optimization. Boca Raton, London, New York, Washington D.C. CARC Press Company. 2005.

[2] Sakawa, Matasatoshi. Fuzzy Sets And Interactive Multiobjective Optimization. New York &

London. Plenum Press. 1993.

[3] Selim, Akl G. The Design and Analysis of Parallel Algorithm. Englewood Cliffs, New Jersey. Prentice-Hall International, Inc. 1989.

[4] Suryana, Ino. Pemrograman Linier dengan Kendala Fuzzy untuk Optimasi Produksi.

Universitas Indonesia Depok, Jakarta. Seminar Nasional Matematika. 2010.

[5] Suryana, Ino. Logika Fuzzy Pada Pengaturan Lampu Lalu Lintas. Universitas Indonesia Depok, Jakarta. Seminar Nasional Matematika. 2005.

[6] Tartilah, Tjutju Dimyati. Dimyati, Ahmad. Operations Research: Model-model Pengambilan Keputusan. Bandung. Sinar Baru Algensindo. 2004.

83

MATEMATIKA VEDIK DAN