Assalamu’alaikum,wr,wb. Apa kabar gan?, semoga agan yang baca tulisan saya ini selalu sehat, murah rezeki dan selalu bersemangat dalam menjalani hari-harinya, yang lagi ditikung sabar, yang lagi menikung serah deh. he..he..he..ok udahan bapernya, menyambung tulisan saya tentang metode least cost yang berjudul Least Cost Method, Berikut saya share programnya. Program ini dibuat dengan bahasa c++ jadi untuk mempermudah tinggal copy paste aja gan.he..he..he..oh iya maaf berantakan yah.
Dedy
setiawan
least
cost finally programing with c++
*/
#include<conio.h>
#include<stdio.h>
#include"windows.h"
int
main(){
int
c[20][20],// nilai cost
i,j,
//nilai row dan kolom
min, m,
n, b, d, c2, c1, p, q;
int
dem[20],sup[20],rf[20],cf[20],sum=0;
printf("\nMasukan Banyaknya Row:
");
scanf("%d",&m);
printf("\nMasukan Banyaknya Kolom:
");
scanf("%d",&n);
printf("\nMasukkan Cost: \n"); //matrix
for(i=0;i<m;i++)
{
for(j=0;
j<n; j++)
{
printf("masukan
Cost Matriks [%d][%d]: ",(i+1),(j+1));
scanf("%d",&c[i][j]);
}
}
printf("\nMasukkan Demand: \n");
for(i=0; i<n; i++){//looping sebanyak
kolom yang diinput
printf("Masukan Demand [%d] :
",(i+1));
scanf("%d",&dem[i]);
}
printf("\nMasukkan Supply: \n");
for(i=0; i<m; i++){ //looping sebanyak row
printf("Masukan Supply [%d] :
",(i+1));
scanf("%d",&sup[i]);//memasukan
nilai supply ke dalam array
}
printf("\nMatrix:\n");
for(i=0; i<m; i++){
for(j=0; j<n; j++)
printf(" %d | ",c[i][j]);
printf("%d ",sup[i]);
printf("\n");
}
for(j=0; j<n; j++)
printf("%d ",dem[j]);
for(i=0; i<m; i++)
rf[i]=0;
for(i=0; i<n; i++)
cf[i]=0;
b=m;
d=n;
while(b>0 && d>0)
{ min=1000;
for(i=0; i<m; i++)
{ if(rf[i]!=1)
{
for(j=0; j<n; j++)
{ if(cf[j]!=1)
{
if(min>c[i][j])
{ min=c[i][j];
p=i;
q=j;
}
}
}
}
}
if(sup[p] < dem[q])
c1=sup[p];
else
c1=dem[q];
for(i=0; i<m; i++)
{ if(rf[i]!=1)
{
for(j=0; j<n; j++)
{ if(cf[j]!=1)
{
if(min==c[i][j])
{ if(sup[i]<dem[j])
c2=sup[i];
else
c2=dem[j];
if(c2>c1)
{ c1=c2;
p=i;
q=j;
}
}
}
}
}
}
//printf("\n %d %d %d ",min,p,q);
if(sup[p]<dem[q])
{ sum+=c[p][q]*sup[p];
dem[q]-=sup[p];
rf[p]=1;
b--;
}
else
if(sup[p]>dem[q])
{ sum=sum+c[p][q]*dem[q];
sup[p]-=dem[q];
cf[q]=1;
d--;
}
else
if(sup[p]==dem[q])
{ sum=sum+c[p][q]*sup[p];
rf[p]=1;
cf[q]=1;
b--;
d--;
}
//printf("\n %d",sum);
}
printf("\n\n Terima kasih telah
mengunjungi masdedys.blogspot.com. Biaya Minimumnya %d\n\n",sum);
getch();
}