makalah matriks dalam struktur data

28
TUGAS MANDIRI MATRIKS Mata Kuliah: Struktur Data Nama Mahasiswa : Parningotan Panggabean NPM : 110210225 Fakultas : Teknik Informatika Kode Kelas : 112-IF211-M1 Dosen : Heryenzus, S.Kom

Upload: parningotan-panggabean

Post on 05-Dec-2014

18.157 views

Category:

Documents


23 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Makalah Matriks dalam Struktur Data

TUGAS MANDIRI

MATRIKS

Mata Kuliah: Struktur Data

Nama Mahasiswa : Parningotan Panggabean

NPM : 110210225

Fakultas : Teknik Informatika

Kode Kelas : 112-IF211-M1

Dosen : Heryenzus, S.Kom

UNIVERSITAS PUTERA BATAM

2012

Page 2: Makalah Matriks dalam Struktur Data

KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa atas berkat rahmatNYA.Saya

bisa menyusun dan menyelesaikan makalah yang berisi tentang Matriks. Penulis

juga mengucapkan terima kasih kepada Bapak Heryenzus, S.Kom selaku dosen

mata kuliah Struktur Data di Universitas Putera Batam yang telah memberikan

bimbingannya dan memberikan materi kepada penulis sehingga penulis bisa

menyusun makalah ini dengan sebaik-baiknya.. Tak lupa penulis mengucapkan

terima kasih kepada berbagai pihak yang telah memberikan dorongan dan

motivasi dalam pembuatan makalah ini.

Penulis menyadari bahwa dalam penyusunan makalah ini masih terdapat

banyak kekurangan dan jauh dari kesempurnaan. Oleh karena itu, penulis

mengharapkan kritik serta saran yang membangun guna menyempurnakan

makalah ini dan dapat menjadi acuan dalam menyusun makalah-makalah atau

tugas-tugas selanjutnya.

Penulis juga memohon maaf apabila dalam penulisan makalah ini terdapat

kesalahan pengetikan dan kekeliruan sehingga membingungkan pembaca dalam

memahami maksud penulis.Akhir kata penulis mengucapkan Terima Kasih.

Batam , Juni 2012

Penulis

Page 3: Makalah Matriks dalam Struktur Data

DAFTAR ISI

KATA PENGANTAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

DAFTAR ISI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

BAB I PENDAHULUAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

A. Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

B. Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

BAB II PEMBAHASAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

A. Definisi Matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

B. Kamus Data Matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

C. Pemrosesan Matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

D. Matriks Jarang (Sparse Matrix) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

E. Pengalamatan Matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

F. Program Matriks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

BAB III PENUTUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

A. Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

B. Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

DAFTAR PUSTAKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Page 4: Makalah Matriks dalam Struktur Data

BAB I

PENDAHULUAN

MATRIKS

A. Latar Belakang

Matriks adalah struktur data dengan memori internal.Struktur ini praktis

untuk di pakai memakan memory ! (Matriks integer 100 x 100 memakan 10000 x

tempat penyimpanan integer).

Sering dikatakan bahwa matriks adalah tabel atau array berdimensi

2.Tetapi patut di perhatikan,bahwa pengertian “dimensi 2”, “baris dan kolom”

adalah dalam pemikiran kita.Pengaturan letak elemen matriks dalam memori

komputer selalu tetap sebagai deretan sel “linier”.Pengertian 2 dimensi ini hanya

untuk mempermudah pemrograman dalam mendesain programnya.Maka matriks

adalah salah satu contoh struktur data “lojik”.

Contoh : untuk matriks 3 x 4 sebagai berikut :

1 2 3 4

5 6 7 8

9 10 11 12

Dapat disimpan secara linier dan kontigu dengan dua alternatif sebagai berikut :

a. Perbaris

1 2 3 4 5 6 7 8 9 10 11 12

b. Perkolom

1 5 9 2 6 10 3 7 11 4 8 12

Banyaknya baris dan banyaknya kolom biasanya disebut sebagai ukuran matriks.

Page 5: Makalah Matriks dalam Struktur Data

Contoh : matriks berukuran 4 x 5 mempunyai baris sebanyak 4 dam kolom

sebanyak 5,sehingga dapat menyimpan 20 elemen.Ada beberapa bahasa

pemrograman yang meminta ukuran matriks pada pendefinisian,ada yang

meminta penomoran minimum dan maksimum dari baris dan kolom.Pada notasi

algoritmik yang kita pakai,cara kedua yang akan di pakai,sebab ukuran matriks

dapat di dedukasi dari penomoran.

Matriks adalah struktur data yang statik,yaitu ukuran maksimum

memorinya di tentukan dari awal.Batas indeks baris dan kolom harus terdefinisi

dengan pasti saat dideklarasikan dan tak dapat di ubah-ubah.Seringkali dalam

persoalan semacam ini ,kita memesan memory secara “berlebihan” untuk alasan

terjaminnya memory yang tersedia,dan hanya memakai sebagian saja.Biasanya

memori yang di pakai (selanjutnya sisebut efektif) adalah yang “kiri atas” seperti

ilustrasi sebagai berikut,dimana pada saat deklarasi,memori maksimum yang di

sediakan adalah 10 x 10,dan hanya akan di pakai untuk 3 x 4.

B. Tujuan

1. Untuk dapat mengetahui cara mendeklarasikan suatu program matriks.

2. Supaya dapat mengetahui cara meng-analogkan dengan rumus operasi matriks. 

3. Untuk dapat mengetahui cara menjalankan program dalam operasi matriks.

4. Untuk dapat mengetahui cara mendeklarasikan matriks di dalam teks algoritma

yang ditulis di dalam bagian deklarasi.

5. Dapat membuat suatu program Matriks dengan berbagai operasi hitung.

6. Sebagai salah satu Tugas Mandiri Struktur Data Pada Universitas Putera

Batam.

Pendeklarasian matriks 

Sebelum matriks digunakan untuk menyimpan data, terlebih dahulu matriks harus

dideklarasikan. Mendeklarasikan matriks artinya menentukan nama matriks, tipe

datanya dan ukuran matriks. Pendeklarasian matriks di dalam teks algoritma di

tulis di dalam bagian deklarasi. Pendeklarasian matriks itu dapat memudahkan

membuat suatu program dengan cara pendeklarasian matriks tersebut.

Page 6: Makalah Matriks dalam Struktur Data

BAB II

PEMBAHASAN

A. Definisi Matriks

Matriks atau array dua dimensi adalah struktur data yang mengacu

pada sebuah/sekumpulan elemen yang di akses.Berbeda dengan larik,maka

pada matriks index terdiri dari dua bagina yaitu index baris dan index

kolom.Setiap elemen matriks dapat di akses melalui indeknya,misalanya

mengisi elemen matriks yang baris ke 2 dan kolom ke 1 dengan nilai

100,maka cara mengisinya adalah A(2,1) 100.Contoh matriks

bernama A dengan ukuran 2 x 3 (yang memiliki indeks baris 2 dan indeks

kolom 3) :

Elemen Matriks : A[1,1], A[1,2], A[1,3], A[2,1], A[2,2], A[2,3]

Indeks baris dari Matriks A : 1, 2

Indeks kolom dari Matriks : 1, 2, 3

Mengisi elemen Matriks : A[2,1] 100

Keuntungan struktur data matriks :

1. Paling mudah di operasikan

2. Ekonomis dalam pemakaian memory,bila semua elemen terisi

3. Akses ke setiap elemen memerlukan waktu yang sama

Kerugiannya :

1. Memboroskan tempat jika banyak elemen yang tidak digunakan.

Page 7: Makalah Matriks dalam Struktur Data

B. Kamus Data Matriks

Sebelum elemen Matriks dapat di pergunakan,perlu didefinisikan dahulu

pada kamus data sebagai berikut :

Keterangan :

Elemen matriks harus memiliki tipe data yang sama atau sejenis

(homogen),seperti integer,real,char,string,boolean,record.Artinya

matriks tersebut di definisikan sebagai integer maka nilai yang

boleh masuk ke dalam elemen matriks harus bertipe integer.

Indeks matriks harus memiliki tipe data yang menyatakan

keterurutan,seperti integer dan karakter.

C. Pemrosesan Matriks

Ada beberapa pemrosesan yang dapat di lakukan terhadap

matriks.Algoritma yang paling mudah untuk melakukan pemrosesan yaitu dengan

menggunakan For-to-do,dengan alasan bahwa elemen matriks memiliki indeks

yang terurut.

Pemrosesan matriks dapat di lakukan dengan dua cara yaitu :

Matriks di proses baris demi baris (Row Ordering)

Matriks di proses kolom demi kolom (Column Ordering)

Berikut salah satu pemrosesan matriks :

Page 8: Makalah Matriks dalam Struktur Data

Matriks Di Proses Kolom Demi Kolom

Pada kedua algoritma tersebut memilki pola yang sama,untuk pemrosesan beris

demi baris “for baris” lebih dahulu di ikuti “for kolom”,sedangkan pada kolom

demi kolom kebalikannya.Proses matriks bisa di ganti dengan proses lainnya

misal :

Mengisi elemen matriks dengan 0 (insialisasi)

Mengisi elemen matriks dari piranti masukan

Mencetak elemen matriks ke piranti keluaran

Proses Matriks dapat di modifikasi,sebagai berikut :

Menjumlahkan nilai pada setiap baris

Membuat rata-rata pada setiap baris atau setiap kolom

Mencari nilai tertentu pada matriks

Menjumlahkan/mengurangkan dua buah matriks

Mengalikan dua bua matriks

Beberapa contoh pemrosesan matriks

Page 9: Makalah Matriks dalam Struktur Data

1. Menginisialisasi Matriks

2. Mengalikan dua buah matriks

Program perkalian dua matriks

{Matriks A[M,P],B[P,N] dan hasil perkalian disimpan pada matriks C [M,N]}

3. Menjumlahkan dua buah matriks :

Page 10: Makalah Matriks dalam Struktur Data

D. Matriks Jarang (Sparse Matrix)

Matriks jarang adalah matriks yang elemennya banyak bernilai 0

(nol) .Seperti di jelaskan di atas,penyimpanan elemen matriks menjadi boros jika

banyak elemen matriks yang bernilai kosong,salah satu solusinya adalah

penyimpanan matriks tersebut di konversi menjadi sebuah larik.Berikut beberapa

contoh matriks jarang antara lain :

Matriks segitiga (elemen yang bernilai / bukan 0,membentuk segitiga)

Matriks tridiagonal (elemen yang bernilai / bukan 0,membentuk

tridiagonal

Matriks diagonal (elemen yang bernilai / bukan 0,membentuk diagonal)

Contoh matriks jarang – segitiga dengan ukuran 3 x 3 (9 elemen matriks jarang

menjadi 6 elemen larik)

1 0 0

2 3 0

4 5 6

Jumlah elemen matriks segitiga (yang bukan nol) :

1 + 2 + 3 = ½ n (n + 1)

1

2

3

4

5

6

Page 11: Makalah Matriks dalam Struktur Data

Yaitu pada baris 1 = 1 elemen

Pada baris 2 =2 elemen

Pada baris 3 = 3 elemen

Lokasi pada array :

L = baris ( baris – 1) + kolom

2

Contoh matriks tridiagonal dengan ukuran 4 x 4 :

Program ubah matriks segitiga jadi array

{Matriks A adalah matriks jarang berbentuk segitiga dengan ukuran M x

M ,karena banyak elemen bernilai 0,maka nilai akan di simpan dalam array S}

E.

Pengalamatan Matriks

1

2

3

.

.

.

10

Page 12: Makalah Matriks dalam Struktur Data

Penyimpanan elemen matriks di dalam memori komputer di susun berurutan

(sama seperti larik),sehingga komputer tidak perlu menentukan setiap elemen

matriks tetapi cukup menyimpan alamat awal /pertamanya.Ada dua cara

pengalamatan / penyimpanan elemen matriks di dalam komputer,yaitu :

Roe major order ( disimpan baris demi baris)

Coloumn major order ( disimpan kolom demi kolom )

Contoh matriks segitiga A dengan ukuran 2 x 3 :

Urutan lokasi penyimpanan matriks A dalam komputer adalah :

A [1,1], A [1,2], A [1,3], A [2,1], A [2,2], A [2,3] . . . . . . jika row major

A [1,1], A [2,1], A [1,2], A [2,2], A [2,2[, A [2,3]. . . . . . jika coloumn

major

Untuk lebih jelasnya perhatikan ilustrasi penyimpanan di dalam komputer secara :

Berikut ini cara menentukan lokasi / alamat elemen Matriks dengan indeks

tertentu :

Mencari lokasi memori pada Row-major order

Lokasi (A[B,K] = Base (A) + W [N ( B-1) + (K-1)]

A[1,1] A[1,2] A[1,3]

A[2,1] A[2,2] A[3,3]

Page 13: Makalah Matriks dalam Struktur Data

Mencari memory pada coloumn-major order

Lokasi (A [B,K] = Base (A) + W [ M (K-1) + (J-1)]

Base (a) : lokasi awal di memori (alamat A[1,2])

W : jumlah word / byte untuk menyimpan satu elemen

M : jumlah baris pada matriks A

N : jumlah baris pada kolom matriks A

Ada cara lain untuk menentukan lokasi sebuah elemen matriks,bila rumus tersebut

sukar untu di ingat.Perhatikan contoh berikut :

X [1,1] = 400

Lebar (W = width) : 1 elemen = 4 byte

Maka alamat setiap elemen jika pengalamatan dengan ROW MAJOR adalah :

No

.

1 2 3 4 5 6

1 400 404 408 412 416 420

2 424 428 . . . .

3 448

4 . . . .

5

6

7

8

Berapa alamat X [3,5] ? Jawabnya adalah 400 + (16*4) = 400 + 64 =

464.Angka 16 didapat dari jumlah loncatan dari X [1,1] ke X[3,5]

Berapa alamat X [8,6] ? Jawabnya adalah 400 + (47 * 4) = 400 + 188 =

588.Angka 47 didapat dari jumlah loncatan dari X[1,1] ke X[8,6]

X [1,1] = 400

Lebar (W = Width) : 1 elemen = 4 byte

Alamat elemen pertama

Page 14: Makalah Matriks dalam Struktur Data

Maka alamat setiap elemen jika pengalamatan dengan COLUMN MAJOR

adalah :

Berapa alamat X [3,5] ? Jawabnya adalah 400 + (34*4) = 400 + 136

=536.Angka 34 di dapat dari jumlah loncatan dari X [1,1] ke X [3,5]

Berapa alamat X [8,6] ? Jawabnya adalah 400 + (47 *4) = 400 + 188 =

588.Angka 47 didapat dari jumlah loncatan dari X [1,1] ke X [8,6]

F. Program Matriks

Buatlah program dengan ketentuan di bawah ini :

1. Progam untuk perkalian 2 (dua) Matriks.

2. Program untuk menampilkan Matriks :

Alamat elemen pertama

No

.

1 2 3 4 5 6

1 400 432 464 . . . . . . . . . . . .

2 404 428 . . . .

3 408 . . . .

4 412

5 416

6 420

7 424

8 428

Page 15: Makalah Matriks dalam Struktur Data

1. Program perkalian 2 (dua) Matriks :

program perkalian_2_matriks;uses wincrt;var M1 : array[1..20, 1..20] of longint; M2 : array[1..20, 1..20] of longint; M3 : array[1..20, 1..20] of longint; n : array[1..2] of integer; m : array[1..2] of integer;i, j, x, y, k, l : integer; begin clrscr; for k := 1 to 2 do begin write('Banyak baris matriks ke-', k, ' : '); readln(m[k]); write('Banyak kolom matriks ke-', k, ' : '); readln(n[k]); end; if (n[1] <> m[2]) then writeln('Tidak bisa dikalikan!') else begin writeln('Matriks pertama : '); y := 6; for i := 1 to m[1] do begin x := 8; for j := 1 to n[1] do begin gotoxy(x,y); readln(M1[i,j]); x := x + 8; end; y := y + 1; end; writeln('Matriks kedua : '); y := y + 1; for i := 1 to m[2] do begin x := 8; for j := 1 to n[2] do begin gotoxy(x,y); readln(M2[i,j]); x := x + 8; end; y := y + 1; end;

Page 16: Makalah Matriks dalam Struktur Data

Lanjutan Program . . .

writeln('Proses perkalian'); y := y + 1; for i := 1 to m[1] do begin x := 2; for j := 1 to n[2] do begin M3[i,j] := 0; for l := 1 to n[1] do begin; M3[i,j] := M3[i,j] + (M1[i,l] * M2[l,j]); gotoxy(x,y); write(M1[i,l], ' . ', M2[l,j]); if l < n[1] then begin write(' + '); end; x := x + 12; end; x := x + 15; end; y := y + 1; end; y := y + 1; for i := 1 to m[1] do begin x := 2; for j := 1 to n[2] do begin for l := 1 to n[1] do begin; gotoxy(x,y); write(M1[i,l] * M2[l,j]); if l < n[1] then begin write(' + '); end; x := x + 12; end; x := x + 15; end; y := y + 1; end; writeln; writeln('Perkalian Matriks : '); for i := 1 to m[1] do begin for j := 1 to n[2] do write(M3[i,j]:8); writeln; end; end; readln; end.

Page 17: Makalah Matriks dalam Struktur Data

Hasil Output Program di atas :

2. Program untuk menampilkan Matriks :

Page 18: Makalah Matriks dalam Struktur Data

program Menampilkan_Angka_Matriks;uses wincrt;varkolom_1,kolom_2,kolom_3,kolom_4,kolom_5:array[1..10]of integer;n,i:integer;baca_t : char;begingotoxy(25,2);writeln(' PROGRAM MATRIKS TAMPILAN');gotoxy(25,3);writeln('==========================');gotoxy(25,4);writeln(' Input Angka Dibawah Ini');gotoxy(25,5);writeln(' -------------------------');gotoxy(25,6);writeln(' 0 0 0 0 1');gotoxy(25,7);writeln(' 0 0 0 1 0');gotoxy(25,8);writeln(' 0 0 1 0 0');gotoxy(25,9);writeln(' 0 1 0 0 0');gotoxy(25,10);writeln(' 1 0 0 0 0');gotoxy(25,12);write(' Input Jumlah Ordo : ' );readln(n);for i:= 1 to n do begin writeln; write('Input Angka 1 : ');readln(kolom_1[i]); write('Input Angka 2 : ');readln(kolom_2[i]); write('Input Angka 3 : ');readln(kolom_3[i]); write('Input Angka 4 : ');readln(kolom_4[i]); write('Input Angka 5 : ');readln(kolom_5[i]); end;writeln; clrscr;writeln(' Output Angka yang di Input');writeln(' ****************************');writeln;for i:= 1 to n dobeginwriteln(kolom_1[i]:32,kolom_2[i]:4,kolom_3[i]:4,kolom_4[i]:4,kolom_5[i]:4);end;writeln;writeln;writeln('Press Any Key To Close Program');baca_t :=readkey;donewincrt;end.

Page 19: Makalah Matriks dalam Struktur Data

Hasil Output Program di atas :

Page 20: Makalah Matriks dalam Struktur Data

BAB III

PENUTUP

A. Kesimpulan

1. Dengan memahami Definisi Matriks maka,Mahasiswa akan lebih mudah

membuat suatu program Matriks.

2. Dengan adanya kamus Data Matriks di atas,maka kita akan lebih mudah

memahami logika-logika yang di pakai dalam program Matriks.

3. Berdasarkan materi-materi di atas,maka kita dapat membuat program

perkalian 2 (dua) Matriks.

B. Saran

Berdasarkan simpulan maka saran yang dapat disampaikan adalah sebagai berikut:

1. Mahasiswa perlu mempelajari dan memahami algoritma pemrograman

tentang Matriks.

2. Cara belajar algoritma Matriks akan lebih efektif dan efisien jika banyak

latihan dan praktek.

3. Mahasiswa harus teliti dalam membuat suatu Program Matriks dan bisa

menampilkan Output program sesuai dengan yang kita inginkan.

4. Harapan penulis semoga makalah ini dapat bermanfaat bagi para pembaca

dan pengguna makalah. Kurang lebihnya apabila ada kesalahan dan

kekurangan dalam pembahasan makalah ini penulis mohon maaf. Akhir

kata penulis ucapkan terima kasih.

DAFTAR PUSTAKA

Page 21: Makalah Matriks dalam Struktur Data

Zakaria,teddy marcus,penerbit : informatika (2006), Konsep dan inplementasi

struktur data.

Sumber Lain :

www.google.co.id

www.wikipedia.com