Langsung ke konten utama

Source Code Algoritma Northwest Corner untuk Meminimalkan Biaya dengan Metode, Kelas, dan Konstruktor di Java

package transportasi;

import java.util.Scanner;

public class MetodeNorthwestCorner {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        TransportasiSolver solver;
        int jumlahPabrik, jumlahPasar;

        System.out.println("Metode Northwest Corner");
        System.out.print("Masukkan banyaknya pabrik: ");
        jumlahPabrik = input.nextInt();
        System.out.print("Masukkan banyaknya pasar: ");
        jumlahPasar = input.nextInt();

        solver = new TransportasiSolver(jumlahPabrik, jumlahPasar);
        solver.inputan();

        if (solver.sup == solver.dem) {
            solver.prosesNW();
        } else if (solver.sup < solver.dem) {
            solver.bentukTS1();
            solver.prosesNW();
        } else {
            solver.bentukTS2();
            solver.prosesNW();
        }

        solver.tampil();
        solver.hasilNW();
        input.close();
    }
}




package transportasi;

import java.util.Scanner;

public class TransportasiSolver {
    private final Scanner input = new Scanner(System.in);
    private int s, d, sup, dem, hasil;
    private final int[] supply = new int[10];
    private final int[] demand = new int[10];
    private final int[][] biaya = new int[10][10];
    private final int[][] bil = new int[10][10];

    public TransportasiSolver(int jumlahPabrik, int jumlahPasar) {
        this.s = jumlahPabrik;
        this.d = jumlahPasar;
    }

    void inputan() {
        System.out.println("Masukkan biaya (dari setiap pabrik ke pasar):");
        for (int i = 0; i < s; i++) {
            for (int j = 0; j < d; j++) {
                System.out.print("biaya[" + (i + 1) + "][" + (j + 1) + "] = ");
                biaya[i][j] = input.nextInt();
            }
        }

        System.out.println("Masukkan banyaknya penawaran pada setiap pabrik:");
        sup = 0;
        for (int i = 0; i < s; i++) {
            System.out.print("penawaran[" + (i + 1) + "] = ");
            supply[i] = input.nextInt();
            sup += supply[i];
        }

        System.out.println("Masukkan banyaknya permintaan pada setiap pasar:");
        dem = 0;
        for (int i = 0; i < d; i++) {
            System.out.print("permintaan[" + (i + 1) + "] = ");
            demand[i] = input.nextInt();
            dem += demand[i];
        }
    }

    void prosesNW() {
        System.out.println("Tabel transportasi:");
        for (int i = 0; i < s; i++) {
            for (int j = 0; j < d; j++) {
                bil[i][j] = Math.min(supply[i], demand[j]);
                supply[i] -= bil[i][j];
                demand[j] -= bil[i][j];
            }
        }
    }

    void tampil() {
        System.out.println("\nBentuk transportasi:");
        for (int i = 0; i < s; i++) {
            for (int j = 0; j < d; j++) {
                System.out.print("   " + bil[i][j]);
            }
            System.out.println();
        }
    }

    void hasilNW() {
        hasil = 0;
        for (int i = 0; i < s; i++) {
            for (int j = 0; j < d; j++) {
                hasil += biaya[i][j] * bil[i][j];
            }
        }
        System.out.println("Minimum biaya transportasi = " + hasil);
    }

    void bentukTS1() {
        supply[s] = dem - sup;
        for (int i = 0; i < d; i++) {
            biaya[s][i] = 0;
        }
        s++;
    }

    void bentukTS2() {
        demand[d] = sup - dem;
        for (int i = 0; i < s; i++) {
            biaya[i][d] = 0;
        }
        d++;
    }
}




  • Gambar hasil program :
  1. Transportasi yang seimbang
Ketika Jumlah supply sama dengan jumlah demand, seperti contoh berikut :



Berikut adalah hasil ketika menggunakan program tersebut :























2. Transportasi tak seimbang
  • Ketika jumlah supply kurang dari demand, seperti contoh berikut :











  • Ketika jumlah supply lebih besar dari demand, seperti contoh berikut :



Berikut adalah hasil ketika menggunakan program tersebut :









Komentar

Posting Komentar

Postingan populer dari blog ini

source code metode vogel's approximation meminimumkan biaya menggunakan metode, kelas, dan konstruktor pada java

package transportasi; import java.util.Scanner; /**  * Main class for implementing Vogel's Approximation Method  *   * @author ASUS  */ public class TransportasiVA {     public static void main(String[] args) {         Scanner input = new Scanner(System.in);         VogelApproach vogel; // Memanggil kelas VogelApproach.java yang berisi metode-metode program         int s = 0, d = 0;         vogel = new VogelApproach(s, d);         System.out.println("Metode Vogel's Approximation");         System.out.print("Masukan banyaknya pabrik: ");         vogel.s = input.nextInt();         System.out.print("Masukan banyaknya pasar: ");         vogel.d = input.nextInt();         vogel.inputan();         if (vogel.sup == vogel.dem) {     ...