Perkalian Matriks Program Menampilkan Hasil Perkalian Matriks Listing Program

V.3 Perkalian Matriks Program Menampilkan Hasil Perkalian Matriks Listing Program

#include<stdio.h> int In(int b, int k, int I[15][15]){

for(int i=0; i<b; i++){ for(int j=0; j<k; j++){ printf("Elemen matriks [%d][%d] : ", i+1, j+1); scanf("%d", &I[i][j]);

} } } int Out(int b, int k, int Out[15][15]){

for(int i=0; i<b; i++){ for(int j=0; j<k; j++)

printf("%d\t", Out[i][j]);

printf("\n"); }

} int Kali(int b1, int k2, int b2, int a[15][15], int b[15][15], int M[15][15]){

int i, j, k, sum=0; for(i=0; i<b1; i++){

for(j=0; j<k2; j++){

for(k=0; k<b2; k++) sum+=a[i][k]*b[k][j];

M[i][j]=sum; sum=0; }

} } main(){

typedef int Mat[15][15]; Mat A, B, C; int b1, k1, b2, k2, r; Awal: printf("Masukkan Matriks A\n"); printf("Jumlah baris : "); scanf("%d", &b1); printf("Jumlah kolom : "); scanf("%d", &k1); In(b1, k1, A); UlangB: printf("\nMasukkan Matriks B\n"); printf("Jumlah baris : "); scanf("%d", &b2); printf("Jumlah kolom : "); scanf("%d", &k2); In(b2, k2, B); typedef int Mat[15][15]; Mat A, B, C; int b1, k1, b2, k2, r; Awal: printf("Masukkan Matriks A\n"); printf("Jumlah baris : "); scanf("%d", &b1); printf("Jumlah kolom : "); scanf("%d", &k1); In(b1, k1, A); UlangB: printf("\nMasukkan Matriks B\n"); printf("Jumlah baris : "); scanf("%d", &b2); printf("Jumlah kolom : "); scanf("%d", &k2); In(b2, k2, B);

printf("Hasil kali matriks A dan B adalah\n"); Kali(b1, k2, b2, A, B, C); Out(b1, k2, C);

} else { printf("\nMatriks A dan B tidak dapat dikalikan\n"); printf("Jumlah kolom matriks A harus sama dengan jumlah

baris matriks B. Silahkan ulangi!\n"); error: printf("Pilih : 1. Mengulang dari awal; 2. Mengulang

matriks B\n"); printf("Pilihan : "); scanf("%d", &r); if(r==1) goto Awal; else if(r==2) goto UlangB; else {

printf("Pilihan salah\n"); goto error; } } }

Tampilan Program

Gambar 5.1 Program perkalian matriks

Gambar 5.2 Tampilan untuk syarat matriks tidak dipenuhi

Analisa Program

Program ini menggunakan 3 fungsi tambahan selain fungsi main, yaitu fungsi untuk input elemen matriks (In), fungsi untuk menampilkan matriks (Out) dan fungsi untuk melakukan perkalian matriks (Kali). Dalam fungsi In dan Out digunakan pengulangan untuk baris ke-i dan kolom ke-j, dimana pada fungsi In akan memberikan nilai ke alamat memori array matriks. Untuk fungsi Out akan menampilkan array matriks dari proses fungsi In. Dalam fungsi Kali dilakukan 3 kali pengulangan yaitu untuk baris matriks hasil perkalian, kolom matriks, dan jumlah dari elemen perkalian untuk tiap satu elemen matriks hasil perkalian. Matriks A dan B diinputkan dengan jumlah baris dan kolom terpisah. Digunakan tipe data bentukan array M untuk menjadi tipe data array A, B, dan C dengan jumlah elemen 15. Untuk persyaratan operasi perkalian matriks digunakan pengkondisian if, ketika jumlah kolom matriks A sama dengan baris matriks B maka akan statemen yang akan dieksekusi adalah operasi perkalian di fungsi Kali. Apabila tidak memenuhi (bernilai salah) maka program memberikan tampilan kesalahan, dan meminta pilihan untuk mengulangi input array matriks seperti Gambar 5.2. Statement goto akan membuat proses eksekusi menuju label goto yang telah diletakan, yaitu di label Awal, UlangB dan error.