Anda di halaman 1dari 7

Source code : doolittlefix.

c
#include <stdio.h>
void input_persamaan();
void cetak_input();
void doolittle();
void hitung_nilai_variabel();
float matriks[100][100],nilai[100],hasil[100],jumlah_kurang,sementara[100];
int n,i,j,k,l,m,p,q,x,tambah1=0,tambah2=1;
void input_persamaan(int n,float matriks[100][100],float nilai[100])
{
for(i=0;i<n;i++)
{
printf("---------------------------------------------------------------------\n");
printf("Untuk persamanan ke-%d \n", i+1);
for(j=0;j<n;j++)
{
printf("Masukkan koefisien variabel X%d : \n",j+1);
scanf("%f",&matriks[i][j]);
}
printf("Masukkan nilai persamaan : \n");
scanf("%f",&nilai[i]);
}
}
void cetak_input(int n,float matriks[100][100],float nilai[100])
{
printf("---------------------------------------------------------------------\n");
printf("Hasil input dalam bentuk persamaan linear\n");
printf("---------------------------------------------------------------------\n\n");
for(i=0;i<n;i++)
{
printf("Persamaan ke-%d \n",i+1);
for(j=0;j<n;j++)
{
printf("(%.4f)X%d",matriks[i][j],j+1);
if(j!=n-1)
{
printf(" + ");
}
}
printf(" = %.4f \n",nilai[i]);
}
printf("\n");
printf("---------------------------------------------------------------------\n");
printf("Hasil input dalam bentuk matriks\n");
printf("---------------------------------------------------------------------\n\n");
for(i=0;i<n;i++)

printf("| ");
for(j=0;j<n;j++)
{
printf("%.4f\t",matriks[i][j]);
}
printf("\b\b\b\b\b\b\b\b\b | | X %d | = | %f |\n",i+1,nilai[i]);

}
printf("\n");

void doolittle(int n,float matriks[100][100])


{
for(i=0,j=0;i<(n-1),j<n;i++,j++)
{
for(k=tambah1;k<n;k++)
{
jumlah_kurang=0;
if(i!=0)
{
for(l=0; l<j; l++)
{
jumlah_kurang=jumlah_kurang+matriks[j][l]*matriks[l][k];
}
printf("Nilai jumlah kurang = %.4f \n",jumlah_kurang);
}
matriks[j][k]=(matriks[j][k]-jumlah_kurang);
}
tambah1++;
for(m=tambah2;m<n;m++)
{
jumlah_kurang=0;
if(i!=0)
{
for(l=0; l<i; l++)
{
jumlah_kurang=jumlah_kurang+matriks[m][l]*matriks[l][i];
}
}
matriks[m][i]=(matriks[m][i]-jumlah_kurang)/matriks[i][i];
}
tambah2++;
printf("---------------------------------------------------------------------\n");
printf("Iterasi ke- %d \n", j+1);
printf("---------------------------------------------------------------------\n");
for(p=0; p<n; p++)
{
for(q=0;q<n;q++)
{
printf("%.4f\t",matriks[p][q]);
}
printf("\n");

}
void hitung_nilai_variabel(int n, float matriks[100][100],float
nilai[100],float hasil[100])
{
for(i=0;i<n;i++)
{
jumlah_kurang=0;
if(i!=0)
{
for(j=0;j<i;j++)
{
jumlah_kurang=jumlah_kurang+(matriks[i][j]*sementara[j]);
}
}
sementara[i]=nilai[i]-jumlah_kurang;
}
for(i=(n-1),x=n;i>=0,x>0;i--,x--)
{
jumlah_kurang=0;
if(i!=(n-1))
{
for(j=(n-1);j>i;j--)
{
jumlah_kurang=jumlah_kurang+(matriks[i][j]*hasil[j]);
}
}
hasil[i]=(sementara[i]-jumlah_kurang)/matriks[i][i];
}
}
void tampil_hasil(int n,float hasil[100])
{
for (i=0;i<n;i++)
{
printf("Nilai variabel X%d = %.4f \n",i+1,hasil[i]);
}
}
main()
{
printf("**************************************************************
********\n");
printf("**************** Program Pemecahan Persamaan Linear
******************\n");
printf("**************** dengan Metode Matriks & Doolittle
******************\n");
printf("**************************************************************
********\n");
printf("**************************************************************
********\n");
printf("* PERINGATAN!! Program hanya dapat menghitung maksimal 100
variabel **\n");
printf("**************************************************************

********\n\n");
printf("Masukkan jumlah persamaan : \n");
scanf("%d", &n);
printf("\n");
input_persamaan(n,matriks,nilai);
cetak_input(n,matriks,nilai);
system("pause");
doolittle(n,matriks);
printf("\n");
system("pause");
hitung_nilai_variabel(n,matriks,nilai,hasil);
printf("**************************************************************
********\n");
printf("**************** Ini hasil dari persamaan linearnya
******************\n");
printf("**************************************************************
********\n");
tampil_hasil(n,hasil);
printf("**************************************************************
********\n");
printf("**************************** Terima Kasih
***************************\n");
printf("**************************************************************
********\n");
getch();
}

Terminal
**********************************************************************
**************** Program Pemecahan Persamaan Linear ******************
**************** dengan Metode Matriks & Doolittle ******************
**********************************************************************
**********************************************************************
* PERINGATAN!! Program hanya dapat menghitung maksimal 100 variabel **
**********************************************************************
Masukkan jumlah persamaan :
5
---------------------------------------------------------------------Untuk persamanan ke-1

Masukkan koefisien variabel X1 :


1
Masukkan koefisien variabel X2 :
2
Masukkan koefisien variabel X3 :
3
Masukkan koefisien variabel X4 :
4
Masukkan koefisien variabel X5 :
5
Masukkan nilai persamaan :
74
---------------------------------------------------------------------Untuk persamanan ke-2
Masukkan koefisien variabel X1 :
2
Masukkan koefisien variabel X2 :
5
Masukkan koefisien variabel X3 :
-1
Masukkan koefisien variabel X4 :
-2
Masukkan koefisien variabel X5 :
3
Masukkan nilai persamaan :
5
---------------------------------------------------------------------Untuk persamanan ke-3
Masukkan koefisien variabel X1 :
-4
Masukkan koefisien variabel X2 :
6
Masukkan koefisien variabel X3 :
5
Masukkan koefisien variabel X4 :
-4
Masukkan koefisien variabel X5 :
1
Masukkan nilai persamaan :
-2
---------------------------------------------------------------------Untuk persamanan ke-4
Masukkan koefisien variabel X1 :
3
Masukkan koefisien variabel X2 :
-5
Masukkan koefisien variabel X3 :
1
Masukkan koefisien variabel X4 :
1
Masukkan koefisien variabel X5 :
-8
Masukkan nilai persamaan :
-4
---------------------------------------------------------------------Untuk persamanan ke-5
Masukkan koefisien variabel X1 :

-2
Masukkan koefisien variabel X2 :
5
Masukkan koefisien variabel X3 :
10
Masukkan koefisien variabel X4 :
3
Masukkan koefisien variabel X5 :
2
Masukkan nilai persamaan :
98
---------------------------------------------------------------------Hasil input dalam bentuk persamaan linear
---------------------------------------------------------------------Persamaan ke-1
(1.0000)X1 + (2.0000)X2 + (3.0000)X3 + (4.0000)X4 + (5.0000)X5 =
Persamaan ke-2
(2.0000)X1 + (5.0000)X2 + (-1.0000)X3 + (-2.0000)X4 + (3.0000)X5
Persamaan ke-3
(-4.0000)X1 + (6.0000)X2 + (5.0000)X3 + (-4.0000)X4 + (1.0000)X5
Persamaan ke-4
(3.0000)X1 + (-5.0000)X2 + (1.0000)X3 + (1.0000)X4 + (-8.0000)X5
Persamaan ke-5
(-2.0000)X1 + (5.0000)X2 + (10.0000)X3 + (3.0000)X4 + (2.0000)X5

74.0000
= 5.0000
= -2.0000
= -4.0000
= 98.0000

---------------------------------------------------------------------Hasil input dalam bentuk matriks


---------------------------------------------------------------------|
|
|
|
|

1.0000
2.0000
-4.0000
3.0000
-2.0000

2.0000
5.0000
6.0000
-5.0000
5.0000

3.0000
-1.0000
5.0000
1.0000
10.0000

4.0000
-2.0000
-4.0000
1.0000
3.0000

|
|
|
|
|

|
|
|
|
|

X
X
X
X
X

1
2
3
4
5

|
|
|
|
|

=
=
=
=
=

|
|
|
|
|

74.000000 |
5.000000 |
-2.000000 |
-4.000000 |
98.000000 |

Press any key to continue . . .


---------------------------------------------------------------------Iterasi ke- 1
---------------------------------------------------------------------1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 5.0000 -1.0000 -2.0000 3.0000
-4.0000 6.0000 5.0000 -4.0000 1.0000
3.0000 -5.0000 1.0000 1.0000 -8.0000
-2.0000 5.0000 10.0000 3.0000 2.0000
Nilai jumlah kurang = 4.0000
Nilai jumlah kurang = 6.0000
Nilai jumlah kurang = 8.0000
Nilai jumlah kurang = 10.0000
---------------------------------------------------------------------Iterasi ke- 2
---------------------------------------------------------------------1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 1.0000 -7.0000 -10.0000
-7.0000
-4.0000 14.0000 5.0000 -4.0000 1.0000
3.0000 -11.0000
1.0000 1.0000 -8.0000
-2.0000 9.0000 10.0000 3.0000 2.0000

Nilai jumlah kurang = -110.0000


Nilai jumlah kurang = -156.0000
Nilai jumlah kurang = -118.0000
---------------------------------------------------------------------Iterasi ke- 3
---------------------------------------------------------------------1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 1.0000 -7.0000 -10.0000
-7.0000
-4.0000 14.0000 115.0000
152.0000
119.0000
3.0000 -11.0000
-0.7391 1.0000 -8.0000
-2.0000 9.0000 0.6870 3.0000 2.0000
Nilai jumlah kurang = 9.6522
Nilai jumlah kurang = 4.0435
---------------------------------------------------------------------Iterasi ke- 4
---------------------------------------------------------------------1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 1.0000 -7.0000 -10.0000
-7.0000
-4.0000 14.0000 115.0000
152.0000
119.0000
3.0000 -11.0000
-0.7391 -8.6522 -12.0435
-2.0000 9.0000 0.6870 0.3950 2.0000
Nilai jumlah kurang = 3.9910
---------------------------------------------------------------------Iterasi ke- 5
---------------------------------------------------------------------1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 1.0000 -7.0000 -10.0000
-7.0000
-4.0000 14.0000 115.0000
152.0000
119.0000
3.0000 -11.0000
-0.7391 -8.6522 -12.0435
-2.0000 9.0000 0.6870 0.3950 -1.9910
Press any key to continue . . .
**********************************************************************
**************** Ini hasil dari persamaan linearnya ******************
**********************************************************************
Nilai variabel X1 = 4.0000
Nilai variabel X2 = 3.0000
Nilai variabel X3 = 6.0000
Nilai variabel X4 = 9.0000
Nilai variabel X5 = 2.0000
**********************************************************************
**************************** Terima Kasih ***************************
**********************************************************************