Senin, 23 Mei 2016

tugas alpro tentang perkalian matriks vektor



1.      masalah
menghitung perkalian  antara matrik dengan vektor. misal:

2.      analisis

-mengecek baris atau kolom yang jumlahnya sama antara matrik yang ingin dikalikan.

- mengalikan matriks dengan vektor syarat jumlah kolom matrik a sama dengan baris vektor b.

-hasil akan dihitung dengan perkalian baris matrik satu dengan kolom matrik satunya

3.      uji coba data


c1=(a11*b1)+(a12*b2)+(a13*b3)   =     (2*1+3*3+4*5)=31

c2=(a21*b1)+(a22*b2)+(a23*b3)  =      (5*1+6*3+7*5)=58

            4. flowchart 





5. program
#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 cetak_v(int vektor[]){
    for(int i=0;i<3;i++){
        cout<<vektor[i]<<endl;
    }
}

void cetak_m(int hasil[][3]){
    for(int i=0;i<2;i++){
        for(int j=0;j<3;j++)
            cout<<hasil[i][j]<<" ";
            cout<<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]={2,3,4,5,6,7}, vektor[3]={1,3,5},hasil[2]={0};
    kali(matrik,vektor,hasil);
    cout<<"matrik a"<<endl;
    cetak_m(matrik);
        cout<<endl;
    cout<<"vektor "<<endl;
    cetak_v(vektor);
    cout<<endl;
    cout<<"hasil kali matrik A dan vektor b\n";

    cetak(hasil);
    return 0;
}



photo tugas 










Selasa, 17 Mei 2016

searching

SEARCHING

MENGERTI MASALAH :
mencari data yang akan di inputkan dari sekumpulan data data yang di masukan dengan binary search yaitu dengan cara memperkecil sekumpulan data yang ingin di inputkan dengan cara membagi  sekumpulan data menjadi 2 yang ada dalam tabel disetiap pencarian data...

PERCOBAAN DATA :
contoh data yang di inputkan 
misal :
data A =[3 4 5 6 7 8 9]
              ...........................
indeks  =0 1 2 3 4 5 6

key =7
maka nilai key 3 ditemukan  pada indeks  4

ANALISIS :
1. data di ambil dari posisi 1 sampai N 
2. cari posisi tengah data dengan rumus (posisi awal + posisi akhir)/2
3. data yang di cari di bandingkan dengan data tengahapakah apakah sama atau lebih kecil,atau lebih besar
4. jika lebih besar, maka  proses pencarian di cari dengan posisi awal adalah tengah +1
5. jika lebih kecil, maka  proses pencarian di cari dengan posisi akhir adalah tengah -1
6. jika sama, berarti ketemu 


ALGORITMA :
function pencarianBiner(input aray : larik; kunci, low, high : integer) : integer

Deklarasi
ketemu : boolean
i, middle : integer

Deskripsi
ketemu <- false
while (low <= high) and (not ketemu) do
middle <- (low+high) div 2
if (kunci = aray[middle]) then ketemu <- true { data pencarian = data di tengah }
else if (kunci < aray[middle]) then high <- middle – 1 {data akan dicari lagi di sebelah kiri}
else low <- middle + 1 {data akan dicari lagi di sebelah kanan}
endif
endwhile
if ketemu then pencarianBiner := middle
else pencarianBiner := -1;
endif


C++
#include <iostream>
#define UKURAN 7
using namespace std;
void cetakBaris(int b[], int rendah, int mid, int tinggi)
{ int i;
for (i=0; i<=UKURAN-1; i++)
if (i<rendah || i>tinggi) cout << "  ";
else if (i==mid) cout << "*" << b[i]<<" ";
else cout << b[i] << " ";
cout << "\n";
}
int pencarianBiner(int b[], int kunciPencarian, int rendah, int tinggi )
{ int i, middle;
while (rendah <= tinggi) {
middle = (rendah+tinggi) / 2;
cetakBaris(b, rendah, middle, tinggi);
if (kunciPencarian == b[middle])
return middle;
else if (kunciPencarian < b[middle])
tinggi = middle - 1;
else rendah = middle + 1;
}
return -1;
}
main() {
int a[UKURAN]={3,4,5,6,7,8,9}, i, kunci, hasil;
for (i=0; i<=UKURAN-1; i++){
cout<<a[i]<<" ";    
    
}
cout<<endl<<endl;
cout << "Masukkan bilangan yg ingin dicari index nya : ";
cin >> kunci;
hasil=pencarianBiner(a,kunci,0,UKURAN-1);
if (hasil != -1) cout << kunci
<< " ditemukan pada index : "<< hasil;
else
cout << kunci << " tidak ditemukan";
return 0;
}

Minggu, 15 Mei 2016

selection sorting 5 langkah dan algoritma

assalamuaikum wr.wb

pada kesempatan ini saya akan memposting 5 langkah program selection sort
pertama :
 mencari deret bilangan  terbesar ke terkecil menggunakan selection sort
kedua:
membadingkan bilangan terbesar ke terkecil yang belum di urutkan yang belum di urutkan
ketiga:
program akan membaca dan mengurutkan bilangan terbesar ke terkecil menggunakan selection sort
keempat:
program akan menseleksi deret bilangan yang telah di inputkan dari bilangan terbesar ke terkecil
kelima:
setelah menseleksi deret bilangan  progarm akan mengurutkan bilangan terbesar di pindah ke kanan dan bilangan terkecil pindah ke kiri......


Algoritma sorting data:
{menyorting data dari kecil ke besar, algoritma menerima masukan yaitu batas(n) dan data,, menorting , lalu mencetak}
Procedure baca_data(int A[] ,int n){
Write A[i]
for i ß0,i<n,i++ than input A[i]
}
Procedure cetak_data(const int A[],int n){
for (i = 0; i < n; i++)
cout << A[i];
cout << "\n";
}
Procedure tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
prosedur 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;
}
Procedure 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]);
}

}
}
Deklarasi :
n, A[i]    : integer {input}
A[i]         : integer {output}
Deskripsi :
Read(n,A[i])
For iß0,i<n,i++
Than do sorting
Write(A[i])

 Analisis masalah 
Algoritma pengurutan dengan metode seleksi dapat diilustrasikan demikian. Misalkan
diberikan data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
Data pertama adalah 8. Akan dicari (atau tepatnya “dipilih/diseleksi”) data terkecil dari data
kedua sampai terakhir yang terkecil untuk menempati posisi pertama (i=1) ini. Data terkecil
ditemukan pada posisi ke-5 (t=5). Maka data pertama ditukar dengan data ke-5, menjadi :
[1, 4, 7, 3, 8, 2, 6, 5]
Langkah ini diulang untuk data kedua (i=2). Ditemukan data terkecil pada posisi ke-6 (t=6). Data
ke-2 ditukar dengan data ke-6, menjadi :
[1, 2, 7, 3, 8, 4, 6, 5]
Fase selengkapnya dapat dilihat pada data berikut 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]


program C++
#include <iostream>
using namespace std;
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-: "<<i+1<<"= ";
cin >> A[i];
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << 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);
cout<<endl;
cout<<"setelah diurutkan"<<endl;
cetak_data(data,n);
return 0;
}  





https://c96net.blogspot.co.id/2016/05/mengurutkan-deret-bilangan-dengan.html
http://rasidikhan.blogspot.co.id/2016/05/mengurutkan-deret-bilangan-dengan.html

Kamis, 12 Mei 2016

program mencari hasil indeks elemen array

#include <iostream>
using namespace std;

int search(int b[],int key,int bwh, int ats){
    int i, tgh;
    while(bwh<=ats){
        tgh=(bwh+ats)/2;
        if(key==b[tgh])
        return tgh;
        else if (key<b[tgh])
        ats=tgh-1;
        else bwh=tgh+1;
    }
    return - 1;
}
int main(int argc, char** argv) {
   
    cout<<"\t\t*program mencari hasil indeks elemen array*\n\n";
    int a[15]={1,2,8,25,30,49,50,55,60,61,68,70,72,84,90};
    int i,kunci,hasil,bnyk=15;
    for(i=0;i<=bnyk-1;i++){
        cout<<a[i]<<" ";
    }
    cout<<endl;
    cout<<"Masukan bilangan yang ingin di cari : ";cin>>kunci;
    hasil=search(a,kunci,0,bnyk-1);
    if(hasil != -1)
    cout<<kunci<<" ditemukan pada posisi : "<<hasil+1;
    else
    cout<<kunci<<" tdk ditemukan";
   
   
    return 0;
}

program mengurutkan deret bilangan buble sorting

#include <iostream>
using namespace std;
// dalam program ada 4 prosedur yang di gunakan

//prosedur pertama di gunakan untuk input data
// nilai untuk dalam prosedur pertama ada 2 parameter yaitu "int a[],int n" dalam fungsi main
// parameter a[] sebagai variabel dan n untuk batasan perulanagan
void baca_data(int a[], int n) {
int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-" << i+1 << " : ";
cin >> a[i];
}
}
// prosedur kedua di gunakan untuk menampilkan data yang di inputkan
// nilai untuk dalam prosedur pertama ada 2 parameter yaitu "int a[],int n " dalam fungsi main
// parameter a[] sebagai variabel dan n untuk batasan
void cetak_data(int a[], int n) {
int i;
for (i = 0; i < n; i++)
cout << a[i] << " ";
cout << "\n";
}
// prosedur ketiga di gunakan untuk menukar nilai a ke b data yang di inputkan
// nilai untuk dalam prosedur pertama ada 2 parameter yaitu "int *a,int *b "
// nilai parameter int *a dan int *b di gunakan sebagai variabel 
// nilai parametr int *a dan int *b diguanakan juga untuk tempat penukaran nilai
void tukar (int *a, int *b)
{  int temp;
temp = *a;
*a = *b;
*b = temp;
}
// prosedur keempat di gunakan untuk menukar nilai a ke b data yang di inputkan
// nilai untuk dalam prosedur pertama ada 2 parameter yaitu "int x[],int n "
// nilai parameter int x[] deklarasi fungsi main dan int n di gunakan sebagai inputan fungsi main 
// dalam prosedur keempat ini di gunakan untuk memanggil prosedur ketiga untuk mengurutkan suatu nilai buble sorting
void buble_sort (int x[], int n)
{  int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j]) tukar(&x[i], &x[j]);
}

int main(int argc, char** argv) {
    cout<<"\t\t*program mengurutkan deret bilangan dengan buble_sort*\n\n "<<endl;
    // menampilkan nilai  input variabel " nilai[8]={9,2,1,4,11,10,18,6}
    int data[8]={9,2,1,4,11,10,18,6}, n=8;
    cetak_data(data,n);//prosedur pemanggilan
    buble_sort(data,n);//prosedur pemanggilan untuk mengurutkan nilai
    cetak_data(data,n);//prosedur pemanggilan

    return 0;
}

Jumat, 06 Mei 2016

rencana kuliah bulan 3 latihan 2

kali ini saya akan memposting program rencana kuliah bulan 3 latihan latihan 2. berikut linknya

http://rasidikhan.blogspot.co.id/2016/05/rencana-kuliah-bulan-3-latihan-2.html

minggu ke 7 latihan 2


 kali ini  saya akan memposting program pada ppt minggu ke 7 latihan 2. berikut linknya

http://rasidikhan.blogspot.co.id/2016/05/latihan-2-ppt.html

kasus 6.5

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int x;
void modus(float bil[], int n, float mod[])
{
int total[100];
int k=1;
x=0;
//untuk mengurutkan secara ascending
for(int c=0;c<n;c++)
{
for(int i=(n-1);i>=0;i--)
{
if(bil[i]<bil[i-1])
{
int temp;
temp=bil[i];
bil[i]=bil[i-1];
bil[i-1]=temp;
}
}
}
//menghitung berapa kali muncul tiap angka
for(int c=0;c<n;c++)
{
total[c]=0;
for(int i=0;i<n;i++)
{
if(bil[c]==bil[i])
{
total[c]++;
}
}
}
//menentukan nilai yang paling sering muncul
for(int c=0;c<n;c++)
{
if(total[c]>k)
{
k=total[c];
}
}
//jika modus lebih dari satu
for(int c=0;c<n;c++)
{
if(x==0)
mod[x]=0;
else
mod[x]=mod[x-1];
if(total[c]==k)
{
if(bil[c]!=mod[x])
{
mod[x]=bil[c];
x++;
}
}
}
//Jika Semua angka muncul sama banyak
int z=0;
for(int c=0;c<n;c++)
{
if(total[c]==k)
{
z++;
}
}
if(z==n)
{
x=0;
}
}
int main(int argc, char** argv) {
   
    int z;
float bil[100];
float mod[100];
cout<<"\t\tProgram mencari modus dari banyak data N"<<endl<<endl;
cout<<"masukkan Banyak N : ";cin>>z;cout<<endl;
for(int c=0;c<z;c++)
{
cout<<"Nilai Ke- "<<(c+1)<<" : ";cin>>bil[c];
}
cout<<endl;
modus(bil,z,mod);
if (x==0)
cout<<"Tidak Ada Modus!"<<endl;
else
{
cout<<"Modus : ";
for(int c=0;c<x;c++)
{
cout<<mod[c]<<" ";
}
}
    return 0;
}

kasus 6.6

#include <iostream>
#include <string.h>

/* 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) {
        char kalimat[30]; 
    int belakang; 
    bool palindrome = true; 
 
    cout <<"Masukkan kata : "; 
    cin.getline(kalimat, sizeof(kalimat)); 
 
    int p = strlen(kalimat); 
    belakang = p-1; 
 
    for(int a=0; a<p; a++) 
    { 
         
        if((char)tolower(kalimat[a])!=(char)tolower(kalimat[belakang])) 
        { 
            palindrome = false; 
            break; 
        } 
        belakang--; 
    } 
 
    if(palindrome) 
    cout<<"Palindrom"<<endl; 
    else 
    cout<<"Bukan Palindrom"<<endl;
    return 0;
}

refleksi minggu minggu ke 7

assalamualaikum wr.wb
pada minggu ke 7 ini pak wahyu menjelaskan materi minggu ke 7 dan memberikan tugas sperti minggu-minggu sebelumnya...
sekian refleksi minggu ke 7 dari saya dan
wassalamualaikum wr.wb

latihan ppt 1 (bab 7)

#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) {
     char kata[100];
        int jml=0,i;
        cout<<"masukan kata : \n";
        cin.getline(kata,sizeof(kata));
   
       
   
    for(i=0;kata[i];i++)
{

    jml=jml+1;
}

    cout<<"panjang stringnya adalah : "<<jml;
    return 0;
}

kasus 6.2 (bab 7)

#include <iostream>
#include <conio.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void nilai_maks(int x){
        int a[50],max;
        for(int i=1;i<=x;i++){
            cout<<"masukan nilai : ";
            cin>>a[i];
        }
        for(int i=1;i<=x;i++){
       
        if(a[i]>max){
            max=a[i];
           
        }
    }
cout<<"nilai maks="<<max;

}
int main(int argc, char** argv) {
{
        int batas;
    cout<<"masukan jumlah :";
    cin>>batas;
    nilai_maks(batas);
   

}
    getch ();
}

kasus 6.1 (bab 7)







#include <iostream>

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

void masukan_data(int n)
{int i;
int A[10],total=0,rata;
for(i=1;i<=n;i++)
{cout<<"masukan data ke- "<<i<<" ",i+1;
cin>>A[i];
total=total+A[i];
rata=total/n;
}
cout<<"rata-rata= "<<rata;
}
int main(int argc, char** argv) {
    masukan_data(10);
    return 0;
}