1
Modul 3 - MATRIKS
I. TUJUAN
1. Memahami konsep dan implementasi ADT Matriks 2 dalam bahasa C.
2. Memahami penggunaan ADT Matriks sederhana dalam aplikasi sehari-hari.
II. DASAR TEORI
Didalam bahasa pemrograman tentunya kita sudah mengenal dengan apa yang disebut larik
atau array. Larik sendiri merupakan tipe data terstruktur yang dapat menyimpan
banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan
(kontigu) serta bertipe data sama pula.
Pada modul kali ini kita akan membahas larik yang memiliki 2 dimensi. Larik dengan 2
dimensi biasanya digunakan untuk merepresentasikan sebuah matriks atau tabel. Array dua dimensi
atau matriks dapat diabstraksikan dengan array dua dimensi yang terpapar di sebidang kertas,
dengan dua indeks untuk acuan. Seperti halnya koordinat dalam sistem sumbu cartesian yang
mempunyai x dan y, demikian juga matriks mempunyai dua indeks.
Berikut ini adalah contoh pendeklarasian larik 2 dimensi:
int matriks[10][10];
// mendeklarasikan sebuah larik berukuran 10 baris dan 10 kolom
int matriks2[10][5];
// mendeklarasikan sebuah larik berukuran 10 baris dan 5 kolom
digit awal pada kurung siku menandakan baris dan digit kedua menandakan kolom.
Untuk larik 3 dimensi:
char larik[10][5][7]; int larik[5][5][5];
Pendefinisian tipe baru bagi matriks akan sangat membantu memahami Matriks. Dengan
pendefinisian baru bagi matriks akan meningkatkan Abstraksi Matriks juga. Cara pandang objek
atas Matriks akan menjadi lebih kuat. Oleh karena itu Matriks akan kita definisikan ulang dengan
nama Matriks sebagai tipe data baru.
#define X 10 #define Y 10
typedef int Matriks[X][Y]; //Matriks adalah tipe baru
III. DEMO:
//file matriks.h
#include <stdlib.h> #include <stdio.h> #define X 10
#define Y 10
#define infotype int
2
void Init(Matriks *M);
//IS: M terdefinisi, sembarang (belum atau sudah ada isinya) //FS: Semua elemen M akan diset 0
void InitElemenMatriks(Matriks *M, infotype data, int i, int j); //IS: M terdefinisi, sembarang (belum atau sudah ada isinya)
//FA: Satu elemen M yaitu elemen ke i dan j (i,j mulai 0) akan diset menjadi
// data
void PrintMatriks(Matriks M);
//IS: M terdefinisi sudah ada isinya
//FS: Semua isi elemen M akan tercetak ke layar komputer
//file matriks.c
#include "Matriks.h"
void Init(Matriks *M) {
void InitElemenMatriks(Matriks *M, infotype data, int i, int j) {
(*M)[i][j]=data; }
void PrintMatriks(Matriks M) {
3
printf("\n2.Isi n elemen pertama Matriks "); printf("\n3.Print Matriks");
printf("\n0.Exit");
printf("\n\nmasukkan pilihan="); scanf("%d",&pilihan);
switch(pilihan) {
case 1: Init(&MyMatrix);break; case 2:
printf("\n\nBanyaknya Elemen yg akan dimasukkan (Max X*Y) : "); scanf("%d",&n);
for(i=0;i<n;i++) //init 4 mhs pertama dari keyboard {
printf("indeks i : ");scanf("%d",&indexI);
printf("indeks j : ");scanf("%d",&indexJ);
printf("Data : ");scanf("%d",&data);
printf("\n");
InitElemenMatriks(&MyMatrix, data, indexI-1,indexJ-1); }
system("pause");break;
case 3: PrintMatriks(MyMatrix);system("pause");break; }