Pengikut

Minggu, 09 Desember 2012

Menghitung Matrik dengan C++

1. Perkalian Matrik

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

int A[1000][1000],B[1000][1000],C[1000][1000],i,j,k, barisa, koloma, barisb, kolomb, barisc, kolomc, loop;
void hitung();
void matrika();
void matrikb();
void cek();
void ulang();

void main()
{
do
{
matrika();
matrikb();
cek();
ulang();
}while (loop!=0);
}

void matrika()
{
cout<<"masukkan ordo matriks A :"<<endl;
cout<<"jumlah baris : ";
cin>>barisa;
cout<<"jumlah kolom : ";
cin>>koloma;

//masukkan matrix A
cout<<"Silahkan input matrik A : \n";
for(i=0;i<barisa;i++)
{
for(j=0;j<koloma;j++)
{
cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<" : ";
cin>>A[i][j];
}
}

//cetak matrix A
cout<<"\nMatrik A : \n";;
for(i=0;i<barisa;i++)
{
for(j=0;j<koloma;j++)
{
cout<<setw(4)<<A[i][j];
}
cout<<endl;
}
cout<<endl;
}

void matrikb()
{
//masukkan matriks B
cout<<"masukkan ordo matriks B :"<<endl;
cout<<"jumlah baris : ";
cin>>barisb;
cout<<"jumlah kolom : ";
cin>>kolomb;

cout<<"Silahkan input matrik B : \n";
for(i=0;i<barisb;i++)
{
for(j=0;j<kolomb;j++)
{
cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<" : ";
cin>>B[i][j];
}
}

//cetak matrix B
cout<<"\nMatrik B : \n";
for(i=0;i<barisb;i++)
{
for(j=0;j<kolomb;j++)
{
cout<<setw(4)<<B[i][j];
}
cout<<endl;
}
}

void hitung()
{
//Operasi Perkalian
for (i=0;i<barisa;i++)
{
for (j=0;j<kolomb;j++)
{
C[i][j]=0;
for (k=0;k< barisb;k++)
{
C[i][j]+= A[i][k]*B[k][j];
}
}
}

//Menampilkan hasil

cout<<"\nMatrik C, Hasil : \n";
for(i=0;i<barisa;i++)
{
for(j=0;j<kolomb;j++)
{
cout<<setw(4)<<C[i][j];
}
cout<<endl;
}
cout<<endl;
getche();
}
void ulang()
{
int status, l;
char pilih;
do
{
cout<<"anda ingin memakai program ini lagi (y/n)?";
cin>>pilih;
switch (pilih)
{
case 'Y' : status=1; loop=1; l=0;  break;
case 'y' : status=1; loop=1; l=0;  break;

default : cout<<"ketik y untuk ulangi program, n untuk tutup program (tidak case sensitif)"<<endl;
}
}while(l!=0);
}

void cek()
{
if (koloma==barisb)
{
hitung();
}
if (koloma!=barisb)
{
cout<<"operasi perkalian tidak bisa dilakukan. Anda salah memasukkan ordo matrik."<<endl;
getche();
}

}















2. Penjumlahan.

#include <stdio.h>
#include <conio.h>
void main()
{ int A[3][3], B[3][3], X[3][3], i, j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{  printf("input data matrik A[%i][%i] : ",i+1,j+1);
scanf("%i",&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
{  printf("input data matrik B[%i][%i] : ",i+1,j+1);
scanf("%i",&B[i][j]);
}
}
/******** Proses pertambahan matriks A dan B ********/
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
{  X[i][j]=A[i][j]+B[i][j];
}
}
/******** Cetak isi matriks A ********/
printf("\n matrik A\n");
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
printf("%6i",A[i][j]);
printf("\n");
}
printf("\n");
/******** Cetak isi matriks B *******/
printf("\n matrik B\n");
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
printf("%6i",B[i][j]);
printf("\n");
}
printf("\n");
/******** Cetak hasil pertambahan matriks A dan B *******/
printf("\n matrik Perkalian AxB\n");
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
printf("%6i",X[i][j]);
printf("\n");
}
printf("\n\n");
getch();
}

Tidak ada komentar:

Posting Komentar

Monggo dikoment.. :)