makalah matriks dalam struktur data
Post on 05-Dec-2014
18.157 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
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
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.
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.
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.
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 :
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
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 :
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
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
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]
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
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
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;
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.
Hasil Output Program di atas :
2. Program untuk menampilkan Matriks :
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.
Hasil Output Program di atas :
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
Zakaria,teddy marcus,penerbit : informatika (2006), Konsep dan inplementasi
struktur data.
Sumber Lain :
www.google.co.id
www.wikipedia.com
top related