Pengurutan Struct Bahasa C Beserta Contoh Programnya
Sebelum memahami materi tentang Pengurutan Struct Bahasa C Beserta Contoh dan Penjelasannya, terlebih dahulu pelajari materi tentang: Perbedaan Struct Bahasa C dan C++, Anonimus Union dan Struct Bahasa C dan Penjelasannya, dan Compound Literals Bahasa C Beserta Penjelasannya.
- Jika total nilai adalah berbeda, maka siswa dengan nilai tertinggi mendapatkan peringkat yang lebih tinggi pula.
- Jika total nilai adalah bernilai sama, maka siswa dengan nilai tertinggi pada pelajaran Maths mendapatkan peringkat yang lebih tinggi pula.
- Jika total nilai adalah bernilai sama, dan nila pada pelajaran Maths adalah juga bernilai sama, maka siswa dengan nilai Physics terbaik akan mendapatkan peringkat yang lebih tinggi pula.
- Jika total nilai adalah bernilai sama, dan nilai dari kedua pelajaran, yaitu Maths dan Physics adalah bernilai sama pula, maka siswa dengan nilai pelajaran Chemistry terbaik akan mendapatkan urutan peringkat yang lebih tinggi pula.
- Jika semua nilai dalah bernilai sama, maka setiap siswa dapat bendapatkan nila peringkat yang sama pula.
struct Student
{ string name;
int math;
int phy;
int che;
int total;
int rank; };
Pada contoh, nilai dari siswa pada pelajaran yang berbeda telah disediakan oleh user. Nilai tersebut ditambahkan pada pelajaran secara individu untuk dilakukan kalkulasi total dari setiap siswa, yang kemudian digunakan untuk proses pengurutan dari basis data untuk nilai perangkingan siswa tersebut.
// Program C++ untuk
// mendemonstrasikan
// pengurutan struct pada
// Bahasa C.
#include <stdio.h>
struct Student
{
// Variabel nama
string name;
// Variabel matematika
int math;
// Variabel fisika
int phy;
// Variabel kimia
int che;
// Variabel jumlah yang
// harus dipenuhi
int total;
// Peringkat peserta
// didik yang harus dipenuhi
int rank;
};
// Fungsi untuk membandingkan
// dua peserta didik
// berdasarkan aturan yang
// telah diberikan.
bool compareTwoStudents(Student a, Student b)
{
// JIka total nilai tidak
// bernilai sama, maka
// kembalikan nilai true untuk
// nilai tertinggi.
if (a.total != b.total)
return a.total > b.total;
// Jika nilai Matematika
// adalah bernilai sama, maka
// kembalikan nilai true untuk
// nilai tertinggi.
if (a.math != b.math)
return a.math > b.math;
if (a.phy != b.phy)
return a.phy > b.phy;
return (a.che > b.che);
}
// Pemenuhan nilai total dan
// peringkat dari
// peserta didik.
void computeRanks(Student a[], int n)
{
// Untuk menghitung total
// nilai untuk semua
// peserta didik.
for (int i = 0; i < n; i++)
a[i].total = a[i].math + a[i].phy + a[i].che;
// Pengurutan array struct
// menggunakan fungsi definisi
// pengguna
// compareTwoStudents().
sort(a, a + 5, compareTwoStudents);
// Penetapan peringkat setelah
// dilakukan proses
// pengurutan.
for (int i = 0; i < n; i++)
a[i].rank = i + 1;
}
// Driver code
int main()
{
int n = 5;
// array dari struct objek
Student a[n];
// Rincian data dan nilai
// peserta didik 1.
a[0].name = "Bryan";
a[0].math = 80;
a[0].phy = 95;
a[0].che = 85;
// Rincian data dan nilai
// peserta didik 2.
a[1].name = "Kevin";
a[1].math = 95;
a[1].phy = 85;
a[1].che = 99;
// Rincian data dan nilai
// peserta didik 3.
a[2].name = "Nicky";
a[2].math = 95;
a[2].phy = 85;
a[2].che = 80;
// Rincian data dan nilai
// peserta didik 4.
a[3].name = "Steve";
a[3].math = 80;
a[3].phy = 70;
a[3].che = 90;
// Rincian data dan nilai
// peserta didik 5.
a[4].name = "Rohan";
a[4].math = 80;
a[4].phy = 80;
a[4].che = 80;
computeRanks(a, n);
// Kolom nama untuk menampilkan data.
printf(" Rank | Name | Math"
"| Physics | Chemistry "
"| Total\n");
// Menampilkan rincian data
// peserta didik.
for (int i = 0; i < n; i++) {
printf(" %d | %s | %d | %d | %d | %d\n", a[i].rank, a[i].name, a[i].math, a[i].phy, a[i].che, a[i].total);}
return 0;
}
Output:Rank Name Maths Physics Chemistry Total
1 Kevin 95 85 99 279
2 Nicky 95 85 80 260
3 Bryan 80 95 85 260
4 Rohan 80 80 80 240
5 Steve 80 70 90 240
- Penggunaan realloc() Bahasa C dan Penjelasannya
- Kebocoran Memori Bahasa C dan Cara Mengatasinya
- Fungsi FSEEK dan REWIND Bahasa C dan Penjelasannya
- EOF Bahasa C Menggunakan GETC dan FEOF Beserta Penjelasannya
- Fungsi FOPEN Bahasa C untuk File dalam Mode Penulisan
- Read dan Write Struktur File Bahasa C
- Fungsi FGETS dan GETS Bahasa C dan Penjelasannya
5 komentar untuk "Pengurutan Struct Bahasa C Beserta Contoh Programnya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan pengurutan struct pada Bahasa C?
BalasHapusStruct merupakan singkatan dari structure atau tipe data yang ditentukan pengguna yang diterapkan pada bahasa C dan C++. Struct dapat dilakukan pengurutan pada penggunaannya, dimana hal pertama yang dibutuhkan untuk melakukan proses tersebut adalah membuat struct yang dapat menyimpan nomor dan nama dari struct itu sendiri.
HapusSetelah diciptakan struct dengan nama dan nomor penyimpanan yang sesuai, langkah selanjutnya untuk membuat pengurutan struct adalah membuat fungsi perbanding yang digunakan untuk mengurutkan data struct.
HapusPada fungsi Main bahasa C, dibuat suatu array yang digunakan untuk mengambil nomor input rol dan nama siswa, yang kemudian digunakan untuk memanggil fungsi sortir untuk memproses nilai input pada struct.
HapusSetelah diciptakan variabel dan fungsi untuk proses pengurutan struct, langkah selanjutnya adalha menyimpan data struct yang akan diurutkan tersebut, dan menggunakan fungsi sortir untuk melakukan proses pengurutan struct pada Bahasa C.
Hapus