Modul 3 MATRIKS

  

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 erstruktur yang dapat menyimpan

banya 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 typedef infotype Matriks[X][Y]; //Matriks adalah tipe baru 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) { int i,j; for(i=0;i<X;i++) { for(j=0;j<Y;j++)

  { (*M)[i][j]=0;

  } }

  } void InitElemenMatriks(Matriks *M, infotype data, int i, int j) {

  (*M)[i][j]=data; } void PrintMatriks(Matriks M) { int i,j; for(i=0;i<X;i++) { for(j=0;j<Y;j++)

  { printf("%d ",M[i][j]); } printf("\n");

  } }

  //file MMatriks.c

  #include "Matriks.h" void main() { int indexI, indexJ, pilihan, i, n; infotype data; Matriks MyMatrix; do { system("cls"); printf("=====menu====="); printf("\n1.Inisialisasi Matriks"); 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; }

  } while(pilihan !=0); }