Northwest Corner

Metode Northwest Corner merupakan suatu cara untuk menentukan solusi awal yang pengalokasiannya dimulai dari pojok barat laut (northwest corner). Selanjutnya pengalokasian dilakukan pada kotak Xij+1 bila permintaan ke j telah terpenuhi atau pada kotak Xi+1j bila penawaran ke telah terpenuhi.

Kita ambil contoh tabel di bawah :

Pengalokasian pada metode northwest dimulai dari kotak paling kiri atas, yaitu pengalokasian sebanyak mungkin tanpa melanggar batasan yang ada, yaitu jumlah supply dan demandnya. Pada tabel di atas jumlah supply-nya adalah 70 dan jumlah demand-nya adalah 125. Jadi untuk kotak ini dapat dialokasikan sejumlah 70 (terkecil antara supply dan demand). Selanjutnya kita lihat supply dari Inggris sudah digunakan semua tetapi permintaan untuk produksi gandum belum dipenuhi semua, sehingga pengalokasian berikutnya adalah pada kotak (2,1). Untuk kotak ini, jumlah supplynya adalah 110 dan jumlah demandnya adalah 125-70=55. Jadi pada kotal ini dapat dialokasikan sejumlah 55. Sekarang terlihat bahwa demand untuk produksi gandum telah terpenuhi semua, tetapi supply yang disediakan oleh Perancis belum semuanya digunakan, sehingga pengalokasian berikutnya adalah pada kotak (2,2). Untuk kotak (2,2) ini besarnya demand adalah 60 dan besarnya supply adalah 110 – 55 = 55. Jadi pada kotak ini dapat dialokasikan sejumlah 55. Ini berarti supply dari Perancis sudah digunakan semua, tetapi demand untuk produksi barley belum semuanya terpenuhi, sehingga pengalokasian berikutnya adalah pada kotak (3,2). Untuk kotak (3,2) disediakan supply sebesar 80 dan mempunyao demand sebesar 60-55=5. Jadi pada kotak ini dapat dialokasikan sejumlah 5. Sekarang terlihat bahwa produksi gandum dan barley sudah dipenuhi semua. Yang tersisa adalah supply dari Spanyol dan demand untuk produksi oat, sehingga pengalokasian berikutnya adalah pada kotak (3,3). Supply yang tersedia untuk kotak ini sebesar 80-5=75 dan demand yang diminta sebesar 75, sehingga kita dapat alokasikan sebesar 75. Ini berarti semua supply telah digunakan dan semua deman telah terpenuhi. Berikut merupakan tabel hasil penentuan solusi awal :

Listing Program :

#include <stdio.h>
#include <conio.h>
#include <iostream.h>


int cost[10][10], alok[10][10];
int supp[10], demn[10];
int nsup, ndem, brs, kol, biaya;
int supply[10], demand[10];
int pil;

void input()
{
int i,j,a;
clrscr();
cout<<"Masukan jumlah [max 10], kemudian enter" << endl;
cout<<"-----------------------------" << endl;
a = wherey();
cout << "Baris (Supply) : ";
cin >> nsup;
gotoxy(40,a);
cout << "Kolom (Demand) : ";
cin >> ndem;
cout << endl;
cout << endl;
cout << "Masukan nilai setiap baris (supply) dan kolom (demand) : " << endl;

for (i=1; i<=nsup; i++)
{
gotoxy(5,7+i);
cout << "supply-" << i << " = ";
}


for (j=1; j<=ndem; j++)
{
gotoxy(40,7+j);
cout << "demand-" << j << " = ";
}


for (i=1; i<=nsup; i++)
{
gotoxy(16,7+i);
cin >> supp[i];
supply[i] = supp[i];
}


for (j=1; j<=ndem; j++)
{
gotoxy(51,7+j);
cin >> demn[j];
demand[j] = demn[j];
}

clrscr();
cout << endl;
cout << "Masukan biaya setiap kotak : " << endl;
cout << "-----------------------------" << endl;
for (i=1; i<=nsup; i++)
{
for (j=1; j<=ndem; j++)
{
cout << "Kotak (" << i << "," << j << ") = ";
cin >> cost[i][j];
}
}
}

void proses()
{
int batas,i,j;
clrscr();
batas = nsup + 1;
brs = 1; kol = 1;


do
{
alok[brs][kol] = 0;
if (supp[brs] <= demn[kol])
{
alok[brs][kol] = supp[brs];
demn[kol] = demn[kol] - alok[brs][kol];
brs = brs + 1;
}
else
{
alok[brs][kol] = demn[kol];
supp[brs] = supp[brs] - alok[brs][kol];
kol = kol + 1;
}
}
while (brs != batas);

biaya = 0;
for (i=1; i<=nsup; i++)
{
for (j=1; j<=ndem; j++)
{
cout << "Alokasi [" << i << "," << j << "] = " << alok[i][j];
biaya = biaya + (alok[i][j] * cost[i][j]);
cout << endl;
}
cout << endl;
}
cout << "Total biaya optimal dengan metode NWC = " << biaya << endl;

getch();

}

void main()
{
do
{
clrscr();
cout << "--Menu Program NWC--"<<endl;
cout << "1. Input data" <<endl;
cout << "2. Tampilan" << endl;
cout << "3. E-xit" << endl;
cout << endl;
cout << "Masukkan pilihan kamu [1..3] : ";
cin >> pil;

switch (pil){
case 1: input(); break;
case 2: proses(); break;
}
}
while (pil != 3);
getch();
}

KodeSumber : NWC.CPP

One response to this post.

  1. Posted by Tita Sinsi Anggiyanti on April 30, 2011 at 3:00 am

    gandum barley oat
    54.0 40.5 27.6
    31.2 36.0 25.0
    52.8 33.6 33.6

    itu dapet nilai’y drmn ya??
    makasih

    Balas

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: