[Tips Python] 3 Trik Jitu Python Saat Bertemu Matrik

Hari Rabu sore, 12 Oktober 2016, tepatnya jam 16.27, ada pertanyaan menarik dari salah satu anggota grup WhatsApp tanyaPython (Lutfiyan Reza dari Bangkalan) tentang Operasi Aritmatika pada Matriks dalam bahasa Python. Dan kami pun, tertantang untuk menyelesaikannya….😀

tanyaPython-whatsapp

Berikut ini penjelasan kami tentang 3 Trik Jitu Saat Bertemu Matriks.

[ ATURAN MAIN ]

  1. Kita harus memahami konsep pemrograman Python tentang (1) Pengulangan: FOR , (2) Tipe Data: LIST , dan (3) Kondisi Bersyarat: IF-ELSE.
  2. Kita harus memahami konsep Pemrograman Berorientasi Objek dengan menggunakan class (optional).
  3. Kita harus memahami konsep tentang Operasi Matriks. Ada 3 (tiga) Operasi Matriks yang akan kita bahas disini adalah Penjumlahan (Add), Pengurangan (Subtract), dan Perkalian (Multiple).
  4. # Penjumlahan & Pengurangan Matriks

    matrix-add-substract-chilimath-com

        def jumlahMatrix(self):
            # proses penjumlahan Matrix
            for i in range(self.barMatA):
                for j in range(self.kolMatA):
                    self.matrix_Hasil[i][j] = self.matrix_A[i][j] + self.matrix_B[i][j]
    
        def kurangMatrix(self):
            # proses pengurangan Matrix
            for i in range(self.barMatA):
                for j in range(self.kolMatA):
                    self.matrix_Hasil[i][j] = self.matrix_A[i][j] - self.matrix_B[i][j]
    

    # Perkalian Matriks

    multiple-matrix-geeksforgeeks-org

        def kaliMatrix(self):
            # proses perkalian Matrix
            for i in range(self.barMatA):
                for j in range(self.kolMatB):
                    for k in range(self.barMatB):
                        self.matrix_Hasil[i][j] += self.matrix_A[i][k] * self.matrix_B[k][j]
    

[ LISTING PROGRAM – FULL ]

# file: tes_matrix.py
# Python 3.4


class DemoMatriks:
    def __init__(self):
        # atur nilai matrix A dan matrix B
        self.matrix_A = [[3, -2], [4, 5]]
        self.matrix_B = [[5, 1], [-1, 2]]

        # hitung ukuran baris dan kolom
        self.barMatA = len(self.matrix_A)    # jumlah baris A
        self.kolMatA = len(self.matrix_A[0]) # jumlah kolom A
        self.barMatB = len(self.matrix_B)    # jumlah baris B
        self.kolMatB = len(self.matrix_B[0]) # jumlah kolom B

        # buat matrix kosong --> hasil proses aritmatika
        self.buatMatrixHasil(self.barMatA, self.kolMatB)

        self.buatMenu()
        
    def buatMenu(self):
        Menu ="""
##########  PROGRAM ARITMATIKA MATRIKS  #######
    
Pilihan Metode Aritmatika:
<1> Penjumlahan Matriks
<2> Pengurangan Matriks
<3> Perkalian Matriks
<4> Keluar

Silahkan Pilih Menu (1-4): """

        status = 0  # mati
        while not status:
            pilihan = input(Menu)
            
            print()
            print('Pilihan Anda: ', pilihan)
            print()

            if pilihan not in '1234':
                print('Pilihan Anda SALAH! Masukkan 1 - 4.')
                print()
            else:
                if pilihan == '4':
                    status = 1  # hidup
                elif pilihan == '1':
                    self.jumlahMatrix()
                elif pilihan == '2':
                    self.kurangMatrix()
                elif pilihan == '3':
                    self.kaliMatrix()
                
                
    def buatMatrixHasil(self, baris, kolom):
        self.matrix_Hasil = []
        for i in range(baris):
            data = []
            for j in range(kolom):
                data.append(0)      # berisi data 0
            self.matrix_Hasil.append(data)
        
    def jumlahMatrix(self):
        # proses penjumlahan Matrix
        for i in range(self.barMatA):
            for j in range(self.kolMatA):
                self.matrix_Hasil[i][j] = self.matrix_A[i][j] + self.matrix_B[i][j]

        print('Matrix A: ', self.matrix_A)
        print('Matrix B: ', self.matrix_B)
        print('Matrix A + B: ', self.matrix_Hasil)
                
    def kurangMatrix(self):
        # proses pengurangan Matrix
        for i in range(self.barMatA):
            for j in range(self.kolMatA):
                self.matrix_Hasil[i][j] = self.matrix_A[i][j] - self.matrix_B[i][j]

        print('Matrix A: ', self.matrix_A)
        print('Matrix B: ', self.matrix_B)
        print('Matrix A - B: ', self.matrix_Hasil)

    def kaliMatrix(self):
        # proses perkalian Matrix
        for i in range(self.barMatA):
            for j in range(self.kolMatB):
                for k in range(self.barMatB):
                    self.matrix_Hasil[i][j] += self.matrix_A[i][k] * self.matrix_B[k][j]

        print('Matrix A: ', self.matrix_A)
        print('Matrix B: ', self.matrix_B)
        print('Matrix A x B: ', self.matrix_Hasil)


if __name__ == '__main__':
    aplikasi = DemoMatriks()

[ TAMPILAN HASIL ]

hasil

Woke!…Semoga Bermanfaat!

Salam PythonMania!

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s