• Tidak ada hasil yang ditemukan

Institutional Repository | Satya Wacana Christian University: Analisis Hasil Panen Padi menggunakan Pemodelan Kuadratik dan Ant Colony Otimization (ACO)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Institutional Repository | Satya Wacana Christian University: Analisis Hasil Panen Padi menggunakan Pemodelan Kuadratik dan Ant Colony Otimization (ACO)"

Copied!
13
0
0

Teks penuh

(1)
(2)

xiv

Lampiran 1: Data padi sawah tahun 1992-2012 dari BPS kota Surakarta

No

Tahun

(3)

xv

Lampiran 2: Program MATLAB untuk mendapatkan parameter fungsi tujuan periode

tanam III dengan metode kuadrat terkecil

%data untuk periode tanam III di simpan dengan nama “data2.dat”

173 83 55.30

176 103 63.08

133 113 57.07

96 103 64.17

126 101 63.36

65 71 65.77

106 84 56.90

83 78 64.74

88 81 46.66

101 62 56.77

91 51 52.54

88 42 52.14

65 48 52.29

83 55 52.14

88 56 51.07

84 49 51.33

80 51 52.69

82 87 51.44

76 55 50.94

60 31 69.83

(4)

xvi

%program untuk mendapatkan parameter fungsi tujuan disimpan dengan nama

“MKT3”

clear all;close all;

%Cari alpa dengan meyusun matriks Ax=b dan x=[alpa] dengan metode kuadrat

terkecil

load 'data2.dat'

%untuk memanggil data yang suda disimpan dengan nama data2

[m,n]=size(data2)

% data dibuat tak berdimensi

T=data2(:,1)/max(data2(:,1));

P=data2(:,2)/max(data2(:,2));

S=data2(:,3)/max(data2(:,3));

Datatakberdim=[T P S]

x=T;

y=P;

%menyusun matriks A

%Matriks A hanya digunakan untuk fungsi kuadratik 2 variabel untuk fungsi yang lain

dapat disusun matriks A yang lain juga.

a11=sum(x.^4);a12=sum(x.^2.*y.^2);a13=sum(x.^3.*y);a14=sum(x.^3);

a15=sum(x.^2.*y);a16=sum(x.^2);

a21=sum(x.^2.*y.^2);a22=sum(y.^4);a23=sum(x.*y.^3);a24=sum(x.*y.^2);

a25=sum(y.^3);a26=sum(y.^2);

a31=a13;a32=a23;a33=a21;a34=a15;

a35=a24;a36=sum(x.*y);

a41=a14;a42=a24;a43=a34;a44=a16;

a45=a36;a46=sum(x);

(5)

xvii a55=a26;a56=sum(y);

a61=a16;a62=a26;a63=a36;a64=a46;

a65=a56;a66=n;

A=[a11 a12 a13 a14 a15 a16;

a21 a22 a23 a24 a25 a26;

a31 a32 a33 a34 a35 a36;

a41 a42 a43 a44 a45 a46;

a51 a52 a53 a54 a55 a56;

a61 a62 a63 a64 a65 a66];

%vb adalah ruas kanan

vb=[sum(S.*x.^2); sum(S.*y.^2);sum(S.*x.*y);sum(S.*x);sum(S.*y);sum(S)];

alpa=inv(A)*vb;

%hasil yang diperoleh

hasil=alpa(1)*x.^2 + alpa(2)*y.^2 + alpa(3)*x.*y + alpa(4)*x+alpa(5)*y+alpa(6);

figure

plot(1:m,S,'*-',1:m,hasil,'o-')

legend('hasil','pendekatan')

xlabel('indeks')

ylabel('fungsi tujuan')

%untuk mencari error

error=norm(S-hasil)/norm(S)*100 %sudah dalam bentuk persen %untuk mencari kondisional number

(6)

xviii

Lampiran 3: Fungsi fsolve pada MATLAB untuk periode tanam III

%menuliskan fungsi tujuan disimpan dengan nama “soal2”

function F = soal2(x)

F = -[x(3)*(x(1)-1);

x(4)*(x(2)-x(1));

x(5)*-x(1);

x(6)*-x(2);

2*1.067*x(1)-1.684*x(2)-0.319+x(3)-x(4)-x(5);

2*-1.012*x(2)-1.684*x(1)+2.510+x(4)-x(6)];

%program disimpan dengan nama “jawab2”

% membuat titik-titik dugaan solusi

x0 = [1;0.3;0;0;0.2;0.9];

%pilihan untuk menampilkan keluaran program

options=optimset('Display','iter');

(7)

xix

Lampiran 4: Mencari parameter fungsi tujuan menggunakan SVD untuk periode III

%program disimpan dengan nama “SVD3”

clear all;close all;

%Cari alpha beta dengan meyusun matriks Ax=b dan x=[alpa] load 'data2.dat'

[m,n]=size(data2)

%data dibuat tak berdimensi T=data2(:,1)/max(data2(:,1));

P=data2(:,2)/max(data2(:,2));

S=data2(:,3)/max(data2(:,3));

Datatakberdim=[T P S]

x=T;

y=P;

i=ones(1,length(x))';

%meyusun matriks A dari data A=[x.^2 y.^2 x.*y x y i];

rank(A)

[U,sigma,V]=svd(A)

% U*sigma*V'-A haruslah 0 U*sigma*V'-A

%ruas kanan b=S;

c=U'*b

ctopi=c;

(8)

xx %membuang baris ke-i dimana i > rank(A) ctopi(7:21,:)=[]

Stopi(7:21,:)=[]

ytopi=inv(Stopi)*ctopi

%hasil

alpa=V*ytopihasil=alpa(1)*x.^2 + alpa(2)*y.^2 + alpa(3)*x.*y + alpa(4)*x+alpa(5)*y+alpa(6);

figure

plot(1:m,S,'*-',1:m,hasil,'o-')

legend('hasil','pendekatan')

xlabel('indeks')

ylabel('fungsi tujuan')

error=norm(S-hasil)/norm(S)*100 % sudah dalam persen %untuk mencari kondisional number

(9)

xxi

Lampiran 5: Ant Colony Optimization (ACO) untuk periode III

 %fungsi tujuan untuk ACO disimpan dengan nama “mysoal3” function f=mysoal3(x)

f=(1.1955*x(1)^2+0.7538*x(2)^2-0.1339*x(1)*x(2)-1.6698*x(1)-0.6658*x(2)+1.3404+ x(3)*(x(1)-1)+x(4)*(x(2)-x(1))-x(5)*x(1)-x(6)*x(2));

 %program disimpan dengan nama “semut6_3” %program ACO

Clear

%N merupakan banyaknya semut yang akan melakukan perjalanan N=20;

%menentukan titik awal dengan bilangan random x=rand(100);

p=length(x);

duga=1;

tau=ones(p,1)*duga;

prob=tau./sum(tau)

%susun interval probabilitas x0j=[0;[1:p-1]'.*prob(1:p-1)]

x1j=[[1:p-1]'.*prob(1:p-1); 1]

xj=[x0j x1j]

%Tahap 2 kounter=1;

(10)

xxii r=rand(N,1);

while kounter <MAXIT

kounterku=kounter

%xb sebanyak variabel yang akan dicari, dalam kasus ini 6 variabel xb1(i)=x(indexku,1);

%Hitung fungsi tujuan tiap semut for i=1:length(vxb)

fv(i)=mysoal3(vxb(i,:)); end

%cari indeks yang membuat fungsi tujuan terbagus dan buruk w=fv;

indeksbest=find(w==min(fv)); indeksworst=find(w==max(fv));

(11)

xxiii indekbgs=min(indeksbest)

xbest=x(indekbgs,:); end

if length(indeksworst)>=1 indekjelek=min(indeksworst) xworst=x(indekjelek,:);

end %Tahap4

chi=2; %parameter menskala tau rho=0.5; %parameter penurunan paramon deltatau = chi*fv(indekbgs)/fv(indekjelek) tau=(1-rho)*tau;

taubaru=tau + deltatau; if norm(taubaru)> norm(tau) tau=taubaru;

end

kounter=kounterku+1;

p=length(vxb); %untuk memperbaharui probabilitas tau prob=tau./sum(tau);

x0j=[0;[1:p-1]'.*prob(1:p-1)]; x1j=[[1:p-1]'.*prob(1:p-1); 1]; xj=[x0j x1j];

x=vxb; end

(12)

xxiv

Lampiran 6: Studi konveks untuk fungsi tujuan SVD pada periode III

%program disimpan dengan nama “convek3”

clear

close all

%studi konveks

lamda=linspace(0,1,10); %memvariasi lamda

%memilih D adalah himpunan titik-titik pada garis x = 0 c=0;

y=0:0.1:1;

n=length(y);

x=c*ones(1,n);

plot(x,y,'-')

axis([-3 3 -3 3])

xy=[x' y' y' y' y' y']

vx(1)=xy(1,1)

vx(2)=xy(1,2)

vx(3)=xy(1,3)

vx(4)=xy(1,4)

vx(5)=xy(1,5)

vx(6)=xy(1,6)

vy(1)=xy(2,1)

vy(2)=xy(2,2)

vy(3)=xy(2,3)

(13)

xxv vy(5)=xy(2,5)

vy(6)=xy(2,6)

pl=length(lamda);

fu=zeros(pl,1);

Kanan=zeros(pl,1);

for i=1:pl

u(1)=lamda(i)*vx(1) + (1-lamda(i))*vy(1)

u(2)=lamda(i)*vx(2) + (1-lamda(i))*vy(2)

u(3)=lamda(i)*vx(3) + (1-lamda(i))*vy(3)

u(4)=lamda(i)*vx(4) + (1-lamda(i))*vy(4)

u(5)=lamda(i)*vx(5) + (1-lamda(i))*vy(5)

u(6)=lamda(i)*vx(6) + (1-lamda(i))*vy(6)

fu(i)=1.1955*u(1)^2 -0.1339*u(1)*u(2) +0.7538*u(2)^2 -1.6698*u(1) -0.6658*u(2)-1.3404+u(3)*(u(1)-1)+u(4)*(u(2)-u(1))-u(5)*u(1)-u(6)*u(2)

fx=1.1955*vx(1)^2 0.1339*vx(1)*vx(2) +0.7538*vx(2)^2 1.66988*vx(1) -0.6658*vx(2) -1.3404+vx(3)*(vx(1)-1)+vx(4)*(vx(2)-vx(1))-vx(5)*vx(1)-vx(6)*vx(2)

fy=1.1955*vy(1)^2 0.1339*vy(1)*vy(2) +0.7538*vy(2)^2 1.6698*vy(1)

-0.6658*vy(2) -1.3404+vy(3)*(vy(1)-1)+vy(4)*(vy(2)-vy(1))-vy(5)*vy(1)-vy(6)*vy(2)

Kanan(i)=lamda(i)*fx + (1-lamda(i))*fy

end

Banding=[lamda' fu Kanan]

figure,plot(1:pl,fu,'*',1:pl,Kanan,'o')

Gambar

figure plot(1:m,S,'*-',1:m,hasil,'o-')
figure plot(1:m,S,'*-',1:m,hasil,'o-')

Referensi

Dokumen terkait

Mata bor helix kecil ( Low helix drills ) : mata bor dengan sudut helix lebih kecil dari ukuran normal berguna untuk mencegah pahat bor terangkat ke atas

Disemprotkan ( Jet Application of Fluid ), pada proses pendinginan dengan cara ini cairan pendingin disemprotkan langsung ke daerah pemotongan (pertemuan antara

Direktur Program Pascasarjana Universitas Negeri Yogyakarta dengan ini menyatakan bahwa mahasiswa program pascasarjana berikut ini adalah mahasiswa yang sedang aktif

Berdasarkan angka 1 s.d 7 diatas, Pokja Jasa Konsultansi dan Jasa Lainnya pada ULP Kabupaten Bengkulu Utara mengumumkan pemenang seleksi umum paket pekerjaan

MALANG - Fakultas Keguruan dan Ilmu Pendidikan (FKIP) Universitas Muhammadiyah Malang (UMM) kini ditunjuk sebagai penyelenggara program pendidikan guru dalam jabatan.. Misinya

− Prototipe sistem SDR skala lab dengan frekuensi maksimal RF 50 MHz dengan daya RF kurang dari 1 mW menggunakan daughterboard Basic Tx-Rx dapat dikembangkan untuk sebuah

- Antara sumbu baut dengan tepi kayu yang tidak dibebani = 2d - Antara baris baut dan baris baut dalam arah gaya

Monocoq adalah konstruksi bodi dimana bodi dan rangkanya tersusun menjadi satu menggunakan prinsip kulit telur, yaitu merupakan satu kesatuan yang utuh sehingga semua beban