menu matrix c++

16
LAPORAN AKHIR NAMA : YUSIKA RONA QORIYANA KELAS : 2 KA 15 NPM : 12108126 TANGGAL : 8 APRIL 2010 MATERI : FUNGSI KETUA : TISKA ASS. BARIS : FAUZIAH BARIS : 5 PARAF

Upload: yusika101008

Post on 26-Jun-2015

323 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Menu Matrix C++

LAPORAN AKHIR

NAMA : YUSIKA RONA QORIYANA

KELAS : 2 KA 15

NPM : 12108126

TANGGAL : 8 APRIL 2010

MATERI : FUNGSI

KETUA : TISKA

ASS. BARIS : FAUZIAH

BARIS : 5

PARAF

( )

LABORATORIUM SISTEM INFORMASIUNIVERSITAS GUNADARMA

SCRIPT PROGRAM :

Page 2: Menu Matrix C++

2

Page 3: Menu Matrix C++

OUTPUT :

3

Page 4: Menu Matrix C++

Menu MatrixLOGIKA PROGRAM :

Program matriks di atas terdiri dari beberapa sub menu yang terdiri dari ‘INPUT’,

‘TAMPIL’, ‘TAMBAH’,’KURANG’,’KALI’,’DETERMINAN’,dan’TRANSPOSE’.

4

Page 5: Menu Matrix C++

Matriks adalah himpunan skalar (bilangan riil atau kompleks) yang disusun/dijajarkan

secara empat persegi panjang (menurut baris-baris dan kolom-kolom). Skalar-skalar itu

disebut elemen matriks.

Dalam sub menu ‘INPUT’ terdapat perintah dari program agar user memasukkan

elemen-elemen matriks yang akan diproses. Di sini kita menginputkan dua buah matriks

dimana dalam setiap satu matriks terdapat beberapa elemen-elemen matriks. Elemen

matriks tersebut berisikan baris dan kolom. Misal dalam hasil compile terdapat output

seperti : ’Input Elemen 1:[2],[1]= ’ Hal ini berarti masukkan elemen matriks yang terletak

pada baris dua kolom 1. Pada proses input terdapat script program sebagai berikut:

int input()

{

clrscr();

cout<<"\n matriks pertama \n";

for(int i=1;i<=2;i++)

{for(int j=1;j<=2;j++)

{cout<<"+ elemen ["<<i<<","<<j<<"]=";cin>>m1[i][j];

}

}

}

Script program tersebut memiliki suatu pendefinisian input matriks 1 dan 2

dengan statemen tipe data int sebagai suatu pengantar dari fungsi tersebut. Kemudian

untuk membuat matriks dibutuhkan statemen perulangan ”FOR”. Nillai i bernilai 1

sampai dengan 2. Untuk variabel j bernilai 1 sampai dengan 2. Variabel i menunjukan

baris dan variabel j menunjukkan kolom. Oleh karena itu matriks ini dapat ditamlikan

dengan suatu deret dengan batasan nilai tertinggi 2 atau suatu matriks yang berdimensi 2

yang memiliki ordo 2x2 yang terdiri atas dua baris dan dua kolom. Setelah

mendefinisikan matriks tersebut dalam program terdapat statemen ’cout<<"+ elemen

["<<i<<","<<j<<"]=";cin>>m1[i][j];’ Hal ini berarti program akan mencetak ’+ elemen

[i],[j]= ”;’ dengan ”<<i<<” sebagai suatu perulangan baris dan kolom. Nilai awal i dan j

sama dengan 1, oleh karena itu program mencetak ’+ elemen [1],[1]= ’ kemudian nilai j

bertambah 1 menjadi 2 sehingga nilai i=1 dan j=2 sehingga program akan mencetak ’+

5

Page 6: Menu Matrix C++

elemen [1],[2]= ’. Karena nilai j telah memenuhi syarat perulangan maksimal sebanyak

2,maka nilai i bertambah 1 menjadi 2 sedangkan nilai j bernilai 1, maka program akan

mencetak ’+ elemen [2],[1]= ’. Selanjutnya nilai j bertambah 1 sehingga i=2, j=2 maka

program akan mencetak ’elemen [2],[2]= ’. Nilai i dan j telah memenuhi syarat

perulangan sehingga program berhenti mencetak input elemen matriks. Proses keluaran

tersebut akan berlangsung secara simultan setelah user menginputkan angka pada setiap

inputan yang diminta dalam pemasukan elemen matriks.

Untuk sub menu ’TAMPIL’ dengan script sebagai berikut:

int tampil()

{

clrscr();

cout<<"* matrik pertama :\n";

for(int i=1;i<=2;i++)

{

for(int j=1;j<=2;j++)

{

cout<<" "<<" ";

cout<<m1[i][j];

}

cout<<"\n";

}

cout<<"\n\n";

Pada awalnya program mencetak ’ * matrik pertama :’. Kemudian dilanjutkan dengan

melewati proses perulangan dalam pencetakan baris dan kolom dengan mencetak matriks

M[i][j]. Sama seperti penjelasan yang telah dijabarkan di atas, hasil keluaran tersebut

mengikuti logika dari statemen perulangan yang sebelumnya. Variabel i sebagai baris dan

variabel j sebagi kolom. Dengan nilai awal i=1 dan j=1. Misalnya jika kita menginputkan

elemen [1],[1]= 3 ; elemen [1][2]=2; elemen [2],[1]=5; dan elemen [2],[2]=1 maka

program akan menampilkan matriks sebagai berikut : 3 2

5 1

6

Page 7: Menu Matrix C++

Hal ini terjadi karena M[i][j] menunjukkan matriks yang terdiri dari (baris,kolom).

Sehingga jika nilai i=1 dan j=1 yang diberi inputan ’3’ maka program akan mencetak ’3’

pada baris 1 kolom 1. Kemudian nilai j bertambah menjadi 2 sebab dalam pengerjaan

statemen ”for” bersarang aharus dikerjakan pada bagian dalam program terlebih dahulu

sehingga nilai j bertambah 1. Nilai i=1 dan j=2 dengan inputan ’2’ maka program akan

mencetak ’2’ pada baris 1 kolom 2. Karena nilai j telah memenuhi syarat perulangan

dengan nilai j maksimal = 2, maka nilai i bertambah 1. Nilai i=2 dan nilai j=1 dengan

inputan ’5’ maka program akan mencetak ’5’ pada baris 2 kolom 1. Nilai variabel i tetap

dan variabel j bertambah menjadi 2. Nilai i=2 dan j=2 dengan inputan ’1’ maka program

akan mencetak ’1’ pada baris 2 kolom 2. Semua syarat perulangan telah terpenuhi dengan

batasan maksimum jumlah baris dan kolom sebanyak 2 buah.

Pada sub menu ’DETERMINAN’ tidak ditampilkan suatu proses perulanagn.

Namun yan diberikan disini adalah proses perhitungannya. Yang didapat dengan rumus :

d=m[1][1]*m[2][2]-m[1][2]*m[2][1].

Pada sub menu ’TAMBAH’ terdapat proses perhitungan matriks yakni dengan

menjumlahkan elemen-elemen yang terdapat pada matriks m1 dan elemen matriks m2.

Misalnya pada matriks m1 dan m2 terdapat nilai elemen matriks sebagai berikut :

Elemen M Elemen N

[1],[1] = 3 [1],[1] = 4

[1],[2] = 2 [1],[2] = 3

[2],[1] = 5 [2],[1] = 7

[2],[2] = 1 [2],[2] = 6

Setelah kita menginputkan matriks m1 dan m2 maka program akan membaca matriks m1

dan m2 kemudian secara otomatis program akan menjumlahkan dua matriks tersebut

dengan format ’cout<< m1[i.][j]+m2[i][j]<<” ”;’. Dari statemen tersebut dapat terlihat

bahwa penjumlahan dilakukan dengan menjumlahakan matriks m1 yang memiliki baris

ke-i dan kolom ke-j dengan matriks m2 yang memiliki baris ke-i dan kolom ke-j. Dimana

7

Page 8: Menu Matrix C++

nilai awal sampai akhir dari variabel i dan j didapat dari proses perulangan ’FOR’ dengan

baris dan kolom sebanyak dua buah.

for(int i=1;i<=2;i++)

{for(int j=1;j<=2;j++)

{cout<<m1[i][j]+m2[i][j]<<" ";}

Penjelasan dari program di atas maksudnya adalah:

o i=1 i<=2?, j=1, j<=2?

Cetak hasil dari m1[1][1]+m2[1][1] pada baris 1 kolom 1, dimana elemen matriks m1

[1][1] = 3 dan nilai elemen matriks m2[1][1] = 4. Maka output pada baris 1 kolom 1

adalah ’3+4’ = ’7’.

o i=1 i<=2?, j=2. Nilai j bertambah sebab pada proses perulangan ’for’ bersarang

statemen yang harus dikerjakan terlebih dahulu adalah bagian dalam dari for

bersarang tersebut.

Cetak hasil dari m1[1][2]+m2[1][2] pada baris 1 kolom 2, dimana elemen matriks m1

[1][2] = 2 dan nilai elemen matriks n2[1][2] = 3. Maka output pada baris 1 kolom 1

adalah ’2+3’ = ’5’.

o Kemudian nilai i bertambah 1 sebab variabel j telah memenuhi syarat perulangan

maksimal yakni nilai maksimal =2 sehingga i=i++ atau i=1+1. i=2, j=1.

Cetak hasil dari m1[2][1]+m2[2][1] pada baris 2 kolom 1, dimana elemen matriks m1

[2][1] = 5 dan nilai elemen matriks m2[2][1] = 7. Maka output pada baris 2 kolom 1

adalah ’5+7’ = ’12’.

o i=2, j=2 hal ini merupakan proses perhitungan terakhir karena nilai variabel dari i dan

j telah memenuhi nilai maksimal. Langkah selanjutnya adalah mencetak hasil dari

m1[2][2]+m2[2][2] pada baris 2 kolom 2, dimana elemen matriks m1 [2][2] = 1 dan

nilai elemen matriks m2[2][2] = 6. Maka output pada baris 2 kolom 2 adalah ’1+6’ =

’7’.

Sama seperti sub menu tambah, pada sub menu ’KURANG’ juga terdapat proses

perhitungan matriks yakni dengan mengurangkan elemen-elemen yang terdapat pada

matriks m1 dan elemen matriks m2. Setelah kita menginputkan matriks m1 dan m2 maka

program akan membaca matriks m1 dan m2 kemudian secara otomatis program akan

menjumlahkan dua matriks tersebut dengan format ’cout<< m1[i.][j]+m2[i][j]<<” ”;’.

8

Page 9: Menu Matrix C++

Dari statemen tersebut dapat terlihat bahwa penjumlahan dilakukan dengan

menjumlahakan matriks m1 yang memiliki baris ke-i dan kolom ke-j dengan matriks m2

yang memiliki baris ke-i dan kolom ke-j. Dimana nilai awal sampai akhir dari variabel i

dan j didapat dari proses perulangan ’FOR’ dengan baris dan kolom sebanyak dua buah.

for(int i=1;i<=2;i++)

{for(int j=1;j<=2;j++)

{cout<<m1[i][j]+m2[i][j]<<" ";}

Penjelasan dari program di atas maksudnya adalah:

o i=1 i<=2?, j=1, j<=2?

Cetak hasil dari m1[1][1]-m2[1][1] pada baris 1 kolom 1, dimana elemen matriks m1

[1][1] = 3 dan nilai elemen matriks m2[1][1] = 4. Maka output pada baris 1 kolom 1

adalah ’3-4’ = ’-1’.

o i=1 i<=2?, j=2. Nilai j bertambah sebab pada proses perulangan ’for’ bersarang

statemen yang harus dikerjakan terlebih dahulu adalah bagian dalam dari for

bersarang tersebut.

Cetak hasil dari m1[1][2]-m2[1][2] pada baris 1 kolom 2, dimana elemen matriks m1

[1][2] = 2 dan nilai elemen matriks m2[1][2] = 3. Maka output pada baris 1 kolom 1

adalah ’2-3’ = ’-1’.

o Kemudian nilai i bertambah 1 sebab variabel j telah memenuhi syarat perulangan

maksimal yakni nilai maksimal =2 sehingga i=i++ atau i=1+1. i=2, j=1.Cetak hasil

dari m1[2][1]-m2[2][1] pada baris 2 kolom 1, dimana elemen matriks m1 [2][1] = 5

dan nilai elemen matriks m2[2][1] = 7. Maka output pada baris 2 kolom 1 adalah ’5-

7’ = ’-2’.

o i=2, j=2 hal ini merupakan proses perhitungan terakhir karena nilai variabel dari i dan

j telah memenuhi nilai maksimal. Langkah selanjutnya adalah mencetak hasil dari

m1[2][2]-m2[2][2] pada baris 2 kolom 2, dimana elemen matriks m1 [2][2] = 1 dan

nilai elemen matriks m2 [2][2] = 6. Maka output pada baris 2 kolom 2 adalah ’1-6’ =

’-5’.

Pada sub menu ’KALI’ akan menampilkan hasil perkalian dari Matriks yang telah

kita inputkan sebelumnya. perkalian matriks ini dilakukan antara Matriks m1 dan Matriks

9

Page 10: Menu Matrix C++

m2. Jika kita umpamakan dua buah matriks sebagai matriks m1 dan matriks m2 yang

berordo 2x2 maka perkalian matriks dapat dirumuskan sebagai berikut:

m1(1,1)*m2(1,1)+m1(1,2)*m2(2,1) m1(1,1)*m2(1,2)+m1(1,2)*m2(2,2)

m1(2,1)*m2(1,1)+m1(2,2)*m2(2,1) m1(2,1)*m2(1,2)+m1(2,2)*m2(2,2)

int perkalian()

{

int z;

tampil();

cout<<"\n* perkalian matriks \n";

for(int i=1;i<=2;i++)

{

for(int j=1;j<=2;j++)

{

z=(m1[i][1]*m2[1][j]+m1[i][2]*m2[2][j]);cout<<z;

cout<<" "<<" ";

}

cout<<"\n";

}

return 0;

}

o i=1 , j=1, dengan rumus : m1[i][1]*m2[1][j]+m1[i][2]*m2[2][j]

Cetak hasil dari m1[1][1]*m2[1][1]+m1[1][2]*m2[2][1]pada baris 1

kolom 1, dimana elemen matriks m1 [1][1] = 3, nilai elemen matriks m2[1][1] = 4

nilai elemen matriks m1[1][2] = 2 dan nilai elemen matriks m2[2][1] = 7.. Maka

output pada baris 1 kolom 1 adalah ’(3*4)+(2*7)’ = ’26’.

o i=1 i<=2?, j=2. Nilai j bertambah sebab pada proses perulangan ’for’ bersarang

statemen yang harus dikerjakan terlebih dahulu adalah bagian dalam dari for

bersarang tersebut.

10

Page 11: Menu Matrix C++

Cetak hasil dengan rumus : m1[i][1]*m2[1][j]+m1[i][2]*m2[2][j] sehingga untuk

baris 1 kolom 2 menjadi dengan rumus : m1[1][1]*m2[1][2]+m1[1][2]*m2[2][2],

dimana elemen matriks m1 [1][1] = 3, nilai elemen matriks m2[1][2] = 3, elemen

matriks m1[1][2] = 2, elemen matriks m2[2][2] = 6. Maka output pada baris 1 kolom

1 adalah ’(3*3)+(2*6)’ = ’21’.

o Kemudian nilai i bertambah 1 sebab variabel j telah memenuhi syarat perulangan

maksimal yakni nilai maksimal =2 sehingga i=i++ atau i=1+1. i=2, j=1.Cetak hasil

dengan rumus : m1[i][1]*m2[1][j]+m1[i][2]*m2[2][j] sehingga untuk baris 2 kolom 1

menjadi dengan rumus : m1[2][1]*m2[1][1]+m1[2][2]*m2[2][1], dimana elemen

matriks m1 [2][1] = 5, nilai elemen matriks m2[1][1] = 4, elemen matriks m1[2][2] =

1, elemen matriks m2[2][1] = 7. Maka output pada baris 1 kolom 1 adalah

’(5*4)+(1*7)’ = ’27’.

o i=2, j=2 hal ini merupakan proses perhitungan terakhir karena nilai variabel dari i dan

j telah memenuhi nilai maksimal. Langkah selanjutnya adalah mencetak hasil dengan

rumus : m1[i][1]*m2[1][j]+m1[i][2]*m2[2][j] sehingga untuk baris 2 kolom 2

menjadi dengan rumus : m1[2][1]*m2[1][2]+m1[2][2]*m2[2][2], dimana elemen

matriks m1 [2][1] = 5, nilai elemen matriks m2[1][2] = 3, elemen matriks m1[2][2] =

1, elemen matriks m2[2][2] = 6. Maka output pada baris 1 kolom 1 adalah

’(5*3)+(1*6)’ = ’21’.

Dalam sub menu ’TRANSPOSE’ akan menampilkan suatu program transpose

matriks. Jika suatu matriks m1 berukuran axb, maka matriks transpose m1 akan

berukuran bxa atau dengan kata lain elemen baris dari matriks m1 akan menjadi elemen

kolom matriks B (baris jadi kolom). Oleh karena itu dalam hasil keluaran atau mencetak

ke layar, program bertuliskan statemen ‘cout<<m2[j][i]<<" ";’ yang berarti

program akan mencetak keluaran berupa matriks dengan baris j (yang pada pendefinisian

awal merupakan variabel untuk kolom) dan kolom i (pada pendefinisian awal merupakan

variabel untuk baris).

11