Jumat, 04 September 2015

Sorting dalam Struct Bahasa C

Diposting oleh BelajarAsik di 14.29

Assalamualaikum sahabat blogger..  kembali lagi ya kita berjumpa.. di postingan kali ini saya ingin berbagi tentang tugas mata kuliah Pemrograman Berorientasi Obyek dengan menggunakan Struct, Looping, Rumus Konversi waktu, Array dan Sorting.
Dalam postingan sebelumnya telah saya jelaskan tentang array dan looping. Serta bagaimana cara mendownload aplikasi codeblocks.

Struct adalah tipe data yang dapat melakukan penyimpanan beberapa data yang saling terkait (seperti Nama, Jenis Kelamin, Alamat), sebagai suatu kesatuan, sehingga data-data tersebut seakan-akan menjadi suatu data tunggal.
Sedangkan Sorting atau pengurutan data adalah proses yang sering harus dilakukan dalam pengolahan data. Sort dalam hal ini diartikan mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu baik urut menaik (ascending) dari nilai terkecil sampai dengan nilai terbesar, atau urut menurun (descending) dari nilai terbesar sampai dengan nilai terkecil. Sorting adalah proses pengurutan.
Soal :


Untuk menjawab soal tersebut maka tulislah script ini pada program :
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
//Membuat struct untuk peserta dengan data : No, Nama, Jam, Menit, Detik, dan Jumlah (dalam detik)
struct data
{
    char nama[20]; //Nama yang digunakan maksimal 20 karakter
    int jam;
    int menit;
    int detik;
    int total;
};
int main()
{
    int i, j, k;
    int  jumlah;
    printf("\t\t\tData Peserta yang Akan disorting\n");
    printf("\t\t\t--------------------------------\n");
    //membuat variabel baru dari peserta dengan nama peserta menggunakan array sejumlah inputan jumlah, dan membuat variabel c
    struct data peserta[20], c;
    //memasukan jumlah peserta kedalam variabel jumlah
    printf("Masukan Jumlah Peserta : ");
    scanf("%d", &jumlah);
    //input data peserta dari peserta
    for(i=0;i<jumlah;i++)
    {
        printf("\nMasukan Nama : ");
        scanf("%s", &peserta[i].nama);
        printf("Masukan jam : ");
        scanf("%d", &peserta[i].jam);
        printf("Masukan menit : ");
        scanf("%d", &peserta[i].menit);
        printf("Masukan detik : ");
        scanf("%d", &peserta[i].detik);
        peserta[i].total=(peserta[i].jam*3600)+(peserta[i].menit*60)+(peserta[i].detik*1);
        printf("\n");
    }
    printf("Data Peserta Sebelum Diurutkan :\n\n");
    printf("Nama\tJam\tMenit\tDetik\tTotal\n");
    for(i=0;i<jumlah;i++)
    {
        printf("%s\t%d\t%d\t%d\t%d\n", peserta[i].nama, peserta[i].jam, peserta[i].menit, peserta[i].detik, peserta[i].total);
    }
    //sorting
    for(j=0;j<jumlah-1;j++)
    {
        for(k=0;k<jumlah-1;k++)
        {
            if(peserta[k].total > peserta[k+1].total)
            {
                c=peserta[k]; //mengisi c dengan isi dari peserta sekarang
                peserta[k]=peserta[k+1]; //mengisi peserta sekarang dengan peserta selanjutnya
                peserta[k+1]=c; //mengisi peserta selanjutnya dengan c
            }
        }
    }
    printf("\nData Peserta Setelah Diurutkan :\n\n");
    printf("Nama\tJam\tMenit\tDetik\tTotal\n");
    //tampilkan hasil setelah diurutkan
    for(i=0;i<jumlah;i++)
    {
        printf("%s\t%d\t%d\t%d\t%d\n", peserta[i].nama, peserta[i].jam, peserta[i].menit, peserta[i].detik, peserta[i].total);
    }
}

Setelah itu Klik BUILD and RUN, maka akan muncul hasil sebagai berikut :




Nah.. sekian dulu yaa.. semoga bermanfaat..

2 komentar:

Unknown on 3 Maret 2019 pukul 11.13 mengatakan...

permisi untuk variabel c nya di sorting dalam bentuk apa yaa int atau char

Ryu on 5 November 2021 pukul 12.36 mengatakan...

mantap ka, jadi referensi saya buat ngerjain tugas xixixi

Posting Komentar

 

Afinda Nofi Nurfiyana Copyright © 2011 Designed by Ipietoon Blogger Template Sponsored by web hosting