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:
permisi untuk variabel c nya di sorting dalam bentuk apa yaa int atau char
mantap ka, jadi referensi saya buat ngerjain tugas xixixi
Posting Komentar