22 Jan 2017




Di dalam pemrograman terdapat jenis-jenis pengurutan atau sorting yang biasa digunakan. Jenis-jenis pencarian dalam bahasa pemrograman yaitu :
  1. Bubble Sort
  2. Insertion Sort
  3. Selection Sort
  4. Merge Sort
  5. Quick Sort
 Nah dalam pembahasan kali ini kita mulai dari Bubble Sort. Selanjutnya pertama-tama kita buat seperti biasa yaitu headernya :

#include <stdio.h>
#include <conio.h>

#define max 5 //mendefinisikan bahwa variabel max memiliki nilai maksimal 5
#define total 10 //mendefinisikan bahwa variabel total memiliki nilai total 10

Setelah itu kita buat varibel masing-masing untuk inti program, varibel yang kita butuhin adalah :

 int arr[max], i, j, temp;
Nama dari variabel tersebut bebas, kemudian yang terakhir inti dari program tersebut :

 for(i=0; i<max; i++)
            {
                printf("Masukkan Angka  : \t");
                scanf("%d",&arr[i]);
            }
            for(i=0; i<max ; i++)
          
            {
                for(j=0; j<(max-1)-i; j++)
                {
                 if( arr[j] > arr[j+1] ) // tanda panah diganti jika ingin descending. Dari besar ke keci.
                 {
                  temp=arr[j];
                  arr[j]=arr[j+1];
                  arr[j+1]=temp;
                 }
                
                }
            }
            printf("Data yang terurut secara Ascending:\n");
            for(i=0; i<max; i++)
            printf("\t\t\t\t\t%d\n",arr[i]);

Dan terakhir ini kode program lengkapnya, saya menggunakan pengkondisian switch-case untuk memilih fitur pengurutan dengan cara ascending atau descending.

#include <stdio.h>
#include <conio.h>

#define max 5
#define total 10

main()
{
    int sorting;
menu:
    printf("-----------Sorting's Menu------------\n");
    printf("\n1.\tBubble Sort Asc\n2.\tBubble Sort Desc\n");
    printf("3.\tKeluar dari menu ini\n");
    printf("\n-----Created By : @irfancheinID------\n");
    printf("Pilih Menu\t: \t");scanf("%d", &sorting);
    switch(sorting)
    {
        case 1 :
        {
            int arr[max], i, j, temp;
       
            for(i=0; i<max; i++)
            {
                printf("Masukkan Angka  : \t");
                scanf("%d",&arr[i]);
            }
            for(i=0; i<max ; i++)
           
            {
                for(j=0; j<(max-1)-i; j++)
                {
                 if( arr[j] > arr[j+1] )
                 {
                  temp=arr[j];
                  arr[j]=arr[j+1];
                  arr[j+1]=temp;
                 }
               
                }
            }
            printf("Data yang terurut secara Ascending:\n");
            for(i=0; i<max; i++)
            printf("\t\t\t\t\t%d\n",arr[i]);
            getch();
            goto menu;
           
        }
       
        case 2:
        {
            int arr[max], i, j, temp;
           
            for(i=0; i<max; i++)
            {
                printf("Masukkan Angka  : \t");
                scanf("%d",&arr[i]);
            }
            for(i=0; i<max ; i++)
            {
                for(j=0; j<(max-1)-i; j++)
                {
                 if( arr[j] < arr[j+1] )
                 {
                  temp=arr[j];
                  arr[j]=arr[j+1];
                  arr[j+1]=temp;
                 }
                }
            }
            printf("Data yang terurut secara Descending:\n");
            for(i=0; i<max; i++)
            printf("\t\t\t\t\t%d\n",arr[i]);
            getch();
            goto menu;
           
        }
        case 3:
        {
            return 0;
        }

        default:
        printf("\n\tTidak Ada dalam Pilihan\n\t Silahkan Coba Kembali\n");
        goto menu;
    }
}

Hasil nya nih gan :