4:52 PM
0
Pada postingan kali ini mencakup pembelajaran pada Modul VI mengenai Array 2-dimensi, Pointer dan Struktur. Disini saya hanya menjelaskan secara singkat mengenai penerapan Array 2-Dimensi yang diterapkan pada pembuatan program perhitungan matrik 2x2 dengan menu-menu seperti pertambahan, pengurangan, perkalian, dan pembagian yang diterapkan pada bahasa pemrograman C.
Berikut Video dari proses pembuatan perhitungan matrik (No.Reg = 19 % 4 = 3):



Coding (Tugs VI 1)
Source Code:
1.  #include <stdio.h>     //pemanggilan header standard input output
2.  #include <stdlib.h>    //pemanggilan header standard library
3.   
4.  int main(void)   //fungsi utama
5.  {
6.     float mat_a [2][2], mat_b [2][2], hasil[2][2], detB, mat_b_invers[2][2;   //deklarasi matrik array 2 dimensi
7.     int pilih,i,j,k,keluar=1;
8.   
9.     do{
10.    printf("PERHITUNGAN MATRIX\n");
11.    printf("[1]penjumlahan\n[2]pengurangan\n[3]perkalian\n[4]pembagian\n[0]keluar\n\n");
12.    printf("Masukkan Pilihan= ");
13.    scanf("%d",&pilih);  //menerima inputan dan menyimpan
14.   
15.    switch (pilih)       //pernyataan berdasarkan variabel inputan dari user
16.    {
17.    case 1:       //kondisi yang dijalankan jika user menginputkan angka 1
18.                        //input matrix a 2x2
19.                  for (i=0; i<2; i++)  //perulangan untuk baris
20.                  {
21.                        for (j=0; j<2; j++)  //perulangan untuk kolom
22.                        {                          printf("masukkan isi matriks A [%d][%d] ",i,j);   //meminta inputan dari user untuk isi dari setiap matrik a
23.                               scanf("%f",&mat_a[i][j]);  //menyimpan data inputan
24.                        }
25.                  }
26.                  printf("\n"); //baris baru
27.  
28.                  //input matrix b 2x2
29.                  for (i=0; i<2; i++)  //perulangan untuk baris
30.                  {
31.                        for (j=0; j<2; j++)  //perulangan untuk kolom
32.                        {
33.                               printf("masukkan isi matriks B [%d][%d] ",i,j);   //meminta inputan dari user untuk isi dari setiap matrik b
34.                               scanf("%f",&mat_b[i][j]);  //menyimpan data inputan
35.                        }
36.                  }
37.  
38.                  //pertambahan matrix
39.                  printf("\n hasil pertambahan \n\n");
40.                  for (i=0; i<2; i++)
41.                  {
42.                        for (j=0; j<2; j++)
43.                        {
44.                               hasil[i][j]=mat_a[i][j]+mat_b[i][j];     //menampilkan hasil pertambahan matrik a dan b
45.                        }
46.                  }
47.                  printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
48.                  printf("\t\t + \t\t\t =\n");
49.                  printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
50.           break;
51.  
52.    case 2:       //kondisi yang dijalankan jika user menginputkan angka 2
53.                        //input matrix a 2x2
54.                  for (i=0; i<2; i++)
55.                  {
56.                        for (j=0; j<2; j++)
57.                        {
58.                               printf("masukkan isi matriks A [%d][%d] ",i,j);
59.                               scanf("%f",&mat_a[i][j]);
60.                        }
61.                  }
62.                  printf("\n");
63.  
64.                  //input matrix b 2x2
65.                  for (i=0; i<2; i++)
66.                  {
67.                        for (j=0; j<2; j++)
68.                        {
69.                               printf("masukkan isi matriks B [%d][%d] ",i,j);
70.                               scanf("%f",&mat_b[i][j]);
71.                        }
72.                  }
73.  
74.                  //pengurangan matrix
75.                  printf("\n hasil pengurangan \n\n");
76.                  for (i=0; i<2; i++)
77.                  {
78.                        for (j=0; j<2; j++)
79.                        {
80.                               hasil[i][j]=mat_a[i][j]-mat_b[i][j];     //menampilkan hasil pengurangan matrik a dengan b
81.                        }
82.                  }
83.                  printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
84.                  printf("\t\t - \t\t\t =\n");
85.                  printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
86.           break;
87.  
88.    case 3:       //kondisi yang dijalankan jika user menginputkan angka 3
89.                  //input matrix a 2x2
90.                  for (i=0; i<2; i++)
91.                  {
92.                        for (j=0; j<2; j++)
93.                        {
94.                               printf("masukkan isi matriks A [%d][%d] ",i,j);
95.                               scanf("%f",&mat_a[i][j]);
96.                        }
97.                  }
98.                  printf("\n");
99.  
100.                         //input matrix b 2x2
101.                         for (i=0; i<2; i++)
102.                         {
103.                               for (j=0; j<2; j++)
104.                               {
105.                                      printf("masukkan isi matriks B [%d][%d] ",i,j);
106.                                      scanf("%f",&mat_b[i][j]);
107.                               }
108.                         }
109.     
110.                         //perkalian matrix
111.                         printf("\n hasil perkalian matrik A dan B \n\n");
112.                         //proses mencari hasil perkalian matrix
113.                         for(i=0; i<2; i++)
114.                         {
115.                               for (j=0; j<2; j++)
116.                               {
117.                                      for (k=0; k<2; k++)
118.                              
119.           hasil[i][j]=mat_a[i][k]*mat_b[k][j]+mat_a[k][i]*mat_b[k][j];
120.                               }
121.                         }
122.     
123.                         //menampilkan hasil perkalian matrix a dan matrix b
124.                         //printf("= \n\n");
125.                         for(i=0;i<2;i++)
126.                         {
127.                               for(j=0;j<2;j++)
128.                               {
129.                                      hasil[i][j]=0;
130.     
131.                               for(k=0;k<2;k++)
132.                                      {
133.                                     
134.           hasil[i][j]=hasil[i][j]+mat_a[i][k]*mat_b[k][j];
135.                                      }
136.                               }
137.                         }
138.                         printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
139.                         printf("\t\t x \t\t\t =\n");
140.                         printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
141.                  break;
142.     
143.           case 4:       //kondisi yang dijalankan jika user menginputkan angka 4
144.                  //input matrix a 2x2
145.                         for (i=0; i<2; i++)
146.                         {
147.                               for (j=0; j<2; j++)
148.                               {
149.                                      printf("masukkan isi matriks A [%d][%d] ",i,j);
150.                                      scanf("%f",&mat_a[i][j]);
151.                               }
152.                         }
153.                         printf("\n");
154.     
155.     
156.                         //input matrix b 2x2
157.                         for (i=0; i<2; i++)
158.                         {
159.                               for (j=0; j<2; j++)
160.                               {
161.                                      printf("masukkan isi matriks B [%d][%d] ",i,j);
162.                                      scanf("%f",&mat_b[i][j]);
163.                               }
164.                         }
165.     
166.                  detB = 1/((mat_b[0][0]*mat_b[1][1])-(mat_b[0][1]*mat_b[1][0]));
167.           //mencari nilai determinan dari matrik B
168.     
169.                  mat_b_invers[0][0] = detB*mat_b[1][1];   //mencari invers setiap nilai pada matrik B
170.                  mat_b_invers[0][1] = detB*(-mat_b[0][1]);
171.                  mat_b_invers[1][0] = detB*(-mat_b[1][0]);
172.                  mat_b_invers[1][1] = detB*mat_b[0][0];
173.     
174.                  printf("\nHasil Pembagian:\n\n");
175.                  for (i=0; i<2; i++)
176.                  {
177.                         for (j=0; j<2; j++)
178.                         {
179.                               hasil[i][j]=0;
180.                               for (k=0; k<2; k++)
181.                               {
182.                                      hasil[i][j]+=mat_a[i][k]*mat_b_invers[k][j]   //mencari hasil pembagian akhir dari matrik a dan b dengan mengalikan matrik a dengan hasil invers matrik B
183.                               }
184.                         }
185.                  }
186.                  printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n",mat_a[0][0],mat_a[0][1], mat_b[0][0], mat_b[0][1], hasil[0][0], hasil[0][1]);
187.                  printf("\t\t : \t\t\t =\n");
188.                  printf("%2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \t %2.0f\t %2.0f\t \n\n\n",mat_a[1][0],mat_a[1][1], mat_b[1][0], mat_b[1][1], hasil[1][0], hasil[1][1]);
189.                  break;
190.           case 0:       //jika user menginputkan angka 0
191.                  keluar=0;     //kondisi variabel keluar bernilai 0
192.                  system("exit");      //mengeluarkan program
193.                  break;
194.           default:      //jika user menginputkn angka diluar pilihan
195.                  printf("Anda menginputkan diluar menu pilihan!!\n\n");
196.           break;
197.           }
198.     
199.           }
200.           while (keluar==1);   //mengulang kondisi diatas jika uaser menginputkan angka 1-4
201.           system("pause");     //menahan eksekusi program
202.           return(0);    //mengembalikan nlai fungsi utama yang bertipe integer
203.    }


Source code diatas merupakan source code mengenai program untuk mencari perhitungan matrik ordo 2x2 dengan operasi pertambahan, pengurangan, perkalian dan pembagian, program ini menggunakan perulangan dan case untuk menampilkan menu pilihan yang bias diakses dan dipilih oleh user, jika user memasukkan inputan yang salah pada pemilihan menu maka program akan mengulang untuk menampilkan menu pilihan pertambahan dan pengurangan memiliki cara yang sama tapi tidak dengan perkalian dan pembagian, perkalian menggunakan cara silang dan pembagian harus melewati 2 tahapan yaitu mencari determinan matrik kedua, kemudian dicari inversnya sesuai dengan rumus yang sudah ada, kemudian nilai dari matrik A dikalikan dengan hasil invers dari matrik B. Berikut merupakan hasil gambar setelah program dijalankan.


Gambar 1. Tampilan Program Soal Tugas VI 1

0 comments:

Post a Comment