Belajar Array of Struct

Cara Mengurutkan Data dengan Bubble Sort



Kembali lagi dengan tutorial membuat program dengan menggunakan bahasa C.

Pada kesempatan kali ini saya akan membahas tentang konsep Data Sorting. Konsep Sortingt ini biasanya dipelajari dalam mata kuliah Struktur Data. Pada mata kuliah struktur data, kita akan mempelajari tentang bagaimana memanage data yang kita buat dan kita simpan dalam memori. 

Nah, sekarang apa bedanya Struktur Data dengan Basis Data?

Basis data yaitu mempelajari tentang bagaimana memanage data pada saat komputer atau prosesor dalam keadaan off/mati. Sedangkan Struktur data mempelajari tentang bagaimana memanage data pada saat run-time (sedang memroses data). Untuk lebih lanjutnya akan kita bahas dalam pembahasan lainnya.

Sekarang kembali ke konsep Data Sorting. 

Ada banyak sekali cara untuk melakukan pengurutan data (data sorting) ini, salah satunya yaitu dengan Buble Sort. Konsep buble sort yaitu dengan membandingkan dan menukar data atas dan bawah sampai sata tersebut terurut semua. Jika kita implementasikan dalam program, maka kita akan membandingkan dua data dan apabila teidak memenuhi urutan maka data tersebut akan ditukar, dan konsep tersebut akan terus diulang, artinya konsep tersebut masuk kedalam looping. Dan karena kita akan membandingkan dua data maka kita akan mengunakan konsep array.

Pada pembahasan ini, kita akan membuat data beberapa pelari pada pertandingan lari. Namun untuk mempermudah, kita langsung tentukan jumlah pelari yang ada yaitu 3 orang. Data masing-masing pelari terdiri dari Nomor, Nama, Waktu lari (Jam, Menit, Detik). Nah, untuk itu kita akan menggunakan konsep Struct untuk mengklompokkan data-data tersebut.

Langsung saja kita coba buat source codenya.

 Pertama, kita buat terlebih dahulu data-data pelari menggunakan konsep struct.
int main()
{
    struct data_pelari
    {
    char nama[15];
    int nomor;
    int jam;
    int menit;
    int detik;
    int hasil;
    int jumlah;
    }data[3], swap;
}
Setelah itu kita akan memasukkan data-data pelari yang telah diperoleh dari hasil lomba. Kita buat dibawah data struct tadi namun masih berada di dalam int main().

 int i;

    for(i=0;i<3;i++)
    {
        printf("Nomor= ");
        scanf("%d", &data[i].nomor);
        printf("Nama = ");
        scanf("%s", &data[i].nama);
        printf("Jam = ");
        scanf("%d", &data[i].jam);
        printf("Menit = ");
        scanf("%d", &data[i].menit);
        printf("Detik = ");
        scanf("%d", &data[i].detik);

        data[i].jumlah=(data[i].jam*3600)+(data[i].menit*60)+(data[i].detik*1);
    }

Setelah data pelari kita masukkan program akan mengurutkan data pelari tersebut mulai dari yang tercepat. Ini dinamakan dengan sorting.
Langsung saja kita buat programnya.
for(x=0; x<i-1; x++)
{
        for(y=0; y<i-1; y++)
        {
            if(data[y].jumlah > data[y+1].jumlah)
            {
                swap=data[y];
                data[y]=data[y+1];
                data[y+1]=swap;
            }

        }

    }
Data pelari yang telah kita masukkan tersebut akan disorting oleh program. Setelah itu kita tampilkan data-data yang telah disorting program tersebut.
 for(a=0;a<i;a++)
    {
    printf("\nNomor=  %d\n", data[a].nomor);
    printf("Nama=  %s\n", data[a].nama);
    printf("Jam=  %d\n", data[a].jam);
    printf("Menit=  %d\n", data[a].menit);
    printf("Detik=  %d\n\n", data[a].detik);
    }



Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 komentar:

Posting Komentar