"Wahai jin dan manusia, jika kalian mampu menembus penjuru langit dan bumi, tembuslah! Kalian tidak dapat menembusnya kecuali dengan kekuatan (ilmu)." (Ar-Rahman:33)

Mungkin mendengar matrik perkalian merupakan hal yang sudah biasa. dan banyak yang tau. tp matrik ini sedikit berbeda. saya menambahkan sedikit fitur tentang menganalisa jika ada bug. dan lebih ringkas dari sebelumnya. ^_^

Dan Hasil Tampilannya sebagai berikut:

lebih jelasnya anda bisa memperhatikan sourcecode berikut ini:


import java.util.Scanner;

/**
 * Nama : Ariska Hidayat
 * Nim : 10030092
 */
public class MatrikPerkalian {

public static void main(String[] args) {

 int barMatrikA = 0;
 int barMatrikB = 0;
 int colMatrikA = 0;
 int colMatrikB = 0;
 int[][] matrikA;
 int[][] matrikB;
 int[][] matrikHasil;
 boolean ulangi = false;
 boolean humanError = false;</pre>

 do {
 pembukaan();
 barMatrikA = inputAngka(" Masukkan jumlah baris matrik A : ");
 colMatrikA = inputAngka(" Masukkan jumlah kolom matrik A : ");

 do {
 barMatrikB = inputAngka(" Masukkan jumlah baris matrik B : ");
 humanError = cek(colMatrikA, barMatrikB);
 } while (humanError);

 colMatrikB = inputAngka(" Masukkan jumlah kolom matrik B : ");

 matrikA = new int[barMatrikA][colMatrikA];
 matrikB = new int[barMatrikB][colMatrikB];
 matrikHasil = new int[matrikA.length][matrikB[0].length];

 System.out.println();
 matrikA = inputMatrik(" A ", matrikA);
 System.out.println();
 matrikB = inputMatrik(" B ", matrikB);
 System.out.println();
 matrikHasil = prosesKali(matrikA, matrikB);
 tampilkan(matrikA, matrikB, matrikHasil);
 System.out.println();
 ulangi = tanyakan();
 } while (ulangi);

 penutupan();
 }

private static void pembukaan() {

 System.out.println("\n\n\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
 System.out.println(" perkalian matrik");
 System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
 }

private static int[][] inputMatrik(String kelas, int[][] matrik) {

 for (int row = 0; row < matrik.length; row++) {
 for (int col = 0; col < matrik[0].length; col++) {
 matrik[row][col] = inputAngka(" masukkan nilai matrik" + kelas + " pada titik (" + (row + 1) + "," + (col + 1) + "): ");
 }
 }
 return matrik;
 }

private static int inputAngka(String text) {

 boolean humanError = false;
 int angka = 0;
 do {
 humanError = false;
 try {
 Scanner scan = new Scanner(System.in);
 System.out.print(text);
 angka = scan.nextInt();
 } catch (Exception e) {
 System.out.println("\n Maaf, angka yang anda masukkan salah! \n");
 humanError = true;
 }
 } while (humanError);

 return angka;
 }

private static int[][] prosesKali(int[][] matrikA, int[][] matrikB) {

 int[][] matrikHasil = new int[matrikA.length][matrikB[0].length];

 for (int row = 0; row < matrikA.length; row++) {
 for (int col = 0; col < matrikB[0].length; col++) {
 for (int x = 0; x < matrikA[0].length; x++) {
 matrikHasil[row][col] += matrikA[row][x] * matrikB[x][col];
 }
 }
 }
 return matrikHasil;
 }

private static void tampilkan(int[][] matrikA, int[][] matrikB, int[][] matrikHasil) {

 System.out.println("\n Hasil Dari Perkalian diatas : \n");
 tampil(matrikA);
 System.out.println();
 tampil(matrikB);
 System.out.println("____________________________ x\n");
 tampil(matrikHasil);
 }

private static void tampil(int[][] matrik) {

 for (int row = 0; row < matrik.length; row++) {
 for (int col = 0; col < matrik[0].length; col++) {
 System.out.print("\t" + matrik[row][col]);
 }
 System.out.println();
 }
 }

private static void penutupan() {

 System.out.println("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
 System.out.println(" terimakasih atas koreksinya ");
 System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n");
 }

private static boolean tanyakan() {

 boolean humanError = false;
 boolean ulangi = false;
 char ulang = 0;

 do {
 humanError = false;
 System.out.print(" Apakah Anda ingin mengulanginya lagi [y/t]: ");
 ulang = new Scanner(System.in).next().toUpperCase().charAt(0);
 if (ulang == 'Y') {
 ulangi = true;
 } else if (ulang == 'T') {
 ulangi = false;
 } else {
 System.out.println("\n Maaf, huruf yang anda masukkan salah! \n");
 humanError = true;
 }
 } while (humanError);

 return ulangi;
 }

private static boolean cek(int colMatrikA, int barMatrikB) {

 boolean humanError = false;
 if (colMatrikA != barMatrikB) {
 System.out.println("\n Maaf, jumlah kolom matrik A dan jumlah baris matrik B harus sama! \n");
 humanError = true;
 }
 return humanError;
 }
}
// alhamdulillahirrabil alamiin..

atau anda bisa download sourcecode ~(disini)~ 3Kb
Semoga bisa bermanfaat. jika ada yang kurang jelas, bisa isi komentar dibawah ini. trimakasih.

Advertisements

Comments on: "Contoh Java: Matrik Perkalian" (3)

  1. bahrie said:

    ribet tenan perkalianne.. hehehe

    • mungkin iya mas, tp disisi lain manurut saya itu sangat mudah dalam mencari bug, mengedit dan tidak boros dalam penggunaan ruang penulisan Script. gt. ^_^

  2. Kalau bisa dilengkapi dengan comment untuk fungsi dari tiap source code agar yang masih awam dengan java seperti saya lebih muda memahami, sebelumnya programnya cukup menarik karena bisa menentukan jumlah kolom dan baris.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: