Array variabel Merupakan jenis data yang memresentasikan suatu kumpulan data dengan tipe yang sama dengan menempatkannya dalam bentuk larik Antara satu variabel dengan variabel lainnya dalam sebuah larik dibedakan berdasarkan subscript indeks array, selalu dimulai dari nol Dideklarasikan dengan menyatakan tipe data, nama array variabel, banyak elemen . Contoh : float suhu[5]
Array 1 dimensi [0] [1] [2] [3] [4] Array 2 dimensi [0,0] [0,1] [0,2] [0,3] [0,4] [1,0] [1,1] [1,2] [1,3] [1,4]
Array 3 dimensi [2,0,0] [1,0,0] [2,0,4] [1,0,4] [0,0,0] [0,0,1] [0,0,2] [0,0,3] [0,0,4] [0,0,4] [2,1,4] [1,1,4] [0,1,0] [0,1,1] [0,1,2] [0,1,3] [0,1,4] [0,1,4] [2,2,4] [1,2,4] [0,2,0] [0,2,1] [0,2,2] [0,2,3] [0,2,4] [0,2,4]
MATRIKS Matriks adalah array 2 dimensi Beberapa operasi matriks yang sering digunakan : Transpose matriks Penjumlahan matriks Perkalian matriks Inversi matriks Menghitung nilai determinan matriks
MATRIKS TRANSPOSE (1) Bila matriks B adalah transpose dari matriks A yang berdimensi m x n, maka : Dimensi matriks B adalah n x m 2) B(I,J) = A(J,I) Contoh : 1 2 3 1 4 A = B = At = 2 5 4 5 6 3 6
MATRIKS TRANSPOSE (2) Contoh program : #include <iostream> using namespace std; main() { int I,J, BarisA, KolomA; int MatriksA[10][10], MatriksB[10][10]; /* Memberikan orde dari matriks A */ cout<<“Banyak baris matriks A ? “; cin>>BarisA; cout<<“Banyak kolom matriks A ? “; cin>>KolomA; cout<<“\n”;
MATRIKS TRANSPOSE (3) /* Memberikan data matriks A */ cout<<“Masukkan nilai matriks A : \n”; for(I=0; I<BarisA; I++) { for(J=0; J<KolomA; J++) { cout<<“A ?”<< I+1, J+1; cin>>MatriksA[I][J]; } cout<<“\n”; /* Memberikan nilai kepada matriks B */ for(I=0; I<KolomA; I++) { for(J=0; J<BarisA; J++){ B[I][J] = A[J][I]; }
MATRIKS TRANSPOSE (4) /* Menampilkan hasil */ printf(“\n”); printf(“Matriks A : \n”); for(I=0;I<BarisA;I++){ for(J=0;J<KolomA;J++){ printf(“%7d”,MatriksA[I][J]; } printf(Matriks B : \n”); for(I=0,I<BarisA;I++){ printf(“%7d”,MatriksB[J][I]; printf(“\n”)
MATRIKS TRANSPOSE (5) Hasil yang ditampilkan : Banyak baris matriks A ? 2 Banyak kolom matriks A ? 3 Masukkan nilai matriks A : A( 1, 1) ? 1 A( 1, 2) ? 2 A( 1, 3) ? 3 A( 2, 1) ? 4 A( 2, 2) ? 5 A( 2, 3) ? 6 Matriks A : 1 2 3 4 5 6 Matriks B : 1 4 2 5 3 6
PENJUMLAHAN MATRIKS (1) Bila matriks C adalah hasil penjumlahan dari matriks A dan matriks B, maka : Dimensi matriks A, matriks B, dan matriks C harus sama C(I,J) = A(I,J) + B(I,J) Contoh : 1 2 3 3 1 4 4 3 7 A = B = C = 4 5 6 2 4 2 6 9 8
PENJUMLAHAN MATRIKS (2) Contoh program : #include <stdio.h> main() { int I,J, Baris, Kolom int MatriksA[10][10], MatriksB[10][10], MatriksC[10][10]; /* Memberikan orde dari matriks */ printf(“Banyak baris matriks ? “); scanf(“%d”,&Baris); printf(“Banyak kolom matriks ? “); scanf(“%d”,&Kolom); printf(“\n);
PENJUMLAHAN MATRIKS (3) /* Memberikan data matriks A */ printf(“Masukkan nilai matriks A :\n”); for(I=0; I<Baris; I++) { for(J=0; J<Kolom; J++) { printf(“A(%3d,%3d) ? “, I+1,J+1); scanf(“%d”,&MatriksA[I][J]); } printf(“\n”);
PENJUMLAHAN MATRIKS (4) /* Memberikan data matriks B */ printf(“Masukkan nilai matriks B :\n”); for(I=0; I<Baris; I++) { for(J=0; J<Kolom; J++) { printf(“B(%3d,%3d) ? “, I+1,J+1); scanf(“%d”,&MatriksB[I][J]); } printf(“\n”);
PENJUMLAHAN MATRIKS (5) /* Menghitung matriks C */ for(I=0; I<Baris; I++) { for(J=0; J<Kolom; J++) { C[I][J] = A[I][J] + B[I][J]; }
PENJUMLAHAN MATRIKS (6) /* Menampilkan hasil */ printf(“\n”); printf(“ Matriks A : Matriks B : Matriks C : \n”); for(I=0;I<Baris;I++){ printf(“%3d,%4d,%4d,% ”,MatriksA[I][J],MatriksA[I][J+1],MatriksA[I][J+2]; printf(“%15d,%4d,%4d,% ”,MatriksB[I][J],MatriksB[I][J+1],MatriksB[I][J+2]; printf(“%15d,%4d,%4d,% ”,MatriksC[I][J],MatriksC[I][J+1],MatriksC[I][J+2]; }
PENJUMLAHAN MATRIKS (7) Hasil yang ditampilkan : Banyak baris matriks ? 2 Banyak kolom matriks ? 3 Masukkan nilai matriks A : A( 1, 1) ? 1 A( 1, 2) ? 2 A( 1, 3) ? 3 A( 2, 1) ? 4 A( 2, 2) ? 5 A( 2, 3) ? 6
PENJUMLAHAN MATRIKS (8) Masukkan nilai matriks B : B( 1, 1) ? 3 B( 1, 2) ? 1 B( 1, 3) ? 4 B( 2, 1) ? 2 B( 2, 2) ? 1 B( 2, 3) ? 2 Matriks A : Matriks B : Matriks C : 1 2 3 3 1 4 4 3 7 4 5 6 2 1 2 6 9 8
PERKALIAN MATRIKS (1) Bila matriks C adalah hasil perkalian antara matriks A dengan Matriks B, maka : Banyak baris matriks B harus sama dengan banyak kolom matriks A m 2) Ci,j = Σ Ai,k x Bk,j k=1 Contoh : 1 2 3 7 8 58 64 A = B = 9 10 C = 4 5 6 11 12 139 154
PERKALIAN MATRIKS (2) Contoh program : #include <stdio.h> main() { int I,J,K, BarisA, KolomA,KolomB; int MatriksA[10][10], MatriksB[10][10], MatriksC[10][10]; /* Memberikan orde dari matriks A dan B */ printf(“Banyak baris matriks A ? “); scanf(“%d”,&BarisA); printf(“Banyak kolom matriks A ? “); scanf(“%d”,&KolomA); printf(“\n); printf(“Banyak kolom matriks B ? “); scanf(“%d”,&KolomB);
PERKALIAN MATRIKS (3) /* Memberikan data matriks A */ printf(“Masukkan nilai matriks A :\n”); for(I=0; I<BarisA; I++) { for(J=0; J<KolomA; J++) { printf(“A(%3d,%3d) ? “, I+1,J+1); scanf(“%d”,&MatriksA[I][J]); } printf(“\n”); /* Memberikan data matriks B */ printf(“Masukkan nilai matriks B :\n”); for(I=0; I<KolomA; I++) { for(J=0; J<KolomB; J++) { printf(“B(%3d,%3d) ? “, I+1,J+1); scanf(“%d”,&MatriksB[I][J]);
PERKALIAN MATRIKS (4) /* Menghitung C = A x B */ for(I=0;I<BarisA;I++) { for(J=0;J<KolomB;J++) { MatriksC[I][J]=0; for(K=0;K<KolomA;K++) MatriksC[I][J] += MatriksA[I][K] * MatriksB[K][J]; } /* Menampilkan hasil perkalian matriks */ printf(“Hasil perkalian matriks C = A * B :\n); for(J=0;J<KolomB;J++) printf(“%7d”, MatriksC[I][J]; printf(“\n”); printf(“\n”;
PERKALIAN MATRIKS (5) Hasil yang ditampilkan : Banyak baris matriks A ? 2 Banyak kolom matriks A ? 3 Banyak kolom matriks B ? 2 Masukkan nilai matriks A : A( 1, 1) ? 1 A( 1, 2) ? 2 A( 1, 3) ? 3 A( 2, 1) ? 4 A( 2, 2) ? 5 A( 2, 3) ? 6 Masukkan nilai matriks B : B( 1, 1) ? 7 B( 1, 2) ? 8 B( 2, 1) ? 9 B( 2, 2) ? 10 B( 3, 1) ? 11 B( 3, 2) ? 12 Hasil perkalian matriks C = A * B : 58 64 139 154 PERKALIAN MATRIKS (5)