1 / 30

Array Dua Dimensi

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

jacoba
Télécharger la présentation

Array Dua Dimensi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Array Dua Dimensi Jurusan Teknik Informatika Universitas Ahmad Dahlan 2004

  2. Pendahuluan • Misalkan matriks A berordo 2 x 3 • Menggunakan array, setiap elemen matriks A dapat dipetakan menjadi :

  3. 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]; };

  4. 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)

  5. Tahapan input elemen matriks • Perhatikan matriks • Untuk i=0, j=0

  6. Perhatikan matriks • Untuk i=0, j=1

  7. Perhatikan matriks • Untuk i=0, j=2

  8. 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.

  9. 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

  10. Perhatikan tandanya

  11. Perhatikan tandanya

  12. Perhatikan tandanya

  13. Perhatikan tandanya

  14. Algoritma 9.1

  15. 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.

  16. Contoh : • Untuk m = 2, p = 3, dan n = 1 • A2x3, B3x1, C2x1 • c11 diperoleh dari C11= a11*b11+a12*b21+a13*b31

  17. 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).

  18. Algoritma 9.2.

  19. Kasus 9.3. Buatlah algoritma untuk menyelesaikan sistem persamaan linier • Misalkan sistem persamaan linier yang diberikan sebagai berikut :

  20. Status awal

  21. Langkah I • kurangi baris ke-2 dengan (1)x baris pertama diperoleh :

  22. Langkah II • kurangi baris ke-3 dengan (1)x baris pertama diperoleh :

  23. Langkah III • kurangi baris ke-3 dengan (2)x baris ke-2 diperoleh :

  24. Langkah IV : dikembalikan pada bentuk persamaan

  25. Langkah terakhir : substitusi balik • Diperoleh :

  26. Output : • Penyelesaian sistem persamaan linier semula adalah :

  27. 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;

  28. 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];

  29. Tugas : • Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak matriks identitas berodo n. • Petunjuk : Pelajari ciri matriks identitas ???

  30. Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks • Petunjuk : Buat contoh kasus. Misalkan matriks berordo 2x3. Kemudian apa yang terjadi bila ditranspose. ???

More Related