Anda di halaman 1dari 10

ADT MATRIKS

Notasi Algoritmik
Implementasi Fisik
Definisi Matriks
Sekumpulan informasi yang setiap individu elemennya terdefinisi berdasarkan dua
buah indeks (biasanya di konotasikan dengan baris dan kolom)
◦ Setiap elemen matriks dapat diakses langsung jika kedua indeks diketahui, dan indeksnya harus bertype
yang mempunyai keterurutan (suksesor), misalnya integer
◦ Matriks adalah struktur data dengan memori internal. Praktis untuk digunakan tetapi memakan memori

Contoh matriks 3x4 berikut: Matriks = tabel atau array 2 dimensi ?


1 2 3 4
Pengertian “2 dimensi”, “baris dan kolom” adalah dalam pemikiran kita.
5 6 7 8 Pengaturan letak elemen matriks dalam memori komputer selalu tetap
9 10 11 12 sebagai deretan sel “linier”

Dapat disimpan secara linier dan kotigu dengan dua alternatif berikut:

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

Per kolom 1 5 9 2 6 10 3 7 11 4 8 12
Definisi Matriks
◦ Matriks adalah struktur data “statik”, yaitu ukuran maksimum memorinya ditentukan di awal.
◦ Batas indeks baris dan kolom harus terdefinisi dengan pasti saat dideklarasikan dan tak dapat diubah-
ubah
1 2 3 4 5 6 7 8 9 10
1 1 1 1 Jika merancang prosedur dan fungsi yang mempunyai
parameter, ukuran parameter formal harus sama dengan
2
2 2 2 parameter aktual untuk mengurai kesalahan passing
3 parameter.
Efektif 3 3 3
4
5 4 4 4
6
7
8
9
10
Notasi algoritma dan Contoh
pemakaian Matriks
◦ Matriks banyak digunakan dalam komputasi numerik untuk representasi dalam finite element
◦ Seperti penggunakan matrik dalam matematika, perhitungan “biasa” terhadap matriks : penjumlahan,
perkalian dua matriks, menentukan determinan, menginvers sebuah matriks, memeriksa apakah matriks
sebuah matriks simetris, matrik satuan. (hanya saja dalam algoritma, harus diprogram)
◦ Dalam perhitungan ilmiah di mana suatu sistem diwakili oleh matriks (elemen hingga dalam teknik sipil
dan mesin)
◦ Dalam persoalan pemrograman linier dan operasional research
◦ Dalam persoalan algoritmik : untuk menyimpan informasi yang cirinya ditentukan oleh 2 komponen
(yang nantinya diterjemahkan dalam baris dan kolom)dan diakses langsung.

Notasi algoritma dari matriks: NamaMatriks(indeks1, indeks2)


• Domain : Domain matriks sesuai dengan pendefinisian matriks, domain isi matriks sesuai dengan jenis matriks
• Konstantan : Konstanta untuk seluruh matriks tidak terdefinisi, konstanta hanya terdefinisi jika indeks dari matriks terdefinisi
Implementasi Fisik (1)
Matriks yang merepresentasikan frekuensi kemunculan
MatFrek : matrix [‘A’..’E’, 1..7] of integer huruf ‘A’ s/d ‘E’, untuk 7 buah teks. Maka MatFrek(i,j)
berarti frekuensi huruf ke-i untuk teks ke-j

A : matrix [1..5, 1..5] of real


Untuk merepresentasi nama-nama hari (7 hari [1..7])
NamaHari : matrix [1..7, 1..3] of string dalam tiga bahasa [1..3], maka NamaHarii,j berarti hari ke-
i dalam bahasa ke-j

Merepresentasikan hasil survey pada setiap koordinat


type DataGeo : <Temp : integer, KecepAngin : integer> pengamatan. Koordinat yang diukur adalah (1, 1) s/d
MatSurvey : matrix [1..4, 1..7] of DataGeo (4,7)

MatHari(i,j) //jika i dan j terdefinisi


TabNamaHari(1, 7)
MatSurvey(3, 5) //untuk mengacu datu data survey
MatSurvey(3, 5).Temp //untuk mengacu data temperatur
Implementasi Fisik (2)
Jika type dasar matrix tidak ada, maka matriks dibentuk
dari type array. Maka matriks adalah array dari array

Matriks yang merepresentasikan frekuensi huruf ‘A’ s/d ‘E’, untuk


MatFrek : matrix [‘A’..’E’] of array [1..7] of integer 7 buah teks. Maka MatFrek(i,j) berarti frekuensi huruf ke-i untuk
teks ke-j ditulis sebagai MatFrek(i,j)

A : matrix [1..5, 1..5] of array [1..5] of real


Untuk merepresentasi nama-nama hari (7 hari [1..7]) dalam tiga
bahasa [1..3], maka NamaHarii,j berarti hari ke-i dalam bahasa
NamaHari : matrix [1..7] of array [1..3] of string ke-j ditulis sebagai NamaHari(i,j)

type DataGeo : <Temp : integer, KecepAngin : integer>


Merepresentasikan hasil survey pada setiap koordinat
MatSurvey : matrix [1..4] of array [1..7] of DataGeo pengamatan. Koordinat yang diukur adalah (1, 1) s/d (4,7)

MatHari(i,j) //jika i dan j terdefinisi


TabNamaHari(1, 7)
MatSurvey(i, j) //untuk mengacu datu data survey
MatSurvey(i, j).Temp //untuk mengacu data temperatur
Catatan implementasi dalam bahasa C :
◦ Bahasa C melakukan “linierisasi” elemen matriks per baris. Perhatikan cara penulisan “konstanta” matriks
pada saat inisialisasi nilai matriks statis
◦ Karena dalam bahasa C ada fasilitas untuk alokasi dinamis, maka ukuran matriks dapat ditentukan pada
saat ekeskusi. Jangan lupa melakukan alokasi
◦ Walaupun dalam bahasa C ada fasilitas mengacu nilai elemen matrik lewat pointer, tidak disarankan
menulis teks program dengan memakai pointer. Pakailah dua indeks i dan j yang menyatakan “nomor
baris” dan “nomor kolom” sehingga arti program jelas
Tugas
Buatlah sebuah program kecil dalam bahasa C yang akan membereskan alokasi memori dan mengisi
sebuah matriks segi tiga yang merupakan “array of array” sebagai berikut, dan kemudian mengisi setiap
sel dengan angka berikut:
0

1
1

1 2
2

1 2 3
3

1 2 3 4
4

1 2 3 4 5
5
Tugas
Buatlah sebuah program lengkap dalam bahasa C yang mengandung deklarasi sebuah array of integer
dua dimensi dengan ukuran maksimum NxN yang disimpan dalam suatu variabel global bernama M. N
dideklarasikan sebagai sebuah konstanta dengan nilai 100. program kemudian meminta masukan seluruh
nilai M dari pengguna. Selanjutnya program meminta sebuah nilai integer, misalnya X, lalu menuliskan ke
layar “true” jika X ada di M, dan “false” jika X tidak ada di M, kemudian program menuliskan bilangan
terbesar dan terkecil yang ada di dalam M.
Program harus mengandung dan memanfaatkan fungsi dan prosedur sebagai berikut. Tidak boleh
menambahkan fungsi/prosedur lain.

function CariNilai (X : integer) → integer


{prekondisi : M terdefinisi nilainya. Menghasilkan 1 jika X ada di M dan 0 jika X tidak ada di M}

procedur CariMaxMin (output min, max : integer) → integer


{I.S : M sudah terdefinisi nilainya}
{F.S : min berisi nilai minimal yang ada di M dan max berisi nilai maksimum yang ada di M

Anda mungkin juga menyukai