REFLEKSI MINGGU #10

REFLEKSI MINGGU #10

Assalamualaikum wr.wb,
ini adalah pertemuan terakhir pada mata kuliah "ALGORITMA PEMROGRAMAN" terimakasih atas partisipasi teman-teman yang sudah membuka blog ini semoga apa yang ada pada postingan bisa bermanfaat kedepannya untuk teman-teman yang sedang belajar tentang algoritma pemrograman.
di akhir pertemuan ini saya dan rekan tim saya aulyah zakilah ifani dan Andri Rizki Saputra membuat media pembelajaran shalat untuk anak-anak sebagai final project Algoritma pemrograman untuk teman-teman yang ingin menonton presentasi tim kami bisa buka  di youtube dengan keyword "MEEDIA PEMBELAJARAN SHALAT UNTUK ANAK" atau klik TP ALPRO KELOMPOK 12 // https://www.youtube.com/watch?v=oRZhsG6P4_w jangan lupa like dan koment jika ada kritikan dan saran agar kami bisa memperbaiki,,

sampai jumpa di postingan selanjutnya ^^
wassalamualaikum wr.wb,
REFLEKSI MINGU KE #12

REFLEKSI MINGU KE #12

Assalamualaikum wr.wb,

kembali, dalam pertemuan kali ini kita mempelajari materi perkuliahan tentang record.

Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai
type. Satuan data tersebut sering disebut sebagai field dari recordField dipanggil dengan
menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapasubfield.

Record sendiri biasa digunakan untuk database misalkan data mahasiswa.
1.NIM
2.NAMA
3.TANGGAL
   -tanggal
   -bulan

untuk lebih memahami tentang record bisa dilihat penjelasannya dalam contoh contoh yang ada di blog ini ^_^

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


4.4 How To Solving

Menghilangkan Indeks yang sama

Menggunakan Program C++

#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) {
    int a[20],n;
    cout<<"Batas : ";
    cin>>n;
   
    for (int i=0;i<n;i++){
    cout<<"Data : ";
    cin>>a[i];
}
    for (int i=0;i<n;i++){
    if(a[i]==a[i+1])
    cout<<a[i];
    else if(a[i-1]==a[i])
    cout<<"";
    else if(a[i]==a[i+2])
    cout<<a[i];
    else if(a[i-2]==a[i])
    cout<<"";
    else if(a[i]==a[i+3])
    cout<<a[i];
    else if(a[i-3]==a[i])
    cout<<"";
    else if(a[i]==a[i+4])
    cout<<a[i];
    else if(a[i-4]==a[i])
    cout<<"";
    else if(a[i]==a[i+5])
    cout<<a[i];
    else if(a[i-5]==a[i])
    cout<<"";
   
    else
    cout<<a[i];
}

/*    for (int i=0;i<n;i++){
        cout<<a[i]<<" ";       
   
   
    }*/
   
    return 0;
}

Tampilan


Untuk 4.1 dan 4.2 bisa dipelajari di:
keronskl.blogspot.com
Untuk 4.5 dan 4.6 bisa dipelajari di:
pengantarprogram.blogspot.com

4.3 How To Solves

Mencari Laba Usaha

Menggunakan Program C++

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;


int main(int argc, char *argv[])
{
    int a,b,c,d,bersih,pokok,pajak;
    int pendapatan,beban;
    int laba_usaha,laba_kotor,laba_sebelum_pajak,laba_bersih;
    cout<<"|====================================================|\n";
    cout<<"|                                                    |\n";
    cout<<"|          Program Untuk Mencari Laba Usaha          |\n";
    cout<<"|                                                    |\n";
    cout<<"|====================================================|\n";
    cout<<"| Mencari Pendapatan                                 |\n";
    cout<<"|----------------------------------------------------|\n";
    cout<<"| Masukkan pendapatan usaha         : ";cin>>a;
    cout<<"| Masukkan pendapatan di luar usaha : ";cin>>b;
    pendapatan=a+b;
    cout<<"| Jumlah pendapatan usaha           : "<<pendapatan<<"\n";
    cout<<"|----------------------------------------------------|\n";
    cout<<"| Mencari Beban                                      |\n";
    cout<<"|----------------------------------------------------|\n";
    cout<<"| Masukkan beban usaha \t\t: ";cin>>c;
    cout<<"| Masukkan beban di luar usaha  : ";cin>>d;
    beban=c+d;
    cout<<"| Jumlah beban \t\t\t: "<<beban<<"\n";
    cout<<"|----------------------------------------------------|\n";
    cout<<"| Mencari Laba                                       |\n";
    cout<<"|----------------------------------------------------|\n";
    cout<<"| Masukkan penjualan bersih     : ";cin>>bersih;
    cout<<"| Masukkan harga pokok    \t: ";cin>>pokok;
    cout<<"| Masukkan pajak     \t\t: ";cin>>pajak;
    cout<<"|----------------------------------------------------|\n";
    cout<<"| Hasil Laba                                         |\n";
    cout<<"|----------------------------------------------------|\n";
    laba_kotor=bersih-pokok;
    cout<<"| Laba Kotor \t\t: "<<laba_kotor<<"\n";
    laba_usaha=laba_kotor-c;
    cout<<"| Laba Usaha \t\t: "<<laba_usaha<<"\n";
    laba_sebelum_pajak=laba_usaha+(b-d);
    cout<<"| Laba Sebelum Usaha    : "<<laba_sebelum_pajak<<"\n";
    laba_bersih=laba_sebelum_pajak-(pajak*15/100);
    cout<<"| Laba Bersih \t\t: "<<laba_bersih<<"\n";
    cout<<"|====================================================|\n";
   
    system("pause");
    return 0;
}

Tampilan