Jumat, 27 Mei 2016

REFLEKSI MINGGU KE 11

Assalamualikum w.r.w.b

                Di minggu ini kami membahas tentang materi Binary. Dosen menjelaskan materi begitu jelas sehingga kami mengerti tentang Binary. Dan di akhir perkuliahan kami di beri tugas tentang Binary dan di kumpul sesaat itu juga, alhamdulillah karena saya mengerti jadi tidak susah payah menyelesaikannya.

               Sekian refleksi minggu 11, mohon maaf jika ada kata-kata saya yang salah.

Wassalamulaikum W.r.w.b  

REFLEKSI MINGGU KE 10

Assalamulaikum W.r.w.b

                 Minggu ke 10, Alhamdulillah saya tidak datang terlambat malah saya datang cepat bgt, sebelum kuliah  di mulai 15 menit sebelumnya saya sudah ada di kelas dan menyiapkan bahan pengajaran yang akan di bahas di minggu ke 10, di ruangan begitu rame karena kami gabung dengan kelas B. Tetapi walaupun banyaknyaorang di kelas tetapi kelas tetap tenang dan peroses belajar pun berjalan dengan lancar.

                 Minggu ke 10 kami masih membahas tentang materi sorting, dan di minggu ini adalah minggu di mana kita harus mengerti betul tentang sorting, karena jika kita tidak mengerti bakalan susah, karena banyak tugas yang di berikan oleh dosen.

                 Sekian refeleksi minggu ke 10 dari saya.

wassalmulaikum w.r.w.b  

Selasa, 24 Mei 2016

Perkalian Matrik Dengan Vektor


Menentukan hasil perkalian antara matrik x vektor (3x2) menggunakan 6 kaidah penyusunan program:



1. Mengerti masalah

 Mengalikan antara matrik dan vektor

2. Menentukan input dan output

input : matrik[2][3]={3,2,5,1,6,4}
vektor[3]={1,2,3}
output : hasil[2]

3.Membuat algoritma

Deklarasi : i,j, = integer

Deskripsi : for (i=1 ; i<=2 ;i++)
for (j= 1 ; j<=3 ; j++
total [i][j]=0;
for (k= 1 ; k<=3 ; k++)
total [i][j] = total [i][j]+A[i][k][j] ;

4. Mencoba dengan data :

MATRIK
j=1 j=2 j=3
A i=1| 3 2 5
i=2| 1 6 4
VEKTOR
J=1
B i=1| 1 |
i=2| 2 |
i=3| 3 |
cara perkalian
C = |A11*B11+A12*B21+A13*B31|
|A21*B11+A22*B21+A23*B31|
jadi
| 3x1 + 2x2 + 5x3 |
| 1x1 + 6x2 + 4x3 |
hasil akhirnya
| 22 |
| 25 |

5. Codingan DEV 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]={ 3,2,5,1,6,4}, vektor[3]={1,2,3},hasil[2]={0};
kali(matrik,vektor,hasil);
cetakm(matrik);
cetakv(vektor);
cetak(hasil);
return 0;

}



6. Hasil Outputnya :







Senin, 16 Mei 2016

Pembahasan Materi Searching And Sorting Tentang Insertion Sort

Assalamu’alaikum w.r,w,b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Insertion Sort.

Menyusun Algoritma :

procedure insertion_sort(input/output data:larik; input n:integer)


Deklarasi:
a,i, j, temp : int

Deskripsi:
for (int i = 0; i < a; i++) {fungsi Perulangan jika i < a maka i akan terus bertambah}
{
temp = data [i];

j = i-1;
do(j > 1) {fungsi perulangan menggunakan do while yg kondisinya jika j > 1}
{

data [j+1] = data [j];

j = j-1;
}

while (temp <= data [j]);

if (temp >= data [j]) {fungsi percabangan yg kondisinya jika temp >= data [j] maka data [j+1] = temp}
{
data [j+1] = temp;
}

else {mengganti tempat elemen saat ini data[j+1] dengan elemen data[j] dan element data [j] ditukar dengan element temp}
{data [j+1] = data [j];


data [j] = temp;
}
}


 Berikut ini adalah Pengimplementasian Program Flowchart yang menggunakan Aplikasi RAPTOR :






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

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

class Sorting {
      friend istream& operator>>(istream& in, Sorting& a);
      friend ostream& operator<<(ostream& out, Sorting& a);
public:
       void baca_data();
       void cetak_data();
       void buble_sort();
       void insertion_sort();
       void selection_sort();
private:
        void minimum(int , int, int&);
        void tukar (int&, int&);
        int data[10], n;
};
  istream& operator>>(istream& in, Sorting& a) {
    cout<<"Banyak data : ";
    in>>a.n;
    for (int i = 0; i < a.n; i++) {
    cout<<"Data ke-" <<i+1<< " : ";
    in>>a.data[i];
}
  return in;
}
  ostream& operator<<(ostream& out, Sorting& a) {
    for (int i = 0; i < a.n; i++)
    out<<a.data[i] << " ";
    out<<"\n";
  return out;
}
  void Sorting::tukar (int &a, int &b){
       int temp;
       temp = a;
       a = b;
       b = temp;
  }
  void Sorting::insertion_sort(){
       int i, j, temp;
       cout<<"Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
       for(j = 1; j < n; j++){
           temp = data[j];
           cout<<"\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
           cout<<"Dilakukan penggeseran elemen :\n";
       for(i = j - 1; (i >= 0) && (data[i] > temp); i--){
           cout<<"data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
           data[i+1] = data[i];
       }
        cout<<"Data baru masuk pada posisi ke-[" << i+2 << "]\n";
        data[i+1] = temp; //Insert key into proper position
        cout<<"Data saat ini adalah : ";
        for (int k=0; k<=j; k++) cout << data[k] << " ";
            getch();
            }
  }
int main(int argc, char** argv) {
    Sorting angka;
    cin>>angka;
    angka.insertion_sort();
    cout<<"\nHasil akhir adalah : \n";
    cout<<angka;

 return 0;
}



Uji coba Output/hasil compiler dari program tersebut :

  

Langkah-Langkah Pengerjaan:
Terdapat angka yang acak di bawah ini :
[7,5,6,3,4,1,2]
-Cara pengerjaanya pertama-tama kita menggambil angka pertama di sebelah kiri yaitu [7]
[7]
-Kemudian kita ambil angka ke dua yaitu [5] , karena angka [5]  lebih kecil dari [7], kita ditaruh di 
sebelah kiri: 
[5, 7]

-Kemudian kita ambil angka ke tiga yaitu [6], karena angka ke [6] < [7] dan [6] > [5], maka kita taruh di tengah-tengah antara angka [5] dan [7], seperti di bawah ini:

[5,6,7]

-Selanjutya kita ambil angka ke empat yaitu [3] karena tiga lebih kecil dari angka yang kita cari sebelumnya, maka angka [3] kita taruh di paling kiri, seperti di bawah ini:

[3,5,6,7]

-Selanjutnya kita ambil angka ke lima yaitu [4], karena angka [4] < [5,6,7] dan [4] > [3] maka kita taruh seperti di bawah ini:

[3,4,5,6,7]

-Selanjutya kita ambil angka ke enam yaitu [1] karena [1] lebih kecil dari angka yang kita cari sebelumnya, maka angka [1] kita taruh di paling kiri, seperti di bawah ini:

[1,3,4,5,6,7]

-Selanjutya kita ambil angka ke tujuh yaitu [2], karena [2] < [3,4,5,6,7] dan [2] > [1] maka kita taruh seperti di bawah ini:

[1,2,3,4,5,6,7]

Selesai sudah karena angka-angka sudah terurut, begitulah langkah-langkah pengerjaannya. terimakasih.

Selamat mencoba, dan Semoga bermanfaat ....

Untuk pembahasan Bubble Sort dan Selection Sort silakan kunjungi link blog teman kelompok saya:-)
klik disini!
klik disini!
Wassalamu’alaikum w.w.



Jumat, 13 Mei 2016

Refleksi Pertemuan 9

Assalamualaikum w.r.w.b

             Pada kesempatan kali ini saya akan sedikit curhat tentang pertemuan 9, di pertemuan kali ini kami membahas materi tentang shorting. Sorting adalah materi tentang mengurutkan bilangan yang belum terurut menjadi terurut, kita bisa menggunkan aplikasi Dev C++ dan Raptor.

            Pertemuan kali ini sedikit menegangkan, karena dosen sedikit ngambek sehingga perkuliahanpun di ganti menjadi jam 18.30. Setelah perkuliahan di mulai dosen memberikan kami materi sorting dan sedikit panjang menjelaskannya, setelah selesai menjelaskan ada beberapa orang yang di suruh maju untuk menyelesaikan soal yang ada di papan tulis, suasanapun menjadi  mencekam dan seluruh mahasiswa kelihatan ketakutan bila di suruh maju. ehmmm sangat mengerikan....

            Akhirnya perkuliahan pun selesai, dan kami di beri tugas yang banyak banget, deadline sabtu jam 12.00 siang. Sehingga saya sangat terburu-buru mengerjakan tugas yang di berikan, jadi saya mohon  maaf jika banyak yang salah dalam postingan saya.

           Cukup sekian curhatan dari hati saya yang paling dalam semoga Allah melancarkan semua hal yang kita kerjakan. Amin....

Kunjungin juga blog temen kelompok saya:-)
Greentimeuad.blogspot.com
hadie97.blogspot.com

Wassalmualikum W.r.w.b


Diktat Bab 9



Assalamu'alaikum wr.wb

Pada kesempatan kali ini, saya akan membahas kasus-kasus pada diktat bab 9. Langsung saja.

Workshop

Kasus 1

Algoritma

deklarasi
A[maks][maks],baris,kolom::integer
deskripsi
read (baris,kolom)
for i <-- 1 to n -1 do
for j <-- 1 to n-1 do
baris,kolom := A[i][j]
for i <-- 1 to n-1 do
for j <-- 1 to n-1 do
for z <-- 1 to n-1 do
hasil := A[i][j]*2[m]
endfor
endfor
endfor

C++

#include <iostream>

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

int main(int argc, char** argv) {
int A[maks][maks], baris, kolom;
cout<<"input baris :"; cin>>baris;
cout<<"input kolom :"; cin>>kolom;
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<"Masukan data ke ["<<i<<"] ["<<j<<"] : "; cin>>A[i][j];
}
}
cout<<"Isi Matriks A :\n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<A[i][j]<<" ";
}
cout<<endl;
}
int m[baris],n;
cout<<"penghitungan vektor \n";
cout<<"berapa variabel : ";
cin>>m[kolom];
for(int z=0; z<kolom; z++){
cout<<"Masukan data ke ["<<z<<"] "" : "; cin>>m[z];
}
cout<<endl;

cout<<" vektor b : \n";
for(int z=0; z<kolom; z++){
cout<<m[z]<<"\n";
}
cout<<"perkalian matrik dan vektor \n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
for(int z=0; z<kolom; z++){
n=A[i][j]*m[z];
cout<<n<<" ";
}
}
}
return 0;
}



muhammadsutiknocronosal.blogspot.com







Kasus 2




C++




#include<iostream>




using namespace std;

main(){ int i,j,n;

cout<<"masukkan ordo matriks : "; cin>>n;

for(i=1;i<=n;i++){

for(j=1;j<=n;j++){

if(i==j) cout<<"1 ";

else cout<<"0 ";

}

cout<<endl;

}

}




muhammadsutiknocronosal.blogspot.com







Flowchart




muhammadsutiknocronosal.blogspot.com










Kasus 3




C++




#include <iostream>

#include <conio.h>

#include <cstdlib>




using namespace std;

main(){ int i,j,m,n,o;

cout<<"Program transpose matriks C(m,n)\nMasukkan nilai m : ";

cin>>m; cout<<"masukkan nilai n : "; cin>>n;

int mat[m][n];

for(i=0;i<m;i++){

for(j=0;j<n;j++){

cout<<"nilai C("<<i+1<<","<<j+1<<")=";

cin>>mat[i][j];

}

cout<<endl;

}

system("cls");

cout<<"matriks diatas diilustrasikan seperti gambaran dibawah ini\n\n";

for(i=0;i<m;i++){

for(j=0;j<n;j++){

cout<<mat[i][j]<<" ";

}

cout<<endl;

}

o=m; m=n; n=o;

cout<<"\nTranspose matriksnya adalah seperti gambar dibawah ini\n\n";

for(j=0;j<m;j++){

for(i=0;i<n;i++){

cout<<mat[i][j]<<" ";

}

cout<<endl;

}

return 0;

}




muhammadsutiknocronosal.blogspot.com








Flowchart


muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com







Kasus 4




C++




#include <iostream>

#include <stdio.h>

#include <stdlib.h>

using namespace std;

void Masukan(int *q, int brs, int klm) {

int i, j;

for(i = 0; i < brs; i++) {

for(j = 0; j < klm; j++) {

cout << " Elemen [" << (i + 1) << "][" << (j + 1) << "]? ";

scanf("%d", (q + i * klm + j));

}

}

}




void Tampilkan(int *q, int brs, int klm) {

int i, j;

for(i = 0; i < brs; i++) {

cout << endl;

for(j = 0; j < klm; j++) {

cout <<" ";

cout << *(q + i * klm + j) << "\t";

}

}

cout << endl;

}




void Kali(int *p, int *q, int *z, int bA, int kA, int bB, int kB) {

int i, j, k;

for(i = 0; i < bA; i++) {

for(j = 0; j < kB; j++) {

*(z + i * bB + j) = 0;

for(k = 0; k < kA; k++) {

*(z + i * bB + j) += *(p + i * kA + k) * (*(q + k * kB + j));

}

}

}

}




int main() {

cout<<"\t\t\tPROGRAM : PERKALIAN MATRIKS DENGAN SKALAR\n";

awal:

int *a, *b, *c, brsA, klmA, brsB, klmB;

cout<<"\n SYARAT...!!!\n";

cout<<" Jumlah Kolom A HARUS SAMA dengan Baris B\n\n";

cout << " Jumlah Baris Matriks A? ";

cin >> brsA;

cout << " Jumlah Kolom Matriks A? ";

cin >> klmA;

cout << " Jumlah Baris Matriks B? ";

cin >> brsB;

cout << " Jumlah Kolom Matriks B? ";

cin >> klmB;

if(klmA != brsB) {

cout << " Perkalian TIDAK Dapat Dilakukan." << endl;

cout << " Jumlah Kolom A TIDAK Sama Dengan Jumlah Baris B." << endl;

} else {

a = (int *) malloc(brsA * klmA * 4);

b = (int *) malloc(brsB * klmB * 4);

c = (int *) malloc(brsA * klmB * 4);




cout << "\n Kordinat Inputan [y][x]" ;

cout << "\n Contoh: ordo 2x2" ;

cout << "\n [1][1]\t[1][2]\t" ;

cout << "\n [2][1]\t[2][2]\t" ;

cout << "\n\n Input Matriks A:\n" ;

cout << " ----------------\n";

Masukan(a, brsA, klmA);

cout << "\n Input Matriks B:\n" ;

cout << " ----------------\n";

Masukan(b, brsB, klmB);




cout << "\n Matriks A:" << endl;

Tampilkan(a, brsA, klmA);

cout << "\n Matriks B:" << endl;

Tampilkan(b, brsB, klmB);

Kali(a, b, c, brsA, klmA, brsB, klmB);

cout << "\n Matriks A x B:" << endl;

Tampilkan(c, brsA, klmB);

}

cout<<"\n\n Apakah Anda Ingin Mengulang [Y/N] ? " ;

char m ;

cin>>m;

if (m == 'y' || m== 'Y')

goto awal;

else if (m == 'n' || m== 'N')

{

goto akhir;

}

akhir:

cout<<"\n\n\t\t\t \"TERMA KASIH\"";

return 0;

}







muhammadsutiknocronosal.blogspot.com







Kasus 5




C++




#include <iostream>




using namespace std;




main(){ int i,j; float det,temp;

float mat[2][2], c[2][2], ci[2][2], ch[2][2];

for(i=0;i<2;i++){

for(j=0;j<2;j++){

cout<<"nilai C("<<i+1<<","<<j+1<<")=";

cin>>mat[i][j];

c[i][j]=mat[i][j];

}

cout<<endl;

}

cout<<"matriks diatas diilustrasikan seperti gambaran dibawah ini\n\n";

for(i=0;i<2;i++){

for(j=0;j<2;j++){

cout<<mat[i][j]<<" ";

}

cout<<endl;

}

mat[0][1]=-mat[0][1]; mat[1][0]=-mat[1][0];

temp=mat[0][0]; mat[0][0]=mat[1][1]; mat[1][1]=temp;

cout<<"\nadjoin dari matriks diatas adalah\n";

for(i=0;i<2;i++){

for(j=0;j<2;j++){

cout<<mat[i][j]<<" ";

}

cout<<endl;

}

det=mat[0][0]*mat[1][1]-mat[1][0]*mat[0][1];

det=1/(float)det;

cout<<"\nSedangkan untuk inversnya adalah sebagai berikut\n";

for(i=0;i<2;i++){

for(j=0;j<2;j++){

ci[i][j]=det*mat[i][j];

cout<<ci[i][j]<<" ";

}

cout<<endl;

}

for(i=0;i<2;i++){

for(j=0;j<2;j++){

for(int k=0;k<2;k++){

temp=c[i][k]*ci[k][j];

ch[i][j]=ch[i][j]+temp;

}

}

}

cout<<"\nhasil perkalian matriks asal dengan\nmatriks yang telah di invers adalah\n";

for(i=0;i<2;i++){

for(j=0;j<2;j++){

cout<<ch[i][j]<<" ";

}

cout<<endl;

}

}







muhammadsutiknocronosal.blogspot.com







Flowchart




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com




muhammadsutiknocronosal.blogspot.com







Alhamdulillah pembahasan kasus pada diktat bab 9 terselesaikan. Sekian pembahasan dari saya, kurang lebihnya saya mohon maaf.

Kunjungi link blog temen kelompok saya:-)
Greentimeuad.blogspot.com
hadie97.blogspot.com


Wassalamu"alaikum wr.wb

Kamis, 12 Mei 2016

Kasus 8.7 (Quick Sort)


Assalamu’alaikum w.r.w.b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Quick Sort.

Algoritma :

procedure quick_sort(output data : larik; input L, R : integer)

Deklarasi
       i, j, p : integer
Deskripsi
       p <-- data[(L+R) div 2]
       i <-- L
      j <--R
     { mulai membuat partisi }
      while (i<=j) do
               while (data[i] < p) do i <-- i+1 endwhile
               while (data[j] > p) do j <-- j -1 endwhile
         if (i<=j) then
              tukar(data[i], data[j])
              i <-- i+1
              j <-- j-1
        endif
     endwhile
     if (L < j) then quick_sort(data,L,j) endif
     if (i < R) then quick_sort(data,i,R) endif

Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi 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 masuk_data(int A[], int n) {
     int i;
     for (i = 0; i < n; i++) {
      cout << "Data ke-%d : ",i+1;
      cin >> A[i];
     }
}
void cetak_data(const int A[], int n) {
     int i;
     for (i = 0; i < n; i++)
     cout << "%d ",A[i];
     cout << "\n";
}
void tukar (int *a, int *b){
     int temp;
     temp = *a;
     *a = *b;
     *b = temp;
}
void quick_sort(int data[], int L, int R) {
     int i, j, p;
     p = data[(L+R) / 2];
     i = L;
     j = R;
     while (i<=j) {
     while (data[i] < p) i++;
     while (data[j] > p) j--;
     if (i<=j){
      tukar(&data[i], &data[j]);
      i++;
      j--;
      }
    }
     if (L < j) quick_sort(data,L,j);
     if (i < R) quick_sort(data,i,R);
}

int main(int argc, char** argv) {
    int data[10], n;
   
    cout << "Banyak data : ";
    cin >> n;
    masuk_data(data,n);
    quick_sort(data,0,n-1);
    cetak_data(data,n);

  return 0;
}




 Selamat mencoba, dan Semoga bermanfaat :-)


Wassalamu’alaikum w..r.w.b

Kasus 8.6 (Merge Sort)


Assalamu’alaikum w.r.w.b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Merge Sort.
Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi 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;

typedef int larik[10];
void masuk_data(int A[], int n){
     int i;
     for (i = 0; i < n; i++){
      cout << "Data ke-%d : ",i+1;
      cin >> A[i];
     }
}
void cetak_data(const int A[], int n) {
     int i;
     for (i = 0; i < n; i++)
     cout << "%d ",A[i];
     cout << "\n";
}
void merge(larik a, int kiri, int tengah, int kanan){
     int bagianKiri, posTemp, banyakElemen, i;
     larik temp;
     bagianKiri = tengah - 1;
     posTemp = kiri;
     banyakElemen = kanan - kiri + 1;
     while ((kiri <= bagianKiri) &&(tengah <= kanan))
         if ((a[kiri] <= a[tengah])){
           temp[posTemp] = a[kiri];
           posTemp = posTemp + 1;
           kiri = kiri + 1;
        }
        else{
         temp[posTemp] = a[tengah];
         posTemp = posTemp + 1;
         tengah = tengah + 1;
        }
        /* kopi bagian kiri */
         while ((kiri <= bagianKiri)) {
         temp[posTemp] = a[kiri];
         posTemp = posTemp + 1;
         kiri = kiri + 1;
         }
        /* kopi bagian kanan */
         while ((tengah <= kanan)) {
         temp[posTemp] = a[tengah];
         posTemp = posTemp + 1;
         tengah = tengah + 1;
         }
        /* kopi kembali ke array asal */
        for (i = 1; i <= banyakElemen; i++){
         a[kanan] = temp[kanan];
         kanan = kanan - 1;
         }
}
void merge_sort(larik A, int kiri, int kanan){
    int tengah;
    if ((kiri < kanan)){
     tengah = (kiri + kanan) / 2;
     merge_sort(A, kiri, tengah);
     merge_sort(A, tengah + 1, kanan);
     merge(A, kiri, tengah + 1, kanan);
     }
}

int main(int argc, char** argv) {
    int n;
    larik data;
    cout << "Berapa data array : ";
    cin >> n;
    masuk_data(data, n);
    cetak_data(data, n);
    merge_sort(data, 0, n-1);
    cetak_data(data, n);

return 0;
}


m





Output/hasil compiler dari program tersebut :

muhammadsutiknocronosal.blogspot.com

Selamat mencoba, dan Semoga bermanfaat 


Wassalamu’alaikum w.r.w.b

Kasus 8.5 (Selection Sort)

Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Selection Sort.
Algoritma :
Procedure selection_sort(output A : larik; input n : integer)

Deklarasi
       i, t : integer
Deskripsi
      for i <-- 1 to n do
            minimum(A, i, n, t);
            tukar(A[i], A[t]); {tukar tempat elemen saat ini j dengan elemen terkecil yang ditemukan t}
    endfor

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :

 






Output/hasil compiler dari program tersebut :

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

#include <iostream>
#include <cstdlib>

using namespace std;

void baca_data(int A[], int n){
     int i;
     for (i = 0; i < n; i++){
      cout << "Data ke-%d : ",i+1);
      cin >> A[i]);
     }
}
void cetak_data(const int A[], int n){
     int i;
     for (i = 0; i < n; i++)
     cout << "%d ",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]);
     }
}

int main(int argc, char** argv) {
    int data[10], n;

    cout << "Banyak data : ");
    cin >> n);
    baca_data(data,n);
    cetak_data(data,n);
    selection_sort(data,n);
    cetak_data(data,n);

return 0;
}
m







 Selamat mencoba, dan Semoga bermanfaat ....

Wassalamu’alaikum w.w.


kasus 8.4 (Insertion Sort)

Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Insertion Sort. 
Algoritma :

procedure insertion_sort(input/output data:larik; input n:integer)

Deklarasi
       k, j, temp : integer
Deskripsi
       for k <-- 2 to n do
            temp := data [k];
            j := k-1;
       while (temp <= data [j]) and (j > 1) do
               data [j+1] := data [j];
               j := j-1;
       endwhile
       if (temp >= data [j]) then data [j+1] := temp
       else
             data [j+1] := data [j];
             data [j] := temp;
        endif
   endfor

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :





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

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

class Sorting {
      friend istream& operator>>(istream& in, Sorting& a);
      friend ostream& operator<<(ostream& out, Sorting& a);
public:
       void baca_data();
       void cetak_data();
       void buble_sort();
       void insertion_sort();
       void selection_sort();
private:
        void minimum(int , int, int&);
        void tukar (int&, int&);
        int data[10], n;
};
  istream& operator>>(istream& in, Sorting& a) {
    cout<<"Banyak data : ";
    in>>a.n;
    for (int i = 0; i < a.n; i++) {
    cout<<"Data ke-" <<i+1<< " : ";
    in>>a.data[i];
}
  return in;
}
  ostream& operator<<(ostream& out, Sorting& a) {
    for (int i = 0; i < a.n; i++)
    out<<a.data[i] << " ";
    out<<"\n";
  return out;
}
  void Sorting::tukar (int &a, int &b){
       int temp;
       temp = a;
       a = b;
       b = temp;
  }
  void Sorting::insertion_sort(){
       int i, j, temp;
       cout<<"Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
       for(j = 1; j < n; j++){
           temp = data[j];
           cout<<"\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
           cout<<"Dilakukan penggeseran elemen :\n";
       for(i = j - 1; (i >= 0) && (data[i] > temp); i--){
           cout<<"data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
           data[i+1] = data[i];
       }
        cout<<"Data baru masuk pada posisi ke-[" << i+2 << "]\n";
        data[i+1] = temp; //Insert key into proper position
        cout<<"Data saat ini adalah : ";
        for (int k=0; k<=j; k++) cout << data[k] << " ";
            getch();
            }
  }
int main(int argc, char** argv) {
    Sorting angka;
    cin>>angka;
    angka.insertion_sort();
    cout<<"\nHasil akhir adalah : \n";
    cout<<angka;
 
 return 0;
}



Output/hasil compiler dari program tersebut :

  

Langkah-Langkah Pengerjaan:
Terdapat angka yang acak di bawah ini :
[7,5,6,3,4,1,2]
-Cara pengerjaanya pertama-tama kita menggambil angka pertama di sebelah kiri yaitu [7]
[7]
-Kemudian kita ambil angka ke dua yaitu [5] , karena angka [5]  lebih kecil dari [7], kita ditaruh di 
sebelah kiri: 
[5, 7]

-Kemudian kita ambil angka ke tiga yaitu [6], karena angka ke [6] lebih kecil dari angka[7] dan lebih besar angka dari [5], maka kita taruh di tengah-tengah antara angka [5] dan [7], seperti di bawah ini:

[5,6,7]

-Selanjutya kita ambil angka ke empat yaitu [3] karena tiga lebih kecil dari angka yang kita cari sebelumnya, maka angka [3] kita taruh di paling kiri, seperti di bawah ini:

[3,5,6,7]

-Selanjutnya kita ambil angka ke lima yaitu [4], karena angka [4] lebih kecil dari angka [5,6,7] dan lebih besar angka [3] maka kita taruh seperti di bawah ini:

[3,4,5,6,7]

-Selanjutya kita ambil angka ke enam yaitu [1] karena [1] lebih kecil dari angka yang kita cari sebelumnya, maka angka [1] kita taruh di paling kiri, seperti di bawah ini:

[1,3,4,5,6,7]

-Selanjutya kita ambil angka ke tujuh yaitu [2], karena [2] lebih kecil dari angka [3,4,5,6,7] dan lebih besar dari angka [1] maka kita taruh seperti di bawah ini:

[1,2,3,4,5,6,7]

Selseai sudah karena angka-angka sudah terurut, begitulah langkah-langkah pengerjaannya. terimakasih.

Selamat mencoba, dan Semoga bermanfaat ....

Untuk pembahasan Bubble Sort dan Selection Sort silakan kunjungi link blog teman kelompok saya:-)
klik disini!
klik disini!
Wassalamu’alaikum w.w.


Kasus 8.3 : (Bubble Sort)


Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : 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

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :

 

 

 

Output/hasil compiler dari program tersebut :

 
Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi 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;
}







 Selamat mencoba, dan Semoga bermanfaat ....

Wassalamu’alaikum w.w.


Kasus 8.2 : Pencarian Biner (Binary Search).


Assalamu’alaikum w,r,w,b

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam Dev C++ .

     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 ini kodingan 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;
}



 Selamat mencoba, dan Semoga bermanfaat.


Wassalamu’alaikum w.r.w.b

Kasus 8.1 : Pencarian Linear (Linear Search).


Assalamu’alaikum w.w.,

Pada kesempatan ini saya akan memposting Program dari materi SEARCHING AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ . Program yang akan di buat yaitu : Tentang : Pencarian Linear (Linear Search).

     Algoritma :

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

 Berikut ini adalah Gambar Program Flowchart yang menggunakan Aplikasi RAPTOR :






Output/hasil compiler dari program tersebut :




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

#include <iostream>
#define UKURAN 100

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

using namespace std;

int pencarianLinier(int array[], int kunci, int ukuran){
   int i;
 
   for (i=0; i<=ukuran-1; ++i)
   if (array[i] == kunci)
   return i;
   return -1;
}

int main(int argc, char** argv) {

    int a[UKURAN], x, kunciPencarian, elemen;
  
    for (x=0; x<=UKURAN-1; x++) a[x] = 2*x;
    cout<<"Bilangan yang mau dicari : ";
    cin>>kunciPencarian;
    elemen = pencarianLinier(a,kunciPencarian,UKURAN);
    if (elemen != -1)
    cout<<kunciPencarian<<" Ditemukan pada posisi elemen ke " << elemen;
    else
    cout<<kunciPencarian<<" Tidak ada.";
  
    return 0;
}
 



 Selamat mencoba, dan Semoga bermanfaat ....

Wassalamu’alaikum w.r.w.b