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:

Terima Kasih ^_^
Subscribe to:
Post Comments
(
Atom
)
Bet on Soccer: Expert Tips and Strategies - KTM Hub
ReplyDeleteFind out the most popular football bet types and their 포천 출장마사지 top soccer betting strategies and betting 구리 출장안마 tips today. We 김해 출장샵 have a full line of 제주 출장샵 expert 나주 출장마사지