Sie sind auf Seite 1von 4

BAB VII LAMPIRAN Source code program : #include <stdio.h> #include <stdlib.

h> void Masukkan_Data1(float X[][1000], int Jumlah); void Masukkan_Data2(float X[], int Jumlah); void Nilai_Khusus(float X[][1000], float Y[][1000], float Z[][1000], int Jumlah); void Nilai_Lain(float X[][1000], float Y[][1000], float Z[][1000], int Jumlah); void Matriks(float X[], float Y[], float Z[][1000], int Jumlah); void Variabel(float X[][1000], float Y[], float Z[], int Jumlah); void Output_Data(float X[], int Jumlah); int N; float A[1000][1000], B[1000], L[1000][1000], U[1000][1000], C[1000], D[1000]; int main() { printf("Masukkan berapa banyaknya variabel yang akan akan Anda cari.\nBanyaknya variabel yang dicari : "); scanf("%d", &N); printf("\nPersamaan linear dengan (n) variabel dapat ditulis dengan format sebagai berikut : \n"); printf("a11.x1+a12.x2+a13.x3+....+a1n.xn=a1\n"); printf("a21.x1+a22.x2+a23.x3+....+a2n.xn=a2\n\n"); printf("|a11 a12 a13 a.. a1n|\n"); printf("|a21 a22 a23 a.. a2n|\n"); printf("|a.. a.. a.. a.. a3n|\n"); printf("|an1 an2 an3 a.. ann|\n"); Masukkan_Data1(A, N); Masukkan_Data2(B, N); Nilai_Khusus(A, L, U, N); Nilai_Lain(A, L, U, N); Matriks(C, B, L, N); Variabel(U, D, C, N-1); Output_Data(D, N); system("PAUSE"); } void Masukkan_Data1(float X[][1000], int Jumlah) { int i,j; for(i=0;i<Jumlah;i++) { for(j=0;j<Jumlah;j++) { printf("masukkan variabel a%d%d!", i+1, j+1); scanf("%f", &X[i][j]);

} } } void Masukkan_Data2(float X[], int Jumlah) { int i; for(i=0;i<Jumlah;i++) { printf("masukkan variabel a%d!", i+1); scanf("%f", &X[i]); } } void Nilai_Khusus(float X[][1000], float Y[][1000], float Z[][1000], int Jumlah) /* Fungsi tersebut digunakan untuk memberi nilai unik yaitu pada diagonal matriks L, U, di atas diagonal L, di bawah diagonal U, tepi atas U, tepi awal L. */ { int i, j, k, l, m, n; for(i=0;i<Jumlah;i++){ Y[i][i]=1; for(j=i+1;j<Jumlah;j++){ Y[i][j]=0; } } for(k=1;k<Jumlah;k++){ for(l=k-1;l>=0;l--){ Z[k][l]=0; } } for(m=0;m<Jumlah;m++){ Z[0][m]=X[0][m]; } for(n=0;n<Jumlah;n++){ Y[n][0]=X[n][0]/Z[0][0]; } } void Nilai_Lain(float X[][1000], float Y[][1000], float Z[][1000], int Jumlah) { int i, j, k, l, m; float minus1; float minus2; for(i=1;i<Jumlah;i++){ for(j=i;j<Jumlah;j++){

minus1=0; for(k=0;k<i;k++){ minus1=minus1+Y[i][k]*Z[k][j]; } Z[i][j]=X[i][j]-minus1; } for(l=1;l<i+1;l++){ minus2=0; for(m=0;m<l;m++){ minus2=minus2+Y[i+1][m]*Z[m][l]; } Y[i+1][l]=X[i+1][l]/Z[l][l]-minus2/Z[l][l]; } } } void Matriks(float X[], float Y[], float Z[][1000], int Jumlah) { int i, j; float minus; X[0]=Y[0]; for(i=1;i<Jumlah;i++){ minus=0; for(j=0;j<i;j++){ minus=minus+Z[i][j]*X[j]; } X[i]=Y[i]-minus; } } void Variabel(float X[][1000], float Y[], float Z[], int Jumlah) { int i, j; float minus; Y[Jumlah]=Z[Jumlah]/X[Jumlah][Jumlah]; for(i=Jumlah-1;i>=0;i--){ minus=0; for(j=Jumlah;j>i;j--){ minus=minus+X[i][j]*Y[j]; } Y[i]=Z[i]/X[i][i]-minus/X[i][i]; } } void Output_Data(float X[], int Jumlah) { int i; for(i=0;i<Jumlah;i++){

printf("Variabel-variabel yang Anda cari, x%d adalah %f\n", i+1, X[i]); } } Hasil compile program pada terminal Ubuntu : hamdanjz4@hamdanjz4:~/Desktop$ gcc doolittle.c hamdanjz4@hamdanjz4:~/Desktop$ ./a.out Masukkan berapa banyaknya variabel yang akan akan Anda cari. Banyaknya variabel yang dicari : 3 Persamaan linear dengan (n) variabel dapat ditulis dengan format sebagai berikut : a11.x1+a12.x2+a13.x3+....+a1n.xn=a1 a21.x1+a22.x2+a23.x3+....+a2n.xn=a2 |a11 a12 a13 a.. a1n| |a21 a22 a23 a.. a2n| |a.. a.. a.. a.. a3n| |an1 an2 an3 a.. ann| masukkan variabel a11!2 masukkan variabel a12!6 masukkan variabel a13!2 masukkan variabel a21!-3 masukkan variabel a22!-8 masukkan variabel a23!0 masukkan variabel a31!4 masukkan variabel a32!9 masukkan variabel a33!2 masukkan variabel a1!2 masukkan variabel a2!2 masukkan variabel a3!3 Variabel-variabel yang Anda cari, x1 adalah 2.000000 Variabel-variabel yang Anda cari, x2 adalah -1.000000 Variabel-variabel yang Anda cari, x3 adalah 2.000000

Das könnte Ihnen auch gefallen