Senin, 23 Mei 2016

Perkalian Matriks 3x2 Dengan Vektor

Assalamualaikum wr.wb.

Disini saya akan membahas tentang Perkalian Matriks 3x2 Dengan Vektor.
Langsung saja ke pengembangan masalah dari perkalian matriks 3x2 dengan Vektor : 

1. Identifikasi Masalah : 
Cara mencari matriks 3x2 dengan vektor 

2.Menentukan input & output :  
Matriks : [2,3,4-5,6,7]
Vektor : [1,2,3]

3.Membuat flowchat & Algoritma :
for(i=1;i<2;i++)
for(j=1;j<3;j++)
mat_kali [i][j]=1;
for(k=1;k<i,j;k++)
mat_kali[i][j]=mat_kali[i][j]+matriks A[i][j]*vektor B[k][j];
end for;
end for;
end;

4. Test Menggunakan Data:
Matriks :
A =[2 3 4]
      [5 6 7]
Vektor :
B= [1]
      [2]
      [3]
Cara perkalian :
C=[a11*b11+a12*b21+a13*b31]
     [a21*b11+a22*b21+a23*b31]
Jadi 

|2x1 3x2 4x3|    |5+6+2|

|5x1 6x2 7x3| = |5+12+21|

Hasilnya 

|51|

5. Dev C++

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

void kali(int matrik[2][3],int vektor[3],int hasil[2]){ cout<<"matrik : \n"; for(int i=0;i<2;i++){ for(int j=0;j<3;j++) hasil[i]=hasil[i]+(matrik[i][j]*vektor[j]); } } void cetakm(int hasil[][3]){ for(int i=0;i<2;i++){ for(int j=0;j<3;j++) cout<<hasil[i][j]<<" "; cout<<endl; } } void cetakv(int vektor[]){ cout<<"vektor : \n"; for(int i=1;i<2;i++){ cout<<vektor[i]<<endl; } }
void cetak(int hasil[]){ cout<<"hasil trakhir : \n"; for(int i=1;i<3;i++){ cout<<hasil[i]<<endl; } } int main(int argc, char** argv) { int matrik[2][3]={2,3,4,5,6,7}, vektor[3]={1,2,3},hasil[0]={0}; kali(matrik,vektor,hasil); cetakm(matrik); cetakv(vektor); cetak(hasil); return 0;
}
6.Hasil inputan 

menyusul yyyyaaaaaa
 
 

Rabu, 18 Mei 2016

DIKTAT BAB 9

Assalamualaikum.wr.wb.
Pada kesempatan kali ini.Kali ini kami akan membahas tentang kasus-kasus dan latihan-latihan yang ada di Diktat Bab 9 ini.
Langsung saja kita ke penyelesaiannya :)


Kasus 1

Algoritma

deklarasi
A[maks][maks],baris,kolom::integer
deskripsi
read (baris,kolom)
for i <-- 1 to n -1 do
for j <-- 1 to n-1 do
baris,kolom := A[i][j]
for i <-- 1 to n-1 do
for j <-- 1 to n-1 do
for z <-- 1 to n-1 do
hasil := A[i][j]*2[m]
endfor
endfor
endfor

C++

#include <iostream>

#define maks 10
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
int A[maks][maks], baris, kolom;
cout<<"input baris :"; cin>>baris;
cout<<"input kolom :"; cin>>kolom;
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<"Masukan data ke ["<<i<<"] ["<<j<<"] : "; cin>>A[i][j];
}
}
cout<<"Isi Matriks A :\n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<A[i][j]<<" ";
}
cout<<endl;
}
int m[baris],n;
cout<<"penghitungan vektor \n";
cout<<"berapa variabel : ";
cin>>m[kolom];
for(int z=0; z<kolom; z++){
cout<<"Masukan data ke ["<<z<<"] "" : "; cin>>m[z];
}
cout<<endl;

cout<<" vektor b : \n";
for(int z=0; z<kolom; z++){
cout<<m[z]<<"\n";
}
cout<<"perkalian matrik dan vektor \n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
for(int z=0; z<kolom; z++){
n=A[i][j]*m[z];
cout<<n<<" ";
}
}
}
return 0;
}





Kasus 2

C++

#include<iostream>

using namespace std;
main(){ int i,j,n;
cout<<"masukkan ordo matriks : "; cin>>n;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(i==j) cout<<"1 ";
else cout<<"0 ";
}
cout<<endl;
}
}



Flowchart




Kasus 3

C++

#include <iostream>
#include <conio.h>
#include <cstdlib>

using namespace std;
main(){ int i,j,m,n,o;
cout<<"Program transpose matriks C(m,n)\nMasukkan nilai m : ";
cin>>m; cout<<"masukkan nilai n : "; cin>>n;
int mat[m][n];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<"nilai C("<<i+1<<","<<j+1<<")=";
cin>>mat[i][j];
}
cout<<endl;
}
system("cls");
cout<<"matriks diatas diilustrasikan seperti gambaran dibawah ini\n\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
o=m; m=n; n=o;
cout<<"\nTranspose matriksnya adalah seperti gambar dibawah ini\n\n";
for(j=0;j<m;j++){
for(i=0;i<n;i++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
return 0;
}




Flowchart





Kasus 4

C++

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void Masukan(int *q, int brs, int klm) {
    int i, j;
    for(i = 0; i < brs; i++) {
        for(j = 0; j < klm; j++) {
            cout << " Elemen [" << (i + 1) << "][" << (j + 1) << "]? ";
            scanf("%d", (q + i * klm + j));
        }
    }
}

void Tampilkan(int *q, int brs, int klm) {
    int i, j;
    for(i = 0; i < brs; i++) {
        cout << endl;
        for(j = 0; j < klm; j++) {
            cout <<" ";
            cout << *(q + i * klm + j) << "\t";
        }
    }
    cout << endl;
}

void Kali(int *p, int *q, int *z, int bA, int kA, int bB, int kB) {
    int i, j, k;
    for(i = 0; i < bA; i++) {
        for(j = 0; j < kB; j++) {
            *(z + i * bB + j) = 0;
            for(k = 0; k < kA; k++) {
                *(z + i * bB + j) += *(p + i * kA + k) * (*(q + k * kB + j));
            }
        }
    }
}

int main() {
cout<<"\t\t\tPROGRAM    : PERKALIAN MATRIKS DENGAN SKALAR\n";
awal:
    int *a, *b, *c, brsA, klmA, brsB, klmB;
    cout<<"\n SYARAT...!!!\n";
    cout<<" Jumlah Kolom A HARUS SAMA dengan Baris B\n\n";
    cout << " Jumlah Baris Matriks A? ";
    cin >> brsA;
    cout << " Jumlah Kolom Matriks A? ";
    cin >> klmA;
    cout << " Jumlah Baris Matriks B? ";
    cin >> brsB;
    cout << " Jumlah Kolom Matriks B? ";
    cin >> klmB;
    if(klmA != brsB) {
        cout << " Perkalian TIDAK Dapat Dilakukan." << endl;
        cout << " Jumlah Kolom A TIDAK Sama Dengan Jumlah Baris B." << endl;
    } else {
        a = (int *) malloc(brsA * klmA * 4);
        b = (int *) malloc(brsB * klmB * 4);
        c = (int *) malloc(brsA * klmB * 4);

        cout << "\n Kordinat Inputan [y][x]" ;
        cout << "\n Contoh: ordo 2x2" ;
        cout << "\n [1][1]\t[1][2]\t" ;
        cout << "\n [2][1]\t[2][2]\t" ;
        cout << "\n\n Input Matriks A:\n" ;
        cout << " ----------------\n";
        Masukan(a, brsA, klmA);
        cout << "\n Input Matriks B:\n" ;
        cout << " ----------------\n";
        Masukan(b, brsB, klmB);

        cout << "\n Matriks A:" << endl;
        Tampilkan(a, brsA, klmA);
        cout << "\n Matriks B:" << endl;
        Tampilkan(b, brsB, klmB);
        Kali(a, b, c, brsA, klmA, brsB, klmB);
        cout << "\n Matriks A x B:" << endl;
        Tampilkan(c, brsA, klmB);
    }
cout<<"\n\n Apakah Anda Ingin Mengulang [Y/N] ? "  ;
char m ;
cin>>m;
if (m == 'y' || m== 'Y')
goto awal;
else if (m == 'n' || m== 'N')
{
goto akhir;
}
akhir:
cout<<"\n\n\t\t\t    \"TERMA KASIH\"";
    return 0;




Kasus 5

C++

#include <iostream>

using namespace std;

main(){ int i,j; float det,temp;
float mat[2][2], c[2][2], ci[2][2], ch[2][2];
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"nilai C("<<i+1<<","<<j+1<<")=";
cin>>mat[i][j];
c[i][j]=mat[i][j];
}
cout<<endl;
}
cout<<"matriks diatas diilustrasikan seperti gambaran dibawah ini\n\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
mat[0][1]=-mat[0][1]; mat[1][0]=-mat[1][0];
temp=mat[0][0]; mat[0][0]=mat[1][1]; mat[1][1]=temp;
cout<<"\nadjoin dari matriks diatas adalah\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
det=mat[0][0]*mat[1][1]-mat[1][0]*mat[0][1];
det=1/(float)det;
cout<<"\nSedangkan untuk inversnya adalah sebagai berikut\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
ci[i][j]=det*mat[i][j];
cout<<ci[i][j]<<" ";
}
cout<<endl;
}
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(int k=0;k<2;k++){
temp=c[i][k]*ci[k][j];
ch[i][j]=ch[i][j]+temp;
}
}
}
cout<<"\nhasil perkalian matriks asal dengan\nmatriks yang telah di invers adalah\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<ch[i][j]<<" ";
}
cout<<endl;
}
}




Flowchart










Minggu, 15 Mei 2016

Selection Sort

(Selection Sort)

Algoritma :
Procedure selection_sort(output A : larik; input n : integer)


Deklarasi
i, t : integer
Deskripsi
for i <-- 1 to n do
minimum(A, i, n, t);
tukar(A[i], A[t]); {tukar tempat elemen saat ini j dengan elemen terkecil yang ditemukan t}
endfor


Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :







Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev C++ :

#include <iostream>
#include <cstdlib>

using namespace std;

void baca_data(int A[], int n){
int i;
for (i = 0; i < n; i++){
cout << "Data ke-%d : ",i+1);
cin >> A[i]);
}
}
void cetak_data(const int A[], int n){
int i;
for (i = 0; i < n; i++)
cout << "%d ",A[i]);
cout << "\n");
}
void tukar (int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void minimum(int A[], int dari, int n, int * tempat){
int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min){
min = A[i];
*tempat = i;
}
}
void selection_sort(int A[], int n){
int i, t;
for (i = 0; i<n; i++){
minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}
}

int main(int argc, char** argv) {
int data[10], n;

cout << "Banyak data : ");
cin >> n);
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cetak_data(data,n);

return 0;
}


Langkah-langkah : 
  1. Menentukan n atau banyak data yang akan diproses.
  2. Program akan memproses data yang telah di koding tadi kemiudian masukkan angka atau nilai sampai batas yang telah di masukkan.
  3. Lalu data yang di masukkan akan muncul setelah data-data tersebut di inputkan.
  4. Program akan selesai setelah menentukan niali minimum di tentukan.
  5. setelah nilai minimum di tentukan program tersebut akan melanjutkan sorting yaitu mengurutkan data dari kiri ke kanan.


Jika ingin melengkapi jawaban  silahkan klik link di bawah ini:  http://fitriadinasilmiadiatinewblogaddress.blogspot.co.id/ http://pusparatna22.blogspot.co.id/
   . Terima Kasih semoga bermanfaat an selamat mencoba..


DIKTAT BAB 8

Assalamualaikum.wr.wb.
Pada kesempatan kali ini.Kali ini kami akan membahas tentang kasus-kasus dan latihan-latihan yang ada di Diktat Bab 8 ini.
Langsung saja kita ke penyelesaiannya :)



Kasus 7.6



C++



#include <iostream>

using namespace std;

typedef int larik[10];

void masuk_data(int A[], int n)

{ int i;

for (i = 0; i < n; i++)

{ cout << "Data ke-%d : ",i+1;

cin >> A[i];

}

}

void cetak_data(const int A[], int n) {

int i;

for (i = 0; i < n; i++)

cout << "%d ",A[i];

cout << "\n";

}

void merge(larik a, int kiri, int tengah, int kanan)

{ int bagianKiri, posTemp, banyakElemen, i;

larik temp;

bagianKiri = tengah - 1;

posTemp = kiri;

banyakElemen = kanan - kiri + 1;

while ((kiri <= bagianKiri) &&

(tengah <= kanan))

if ((a[kiri] <= a[tengah]))

{ temp[posTemp] = a[kiri];

posTemp = posTemp + 1;

kiri = kiri + 1;

} else

{ temp[posTemp] = a[tengah];

posTemp = posTemp + 1;

tengah = tengah + 1;

}

/* kopi bagian kiri */

while ((kiri <= bagianKiri)) {

temp[posTemp] = a[kiri];

posTemp = posTemp + 1;

kiri = kiri + 1;

}

/* kopi bagian kanan */

while ((tengah <= kanan)) {

temp[posTemp] = a[tengah];

posTemp = posTemp + 1;

tengah = tengah + 1;

}

/* kopi kembali ke array asal */

for (i = 1; i <= banyakElemen; i++)

{ a[kanan] = temp[kanan];

kanan = kanan - 1;

}

}

void merge_sort(larik A, int kiri, int kanan)

{ int tengah;

if ((kiri < kanan))

{ tengah = (kiri + kanan) / 2;

merge_sort(A, kiri, tengah);

merge_sort(A, tengah + 1, kanan);

merge(A, kiri, tengah + 1, kanan);

}

}

main() {

int n;

larik data;

cout << "Berapa data array : ";

cin >> n;

masuk_data(data, n);

cetak_data(data, n);

merge_sort(data, 0, n-1);

cetak_data(data, n);

return 0;

}













Kasus 7.7



C++



#include <iostream>

using namespace std;

void masuk_data(int A[], int n) {

int i;

for (i = 0; i < n; i++) {

cout << "Data ke-%d : ",i+1;

cin >> A[i];

}

}

void cetak_data(const int A[], int n) {

int i;

for (i = 0; i < n; i++)

cout << "%d ",A[i];

cout << "\n";

}

void tukar (int *a, int *b)

{ int temp;

temp = *a;

*a = *b;

*b = temp;

}

void quick_sort(int data[], int L, int R) {

int i, j, p;

p = data[(L+R) / 2];

i = L;

j = R;

while (i<=j) {

while (data[i] < p) i++;

while (data[j] > p) j--;

if (i<=j)

{ tukar(&data[i], &data[j]);

i++;

j--;

}

}

if (L < j) quick_sort(data,L,j);

if (i < R) quick_sort(data,i,R);

}

void main() {

int data[10], n;

cout << "Banyak data : ");

cin >> n);

masuk_data(data,n);

cetak_data(data,n);

quick_sort(data,0,n-1);

cetak_data(data,n);

}











Latihan 8

C++





Latihan 9

C++




Latihan 10

C++










jika Ingin melengkapi jawaban Diktat Bab 8 nomor 1,2,3 dan latihan 1,2,3,4, dan 5 silahkan klik link di bawah ini:  http://fitriadinasilmiadiatinewblogaddress.blogspot.co.id/ dan jawaban   link di bawah ini http://pusparatna22.blogspot.co.id
   . Terima Kasih semoga bermanfaat an selamat mencoba..