Seperti judul diatas "Pengurutan Data menggunakan Bubble sort", maka dalam kesempatan ini saya akan menunjukan bagaimana cara membuat program yang digunakan untuk mengurutkan sebuah data. Program untuk mengurutkan data kali ini akan saya buat dengan menggunakan metode sorting "Bubble sort".
Program yang saya buat adalah program untuk mengurutkan perolehan waktu dari beberapa peserta lomba balap karung dari yang tercepat sampai yang terlama.
Berikut source code dari program yang saya buat.
#include <stdio.h>
#include <stdlib.h>
struct waktu { //deklarasi struct
int no, jam, menit, detik, waktu; // deklarasi variabel yang di butuhkan untuk pengukuran waktu
char nama[25];
};
int main()
{
int x,i,y,z; //pendeklarasian variabel i, y, z untuk melooping// x jumlah peserta
printf("Masukkan jumlah peserta = ");
scanf("%d",&x); // untuk menyimpan jumlah peserta
struct waktu psrta[x], swap; //membuat variabel baru dari peserta dengan nama psrta menggunakan array sejumlah inputan x, dan membuat variabel swap
printf("\nMasukan perolehan waktu peserta\n\n");
for(i=0; i < x; i++) // looping untuk memasukan perolehan waktu dari masing masing peserta
{
printf("No : %d \n",i+1);
printf("Nama : ");
scanf("%s",&psrta[i].nama);//untuk menyimpan nama yang di inputkan
printf("Jam : ");
scanf("%d",&psrta[i].jam);//untuk menyimpan jam yang di inputkan
printf("Menit : ");
scanf("%d",&psrta[i].menit); //untuk menyimpan menit yang di inputkan
printf("Detik : ");
scanf("%d",&psrta[i].detik);//untuk menyimpan detik yang di inputkan
printf("\n\n");
// penjumlahan perolehan waktu dari masing" peserta yang nantinya akan dijadikan pembanding dari masing" perolehan waktu
psrta[i].waktu = (psrta[i].jam*3600)+(psrta[i].menit*60)+(psrta[i].detik);
};
// sorting menggunakan bubbel sort
for(z=0; z<x-1; z++)
{
for(y=0; y<x-1; y++)
{
if(psrta[y].waktu > psrta[y+1].waktu) {
swap = psrta[y]; //mengisi swap dengan pserta awal
psrta[y] = psrta[y+1]; //mengisi pserta awal dengan pserta selanjutnya
psrta[y+1] = swap; //mengisi pserta selanjutnya dengan swap
}
}
}
// tampilkan waktu setelah di urutkan
for(i=0; i<x; i++) {
printf("%d %s | %d jam | %d menit | %d detik\n",i+1,psrta[i].nama,psrta[i].jam,psrta[i].menit,psrta[i].detik);
}
}
0 komentar:
Posting Komentar