Selasa, 31 Mei 2016

refleksi pertemuan 11

Assalamu'alaikum w.w.,

Hari selasa tanggal 24 Mei 2016 Jam 07.00 WIB adalah perkuliahan ALPRO minggu ke-11 yaitu membahas tentang : ARRAY 2 DIMENSI. Tetapi Dosennya lebih utama menjelaskan tentang : MATRIK dan VEKTOR. Seperti pertemuan sebelumnya sebelum dosen datang maka kita sudah harus mempersiapkan/membuka : Rencana Kuliah, PPT, Diktat, E-Book.

Dosennya menjelaskan Matrik ordo 2x3, 3x2 dan vektor 3x1, dll. Dosennya menjelaskan secara rinci agar kita sebagai mahasiswa mengerti. Dosennya memberi tugas tentang Matrik buat sesuai dengan 6 kaidah/langkah dan diupload di blog, dan masukkan link upload tersebut di FB Alpro.

Di minggu ini kita diberi tugas dari Diktat : latihan, batas posting di blog hari Sabtu, tanggal 28, jam 12.00 WIB. Berhubung kemarin saya sudah Posting Diktat dari Bab 1- Bab 10, jadi minggu ini hanya posting Refleksi aja ini.

Wassalamualaikum w. w.,

refleksi pertemuan 10

Assalamu'alaikum

Hallo teman-teman kembali lagi dengan refleksi mingguan kita, mata kuliah alpro,,,,semoga teman-teman semua tetap semangat alpro..

Hari selasa tanggal 17 Mei 2016 Jam 07.00 WIB adalah perkuliahan ALPRO minggu ke-10 yaitu tentang : SEARCHING. Seperti pertemuan sebelumnya sebelum dosen datang maka kita sudah harus mempersiapkan/membuka : Rencana Kuliah, PPT, Diktat, E-Book.
Dosennya menjelaskan materi SEARCHING yang didalmnya terdapat Linear Search & Binary Search. Dosennya menjelaskan sesuai dengan 6 kaidah/langkah. Dosennya memberi tugas di kelas, terdapat 2 tugas diantarannya di kumpulkan pada saat perkuliahan selesai 09.00 WIB, dan setelah Solat Dxuhur 12.00 WIB.


Alhamdulillah di minggu ini tidak diberi tugas dari Diktat maupun E-book, mungkin karena sudah di upload minggu kemarin tentang SEARCHING AND SORTING.  Jadi minggu ini hanya upload Refleksi saja di Blog. Tetapi ada tugas TP yaitu presentasi di depan Mentor , agar tahu sudah sejauh mana TP kelompok. Batas penilaian hari Sabtu, tanggal 21, jam 12.00 WIB.

Cukup sekian refleksi alpro pertemuan 10 semoga bermanfaat dan selamat membaca...........

Refleksi pertemuan 9

Assalamu'alaikum guys..

Disini saya jelaskan refleksi mata kuliah alpro minggu ke-9

Hari selasa tanggal 10 Mei 2016 Jam 07.00 WIB adalah perkuliahan ALPRO minggu ke-9 yaitu tentang : SORTING. Seperti biasannya dosen meminta kita untuk membuka Rencana Kuliah, PPT, Diktat, E-Book. Dosennya meminta kita untuk membaca di Diktat tentang SORTING.

Karena ada permasalahan, jadi perkuliahan di bubarkan dan penggantinya yaitu selasa malam tanggal 10 Mei 2016 jam 18.30 WIB. Jadi kita diminta datang sebelum jam 18.30 dan sudah harus mempersiapkan materi yang ada.

Kuliah penggantipun di laksanakan, kita semua datangnya lebih awal dari jam perkuliahan dan mempersiapkan materi yang akan dipelajari. Dosennya langsung mulai perkuliahan dengan membahas tentang Sorting yang terdapat 3 Metode yaitu : Bubble Sort, Selection Sort, dan Insertion Sort. Dosennya pun memberi tugas seperti kemarin dan batas waktu pengerjaan sampai hari sabtu jam 12.00 WIB.

Di akhir Perkuliahan dosen mengigatkan kita tentang Tugas Proyek kita, minggu ini sudah masuk ke tahap Pembuatan, jadi waktu kita dengan Tugas Proyek sudah mulai dekat.

Terima kasih guys telah membaca semoga bermanfaat.........
 Wassalamu'alaikum w. w.,

Selasa, 24 Mei 2016

Perkalian matriks 2x3 dengan vektor 3


Algoritma perkalian matrik 2x3 dengan vektor 3

1. Identifikasi Masalah
    cara mengalikan matrik 2x3 dengan vektor 3
2. Menentukan Input dan Output
    input  : matrik[2][3]={3,2,4,1,4,2}
                vektor[3]={3,1,4}.
   output : hasil[2]={27,15}
3. Membuat Algoritma/Flowchart
    Procedur perkalian matrik { memasukan nilai input, kemudian diproses untuk menghasilkan output perkalian matrik dengan vektor}
     Deklarasi 
     p,q = integer {input/output}

     matrik, vektor : integer
     Deskripsi
     for p<- 1 to 2 do
         for q<- 1 to 3 do
               ([p,q]=([p,q]+a[p,q]*b[p,q])
               end for
         end for
    end


4.Mengimplementasikan dengan bahasa 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 p=0;p<2;p++){
for(int q=0;q<3;q++)
hasil[p]=hasil[p]+(matrik[p][q]*vektor[q]);
}
}
void cetakm(int hasil[][3]){
for(int p=0;p<2;p++){
for(int q=0;q<3;q++)
   cout<<hasil[p][q]<<" ";
   cout<<endl;
   }
}
void cetakv(int vektor[]){
cout<<"vektor : \n"
for(int p=0;p<3;p++)
cout<<vektor[p]<<endl;
 }
}


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

}


5.Menguji coba dengan data

6.Melakukan De-Bugging
MATRIK
             q=1  q=2  q=3
A p=1|   3      2     4  |
    p=2|   1      4     2  |
VEKTOR
           q=1
B  p=1|  3 |
    p=2|  1 |
    p=3| 4 |
cara perkalian
C = |A11.B11+A12.B21+A13.B13|
       |A21.B11+A22.B21+A23.B31|
jadi
       | 3x3 + 2x1 + 4x4 |
       | 1x3 + 4x1 + 2x4 |
hasil akhirnya
       | 27 |
       | 15 |



 Matrik terdiri dari ordo 2x3 dan vektor terdiri dari 3. pertama kita masukan angka dalam array yg kita buat untuk di kalikan matrik dan vektor. cara pengerjaannya sama dengan cara pengerjaan di atas tadi saat uji coba. kemudian output sama dengan uji coba kita.

Selamat mencoba kawan, semoga berhasil.

Senin, 16 Mei 2016

Selection Sort

Berikut ini adalah materi dari SEARCING AND SORTING. Program yang dibuat yaitu tentang Sorting Data Secara Manual Dengan Metode Selection Sort

SELECTION SORT


Selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan. Dengan kata lain, selection sort adalah membandingkan elemen yang pertama dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar.

Dalam pengurutan data di dalam struktur data sangat penting. Baik data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun). Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
Contoh:
Data Acak    : 5 1 12 -5 16 2 12 14
Ascending    : -5 1 2 5 12 12 14 16
Descending    : 16 14 12 12 5 2 1 -5

Untuk sorting ascending (menaik)
elemen yang paling kecil di antara elemen-elemen yang belum urut,  disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut.
Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
Selection Sort memiliki kelebihan dalam kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu.
Algoritma ini bekerja sebagai berikut:
1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
2. Menukarkan nilai ini dengan elemen pertama list
3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua. Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.

contoh simulasi algoritma selection sort sbb :
jika kita memiliki elemen array sbb :  {5, 1, 12, -5, 16, 2, 12, 14}



Berikut adalah ilustrasi dari konsep selection sort:
5 1 12 -5 16 2 12 14

[5] 1 12 [-5] 16 2 12 14     ---> yang select adalah 5 dan -5, kemudian ditukar 
-5 1 12 5 16 2 12 14          ---> setelah 5 dengan -5 ditukar
-5 1 [12] 5 16 [2] 12 14     ---> select 12 dan 2
-5 1 2 5 16 12 12 14          ---> setelah 12 dengan 2 ditukar
-5 1 2 5 [16] [12] 12 14     ---> select 16 dan 12
-5 1 2 5 12 16 12 14          ---> setelah 16 dengan 12 di tukar
-5 1 2 5 12 [16] [12] 14     ---> select 16 dan 12
-5 1 2 5 12 12 16 14          ---> setelah 16 dengan 12
-5 1 2 5 12 12 [16] [14]     ---> select 16 dan 14
-5 1 2 5 12 12 14 16          ---> setelah 16 dengan 14 ditukar

Berikut ini penjelasan menggunakan 5 kaidah penyusunan algoritma :
1. Mengerti masalah
    mengurutkan deret bilangan secara ascending
2. Menentukan input dan outputnya
    input : 5 1 12 -5 16 2 12 14
    output : -5 1 2 5 12 12 14 16
3. Menyusun algoritma dan flowchart
    hasilnya :
    4. Mengimplementaasikan dengan c++


hasilnya  :

       5. Menguji coba dengan data :
    Setelah diuji coba program nya berjalan.
Sorting Data Secara Manual Dengan Metode Bubble Sort klik disini
Sorting Data Secara Manual Dengan Metode Insertion Sort  klik disini

Alhamdulillah....selamat mencoba gan semoga sukses ^_^

Sabtu, 14 Mei 2016

Ebook How to Solve it by Computer

5. 1 Algorithm The Two-Way Merge.

E-Book (How To Solve It By Computer) = Algorithm 5.1 The Two-Way Merge.


Algoritma :
        if a[m]<b[n] then a[m+1]:=b[n+1]:=a[m];
            i:=1;
            j:=1;
            nm:= n+m;
       for k:= 1 to nm dobegin {merge next element }
            if a[i]<b[j] thenbeginc[k]:=a[i];
                 i:=i+1end elsebeginc[k]:=b[j];
                 j:=j+1end
       end

Program dengan C++ :

#include <iostream>
#include <cstdlib>
using namespace std;

int data[100];

void mergeSort(int awal, int mid, int akhir){
         cout<<endl;
int temp[100], tempAwal = awal, tempMid = mid, i = 0;

while(tempAwal < mid&& tempMid < akhir){
        if(data[tempAwal] < data[tempMid])
               temp[i] = data[tempAwal],tempAwal++;
        else
              temp[i] = data[tempMid],tempMid++;
              i++;
}
while(tempAwal < mid) //kalau masih ada yang sisa
         temp[i] = data[tempAwal],tempAwal++,i++;
         while(tempMid < akhir)
         temp[i] = data[tempMid],tempMid++,i++;
for(int j=0,k=awal;j<i,k<akhir;j++,k++) //mengembalikan ke array semula, tapi
cout<<data[k]<<' '<<temp[j]<<endl, data[k] = temp[j]; //sudah urut
}

void merge(int awal, int akhir) //membagi data secara rekursif{
      if(akhir-awal != 1){
          int mid = (awal+akhir)/2;
          merge(awal, mid);
          merge(mid, akhir);
          mergeSort(awal, mid, akhir);
      }
}

int main(){
    int n;
   cout<<"Masukan banya data = ";cin>>n;
   cout<<"Masukan data yang akan di susun = ";
   for(int i=0;i<n;i++)
   cin>>data[i];
   merge(0,n);
   for(int i=0;i<n;i++)
        cout<<data[i]<<' ';

return 0;
}

5.2 Algorithm Sorting By Selection.

 E-Book (How To Solve It By Computer) = Algorithm 5.2 Sorting By Selection.

Algoritma:

Selection Sort

Algoritma ini mudah diterjemahkan ke dalam program computer tetapi memiliki kekurangan yaitu sort dengan menggunakan metode Seleksi membutuhkan ruang di memori untuk meyimpan 2 daftar lengkap.
Jika memiliki satu daftar nama dan meletakkan dalam urutan berdasarkan huruf bisa menggunakan pemdekatan umum sebagai berikut :
Temukan atau cari nama yang pertama kali datang dalam urutan huruf dan tulis di sheet kedua
Tandai nama yang keluar dari daftar asli
 Lanjutkan perputaran ini sampai semua nama di daftar semula telah di coret dan ditulis di daftar kedua dimana di bagian daftar yang kedua ini nama-nama sudah terurut berdasarkan huruf.
Program C++ :


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

int data[100],data2[100];
int n;

void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}

void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j–)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
cout<<”bubble sort selesai!”<<endl;
}

void exchange_sort()
{
for (int i=0; i<n-1; i++)
{
for(int j = (i+1); j<n; j++)
{
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”<<endl;
}

void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<”selection sort selesai!”<<endl;
}

void insertion_sort()
{
int temp,i,j;
for(i=1;i<n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”<<endl;
}

void QuickSort(int L, int R) //the best sort i’ve ever had
{
int i, j;
int mid;

i = L;
j = R;
mid = data[(L+R) / 2];

do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;

if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);

if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}

void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i<n;i++)
{
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}

void Tampil()
{
cout<<”Data : “<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}

void AcakLagi()
{
for(int i=0;i<n;i++)
{
data[i] = data2[i];
}
cout<<”Data sudah teracak!”<<endl;
}

void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”<<endl;
cout<<”*********************************************”<<endl;
cout<<” 1. Input Data”<<endl;
cout<<” 2. Bubble Sort”<<endl;
cout<<” 3. Exchange Sort”<<endl;
cout<<” 4. Selection Sort”<<endl;
cout<<” 5. Insertion Sort”<<endl;
cout<<” 6. Quick Sort”<<endl;
cout<<” 7. Tampilkan Data”<<endl;
cout<<” 8. Acak Data”<<endl;
cout<<” 9. Exit”<<endl;
cout<<” Pilihan Anda = “; cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”<<endl;
break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}

5. 3 Algorithm Sorting By Exchange.
silahkan buka klik disini

5.4 Algorithm Sorting By Insertion.
silahkan buka klik disini

5. 7 Algorithm Binary Search.
silahkan buka klik disini

Rencana Kuliah minggu ke-9

Rencana kuliah minggu ke-9 adalah:
1. Bubble sort

Procedure Bubble_Sort (input/output x : larik, input n : byte)
Deklarasi

larik = array [1..100] of integer
i, a : byte k : larik
j, bantu : integer
Deskripsi

for i <-- 1 to n-1 do
for j <-- i+1 to n do
if x[i] > x[j] then
tukar(x[i], x[j])
endif
endfor
endfor

C++ :

outputnya :

2. Algoritma Selectoin Sort

Procedure minimum(input A : larik; dari, n : integer; output tempat : integer)
{ mencari tempat di mana elemen terkecil ditemukan}
Deklarasi
i, min : integer
Deskripsi
min <-- A[dari];
tempat <-- dari;
for i <-- dari+1 to n do
if A[i] < min then
min Ã… A[i];
tempat <-- i;
endif
endfor


c++:
 Raptor :


3. Insertion Sort
 silahkan klik disini

PPT Pertemuan 9

Kasus 8.1 linear Sort
 Algoritma Linear Search

function pencarianLinier(input aray : larik; kunci, ukuran : integer) : integer
Deklarasi

ketemu : boolean
i, n : integer
Deskripsi

ketemu <-  false;
n <-- 1 while ((n < ukuran) and (not ketemu)) do
if (aray[n] = kunci) then
ketemu <- true { data ketemu }
i <- n { pada posisi ke-i }
endif
else n <-  n+1 { cek data berikutnya }
 endwhile
if ketemu then pencarianLinier <- i { data ketemu pada posisi ke-i }
else pencarianLinier <- -1 { data tidak ketemu }
 endif
end

c++ :
 Raptor :



8.2 Binary Search

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++ :


 output:


8.3 Bubble sort
Algoritma:


Procedure Bubble_Sort (input/output x : larik, input n : byte)
Deklarasi

larik = array [1..100] of integer
i, a : byte k : larik
j, bantu : integer
Deskripsi

for i <-- 1 to n-1 do
for j <-- i+1 to n do
if x[i] > x[j] then
tukar(x[i], x[j])
endif
endfor
endfor

Program dev c++ nya


output :

Kasus 8.4--8.5 klik disini
kasus 8.6--8.7 klik disini

Refleksi minggu ke 2

Refleksi Pertemuan ke 2 Assalamu'alaikum w. wb., Selamat berjumpa lagi teman-teman, baik saya disini akan menuliskan tentang refl...