Lompat ke konten Lompat ke sidebar Lompat ke footer

Pengurutan Struct Bahasa C Beserta Contoh Programnya

Nama dan Nilai pada subject berbeda seperti physics, chemistry, dan maths diberikan untuk semua siswa pada suatu mata pelajaran. Tugas dari program adalah untuk melakukan komputasi total Nilai dari semua peringkat siswa, dimana hasil yang ditampilkan adalah semua Nilai siswa yang diurutkan berdasarkan peringkat Nilai.

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.

Berikut peringkat siswa yang dikomputasi menggunakan aturan sebagai berikut:
  • 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.

Sintak:
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.

Baca Juga:

Contoh:

// 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

Artikel ini didedikasikan kepada: Endang Rusniwati, Ericsson Dhimas Niagara, Fanca Bungsu Paranta, Gumilang Rizki Dwi Pratama, dan Heydita Ratu Dewinta Sari.

5 komentar untuk "Pengurutan Struct Bahasa C Beserta Contoh Programnya"

  1. Apa yang dimaksud dengan pengurutan struct pada Bahasa C?

    BalasHapus
    Balasan
    1. Struct 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.

      Hapus
    2. Setelah 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.

      Hapus
    3. Pada 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.

      Hapus
    4. Setelah 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

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 -