You are on page 1of 4

BAB II LISTING PROGRAM A. Listing Program 1. Eliminasi Gauss #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <math.

h> #define MAX 20 void gauss2(double a[MAX][MAX], double b[MAX], int, int, double x[MAX]); void cetak(double a[MAX][MAX], double b[MAX], int); void hasil(double a[MAX][MAX], double b[MAX], int); int main(){ double a[MAX][MAX], b[MAX], x[MAX]; int dimensi, baris, kolom, flag; char z; do{ system("cls"); printf("masukkan dimensi : "); scanf("%d",&dimensi); printf("masukkan koefisien matriks :\n"); for(baris=1; baris<=dimensi; baris++){ for(kolom=1; kolom<=dimensi; kolom++){ printf("a(baris[%d],kolom[%d]) : ", baris, kolom); scanf("%lf", &a[baris][kolom]); } } printf("\nmasukkan vektor hasil :\n");

for(baris=1; baris<=dimensi; baris++){ printf("b(baris[%d]): ", baris); scanf("%lf", &b[baris]); } cetak(a, b, dimensi); printf("\nTekan sembarang tombol untuk memulai perhitungan\n"); getch(); gauss2(a, b, dimensi, flag, x); if(flag!=0){ printf("\nTekan sembarang tombol untuk memulai perhitungan nilai x\n"); getch(); hasil(a, b, dimensi); } printf("\n\nNgulangi lagi ?(y/t) >"); z=getch(); printf("\n\n"); }while(z=='y'||z=='Y'); } void gauss2(double a[MAX][MAX], double b[MAX], int dimensi, int flag, double x[MAX]){ double pivot1, pivot2; int pos, baris, kolom; flag = 1; for(pos=1; pos<=dimensi; pos++){ pivot1 = a[pos][pos]; if(pivot1 == 0){ flag=0;

printf("pivot pada a[%d][%d] bernilai nol, tidak ada penyelesaian", pos, pos); break; } else{ for(kolom=1; kolom<=dimensi; kolom++) a[pos][kolom]=a[pos][kolom]/pivot1; b[pos]=b[pos]/pivot1; cetak(a, b, dimensi); for(baris=pos; baris<=dimensi; baris++){ if(baris+1<=dimensi){ pivot2 = a[baris+1][pos]; for(kolom=1; kolom<=dimensi; kolom++) a[baris+1][kolom]=a[pos][kolom]*(pivot2)+a[baris+1][kolom]; b[baris+1]=b[pos]*(-pivot2)+b[baris+1]; cetak(a, b, dimensi); } } } } } void cetak(double a[MAX][MAX], double b[MAX], int dimensi){ int baris, kolom; printf("\n"); for(kolom=1; kolom<=dimensi; kolom++) printf("a%d",kolom); printf("b \n"); for(baris=1; baris<=dimensi; baris++){ for(kolom=1; kolom<=dimensi; kolom++)

printf("%6.2lf", a[baris][kolom]); printf("%6.2lf\n", b[baris]); } } void hasil(double a[MAX][MAX], double b[MAX], int dimensi){ int pos, kolom, i; double x[MAX], temp; x[dimensi]=b[dimensi]/a[dimensi][dimensi]; for(pos=dimensi-1;pos>=1;pos--){ temp=b[pos]; for(kolom=pos+1;kolom<=dimensi;kolom++) temp=temp-a[pos][kolom]*x[kolom]; x[pos]=temp/a[pos][pos]; } printf("\n\nHASILNYA ADALAH\n"); printf("\n"); printf("| I | X(I) |\n"); printf("\n"); for (i=1;i<=dimensi;i++) { printf("|"); printf("%5d", i); printf("\t |"); printf("%15lf |\n", x[i]); } printf("\n"); }

You might also like