animasi bergerak gif
My Widget
Hai MBLO!

Selasa, 24 Mei 2016

Perkalian Matrik dengan Vektor



1. Identifikasi Masalah 
    Cara Mengalikan matrik 3x2 dengan vektor.

2. Menentukan input dan output
    input : Matrik = | 2 1 4 |
                              | 1 4 2 |
                Vektor = | 1 |
                               | 2 |
                               | 4 |
    output : hasil = | 20 |
                             | 17 |  

3.   Algoritma
      Procedur kali matrik (input/output i,j,matrik vektor
      Deskripsi :
       for i<- 1 to 2 do
           for j<- 1 to 3 do
              ([i,j]=(i,j)+a[i,j]*b[i,j])
                 end for
              end for
           end for


4. Mengimplementasikan dengan 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 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 : \n";
 for(int i=0;i<3;i++){
  cout<<vektor[i]<<endl;
 }
}

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


5. Output




 6. Uji coba dengan data
      Matrik 
         A = | 2 1 4 |
                | 1 4 2 |
      Vektor 
           B = | 1 |
                  | 2 |
                  | 4 |
Perkalian
C = |A11.B11+A12.B21+A13.B13|
       |A21.B11+A22.B21+A23.B31|
   = | 1x1 + 3x2 + 3x3 |
       | 2x1 + 3x2 + 4x3 |
Hasil  
       | 20 |
       | 17 |




Jumat, 13 Mei 2016

Sorting (Bubble Sort)

 Diberi nama "Bubble" karena proses pengurutan secara berangsur-angsur bergera/berpindah ke posisi yang tepat, bila akan di urutkan nilai yang besar yang akan naik sementara nilai yang kecil turun. Setiap data (misalnya data pertama) akan di bandingkan dengan data yang ada di sebelahnya (dari data kedua sampai selesai).



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
Flowchat menggunakan aplkasi Raptor :  



Outputnya : 

  
 Program menggunakan Dev C++ :

#include <iostream>
#include <cstdlib>

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

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 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) {
int data[10], n;
cout<<"Banyak data : ";
cin>>n;
baca_data(data,n);
cetak_data(data,n);
buble_sort(data,n);
cetak_data(data,n);

return 0;
}

Outputnya :


Pada materi Insertion Sort bisa dilihat di blog teman kelompok saya pada Link Delav
Pada materi Selection Sort bisa dilihat di blog teman kelompok saya pada

Kasus 8.2 : Pencarian Biner (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
 

Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi Dev C++ :

#include <iostream>
#define UKURAN 15

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

using namespace std;

void cetakHeader(void){
     int i;
     cout<<"\nSubscript : \n";
     for (i=0;i<=UKURAN-1;i++) cout<<i<<" ";
     cout<<"\n";
     for (i=1; i <= 4*UKURAN; i++) cout<<"-";
     cout<<"\n";
     }
void cetakBaris(int b[], int low, int mid, int high){
     int i;
     for (i=0; i<=UKURAN-1; i++)
     if (i<low || i>high) cout<< " ";
     else if (i==mid) cout<< "*" <<b[i];
     else cout<<b[i] << " ";
     cout<<"\n";
     }
int pencarianBiner(int b[], int kunciPencarian, int low, int high){
    int i, middle;
    while (low <= high) {
    middle = (low+high) / 2;
    cetakBaris(b, low, middle, high);
    if (kunciPencarian == b[middle])
    return middle;
    else if (kunciPencarian < b[middle])
    high = middle - 1;
    else low = middle + 1;
    }
    return -1;
}

int main(int argc, char** argv) {
    int a[UKURAN], i, kunci, hasil;
    for (i=0; i<=UKURAN-1; i++) a[i] = 2*i;
    cout<<"Masukkan bilangan antara 0-28 : ";
    cin>>kunci;
    cetakHeader();
    hasil=pencarianBiner(a,kunci,0,UKURAN-1);
    if (hasil != -1) cout<<kunci<<" ditemukan pada posisi : "<< hasil;
    else
    cout<<kunci<<" tidak ditemukan";
  
  return 0;
}

Kasus 8.1 : Pencarian Linear (Linear Search)

Algoritma :

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




Dev c++ :

ALPRO Pertemuan ke 9

Apa kabar ALPRO ? masih sehatkah ?
Seperti biasa dosen meminta kita untuk membuka Rencana Kuliah, PPT, Diktat, E-Book. Dosennya meminta kita untuk membaca di Diktat tentang SORTING. Karena ada permasalahan yang bikin bapaknya gak enak hati jadi perkuliahan dibubarkan dan diganti pada malam harinya. 
Dosennya langsung mulai perkuliahan dengan membahas tentang Sorting yang terdapat 3 Metode yaitu : Bubble Sort, Selection Sort, dan Insertion Sort. Dan seperti byasa tiada hari tanpa tugas, kita pun diberi tugas seperti kemarin dan di upload di blog masing-masing. 
yah seperti itu kira-kira gambaran pertemuan ke 9 kami, walaupun saya kurang paham saya mencoba memahami dan bertanya keteman yang lain. sampai ketemu alpro selasa depan...

BAB IX

1. Buatlah algoritma dan program untuk mengalikan matriks dengan vektor. Vektor adalah
    matriks berdimensi satu (bisa matriks baris maupun matriks kolom). Implementasikan
    matriks dengan array berdimensi dua, dan vektor dengan menggunakan matriks
    berdimensi satu.

     a. Buat contoh matriks sembarang, misal berordo 2x2 :
     b. Buat contoh vektor :
     c. Kalikan matriks poin a dan vektor poin b elemen demi elemen. Jangan menuliskan hasil
        akhir saja, tapi tuliskan pula perkalian (dan penjumlahan) setiap elemen.
    d. Identifikasilah dan kelompokkan setiap langkah dengan variabel perulangan !
    e. Tulis lengkap algoritma yang anda peroleh :

   Dev c++ :




2. Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak
    matriks identitas berodo n.

Dev c++ :


3. Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks.

Dev c++ :



4. Buatlah algoritma dan program mengalikan matriks dengan suatu skalar (konstanta).

Dev c++ :







5. Buatlah algoritma dan program invers matriks berordo dua. Lalu kalikan matriks asal
    dengan matriks inversnya untuk mengecek apakah hasil kalinya merupakan matriks
    identitas atau bukan.
     a. Buat contoh matriks sembarang, berordo 2x2 :
     b. Hitung determinan matriks di atas
     c. Tulis matriks adjoin dari poin a
     d. Hitung invers matriks berordo 2x2 :

Dev c++ :




BAB VIII

1. Perhatikan bahwa Anda dapat melewatkan banyak nomor dalam daftar dan masih berada

dalam urutan menaik yaitu sebagai berikut :

3 4 6 17 21 24 32 43
Angka-angka ini meningkat saat Anda bergerak melalui daftar dari kiri ke kanan. Bangunlah
sebuah array yang berisi angka-angka tersebut ? Kemudian lakukan pencarian biner (Binary
Search) untuk memeriksa apakah angka yang kita cari ada dalam daftar array tersebut ?

2. Jika terdapat sebuah array yang elemennya berindeks 1 sampai dengan 15. Masing-masing
elemen berturut-turut berisi nilai sebagai berikut:
1, 2, 8, 25, 30, 49, 50, 55, 60, 61, 68, 70, 72, 84, 90.
Jelaskan langkah-langkah pencarian nilai 49 dalam array tersebut dengan metode
pencarian biner, sehingga menghasilkan indeks elemen array tempat ditemukannya nilai
tersebut



3. Urutkan deret angka berikut dengan bubble sort :
7 4 5 8 10
Tuliskan hasil tiap langkah (step).


4. Periksalah daftar 6 angka di bawah ini :
    14 32 5 12 61 7
    Ketika Anda melihat daftar tersebut, Anda segera dapat melihat bahwa 5 adalah angka
    terkecil didaftar. Tugas ini lebih sulit untuk komputer. Jadi untuk itu harus dibuat program
    untuk menemukan nilai minimum tersebut. Buatlah program selection sort dan lakukan
    sorting secara manual (step by step) !


5. Urutkan deret angka berikut dengan selection sort dan tuliskan hasil tiap langkah (step) :
    21 16 25 8 19 4 1


6. Diketahui deret angka sebagai berikut :
    5 2 4 6 1 3
   Dari deret angka tersebut, lakukan pengurutan dari yang paling kecil sampai paling besar
   menggunakan insertion sort !

 
 


7. Mari kita lihat daftar nomor dari sebuah array untuk melihat bagaimana cara merge sort
    bekerja :
    32 12 5 18 31 4 25 7
    [0] [1] [2] [3] [4] [5] [6] [7]
    Lakukan sorting dari data dalam array di atas menggunakan merge sort sehingga nomor
    paling kecil berada paling depan samapai yang paling besar berada paling belakang !




8. Diketahui deretan data sebagai berikut :
    8 1 4 9 7 3 5 2 7
    Urutkan data tsb. memakaiMerge sort, agar elemen terkecil berada paling depan (urutan
    pertama), semakin ke belakang semakin besar !



9. Ada beberapa kumpulan data sebagai berikut :
    2 8 3 5 6 4 11 1 9
    Urutkan kumpulan data di atas menggunakan quick sort serta gambarkan step by step dari
    sorting tersebut !




10. Urutkan data yaitu [2 8 7 1 3 5 6 4] dengan menggunakan Quick Sort, agar elemen
    terkecil berada paling depan (urutan pertama), semakin ke belakang semakin besar !
 


Buatlah aplikasi kamus Inggris – Indonesia denan minimal setiap huruf terdapat 5 kata

yang diterjemahkan. Rancanglah melalui tahapan berikut :

1. Tahap 1 membuat class Kamus

class Kamus {
friend ostream& operator<<(ostream&, Kamus &);
friend istream& operator>>(istream&, Kamus &);
public :
// berisi method sorting dan binary searching
private :
// berisi sekurang-kurangnya dua data
};
2. Tahap 2 : membuat implementasi class

3. Tahap 3 : running program
a. memasukkan data dari keyboard
b. menyimpan data ke file
c. melakukan pencarian data : kasus ada dalam kamus (atau tidak ada)