Senin, 07 September 2015

STRUCT DAN SHORTING DALAM MENENTUKAN PELARI TERCEPAT

Struct di pergunakan untuk memasukkan isi dari data yang di butuhkan dalam program seperti nama, nomer, jam, menit, detik dan hasil. Dan untuk mengurutkan pelarinya kita menggunakan metode sorting yang pergunakan untuk membandingkan data yang sudah terdapat dalam penyimpanan. Selanjutnya yang pertama kali dilakukan adalah menentukan inputan seperti nama, nomor pelari, dan waktu pelari (jam, menit, detik). Dalam menghitung jumlah waktu yang diperoleh oleh pelari maka kita harus mengkalkulasikan perhitungan tersebut kedalam detik.

Berikut proses codingnya :

#include <stdio.h>
#include <stdlib.h>

//Membuat struct untuk data pelari dengan nomor, nama, jam, menit, detik, dan hasil
struct pelari
{
    char nama[40]; //nama maksimal menggunakan 40 karakter
    int nomor;
    int jam;
    int menit;
    int detik;
    int hasil;
}
datapelari[3],swap;
//[3] untuk menentukan jumlah peserta pelari, swap digunakan untuk melakukan sorting dan juga bisa diganti dengan variable yang lain

int main()
{
    int i,total;
    //i digunakan untuk looping, total digunakan untuk menampilkan hasil
    int p,r;
    //p,r untuk menentukan variabel proses sorting
    for(i=0;i<3;i++)
    {
        printf("\nNomor Pelari = ");
        scanf("%d",&datapelari[i].nomor);
        printf("Nama Pelari = ");
        scanf("%s",&datapelari[i].nama);
        printf("Jam Lari = ");
        scanf("%d",&datapelari[i].jam);
        printf("Menit Lari = ");
        scanf("%d",&datapelari[i].menit);
        printf("Detik Lari = ");
        scanf("%d",&datapelari[i].detik);

    //Rumus konversi hasil waktu pelari
    datapelari[i].hasil=datapelari[i].jam*3600+datapelari[i].menit*60+datapelari[i].detik;
    }

//Proses sorting menggunakan metode bubble sort
for(p=0;p<2;p++)
    {
        for(r=0;r<2;r++)
        {
            if (datapelari[r].hasil>datapelari[r+1].hasil)
            {
                swap=datapelari[r];
                //mengisi swap dengan isi dari data pelari sekarang
                datapelari[r]=datapelari[r+1];
                //mengisi pes sekarang dengan data pelari selanjutnya
                datapelari[r+1]=swap;
                //mengisi data pelari selanjutnya dengan swap
            }
        }
    }

//Untuk Menampilkan Hasil
    for(total=0;total<3;total++)
    {
printf("Nomor Pelari : %d\nNama : %s\n Jam :%d\n Menit : %d\n Detik : %d\n Hasil:%d\n\n\n", datapelari[total].nomor, datapelari[total].nama, datapelari[total].jam, datapelari[total].menit, datapelari[total].detik,datapelari[total].hasil);
    }

    return 0;
}

Contoh data pelari :

Nomor Pelari = 1
Nama Pelari = CUNCUN
Jam Lari = 4
Menit Lari = 18
Detik Lari = 48

Nomor Pelari = 2
Nama Pelari = NARUTO
Jam Lari = 3
Menit Lari = 34
Detik Lari = 22

Nomor Pelari = 3
Nama Pelari = HINATA
Jam Lari = 5
Menit Lari = 24
Detik Lari = 55

Hasil pengurutannya ;


Tidak ada komentar:

Posting Komentar