REFLEKSI MINGGU #11

Assalamualaikum wr.wb,

pada pertemuan hari ini kita mempelajari tentang ARRAY 2 DIMENSI,
dalam array 2 dimensi bisa diimplementasukan pada matriks



untuk kasus nya bisa dipelajari di postingan di blog ini ^^



Matrik dan Vektor



1. identifikasi masalah
mengalikan vektor (2 elemen) dengan matriks berukuran 2x3 dan vektor (3 elemen)
2. output input
 input   : matrik[2][3]={1,3,2,4,5,7}.
                    vektor[3]={4,2,3}.
                    vek[2]={1,3}    

 output : hasil[2].
3. algoritma
Deklarasi :
     matrik[2][3] =
{1,3,2,4,5,7} : integer
    vektor[2]        = {4,2,3}           : integer
    vek[2]              = {1,3}              : integer
    hasil[2]           = {0}                 : integer

 Deklarasi :
   for i<-0 to i<-2 do
          for j<-0 to j<-3 do
                 hasil[i]=hasil[i]+(matrik [i][j]*vektor[j]);
                 write hasil[i];
        end for
endfor
for i<-0 toi<-2 do
  hasil[i]=hasil[i]*vek[i];
  write hasil[i];
endfor
end

4. tes menggunakan data
 vektor(2 elemen), matrik(ordo 2x3) dan vektor(3 elemen)
           j=0                       j=0  j=1  j=2                        j=0
A i=0|1|             B i=0| 1     3   2  |           C i=0| 4 |
    i=1|3|                 i=1| 4    5    7  |               i=1 | 2 |
                                                                         i=2 | 3 |
  Kalikan matrik B dengan vektor C agar memudahkan karna keduanya memiliki ordo yang sama 2 x 3 dengan 2 x 1
             j=0  j=1  j=2                            j=0
D i=0|  4     6    6 |     =        D i=0| 16|
    i=1 |  16  10   21|    =             i=1 |47|
Setelah itu kalikan lagi dengan vektor A deman ordo 2 x 1 dan 2 x 1
             j=0                    j=0                          j=0
D i=0|16|       A i=0| 1 |      =       E i=0|   16|
     i=1|47|           i=1| 3 |      =           i=1 |141|
 


5. Implementasi menggunakan 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 2x3 : \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 3 elemen : \n";
 for(int i=0;i<3;i++){
  cout<<vektor[i]<<endl;
 }
}

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

void cetaka(int vek[2],int hasil[]){
 cout<<"hasil akhir : \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 matrik[2][3]={1,3,2,4,5,7}, vektor[3]={4,2,3},vek[2]={1,3},hasil[2]={0};
 kali(matrik,vektor,hasil);
 cetakm(matrik);
 cetakv(vektor);
 cetak(hasil);
 cetakb(vek);
 cetaka(vek,hasil);
 return 0;

}
6. Eksekusi







Praktikum ke 9

Praktikum ke 9

ARRAY 2 DIMENSI

1. Buatlah algoritma dan program tabel perkalian antara 10 matrrik kolom dengan 10 matrik baris. Tampilkan pula total elemen per baris dan perkolom dari hasil perhitungan tersebut.
2. Buatlah algoritma dan program untuk mencari data penjualan terbesar dan terkecil dari 10 seles selama 12 bulan (Januari-Desember). Data perbulan dan per sales dapat disimpan dalam array 2 dimensi.

Ingat gunakan kaidah pengembangan program yang benar:
1. 
 1. Identifikasi masalah
membuat tabel perkalian dengan matrik 10x10
2. input dan output
input:1 2 3 4 5 6 7 8 9 10
output: hasil perkalian
3. flowchart
4.
5. Implementasi dengan C++
#include <cstdlib>
#include <iostream>

using namespace std;
int tabel(int a[100][100],int total){

    for(int i=1;i<11;i++){
        cout<<i<<"    | ";
        for(int j=1;j<11;j++){
        cout<<a[i][j]<<" ";
        }cout<<endl;
    }
    cout<<endl<<"Total Elemen Array ="<<total<<endl;
}
int main(int argc, char *argv[])
{
    int a[100][100];
    int total;
    cout<<"menghitung Baris Dan Kolom"<<endl;
    cout<<"X/Y  | 1 2 3 4 5 6 7 8 9 10"<<endl;
    cout<<"------------------------------------"<<endl;
        for(int i=1;i<11;i++){
        for(int j=1;j<11;j++){
        a[i][j]=i*j;
        total=a[i][j];
        }
    }
    tabel(a,total);   
    system("pause");
    return 0;
}

6. Eksekusi


2.
1. Identifikasi masalah
Mencari data penjualan terbsar dan terkecil dari 10 seles selama 12 bulan
2. Input/Output
Input:
Jumlah data:10
Jumlah bulan:12
3. Flowchart
4.
5. Implementasi dengan C++
#include <cstdlib>
#include <iostream>
#include <iomanip>//menampilkan setw
using namespace std;
int tabel(int a[100][100],int n, int b){
    cout<<endl;
    for(int i=1;i<=n;i++){
        cout<<i<<setw(5);
        for(int j=1;j<=b;j++){
        cout<<a[i][j]<<setw(5);
        }cout<<endl;
    }
}
int main(int argc, char *argv[])
{
    int a[100][100];
    int n,b,maks;
    maks=0;
    cout<<"Masukkan Jumlah Penjualan : ";
    cin>>n;
    cout<<"Masukkan Jumlah Bulan : ";
    cin>>b;
        
    for(int i=1;i<=n;i++){
        for(int j=1;j<=b;j++){
            cout<<"Masukkan Data Ke-["<<i<<"]["<<j<<"] : ";
            cin>>a[i][j];
        }
    }
    cout<<"X/Y|     ";
    for(int i=1;i<=b;i++)
        cout<<i<<setw(5);
    tabel(a,n,b);  
    cout<<endl;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=b;j++){
            if(a[i][j]>maks)
            maks=a[i][j];
          
   
   
        }                          
   }
   int min=a[1][1];
            for(int i=1;i<=n;i++){
        for(int j=1;j<=b;j++){
            if(a[i][j]<min)
            min=a[i][j];
          
   
   
        }                          
   }
         cout<<"maks = "<<maks<<endl;
         cout<<"min = "<<min<<endl;  
          
    system("pause");
    return 0;
}

6. Eksekusi

REFLEKSI MINGGU #10

Assalamualaikum wr.wb,

Pertemuan ke 10 hari ini membahas tentang :
1. Linier serch
Andaikan terdapat array aray dengan banyak data sebanyak ukuran. Misalkan kita ingin
mencari data kunci dalam array aray. Prinsip pada pencarian linier, setiap data pada aray akan
dibandingkan dengan kunci sampai pada data yang terakhir (kasus terburuk). Bila pada posisi
ke-i data sama dengan kunci, berarti data ditemukan pada posisi ke-i. Bila sampai akhir data,
data tidak juga ditemukan berarti kunci tidak ada pada aray.




2. Biner (Binary Search)
Pada algoritma pencarian biner, data sudah dalam keadaan terurut (untuk mudahnya
diasumsikan urut naik). Contoh dalam kehidupan sehari-hari, seperti orang mencari nomor
telepon pada buku telepon. Setiap kali pencarian, kunci akan selalu dibandingkan dengan data
yang berada di tengah (middle), bila sama berarti data ketemu, bila tidak, akan “dilihat” apakah
data ada di sebelah “kiri” (artinya data lebih kecil dari data di tengah) atau di sebelah “kanan”
(artinya data lebih besar dari data di tengah). Bila data ada di sebelah kiri, dilakukan pencarian
dengan cara yang sama (sementara data yang berada di sebelah kanan akan diabaikan). Jadi,
setiap kali pencarian, data selalu “dibelah” menjadi dua bagian (biner), sampai pada “titik
tertentu” (bila sama dengan titik tengah, pencarian tidak dilakukan lagi, bila tidak, sampai pada
perbandingan terakhir data juga tidak sama, berarti data tidak ditemukan pada array aray).

Untuk lebih jelas lagi bisa lihat tugas-tugas yang sudah di upload, stay stalking my blog Nur Farikhah ^_^

REFLEKFSI MINGGU #9

Assalamualaikum wr.wb,
pertemuan ke 9 kami membahas tentang:
BUBLE SHORT
Nilai yang besar akan naik (indeks besar) sementara nilai yang kecil akan turn (Indeks kecil) perbandingan data ke 1 dengan ke 2.

Metode pengurutan gelembung (bubble sort) mempunyai perilaku seperti gelembung di
mana bila akan diurutkan naik, nilai yang besar akan naik (indeks besar) sementara nilai yang
kecil akan turun (ke indeks yang kecil). Setiap data (misalnya data pertama) akan dibandingkan
dengan data yang ada di sebelahnya (dari data kedua sampai selesai) . Bila data pertama tersebut
lebih besar dari data yang ada pada data sesudahnya, dilakukan penukaran tempat atau posisi
data. Demikian, untuk data kedua sampai dengan data terakhir dilakukan dengan cara serupa.

SELECTION SHORT
Algoritma pengurutan dengan metode seleksi.

INSERTION SHORT
Untuk menjelaskan algoritma pengurutan dengan metode penyisipan.

nah untuk teman-teman yang ingin mempelajarinya bisa lihat tugas update terbaru dari blog ini ^^

BUBLE SORT

Mengerjakan BUBLE SORT dengan kaidah pemrograma

1. Megidentifikasi masalah
mengurutkan nilai dengan buble sort
2.Input/Output
input : 9 8 7 6 5 4 
Output : 4 5 6 7 8 9
3.Menggunakan Raptor

 Main
 Hasil
 Proses



4. Menggunakan tes data
input banyak data : 6 
data ke 1 : 9
data ke 2 : 8 
data ke 3 : 7
data ke 4 : 6
data ke 5 : 5
data ke 6 : 4
Sebelum diurutkan:9 8 7 6 5 4 
Setelah diurutkan : 4 5 6 7 8 9

Proses pengurutan secara manual
For I ← 1 to n-1
If A[i]>A[i+1] then
Pindahkan (A[i], A[i+1])
Jika elemen kiri > elemen kanan maka kita pindahkan.
Data awal : 9 8 7 6 5 4
Baris 1: 8 9 7 6 5 4
Baris 2 : 8 7 9 6 5 4
Baris 3 : 8 7 6 9 5 4
Baris 4 : 8 7 6 5 9 4
Baris 5 : 8 7 6 5 4 9
Baris 6 : 7 8 6 5 4 9
Baris 7 : 7 6 8 5 4 9
Baris 8 : 7 6 5 8 4 9
Baris9 : 7 6 5 4 8 9
Baris 10 : 6 7 5 4 8 9
Baris 11 : 6 5 7 4 8 9
Baris 12 : 6 5 4 7 8 9
Baris13 : 5 6 4 7 8 9
Baris 14 : 5 4 6 7 8 9
Baris 15 : 4 5 6 7 8 9
5. Menginplementasikan dengan C++

#include <iostream>
#include <cstdlib>

using namespace std;
 

void output(int a[0],int temp,int n){
 for(int i=0;i<n;i++){
  for(int j=i;j<n;j++){
   if(a[i]>a[j]){
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
   }
  }
 }
 cout<<"\nSesudah Di Urutkan"<<endl;
 for(int i=0;i<n;i++){
  cout<<a[i]<<" ";
 }cout<<endl;
}
int main(int argc, char** argv) {
 int n,temp;
 cout<<"Masukkan Batas : ";
 cin>>n;
 int array[n];
 cout<<"Masukkan data : ";
  for (int j=0;j<n;j++){
  cout<<"Data Ke-"<<j+1<<" = ";
  cin>>array[j];
 }
cout<<endl<<endl;
cout<<"sebelum di urutkan"<<endl;
 for (int j=0;j<n;j++){
  cout<<array[j]<<" ";
 }

  output(array,temp,n);
 system("pause");


 return 0;
}

6. Eksekusi

Dalam pengerjaan program ini saya berhasil mengerjakannya dalam waktu 6 jam termasuk untuk posting, Semangat Belajar ^_^

untuk materi selection bisa buka link di bawah:
Aulyah Zakilah Ifani 
untuk materi insertion bisa buka link dibawah ini juga:
Andri Riski Saputra 
REFLEKSI MINGGU #8

REFLEKSI MINGGU #8

Assalamualaikum wr.wb,
baru update lagi setelah Ujian Tengah Semester selama 2 minggu,,

pertemuan di minggu ke 8 masih membahas tentang Array satu dimensi, 

ARRAY:

struktur data yang mengandung type data yang mempunyai type sama.
Berupa sekelompok memori yang berhubungan (contiguous).
Array mempunyai nama dan type yang sama.
Untuk merujuk lokasi tertentu atau elemen dalam array -> nama array + indeks
dalam pembuatan program kali ini sudah mulai menggunakan sub program. 
 
untuk mengisi indeks 2 array c dengan nilai 5:
indeks array dalam C++, mulai dari 0.

untuk lebih memahami tentang array teman-teman bisa membuka Tugas Individu, Diktat Bab 7 dan 8, juga How to Slove ^_^
selamat belajar..
wassalamualaikum wr.wb

LATIHAN PPT (1)

C++ untuk menggantikan strlen, yaitu dengan mengetahui panjang suatu string

#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;
}
 
Tampilan

Rencana Bulan 3

Rencana Bulan 3
1. Identifikasi masalah
Menggeser elemen array ke kanan dan ke kiri

2. Menentukan input dan output
input:123
output:312
3. Membuat flowchat


4. Implementasi dengan menggunakan C++:

#include <cstdlib>
#include <iostream>
#define maks5

using namespace std;

class Array1D{
 friend ostream& operator<<(ostream&, const Array1D&);
 friend istream& operator>>(istream&, Array1D&);
public:
 Array1D();
 void cetak();
 void geser_kanan();

private:
 char A[5];
 int posisi;
};

Array1D::Array1D(){
 for(int i=0;i<5;i++)
 A[i]='O';
}

void Array1D::cetak(){
 for(int i=0;i<5;i++)
 cout<<A[i]<<" ";
}

ostream& operator<<(ostream& out, const Array1D& x){
 for(int i=0;i<5;i++)
 out<<x.A[i]<<" ";
 out<<endl;
 return out;
}

istream& operator>>(istream& in, Array1D& x){
 int posisi;
 for (int posisi=1; posisi<=5; posisi++){
 cout<<"masukkan nilai array posisi ke- : "<<posisi;
 if(posisi >= 0 && posisi <= 5){cout<<"\nmasukkan elemen arraynya :";
 in>>x.A[posisi-1];
 }
 }
 return in;
}

void Array1D::geser_kanan(){
 int n=5;
 int temp=A[n-1];
 for(int i=n-1;i>=0;i--)
 A[i+1]=A[i];
 A[0]=temp;
}
int main(int argc, char *argv[])
{
 Array1D x;
 cout<<"Array masih kosong : "<<x;
 cin>>x;

 cout<<"Isi Array saat ini : "<<x;
 x.geser_kanan();
 cout<<"Isi Array setelah di geser kanan : "<<x;
 system("PAUSE");
 return EXIT_SUCCESS;
}

5. Eksekusi
1. Identifikasi masalah
Menggeser ke kiri
2. Menentukan
Input: 123
Output:231
3. Membuat Flowchat
 
4. Menginplementasikan dengan C++
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void b(int f[100], int u){
    int temp;
    cout<<"Data Sebelum digeser"<<endl;
    for(int i=0;i<u;i++){
        cout<<f[i]<<" ";
    }   
   
    cout<<endl<<endl;
   
    cout<<"Data setelah digeser ke kiri"<<endl;
    temp=f[0]; //u-1
   
    for(int i=0;i<u-1;i++){
        f[i]=f[i+1]; //i-1
    }
   
    f[u-1]=temp; //f[0]
   
    for(int i=0;i<u;i++){
        cout<<f[i]<<" ";
    }
}
int main(int argc, char** argv) {
    int u;
   
    cout<<"================================"<<endl;
    cout<<"    PROGRAM MENGGESER KEKIRI    "<<endl;
    cout<<"================================"<<endl;
   
    cout<<"Masukkan banyak data : ";
    cin>>u;
   
    int f[u];
   
    for(int i=0;i<u;i++){
        cout<<"Data ke-"<<i<<" = ";
        cin>>f[i];
    }   
    cout<<endl;
    b(f,u);
    return 0;
}

5. Eksekusi