1
APLIKASI SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN UNTUK OPTIMALISASI PENGGUNAAN LAHAN PERTANIAN Edhy Sutanta Jurusan Teknik Informatika, Fakultas Teknologi Industri, Institut Sains & Teknologi AKPRIND Yogyakarta Jl. Kalisahak 28, Komplek Balapan, Yogyakarta 55222 Phone: 0274-563029-121, Fax: 0274-563847, email:
[email protected] INTISARI Pada musim tanam, para petani umumnya dihadapkan pada permasalahan mendasar yaitu bagaimana memilih jenis tanaman, mengalokasikan luas lahan, dan biaya yang tersedia supaya menghasilkan keuntungan yang optimal. Permasalahan ini dapat dipecahkan dengan menggunakan metode simpleks. Pemilihan jenis tanaman dipengaruhi oleh faktor analitik seperti perkiraan hasil produksi, harga bibit, kebutuhan obat, dan pupuk yang dapat dihitung dengan model optimalisasi. Alternatif penyelesaian permasalahan tersebut, adalah dengan mengembangkan perangkat lunak aplikasi Sistem Pendukung Pengambilan Keputusan/SPPK (Decision Support System/DSS) untuk penentuan jenis tanaman sehingga penggunaan lahan dan keuntungan produksi optimal dapat dicapai. Model permasalahan diselesaikan dengan menggunakan metode simpleks yang sesuai dengan pemrograman linier. Perangkat lunak aplikasi DSS yang dikembangkan akan menampilkan informasi luas lahan, biaya, dan keuntungan yang diperoleh untuk jenis tanaman yang dipilih. Untuk melakukan perhitungan optimalisasi dibutuhkan input luas lahan dan modal yang disediakan untuk sekali musim tanam. Kata-kata kunci: DSS, optimalisasi, simpleks, pemrograman linier PENDAHULUAN Aplikasi sistem Informasi telah mewarnai hampir semua sektor kehidupan, tidak terkecuali pada bidang pertanian. Pengembangan sistem informasi akan bernilai lebih jika memiliki nilai strategis, yaitu tidak hanya nilai kegunaan untuk penghematan semata, tetapi mempunyai kemampuan sebagai sistem pendukung pengambilan keputusan (Decision Support System), dalam hal ini bagi para petani dan penyuluh pertanian. Letak geografis Indonesia yang berada di wilayah tropis secara tidak langsung mengakibatkan sebagian besar mata pencaharian penduduknya adalah petani. Karena pengaruh dua musim yang dimiliki wilayah Indonesia, petani Indonesia umumnya mengolah lahan sawahnya menjadi dua musim tanam, yaitu musim tanam padi dan musim tanam palawija. Pada waktu musim tanam palawija sering petani dihadapkan pada permasalahan pokok, yaitu bagaimana memilih jenis tanaman yang akan ditanaman sehingga menghasilkan keuntungan yang maksimal dengan waktu, lahan dan modal yang terbatas. Mempertimbangkan kondisi yang berlaku di atas maka penelitian ini akan mengimplementasikan metode simpleks untuk mendukung pengambilan keputusan pemilihan jenis tanaman pada musim tanam palawija dan pengalokasian lahan terhadap tanaman terpilih yang menghasilkan keuntungan yang optimal. Aplikasi DSS dalam penelitian ini dibatasi sebagai berikut: 1. Metode yang digunakan untuk penyelesaian masalah adalah simpleks. 2. Variabel yang digunakan tidak dimungkinkan bernilai negatif. 3. Penelitian dilakukan khusus untuk musim tanam palawija. 4. Faktor yang mempengaruhi pemilihan tanaman adalah faktor analitik yang mudah diperhitungkan dalam optimalisasi.
2
TINJAUAN PUSTAKA Konsep Informasi Menurut Robert N. Anthony dan John Dearden, informasi didefinisikan sebagai adalah data yang telah diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya (Jogianto, 1990:8). Berdasarkan definisi tersebut, maka sumber informasi adalah data. Data merupakan bentuk jamak dari datum atau item-item. Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata, sedangkan kejadian (event) adalah sesuatu yang terjadi pada saat tertentu (Jogianto, 1990:8). Informasi dihasilkan dari suatu sistem. Sistem merupakan jaringan kerja dari program-program yang saling berhubungan dan berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu (Jogianto, 1990:1). Gabungan dari sistem dan informasi menghasilkan sistem informasi. Menurut Robert A Leitch dan K Roscoe pengertian sistem informasi adalah suatu sistem dalam organisasi yang mempertemukan kebutuhan pengelola transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategis dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan (Jogianto, 1990:11). Konsep Sistem Pendukung Keputusan DSS merupakan tingkatan yang lebih tinggi dari suatu Sistem Informasi Manajemen /SIM. Prinsip DSS hampir sama dengan SIM yang menitikberatkan pada pembuatan keputusan untuk menyelesaikan setiap tingkat permasalahan. Namun pada hakikatnya pengambilan keputusan tetap dilakukan oleh manusia, sehingga DSS tidak menggantikan kebijakan manusia sebagai pembuat keputusan (Kendall & Kendall, 1995:82-83). Menurut Gorry dan Morton pengertian DSS telah dikembangkan oleh Little pada tahun 1970, yaitu suatu model dasar yang terdiri program-program untuk mengolah kebijakan dan membantu manajer dalam pengambilan keputusan. DSS yang baik harus mudah digunakan, mudah dikendalikan, mampu menyesuaikan diri, penuh dengan persoalan yang penting dan mudah dikomunikasikan (Turban & Aronson, 2001:82-83). Pengembangan suatu DSS sering menghadapi kesulitan akibat adanya karakteristik sistem yang tidak pasti, kompleks, dinamis, serta keterbatasan sumber daya. Pada sisi lain, DSS memberikan keuntungan sebagai berikut (Turban & Aronson, 2001): 1. Memiliki kemampuan dalam membantu menyelesaikan masalah yang kompleks 2. Memiliki tanggapan yang cepat terhadap situasi yang diharapkan karena pengaruh perubahan keadaan. DSS secara teliti memberikan beberapa analisa dalam waktu yang singkat. Perubahan yang mendasar dapat dievaluasi dengan cepat dan efisien. 3. Menghemat biaya, penggunaan aplikasi DSS secara rutin dapat menghemat biaya akibat pengambilan keputusan yang keliru. Keputusan obyektif yang dihasilkan oleh DSS bersifat lebih konsisten dan obyektif dibandingkan keputusan intuitif. Sebuah aplikasi DSS tersusun atas subsistem berikut (Turban & Aronson, 1995): 1. Manajemen Data, yang termasuk dalam subsistem ini adalah pengaturan basis data yang memuat data terkait dengan situasi yang dilakukan oleh Data Base Management System (DBMS). Kemampuan yang diperlukan oleh DSS adalah mengkombinasikan sumber data yang bervariasi (seperti menangkap dan proses ekstraksi), menambah dan mengurangi sumber data secara cepat dan murah, melukiskan data personal sebagai jawaban atas permintaan pemakai, mengatur data yang bervariasi dengan mempunyai fungsi manajemen data selengkap mungkin. 2. Manajemen Model, merupakan paket software yang melakukan perhitungan matematika, manajemen, atau model kualitatif lainnya, dan menyediakan kemampuan analisa sistem dan pengaturan model. Kemampuan yang perlu dimiliki oleh manajemen model atau basis adalah menciptakan model baru secara cepat dan mudah; mengikuti model, data dan aplikasi pemakai; menghubungkan model dengan penghubung yang tepat menuju basis
3
data; mengakses dan mengintegrasikan blok bangunan model; serta mengolah basis model dengan fungsi manajemen yang analog dengan manajemen basis model. 3. Subsistem Antarmuka Pemakai, merupakan komponen antarmuka pemakai yang berfungsi sebagai antarmuka pemakai dengan komputer. Subsistem ini bersifat komunikatif yang mampu memenuhi keinginan pemakai. Kemampuan utama subsistem ini adalah: berpengaruh pada gaya dialog yang berbeda; menangkap, menyimpan dan menganalisis pemakai dialog; menolong pemakai dengan berbagai format dan perlengkapan intput (input); menyajikan data dengan bermacam format dan perlengkapan output (output); menyediakan sarana antarmuka dengan pemakai melalui basis data dan basis model; serta menyimpan intput (input). 4. Subsistem Pengetahuan, merupakan subsistem pilihan yang dapat mendukung subsistem lain atau yang bertindak sebagai komponen yang berdiri sendiri Konsep Pengambilan Keputusan Keputusan yang dibuat oleh manusia sebagian besar ditetapkan berdasarkan intuisi dengan informasi dan preferensi yang dimiliki. Ciri utama intuisi adalah logika dari intuisi tidak dapat ditelusuri secara rasional. Sehingga pengambilan keputusan berdasarkan intuisi selalu mencari alternatif keputusan lain yang dianggap lebih baik untuk merasionalkan keputusan yang telah diambil. Manusia sebagai pengambil keputusan cenderung berpendapat bahwa keputusan yang tepat adalah keputusan yang memberikan hasil yang baik. Sebaliknya, bila kondisi tidak terpenuhi, maka akan cenderung menilai keputusan tidak tepat. Secara logis, menilai bobot dan kualitas suatu keputusan berdasarkan hasil saja tidaklah benar. Bertolak dari permasalahan ini maka salah satu cara untuk menilai keputusan adalah melihat apakah keputusan itu konsisten dengan persoalan dan solusi yang ada, informasi yang tersedia, dan referensi yang dimiliki oleh pengambil keputusan untuk mendapatkan cara mengendalikan yang maksimal berkenaan dengan keputusan yang dibuat. Solusinya adalah dengan menggunakan analisa keputusan. Menurut Herbet dan Simon, pengambilan keputusan yang baik terdiri atas unsur tindakan dan tahapan berikut (Turban & Aronson, 2001): 1. Penelusuran (intelegence), pada tahap ini dilakukan pencarian data baku, pengolahan data, dan pencarian petunjuk untuk mengidentifikasikan masalah secara jelas. 2. Perancangan (design), yaitu pengembangan, analisa, dan pencarian alternatif solusi, serta evaluasi kelayakan solusi. Pada tahap ini dilakukan implementasi, pengujian, dan validasi model tahap perancangan, yaitu a) struktur data, b) pemilihan kreteria untuk evaluasi, termasuk penetapan tingkat aspirasi untuk menetapkan tujuan, c) pengembangan alternatif, d) memprediksikan hasil, dikaitkan dengan ketersediaan informasi yang berpengaruh terhadap ketidakpastian atau kepastian solusi. 3. Pemilihan (choise), merupakan tahap pemilihan alternatif solusi yang layak. 4. Implementasi (implementation), yaitu tahap pelaksanaan keputusan. Konsep Metode Simpleks Pada dasarnya, apa yang dilakukan oleh metode simpleks adalah menterjemahkan definisi geometris titik ekstrim menjadi definisi aljabar. Langkah pertama metode simpleks mengharuskan setiap batasan ditempatkan dalam bentuk standard. Jenis konversi ini umumnya menghasilkan sekelompok persamaan yang jumlah variabelnya lebih besar dari jumlah persamaan, berarti bahwa persamaan-persamaan tersebut menghasilkan sejumlah titik pemecahan yang tidak terbatas (jika dibandingkan ruang pemecahan grafik). Titik ekstrim dari ruang ini dapat diidentifikasikan secara aljabar sebagai teori aljabar linier, sebuah pemecahan dasar diperoleh dengan menetapkan beberapa variabel dengan jumlah total persamaan memiliki nilai =0, kemudian memecahkan variabel sisanya dengan ketentuan bahwa kondisi tersebut
4
menghasilkan satu pemecahan unik. Adanya ruang pemecahan grafik untuk menuntun ke arah titik optimum, maka diperlukan sebuah program yang mampu mengidentifikasikan pemecahan dasar yang menjanjikan secara cerdas. Metode simpleks mengidentifikasikan satu pemecahan dasar lainnya yang memiliki potensi untuk memperbaiki nilai fungsi tujuan. Akhirnya, pemecahan dasar yang sesui dengan nilai optimal diidentifikasikan dan proses perhitungan secara berulang (iteratif) dimana setiap perulangan (iterasi) berkaitan dengan pemecahan dasar. Simpleks adalah suatu metode matrik untuk memecahkan program linier dalam bentuk standard dimana semua batasan diekspresikan sebagai persamaan dengan menambahkan variabel slack dan surplus sebagaimana diperlukan. Sifat bentuk standard adalah a) semua batasan adalah persamaan, b) semua variabel adalah nonnegatif, dan c) fungsi tujuan dapat berupa maksimalisasi atau minimalisasi. Metode simpleks menggunakan perhitungan berulang, dengan pemecahan awal untuk menentukan pemecahan layak dasar lainnya yang memiliki nilai obyektif yang lebih baik, sehingga akhirnya diperoleh Penyelesaian optimal. Algoritma metode simpleks adalah sebagai berikut: Langkah 0: Nyatakan masalah program linier dalam bentuk standard. Langkah 1: Tentukan letak bilangan paling positif dalam baris terbawah (Cj-Zj) dalam tabel simpleks. Tentukan sebagai kolom kunci. Langkah 2: Cari nilai θ terkecil untuk menentukan bilangan basis dengan membagi nilai Bi dengan bilangan yang bersesuaian dengan kolom kunci. Jika terdapat dua bilangan terkecil yang sama, maka dipilih salah satu. Jika tidak ada elemen positif dalam kolom kunci, maka program tidak memiliki pemecahan. Langkah 3: Ganti nilai Cb yang bersesuaian baris basis dengan nilai Zj yang bersesuaian dengan kolom kunci. Langkah 4: Gunakan operasi elementer untuk mengubah elemen kunci menjadi 1, dan kemudian reduksikan semua elemen lainnya dalam kolom kunci menjadi 0. Langkah 5: Ulangi langkah 1-4 hingga tidak terdapat elemen positif dalam baris terakhir, dengan tidak memasukkan kolom terakhir. Langkah 6: Penyelesaian optimal diperoleh dengan menetapkan nilai Cj-Zj<=0, dan tidak ada variabel buatan yang bernilai positif. Nilai optimal dari fungsi obyektif adalah bilangan yang terdapat dalam baris terakhir dan kolom terakhir untuk program maksimalisasi. Bentuk tabel simpleks adalah sebagai berikut: Cb
Keterangan: : koefisien variabel yang sesuai pada fungsi obyektif Cj Cb : koefisien (Xb) dalam fungsi obyektif Vb : variabel yang menjadi basis Xj : nama-nama variabel B : nilai V dalam bentuk standard θ : Ck variabel yang akan keluar Zj : hasil kali titik Cb dengan kolom j, m
Z j = ∑ (CB)i * Cij I =1
Urutan proses perhitungannya adalah sebagai berikut: Langkah 1: menentukan bentuk standard Langkah 2 : menentukan penyelesaian baris terhadap tabel awal dengan menyesuaikan Zj Langkah 3: menentukan variabel yang akan dijadikan basis dengan menghitung (Cj-Zj) terbesar
5
Langkah 4: menentukan variabel yang akan keluar dari basis dengan menghitung θ =B atau elemen kolom kunci Langkah 5: Perhitungan untuk menukarkan baris yang menghasilkan tabel baru METODOLOGI PENELITIAN Spesifikasi Sistem Untuk mendapatkan hasil yang optimal, spesifikasi sistem minimal yang digunakan untuk pengembangan aplikasi DSS ini adalah sebagai berikut: 1. Perangkat lunak, yaitu OS berbasis Microsoft Windows dan bahasa Visual Basic 6.0 yang mendukung GUI, mendukung akses database secara cepat, dan berbasis 32 bit. 2. Perangkat keras, PC IBM compatibel dengan processor P133Mhz (disarankan yang lebih tinggi), RAM 32Mb (disarankan yang lebih tinggi), disk drive 1.44, hardisk 10Gb, monitor SVGA, serta mouse dan keyboard. Menentukan Model Penentuan model diperlukan untuk memudahkan perhitungan. Model yang digunakan adalah optimalisasi dengan rumusan: F(X)= C1X1+ C2X2+…+CnXn Keterangan: F(X) : fungsi yang dimaksimalkan : keuntungan tanaman ke-1 C1X1 X1 : luas area tanaman ke-1 yang dicari C1 : keuntungan per M2 tanaman ke-1 CnXn : keuntungan jenis tanaman ke-n
Keuntungan per M2 tanaman ke-n diperoleh dengan formula: Cn =((Hasil panen tanaman ke-n/M2*harga panen/kg))-( biaya produksi/M2) Keterangan: Hasil panen/M2= hasil panen/luas lahan Biaya produksi/M2= biaya obat/ M2+biaya pupuk/M2+biaya obat/M2 Biaya bibit/M2= (jumlah bibit*harga bibit/kg)/luas lahan Biaya obat/M2= biaya masing-masing obat/luas lahan Biaya pupuk/M2= biaya masing-masing pupuk/luas lahan
Optimalisasi dibatasi dengan kendala berupa luas lahan dan modal. Luas lahan adalah luas area pertanian yang dialokasikan oleh petani untuk satu musim tanam. Sedangkan modal adalah modal yang disediakan oleh petani untuk biaya tanam dan pemeliharan selama satu kali musim tanam. Biaya produksi/M2, biaya bibit/M2, biaya obat/M2, dan biaya pupuk/M2 merupakan nilai-nilai optimal yang telah diperhitungkan sebelumnya, berupa nilai tetapan yang telah tersedia dari Instansi-Dinas yang berwenang. Contoh: Lahan yang tersedia seluas 350M², bibit varietas Bisma yang dibutuhkan 10,5kg dengan harga Rp 8500/kg. Pupuk yang diperlukan adalah urea 88kg dengan harga Rp 1050/kg, TSP 35kg dengan harga 2700/kg ZA/KCL 35kg dengan harga Rp 1040/kg, NPK 2kg dengan harga Rp 2000/kg. Obat yang dibutuhkan adalah Dursman 2ltr dengan harga Rp 10.000/ltr. Hasil panen yang diperoleh adalah 1.370kg dengan harga Rp 1000/kg. Berdasarkan data tersebut, maka; Biaya bibit/M2 = (10,5*8500)/3500 = Rp 255 Biaya masing-masing pupuk/M2 adalah: Urea = (88*1500)/350 = Rp 264 TSP = (35*2700)/350 = Rp 270 KCL = (35*1040)/350 = Rp 104 NPK = (2*2000)/350 = 11,42 Maka;
6
Biaya pupuk/M2 = (264+270+104+11,42) = Rp 649,42 Biaya obat/M2 =(2*10000)/350 = Rp 57,14 Biaya produksi/M2 = biaya bibit/M2+biaya pupuk/ M2+biaya obat/M2 = 255+649,42+57,14 = Rp 961,56 Cn = (Hasil panen tanaman ke-n*harga panen/kg)-biaya produksi/M2 = (1370*1000/350)- 961,56 = Rp 2952,72 ANALISIS DAN PEMBAHASAN Rancangan Form Input dan Output Rancangan form input merupakan rancangan dokumen dasar yang digunakan untuk menginput, menghapus, dan pencarian data. Form input dirancang terdiri atas setup tanaman, obat dan pupuk, dengan data inputan berupa data tanaman, obat, dan pupuk. Masing-masing form input dilengkapi fasilitas untuk menambah, mengedit, dan menghapus data. Tombol Cancel disediakan untuk membatalkan proses, jika dieksekusi maka data tidak akan disimpan ke dalam disk. Tiga form input tersebut dikelompokan ke dalam form baru untuk melakukan perhitungan optimalisasi. Rancangan form output disediakan agar pemakai mendapatkan gambaran output yang ditampilkan di layar monitor. Output yang ditampilkan adalah hasil optimal yang dialokasikan untuk masing-masing jenis tanaman sesuai dengan luas lahan dan modal yang diinputkan. Output lain yang disediakan adalah berupa tabel tanaman, pupuk, dan obat yang dapat dilihat pada menu Laporan. Menu Pencarian disediakan untuk menampilkan data yang ingin dicari. Rancangan Menu Untuk memudahkan pemakaian, menu dirancang berbentuk menu pulldown, yaitu: ⇒ Setup, memuat tiga submenu, yaitu: o Tanaman, untuk input tanaman o Pupuk, untuk input pupuk o Obat, untuk input obat ⇒ DSS, tanpa submenu digunakan untuk melakukan perhitungan optimalisasi ⇒ Pencarian, memuat tiga submenu, yaitu: o Tanaman, untuk pencarian data tanaman o Pupuk, untuk pencarian data pupuk o Obat, untuk pencarian data obat ⇒ Laporan, memuat tiga submenu, yaitu: o Tanaman, untuk laporan data tanaman o Pupuk, untuk laporan data pupuk o Obat, untuk laporan data obat ⇒ Bantuan, memuat dua submenu, yaitu: o Bantuan, untuk bantuan penggunaan program o Tentang Program, memuat informasi pembuat program Rancangan Struktur Data Struktur data merupakan bagian penting dalam pemrograman, karena akan menentukan bagaimana data diakses dan disimpan dalam memori. Setiap kali melakukan deklarasi variabel, diperlukan penentuan tipe data yang akan disimpan. Pemilihan tipe data yang tepat akan menghemat penggunaan memori dan berpengaruh pada kecepatan running program. Struktur data dalam aplikasi DSS ini menggunakan tipe data array multidimensi yang ukuran dan dimensinya bersifat dinamis. Tipe data ini dipilih dengan alasan untuk penghematan memori, karena aplikasi ini membutuhkan banyak proses perulangan untuk perhitungan matrik untuk mendapatkan hasil optimal dari kendala.
7
Kamus Data Relasi database yang digunakan dalam aplikasi DSS ini adalah seperi ditampilkan dalam Tabel 1, Tabel 2, Tabel 3, Tabel 4, Tabel 5. Tabel 1: File Tanaman PK : Kode_tanaman Nama Atribut Tipe data Kode_tanaman String (8) Nama_tanaman String(30) Umur_tanaman Numerik Luas_area Numerik Banyaknya_bibit Numerik Harga_bibit Numerik Produksi Numerik Harga_produksi Numerik Status Booelan Tabel 2: File Obat PK : Kode_obat Nama Atribut Kode_obat Nama_obat Harga_obat Aturan_pakai _obat
Tipe data String (8) String(30) Numerik Memo
Tabel 3: File Pupuk PK : Kode_pupuk Nama Atribut Kode_pupuk Nama_pupuk Harga_pupuk Aturan_pakai_pupuk
Tipe data String (8) String (30) Numerik Memo
Keterangan Not null, PK Nama tanaman Umur tanaman (Maks 125 hari) Luas area, (m²) Banyaknya bibit (Kg) Harga bibit per kg (Rp) Produksi keseluruhan (kg) Harga produksi per kg (Rp) Status kebutuhan air
Keterangan Kode obat, not null Nama obat Harga obat (Rp) Cara pemakaian
Keterangan Kode Pupuk, not null Nama pupuk Harga per kg (Rp) Cara pengunaan
Tabel 4: File TanamanObat PK : Kode_tanaman+Kode_obat FK : -Kode_tanaman referensi ke Tanaman dan Kode_obat referensi ke Obat Nama Atribut Tipe data Keterangan Kode_tanaman String (8) Kode tanaman Kode_obat String (8) Kode obat Tabel 5: File TanamanPupuk PK : Kode_tanaman+Kode_obat FK : -Kode_tanaman referensi ke Tanaman dan Kode_pupuk referensi ke Pupuk Nama Atribut Tipe data Keterangan Kode_tanaman String (8) Kode tanaman Kode_pupuk String (8) Kode Pupuk
Implementasi Program Implementasi dari metode simpleks untuk menyelesaikan permasalahan optimalisasi di atas adalah sebagai berikut: For i = 1 To jum cj(i) = pilihan(i, 5) Next I ' untuk i yang bernilai -M M = -1000000 For i = (2 * jum) + 3 To jml_x cj(i) = M Next i
8
Potongan program di atas digunakan untuk memasukkan nilai di fungsi sasaran (=cj). Perhitungan dapat diselesaikan jika semua persamaan berada dalam bentuk standard. Sehingga program memerlukan sebuah variabel bantu, yaitu M= 1000000, yaitu: For kolom = 1 To jml_x zjtampung = 0 zjkolom = 0 For baris = 1 To jml_pers zjtampung = zjtampung+(cb(baris)*matrik(baris, kolom)) Next baris zj(kolom) = zjtampung Next kolom zjbitampung = 0 For baris = 1 To jml_pers zjbitampung = zjbitampung + (cb(baris) * bi(baris)) Next baris zjbi = zjbitampung For i = 1 To jml_x cj_zj(i) = 0 cj_zj(i) = cj(i) - zj(i) Next i cek = 0 For i = 1 To jml_x If cj_zj(i) > 0 Then cek = cek + 1 End If Next i
Perhitungan dalam metode simpleks dinyatakan optimal jika pada baris cj-zj tidak ada yang bernilai>0. Potongan program berikut berfungsi untuk mendeteksi apakah program selesai optimal atau tidak optimal sehingga perlu dilakukan perulangan. Nilai zj diperoleh dari perkalian nilai cb(baris) dengan Matrik(baris,kolom). Apabila penyelesaian belum optimal, maka dilakukan iterasi perhitungan kembali. Langkah yang harus dilakukan sebelum iterasi perhitungan adalah menentukan bilangan yang akan menjadi bilangan basis, yaitu: 'calonbasis dan kolombasis calonbasisn = 0 calonbasis = cj_zj(1) For i = 1 To jml_x If calonbasis <= cj_zj(i) Then calonbasis = cj_zj(i) End If Next i kolombasis = 1 For i = 1 To jml_x If calonbasis = cj_zj(i) Then kolombasis = i End If
Next i Untuk merevisi tabel simpleks diperlukan nilai basis. Potongan program di atas berguna untuk menentukan calon basis. Logika dari program di atas adalah tentukan dahulu cj-zj yang mempunyai nilai positif terbesar. Setelah ditemukan, maka kolom yang mempunyai nilai cj-zj terbesar dijadikan kolom basis. 'teta terkecil qt = 10000000 For j = 1 To jml_pers If q(j) >= 0 Then If qt >= q(j) Then qt = q(j) End If End If Next j
9
'BARIS basis barisbasis = 1 For j = 1 To jml_pers If qt = q(j) Then barisbasis = j End If Next j basis = 0 basis=matrik(barisbasis,kolombasis)
Setelah ditemukan kolom basis, langkah selanjutnya adalah menentukan baris basis. Baris basis ditentukan oleh nilai teta terkecil. Potongan program di atas berguna untuk mendeteksi nilai teta terkecil, yang dijadikan sebagai baris basis, kemudian menemukan nilai basis pada perpotongan kolom basis dengan baris basis. Setelah ditemukan nilai basis, baru dilakukan operasi baris elementer untuk mengisi nilai matrik baru dengan program sebagai berikut: For i = 1 To jml_pers If i = barisbasis Then cb(i) = cj(kolombasis) End If Next i For i = 1 To jml_pers If i = barisbasis Then If bi(i) = 0 Or basis = 0 Then bib(i) = 0 Else bib(i) = bi(i) / basis End If Else bantu = 0 bantu = bi(barisbasis) * matrik(i, kolombasis) bantu2 = 0 If basis = 0 Or bantu = 0 Then bantu2 = 0 Else bantu2 = bantu / basis End If bib(i) = bi(i) - bantu2 End If Next i For i = 1 To jml_pers bi(i) = bib(i) Next I For baris = 1 To jml_pers For kolom = 1 To jml_x If baris = barisbasis Then nol1 = 0 nol1 = matrik(baris,kolom) If (basis = 0) Or (nol1 = 0) Then matrikbaru(baris,kolom) = 0 Else matrikbaru(baris,kolom) = nol1 / basis End If Else bantu = 0 bantu=matrik(barisbasis,kolom)*matrik(baris,kolombasis) bantu2 = 0 If basis = 0 Or bantu = 0 Then bantu2 = 0 Else bantu2 = bantu / basis End If matrikbaru(baris,kolom)=matrik(baris,kolom)-bantu2 End If Next kolom
10
Next baris For kolom = 1 To jml_x bantu = 0 For baris = 1 To jml_pers bantu=bantu+(cb(baris)*matrik(baris,kolom)) Next baris zjb(kolom) = bantu Next kolom For kolom = 1 To jml_x zj(kolom) = zjb(kolom) Next kolom zjbib = 0 For i = 1 To jml_pers zjbib=zjbib+(cb(i)*bi(i)) Next i For i = 1 To jml_x cj_zj(i) = 0 cj_zj(i) = cj(i) - zj(i) Next i cek = 0 For i = 1 To jml_x If cj_zj(i) > 0 Then cek = cek + 1 End If Next i ulang = ulang + 1 Loop Until ulang >= 20 Or cek = 0 ulang = ulang + 1
Potongan program di atas akan melakukan operasi elementer hingga nilai variabel ulang=20 atau nilai variabel cek=0. Ulang adalah banyaknya iterasi yang ditetapkan maksimal 20 kali, sedangkan cek digunakan untuk pengecekan pada saat program mengeksekusi baris program cjzj. Jika terdapat baris cj-zj yang bernilai>0, maka cek akan ditambah 1 dan dilakukan iterasi. Hasil Implementasi Program Tampilan menu utama aplikasi menggunakan menu Pull Down terdiri atas menu Setup Data, DSS, Pencarian, Laporan, dan Bantuan. Masing-masing menu memiliki sejumlah submenu, kecuali menu DSS. Jika menu Setup data dipilih, maka akan ditampilkan submenu setup data tanaman, obat dan pupuk. Apabila menu DSS dipilih, maka akan ditampilkan form perhitungan untuk optimalisasi pemilihan jenis tanaman. Jika menu Pencarian yang dipilih, submenu yang ditampilkan form pencarian untuk mencari data tanaman, pupuk, dan obat yang tersimpan dalam database. Menu Laporan memuat laporan tanaman , pupuk, dan obat yang disediakan oleh aplikasi. Jika menu Bantuan dipilih, maka akan ditampilkan submenu bantuan penggunaan program dan informasi pembuat program. Tampilan menu utama aplikasi ditampilkan pada Gambar 1.
Gambar 1: Tampilan menu utama
11
Form Menu Setup Data Tanaman memiliki beberapa tombol proses yang berfungsi untuk memudahkan pemakaian aplikasi. Untuk menambahkan data baru dilakukan dengan menekan tombol Add, atau ^ALT+A, untuk mengedit data cukup menekan tombol Edit dan selanjutnya dapat melakukan editing. Tombol Delete, Update dan Cancel digunakan jika pemakai ingin menghapus data tanaman tertentu, menyimpan, dan membatalkan proses editing. Pada sisi kanan, terdapat pageframe Pupuk yang berguna untuk menginputkan pupuk yang diperlukan oleh tanaman, sedangkan pageframe Obat berguna untuk menginputkan obat yang diperlukan oleh tanaman. Contoh form Setup Data Tanaman seperti tampak pada Gambar 2.
Gambar 2: Contoh tampilan form Setup Data Tanaman
Menu DSS digunakan saat pemakai ingin melakukan perhitungan berdasarkan lahan pertanian dan modal yang dimiliki. Pemakai akan diminta untuk mengisikan luas lahan (dalam M²) dan modal yang dimiliki oleh pemakai (dalam Rupiah), seperti tampak pada Gambar 3.
Gambar 3: Form menu DSS
Jika pada langkah pertama, pemakai lupa mengisikan lahan, modal, atau memilih tanaman, maka program akan menampilkan pesan kesalahan sesuai kesalahan yang dilakukan. Contoh tampilan pesan kesalahan tampak pada Gambar 4.
Gambar 4: Pesan kesalahan
Proses selanjutnya adalah memilih tanaman, pemakai diijinkan memilih maksimal 10 tanaman dari tanaman yang ada. Jika pemakai memilih lebih dari 10 tanaman maka akan muncul pesan seperti tampak pada Gambar 5.
Gambar 5: Pesan kesalahan pengisian jenis tanaman lebih dari 10
2
Setelah mengisikan data, pemakai dapat melihat tanaman yang disarankan dengan menekan tombol Hitung yang ada di sisi kanan atas daftar tanaman. Contoh tampilan form tanaman yang disarankan tampak pada Gambar 6.
Gambar 6: Form tanaman yang disarankan
Form pada Gambar 6 menyediakan lima tombol pilihan, yaitu Pilih Percobaan, Ulangi, Terbaik, Cetak, serta Keluar. Tombol Pilih Percobaan berfungsi untuk melihat luas lahan dan jenis tanaman yang disarankan pada setiap percobaan perhitungan. Banyaknya perhitungan yang diijinkan adalah lima kali, jika lebih maka akan muncul pesan bahwa jumlah percobaan sudah maksimal, disarankan untuk melihat hasil percobaan satu sampai lima kali terdahulu. Jika pemakai baru satu kali melakukan percobaan tetapi sudah menekan tombol Pilih Percobaan, maka akan ditampilkan pesan seperti tampak pada Gambar 7. Tombol Ulangi berfungsi untuk mengulangi perhitungan jika ingin melakukan perhitungan dengan kombinasi tanaman yang berbeda. Tombol Cetak berfungsi untuk mencetak hasil perhitungan, sedangkan tombol Terbaik berfungsi untuk melihat kombinasi tanaman yang menghasilkan keuntungan maksimal.
Gambar 7: Tombol Pilih Percobaan
Form Bantuan disediakan sebagai fasilitas bantuan yang berisi keterangan mengenai cara pemakaian aplikasi langkah demi langkah. Pengujian Program Aplikasi Pengujian program aplikasi dilakukan dengan cara membandingkan hasil perhitungan yang diperoleh oleh program dengan hasil perhitungan manual. Hasil perhitungan pada aplikasi, jika pemakai memiliki lahan sebesar 800M² dan modal yang dialokasikan Rp 1.500.000, tanaman yang dipilih adalah jagung, kacang tanah dan kedelai. Contoh tampilan luas lahan yang disarankan hasil perhitungan dengan program aplikasi tampak pada Gambar 6. Berdasarkan Gambar 6 terlihat bahwa tanaman yang disarankan adalah seperti tampil dalam Tabel 6. Tabel 6: luas lahan yang disarankan hasil perhitungan dengan program aplikasi Nama tanaman Luas yang disarankan Biaya tanaman (Rp) Prediksi untung (Rp) Jagung 33,33 m² 3.249,12 98.413,82 Kacang tanah 738,34 m² 460.783,22 2.861.746,77 Kedelai 28,33 m² 14.289,93 55.118,28 Total 800,00 m² 507.122,24 3.015.278,87
Langkah penyelesaian optimalisasi dapat dijelaskan sebagai berikut: Langkah 0: Nyatakan masalah dalam bentuk standard. Modal yang dimiliki adalah Rp 1.500.000, luas lahan 800M², dan data tanaman, lahan minimal, biaya per M2 dan Untung per M2 ditampilkan pada Tabel 7.
3
Tabel 7: Data tanaman, lahan minimal, biaya per M2, dan untung per M2 Tanaman Lahan minimal M² Biaya per M² (Rp) Untung per M² (Rp) Jagung 33,33 961,57 2.952,71 Kacang tanah 16,66 624,08 3.875,96 Kedelai 28,33 504,41 1.945,58
Untuk memudahkan perhitungan, digunakan variabel bantu X, sehingga dapat dibentuk pertidaksamaan berikut: X1>= 33,33 X2>=16,66 X3>=28,33 X1+X2+X3<=800 961,57X1+624,08X2+504,41X3<=1500000 Fungsi obyektif menjadi sebagai berikut: F(x)=2.952,71X1+3.875,96X2+1.945,58X3. Fungsi obyektif dimasukkan ke kolom cj, bentuk standard pertidaksamaannya adalah: X1-X4+X9=33,3 X2-X5+X10=16,66 X3-X6+X11=28,33 X1+X2+X3 +X7=800 961,57X1+624,08X2+504,41X3=1500000 Bentuk standard di atas, dapat diubah menjadi bentuk matrik berikut: X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 1 0 0 -1 0 0 0 0 1 0 0 0 1 0 0 -1 0 0 0 0 1 0 0 0 1 0 0 -1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 950 624 504 0 0 0 0 1 0 0 Bentuk standard di atas jika dimasukkan dalam tabel awal simpleks, diperoleh hasil seperti Tabel 8. Sebagai perbandingan, hasil dari aplikasi ditampilkan pada Gambar 8.
Gambar 8: Tampilan tabel awal simpleks dari program aplikasi
Dalam Tabel 8, kolom Cj masih memuat variabel buatan yang bernilai >0, pada baris cj-zj juga masih memuat variabel bernilai >0. Ini berarti penyelesaian belum optimal dan perlu dilakukan iterasi, yaitu ke Langkah 1. Langkah 1: Tentukan letak bilangan paling besar pada baris terbawah (cj-zj) dalam tabel simpleks. Tentukan sebagai kolom kunci. Nilai cj-zj yang dipilih adalah 1003876, maka seluruh kolom X2 ditandai, yang akan digunakan untuk menentukan nilai θ , kemudian lanjutkan ke Langkah 2. Langkah 2: Cari nilai θ terkecil untuk menentukan bilangan basis dengan membagi nilai bi dengan bilangan yang bersesuaian dengan kolom kunci. Jika terdapat dua bilangan terkecil yang sama, maka dipilih salah satu. Jika tidak ada elemen positif dalam kolom kunci, berarti tidak memiliki pemecahan. Setelah nilai bi dibagi dengan nilai yang bersesuaian dengan kolom X2, maka diperoleh θ terkecil, yaitu 16,6. Hal ini berarti yang menjadi nilai basis adalah kolom X2 dan baris X10, nantinya X10 akan digantikan nilai X2, lanjutkan ke Langkah 3.
4
Langkah 3: Ganti nilai cb yang bersesuaian baris basis dengan nilai zj yang bersesuaian dengan kolom kunci. Setelah X10, diganti dengan X2, maka nilai X2 di cb sekarang adalah sama dengan nilai X2 di fungsi obyektif. Selanjutnya untuk mengganti isi matrik baru lanjutkan ke Langkah 4. Langkah 4 : Gunakan operasi elementer untuk mengubah elemen kunci menjadi 1 dan kemudian reduksikan semua elemen lainnya dalam kolom kunci menjadi 0. Setelah dilakukan operasi elementer, maka diperoleh hasil iterasi ke-1 seperti ditampilkan pada Tabel 9. Terlihat sekarang bahwa nilai X2 di cb sudah berubah, dan posisi X10 ditempati oleh X2. Lanjutkan ke Langkah 5. Langkah 5 : Ulangi Langkah 1 sampai 4 hingga tidak terdapat elemen >0 dalam baris terakhir, dengan tidak memasukkan kolom terakhir. Dengan memperhatikan nilai cj dan cjcj, pada hasil iterasi pertama, ternyata belum memenuhi syarat optimal maka dilakukan iterasi kembali. Pada kasus di atas diperoleh penyelesaian optimal pada iterasi keempat. Lanjutkan ke Langkah 6. Langkah 6: Penyelesaian optimal diperoleh dengan menetapkan nilai cj-zj <=0, dan tidak ada variabel buatan yang bernilai >0. Nilai optimal fungsi obyektif adalah nilai-nilai dalam baris terakhir-kolom terakhir. Hasil yang diperoleh pada akhir iterasi ke-4 ditampilkan pada Tabel 10. Sebagai perbandingan, hasil yang diperoleh dari program aplikasi setelah iterasi ke-4 ditampilkan pada Gambar 9.
Gambar 9: Hasil yang diperoleh dari program aplikasi setelah iterasi ke-4 Tabel 8: Tabel awal simpleks secara manual cj cb
2952,71 3875,9
xb\xj x1
1945,58 0
0
0
0
0
x2
x3
x4
x5
x6
x7
x8
-1000000 -1000000 -1000000 x9
x10
x11
bi
teta
-1000000 x9
1
0
0
-1
0
0
0
0
1
0
0
33,33
#div/0!
-1000000 x10
0
1
0
0
-1
0
0
0
0
1
0
16,6
16,6
-1000000 x11
0
0
1
0
0
-1
0
0
0
0
1
28,3
#div/0!
0
x7
1
1
1
0
0
0
1
0
0
0
0
800
800
0
x8
950
624,08
504
0
0
0
0
1
0
0
0
1500000
2.403,538
zj
-1000000 -1000000 -1000000 1000000 1000000 1000000 0
0
-1000000 -1000000 -1000000 -78230000
cj-zj 1002964 1003876 1001946 -1000000 -1000000 -1000000 0
0
0
0
0
Tabel 9: Tabel hasil iterasi ke-1 secara manual -1000000 x9
1
0
0
-1
0
0
0
0
1
0
0
33,33
3875,9
0
1
0
0
-1
0
0
0
0
1
0
16,6
-1000000 x11 0
0
1
0
0
-1
0
0
0
0
1
28,3
0
x7
1
0
1
0
1
0
1
0
0
-1
0
783,4
0
x8
950
0
504
0
624,08
0
0
1
0
-624,08
0
1489640
zj
-1000000 3875,9 -1000000 1000000 15022601 1000000 0
0
-1000000 3875,9
0
0
x2
cj-zj 1002964 0
1001946 -1000000 -15022601 -1000000 0
-1000000 -61565660
-1003876 0
1
Tabel 10: Tabel hasil iterasi ke-4 secara manual 2.952,71 x1
1
0
0
-1
0
0
0
0
1
0
0
33,33
3.875,9
x2
0
1
0
1
0
1
1
0
-1
0
-1
738,34
1.945,58 x3
0
0
1
0
0
-1
0
0
0
0
1
28,33
0
x5
0
0
0
1
1
1
1
0
-1
-1
-1
800.00
0
x8
0
0
0
325,92
0
-120,08
-624,1
1
-325,92 0
120,08
993.271,4
zj
2.952,71 3.875,9
1.945,58 911,76
0
1.930,32
3.875,9
0
-911,76 0
-1.930,32
3.015.703
-911,76 0
-1.930,32
-3.875,9 0
cj-zj 0
0
0
-999.088 -1.000.000 -998.070
Untuk melihat kebenaran hasil di atas, perlu diuji dengan mengecek kendala yang ada, yaitu: X1>= 33,33 X2>=16,66 X3>=28,33 X1+X2+X3<= 800 961,57X1+62 4,08X2+504,41X3<=1500000 Cek kendala hasil, yaitu: X1=33,33 X2=738,34 X3=28,33 X1+X2+X3=800,00 961,57(33,33)+(624,08(738,34)+504,41(28,33) = 507122,39 Dari hasil perhitungan, tampak bahwa nilai yang diperoleh memenuhi persyaratan kendala, dengan fungsi obyektif sebagai berikut: Tabel 11: Alokasi lahan yang disarankan Tanaman Jagung Kacang tanah Kedelai
Lahan minimal 33,33 m² 738,34 m² 28,33 m²
Biaya per M² (Rp) 32.049,12 460.783,22 14.289,93
Untung per M² (Rp) 98.413,82 2.861.746,77 55.118,28
Terbukti bahwa hasil perhitungan yang diperoleh dari implementasi aplikasi DSS telah memberikan hasil yang valid. Berdasarkan hasil pengujian program aplikasi, diketahui bahwa aplikasi DSS yang dikembangkan dalam penelitan ini memiliki kelebihan, yaitu: 1. Tidak menuntut spesifikasi hardware dan software yang tinggi 2. Menggunakan menu Pull Down, sehingga mudah digunakan. Sedangkan kekurangannya adalah: 1. Hanya mengijinkan maksimal 10 jenis tanaman pada setiap kali perhitungan. 2. Sistem tidak dapat melakukan perhitungan untuk sistem tumpangsari KESIMPULAN Beberapa hal yang dapat disimpulkan dari penelitian ini adalah sebagai berikut: 1. Aplikasi DSS yang dikembangkan dapat membantu para pemakai, khususnya para petani untuk menentukan kombinasi pilihan jenis tanaman yang tepat, mengalokasikan luas lahan, dan modal yang dimiliki agar diperoleh keuntungan maksimum. 2. Pendapatan dapat diprediksikan sebelumnya, sehingga kerugian dapat dihindari. 3. Petani masih dapat mengubah pilihan bibit setiap saat untuk mengantipasi perubahan harga bibit, kondisi musim, dan faktor alami (misal hama). Untuk penelitian lebih lanjut, masih dapat dilakukan, antara lain, aplikasi DSS dikembangkan agar dapat melakukan analisis terhadap faktor kualitatif (seperti faktor musim, dan perubahan harga) dan dapat melakukan analisis untuk lebih dari 10 jenis tanaman. DAFTAR PUSTAKA Jogianto H.M, 1990, Analisis dan Disain Sistem Informasi, Andi, Yogyakarta Kendall, K.E. and kendall, J.E., 1995, System Analysis & Design, 3rd edition, A Simon & Schurster Co., NJ Turban, E., and Aronson, J.E., 2001, Decision Support Systems & Intelligent Systems, 6th edition, Prentice Hall, New Jersey