ku1071 matriks pascal 111015

27
KU1072/Pengenalan Teknologi Informasi B Tahap T ahun Pertama Bersama Institut Teknologi Bandung Matriks (dalam Bahasa Pascal) Tim Pengajar KU1072

Upload: anton-io

Post on 11-Feb-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KU1071 Matriks Pascal 111015

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

Page 2: KU1071 Matriks Pascal 111015

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

Page 3: KU1071 Matriks Pascal 111015

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

Page 4: KU1071 Matriks Pascal 111015

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

Page 5: KU1071 Matriks Pascal 111015

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

Page 6: KU1071 Matriks Pascal 111015

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

Page 7: KU1071 Matriks Pascal 111015

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

Page 8: KU1071 Matriks Pascal 111015

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

Page 9: KU1071 Matriks Pascal 111015

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

Page 10: KU1071 Matriks Pascal 111015

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

Page 11: KU1071 Matriks Pascal 111015

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

Page 12: KU1071 Matriks Pascal 111015

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;

Page 13: KU1071 Matriks Pascal 111015

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

Page 14: KU1071 Matriks Pascal 111015

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

Page 15: KU1071 Matriks Pascal 111015

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

Page 16: KU1071 Matriks Pascal 111015

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

Page 17: KU1071 Matriks Pascal 111015

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.

Page 18: KU1071 Matriks Pascal 111015

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.

Page 19: KU1071 Matriks Pascal 111015

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.

Page 20: KU1071 Matriks Pascal 111015

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.

Page 21: KU1071 Matriks Pascal 111015

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

Page 22: KU1071 Matriks Pascal 111015

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.

Page 23: KU1071 Matriks Pascal 111015

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

Page 24: KU1071 Matriks Pascal 111015

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.

Page 25: KU1071 Matriks Pascal 111015

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

Page 26: KU1071 Matriks Pascal 111015

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

Page 27: KU1071 Matriks Pascal 111015

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.