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

KU1071 Matriks Pascal 111015

Feb 11, 2018

Download

Documents

Anton Io
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.