Langsung ke konten utama

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) {
            vogel.prosesVA();
            vogel.tampil();
            vogel.hasilVA();
        } else if (vogel.sup < vogel.dem) {
            vogel.bentukTS1();
            vogel.prosesVA();
            vogel.tampil();
            vogel.hasilVA();
        } else {
            vogel.bentukTS2();
            vogel.prosesVA();
            vogel.tampil();
            vogel.hasilVA();
        }
    }
}



package transportasi;

import java.util.Scanner;

/**
 * Supporting class for Vogel's Approximation Method
 * 
 * @author ASUS
 */
public class VogelApproach {
    Scanner input = new Scanner(System.in);
    int s, d, i, j, hasil, count, min, a, b, k, l, temp, ii, maxi, mini, x, sup, dem;
    int[] supply = new int[10];
    int[] demand = new int[10];
    int[][] biaya = new int[10][10];
    int[][] biaya1 = new int[10][10];
    int[][] biaya2 = new int[10][10];
    int[][] biaya3 = new int[10][10];
    int[][] bil = new int[10][10];
    int[] op1 = new int[10];
    int[] op2 = new int[10];
    int[] max = new int[10];

    public VogelApproach(int s, int d) { // Konstruktor
        this.s = s;
        this.d = d;
    }

    void inputan() {
        System.out.println("Masukan biaya (dari setiap pabrik ke pasar): ");
        for (i = 0; i < s; i++) {
            for (j = 0; j < d; j++) {
                System.out.print("biaya[" + (i + 1) + "][" + (j + 1) + "] = ");
                biaya[i][j] = input.nextInt();
                biaya1[i][j] = biaya[i][j];
                biaya2[i][j] = biaya[i][j];
                biaya3[i][j] = biaya[i][j];
            }
        }
        System.out.println("Masukan banyaknya penawaran pada setiap pabrik: ");
        sup = 0;
        for (i = 0; i < s; i++) {
            System.out.print("penawaran[" + (i + 1) + "] = ");
            supply[i] = input.nextInt();
            sup += supply[i];
        }
        System.out.println("Masukan banyaknya permintaan pada setiap pasar: ");
        dem = 0;
        for (i = 0; i < d; i++) {
            System.out.print("permintaan[" + (i + 1) + "] = ");
            demand[i] = input.nextInt();
            dem += demand[i];
        }
    }

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

    void prosesVA() {
        for (ii = 0; ii < (s + d) - 1; ii++) {
            // Logic for Vogel's Approximation Method
            // Menyesuaikan perhitungan alokasi berdasarkan biaya minimum
        }
    }

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

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

    void bentukTS2() {
        demand[d] = sup - dem;
        for (i = 0; i < s; i++) {
            biaya[i][d] = 0;
            biaya1[i][d] = 0;
            biaya2[i][d] = 0;
            biaya3[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

Postingan populer dari blog ini

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) {   ...