# TUGAS ALJABAR LINIER

PENYELESAIAN SISTEM PERSAMAAN LINIER DENGAN METODE ELIMINASI GAUSS-JORDAN

Disusun oleh : Rendy Wijaya (535080024) Janson Hendryli (535080020) Felisia (535080022)

Fakultas Teknologi Informasi Universitas Tarumanagara 2009
1

DAFTAR ISI
DAFTAR ISI ................................................................................................................................... 2 BAB I PENDAHULUAN ........................................................................................................... 3 1.1 Latar Belakang ............................................................................................................ 3 1.2 Tujuan ......................................................................................................................... 3 1.3 Manfaat ....................................................................................................................... 3 BAB II PEMBAHASAN .............................................................................................................. 4 2.1 Sistem Persamaan Linier ............................................................................................. 4 2.2 Eliminasi Gauss-Jordan .............................................................................................. 5 2.3 Algoritma Program ...................................................................................................... 9 2.4 Keunggulan dan Kelemahan Program ........................................................................ 11 BAB III PENUTUP ........................................................................................................................ 12 3.1 Kesimpulan ................................................................................................................. 12 3.2 Saran-saran .................................................................................................................. 12 DAFTAR PUSTAKA ...................................................................................................................... 13 LAMPIRAN .................................................................................................................................... 14

2

3 Manfaat Manfaat dari laporan serta program yang dibuat kelompok antara lain : 1. Membantu memahami lebih lanjut penyelesaian sistem persamaan linier dengan metode eliminasi Gauss-Jordan. Membantu pengguna yang ingin menyelesaikan sistem persamaan linier. 1.1 Latar Belakang Laporan dan program ini merupakan tugas mata kuliah Aljabar Linier. 3. Pembuatan laporan ini merupakan salah satu tugas yang harus dikumpulkan. 3 .2 Tujuan Pembuatan laporan ini walau awalnya sebagai tugas mata kuliah Aljabar Linier sebenarnya juga sangat membantu kelompok untuk memahami metode eliminasi Gauss-Jordan ini lebih baik. 2. di luar alasan kewajiban (tugas). Tujuan pembuatan program. Topik yang dibahas dalam laporan ini adalah penyelesaian sistem persamaan linier dengan metode eliminasi Gauss-Jordan. 1. Membantu mempelajari langkah-langkah yang dilakukan untuk menyelesaikan sistem persamaan linier. adalah membantu pengguna lainnya yang ingin menyelesaikan sistem persamaan linier.BAB I PENDAHULUAN 1.

Tambahkan baris ketiga dengan (-7) kali baris kedua 1 0 0 0 1 0 -3.67 14 7. Tambahkan baris pertama dengan (-2) kali baris kedua 1 0 0 0 1 7 -3.33 0 0.33 0 6 0.67 4.67 0.33 7 .5 1 1 -3 2 5 1 -1 3 3 6 8 -4 3. Tambahkan baris kedua dengan (-1) kali baris pertama 1 0 -3 2 3 1 -1 4 3 6 2 -4 4.67 14 6.33 0. Tambahkan baris ketiga dengan 3 kali baris pertama 1 0 0 2 3 7 -1 4 0 6 2 14 5. Kalikan baris pertama dengan 0.67 -9.67 0.67 4.33 9.2. Kalikan baris kedua dengan 1/3 1 0 0 2 1 7 -1 0.

33 1 0 0 0 1 0 -3.5 8 3. Menambahkan baris kedua dengan (-0.67 -1 10. Kalikan baris pertama dengan ½ 1 1 1.5 4 -2.67 4.33) kali baris ketiga 1 0 0 0 1 0 0 0 1 1 2 -1 Setelah langkah ke-10. 2x + 3y .33 1 1 0.5z = 7 x + 4y + 8z = 3 1. dan z = -1.33 1 0. Diketahui sistem persamaan linier sebagai berikut. Contoh di atas diterapkan pada sistem persamaan linier dengan n variabel dan n persamaan. Contoh berikut adalah cara menyelesaikan sistem persamaan linier dengan n variabel dan m persamaan. Kalikan baris ketiga dengan -1/9. Menambahkan baris pertama dengan 3. Dari matriks terakhir ini dapat disimpulkan bahwa nilai x = 1.67 -1 9. Ubah menjadi matriks teraugmentasi 2 1 3 4 -5 8 7 3 2.5 -0. Tambahkan baris kedua dengan (-1) kali baris pertama 1 0 1.5 8 3.67 kali baris ketiga 1 0 0 0 1 0 0 0.5 -2.8. maka matriks ini telah dalam bentuk baris eselon tereduksi.67 0.5 2.5 .5 3 3. y = 2.5 10.

Nilai konstanta yang dapat dimasukkan dibatasi paling maksimum adalah 2.4 Keunggulan dan Kelemahan Program Berikut beberapa keunggulan dari program ini : 1. Lanjut ke diagonal selanjutnya.6. j] 8. j] = A[1. j] = A[2. 11 . A[3.147.3].jansonhendryli. yaitu A[3. 9. 2. Program ini telah online dan dapat diakses di http://www. j] + A[3.483. 4. maka lakukan A[1. Setelah itu ubah setiap angka di kolom 2 kecuali pada baris kedua menjadi nol. Berikut beberapa kekurangan dari program ini : 1. Caranya pertama-tama dengan menambah baris pertama dengan 2 kali baris kedua. Untuk mengubah kolom ketiga baris pertama dan ketiga menjadi nol. 2.647. Mempermudah perhitungan untuk sistem persamaan linier yang memiliki banyak variabel. j] = A[1. Setelah itu. j] A[2. j] – 2 * A[3. Karena A[3. kurangi baris ketiga dengan baris kedua. Menggunakan teknologi web (PHP) sehingga dapat diakses oleh pengguna tanpa memperdulikan sistem operasi yang digunakan. j] – A[2. j] = A[3. Karena menggunakan komputasi dengan bantuan komputer. j] + 2 * A[2.net/gaussjordan Setiap program pastilah memiliki kekurangan. 3. Sekarang matriks A telah berbentuk baris eselon yang tereduksi. j] 7. A[1.3] sudah bernilai 1 maka lanjutkan ke proses selanjutnya. maka dapat mengurangi kesalahan dalam perhitungan. j] 10.

Inc.html http://en.org http://mathrefresher.html 14 . Elementary Linear Algebra – Applications Version.edu/Books/CS/chapter2/linear44. John Willey & Sons.wikipedia.krellinst.rice. Howard dan Chris Rorres.org/AiS/textbook/unit2/example_projects/starter/math/matrix/gauss.DAFTAR PUSTAKA Anton. 2005. http://ceee.com http://www2.blogspot.

} if (\$status2 == "hitung") { \$count_error = 0. fclose(\$fp). \$i++) for (\$j=0. if (\$c != 0) \$min_exists++. 15 . \$isOK = false. \$status = \$_POST['status1'].txt".\$n2. \$c++) { if (\$k[\$c] == '-') { \$min_exists++. \$char_exists = 0. \$min_min = false.\$n1. if ((\$status == "tampil_tabel") || (\$status2 == "hitung")) { \$n = \$_POST['ordo'].} </style> <title>Gauss-Jordan</title> <?php \$indexname = "index. \$n2 = \$j+1. for (\$i=0. if (\$k != "") { for (\$c=0. \$c<strlen(\$k). else return \$nn. \$k = \$_POST[\$idx]. function formatInt(\$nn) { if (\$nn == 0) return abs(\$nn). \$m = 0. } else { \$fp = fopen("data. } \$n = 0. \$idx = "x". \$status2 = \$_POST['status2'].php". \$i<\$m. \$j++) { \$min_exists = 0. "w")."-".indice { font-size: 9px.LAMPIRAN File index. vertical-align: sub. \$n1 = \$i+1.php <html> <head> <style type="text/css"> . \$m = \$_POST['ordo2']. \$j<=\$n.

</script>". echo “alert('Anda memasukkan input yang bukan berupa bilangan!'). } ?> </head> <body> <center><h1><font color="blue"> Penyelesaian SPL dengan Eliminasi Gauss-Jordan </font></h1></center> <blockquote> <hr><br> Script ini digunakan untuk menghitung nilai-nilai variabel dalam Sistem Persamaan Linear. } if (\$count_error == \$m*(\$n+1)) { echo "<script language='JavaScript'>”. kemudian tekan tombol <b>proses</b>. Anda dapat memasukkan jumlah variabel pada sistem persamaan linear yang ingin dicari penyelesaiannya dan juga banyaknya persamaan.</script>". } if (\$min_exists > 1) { echo "<script language='JavaScript'>”. echo “alert('Nilai-nilai yang anda masukkan tidak lengkap!'). echo “alert('Anda tidak memasukkan nilai apapun!'). } else if (\$count_error != 0) { echo "<script language='JavaScript'>”. \$min_min = true. } else if (\$char_exists == 0) \$arr[\$i][\$j] = formatInt((int) \$k).continue. } else \$count_error++. ?> > <strong> persamaan</strong> 16 . } else if (\$char_exists > 0) { echo "<script language='JavaScript'>”. } else if (!\$min_min) \$isOK = true.</script>". } if ((ord(\$k[\$c]) < ord('0')) || (ord(\$k[\$c]) > ord('9'))) \$char_exists++.</script>". <br><br> <form action=<?php echo \$indexname. echo “alert('Anda salah memasukkan input!'). ?> > <strong> variabel dari </strong> <input type="text" name="ordo2" size="3" value= <?php echo \$m. ?> method="post" name="form1"> <input type="hidden" name="status1" value="tampil_tabel"> <strong>Menghitung sistem persamaan linear dengan </strong> <input type="text" name="ordo" size="3" value= <?php echo \$n.

echo "<input type='hidden' name='status2' value='hitung'>". \$j++) { echo "<td>".&nbsp. \$j<=\$n. if (\$j != \$n) echo "x<span class=indice>\$n2</span>". echo “ yang ingin anda hitung.</script>".\$n2. echo "<tr>". for (\$j=0. if (\$j == \$n ."-". } echo "</table>". \$n1 = \$i+1. \$i++) { \$colspan = \$n + 1. for (\$i=0. \$k = \$i + 1. echo "</td>".<br>". echo "<tr><td colspan='\$colspan'>Persamaan \$k</td></tr>". echo “alert('Masukkan bilangan positif!'). } else if (\$n > 1000 || \$m > 1000) { echo "<script language='JavaScript'>”.\$n1. echo “alert('Bilangan yang anda masukkan terlalu besar!').<input type="submit" name="submit1" value="Proses"> </form> <?php if ((\$status == "tampil_tabel") || (\$status2 == "hitung")) { if (\$n <= 0 || \$m <= 0) { echo "<script language='JavaScript'>”. echo "<input type='text' name=\$name “. } } if (\$status2 == "hitung" && \$isOK) { 17 . echo "</form>". echo "&nbsp. else echo " + ". echo “value='{\$arr[\$i][\$j]}' size='3'>". \$n2 = \$j+1. echo "<input type='hidden' name='ordo' value=\$n>".</script>". } echo "</tr>". echo "<table bgcolor='lightblue'>".</td></tr>".".1) echo " = ". \$name = "x". \$i<\$m. echo "<input type='submit' name='submit2' value='Hitung'>". } else { echo "Masukkan nilai-nilai konstanta pada sistem persamaan linear”. Lalu tekan tombol <b>hitung</b>. echo "<form action=\$indexname method='post' name='form2'>". else if (\$j == \$n) echo "". echo "<input type='hidden' name='ordo2' value=\$m>". echo "<tr><td>&nbsp.

\$jj++) fputs(\$fp. fputs(\$fp. \$j2<=\$n. fputs(\$fp. \$j2++) { \$arr[\$j1-1][\$j2] = \$arr[\$j1][\$j2]. \$ii<\$m. for (\$ii=0.txt". "1\n").\$noSol = false.0) { \$otherZero = false. \$j2<=\$n. if (\$nZero == \$n+1) { \$otherZero = true. } } for (\$j2=0.0) { while ((\$arr[\$k1][\$k2] == 0. \$j++) if (\$arr[\$i][\$j] == 0. (\$i<\$m)&&(!\$noSol). \$jj<=\$n.0. \$fp = fopen("data. "\$n\n\$m\n"). \$k2 = \$i. \$j2++) if (\$arr[\$j1][\$j2] != 0. break. } } \$k1 = \$i. "w"). for (\$ii=0. ((\$j1<\$m)&&\$otherZero). \$j1++) { for (\$j2=0. if (\$arr[\$k1][\$k2] == 0. \$jj<=\$n. \$ii++) for (\$jj=0. "{\$arr[\$ii][\$jj]}\n"). \$ii++) for (\$jj=0. \$j1<\$m. fputs(\$fp. for (\$i=0. \$j2++) \$arr[\$m-1][\$j2] = 0. \$j1++) for (\$j2=0. } 18 . "{\$arr[\$ii][\$jj]}\n"). \$ii<\$m. for (\$j=0. } if (!\$otherZero) { for (\$j1=\$i+1.0) \$nZero++. \$j<=\$n.0) && (\$k2 < \$n)) { if (\$k1 == \$m) { \$k1 = \$i. \$jj++) fputs(\$fp. \$j2<=\$n. "5\n\$i\n"). \$k2++. \$i++) { \$nZero = 0. for (\$j1=\$i+1. } else ++\$k1.

fputs(\$fp. for (\$ii=0. } 19 . for (\$ii=0. \$j<=\$n. \$k<=\$n. \$ii<\$m. \$arr[\$i][\$j] = \$buff. \$jj++) fputs(\$fp. \$jj<=\$n. if (!\$noSol && (\$nZero != \$n+1)) { \$divider = \$arr[\$i][\$k2]. if ((\$divider != 1) && (\$divider != 0)) { for (\$j=0. "3\n\$i\n\$divider\n"). \$arr[\$k1][\$j] = \$arr[\$i][\$j]. } for (\$j=0. "{\$arr[\$ii][\$jj]}\n"). \$ii<\$m. for (\$k=0. for (\$ii=0. \$k++) \$arr[\$j][\$k] = formatInt(\$arr[\$j][\$k] + (1.0 * \$operand * \$arr[\$k1][\$k])).0) \$nZero++. \$j++) { \$buff = \$arr[\$k1][\$j]. \$ii<\$m.0 / \$divider)). \$j++) \$arr[\$i][\$j] = formatInt(\$arr[\$i][\$j] * (1. \$jj++) fputs(\$fp. \$j<=\$n. fputs(\$fp. "4\n\$j\n\$operand\n\$i\n"). \$j<\$m. } fputs(\$fp. "2\n\$i\n\$k1\n"). \$j<=\$n.0 * \$arr[\$j][\$k2]. \$ii++) for (\$jj=0. \$ii++) for (\$jj=0. \$jj++) fputs(\$fp. "{\$arr[\$ii][\$jj]}\n"). } else \$noSol = true. \$j++) { if ((\$j != \$i) && (\$arr[\$j][\$k2] != 0)) { \$operand = -1.if ((\$k1 != \$i) && !(\$k2 == \$n)) { if (\$arr[\$k1][\$k2] != 0. \$j++) if (\$arr[\$i][\$j] == 0. } } } } fclose(\$fp). for (\$j=0. } } \$nZero = 0. "{\$arr[\$ii][\$jj]}\n"). \$jj<=\$n. \$jj<=\$n.0) { for (\$j=0. \$ii++) for (\$jj=0.

} echo "<br><br>Untuk mengetahui langkah-langkah yang dilakukan “. echo “tak terhingga). for (\$i=0. \$solExists = false. echo "<td><center><strong>". for (\$j=0. \$i<\$m. \$i++) for (\$j=0. for (\$j=0. if (!\$solExists) { echo "<font color='red'>”. \$nZero = 0. for (\$i=0. \$j++) { \$value = abs(\$arr[\$i][\$j]).</strong></font>". \$j++) if (\$arr[\$i][\$j] == 0) \$nZero++.?> <br><br> <?php if (\$status2 == "hitung" && \$isOK) { echo "<strong>Penyelesaian dari persamaan diatas :</strong>". if (\$value != 0) { if (!\$isFirst) if (\$arr[\$i][\$j] >= 0) echo " + ". \$j<\$n. echo "</tr>". \$n1 = \$j+1. \$j<\$n. } } echo "</strong></center></td>". else echo " . \$i<\$m.". \$isFirst = false. \$i++) { \$nZero = 0. \$j<\$n. echo "<table bgcolor='lightgreen' border='4' width='30%'>". echo “<strong>Persamaan ini tidak dapat diselesaikan". echo "<tr>". if (\$nZero != \$m*\$n) { \$solExists = true.php'>lihat hasil selengkapnya</a>". echo " (tidak memiliki solusi atau memiliki solusi yang “. \$isFirst = true. } } echo "</table>". echo “<a href='lihat. 20 . if (\$value != 1) echo \$value. \$n1 = \$i+1. echo "x<span class=indice>\$n1</span>". echo "<td><center><strong>{\$arr[\$i][\$n]}</strong></center></td>". \$j++) if (\$arr[\$i][\$j] == 0) \$nZero++. if (\$nZero == \$n) continue.

</h2>". 1024)). if (\$p == 1) echo "<h2>State awal dari matrix yang akan diproses</h2>". \$n = trim(fgets(\$fp.php <html> <head> <title>Urutan Langkah Penyelesaian</title> <style type="text/css"> . if (\$pivot == 1) echo "1". vertical-align: sub. while (!feof(\$fp)) { \$p = trim(fgets(\$fp. } 21 . else { \$row = (int) trim(fgets(\$fp. \$color1 = 'yellow'.txt".} </style> </head> <body> <blockquote> <h1 align="center">. 1024)) + 1. 1024)). \$color2 = 'lightgreen'.indice { font-size: 9px. echo "<h2>Baris ke-\$row ditukar dengan baris ke-\$pivot</h2>". 1024)). \$pivot = abs(\$pivot). 1024)). "r") or die("<h2><font color='red'>Tidak ada penyelesaian yang dapat ditampilkan. \$m = trim(fgets(\$fp.} ?> </blockquote> </body> </html> File lihat.</h1> <hr> <?php \$fp = fopen("data.</font></h2>").:: Urutan Langkah Penyelesaian ::. } else if (\$p == 3) { echo "<h2>Baris ke-\$row dikalikan dengan ". } else { \$pivot = trim(fgets(\$fp. if (\$pivot < 0) echo "-". if (\$p == 5) { echo "<h2>Menurunkan baris ke-\$row ke baris paling bawah. if (\$p == 2) { \$pivot += 1. else echo "1/\$pivot". echo "</h2>".

echo "<img src='img/down-arrow. } else echo "<tr>". } echo "</table>". echo "<table bgcolor='lightblue' border='1' cellpadding='10'>". \$j<=\$n. \$i++) { if (\$p == 2) { if (\$i+1 == \$row) echo "<tr bgcolor=\$color1>". 1024)) + 1. \$i<\$m. for (\$i=0. fclose(\$fp). echo "<td><center>\$st</center></td>". for (\$j=0. } } echo "<center>". for (\$j=0. echo "<h2>Menambah baris ke-\$row dengan \$pivot kali baris ke-\$row2</h2>". \$j++) { \$k = \$j + 1. } echo "<th><center><b>=</b></center></th>". } echo "</tr>". echo "</center>". \$j++) { \$st = trim(fgets(\$fp. echo "</tr>". ?> <hr> <center> 22 . echo "<th><center><b>x<span class=indice>\$k</span></b></center></th>". else if (\$i+1 == \$pivot) echo "<tr bgcolor=\$color2>". } else if (\$p == 5) { if (\$i == \$m-1) echo "<tr bgcolor=\$color1>". else if (\$i+1 == \$row2) echo "<tr bgcolor=\$color2>".gif'>". } else if (\$p == 4) { if (\$i+1 == \$row) echo "<tr bgcolor=\$color1>". echo "<tr>". } else if (\$p == 3) { if (\$i+1 == \$row) echo "<tr bgcolor=\$color1>".jpg'></center>". } else break. \$j<\$n. 1024)). } echo "<br><center><img src='img/end-sign.else if (\$p == 4) { \$row2 = (int) trim(fgets(\$fp.

go(-1)"> </center> </blockquote> </body> </html> 23 .<input type=button value="Back" onClick="history.