Program Aplikasi Pengurutan Lengkap dengan Bahasa C


Assalamualaikum.. Wr. Wb. Selamat untuk semua waktu.. :D

Baiklah langsung saja, pada kesempatan kali ini saya akan men-share contoh listing program dari program sorting. Dalam program ini, terdapat 4 metode pengurutan yang dirangkum sekaligus yaitu bubble sort, exchange sort, selection sort, dan insertion sort.

Berikut contoh listing programnya..

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

void SetColor(unsigned short color)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,color);
}

const int maks = 1000;
typedef int arrayint [maks+1];

void InputHandler(arrayint Save, int n);
void BubbleSort(arrayint Save, int n);
void ExchangeSort(arrayint Save, int n);
void SelectionSort(arrayint Save, int n);
void InsertionSort(arrayint Save, int n);
void OutputHandler(arrayint Save, int n);
void OutputHandler2(arrayint Save, int n);



int main()
{
    int NomorMenu;
    int n;
    arrayint Save;
    int select;

char *p[100];
p[0]= "\t\t==============PROGRAM SORTING==============\n\n";
p[1]= "\t\t===========================================\n";

printf(p[0]);
        SetColor(6);
        start:
        printf(" --------------------------\n");
        printf("    Menu Program Sorting     \n\n");
        printf("   1. Bubble Sort            \n");
        printf("   2. Exchange Sort          \n");
        printf("   3. Selection Sort         \n");
        printf("   4. Insertion Sort         \n");
        printf("   5. Keluar program         \n\n");
        printf("  0  Kembali ke menu utama  \n");
        printf(" --------------------------\n");
        SetColor(7);
        printf("\nMasukkan pilihan Anda (1/2/3/4/5)? ");
        scanf("%d", &NomorMenu);

        switch (NomorMenu)
    {
          case 1 :  {
                    printf("\nAnda memilih pengurutan Bubble Sort secara ascending\n");
                    printf("====================================================\n\n");
                    printf("Silahkan masukkan jumlah data yang diinginkan? ");
                    scanf("%d", &n);
                    InputHandler(Save, n);
                    OutputHandler(Save, n);
                    BubbleSort(Save, n);
                    OutputHandler2(Save, n);
                    break;
                    }

           case 2 : {
                    printf("\nAnda memilih pengurutan Exchange Sort secara ascending\n");
                    printf("======================================================\n\n");
                    printf("Silahkan masukkan jumlah data yang diinginkan? ");
                    scanf("%d", &n);
                    InputHandler(Save, n);
                    OutputHandler(Save, n);
                    ExchangeSort(Save, n);
                    OutputHandler2(Save, n);
                    break;
                    }

          case 3 :  {
                    printf("\nAnda memilih pengurutan Selection Sort secara ascending\n");
                    printf("=======================================================\n\n");
                    printf("Silahkan masukkan jumlah data yang diinginkan? ");
                    scanf("%d", &n);
                    InputHandler(Save, n);
                    OutputHandler(Save, n);
                    SelectionSort(Save, n);
                    OutputHandler2(Save, n);
                    break;
                    }
          case 4 : {
                    printf("\nAnda memilih pengurutan Insertion Sort secara ascending\n");
                    printf("=======================================================\n\n");
                    printf("Silahkan masukkan jumlah data yang diinginkan? ");
                    scanf("%d", &n);
                    InputHandler(Save, n);
                    OutputHandler(Save, n);
                    InsertionSort(Save, n);
                    OutputHandler2(Save, n);
                    break;
                   }
          case 5 : goto doom;
                   break;
          default : printf("Pilihan Anda tidak ada dalam Menu Sorting");
    }
printf("\n\n");
SetColor(3);
 printf("Tekan 0 untuk kembali ke menu utama, \n");
 printf("atau sembarang angka untuk keluar program ");
 scanf("%d",&select);
printf("\n\n");
SetColor(7);
printf(p[1]);
 if (select==0)
 {
 goto start;
 }
 else
 doom:
 printf("\n\n");
 SetColor(9);
 printf("\t\t\tAnda Keluar dari program\n");
 printf("\t\t\t      Thank you ^_^");
 return 0;
}

void InputHandler(arrayint Save, int n)
{
int c;
for(c=1; c<=n; c++)
{
printf("Data ke %d = ", c);
scanf("%d", &Save[c]);
}
}

void BubbleSort(arrayint Save, int n)
{
int i, k, Help;
for (i=1; i<=n-1; i++)
  {
    for (k=n; k >= i+1; k--)
     {
        if (Save[k] < Save[k-1])
        {
            Help = Save[k];
            Save[k] = Save[k-1];
            Save[k-1] = Help;
        }
     }
  }
}

void ExchangeSort(arrayint Save, int n)
{
int i, k, Help;
  for(i=1; i<=n-1; i++)
  {
      for (k=(i+1); k<=n; k++)
      {
          if(Save[i] > Save[k])
          {
              Help = Save[i];
              Save[i] = Save[k];
              Save[k] = Help;
          }
      }
  }
}

void SelectionSort(arrayint Save, int n)
{
int i, k, Help, mini;
for (i=1; i <= n-1; i++)
{
    mini = i;
    for (k=i+1; k<=n; k++)
    {
        if (Save[k] < Save[mini])
        {
            Help = Save[mini];
            Save[mini] = Save[k];
            Save[k] = Help;
        }

    }
}
}

void InsertionSort(arrayint Save, int n)
{
 int i, k, Help;
 boolean found;

    for(i=2; i<=n; i++)
    {
      Help = Save[i];
      k = i-1;
      found = false;
      while ((k>=1) && (!found))
      {
       if (Help<Save[k])
       {
           Save[k+1]=Save[k];
           k--;
       }
       else
           found = true;
      }
      Save[k+1]=Help;
}
}

void OutputHandler2(arrayint Save, int n)
{
int c;
printf("\n\nData setelah sorting\n");
for(c=1; c<=n; c++)
{
printf("[%d]",Save[c]);
}
getch();
}

void OutputHandler(arrayint Save, int n)
{
int c;
printf("\n\nData sebelum sorting\n");
for (c=1; c<=n; c++)
{
printf("[%d]", Save[c]);
}
getch();
}


Dalam program tersebut, saya menggunakan bahasa C dengan aplikasi program Code Blocks sebagai penerjemah ke bahasa komputernya atau kompilernya. Sebagai tambahan saya memberikan efek warna pada program ini, sehingga tampilannya pun menarik yang ditandai pada prosedur : void SetColor(unsigned short color)

Untuk yang mau mendownload file.ccp nya langsung, silahkan klik gambar dibawah ini:
Download
Terima Kasih ^_^
1 comment

1 comment :

  1. Bet on Soccer: Expert Tips and Strategies - KTM Hub
    Find out the most popular football bet types and their 포천 출장마사지 top soccer betting strategies and betting 구리 출장안마 tips today. We 김해 출장샵 have a full line of 제주 출장샵 expert 나주 출장마사지

    ReplyDelete