array dua dimensi
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/1.jpg)
Array Dua Dimensi
Jurusan Teknik Informatika
Universitas Ahmad Dahlan
2004
![Page 2: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/2.jpg)
Pendahuluan
Misalkan matriks A berordo 2 x 3
Menggunakan array, setiap elemen matriks A dapat dipetakan menjadi :
1 2 3
4 0 1A
kolom j=0 kolom j=1 kolom j=3
baris i=0 A[0][0] = 1 A[0][1] = -2 A[0][2] = 3
baris i=1 A[1][0]= -4 A[1][1] = 0 A[1][2] = -1
![Page 3: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/3.jpg)
Konstruksi Tipe Data Matriks
C style#define baris 2#define kolom 2int matriks[baris][kolom];
C++ styleclass Matriks {private :
int baris, kolom;int A[baris][kolom];
};
![Page 4: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/4.jpg)
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)
![Page 5: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/5.jpg)
Tahapan input elemen matriks
Perhatikan matriks
Untuk i=0, j=0
2 3
4 0 1A
1
1 x xA
x x x
![Page 6: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/6.jpg)
Perhatikan matriks
Untuk i=0, j=1
2 3
4 0 1A
1
1 2 xA
x x x
![Page 7: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/7.jpg)
Perhatikan matriks
Untuk i=0, j=2
2 3
4 0 1A
1
1 2 3A
x x x
![Page 8: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/8.jpg)
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.
![Page 9: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/9.jpg)
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
![Page 10: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/10.jpg)
Perhatikan tandanya
11 12 11 12 11 12
21 22 21 22 21 22
c c a a b b
c c a a b b
![Page 11: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/11.jpg)
Perhatikan tandanya
11 12 11 12 11 12
21 22 21 22 21 22
c c a a b b
c c a a b b
![Page 12: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/12.jpg)
Perhatikan tandanya
11 12 11 12 11 12
21 22 21 22 21 22
c c a a b b
c c a a b b
![Page 13: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/13.jpg)
Perhatikan tandanya
11 12 11 12 11 12
21 22 21 22 21 22
c c a a b b
c c a a b b
![Page 14: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/14.jpg)
Algoritma 9.1
procedure matriks_jumlah(input matriks1,matriks2 : matriks; baris, kolom : integer; output jumlah : matriks)
Deklarasi i,j : integer Deskripsi for i 1 to baris do for j 1 to kolom do jumlah[i,j]:=matriks1[i,j] + matriks2[i,j] endfor endfor
![Page 15: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/15.jpg)
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.
![Page 16: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/16.jpg)
Contoh :
Untuk m = 2, p = 3, dan n = 1
A2x3, B3x1, C2x1
c11 diperoleh dari
C11= a11*b11+a12*b21+a13*b31
111311 11 12
212321 21 22
31
*
bac a a
bac a a
b
![Page 17: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/17.jpg)
Bila :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).
![Page 18: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/18.jpg)
Algoritma 9.2.
procedure kali_matriks(input matriks1,matriks2 : matriks; baris, kolom, barkol : integer; output mat_kali : matriks)
Deklarasi i,j,k : integer
Deskripsi 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] mat_kali[i,j] + matriks1[i,k] * matriks2[k,j] endfor endfor endfor
![Page 19: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/19.jpg)
Kasus 9.3.Buatlah algoritma untuk menyelesaikan sistem
persamaan linier
Misalkan sistem persamaan linier yang diberikan sebagai berikut :
1 2 3
1 2
1 2 3
2 3 1
3 2
4 3 3
x x x
x x
x x x
1
2
3
1 2 3 1
1 3 0 2
1 4 3 3
x
x
x
![Page 20: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/20.jpg)
Status awal
1 2 3
1 3 0
1 4 3
A
1
2
3
b
![Page 21: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/21.jpg)
Langkah I
kurangi baris ke-2 dengan (1)x baris pertama diperoleh :
1 2 3
0 1 3
1 4 3
A
1
1
3
b
![Page 22: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/22.jpg)
Langkah II
kurangi baris ke-3 dengan (1)x baris pertama diperoleh :
1 2 3
0 1 3
0 2 0
A
1
1
2
b
![Page 23: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/23.jpg)
Langkah III
kurangi baris ke-3 dengan (2)x baris ke-2 diperoleh :
1 2 3
0 1 3
0 0 6
A
1
1
0
b
![Page 24: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/24.jpg)
Langkah IV : dikembalikan pada bentuk persamaan
1 2 3
0 1 3
0 0 6
A
1
1
0
b
1 2 3
2 3
3
2 3 1
3 1
6 0
x x x
x x
x
![Page 25: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/25.jpg)
Langkah terakhir : substitusi balik
Diperoleh :
3 3
2 3 2
1 2 3 1 2
6 0 0,
3 1 1,
2 3 1 1 2 1 2 1.
x x
x x x
x x x x x
![Page 26: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/26.jpg)
Output :
Penyelesaian sistem persamaan linier semula adalah :
1
2
3
1
1
0
x
x
x
![Page 27: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/27.jpg)
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;
![Page 28: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/28.jpg)
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];
![Page 29: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/29.jpg)
Tugas :
Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak matriks identitas berodo n.
Petunjuk :
Pelajari ciri matriks identitas
???
![Page 30: Array Dua Dimensi](https://reader035.vdocuments.net/reader035/viewer/2022081417/56815847550346895dc59cac/html5/thumbnails/30.jpg)
Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks
Petunjuk :
Buat contoh kasus. Misalkan matriks berordo 2x3. Kemudian apa yang
terjadi bila ditranspose.
???