Exploring the Ocean of Science

Aplikasi Penyelesaian Persamaan Linier Simultan dengan C++ (Metode Eliminasi Gauss Jordan)

Metode ini merupakan pengembangan metode eliminasi Gauss, hanya saja augmented matrik, pada sebelah kiri diubah menjadi matrik diagonal sebagai berikut:

Penyelesaian dari persamaan linier simultan diatas adalah nilai d1,d2,d3,…,dn dan atau:

Teknik yang digunakan dalam metode eliminasi Gauss-Jordan ini sama seperti metode eliminasi Gauss yaitu menggunakan OBE (Operasi Baris Elementer). Hanya perhitungan penyelesaian secara langsung diperoleh dari nilai pada kolom terakhir dari setiap baris.

Algoritma Metode Eliminasi Gauss-Jordan adalah sebagai berikut:

  1. Masukkan matrik A, dan vektor B beserta ukurannya n
  2. Buat augmented matrik [A|B] namakan dengan A
  3. Untuk baris ke i dimana i=1 s/d n
    • Perhatikan apakah nilai ai,i sama dengan nol :
      Bila ya :
      pertukarkan baris ke i dan baris ke i+k≤n, dimana ai+k,i tidak sama dengan
      nol, bila tidak ada berarti perhitungan tidak bisa dilanjutkan dan proses
      dihentikan dengan tanpa penyelesaian.Bila tidak : lanjutkan
    • Jadikan nilai diagonalnya menjadi satu, dengan cara untuk setiap kolom k
      dimana k=1 s/d n+1, hitung
  4. Untuk baris ke j, dimana j = i+1 s/d n
    Lakukan operasi baris elementer: untuk kolom k dimana k=1 s/d n, Hitung
  5. Penyelesaian, untuk i = n s/d 1 (bergerak dari baris ke n sampai baris pertama)

Berikut ini salah satu program menggunakan bahasa pascal untuk menyelesaikan persamaan Linear Simultan dengan metode Gauss Jordan :

uses crt;Const

Max = 25;

Type

Matrik = record

Row, col : byte;

Element : array [1..max, 1..max] of real;

End;

Vektor = record

Row : byte;

Element : array [1..max] of real;

End;

Var

x, b : vektor;

A : matrik;

n : integer;

c : real;

Error : boolean;

Procedure masukkandata;

Var i,j : byte;

Begin

Writeln(‘Penyelesaian Persamaan Linier dengan Metode Gauss Jordan’);

Write (‘Jumlah persamaan :’);

Readln (n);

A.row := n;

A.col := n ;

b.row := n;

for i := 1 to n do

begin

writeln (‘Persamaan ke ‘,i );

for j := 1 to n do

begin

write (‘X[‘,i,’,’,j,’] = ‘);

readln (A.element[i,j]);

end;

write(‘Y[‘,i,’]   = ‘); readln(A.element[i,n+1]);

writeln;

end;

end;

procedure eliminasigauss;

var I,j,k : integer;

temp, S : real;

Begin

Error := false;

For i := 1 to n do

Begin

If (A.element[i,i] = 0 ) then

Begin

write(A.element[i,i]) ;

Error := true;

Exit;

End;

temp := A.element[i,i];

for k := 1 to n+1 do

begin

A.element[i,k] := A.element[i,k] / temp;

end;

For j := 1  to n do

begin

if(j<>i) then

begin

c := A.element[j,i];

for k := 1 to n+1 do

begin

A.element[j,k] := A.element [j,k] – (c * A.element[i,k]);

end;

end;

end;

end;

x.row := n;

for i := n downto 1 do

begin

if (A.element [i,i] = 0.0 ) then

Begin

Error := true;

Exit;

End;

x.element[i] := A.element[i,n+1];

end;

end;

Procedure tulishasil;

Var i : byte;

Begin

If (error) then

Begin

Writeln (‘Persamaan simultan linear tidak dapat diselesaikan’);

End

Else

Begin

Writeln;

Writeln (‘Penyelesaian persamaan linear dengan Gauss Jordan : ‘);

For i := 1 to x.row do

Writeln(‘X’,i,’ = ‘,x.element[i]:6:2);

End;

End;

Begin

clrscr;

Masukkandata;

Eliminasigauss;

Tulishasil;

readln;

End.

Comments on: "Aplikasi Penyelesaian Persamaan Linier Simultan dengan C++ (Metode Eliminasi Gauss Jordan)" (19)

  1. keren..
    makasi banyak atas postingannya..

  2. hai..boleh kasi masukan buat metode gauss aja gak??
    thanks yah..

  3. soma wahyu said:

    nice info 🙂

    klo untuk bahasa c++ ato java ada gak ya??????

    • Aku blom ada tuhh… Silahkan di konversi sendiri yah… 🙂 Tapi ya kira2 begitulah alurnya….

      Ntar kalo sempet aku coba konversiin ke c++ / java dech… 🙂

      Thnks

  4. Mohamed Kikai said:

    Contoh soalnya ga’ ada jadi kurang ngerti saya……!!!!!!!!!!!!!!!!!!!

    • Hehehe… maaf yaaa…. saya tidak sertakan contoh soalnya karena ini hanya untuk pembuatan programnya saja :).. kalo kamu ada contoh soalnya langsung saja di aplikasiin pada aplikasi ini… thanks for coming 🙂

      • maaf.. knpa saya sudah tulis dengan saksama script yang kak tulis di atas tapi kok ada yang masih error juga yah..??? mohon pencerahannya

      • coba di print scr errornya dan copy coding yg sudah diketik, kemudian kirim email aja ke caryn.imyut[at]gmail[dot]com 🙂

  5. thanks yah….! atas informasinya,salam kenal ….!

  6. thanks ya,.,postingannya membantu bgt 😉

  7. gemblonk said:

    with c++

  8. kira2 metode matrix ini bisa digunakan atau diapplikasikan untuk apa ya???

  9. Trimakasih admin, sangat membantu. Tetapi saya sangat berharap admin mau kiranya menuliskan juga contoh soalnya.

    Saya juga berharap fast respons dr admin

    • @Ardiansah : Mohon maaf yaaa..postingan saya tersebut untuk memenuhi tugas saya saat kuliah dan untuk saat ini saya blm ada maksud untuk memperdalamnya .. Untuk contoh lebih detail sudah banyak diinternet bahkan ada video juga seperti di https://youtu.be/Ey62H_oaqoE

      Terima Kasih sudah berkunjung… ^^

Leave a reply to Halidi Doank Cancel reply