Saturday, June 30, 2007

SD: Guided 29 Juni 2007

/*karena format HTML, maka semua karakter lebih besar (>) dan lebih kecil (<) diganti dengan karakter ((>)) dan ((<)) sorry (^-^)*/

//file header.h

#include (<)stdio.h(>)
#include (<)conio.h(>)
#include (<)stdlib.h(>)
#define max 20

typedef struct{
int elmt[max] [max];
int row;
int column;
}matrix;

void createempty(matrix *m);
void masukkanmatrix(matrix *m, char nama);
void tampilkanmatrix(matrix m, char nama);
void transpose(matrix *m);


//file definition.c

#include "header.h"

void createempty(matrix *m)
{
(*m).row=0;
(*m).column=0;
}

void masukkanmatrix(matrix *m, char nama)
{
int i,j;
printf("\nMasukkan matrix %c\n",nama);
for(i=0;i(<)(*m).row;i++)
{
for(j=0;j(<)(*m).column;j++)
{
printf("baris %d, kolom %d = ",i+1,j+1);
scanf("%d",&((*m).elmt[i][j]));
}
printf("\n");
}
}

void tampilkanmatrix(matrix m, char nama)
{
int i,j;
printf("\nMatrix %c :\n",nama);
for(i=0;i(<)m.row;i++)
{
for(j=0;j(<)m.column;j++)
{
printf("%5d ",m.elmt[i][j]);
}
printf("\n");
}
}

void transpose(matrix *m)
{
int i,j;
matrix c;
c.column=(*m).column;
c.row=(*m).row;
for(i=0;i(<)(*m).row;i++)
{
for(j=0;j(<)(*m).column;j++)
{
c.elmt[i][j]=(*m).elmt[i][j];
}
}
for(i=0;i(<)(*m).column;i++)
{
for(j=0;j(<)(*m).row;j++)
{
(*m).elmt[i][j]=c.elmt[j][i];
}
}
(*m).row=c.column;
(*m).column=c.row;
}


//file main.c

#include "header.h"

void main()
{
int opt;
matrix a,b,c;

createempty(&a);
createempty(&b);

do
{
system("cls");
printf("MENU\n");
printf("1. Menginisialisasikan matriks A dan matriks B\n");
printf("2. Menginputkan elemen matriks A dan matriks B\n");
printf("3. Menampilkan matriks A dan matriks B\n");
printf("4. Transpose matriks A dan matriks B\n");
printf("0. Keluar\n");
printf("Masukkan pilihan anda : ");scanf("%d",&opt);
printf("\n");
switch(opt)
{
case 1:
createempty(&a);
createempty(&b);
printf("Matrix A dan matrix B sudah dikosongkan\n");
break;
case 2:
printf("Jumlah baris matriks A : ");scanf("%d",&a.row);
printf("Jumlah kolom matriks A : ");scanf("%d",&a.column);
masukkanmatrix(&a,'A');
printf("Jumlah baris matriks B : ");scanf("%d",&b.row);
printf("Jumlah kolom matriks B : ");scanf("%d",&b.column);
masukkanmatrix(&b, 'B');
break;
case 3:
tampilkanmatrix(a, 'A');
printf("\n");
tampilkanmatrix(b,'B');
break;
case 4:
printf("Sebelum Transpose");
tampilkanmatrix(a, 'A');
printf("\n");
tampilkanmatrix(b,'B');
transpose(&a);
transpose(&b);
printf("\n\nOperasi Selesai\n\n");
printf("Sesudah Transpose");
tampilkanmatrix(a, 'A');
printf("\n");
tampilkanmatrix(b,'B');
break;
case 0:
printf("BYE");
break;
default:
printf("Nomor yang anda masukkan salah");
break;
}
getch();
}while(opt!=0);
}

No comments: