Post on 02-Feb-2022
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 (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