0% menganggap dokumen ini bermanfaat (0 suara)
148 tayangan9 halaman

ADT Matriks

Laporan ini membahas ADT Matriks dan implementasinya dalam bahasa C. Terdapat penjelasan tentang konsep matriks, notasi algoritmanya, dan implementasi fisik matriks. Dilaporkan juga fungsi penjumlahan, pengurangan, dan perkalian matriks yang ditambahkan pada file driver beserta analisis programnya.

Diunggah oleh

Dede Irwan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
148 tayangan9 halaman

ADT Matriks

Laporan ini membahas ADT Matriks dan implementasinya dalam bahasa C. Terdapat penjelasan tentang konsep matriks, notasi algoritmanya, dan implementasi fisik matriks. Dilaporkan juga fungsi penjumlahan, pengurangan, dan perkalian matriks yang ditambahkan pada file driver beserta analisis programnya.

Diunggah oleh

Dede Irwan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

LAPORAN PRAKTIKUM

ALGORITMA DAN STRUKTUR DATA

Laporan ini disusun untuk memenuhi salah satu tugas mata kuliah
praktikum Algoritma dan Struktur Data

Semester 2 Tahun Akademik 2020/2021

Oleh :

Nama : Faisal Alvarisi


NPM : 207006006

LABORATORIUM INFORMATIKA
PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS SILIWANGI
TASIKMALAYA
2020
BAB IV

ADT Matriks

1. Tujuan Praktikum

Praktikum diharapkan dapat:

1.1 Memahami konsep Matriks


1.2 Memahami Implementasinya dalam bahasa C

2. Dasar Teori
Matriks adalah sekumpulan informasi yang setiap individu elemennya
terdefinisi berdasarkan dua buah indeks (yang biasanya dikonotasikan dengan
baris dan kolom). setiap elemen matriks dapat diakses secara langsung jika
kedua indeks diketahui dan indeksnya harus bertype yang mempuya keterurutan
(suksesor), misalnya integer. Matriks adalah struktur data dengan memori
internal, struktur ini praktis untuk dipakai tetapi memakan memori!(Matriks
integer 100x100 memakan 10000 x tempat penyimpanan integer). Sering
dikatakan bahwa matriks adalah tabel atau array 2 dimensi. Tetapi patut
diperhatikan, bahwa pengertian “2 dimensi”, “baris dan kolom” adalah dalam
pemikiran kita. pengaturan letak matriks dalam memori komputer selalu tetap
sebagai deretan sel “linier”. Pengertian 2 dimensi ini hanya untuk
mempermudah pemrogram dalam mendesain programnya. Maka matriks
adalah salah satu contoh struktur data “lojik”.

Contoh: untuk matriks 3x4 sebagai berikut:


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

IV - 1
IV - 2

Dapat disimpan secara linier dan kontigu dengan dua alternatif sebagai berikut:
a. Per baris
1 2 3 4 5 6 7 8 9 10 11 12

b. Per kolom
1 5 9 2 6 10 3 7 11 4 8 12

Banyaknya baris dan banyaknya kolom biasanya disebut sebagai ukuran


matriks.

Notasi Algoritmik 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
MatFrek : matrix [‘A’..’E’, 1..7] of integer
Matriks yang merepresentasikan frekuensi kemunculan huruf ‘A’ s/d ‘E’, untuk
7 buah teks.
Maka MatFrek(i,j) berarti frekuensi huruf ke-i untuk teks ke-j

NamaHari : matrix [1..7, 1..3] of string


Untuk merepresentasi nama-nama hari (7 hari [1..7]) dalam tiga bahasa [1..3],
maka NamaHarii,j berarti hari ke-i dalam bahasa ke-j
IV - 3

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


MatSurvey : matrix [1..4, 1..7] of DataGeo
Merepresentasikan hasil survey pada setiap koordinat pengamatan. Koordinat
yang diukur adalah (1, 1) s/d (4,7)
MatHari(i,j) //jika i dan j terdefinisi 4
TabNamaHari(1, 7)
MatSurvey(3, 5) //untuk mengacu datu data survey
MatSurvey(3, 5).Temp //untuk mengacu data temperatur
MatFrek : matrix [‘A’..’E’] of array [1..7] of integer
Matriks yang merepresentasikan frekuensi huruf ‘A’ s/d ‘E’, untuk 7 buah teks.
Maka MatFrek(i,j) berarti frekuensi huruf ke-i untuk teks ke-j ditulis sebagai
MatFrek(i,j)
NamaHari : matrix [1..7] of array [1..3] of string
Untuk merepresentasi nama-nama hari (7 hari [1..7]) dalam tiga bahasa [1..3],
maka NamaHarii,j berarti hari ke-i dalam bahasa ke-j ditulis sebagai
NamaHari(i,j)
type DataGeo : <Temp : integer, KecepAngin : integer>
MatSurvey : matrix [1..4] of array [1..7] of DataGeo
Merepresentasikan hasil survey pada setiap koordinat 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 temperature

3. Hasil dan Pembahasan


3.1 Soal
Buat laporan praktikum ADT Matriks dan tambahkan function
(penjumlahan, pengurangan dan perkalian) pada file main.c (driver) dan
analisis program ADT Matriks tersebut !
IV - 4

3.2 Jawaban
Hasil program:
IV - 5

Analisis:
Gambar di atas merupakan output dari file program driver / main yang
berekstensi (.C). pada program tersebut terdapat fungsi penjumlahan
matriks, pengurangan matriks, dan perkalian matriks. Yang mana fungsi-
fungsi tersebut terdapat pada file matriks.c /matriks.h (ADT matriks).
Karena operasi penjumlahan/pengurangan/perkalian matriks memerlukan
dua buah matriks maka pada program terdapat statement agar user
menginputkan dua buah matriks, yaitu Matriks 1 dan Matriks 2 yang
masing-masing diberi nama / dideklarasikan sebagai M1 dan M2 pada
program. Pendeklarasian tersebut menggunakan tipe data bentukan
MATRIKS. Selain itu untuk menampung hasil penjumlahan/
pengurangan/perkalian maka masing-masing dideklarasikan pula matriks
Mtambah, Mkurang, dan Mkali.
Selanjutnya user diminta untuk menentukan Panjang baris dan kolom dari
masing-masing matriks. Lalu untuk mengisi nilai matriknya maka
dipanggil lah prosedur yang bernama MakeMatriks(). Prosedur tersebut
memiliki tiga parameter, 2 parameter input yaitu nilai baris dan kolom,
dan 1 paramter output yaitu berupa matriks.
Selanjutnya matriks 1 dan 2 di tampilkan ke layar dengan cara memanggil
prosedur TulisMATRIKS(). Prosedur ini memiliki satu parameter input
yaitu matriks itu sendiri yang akan ditampilkan ke layar.
Selanjutnya untuk hasil penjumlahan/pengurangan/perkalian
memanggil/menggunakan fungsi masing-masing yaitu tambah(),
kurang(), dan kalimatriks(). Masing-masing fungsi tersebut memiliki 2
parameter input yaitu matriks 1 dan matriks 2, dan akan mereturn nilai
sesuai operasi masing-masing dari fungsi tersebut. Cara menentukannya
adalah dengan cara menuliskan nama_matriks = nama_fungsi
(paremeter1, parameter2); contoh untuk penjumlahan:
Mtambah = tambah(M1, M2);
IV - 6

Namun sebelum menjalankan fungsi penjumlahan/pengurangan atau


perkalian akan dilakukan pengecekan terlebih dahulu. Missal, dalam
matriks untuk penjumlahan atau pengurangan maka syaratnya kedua
matriks tersebut harus mimiliki panjang baris dan panjang kolom yang
sama. Oleh karena itu jika baris matriks 1 tidak sama dengan baris matrik
2 atau kolom matriks 1 tidak sama dengan kolom matriks 2 maka jangan
lakukan operasi pertambahan /pengurangan dan tampilkan pesan error ke
layar. Untuk sintaksnya sendiri yaitu
If ((b1 != b2) || (k1 != k2)) {
// Tampilkan pesan error di sini
} else {
// lakukan operasi penjumlahan & pengurangan di sini
}
IV - 7

Untuk perkalian sendiri juga dilakukan pengecekan, yaitu syarat


perkalian 2 matriks bisa dilakukan jika panjang kolom matriks 1 sama
dengan Panjang baris matriks 2. Jadi jika Panjang kolom matriks 1 tidak
sama dengan Panjang baris matriks 2 maka tampilkan pesan error. Untuks
sintaksnya sendiri seperti berikut:
If (k1 != b2){
// Tampilkan pesan error di sini
} else {
// lakukan perkalian di sini
}
IV - 8

Source CODE :
bit.ly/3gVMPiR

Anda mungkin juga menyukai