Kamis, 23 Juni 2011

Program perkalian matrik



1.    Program perkalian matrik

Dalam program ini user menginputkan ordo matrik yang akan dikalikan. jika jumlah kolom matrik pertama tidak sama dengan jumlah baris pada matrik ke dua, maka perkalian tidak bisa dilakukan, serta program menampilkan pesan kesalahan.  ketika program selesai dijalankan, user akan ditanya, apakah ingin menggunakan program ini lagi atau tidak. jika menekan Y/y, maka program akan kembali dijalankan, dan ketika user menekan N/n maka program akan dihentikan dan keluar.
Berikut sourcode nya:
#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;
case ‘N’ : status=0; l=0; cout<<”exit”<<endl; getche(); exit(0); break;
case ‘n’ : status=0; l=0; cout<<”exit”<<endl; getche(); exit(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();
}
}
————————————————————————–end———————————————————

Tidak ada komentar:

Posting Komentar