Interactive Learning: Metode Numerik Gauss dengan GNU Octave
โ Kode berhasil dicopy ke clipboard!
๐ต
Kontrol Audio
80%
85%
๐ Progress Pembelajaran
0
Materi Selesai
0
Latihan Benar
0
Total Skor
๐ Teori Metode Gauss
1
Pengenalan Metode Eliminasi Gauss
Metode Eliminasi Gauss adalah algoritma untuk menyelesaikan sistem persamaan linear (SPL) dengan mengubah matriks augmented menjadi bentuk eselon baris. Metode ini sangat efektif untuk SPL dengan banyak variabel.
Contoh Sistem Persamaan Linear:
2x + y - z = 8
-3x - y + 2z = -11
-2x + y + 2z = -3
2
Langkah-langkah Metode Gauss
1. Bentuk matriks augmented dari SPL
2. Lakukan operasi baris elementer untuk membuat elemen di bawah diagonal utama = 0
3. Gunakan substitusi mundur untuk mencari solusi
GNU Octave dapat membantu kita memahami berbagai metode numerik dengan menyusun tahapan penyelesaiannya melalui rangkaian kode yang logis..
๐ป Praktik Koding Step-by-Step untuk Pemula
๐ฏ Panduan untuk Pemula
Jangan khawatir jika Anda belum pernah coding sebelumnya! Kami akan mulai dari dasar dan menjelaskan setiap detail step by step. GNU Octave adalah bahasa pemrograman yang mudah dipelajari untuk komputasi numerik.
๐ค
Spark Mathics GenOff - Tutor Virtual Anda
0
Dasar-dasar GNU Octave untuk Pemula
Sebelum kita mulai dengan Metode Gauss, mari pahami dasar-dasar GNU Octave:
% Ini adalah komentar - teks setelah % tidak dijalankan
% Komentar berguna untuk menjelaskan kode
% Membuat variabel sangat mudah:
a = 5; % Menyimpan angka 5 ke variabel a
b = 10; % Menyimpan angka 10 ke variabel b
c = a + b; % Menjumlahkan a dan b, hasilnya 15
% Menampilkan hasil ke layar:
disp('Hasil penjumlahan:');
disp(c);
Penjelasan baris per baris:
โข % = Tanda komentar, apapun setelahnya tidak dijalankan
โข a = 5; = Menyimpan nilai 5 ke variabel bernama 'a'
โข ; = Titik koma agar hasil tidak ditampilkan otomatis
โข disp() = Fungsi untuk menampilkan hasil ke layar
โข [1, 2, 3; 4, 5, 6] = Cara membuat matriks, koma = kolom baru, titik koma = baris baru
๐ฅ Latihan 1: Tulis Ulang Kode Dasar (Anti Copy-Paste)
TIPE: MENULIS MANUAL
Tulis ulang kode di atas dengan tepat. PERHATIAN: Copy-paste tidak diperbolehkan! Anda harus mengetik manual untuk belajar.
๐ Referensi Kode untuk Latihan 1
% Ini adalah komentar - teks setelah % tidak dijalankan
% Komentar berguna untuk menjelaskan kode
% Membuat variabel sangat mudah:
a = 5; % Menyimpan angka 5 ke variabel a
b = 10; % Menyimpan angka 10 ke variabel b
c = a + b; % Menjumlahkan a dan b, hasilnya 15
% Menampilkan hasil ke layar:
disp('Hasil penjumlahan:');
disp(c);
๐ก Bantuan:
โข Mulai dengan baris komentar menggunakan %
โข Jangan lupa titik koma (;) setelah setiap statement
โข Gunakan tanda kutip tunggal untuk string: 'teks'
โข Matriks menggunakan kurung siku [] dengan koma untuk kolom, titik koma untuk baris
โข Setiap variabel harus diakhiri dengan ; untuk menyembunyikan output
โข Spasi dalam operasi matematika opsional: a=5; atau a = 5; keduanya benar
1
Mendefinisikan Matriks Augmented
Sekarang kita akan belajar membuat matriks untuk sistem persamaan. Misalkan kita punya 3 persamaan dengan 3 variabel (x, y, z):
Sistem Persamaan Linear:
2x + 1y - 1z = 8
-3x - 1y + 2z = -11
-2x + 1y + 2z = -3
% LANGKAH 1: Buat matriks koefisien A
% A berisi angka-angka yang ada di depan x, y, z
A = [2, 1, -1; -3, -1, 2; -2, 1, 2];
disp('Matriks koefisien A:');
disp(A);
% LANGKAH 2: Buat vektor konstanta b
% b berisi angka-angka di sebelah kanan tanda =
b = [8; -11; -3];
disp('Vektor konstanta b:');
disp(b);
% LANGKAH 3: Gabungkan A dan b menjadi matriks augmented
% Matriks augmented = [A | b]
Ab = [A, b];
disp('Matriks Augmented [A|b]:');
disp(Ab);
Penjelasan detail:
โข A = [2, 1, -1; -3, -1, 2; -2, 1, 2]; = Membuat matriks 3ร3 dengan koefisien x, y, z
โข b = [8; -11; -3]; = Membuat vektor kolom (pakai titik koma untuk baris baru)
โข [A, b] = Menggabungkan matriks A dengan vektor b secara horizontal
โข disp() = Menampilkan hasil agar kita bisa melihatnya
โข PENTING: Setiap statement harus diakhiri titik koma (;) untuk syntax yang benar
๐ฅ Latihan 2: Buat Matriks Sendiri
TIPE: MEMBUAT SENDIRI
Buat kode untuk sistem persamaan berikut:
Sistem Persamaan:
1x + 2y + 3z = 14
2x - 1y + 1z = 5
3x + 1y - 1z = 2
๐ Format Kode yang Diharapkan
% Buat matriks koefisien A
A = [koef_x_pers1, koef_y_pers1, koef_z_pers1;koef_x_pers2, koef_y_pers2, koef_z_pers2; koef_x_pers3, koef_y_pers3, koef_z_pers3];
% Buat vektor konstanta b
b = [konstanta_pers1; konstanta_pers2; konstanta_pers3];
% Gabungkan menjadi matriks augmented
Ab = [A, b];
Tulis kode untuk membuat matriks A, vektor b, dan matriks augmented Ab!
๐ก Bantuan:
โข Matriks A berisi koefisien: [1, 2, 3; 2, -1, 1; 3, 1, -1]
โข Vektor b berisi konstanta: [14; 5; 2] (gunakan titik koma untuk kolom)
โข Matriks augmented: Ab = [A, b]
โข Jangan lupa disp() untuk menampilkan hasil
โข Setiap statement harus diakhiri dengan ; (titik koma)
2
Eliminasi Maju - Membuat Segitiga Atas
Sekarang kita akan mengubah matriks agar bagian bawah diagonal utama menjadi nol (bentuk segitiga atas):
Tujuan Eliminasi: Mengubah matriks menjadi bentuk segitiga atas
dimana semua elemen di bawah diagonal utama = 0
% ELIMINASI KOLOM 1 (membuat elemen di bawah A(1,1) = 0)
% Langkah 2.1: Hitung faktor untuk baris 2
factor21 = Ab(2,1) / Ab(1,1);
disp(['Faktor untuk baris 2: ', num2str(factor21)]);
% Langkah 2.2: Kurangi baris 2 dengan kelipatan baris 1
Ab(2,:) = Ab(2,:) - factor21 * Ab(1,:);
disp('Setelah eliminasi elemen (2,1):');
disp(Ab);
% Langkah 2.3: Hitung faktor untuk baris 3
factor31 = Ab(3,1) / Ab(1,1);
disp(['Faktor untuk baris 3: ', num2str(factor31)]);
% Langkah 2.4: Kurangi baris 3 dengan kelipatan baris 1
Ab(3,:) = Ab(3,:) - factor31 * Ab(1,:);
disp('Setelah eliminasi kolom 1 selesai:');
disp(Ab);
Penjelasan koding eliminasi maju:
โข factor21 = Ab(2,1) / Ab(1,1); = Menghitung faktor untuk eliminasi baris 2
โข Ab(2,1) = Mengambil elemen baris 2, kolom 1 dari matriks Ab
โข Ab(2,:) = Mengambil seluruh baris 2 (: artinya semua kolom)
โข num2str() = Mengubah angka menjadi teks agar bisa ditampilkan dengan disp
โข factor21 * Ab(1,:) = Mengalikan seluruh baris 1 dengan faktor eliminasi
๐ฅ Latihan 3: Tulis Kode Eliminasi
TIPE: MEMBUAT SENDIRI
Tulis kode untuk melakukan eliminasi kolom 2 (membuat Ab(3,2) = 0). Gunakan matriks Ab yang sudah diproses dari langkah sebelumnya.
๐ Pola Eliminasi Kolom 2
% Eliminasi kolom 2 - mirip dengan kolom 1
% Hitung faktor untuk membuat Ab(3,2) = 0
factor32 = Ab(3,2) / Ab(2,2);
% Tampilkan faktor
disp(['Faktor untuk baris 3, kolom 2: ', num2str(factor32)]);
% Tampilkan hasil
disp('Setelah eliminasi kolom 2:');
disp(Ab);
๐ก Bantuan:
โข Faktor untuk eliminasi kolom 2: factor32 = Ab(3,2) / Ab(2,2);
โข Update baris 3: Ab(3,:) = Ab(3,:) - factor32 * Ab(2,:);
โข Tampilkan faktor dan hasil dengan disp()
โข Jangan lupa num2str() untuk menggabung teks dan angka
โข Setiap statement harus diakhiri dengan ; (titik koma)
3
Substitusi Mundur - Mencari Solusi
Setelah matriks berbentuk segitiga atas, kita gunakan substitusi mundur untuk mencari nilai x, y, z:
% Langkah 4.1: Siapkan tempat untuk menyimpan jawaban
n = size(Ab, 1); % n = jumlah baris (3)
x = zeros(n, 1); % Buat vektor kosong untuk jawaban
% Langkah 4.2: Cari z (variabel terakhir) dulu
% Dari baris terakhir: Ab(3,3)*z = Ab(3,4)
x(n) = Ab(n, n+1) / Ab(n, n);
disp(['z = ', num2str(x(n))]);
% Langkah 4.3: Cari y dan x menggunakan loop mundur
for i = n-1:-1:1 % Loop dari baris n-1 sampai 1 (mundur)
sum_ax = 0; % Variabel untuk menyimpan penjumlahan
% Hitung kontribusi variabel yang sudah diketahui
for j = i+1:n
sum_ax = sum_ax + Ab(i, j) * x(j);
end
% Hitung nilai variabel ke-i
x(i) = (Ab(i, n+1) - sum_ax) / Ab(i, i);
% Tampilkan hasilnya
if i == 2
disp(['y = ', num2str(x(i))]);
elseif i == 1
disp(['x = ', num2str(x(i))]);
end
end
Penjelasan koding substitusi mundur:
โข n = size(Ab, 1); = Mengambil jumlah baris matriks Ab
โข x = zeros(n, 1); = Membuat vektor kosong berisi nol untuk menyimpan solusi
โข x(n) = Ab(n, n+1) / Ab(n, n); = Mencari variabel terakhir (z) dari baris terakhir
โข for i = n-1:-1:1 = Loop mundur dari baris ke-(n-1) sampai baris 1
โข x(i) = (Ab(i, n+1) - sum_ax) / Ab(i, i); = Rumus substitusi mundur
๐ฅ Latihan 4: Tulis Ulang Kode Substitusi Mundur (Anti Copy-Paste)
TIPE: MENULIS MANUAL
Tulis ulang kode substitusi mundur di atas. Copy-paste tidak diperbolehkan! Perhatikan loop dan kondisi if-elseif!
๐ Referensi Substitusi Mundur
% SUBSTITUSI MUNDUR - mencari nilai x, y, z
% Langkah 4.1: Siapkan tempat untuk menyimpan jawaban
n = size(Ab, 1); % n = jumlah baris (3)
x = zeros(n, 1); % Buat vektor kosong untuk jawaban
% Langkah 4.2: Cari z (variabel terakhir) dulu
% Dari baris terakhir: Ab(3,3)*z = Ab(3,4)
x(n) = Ab(n, n+1) / Ab(n, n);
disp(['z = ', num2str(x(n))]);
% Langkah 4.3: Cari y dan x menggunakan loop mundur
for i = n-1:-1:1 % Loop dari baris n-1 sampai 1 (mundur)
sum_ax = 0; % Variabel untuk menyimpan penjumlahan
% Hitung kontribusi variabel yang sudah diketahui
for j = i+1:n
sum_ax = sum_ax + Ab(i, j) * x(j);
end
% Hitung nilai variabel ke-i
x(i) = (Ab(i, n+1) - sum_ax) / Ab(i, i);
% Tampilkan hasilnya
if i == 2
disp(['y = ', num2str(x(i))]);
elseif i == 1
disp(['x = ', num2str(x(i))]);
end
end
๐ก Bantuan:
โข n = size(Ab, 1); untuk mengambil jumlah baris
โข x = zeros(n, 1); untuk membuat vektor kosong
โข Loop mundur: for i = n-1:-1:1
โข Loop dalam: for j = i+1:n
โข Rumus: x(i) = (Ab(i, n+1) - sum_ax) / Ab(i, i);
โข Gunakan if i == 2 untuk cek variabel y, elseif i == 1 untuk x
4
Verifikasi Hasil - Memastikan Solusi Benar
Setelah mendapat solusi x, y, z, kita harus memverifikasi bahwa solusi tersebut benar dengan menguji apakah Aรx = b:
Verifikasi: A ร x = b
Jika ||Aรx - b|| โ 0, maka solusi benar
Penjelasan koding verifikasi:
โข check = A * x; = Mengalikan matriks A dengan vektor solusi x
โข error_diff = check - b; = Menghitung selisih antara Aรx dengan b
โข tolerance = 1e-10; = Menetapkan toleransi error (1ร10-10)
โข all(abs(error_diff) < tolerance) = Mengecek apakah semua elemen error lebih kecil dari toleransi
โข norm(error_diff) = Menghitung norma error untuk mengukur tingkat akurasi
๐ฅ Latihan 5: Tulis Ulang Kode Verifikasi (Anti Copy-Paste)
TIPE: MENULIS MANUAL
Tulis ulang kode verifikasi di atas tanpa komentar %. Copy-paste tidak diperbolehkan! Fokus pada kode dasar saja!
๐ก Bantuan:
โข check = A * x; untuk menghitung A kali x
โข error_diff = check - b; untuk menghitung selisih
โข tolerance = 1e-10; untuk toleransi error
โข is_correct = all(abs(error_diff) < tolerance); untuk cek semua elemen
โข Gunakan if-else-end untuk menampilkan hasil verifikasi
โข norm_error = norm(error_diff); untuk menghitung norma error
๐ Kode Lengkap Metode Gauss & Instruksi Testing
๐ Kode Lengkap GNU Octave - Siap Copy ke Software!
Berikut adalah kode lengkap yang bisa langsung dicopy dan dijalankan di GNU Octave di laptop Anda:
% ========================================
% METODE ELIMINASI GAUSS LENGKAP
% Created by SparkMathics Genie
% ========================================
% LANGKAH 3: Substitusi Mundur (Back Substitution)
disp('=== SUBSTITUSI MUNDUR ===');
n = size(Ab, 1);
x = zeros(n, 1);
% Cari variabel terakhir (z)
x(n) = Ab(n, n+1) / Ab(n, n);
disp(['z = ', num2str(x(n))]);
% Cari variabel lainnya secara mundur
for i = n-1:-1:1
sum_ax = 0;
for j = i+1:n
sum_ax = sum_ax + Ab(i, j) * x(j);
end
x(i) = (Ab(i, n+1) - sum_ax) / Ab(i, i);
if i == 2
disp(['y = ', num2str(x(i))]);
elseif i == 1
disp(['x = ', num2str(x(i))]);
end
end
Download GNU Octave: Kunjungi octave.org/download dan install di laptop Anda
Buka GNU Octave: Jalankan aplikasi GNU Octave setelah instalasi selesai
Copy Kode: Klik tombol "Copy Kode Lengkap" di atas untuk menyalin seluruh kode
Paste ke Octave: Paste kode di Command Window GNU Octave dan tekan Enter
Lihat Hasil: Program akan menampilkan setiap tahap eliminasi Gauss dan solusi akhir
Eksperimen: Ubah nilai matriks A dan b untuk mencoba sistem persamaan yang berbeda
โ Hasil yang Diharapkan:
Program akan menampilkan:
โข Matriks awal dan augmented
โข Proses eliminasi step-by-step
โข Hasil substitusi mundur
โข Solusi akhir: x = 2, y = 3, z = 1
โข Verifikasi bahwa solusi benar dengan pesan konfirmasi
โข Selisih error yang seharusnya sangat kecil (mendekati nol)
โ ๏ธ Tips Troubleshooting:
โข Jika ada error "syntax error", periksa titik koma (;) di setiap akhir statement
โข Jika matriks tidak terbentuk dengan benar, periksa tanda koma dan titik koma
โข Pastikan tidak ada spasi ekstra dalam penamaan variabel
โข Gunakan clear; clc; di awal untuk membersihkan workspace
โข Jika verifikasi menunjukkan FALSE, periksa kembali perhitungan eliminasi