Download Software Gratis

Sorting Data

Dalam pengolahan data tidak lepas dengan yang namanya pengurutan data atau sorting. Pengurutan dapat berupa mengurutkan dari yang paling besar ke paling kecil, dari yang paling panjang ke paling pendek, dari yang paling cepat ke yang paling lama, dan lain-lain. Dalam sebuah pengurutan data ada yang namanya membandingkan data yaitu membandingkan data mana yang lebih besar,kecil,panjang,pendek, dan sebagainya. Jika datanya sedikit pekerjaan ini dapat dilakukan dengan manual tanpa alat/aplikasi. Tetapi jika datanya banyak samapai ratusan atau lebih maka memerlukan sebuah aplikasi untuk memudahkan dan mengurangi kesalahan akibat ketidak telitian. Sebagai contoh kita akan mengurutkan data pelari dari yang tercepat ke terlama dan sebaliknya. Misalkan data yang diolah adalah Nomor pelari, Nama Pelari, Waktu capaian(Jam, Menit, Detik) maka scriptnya sebagai berikut:


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

//Data yang diinputkan kita jadikan dalam satu struct sesuai tipe datanya. Dan ditambah satu data yaitu "total",total ini adalah jumlah waktu capaian pelaru dalam satuan detik.

struct input
{
    int no;
    char nama[20];//jumlah karakter nama maksimal 20
    int jam;
    int menit;
    int detik;
    int total;
}data[20],kebesar,kekecil;
//data[20] yaitu nama data yang di input yang didalamnya terdapat data no,nama,jam,menit,detik,total. "kebesar"yaitu data untuk urutan dari terkecil ke terbesar.  "kekecil"yaitu data untuk urutan dari terbesar ke terkecil.


int main()
{
    int a,i,j,k; //deklarasi variabel-variabel yang kita pakai.
    printf("Masukkan jumlah pelari: "); //Untuk menentukan jumlah data yang akan kita inputkan
    scanf("%d",&a); //jumlah data akan tersimpan di variabel "a"

    for(i=0;i<a;i++) //jumlah data yang di inputkan akan terlooping sesuai jumlah "a"
    {
      printf("\nPelari No     : "); //Untuk memasukkan nomor pelari
      scanf("%d",&data[i].no); //data akan tersimpan di struct "data" bagian "no"
      printf("Masukkan Nama : "); //sama
      scanf("%s",&data[i].nama);
      printf("Masukkan Jam  : "); //sama
      scanf("%d",&data[i].jam);
      printf("Masukkan Menit: ");  //sama
      scanf("%d",&data[i].menit);
      printf("Masukkan Detik: "); //sama
      scanf("%d",&data[i].detik);
    }
    printf("\nTorehan Waktu Pelari: \n"); //Untuk menampilkan torehan waktu pelari
    for(i=0;i<a;i++) //looping agar semua data terhitung
    {
        data[i].total=(data[i].jam*3600)+(data[i].menit*60)+(data[i].detik); //rumus menghitung waktu pelari dalam detik
    }

    for(i=0;i<a;i++) //looping agar data yang ditampilkan terulang hingga jumlah "a"
    {
        printf("No    : %d\n",data[i].no); //menampilkan dari "data[i].no" yang tadi kita inputkan
        printf("Nama  : %s\n",data[i].nama); //sama
        printf("Jam   : %d\n",data[i].jam); //sama
        printf("Menit : %d\n",data[i].menit); //sama
        printf("Detik : %d\n",data[i].detik); //sama
        printf("Total : %d\n\n",data[i].total); //menampilkan data hasil perhitungan jumlah waktu dalam detik
    }

    for(j=0;j<a-1;j++) //pengulangan pembandingan data, "a-1" karena misal ada 3 data yaitu a,b,c maka yang dibandingkan hanya 2 yaitu (a,b)dan(b,c)
    {
        for(k=0;k<a-1;k++)
        {
            if (data[k].total>data[k+1].total) //jika data[k].total pertama lebih dari data[k].total kedua
            {
                kebesar=data[k]; //data pertama masuk ke data sementara yaitu "kebesar"
                data[k]=data[k+1]; //data kedua masuk ke data pertama
                data[k+1]=kebesar; //data pertama yang masuk ke data sementara masuk ke data kedua. Atau singkatnya data pertama pindah ke data kedua jika lebih besar, jika lebih kecil atau sama maka tetap.
            }
        }
    }
    printf("Torehan waktu pelari dari yang tercepat: \n"); //menampilkan data setelah diurutkan dari yang paling cepat sesuai data[i].total
    for(i=0;i<a;i++)
    {
        printf("No    : %d\n",data[i].no); //data yang ditampilkan
        printf("Nama  : %s\n",data[i].nama);
        printf("Jam   : %d\n",data[i].jam);
        printf("Menit : %d\n",data[i].menit);
        printf("Detik : %d\n",data[i].detik);
        printf("Total : %d\n",data[i].total);
        printf("\n");
    }

    for(j=0;j<a-1;j++) //pengulangan pembandingan data, "a-1" karena misal ada 3 data yaitu a,b,c maka yang dibandingkan hanya 2 yaitu (a,b)dan(b,c)
    {
        for(k=0;k<a-1;k++)
        {
            if (data[k].total<data[k+1].total) //jika data[k].total pertama kurang dari data[k].total kedua
            {
                kekecil=data[k]; //data pertama masuk ke data sementara yaitu "kekecil"
                data[k]=data[k+1]; //data kedua masuk ke data pertama
                data[k+1]=kekecil; //data pertama yang masuk ke data sementara masuk ke data kedua. Atau singkatnya data pertama pindah ke data kedua jika lebih kecil, jika lebih besar atau sama maka tetap.
            }
        }
    }
    printf("Torehan waktu pelari dari yang terlambat: \n"); //menampilkan data setelah diurutkan dari yang paling lambat sesuai data[i].total
    for(i=0;i<a;i++)
    {
        printf("No    : %d\n",data[i].no); //data yang ditampilkan
        printf("Nama  : %s\n",data[i].nama);
        printf("Jam   : %d\n",data[i].jam);
        printf("Menit : %d\n",data[i].menit);
        printf("Detik : %d\n",data[i].detik);
        printf("Total : %d\n\n",data[i].total);
    }
    getch();
    return 0;
}

Terimakasih semoga bermanfaat

Download script disini
Download aplikasinya disini
Comment Policy : Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.

Beri Komentar Tutup comment

Disqus Comments