Jurusan Teknik Informatika Universitas Ahmad Dahlan 2004 Array Dua Dimensi Jurusan Teknik Informatika Universitas Ahmad Dahlan 2004
Pendahuluan Misalkan matriks A berordo 2 x 3 Menggunakan array, setiap elemen matriks A dapat dipetakan menjadi :
Konstruksi Tipe Data Matriks C style #define baris 2 #define kolom 2 int matriks[baris][kolom]; C++ style class Matriks { private : int baris, kolom; int A[baris][kolom]; };
Memasukkan data Matriks void baca_matriks (int matriks[10][10], int baris, int kolom) { int i,j; for (i=0; i<baris; i++) for (j=0; j<kolom; j++) cin >> matriks[i][j]; } Cara mengisi data dilakukan per baris (dengan kolom berjalan/dihabiskan lebih dulu)
Tahapan input elemen matriks Perhatikan matriks Untuk i=0, j=0
Perhatikan matriks Untuk i=0, j=1
Perhatikan matriks Untuk i=0, j=2
Mencetak Elemen Matriks void cetak_matriks (const int A[10][10], int baris, int kolom) { int i,j; for (i=0; i<baris; i++) { for (j=0; j<kolom; j++) cout << A[i][j] << “ “; // jarak antar elemen cout << endl; // baris berikutnya } Strateginya : pada suatu baris (cout pertama) antar elemen dipisahkan spasi. Untuk mencetak baris berikutnya digunakan cout kedua.
Syarat penjumlahan 2 matriks : ordonya sama, m baris dan n kolom Kasus 9.1: Buatlah algoritma dan program untuk menjumlahkan dua buah matriks. Analisis : Syarat penjumlahan 2 matriks : ordonya sama, m baris dan n kolom Misal : A2x2 ditambah B2x2. Hasilnya juga merupakan matriks berukuran 2x2 misal matriks C2x2. Penjumlahan dilakukan elemen demi elemen pada tempat yang sesuai
Perhatikan tandanya
Perhatikan tandanya
Perhatikan tandanya
Perhatikan tandanya
Algoritma 9.1
Bila Amxp dan Bpxn, akan menghasilkan Cmxn. Kasus 9.2. Buatlah algoritma dan program untuk mengalikan dua buah matriks. Analisis : Syarat dua matriks dapat dikalikan adalah ukuran kolom matriks pertama haruslah sama dengan ukuran baris matriks kedua. Bila Amxp dan Bpxn, akan menghasilkan Cmxn.
Contoh : Untuk m = 2, p = 3, dan n = 1 A2x3, B3x1, C2x1 c11 diperoleh dari C11= a11*b11+a12*b21+a13*b31
Bila : Maka diperoleh 3 loop : i berjalan dari 1 sampai m (banyak baris) k berjalan dari 1 sampai p (banyak elemen perkalian dalam) j berjalan dari 1 sampai n (banyak kolom) Maka diperoleh 3 loop : for i 1 to baris do for j 1 to kolom do mat_kali[i,j] 0 for k 1 to barkol do mat_kali[i,j] menyatakan matriks hasil pada elemen ke(i,j). Oleh karena merupakan kumulatif penjumlahan maka diawali nilai dengan 0 (dan hanya dipengaruhi oleh variabel I dan j).
Algoritma 9.2.
Misalkan sistem persamaan linier yang diberikan sebagai berikut : Kasus 9.3. Buatlah algoritma untuk menyelesaikan sistem persamaan linier Misalkan sistem persamaan linier yang diberikan sebagai berikut :
Status awal
Langkah I kurangi baris ke-2 dengan (1)x baris pertama diperoleh :
Langkah II kurangi baris ke-3 dengan (1)x baris pertama diperoleh :
Langkah III kurangi baris ke-3 dengan (2)x baris ke-2 diperoleh :
Langkah IV : dikembalikan pada bentuk persamaan
Langkah terakhir : substitusi balik Diperoleh :
Output : Penyelesaian sistem persamaan linier semula adalah :
Membentuk matriks eselon baris for (i = 0; i < banyak - 1; i++) for (k = i + 1; k < banyak; k++) { temp = koef.A[k][i] / koef.A[i][i]; // memanipulasi matriks for (j = i + 1; j < banyak; j++) koef.A[k][j] -= temp * koef.A[i][j]; // memanipulasi vektor konstanta konstanta.elemen[k] -= temp * konstanta.elemen[i]; koef.A[k][i] = 0.0;
Substitusi balik // banyak menyatakan banyaknya elemen vektor for (i = banyak-1; i >= 0; i--) { s = konstanta.elemen[i]; for (j = i + 1; j < banyak; j++) // konstanta dikurangi dengan nilai xj yang telah diperoleh s -= koef.A[i][j] * konstanta.elemen[j]; X.elemen[i] = s / koef.A[i][i];
Pelajari ciri matriks identitas Tugas : Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak matriks identitas berodo n. Petunjuk : Pelajari ciri matriks identitas ???
Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks Petunjuk : Buat contoh kasus. Misalkan matriks berordo 2x3. Kemudian apa yang terjadi bila ditranspose. ???