Rabu, 25 Mei 2016

Mengalikan Vektor (2 elemen) dengan Matriks berukuran 2x3 dan Vektor (3 elemen)

1. Identifikasi Masalah
Mengalikan Vektor (2 elemen) dengan Matriks berukuran 2x3 dan Vektor (3 elemen)

2. Menentukan input dan output
Input :
matrix [2] [3] = {4,3,5,6,2,1}  
vektor [3] = {2,4,1}  
vek [2] = {2,9}
Output :
Hasil perkalian matrix 2x3 dan vektor 3 elemen :
25
21

Hasil perkalian vektor(elemen 2) dengan matrix elemen 2x3 dan vektor(elemen 3) :
50
189

3. Membuat Flowchart atau Algoritma
Algoritma Perkalian_Matrix
{ Menghitung hasil perkalian vektor(elemen 2) dengan matrix elemen 2x3 dan vektor(elemen 3)}

Deklarasi :
matrix [2] [3] = {4,3,5,6,2,1}              : integer
vektor [3] = {2,4,1}                            : integer
vek [2] = {2,9}                                  : integer
hasil [2] ={0}                                      : integer

Deskripsi :
Write('Matrik elemen 2x3 : \n')
            for i ÃŸ 0 to 2 do then i++
                        for j ÃŸ 0 to 3 then j++
                                    hasil[i] ÃŸ hasil[i]+(matrix[i][j]*vektor[j]);
            end for
                        end for

for i ÃŸ 0 to 2 do then i++
            for j ÃŸ 0 to 3 then j++ then
                        write(hasil[i][j])
            end for
                        end for

write(‘Vektor 3 elemen: \n’)
            for j ÃŸ 0 to 3 then j++ then
                        write(vektor[i])
end for

write(‘Vektor 2 elemen : \n’)
            for i ÃŸ 0 to 2 then i++ then
                        write(vek[i])
end for

write(‘Hasil perkalian matrix 2x3 dan vektor 3 elemen : \n’)
            for i ÃŸ 0 to 2 then i++
                        write(hasil[i])
end for

write(‘Hasil perkalian vektor(elemen 2) dengan matrix elemen 2x3 dan vektor(elemen 3) : \n’)
for i ÃŸ 0 to 2 then i++
                        hasil[i] ÃŸhasil[i]*vek[i];
                        write(hasil[i])

end for

4. Test Menggunakan data
Input :
matrix [2] [3]:  | 4 3 5 |
 | 6 2 1 |
vektor [3]        : | 2 |
                          | 4|
                          | 1 |
vek [2]   |  2  |
               | 9 |
Output :
Hasil perkalian matrix 2x3 dan vektor 3 elemen :
25
21

Kemudian hasilnya dikalikan dengan asil perkalian vektor(elemen 2) ,
Hasil akhirnya adalah :
50
189

5. Implementasi c++

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void perkalian(int matrix[2][3],int vektor[3],int hasil[2]){
 cout<<"Matrik elemen 2x3 : \n";
 for(int i=0;i<2;i++){
  for(int j=0;j<3;j++)
   hasil[i]=hasil[i]+(matrix[i][j]*vektor[j]);
 }
}

void cetakmatrix(int hasil[][3]){
 for(int i=0;i<2;i++){
  for(int j=0;j<3;j++)
   cout<<hasil[i][j]<<" ";
   cout<<endl;
 }
}

void cetakvektor(int vektor[]){
 cout<<"Vektor 3 elemen: \n";
 for(int i=0;i<3;i++){
  cout<<vektor[i]<<endl;
 }
}

void cetakb(int vek[]){
 cout<<"Vektor 2 elemen : \n";
 for(int i=0;i<2;i++){
  cout<<vek[i]<<endl;
 }
}
void cetak(int hasil[]){
 cout<<"Hasil perkalian matrix 2x3 dan vektor 3 elemen : \n";
 for(int i=0;i<2;i++){
  cout<<hasil[i]<<endl;
 }
}

void cetaka(int vek[2],int hasil[]){
 cout<<"Hasil perkalian vektor(elemen 2) dengan matrix elemen 2x3 dan vektor(elemen 3) : \n";
    for(int i=0;i<2;i++){
 hasil[i]=hasil[i]*vek[i];
 cout<<hasil[i]<<endl;
}
}

int main(int argc, char** argv) {
 int matrix[2][3]={4,3,5,6,2,1}, vektor[3]={2,4,1},vek[2]={2,9},hasil[2]={0};
 perkalian(matrix,vektor,hasil);
 cetakmatrix(matrix);
 cetakvektor(vektor);
 cetak(hasil);
 cetakb(vek);
 cetaka(vek,hasil);
 return 0;
}

6. Exekusi



Selasa, 17 Mei 2016

bubble sort

  • permasalah
    mengurutkan data acak menggunakan metode bubble sort
    metodenya jika nilai sebelah kanan lebih kecil tukar pisisi keduanya.
    misal:
    2 3 1 → (2,3) tak perlu di tukar


    2 3 1 → tukar(3,1) sudah di akhir mulai dari depan lagi
    2 1 3 → tukar(2,1)
    1 2 3 → selesai
  •  analisis
    melakukan perulangan dua tingkat sepanjang array. ditingkat terbawah perulangan dilakukan pengecekan disetiap indek dengan sampingnya apakah lebih besar maka tukarkan posisi keduanya
flowchart raptor
                                            bs(bubble sort proses)
                                                        input
                                                                                           main
                                                                   tampil
                                                                       tukar

  • c++
  • #include <iostream>
    using namespace std;
    void tampil(int d[],int n){
    for(int i=0;i<n;i++)
    cout<<d[i]<<" ";
    cout<<endl;
    }
    void tukar(int &a,int &b){
    int t=a;
    a=b;
    b=t;
    }
    void bs(int d[],int n){
    for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
    if(d[j]>d[j+1]) tukar(d[j],d[j+1]);
    }
    tampil(d,n);
    }
    }
    int main(int argc, char** argv) {
    int d[]={9,2,6,1,8,5,4,0,3,7};
    int n=sizeof d/sizeof(int);
    tampil(d,n);
    bs(d,n);
    return 0;
    }


lama kerja 5 jam

insertion sort

---permasalahan
mengurutkan data dengan metode insertion.
misal:
0 0 0 0 → 4 → 4 0 0 0
4 0 0 0 → 1 → 1 4 0 0
1 4 0 0 → 2 → 1 2 4 0
1 2 4 0 → 3 → 1 2 3 4

---analisis
  1.untuk data pertama masukan ke indek pertama sebagai acuan berikutnya.
  2.masukkan input, cek nilai diurutkan dari depan apakah ada nilai yang lebih besar dari yang     diinputkan maka catat posisinya dan geser posisi tersebut dan setelahnya. kemudian sisipkan     inputan tersebut di posisi yang dicatat.
  3.ulangi langkah kedua sampai selesai inputnya.

flowchart raptor
                                                    gsr(untuk menggeser indek)

                                                                     main

                                                       po(mencari posisi)

          
                                                  t(untuk menampilkan)



c++


#include <iostream>
using namespace std;
int d[8]={0};

int po(int a){
int p=-1;
for(int i=0;i<8;i++){
if(a>d[i]&&d[i]!=0){
p=i;}
}
return p+1;
}

t(){
for(int i=0;i<8;i++){
cout<<d[i]<<" ";
}
cout<<endl;
}
void gsr(int a){
int t;
for(int i=a;i<7;i++){
t=d[i+1];
d[i+1]=d[a];
d[a]=t;

}
}
int main(){
int in;
for(int i=0;i<8;i++){
cin>>in;

if(po(in)<=i) {
gsr(po(in));
d[po(in)]=in;
} else
d[i]=in;
t();
}
}


lama kerja 4 jam

Senin, 16 Mei 2016

Refleksi 9

Assalamualaikum.wr.wb


Refleksi 8

Assalamualaikum.wr.wb
Pada minggu ke-8 Kuliah Algoritma & Pemrograman, di kelas kita membahasa soal UTS, dan sedikit review materi tentang perulangan iteratif dan rekursif.
Diberdayakan oleh Blogger.