Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int klm,brs,pil,m;
- int kolbar=0;
- int** matriks=new int *[kolbar];
- int** matriks2=new int *[kolbar];
- int** matriks3=new int *[kolbar];
- float matriksdet;
- float** matriksinv=new float *[kolbar];
- float** matriksrev=new float *[kolbar];
- void anu(){
- cout<<"Input Jumlah matriks: ";
- cin>>m;
- cout<<endl;
- cout<<"Input Jumlah kolom dan baris: ";
- cin>>kolbar;
- cout<<endl;
- for(int i=1;i<=kolbar;i++)
- matriks[i] = new int[kolbar];
- for(int i=1;i<=kolbar;i++)
- matriks2[i] = new int[kolbar];
- for(int i=1;i<=kolbar;i++)
- matriks3[i] = new int[kolbar];
- }
- main() {
- cout<<"*******************************************\n";
- cout<<"* *\n";
- cout<<"* PROGRAM OPERASI MATRIKS *\n";
- cout<<"* OLEH MUKTAZAM HASBI ASHIDIQI *\n";
- cout<<"* *\n";
- cout<<"*******************************************\n";
- cout<<"\n";
- cout<<"Pilihlah: \n 1. Penjumlahan\n 2. Pengurangan\n 3. Perkalian\n 4. Determinan\n 5. Invers\n";
- cout<<"Masukan Pilihan Anda: ";
- cin>>pil;
- switch (pil){
- case 1: {
- anu();
- cout<<"Matriks pertama\n";
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<"["<<klm<<"]["<<brs<<"] : ";
- cin >>matriks[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks[klm][brs]<<" ";
- }
- cout<<endl;
- }
- cout<<endl;
- for (int i=1;i<m;i++){
- cout<< "Matriks ke-" << i+1 << endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<< "[" << klm << "][" << brs << "]: ";
- cin >> matriks2[klm][brs];
- matriks[klm][brs]=matriks[klm][brs]+matriks2[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks2[klm][brs] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- }
- cout<< "Hasil penjumlahan matriks:\n";
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks[klm][brs] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- break;
- }
- case 2: {
- anu();
- cout<<"Matriks pertama\n";
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<"["<<klm<<"]["<<brs<<"] : ";
- cin >>matriks[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks[klm][brs]<<" ";
- }
- cout<<endl;
- }
- cout<<endl;
- for (int i=1;i<m;i++){
- cout<< "Matriks ke-" << i+1 << endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<< "[" << klm << "][" << brs << "]: ";
- cin >> matriks2[klm][brs];
- matriks[klm][brs]=matriks[klm][brs]-matriks2[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks2[klm][brs] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- }
- cout<< "Hasil pengurangan matriks:\n";
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks[klm][brs] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- break;
- }
- case 3: {
- anu();
- cout<<"Matriks pertama\n";
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<"["<<klm<<"]["<<brs<<"] : ";
- cin>>matriks[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks[klm][brs]<<" ";
- }
- cout<<endl;
- }
- for (int i=1; i<m; i++){
- cout<<"Matriks ke-"<<i+1;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<"["<<klm<<"]["<<brs<<"] : ";
- cin >> matriks2[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- matriks3[klm][brs]=0;
- for (int j=1; j<=kolbar; j++){
- matriks3[klm][brs]=matriks3[klm][brs]+(matriks[klm][j]*matriks2[j][brs]);
- }
- }
- }
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks[klm][brs]<<" ";
- matriks[klm][brs]=matriks3[klm][brs];
- }
- cout<<endl;
- }
- }
- cout<< "Hasil perkalian matriks adalah:\n";
- for (klm=1; klm<=kolbar; klm++){
- for (brs=1; brs<=kolbar; brs++){
- cout<<matriks3[klm][brs] << " ";
- }
- cout<<endl;
- }
- break;
- }
- case 4: {
- anu();
- //determinan
- if (kolbar<4){
- cout<<"Input nilai matriks\n";
- for (klm=1; klm<=kolbar; klm++){
- for (brs=1; brs<=kolbar; brs++){
- cout<< "[" << klm << "][" << brs << "] : ";
- cin >> matriks[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1; klm<=kolbar; klm++){
- for (brs=1; brs<=kolbar; brs++){
- cout<<matriks[klm][brs] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- if (kolbar==2){
- matriksdet=(matriks[1][1]*matriks[2][2])-(matriks[1][2]*matriks[2][1]);
- }
- if (kolbar==3){
- matriksdet=((matriks[1][1]*matriks[2][2]*matriks[3][3])+(matriks[2][1]*matriks[3][2]*matriks[1][3])+(matriks[3][1]*matriks[1][2]*matriks[2][3]))-((matriks[3][1]*matriks[2][2]*matriks[1][3])+(matriks[2][1]*matriks[1][2]*matriks[3][3])+(matriks[1][1]*matriks[3][2]*matriks[2][3]));
- }
- //hasil determinan
- cout<<"Determinan matriks: ";
- cout<<matriksdet<<endl;
- for (int i=1;i<m;i++){
- cout<< endl<< "\nMatriks ke-" << i+1 << endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<< "[" << klm << "][" << brs << "]: ";
- cin >> matriks2[klm][brs];
- }
- }
- cout<<endl;
- for (klm=1;klm<=kolbar;klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriks2[klm][brs] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- if (kolbar==2){
- matriksdet=(matriks2[1][1]*matriks2[2][2])-(matriks2[1][2]*matriks2[2][1]);
- }
- if (kolbar==3){
- matriksdet=((matriks2[1][1]*matriks2[2][2]*matriks2[3][3])+(matriks2[2][1]*matriks2[3][2]*matriks2[1][3])+(matriks2[3][1]*matriks2[1][2]*matriks2[2][3]))-((matriks2[3][1]*matriks2[2][2]*matriks2[1][3])+(matriks2[2][1]*matriks2[1][2]*matriks2[3][3])+(matriks2[1][1]*matriks2[3][2]*matriks2[2][3]));
- }
- //hasil determinan
- cout<<"Determinan matriks ke-"<<i+1<<": ";
- cout<<matriksdet<<endl;
- }
- } else{
- cout<<"Hanya bisa ordo 2x2 dan 3x3\n";
- }
- break;
- }
- case 5: {
- anu();
- for(int i=1;i<=kolbar;i++)
- matriksrev[i] = new float[kolbar];
- for(int i=1;i<=kolbar;i++)
- matriksinv[i] = new float[kolbar];
- if (kolbar<3){
- cout<<"Input nilai matriks\n";
- for (klm=1; klm<=kolbar; klm++){
- for (brs=1; brs<=kolbar; brs++){
- cout<< "[" << klm << "][" << brs << "] : ";
- cin >> matriks[klm][brs];
- }
- }
- for (klm=1; klm<=kolbar; klm++){
- for (brs=1; brs<=kolbar; brs++){
- cout<<matriks[klm][brs] << " ";
- }
- cout<<endl;
- }
- //reverse
- matriksrev[1][1]=matriks[2][2];
- matriksrev[1][2]=-1*matriks[1][2];
- matriksrev[2][1]=-1*matriks[2][1];
- matriksrev[2][2]=matriks[1][1];
- //determinan
- matriksdet=(matriks[1][1]*matriks[2][2])-(matriks[1][2]*matriks[2][1]);
- float seper=(1/matriksdet);
- //invers
- for(int klm=1;klm<=kolbar;klm++) {
- for(int brs=1;brs<=kolbar;brs++) {
- matriksinv[klm][brs]=matriksrev[klm][brs]*seper;
- }
- }
- if (kolbar==2){
- //hasil invers
- cout<<"\nHasil invers matriks:\n";
- if (matriksdet==0) {
- cout<<"Determinan matriks 0, tidak dapat diinvers";
- } else {
- for (klm=1;klm<=kolbar; klm++){
- for (brs=1;brs<=kolbar;brs++){
- cout<<matriksinv[klm][brs]<<" ";
- }
- cout<<endl;
- }
- }
- }
- } else{
- cout<<"Hanya bisa ordo 2x2\n";
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement