Monday, May 24, 2010

membuat detemninat matrix 3x3 dengan menggunakan java

JAVA
Kita akan membuat program untuk menghitung suatu determinant dari matrix dengan ordo 3x3. Berikut adalah penjelsan dan listing program :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class radzi
{
public static void main (String []args) throws IOException
{
BufferedReader Input = new BufferedReader (new InputStreamReader (System.in));
System.out.println("ordo matriks=3*3");
int [][] matrik = new int [3][3];
System.out.println("masukkan elemen matriksnya: ");
for (int i=0;i < 3;i++)
{
for (int j=0;j < 3;j++)
{
System.out.println("elemen ["+(i+1)+","+(j+1)+"]");
matrik[i][j]=Integer.parseInt(Input.readLine());
}
}
for (int i=0;i < 3;i++)
{
System.out.print("|");
for (int j=0;j < 3;j++)
{
System.out.print(matrik [i][j]+" ");
}
System.out.println("|");
}
int dtr = (matrik [0][0]*matrik[1][1]*matrik[2][2])+
(matrik[0][1]*matrik[1][2]*matrik[2][0])+
(matrik[0][2]*matrik[1][0]*matrik[2][1])-
(matrik[2][0]*matrik[1][1]*matrik[0][2])-
(matrik[2][1]*matrik[1][2]*matrik[0][0])-
(matrik[2][2]*matrik[1][0]*matrik[0][1]);
System.out.println("determinannya= "+dtr);
}
}


1. Karena kita nantinya akan melukan suatu input an, maka kita membuatuhkan suatu kelas yang digunakan sebagai class untuk input. Kelas yang dipakai pada program berada dalam package “java io” karena itu kita menggunakan perintah “import java.io.*;” artinya kita akan meng import semua class yang berada dalam package ini. Salah satunya adalah buffered reader yang kita gunakan ini.

2. Menuliskan nama class yang akan kita gunkaan untuk program ini. Pada program ini kita memberikan nama class “ radzi ”

3. Menuliskan method yang akan kita gunakan

4. Mendeklarasikan suatu variable yang akan kita gunakan sebagai tempat penyimpanan untuk nilai input dengan menggunakan bufferedreader. Pada program ini kita menggunakan nama variable “Input”.

5. Kita membuat potongan program untuk melukan input harga – harga dari masing – masing element matrix yang akan kita gunakan
- Mencetak tulisan “ ordo matrix 3x3 “ untuk memberitahu user
- Karena kita akan melakukan perhitungan matrix, dimana tiap element matrix tersebut memiliki index masing – masing, maka kita akan menggunakan array sebagai tempat peyimpanan harga masing – masing element matrix, karena pada array juga terdapat index element, index element inilah yang akan kita gunakan sebagai index untuk matrix yang akan kita input nilainya. Pada program diatas kita mendeklarasikan array dengan nama matrik dengan kapasitas masing – masing 3.
- Menuliskan “masukkan element matrix nya”untuk memebritahu pada user, bahwa user akan memasukkan nilai untuk elemt – element matrix nya.
- Karena kita akan membuat matrix dengan ordo 3x3 maka kita akan memasukkan harga element sebanyak 9 kali,yaitu untuk harga 3 baris dan 3 kolom. Maka untuk memasukkan harga nya, kita akan melalukan suatu perulangan sampai harga – harga tersebut terpenuhi.
a. “for (int i=0,i<3;i++)”
Selama nilai var “i” kurang dari 3, maka statement dibawahnya akan dilakukan terus menerus, dengan nilai awal var “i” adalah 0, dan tiap kali statement yang berada dalam satu block program (dibawah statement ini) telah dilakukan semua, maka nilai dari var akan ditambahkan dengan 1. Dengan begitu akan terjadi 3 kali perulangan, yaitu saat nilai “i” = 0,1,2. Var “i” ini kita gunakan sebagai index untuk baris.

b. “for (intj=0;j<3;j++)”
Selama kondisi dari perulangan var “i” diatas terpenuhi, statement ini lah yang akan di jalankan. Selama nilai var “j” kurang dari 3, maka statement dibawahnya akan dilakukan terus menerus, dengan nilai awal var “j” adalah 0, dan tiap kali statement yang berada dalam satu block program (dibawah statement ini) telah dilakukan semua, maka nilai dari var “j” akan ditambahkan dengan 1. Dengan begitu akan terjadi 3 kali perulangan, yaitu saat nilai “j” = 0,1,2. Maka akan terbentuk index, perulangan pertama : [(0.0),(0.1),(0.2)] saat nilai dari var “i” =0, karena masih meemenuhi kondisi yaitu masih kurang dari 3, maka statement dibawah nya yaitu perulangan untuk var”j” akan dilakukan,var “j”akan terus berulang sampai nilainya tidak kurang dari 3, setalah sudah melewati kondisi tersebut, barulah kita kembali ke variable “i”, namun sekarang nilai dari vari “i” sudah ditambah dengan 1, menjadi = 1, karena masih memenuhi kondisi, maka perulangan akan terus dilakukan. Logika nya pun sama dengan saat nilai dari var “i” = 0, dan terus dilakukan hingga nilai dari var “i” tidak memenuhi kondisi.
Dengan begitu akan terbentuk index [(0.0),(0.1),(0.2),(1.0) (1,1),(1,2),(2,0),(2,1),(2,2)], dengan bilangan pertama adalah nilai dari var “i” dan bilangan kedua adalah nilai dai var “j”. Var “j” ini kita gunakan sebagai index untuk kolom.

- Statement yang akan dijalankan ketika nilai dari var “j” masih terpenuhi adalah :
a. Menuliskan “element ke i+1, j+1”
Karena index pada matrix tidak dimulai dari 0, melaikan dari 1, dan karena nilai dari var “i” dan “j” kita mulai dari angka 0, maka yang akan dilihat user adalah nilai dari va “i” dan “j” saat itu ditambahkan dengan 1, sehingga tidak ada yang tercetak element ke 0.0.
Jika kita membeikan nilai awal pada var “i” dan “j” saat perulangan adalah 1. Maka kita tidak perlu menulisakan “element ke i+1, j+1” melainkan ““element ke i, j” saja. Namun perulangannya menjadi kurang dari 4, agar tetap terjadi 3 kali perulangan, yaitu saat nilai i dan j = 1,2,3.

b. “matrik[i][j]=Integer.parseInt(Input.readLine());”
Artinya adalah kita akan memasukkan nilai – nilai dari input tadi kedaalm array matrik, dengan nilai index awal adalah var “i” dan nilai untuk index kedua adalah nilai dari var “j”. nilai yang kita masukkan walaupun angka, akan dinilai string oleh program, karena itu kita harus merubahnya kedalam nilai integer, dengan perintah “Integer.parseInt(Input.readLine());”.

6. Sekarang kita akan menuliskan potongan program untuk mencetak hasil dari harga – harga matrix yang telah kita masukkan tadi.

- Karena kita harus menuliskan semua harga untuk element yang kita masukkan, maka proses pencetakan juga akan dilakukan sebanyak kita memasukkan harga tadi, yaitu sebanyak 3 kali untuk var”i” dan 3 kali untuk var “j”.
- Kita akan mencetak “|” di pinggir element – element matrix yang berada di bagian paling luar kanan dan paling luar kiri. Karena itu untuk yang dibagian sisi kiri , kita akan mencetak nya dengan menggunakan var “i”, jika var “i” msih terpenuhi maka akan tercetak garis ini. Untuk bagian sisi kanan kita juga menggunakan var “i”, namun akan tanda akan di cetak setelah statement dari var “j” sudah tidak terpenuhi lagi. Dengan begitu matrix akan terlihat berada dalam suatu garis.
- Kita akan mencetak nilai dari array matrik, demgan index ke (i,j). dengan begitu posisi untuk nilai dari masiing – masing matrix yang kita masukkan akan sesuai dengan index nya masing – masing.

7. Kita akan menuliskan potongan program untuk mealukan proses perhitungan kepada matrix yang telah kita input tadi.

- Bentuk umum dari array yang kita gunakan:
(0.0) ( 0.1) (0.2)
(1.0) (1.1) (1.2)
(2.0) (2.1) (2.2)

Proses perhitugan determinant untuk ordo 3x3 adalah:

([0.0]*[1.1]*[2.2])+([0.1]*[1.2]*[2.0])+([0.2]*[1.0]*[2.1])-([2.0]*[1.1]*[0.2])-([2.1]*[1.2]*[0.0])-([2][2]*[1.0]*[0.1])

Kita tuliskan sesuia dengan rumus yang telah di jabarkan diatas, hanya menambahkan nama array yang kita gunakan dan tanda [ ] sebagai penanda element matrix. Contoh : matrik [0][0]*matrik[1][1]. Artinya kita akan mengalikan suatu array dengan nama matrik dengan index ke [0.0] dengan suatu array dengan nama matrik dengan index ke [1.1].
Perhitungan ini kita simpan dalam suatu var dengan nama dtr dengan type data integer.

8. Terakhir, kita akan menulisakn hasil perhitungannya dengan statement “System.out.println("determinannya= "+dtr);” maka akan tercetak tulisan determinannya = nilai dari var dtr tadi, yang merupakan var yang kita gunakan sebagai tempat peyimpanan hasil proses perhitungan determinant.

No comments:

Post a Comment