ku1071 matriks pascal 111015
TRANSCRIPT
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 1/27
KU1072/Pengenalan Teknologi Informasi B
Tahap Tahun Pertama Bersama
Institut Teknologi Bandung
Matriks
(dalam Bahasa Pascal)Tim Pengajar KU1072
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 2/27
Tujuan Perkuliahan
• Mahasiswa memahami matriks dan representasinya
sebagai array of array
• Mahasiswa dapat menggunakan notasi pendefinisian
dan pengacuan matriks dengan benar• Mahasiswa dapat melakukan beberapa operasi dasar
terkait matriks
• Mahasiswa dapat membuat program dengan
menggunakan matriks
2015/10/13 Tim PTI B/Sem. I 2013/2014 2
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 3/27
Definisi
• Matriks: – Sekumpulan informasi yang setiap individu elemennya
terdefinisi berdasarkan dua buah indeks (yang biasanyadikonotasikan dengan baris dan kolom)
– Setiap elemen matriks dapat diakses secara langsung jika
kedua indeks diketahui. – Setiap elemen matriks mempunyai type yang homogen
– Indeks baris dan kolom harus bertype yang mempunyaiketerurutan (suksesor/predesesor), misalnya integer.
• Matriks adalah struktur data dengan memori internal.
Struktur ini praktis untuk dipakai tetapi memakan memori! – Matriks integer 100 x 100 memakan 10000 x tempat penyimpanan
integer.
12-Jun-13 Tim PTI B/Sem. I 2013/2014 3
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 4/27
Memori Matriks (1/2)
• Matriks adalah struktur data statik (ukurannya ditentukan dariawal)
• Untuk keperluan ini, sering kali memori dipesan berlebihanuntuk kemudian dipakai sebagian saja
12-Jun-13 Tim PTI B/Sem. I 2013/2014 4
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 5/27
Contoh-1
• MatNamaHari
– Merepresentasikan nama hari ke-1 s.d. 7 dalam 3 bahasa
(Indonesia, Inggris, Prancis)
– Indeks baris : 1 s.d. 7; indeks kolom : 1 s.d. 3
– Elemen matriks ber-type string
12-Jun-13 Tim PTI B/Sem. I 2013/2014 5
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 6/27
Contoh-2
• MatUkur
– Indeks (i, j) merepresentasikan suatu titik koordinat
– Elemen matriks merepresentasikan hasil pengukuran pada
suatu titik koordinat tertentu
– Indeks baris : 1 s.d. 5, indeks kolom : 1 s.d. 5
– Elemen matriks ber-type real
12-Jun-13 Tim PTI B/Sem. I 2013/2014 6
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 7/27
Contoh-3
• MatSat
– Merupakan matriks satuan, yaitu matriks dengan elemen
bernilai hanya 0 atau 1
– Indeks baris : 1 s.d. 4; indeks kolom 1 s.d. 4
– Elemen matriks ber-type integer
12-Jun-13 Tim PTI B/Sem. I 2013/2014 7
1 2 3 4
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 8/27
Contoh-4
• MatSurvey: – Matriks hasil survey pada titik kordinat.
– Setiap elemen matriks merepresentasikan hasilpengukuran <temperatur, kecepatan angin> pada titikkoordinat (i, j)
12-Jun-13 Tim PTI B/Sem. I 2013/2014 8
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 9/27
Contoh Pemakaian
• Operasi “biasa” matriks dalam matematika :penjumlahan, perkalian, menentukan determinan,menginvers sebuah matriks, transpose, dll. – Semua "perhitungan" itu menjadi tidak primitif, harus
diprogram
• Sistem persamaan linier dan operational research
• Persoalan algoritmik: untuk menyimpan informasiyang cirinya ditentukan oleh 2 dimensi(diterjemahkan dalam baris dan kolom).Contoh: cell pada sebuah spreadsheet , ruangan
gedung bertingkat
12-Jun-13 Tim PTI B/Sem. I 2013/2014 9
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 10/27
Implementasi Matriks di Pascal (1)
• Memori matriks diimplementasikan sebagai array 2
dimensi
• Suatu elemen matriks diakses dengan indeks baris dan
kolom bertype integer
• Elemen matriks dideklarasikan memiliki type yang sama
(homogen)
• Cara deklarasi:
<namamatriks> : array [<brsmin>..<brsmax] ofarray [<kolmin>..<kolmax>] of <typeelemen>;
12-Jun-13 Tim PTI B/Sem. I 2013/2014 10
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 11/27
Implementasi Matriks di Pascal (2)
• Contoh:
MatSatuan : array [1..10] of array [1..10] of integer;
Matriks bernama MatSatuan dengan setiap elemen
bertype integer, dengan banyaknya baris = 10 dan
banyaknya kolom = 10; dengan alamat setiap elemen
diakses melalui indeks baris 1 s.d. 10 dan indekskolom 1 s.d. 10.
12-Jun-13 Tim PTI B/Sem. I 2013/2014 11
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 12/27
Implementasi Matriks di Pascal (3)
• Cara akses elemen matriks:
<namamatriks>[<brs>][<kol>]
• Contoh:
writeln(M1[5][1]); { akan tercetak: 21 }
x := M1[1][1] * M1[4][4]; { x bernilai 19 }
M1[2][2] := 8; { Elemen brs. 2, kol. 2 menjadi 8 }
M1[0][5] ?? { tidak terdefinisi! Tidak ada baris ke-0 }
12-Jun-13 Tim PTI B/Sem. I 2013/2014 12
1 2 3 4 5
1 1 2 3 4 5
2 6 7 8 9 10
3 11 12 13 14 154 16 17 18 19 20
5 21 22 23 24 25
M1 : array [1..5] ofarray [1..5] of integer;
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 13/27
Implementasi Matriks di Pascal (4)
• Hanya sebagian dari memori matriks yang akan
benar-benar digunakan untuk menyimpan elemen
matriks
• Contoh: deklarasi matriks 10x10, namun yang secara
aktual dipakai hanya 4x3
12-Jun-13 Tim PTI B/Sem. I 2013/2014 13
1 2 3 4 5 6 7 8 9 10
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
56
7
8
9
10
Sekali matriks
didefinisikan
dimungkinkan
berubahukuran baris
dan kolomnya
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 14/27
Implementasi Matriks di Pascal (5)
• Dibutuhkan:
– Banyaknya baris efektif
(misal NBrs) : banyaknya
baris yang dipakai
– Banyaknya kolom efektif (misal NKol) : banyaknya
kolom yang dipakai
• Elemen matriks yang
boleh diakses hanya yangdipakai
12-Jun-13 Tim PTI B/Sem. I 2013/2014 14
1 2 3 4 5 6 7 8 9 10
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5
6
7
8
9
10
NBrs = 4
NKol = 3
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 15/27
Pemrosesan Matriks
2015/10/13KU1072/Pengenalan Teknologi
Informasi B15
Mengisi/InputMatriks
Pemrosesan
Matriks
Output Hasil
Pemrosesan
Matriks
Mulai
Selesai
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 16/27
Operasi-Operasi pada Matriks
• Mendeklarasikan dan mendefinisikan isi matriks
• Menuliskan isi matriks ke layar
• Operasi 1 matriks:
– Menghitung total semua elemen matriks – Mengalikan isi matriks dengan sebuah konstanta
– Transpose matriks
• Operasi 2 matriks:
– Menambahkan dua matriks – Mengalikan dua matriks
12-Jun-13 Tim PTI B/Sem. I 2013/2014 16
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 17/27
Mengisi dan
Menuliskan IsiSebuah Matriks
• Deklarasi matriks
dan inisialisasi
baris+kolom efektif • Membaca isi
matriks dari hasil
kalkulasi
• Menampilkan kelayar
12-Jun-13 Tim PTI B/Sem. I 2013/2014 17
Program IsiMatriks;
{ Isi matriks dan menulis ke layar }
{ KAMUS }
var
M : array [1..10] of array [1..10] of
integer; { Deklarasi matriks }
NBrs, NKol : integer; { Brs & kol efektif }i, j : integer; { indeks }
{ ALGORITMA }
begin
{ Mengisi matriks }
NBrs := 5; NKol := 5;
for i:=1 to NBrs do
begin
for j:=1 to NKol dobegin
M[i][j] := i*j;
end;
end;
{ Menuliskan isi matriks ke layar }
for i:=1 to NBrs do
begin
for j:=1 to NKol dobegin
write (M[i][j], ' ');
end;
writeln; { ganti baris }
end;
end.
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 18/27
Membaca dan
Menuliskan IsiSebuah Matriks
• Deklarasi matriks
• Inisialisasi
baris+kolom efektifdari masukan user
• Membaca isi
matriks dari user
• Menampilkan isimatriks ke layar
12-Jun-13 Tim PTI B/Sem. I 2013/2014 18
Program IsiMatriks2;
{ Isi sebuah matriks dari masukan pengguna dan
menuliskan isinya }
{ KAMUS }
var
M : array [1..10] of array [1..10] of integer;
{ Deklarasi matriks }
NBrs, NKol : integer; { Brs & kol efektif }i, j : integer; { indeks }
{ ALGORITMA }
begin
write('Baris efektif = '); readln(NBrs);
write('Kolom efektif = '); readln(NKol);
{ Asumsi NBrs dan NKol selalu benar }
{ Membaca isi matriks }
for i:=1 to NBrs do
begin
for j:=1 to NKol do
begin
write('Elemen ke-[',i,',',j,'] = ');
readln(M[i][j]);
end;
end;
{ Menuliskan isi matriks ke layar }
for i:=1 to NBrs do
begin
for j:=1 to NKol dobegin
write(M[i][j], ' ');
end;
writeln; { ganti baris }
end;
end.
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 19/27
Menghitung
Total Elemen
• Men-total seluruh
elemen yang ada di
matriks danmenampilkan
hasilnya ke layar
12-Jun-13 Tim PTI B/Sem. I 2013/2014 19
Program SumElement;
{ Menjumlahkan semua elemen matriks }
{ KAMUS }
var
M : array [1..10] of array [1..10] of
integer; { Deklarasi matriks }NBrs, NKol : integer; {brs+kol efektif}
i, j : integer; { indeks }
sum : integer;
{ ALGORITMA }
Begin
{ M diasumsikan sudah diisi }
{ Menghitung sum elemen }
sum := 0;
for i:=1 to NBrs do
begin
for j:=1 to NKol do
begin
sum := sum + M[i][j];
end;end;
{ Menuliskan hasil sum ke layar }
writeln('Total semua elemen = ', sum);
end.
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 20/27
Mengalikan
ElemenMatriks dgn
Konstanta
• Setiap elemen
matriks dikalikandengan suatu
nilai, misal x
12-Jun-13 Tim PTI B/Sem. I 2013/2014 20
Program KaliKons;
{ Mengalikan isi matriks dengan sebuah konstanta
}
{ KAMUS }
var
M : array [1..10] of array [1..10] of
integer; { Deklarasi matriks }
NBrs, NKol : integer; {brs+kol efektif}
i, j : integer; { indeks }
x : integer; { faktor pengali }
{ ALGORITMA }
begin
{ M diasumsikan sudah diisi }
{ Mengalikan elemen matriks dengan x }write('Faktor pengali = '); readln(x);
for i:=1 to NBrs do
begin
for j:=1 to NKol do
begin
M[i][j] := M[i][j] * x;
end;
end;
{ Menuliskan matriks baru ke layar : buat
sebagai latihan }
end.
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 21/27
Transpose Matriks (1)
• Dideklarasikan 2 buah matriks, misalnya M dan MT
• MT menampung hasil transpose dari M
– Ukuran baris efektif M = ukuran kolom efektif MT
– Ukuran kolom efektif M = ukuran baris efektif MT
• MT[i][j] = M[j][i]
12-Jun-13 Tim PTI B/Sem. I 2013/2014 21
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 22/27
Transpose Matriks (2)
12-Jun-13 Tim PTI B/Sem. I 2013/2014 22
Program TransposeMatriks;
{ Transpose Matriks }
{ KAMUS }
varM : array [1..10] of array [1..10] of integer; { Matriks }
NBrs1, NKol1 : integer; { Baris dan kolom efektif M }
MT : array [1..10] of array [1..10] of integer; { Matriks hasil transpose }
NBrs2, NKol2 : integer; { Baris dan kolom efektif MT }
i, j : integer; { indeks }
{ ALGORITMA }
begin
{ Membaca isi matriks M : Buat sebagai latihan }
{ Deklarasi dan pengisian MT }
NBrs2 := NKol1; NKol2 := NBrs1;
for i:=1 to NBrs2 do
begin
for j:=1 to NKol2 do
begin
MT[i][j] := M[j][i]; { transpose }end;
end;
{ Menuliskan hasil transpose ke layar : Buat sebagai latihan }
end.
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 23/27
Menjumlahkan 2 Matriks (1)
• Deklarasi 3 matriks, misal M1, M2, dan MHasil
• 2 matriks M1 dan M2 bisa dijumlahkan jika
dimensinya sama, yaitu:
– Ukuran baris efektif M1 = ukuran baris efektif M2
– Ukuran kolom efektif M1 = ukuran kolom efektif M2
• Hasil ditampung di MHasil:
MHasil[i][j] = M1[i][j] + M2[i][j]
12-Jun-13 Tim PTI B/Sem. I 2013/2014 23
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 24/27
Menjumlahkan 2 Matriks (2)
12-Jun-13 Tim PTI B/Sem. I 2013/2014 24
Program Sum2Matriks;
{ Menjumlahkan isi 2 matriks }
{ KAMUS }
var
M1 : array [1..10] of array [1..10] of integer; NBrs1, NKol1 : integer;
M2 : array [1..10] of array [1..10] of integer; NBrs2, NKol2 : integer;
MHasil : array [1..10] of array [1..10] of integer;
NBrsHsl, NKolHsl : integer;
i, j : integer; { indeks }
{ ALGORITMA }
begin
{ Membaca isi matriks M1 dan M2 : Buat sebagai latihan }
{ Deklarasi dan pengisian MHasil }
NBrsHsl := NBrs1; NKolHsl := NKol1;
for i:=1 to NBrsHsl do
begin
for j:=1 to NKolHsl do
begin
MHasil[i][j] := M1[i][j] + M2[i][j]; { penjumlahan }end;
end;
{ Menuliskan hasil penjumlahan ke layar : Buat sebagai latihan }
end.
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 25/27
Mengalikan 2 Matriks (1)
• Deklarasi 3 matriks, misal M1, M2, dan MHasil
• 2 matriks M1 dan M2 bisa dikalikan jika:
– Ukuran kolom efektif M1 = ukuran baris efektif M2
• MHasil menampung hasil perkalian antara M1 danM2
– Ukuran baris efektif MHasil = ukuran baris efektif M1
– Ukuran kolom efektif MHasil = ukuran kolom efektif M2
12-Jun-13 Tim PTI B/Sem. I 2013/2014 25
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 26/27
Mengalikan 2 Matriks (2)
• Beberapa contoh:
12-Jun-13 Tim PTI B/Sem. I 2013/2014 26
7/23/2019 KU1071 Matriks Pascal 111015
http://slidepdf.com/reader/full/ku1071-matriks-pascal-111015 27/27
Mengalikan 2 Matriks (3)
12-Jun-13 Tim PTI B/Sem. I 2013/2014 27
Program Kali2Matriks;
{ Mengalikan isi 2 matriks }
{ KAMUS }
var
M1 : array [1..10] of array [1..10] of integer; NBrs1, NKol1 : integer;
M2 : array [1..10] of array [1..10] of integer; NBrs2, NKol2 : integer;
MHasil : array [1..10] of array [1..10] of integer;
NBrsHsl, NKolHsl : integer;
i, j : integer; { indeks }
{ ALGORITMA }
begin
{ Membaca isi matriks M1 dan M2 : Buat sebagai latihan }
{ Deklarasi dan pengisian MHasil dengan perkalian M1 dan M2 }NBrsHsl := NBrs1; NKolHsl := NKol2;
for i:=1 to NBrsHsl do
begin
for j:=1 to NKolHsl do
begin
MHasil[i][j] := 0; { PROSES PERKALIAN }
for k:=1 to NKol1 do
beginMHasil[i][j] := MHasil[i][j] + (M1[i][k] * M2[k][j]);
end;
end;
end;
{ Menuliskan hasil perkalian ke layar : Buat sebagai latihan }
end.