Isnin, 23 Mei 2016

perkalian matriks dan vektor


Analisis kasus : 
Perkalian matrik ber ordo 2x3 dengan vektor nya :
  - Syarat dua matriks dapat dikalikan adalah ukuran kolom matriks pertama haruslah sama
dengan ukuran baris matriks kedua. Misalnya matiks A berukuran 2 x 3 dan matriks B berukuran 3 x 1 (vektor) dan akan menghasilkan matriks C berukuran 1 x 2. Untuk memperoleh elemen c[i,j] maka suku perkalian dari elemen a dengan baris i dan b dengan kolom j. Sedangkan kolom elemen a dan baris elemen b harus mempunyai perulangan tersendiri.




Algoritma
for i <-- 1 to 2 do
    for j <-- 1 
          mat_kali[i,j] <-- 0;
          for k <-- 1 to barkol do
                    c[i,j] <--c[i,j] + a[i,k] * b[k]
         endfor
    endfor
endfor



c++

#include <iostream>
using namespace std;
void kali(int matrik[2][3],int vektor[3],int hasil[2]){
            for(int i=0;i<2;i++){
                        for(int k=0;k<3;k++)
                                    hasil[i]=hasil[i]+(matrik[i][k]*vektor[k]);
            }
}
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[]){
            for(int i=0;i<3;i++){
                        cout<<vektor[i]<<endl;
            }
}
void cetak(int hasil[]){
            for(int i=0;i<2;i++){
                        cout<<hasil[i]<<endl;
            }
}
int main(int argc, char** argv) {
            int matrik[2][3]={3,4,2,6,5,1}, vektor[3]={1,2,3},hasil[2]={0};
            kali(matrik,vektor,hasil);
            cout<<"matrik A\n";
            cetakm(matrik);
            cout<<"vektor b\n";
            cetakv(vektor);
            cout<<"hasil kali\n";
            cetak(hasil);
            return 0;
}



Read more

Isnin, 16 Mei 2016

praktikum 8 (matriks 10 x10)

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

int kali(int a, int b){
for(int i=1;i<=a;i++){
    for(int j=1;j<=b;j++){
        cout<<i*j<<"\t";
}
}
}
int main(int argc, char** argv) {
    return kali(10,10) ;
}

Read more

Ahad, 15 Mei 2016

mengurutkan angka dengan metode selection sort




  • permasalahan 

mengurutkan data acak menggunakan metode selection sort
misalakan :
data awal (input)   :[8, 4, 7, 3, 1, 2, 6, 5]
outputnya              :[1,2,3,4,5,6,7,8]



  • langkah penyelesaian nya
-pertama
 kita menentukan n atau banyak data yang akan kita proses nanti
-kedua
program akan membaca dan kita akan memasukan angka sesuai n
-ketiga
lalu data-data yang telah di input akan di cetak
-empat
program akan di seleksi dan menentukan nilai terkcil sampai terbesar
-lima
setelah nilai minimum di temukan program akan mengurutkan data dari kiri kanan dan dari kecil ke besar.

kira-kira seperti ini:
Data awal : [8, 4, 7, 3, 1, 2, 6, 5] 1 terkecil, 8􀃅􀃆1
fase 1 [1, 4, 7, 3, 8, 2, 6, 5] 2 terkecil, 4􀃅􀃆2
fase 2 [1, 2, 7, 3, 8, 4, 6, 5] 3 terkecil, 7􀃅􀃆3
fase 3 [1, 2, 3, 7, 8, 4, 6, 5] 4 terkecil, 7􀃅􀃆4
fase 4 [1, 2, 3, 4, 8, 7, 6, 5] 5 terkecil, 8􀃅􀃆5
fase 5 [1, 2, 3, 4, 5, 7, 6, 8] 6 terkecil, 7􀃅􀃆6
fase 6 [1, 2, 3, 4, 5, 6, 7, 8] 7 terkecil, tetap
fase 7 [1, 2, 3, 4, 5, 6, 7, 8]

fase 8 [1, 2, 3, 4, 5, 6, 7, 8]



  • procedure selection

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

raptor:




  • program c++:

#include <iostream.h>
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]);
}
}
main() {
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;

}

outputnya dari program di atas adalah sebagai berikut:



bubble sort         :http://ariesmunan.blogspot.co.id/2016/05/bubble-sort.html
insertion sort     : http://maulana277.blogspot.co.id/





Read more

Jumaat, 6 Mei 2016

Tugas kelompok Diktat Alpro bab 7(Latihan 2)


Buatlah algoritma dan function dalam bahasa C untuk menggantikan strlen, yaitu
mengetahui panjang suatu string

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
    string a;
    cout<<"Masukkan Kalimat : ";getline(cin,a);
    cout<<a<<endl;
    cout<<"Panjang Karakter : "<<a.size();
    return 0;
}
Read more

Tugas Kelompok Diktat alpro bab 7 (workshop 2)

 Buatlah algoritma dan program untuk mengubah string menjadi bergantian huruf besar
dan kecil. Contoh :
Algoritma dan Pemrograman 􀃆 AlGoRiTmA dAn PeMrOgRaMaN

Program:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
int i,jum;

char string[100];

cout<<"Masukan sembarang kalimat:\n";
cin.getline(string,100); //membaca spasi

//mengubah huruf awal menjadi huruf kapital
if((string[0]>='a')&& (string[0]<='z'))
string[0]=(char)string[0]-32;


//mengubah huruf setelah huruf awal menjadi huruf kecil
jum=1;int d=0;
for(i=0;i<(int)strlen(string);i++)
{
    if(i%2==0){
  
if((string[jum]>='A')&& (string[jum]<='Z'))
string[jum]=(char)string[jum]+32;
jum++;}
}

//mengubah huruf setelah spasi menjadi huruf kapital
for(i=1;string[i]!='\0';i++)
{
    if(string[i]==' ') d++;
if((i-1-d)%2==0)
{
if(string[i+1]>='a' && string[i+1]<='z')
string[i+1]=(char)(string[i+1]-32);
}
}


cout<<"Hasil Akhir : "<<string<<endl;
getch();
}

Read more

Buatlah algoritma dan function dalam bahasa C++ untuk menggantikan strlen, yaitu mengetahui panjang suatu string (Latihan PPT NO.1#array satu dimensi)

C++:

#include <iostream>
using namespace std;
main()
{
char kata[150];
int jlh=0,x;
cout<<"Masukkan Kata: "<<endl;
cin.getline(kata,sizeof(kata));

for (x=0;kata[x];x++)
{
jlh=jlh+1; //menjumlahkan karakter per karakter
}
cout<<"--------------------------------"<<endl;
cout<<"Panjang karakter adalah :"<<jlh;
return 0;
}


*untuk nomer 2 nya silahkan kunjungi blog teman saya http://ariesmunan.blogspot.co.id/
Read more

Kasus 6.5. Tentukan modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).

Algoritma :

Deklarasi
i : integer
Deskripsi
     maks = data[1]
     item = 1
     for i = 2 to n do    
          if (data[i] > maks) then
               maks = data[i];
               item = i;
          endif          
     Endfor
procedure frekuensi(data : larik; n : integer; output f : larik)
{ data akan diambil nilai frekuensi f-nya }
Deklarasi
i : integer
Deklarasi
     for i = 1 to n do
     f[data[i]] := f[data[i]] + 1     

Raptor:


C++  nya:

#include <iostream>
#include <math.h>

using namespace std;

class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
HitungStatistik();
void hitung_modus();
private:
void maksimum();
void frekuensi();
int maks, item;
int n; 
int A[20]; 
int f[11]; 
};

HitungStatistik::HitungStatistik()
{ for (int i=0; i<20; i++) f[i] = 0; }

istream& operator>>(istream& in, HitungStatistik& a) {
cout << "Banyaknya data : ";
cin >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}

void HitungStatistik::maksimum()
{
maks = f[0];
item = 1;
for (int i=0; i<n; i++)
if (f[i] > maks) {
maks = f[i];
item = i;
}
cout << "Modus = " << item;
}

void HitungStatistik::frekuensi()
{
for (int i=1; i<n; i++) ++f[A[i]];
}

void HitungStatistik::hitung_modus() {
cout << "Frekuensi running\n";
frekuensi();
maksimum();
}

ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Mulai ...\n";
a.hitung_modus();
cout << "Nilai modus : " << a.item;
return out;
}

main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}


*untuk program 6.1 dan 6.6 
* untuk program 6.2 dan 6.4 silahkan kunjungi blog teman saya : http://maulana277.blogspot.co.id/
Read more

Kasus 6.3. Buatlah algoritma untuk menentukan nilai maksimum dari n bilangan

Algoritma nya
function maksimum(input data : array [1..10] of integer, n : integer):integer.
Deklarasi
i, temp : integer
Deskripsi
     temp = data[1]
     for i = 2 to n do
 temp = maksimum2(temp, data[i])
     maksimum =  temp

flowchart nya:


C++ nya:

#include<iostream>
#include<conio.h>
using namespace std;

void nila_maks(int n){
    int a[100],max;
for(int i=1;i<=n;i++){
cout<<"masukan nilai= "; cin>>a[i];    
}    
for(int i=1;i<=n;i++){
if(a[i]>max){
max=a[i];    
}
}
cout<<"nilai maks= "<<max;        
}


main(){
    int bts;
cout<<"masukan jumlah n = "; cin>>bts;
nila_maks(bts);

    
    
}



*untuk program 6.1 dan 6.6 

* untuk program 6.2 dan 6.4 silahkan kunjungi blog teman saya : http://maulana277.blogspot.co.id/


Read more