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
Beri Komentar Tutup comment