Dokumen tersebut membahas tentang matriks, dimulai dari pengertian matriks, kamus data matriks, pemrosesan matriks seperti pengisian elemen, penjumlahan, dan perkalian matriks, serta pendekatan penyimpanan matriks jarang menggunakan array tunggal.
1. TUGAS MANDIRI
MATRIKS
Mata Kuliah: Struktur Data
NamaMahasiswa : Parningotan Panggabean
NPM : 110210225
Fakultas : Teknik Informatika
Kode Kelas : 112-IF211-M1
Dosen : Heryenzus, S.Kom
UNIVERSITAS PUTERA BATAM
2012
2. KATA PENGANTAR
PujisyukurkehadiratTuhan Yang
MahaEsaatasberkatrahmatNYA.Sayabisamenyusundanmenyelesaikanmakalah
yang
berisitentangMatriks.PenulisjugamengucapkanterimakasihkepadaBapakHeryenzu
s, S.KomselakudosenmatakuliahStruktur Data di UniversitasPuteraBatam yang
telahmemberikanbimbingannyadanmemberikanmaterikepadapenulissehinggapenu
lisbisamenyusunmakalahinidengansebaik-baiknya..
Taklupapenulismengucapkanterimakasihkepadaberbagaipihak yang
telahmemberikandorongandanmotivasidalampembuatanmakalahini.
Penulismenyadaribahwadalampenyusunanmakalahinimasihterdapatbanyak
kekurangandanjauhdarikesempurnaan.Olehkarenaitu,
penulismengharapkankritikserta saran yang
membangungunamenyempurnakanmakalahinidandapatmenjadiacuandalammenyu
sunmakalah-makalahatautugas-tugasselanjutnya.
Penulisjugamemohonmaafapabiladalampenulisanmakalahiniterdapatkesala
hanpengetikandankekeliruansehinggamembingungkanpembacadalammemahamim
aksudpenulis.Akhir kata penulismengucapkanTerimaKasih.
Batam,Juni 2012
Penulis
4. BAB I
PENDAHULUAN
MATRIKS
A. LatarBelakang
Matriksadalahstruktur data denganmemoriinternal.Strukturinipraktisuntuk
di pakaimemakanmemory !(Matriks integer 100 x 100 memakan 10000 x
tempatpenyimpanan integer).
Seringdikatakanbahwamatriksadalahtabelatau array berdimensi 2.Tetapi
patut di perhatikan,bahwapengertian “dimensi 2”, “barisdankolom”
adalahdalampemikirankita.Pengaturanletakelemenmatriksdalammemorikomputers
elalutetapsebagaideretansel “linier”.Pengertian 2
dimensiinihanyauntukmempermudahpemrogramandalammendesainprogramnya.
Makamatriksadalahsalahsatucontohstruktur data “lojik”.
Contoh :untukmatriks 3 x 4 sebagaiberikut :
1 2 3 4
5 6 7 8
9 10 11 12
Dapatdisimpansecara linier dankontigudenganduaalternatifsebagaiberikut :
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
5. Banyaknyabarisdanbanyaknyakolombiasanyadisebutsebagaiukuranmatriks.
Contoh : matriksberukuran 4 x 5 mempunyaibarissebanyak 4 dam kolomsebanyak
5,sehingga dapatmenyimpan 20 elemen.Adabeberapabahasapemrograman yang
memintaukuranmatrikspadapendefinisian,ada yang memintapenomoran minimum
danmaksimumdaribarisdankolom.Padanotasialgoritmik yang kitapakai,carakedua
yang akan di pakai,sebabukuranmatriksdapat di dedukasidaripenomoran.
Matriksadalahstruktur data yang statik,yaituukuranmaksimummemorinya
di
tentukandariawal.Batasindeksbarisdankolomharusterdefinisidenganpastisaatdidekl
arasikandantakdapat di ubah-ubah.Seringkalidalampersoalansemacamini
,kitamemesan memory secara “berlebihan” untukalasanterjaminnya memory yang
tersedia,danhanyamemakaisebagiansaja.Biasanyamemori yang di pakai
(selanjutnyasisebutefektif) adalah yang “kiriatas”
sepertiilustrasisebagaiberikut,dimanapadasaatdeklarasi,memorimaksimum yang di
sediakanadalah 10 x 10,dan hanyaakan di pakaiuntuk 3 x 4.
B. Tujuan
1. Untukdapatmengetahuicaramendeklarasikansuatu program matriks.
2. Supayadapatmengetahuicarameng-analogkandenganrumusoperasimatriks.
3. Untukdapatmengetahuicaramenjalankan program dalamoperasimatriks.
4. Untukdapatmengetahuicaramendeklarasikanmatriks di dalamteksalgoritma
yang ditulis di dalambagiandeklarasi.
5. Dapatmembuatsuatu program Matriksdenganberbagaioperasihitung.
6. SebagaisalahsatuTugasMandiriStruktur Data PadaUniversitasPuteraBatam.
Pendeklarasianmatriks
Sebelummatriksdigunakanuntukmenyimpan data,
terlebihdahulumatriksharusdideklarasikan.Mendeklarasikanmatriksartinyamenent
ukannamamatriks, tipedatanyadanukuranmatriks. Pendeklarasianmatriks di
dalamteksalgoritma di tulis di
6. dalambagiandeklarasi.Pendeklarasianmatriksitudapatmemudahkanmembuatsuatu
program dengancarapendeklarasianmatrikstersebut.
BAB II
PEMBAHASAN
A. DefinisiMatriks
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) :
ElemenMatriks : A[1,1], A[1,2], A[1,3], A[2,1], A[2,2], A[2,3]
IndeksbarisdariMatriksA : 1, 2
IndekskolomdariMatriks : 1, 2, 3
MengisielemenMatriks : A[2,1] 100
Keuntunganstruktur 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 :
7. 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. PemrosesanMatriks
Ada beberapapemrosesan yang dapat di
lakukanterhadapmatriks.Algoritma yang paling
mudahuntukmelakukanpemrosesanyaitudenganmenggunakan For-to-
do,denganalasanbahwaelemenmatriksmemilikiindeks yang terurut.
Pemrosesanmatriksdapat di lakukandenganduacarayaitu :
Matriks di proses baris demi baris (Row Ordering)
Matriks di proses kolom demi kolom (Column Ordering)
8. Berikutsalahsatupemrosesanmatriks :
Matriks Di Proses Kolom Demi Kolom
Padakeduaalgoritmatersebutmemilkipola yang sama,untukpemrosesanberis demi
baris “for baris” lebihdahulu di ikuti “for kolom”,sedangkanpadakolom demi
kolomkebalikannya.Prosesmatriksbisa di gantidengan proses lainnyamisal :
Mengisi elemen matriks dengan 0 (insialisasi)
Mengisi elemen matriks dari piranti masukan
Mencetak elemen matriks ke piranti keluaran
Proses Matriksdapat di modifikasi,sebagaiberikut :
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
10. 3. Menjumlahkanduabuahmatriks :
D. MatriksJarang (Sparse Matrix)
Matriksjarangadalahmatriks yang elemennyabanyakbernilai 0 (nol) .Seperti di
jelaskan di
atas,penyimpananelemenmatriksmenjadiborosjikabanyakelemenmatriks yang
bernilaikosong,salahsatusolusinyaadalahpenyimpananmatrikstersebut di
konversimenjadisebuahlarik.Berikutbeberapacontohmatriksjarangantara 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)
Contohmatriksjarang – segitigadenganukuran 3 x 3 (9
elemenmatriksjarangmenjadi 6 elemenlarik)
1
1 0 0 2
3
2 3 0
4
4 5 6 5
6
11. Jumlahelemenmatrikssegitiga (yang bukannol) :
1 + 2 + 3 = ½ n (n + 1)
Yaitupadabaris 1 = 1 elemen
Padabaris 2 =2 elemen
Padabaris 3 = 3 elemen
Lokasipadaarray :
L= baris( baris – 1) + kolom
2
Contohmatrikstridiagonaldenganukuran 4 x 4 :
1
2
3
.
.
.
10
Program ubahmatrikssegitigajadi array
{Matriks A adalahmatriksjarangberbentuksegitigadenganukuran M x M
,karenabanyakelemenbernilai 0,maka nilaiakan di simpandalam array S}
12. E. PengalamatanMatriks
Penyimpananelemenmatriks di dalammemorikomputer di susunberurutan
(samasepertilarik),sehinggakomputertidakperlumenentukansetiapelemenmatrikstet
apicukupmenyimpanalamatawal /pertamanya.Adaduacarapengalamatan /
penyimpananelemenmatriks di dalamkomputer,yaitu :
Roe major order ( disimpan baris demi baris)
Coloumn major order ( disimpan kolom demi kolom )
ContohmatrikssegitigaA denganukuran 2 x 3 :
A[1,1] A[1,2] A[1,3]
A[2,1] A[2,2] A[3,3]
Urutanlokasipenyimpananmatriks A dalamkomputeradalah :
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
Untuklebihjelasnyaperhatikanilustrasipenyimpanan di dalamkomputersecara :
Berikutinicaramenentukanlokasi / alamatelemenMatriksdenganindekstertentu :
Mencari lokasi memori pada Row-major order
Lokasi (A[B,K] = Base (A) + W [N ( B-1) + (K-1)]
Mencari memory pada coloumn-major order
Lokasi (A [B,K] = Base (A) + W [ M (K-1) + (J-1)]
13. 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
untukmenentukanlokasisebuahelemenmatriks,bilarumustersebutsukaruntu di
ingat.Perhatikancontohberikut :
X [1,1] = 400
Lebar (W = width) : 1 elemen = 4 byte
Makaalamatsetiapelemenjikapengalamatandengan ROW MAJOR adalah :
No. 1 2 3 4 5 6
1 400 404 408 412 416 420
2 424 428 ... . Alamatelemenp
3 448 ertama
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
Makaalamatsetiapelemenjikapengalamatandengan COLUMN MAJOR adalah :
14. No. 1 2 3 4 5 6
1 400 432 464 .... .... ....
2 404 428 ... .
Alamatelemenp
3 408 .... ertama
4 412
5 416
6 420
7 424
8 428
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 :
1. Program perkalian 2 (dua) Matriks :
program perkalian_2_matriks;
useswincrt;
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;
15. 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;
17. 2. Program untukmenampilkanMatriks :
programMenampilkan_Angka_Matriks;
useswincrt;
var
kolom_1,kolom_2,kolom_3,kolom_4,kolom_5:array[1..10]of
integer;
n,i:integer;
baca_t : char;
begin
gotoxy(25,2);writeln(' PROGRAM MATRIKS TAMPILAN');
20. PENUTUP
A. Kesimpulan
1. DenganmemahamiDefinisiMatriksmaka,Mahasiswaakanlebihmudahmembu
atsuatu program Matriks.
2. Denganadanyakamus Data Matriks di
atas,makakitaakanlebihmudahmemahamilogika-logika yang di pakaidalam
program Matriks.
3. Berdasarkanmateri-materi di atas,makakitadapatmembuat 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
tentangMatriks.
2. Cara belajar algoritma Matriks akan lebih efektif dan efisien jika banyak
latihan dan praktek.
3. Mahasiswa harus teliti dalam membuat suatu Program
Matriksdanbisamenampilkan Output program sesuaidengan yang
kitainginkan.
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.