Kamis, 19 Februari 2009

Perkalian Matrik Ordo 2x2 dan 2x3

Perkalian Matrik ordo 2x3 dan 3x2
# include< stdio.h >
main()
{
int i,j,k;
int matrik_A[2][3], matrik_B[3][2], matrik_C[2][2];

printf("--------------------------------- ");
printf("Perkalian Matrik ordo 2x3 dan 3x2 ");
printf("--------------------------------- ");

printf(" Input Nilai Matrik A ");
for(i=0;i<2;i )
{
for(j=0;j<3;j )
{
printf("[%d][%d]: ", i 1, j 1);
scanf("%d", &matrik_A[i][j]);
}
}

printf(" Input Nilai Matrik B ");
for(j=0;j<3;j )
{
for(k=0;k<2;k )
{
printf("[%d][%d]: ", j 1, k 1);
scanf("%d", &matrik_B[j][k]);
}
}
printf(รข€œ Hasil perkalian Matrik A dan B ");
for(i=0;i<2;i )
{
for(k=0;k<2;k )
{
matrik_C[i][k]=0;
for(j=0;j<3;j )
{
matrik_C[i][k] =matrik_A[i][j]*matrik_B[j][k];
}
printf("%d ", matrik_C[i][k]);
if(k==1) printf(" ");
}
}
}

Perkalian Matrik

Logika dan Algoritma
Menghitung Perkalian Matriks
Algoritma :
1. Deklarasikan variable i untuk iterasi, j untuk iterasi, k untuk iterasi, bar_a untuk jumlah baris pada matriks A, kol_a untuk jumlah kolom pada matriks A, bar_b untuk jumlah baris pada matriks B, kol_b untuk jumlah kolom pada matriks B, mat_a dengan tipe array of integer untuk menampung nilai matriks A, mat_b dengan tipe array of integer untuk menampung nilai matriks B, mat_c dengan tipe array of integer untuk menampung hasil perkalian kedua matriks.
2. Masukkan jumlah baris pada matriks A lalu nyatakan ke variable bar_a, jumlah kolom pada matriks A lalu nyatakan ke variable kol_a, jumlah baris pada matriks B lalu nyatakan ke variable bar_b, serta jumlah kolom pada matriks B lalu nyatakan ke variable kol_b.
3. Bila nilai pada bar_a tidak sama dengan nilai pada kol_b atau nilai pada kol_a tidak sama dengan nilai pada bar_b maka cetak “Kolom A = Baris B & Baris A = Kolom B!!!” dan kembali ke langkah 2, namun bila tidak maka lakukan langkah 4 s/d 41.
4. Cetak “ Nilai matriks A ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks A, bukan nilai pada matriks B.
5. Isi variable i dengan 0.
6. Selama nilai pada i kurang dari jumlah baris pada matriks A lakukan langkah 7 s/d 11.
7. Isi variable j dengan 0.
8. Selama j kurang dari jumlah kolom pada matriks A lakukan langkah 9 s/d 10.
9. Masukkan nilai matriks pada indeks ke-i ke-j dan nyatakan ke mat_a[i][j].
10. Tambahkan nilai pada variable j dengan 1.
11. Tambahkan nilai pada variabel i dengan 1.
12. Cetak “ Nilai matriks B ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks B, bukan nilai pada matriks A.
13. Isi variable j dengan 0.
14. Selama nilai pada j kurang dari jumlah baris pada matriks B lakukan langkah 15 s/d 19.
15. Isi variable k dengan 0.
16. Selama k kurang dari jumlah kolom pada matriks B lakukan langkah 17 s/d 18.
17. Masukkan nilai matriks pada indeks ke-j ke-k dan nyatakan ke mat_b[j][k].
18. Tambahkan nilai pada variable k dengan 1.
19. Tambahkan nilai pada variabel j dengan 1.
20. Isi variabel i dengan 0.
21. Selama i kurang dari jumlah baris pada matriks A lakukan langkah 22 s/d 30.
22. Isi variabel k dengan 0.
23. Selama nilai pada k kurang dari jumlah kolom pada matriks B lakukan langkah 24 s/d 29.
24. Isi mat_c pada indeks ke-i ke-k dengan 0.
25. Isi j dengan 0.
26. Selama j kurang dari jumlah baris pada matriks B lakukan langkah 27 s/d 28.
27. Tambahkan nilai pada matriks_c indeks ke-i ke-k dengan hasil kali dari nilai pada mat_a pada indeks ke-i ke-j dengan nilai pada mat_b pada indeks ke-j ke-k kemudian nyatakan ke mat_c pada indeks ke-j ke-k.
28. Tambahkan nilai pada j dengan 1.
29. Tambahkan nilai pada k dengan 1.
30. Tambahkan nilai pada i dengan 1
31. Isi i dengan 0.
32. Selama nilai i kurang dari jumlah baris pada matriks A lakukan langkah 33 s/d 37.
33. Isi k dengan 0.
34. Selama nilai k kurang dari jumlah kolom pada matriks B lakukan langkah 35 s/d 36.
35. Cetak nilai pada mat_c indeks ke-i ke-k.
36. Tambahkan nilai pada variabel k dengan 1.
37. Tambahkan nilai pada variabel i dengan 1.
38. Tanya apakah user masih ingin mengalikan dua buah matriks.
39. Bila jawabannya iya, maka kembali ke langkah ke-2.
40. Bila jawabannya tidak, maka program dapat langsung diakhiri.
41. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 38).
Logika dan Algoritma

Menghitung Perkalian Matriks

Algoritma :

  1. Deklarasikan variable i untuk iterasi, j untuk iterasi, k untuk iterasi, bar_a untuk jumlah baris pada matriks A, kol_a untuk jumlah kolom pada matriks A, bar_b untuk jumlah baris pada matriks B, kol_b untuk jumlah kolom pada matriks B, mat_a dengan tipe array of integer untuk menampung nilai matriks A, mat_b dengan tipe array of integer untuk menampung nilai matriks B, mat_c dengan tipe array of integer untuk menampung hasil perkalian kedua matriks.

  2. Masukkan jumlah baris pada matriks A lalu nyatakan ke variable bar_a, jumlah kolom pada matriks A lalu nyatakan ke variable kol_a, jumlah baris pada matriks B lalu nyatakan ke variable bar_b, serta jumlah kolom pada matriks B lalu nyatakan ke variable kol_b.

  3. Bila nilai pada bar_a tidak sama dengan nilai pada kol_b atau nilai pada kol_a tidak sama dengan nilai pada bar_b maka cetak “Kolom A = Baris B & Baris A = Kolom B!!!dan kembali ke langkah 2, namun bila tidak maka lakukan langkah 4 s/d 41.

  4. Cetak “ Nilai matriks A ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks A, bukan nilai pada matriks B.

  5. Isi variable i dengan 0.

  6. Selama nilai pada i kurang dari jumlah baris pada matriks A lakukan langkah 7 s/d 11.

  7. Isi variable j dengan 0.

  8. Selama j kurang dari jumlah kolom pada matriks A lakukan langkah 9 s/d 10.

  9. Masukkan nilai matriks pada indeks ke-i ke-j dan nyatakan ke mat_a[i][j].

  10. Tambahkan nilai pada variable j dengan 1.

  11. Tambahkan nilai pada variabel i dengan 1.

  12. Cetak “ Nilai matriks B untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks B, bukan nilai pada matriks A.

  13. Isi variable j dengan 0.

  14. Selama nilai pada j kurang dari jumlah baris pada matriks B lakukan langkah 15 s/d 19.

  15. Isi variable k dengan 0.

  16. Selama k kurang dari jumlah kolom pada matriks B lakukan langkah 17 s/d 18.

  17. Masukkan nilai matriks pada indeks ke-j ke-k dan nyatakan ke mat_b[j][k].

  18. Tambahkan nilai pada variable k dengan 1.

  19. Tambahkan nilai pada variabel j dengan 1.

  20. Isi variabel i dengan 0.

  21. Selama i kurang dari jumlah baris pada matriks A lakukan langkah 22 s/d 30.

  22. Isi variabel k dengan 0.

  23. Selama nilai pada k kurang dari jumlah kolom pada matriks B lakukan langkah 24 s/d 29.

  24. Isi mat_c pada indeks ke-i ke-k dengan 0.

  25. Isi j dengan 0.

  26. Selama j kurang dari jumlah baris pada matriks B lakukan langkah 27 s/d 28.

  27. Tambahkan nilai pada matriks_c indeks ke-i ke-k dengan hasil kali dari nilai pada mat_a pada indeks ke-i ke-j dengan nilai pada mat_b pada indeks ke-j ke-k kemudian nyatakan ke mat_c pada indeks ke-j ke-k.

  28. Tambahkan nilai pada j dengan 1.

  29. Tambahkan nilai pada k dengan 1.

  30. Tambahkan nilai pada i dengan 1

  31. Isi i dengan 0.

  32. Selama nilai i kurang dari jumlah baris pada matriks A lakukan langkah 33 s/d 37.

  33. Isi k dengan 0.

  34. Selama nilai k kurang dari jumlah kolom pada matriks B lakukan langkah 35 s/d 36.

  35. Cetak nilai pada mat_c indeks ke-i ke-k.

  36. Tambahkan nilai pada variabel k dengan 1.

  37. Tambahkan nilai pada variabel i dengan 1.

  38. Tanya apakah user masih ingin mengalikan dua buah matriks.

  39. Bila jawabannya iya, maka kembali ke langkah ke-2.

  40. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  41. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 38).

Flowchart :