matriks(python) - cdn-edunex.itb.ac.id

29
Matriks (Python) Tim Penyusun Materi Pengenalan Komputasi Institut Teknologi Bandung © 2019

Upload: others

Post on 02-Feb-2022

69 views

Category:

Documents


2 download

TRANSCRIPT

Matriks (Python)

TimPenyusun Materi Pengenalan KomputasiInstitut Teknologi Bandung©2019

Tujuan

• Mahasiswa mampu:• Menjelaskan definisi dankegunaan array• Menggunakan menggunakan notasi pendefinisian danpengacuan arraydengan benar• Melakukan pemrosesan sekuensial padaarray

12/11/20 PengenalanKomputasi 2

Definisi

• Matriks:• Sekumpulan informasi yangsetiap individu elemennya terdefinisi berdasarkandua buah indeks (yangbiasanya dikonotasikan dengan baris dan kolom)

• Setiap elemen matriks dapat diakses secara langsung jika kedua indeksdiketahui.

• Setiap elemen matriks mempunyai typeyanghomogen• Indeks baris dan kolom harus bertype yangmempunyai keterurutan(suksesor/predesesor),misalnya integer.

• Matriks adalah struktur datadengan memori internal.Struktur inipraktis untuk dipakai tetapi memakan memori!• Matriks integer100x100memakan 10000xtempat penyimpanan integer.

12/11/20 PengenalanKomputasi 3

Contoh-1

• MatUkur• Indeks(i,j)merepresentasikansuatutitikkoordinat• Elemenmatriksmerepresentasikanhasilpengukuranpadasuatutitikkoordinattertentu

• Indeksbaris:1s.d.5,indekskolom:1s.d.5• Elemenmatriksber-typereal

12/11/20 PengenalanKomputasi 4

Contoh-2

• MatSat• Merupakan matriks dengan elemen bernilai hanya 0atau 1• Indeks baris :1s.d. 4;indeks kolom 1s.d. 4• Elemen matriks ber-typeinteger

12/11/20 PengenalanKomputasi 5

1 2 3 41 1 0 0 02 0 1 0 03 0 0 1 04 0 0 0 1

Contoh Pemakaian

• Operasi“biasa”matriksdalammatematika:penjumlahan,perkalian,menentukandeterminan,menginverssebuahmatriks,transpose,dll.• Semua"perhitungan"itumenjaditidakprimitif,harusdiprogram

• Sistempersamaanlinierdanoperationalresearch• Persoalanalgoritmik:untukmenyimpaninformasiyangcirinyaditentukanoleh2dimensi(diterjemahkandalambarisdankolom).Contoh:cell padasebuahspreadsheet, ruangan gedungbertingkat

12/11/20 PengenalanKomputasi 6

Implementasi Matriks di Python (1)

• Memori matriks diimplementasikan sebagai array2dimensi• Suatu elemen matriks diakses dengan indeks baris dan kolombertype integer• Elemen matriks dideklarasikan memiliki typeyangsama(homogen)

12/11/20 PengenalanKomputasi 7

Cara Deklarasi (1)

• Caradeklarasi sekaligus inisialisasi nilai matriks ukuran nxm:<nama-var> = [[<val-11>,<val-12>,…,<val-1m>],

[<val-11>,<val-12>,…,<val-1m>],

[<val-n1>,<val-n2>,…,<val-nm>)]

• Akandideklarasikan arraydengan ukuran sebesar nxm• Typeelemen tergantung pada nilai yangdiberikan

12/11/20 PengenalanKomputasi 8

Contoh Matriks-1

MatSatuan = [[0,1,0,1,1,1,0],[1,1,1,1,0,1,1],[0,0,0,1,1,0,1]]

Matriks bernama MatSatuan dengan setiap elemen bertype integer,dengan ukuran baris =3danukuran kolom =7;dengan alamatsetiap elemen diakses melalui indeks baris 0s.d. 2danindeks kolom0s.d. 6.

12/11/20 PengenalanKomputasi 9

Cara Deklarasi (2)

• Caradeklarasi:

• Akandideklarasikan arraydengan ukuran nxm.• Setiap elemen diberikan nilai 0.• Typeelemen integer

12/11/20 PengenalanKomputasi 10

<nama-var>=[[<default-val>for j inrange(<m>)]fori inrange(<n>)]

Contoh Matriks 2

Matriks bernama MatValue dengan setiap elemen bertype integer,dengan ukuran baris =3danukuran kolom =4;dengan alamatsetiap elemen diakses melalui indeks baris 0s.d. 2danindeks kolom0s.d. 3dansetiap elemen diberi nilai 0.

12/11/20 PengenalanKomputasi 11

MatValue =[[0for j inrange(4)]fori inrange(3)]

Implementasi Matriks di Python (3)

• Caraakses elemen matriks:<namamatriks>[<nbrs>][<nkol>]

• Contoh:M1dengan datasbb:

print(M1[4][0])#akan tercetak:21x=M1[0][0]*M1[3][3]#xbernilai 19M1[1][1]=8 #Elemen brs.1,kol.1menjadi 8M1[0][5]?? #tidak terdefinisi!Tidak ada kolom dengan indeks =5

12/11/20 PengenalanKomputasi 12

0 1 2 3 40 1 2 3 4 51 6 7 8 9 102 11 12 13 14 153 16 17 18 19 204 21 22 23 24 25

Pemrosesan Matriks

12/11/20 PengenalanKomputasi 13

Mengisi/InputMatriks

PemrosesanMatriks

OutputHasilPemrosesanMatriks

Mulai

Selesai

Pemrosesan Dasar Matriks

12/11/20PengenalanKomputasi 14

Loop-per-baris

iß first-index-baris

Loopperkolom

iß i +1

false

true

i <last-index-baris

i traversal [first-index-baris..last-index-baris]

j traversal [first-index-kolom..last-index-kolom]

{ Proses Element ke [i,j] }...

Pseudocode:

Flowchart:

jß first-index-kolom

j≤last-index-kolom

ProsesElmt ke [i,j]

false

true

jß j+1

Operasi-Operasi pada Matriks

• Mendeklarasikandanmendefinisikanisimatriks• Menuliskanisimatrikskelayar• Operasi1matriks:• Menghitungtotalsemuaelemenmatriks• Mengalikanisimatriksdengansebuahkonstanta• Transposematriks

• Operasi2matriks:• Menambahkanduamatriks• Mengalikanduamatriks

12/11/20 PengenalanKomputasi 15

Isi dan Tulis Matriks (1)

• Deklarasi matriks daninisialisasi ukuran baris dankolom• Membaca isi matriks darihasil kalkulasi• Menampilkan ke layar

12/11/20 PengenalanKomputasi 16

# Program IsiMatriks;# Isi matriks dan menulis ke layar

# KAMUS # M : matriks of integer# NBrs, NKol : int (ukuran brs & kol) # i, j : int (indeks)

# ALGORITMA

# deklarasi matriksNBrs = 5; NKol = 5; M = [[0 for j in range(NKol)] for i in range(NBrs)]

# Mengisi matriks ukuran NBrsxNKol for i in range (NBrs):

for j in range (NKol):M[i][j] = i * j

# Menuliskan isi matriks ke layar for i in range (NBrs):

for j in range (NKol):print(str(M[i][j])+" ", end='')

print() # print hanya enter

Printtanpaenter

Isi dan Tulis Matriks (2)Bagian Tulis Matriks

12/11/20PengenalanKomputasi 17

Loop-per-baris

iß 0

Loopperkolom

iß i +1

false

true

i <NBrs

...{ Menuliskan isi matriks ke layar }i traversal [0..NBrs-1]

j traversal [0..Nkol-1]{ Tulis Element ke [i,j] }output(M[i][j])

...

Pseudocode:

Flowchart:

jß 0

j<NKol

output(M[i][j])

false

true

jß j+1

Bagian kode yanglainsilakan dibuat sebagai latihan

Note• Untuk contoh-contoh selanjutnya,hanyadisediakan kode programPython• Silakan membuat flowchart danpseudocodeyangbersesuaian silakan dibuat sebagailatihan.

Baca dan TulisMatriks• Deklarasi matriks• Inisialisasi ukuran barisdankolom darimasukan user• Membaca isi matriksdari user• Menampilkan isimatriks ke layar

12/11/20 PengenalanKomputasi 19

# Program BacaMatriks;# Baca isi matriks dari pengguna dan menulis ke layar # KAMUS # M : matriks of integer# NBrs, NKol : int (ukuran brs & kol) # i, j : int (indeks)

# ALGORITMA

# deklarasi matriksNBrs = 5; NKol = 5; M = [[0 for j in range(NKol)] for i in range(NBrs)]

# Mengisi matriks ukuran NBrsxNKol for i in range (NBrs):

for j in range (NKol):M[i][j] = int(input("Elemen ke-["+str(i)+","+str(j)+"] = "))

# Menuliskan isi matriks ke layar for i in range (NBrs):

for j in range (NKol):print(str(M[i][j])+" ", end='') # print tanpa enter

print() # print hanya enter

Sum Element Matriks

• Menjumlahkan seluruhelemen yangada dimatriksdanmenampilkan hasilnya kelayar

12/11/20 PengenalanKomputasi 20

# Program SumElmt# Menjumlahkan isi elemen matriks ke layar # KAMUS # M : matriks of integer# NBrs, NKol : int (ukuran brs & kol) # i, j : int (indeks)# sum : int (jumlah elemen)

# ALGORITMA

# deklarasi matriks# Mengisi matriks ukuran NBrsxNKol # Buat sebagai latihan

# Menjumlahkan elemen Msum = 0for i in range (NBrs):

for j in range (NKol):sum = sum + M[i][j]

# Cetak nilai sumprint(sum)

Latihan-1

• Buatlah programyangmembaca sebuah matriks dengan elemeninteger,misalnya M,danmasukan sebuah nilai integer,misalnya Xdanselanjutnya mengalikan setiap elemen matriks Mdengan X.• Buatlah kode Pythondanflowchart/pseudocode(sesuai arahandosen kelas).

12/11/20 PengenalanKomputasi 21

Latihan-1

12/11/20 PengenalanKomputasi 22

# Program KaliKons# Mengalikan setiap elemen matriks dengan faktor pengali # KAMUS # M : matriks of integer# NBrs, NKol : int (ukuran brs & kol) # i, j : int (indeks)# x : int (faktor elemen)

# ALGORITMA# deklarasi matriks# Mengisi matriks ukuran NBrsxNKol # Buat sebagai latihan

# Input xx = int(input("Faktor pengali = "))

# Menjumlahkan elemen Mfor i in range (NBrs):

for j in range (NKol):M[i][j] = M[i][j] * x

# Mencetak matriks baru ke layar# Buat sebagai latihan

• ProgramPython

Transpose Matriks (1)

• Dideklarasikan 2buah matriks,misalnya MdanMTranspose• MTranspose menampung hasil transposedari M• Ukuran baris M=ukuran kolom MTranspose• Ukuran kolom M=ukuran baris Mtranspose

• Mtranspose[i][j]=M[j][i]

12/11/20 PengenalanKomputasi 23

Transpose Matriks (2)• ProgramPython

12/11/20 PengenalanKomputasi 24

# Program Transpose# Transpose Matriks

# KAMUS # M : matriks of integer# NBrs, NKol : int (ukuran brs & kol)# MT : matriks of integer (matriks hasil transpose)# NBrsT, NKolT : int (ukuran brs & kol hasil transpose) # i, j : int (indeks)

# ALGORITMA

# Deklarasi matriks M# Mengisi matriks ukuran NBrsxNKol# Buat sebagai latihan

# Deklarasi MTNBrsT = NKol; NKolT = NBrs;MT = [[0 for j in range(NKolT)] for i in range(NBrsT)]

# Isi MT dengan hasil transpose Mfor i in range (NBrsT):

for j in range (NKolT):MT[i][j] = M[j][i]

# Mencetak matriks MT ke layar# Buat sebagai latihan

Menjumlahkan 2 Matriks (1)

• Deklarasi 3matriks,misal M1,M2,danMHasil• 2matriks M1danM2bisa dijumlahkan jika dimensinya sama,yaitu:• Ukuran baris M1=ukuran baris M2• Ukuran kolom M1=ukuran kolom M2

• Hasilditampung diMHasil:MHasil[i][j]=M1[i][j]+M2[i][j]

• Mengurangi M1dengan M2secara prinsip sama denganmenjumlahkan M1dengan M2

12/11/20 PengenalanKomputasi 25

Menjumlahkan 2 Matriks (2)Program Python

12/11/20 PengenalanKomputasi 26

# Program Transpose# Transpose Matriks# KAMUS # M1, M2 : matriks of integer# NBrs1, NKol1 : int (ukuran brs & kol M1)# NBrs2, NKol2 : int (ukuran brs & kol M2)# MH : matriks of integer (matriks hasil penjumlahan)# NBrsH NKolH : int (ukuran brs & kol hasil penjumlahan) # i, j : int (indeks)

# ALGORITMA# Deklarasi matriks M1 dan Mengisi matriks M1 ukuran NBrs1xNKol1# Buat sebagai latihan1# Deklarasi matriks M2 dan Mengisi matriks M2 ukuran NBrs2xNKol2# Buat sebagai latihan

# Deklarasi MHNBrsH = NBrs1; NKolH = NKol1;MH = [[0 for j in range(NKolH)] for i in range(NBrsH)]

# Isi MH dengan hasil penjumlahan M1+M2for i in range (NBrsH):

for j in range (NKolH):MH[i][j] = M1[i][j] + M2[i][j]

# Mencetak MH ke layar# Buat sebagai latihan

Mengalikan 2 Matriks (1)

• Deklarasi 3matriks,misal M1,M2,danMHasil• 2matriks M1danM2bisa dikalikan jika:• Ukuran kolom M1=ukuran baris M2

• MHasil menampung hasil perkalian antara M1danM2• Ukuran baris MHasil =ukuran baris M1• Ukuran kolom MHasil =ukuran kolom M2

12/11/20 PengenalanKomputasi 27

Mengalikan 2 Matriks (2)

• Beberapa contoh:

12/11/20 PengenalanKomputasi 28

Mengalikan 2 Matriks (3)Program Python

12/11/20 PengenalanKomputasi 29

# Program KaliMatriks# Perkalian matriks M1 dengan M2# KAMUS # M1, M2 : matriks of integer# NBrs1, NKol1 : int (ukuran brs & kol M1)# NBrs2, NKol2 : int (ukuran brs & kol M2)# MH : matriks of integer (matriks hasil perkalian)# NBrsH NKolH : int (ukuran brs & kol hasil perkalian) # i, j, k : int (indeks)

# ALGORITMA# Deklarasi matriks M1 dan Mengisi matriks M1 ukuran NBrs1xNKol1# Buat sebagai latihan# Deklarasi matriks M2 dan Mengisi matriks M2 ukuran NBrs2xNKol2# Buat sebagai latihan

# Deklarasi MHNBrsH = NBrs1; NKolH = NKol2;MH = [[0 for j in range(NKolH)] for i in range(NBrsH)]

# Isi MH dengan hasil perkalian M1 dan M2for i in range (NBrsH):

for j in range (NKolH):MH[i][j] = 0for k in range (NKol1):

MH[i][j] = MH[i][j] + (M1[i][k]*M2[k][j])

# Mencetak MH ke layar# Buat sebagai latihan