Pengertian Sorting ,cara kerja dan contoh program



Sorting
  • Selection sort adalah salah satu cara pengurutan yang sederhana dari algoritma. Maksudnya melakukan proses pass untuk menyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang terkecil di antara elemen-elemen yang tidak berurutan, disimpan indeksnya, lalu dilakukan proses pertukaran nilai elemen dengan indeks yang disimpan dengan elemen yang paling depan yang tidak berurut. kebaliknya, untuk sorting descending (menurun), elemen yang terbesar yang disimpan indeksnya kemudian ditukar.
  • Insertion sort adalah salah satu cara pengurutan data dengan menaruh setiap elemen data pada posisi yang benar dengan cara melakukan perbandingan dengan data – data yang ada. prinsip algoritma dari cara insertion sort ini dapat di ibaratkan sama seperti mengurutkan abjad, dimana jika suatu abjad dipindah tempatkan ke posisi sebenarnya, maka abjad yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan abjad tersebut. diproses pengurutan data, cara ini dipakai untuk menjadikan bagian sisi kiri array berurutan sampai dengan seluruh array diurutkan dengan benar.


Contoh Program Selection sort:

#include<iostream>
using namespace std;

int main()
{
       int a, k, c, d, g;
       k = 10;
       int b[10];
       printf("\t      =========================================================\n");
       printf("\t      |                 JALURBELAKANG.BLOGSPOT.COM            |\n");
       printf("\t      =========================================================\n");
       printf("\t      |                   PROGRAM SELECTION SORT              |\n");
       printf("\t      |=======================================================|\n");
       printf("\t      |                                                       |\n");
       printf("\t      | >Ricky satria                      (140010039)        |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                 Compiled With Visual Studio           |\n");
       printf("\t      |========================================================\n");
       printf("\t      |                         BA141                         |\n");
       printf("\t      |           Sistem Komputer - STIKOM BALI               |\n");
       printf("\t      =========================================================\n");
       printf("\t      |               Press Any Key To Continue               |\n");
       printf("\t      =========================================================\n");
       printf("\t      "); getchar();

       system("cls");

       for (a = 0; a<k; a++)
       {
              cout << "Masukkan nilai " << a + 1 << " : "; cin >> b[a];
       }
       for (a = 0; a<k - 1; a++)
       {
              c = a;
              for (d = a + 1; d<k; d++)
              {
                     if (b[c]<b[d])
                     {
                           c = d;
                     }
              }
              g = b[c];
              b[c] = b[a];
              b[a] = g;
       }
       cout << "\n setelah disorting akan menjadi : \n";
       for (a = 0; a<k; a++)
       {
              cout << b[a] << " \n";
       }
       system("pause");
       return 0;
}
Contoh Program Insertion sort:
#include <iostream>
#include <conio.h>
using namespace std;
int data[10], data2[10];
int n;

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

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;
       }
}
int main()
{
printf("\t      =========================================================\n");
       printf("\t      |                 JALURBELAKANG.BLOGSPOT.COM            |\n");
       printf("\t      =========================================================\n");
       printf("\t      |                   PROGRAM INSERTION SORT              |\n");
       printf("\t      |=======================================================|\n");
       printf("\t      |                                                       |\n");
       printf("\t      | >Ricky satria                      (140010039)        |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                   Compiled With Dev ++                |\n");
       printf("\t      |========================================================\n");
       printf("\t      |                         BA141                         |\n");
       printf("\t      |           Sistem Komputer - STIKOM BALI               |\n");
       printf("\t      =========================================================\n");
       printf("\t      |               Press Any Key To Continue               |\n");
       printf("\t      =========================================================\n");
       printf("\t      "); getchar();

       system("cls");

       cout << "Masukkan Jumlah Data : ";
       cin >> n;
       cout << "\n";
       for (int i = 1; i <= n; i++)
       {
              cout << "Masukkan data ke " << i << " : ";
              cin >> data[i];
              data2[i] = data[i];
       }

       insertion_sort();

       cout << "\n\n";
       //tampilkan data
       cout << "Data Setelah di insertion Sort : ";
       for (int i = 1; i <= n; i++)
       {
              cout << " " << data[i];
       }
       cout << "\n\nSorting Selesai\n";
       getchar();
       system("pause");
}
Sekian penjelasan tentang Sorting jika ada yang kurang dimengerti silakan bertanya di kolom komentar.

Searching

Searching (sequential search dan binarry search)
Searching adalah pencarian data dengan cara memeriksa data-data yang ada, tempat dicarinya data dapat berupa array dalam memori (pencarian internal), bisa juga pada file pada external storage (pencarian external).

sequential search
sequential search Adalah sebuah cara pencarian data dalam array (1 dimensi) yang akan memeriksa semua elemen-elemen array dari pertama sampai terakhir, dimana data-data tidak usah diurutkan dulu. Pencarian berurutan menggunakan prinsip seperti: data yang ada dibandingkan satu per satu secara berurutan dan data yang kita cari akan dilakukan pemeriksaan sampai data tersebut ditemukan atau tidak ditemukan.

Binary search
Binary search adalah sebuah cara pencarian dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu dalam sebuah larik (array) linear. Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama.

Contoh Program sequential search:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;

void main()
{
       int i;
       int cari, ditemukan;
       int Array[100];


       printf("\t      =========================================================\n");
       printf("\t      |                 JALURBELAKANG.BLOGSPOT.COM            |\n");
       printf("\t      =========================================================\n");
       printf("\t      |                  PROGRAM SEQUENCIAL SEARCH            |\n");
       printf("\t      |=======================================================|\n");
       printf("\t      |                                                       |\n");
       printf("\t      | >Ricky satria                      (140010039)        |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                 Compiled With Visual Studio           |\n");
       printf("\t      |========================================================\n");
       printf("\t      |                         BA141                         |\n");
       printf("\t      |           Sistem Komputer - STIKOM BALI               |\n");
       printf("\t      =========================================================\n");
       printf("\t      |               Press Any Key To Continue               |\n");
       printf("\t      =========================================================\n");
       printf("\t      "); getchar();

       system("cls");

       cout << "                       Silahkan masukkan 8 buah data \n\n\n";

       for (i = 1; i <= 8; i++)
       {
              cout << "masukkan data ke - " << i << endl;
              cin >> Array[i];
       }

       cout << endl;
       cout << "Masukkan data yang ingin anda dicari : ";
       cin >> cari;

       ditemukan = 0;
       for (i = 0; i <= 7; i++)
       {
              if (Array[i] == cari)
              {
                     ditemukan = 1;
                     cout << "\nData anda pada indeks ke-" << i<< endl;
              }
       }
       if (ditemukan == 0){
              cout << " Data anda tidak ditemukan!!!\n";
       }
       getchar();
       system("pause");
}

Contoh Program Binary Search:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;

int main()
{
       int A[10], i, j, k, tkr, top, bottom, middle, tm;

       printf("\t      =========================================================\n");
       printf("\t      |                 JALURBELAKANG.BLOGSPOT.COM            |\n");
       printf("\t      =========================================================\n");
       printf("\t      |                   PROGRAM BINARY SEACRH               |\n");
       printf("\t      |=======================================================|\n");
       printf("\t      |                                                       |\n");
       printf("\t      | >Ricky satria                      (140010039)        |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                                                       |\n");
       printf("\t      |                   Compiled With Visual Studio         |\n");
       printf("\t      |========================================================\n");
       printf("\t      |                         BA141                         |\n");
       printf("\t      |           Sistem Komputer - STIKOM BALI               |\n");
       printf("\t      =========================================================\n");
       printf("\t      |               Press Any Key To Continue               |\n");
       printf("\t      =========================================================\n");
       printf("\t      "); getchar();

       system("cls");

       for (i = 0; i<10; i++)
       {
              printf("Data ke-%d : ", i + 1);
              scanf_s("%d", &A[i]);
       }
       printf("Masukkan data yang akan dicari : ");
       scanf_s("%d", &k);

       for (i = 0; i<10; i++)
       {
              for (j = i + 1; j<10; j++)
              {
                     if (A[i]>A[j])
                     {
                           tkr = A[i];
                           A[i] = A[j];
                           A[j] = tkr;
                     }
              }
       }

       tm = 0;
       top = 9;
       bottom = 0;
       while (top >= bottom)
       {
              middle = (top + bottom) / 2;
              if (A[middle] == k)
              {
                     tm++;
              }
              if (A[middle]<k)
              {
                     bottom = middle + 1;
              }
              else
              {
                     top = middle - 1;
              }
       }

       if (tm>0)
       {
              printf("Data %d yang dicari ada dalam array\n", k);
       }
       else
       {
              printf("Data tidak diketemukan dalam array\n");
       }

       getchar();
       system("pause");
       return 0;
}


Previous
Next Post »