Anda di halaman 1dari 2

TUGAS 2

Fakhri Rafi’ Ahmadi


230533605506
Source Code :
#include <stdio.h>
#include <string.h>

struct Mahasiswa {
char NIM[15];
char Nama_Mahasiswa[35];
float Nilai;
};

// Fungsi untuk mengurutkan data mahasiswa berdasarkan nama


(Shell Sort)
void shellSort(struct Mahasiswa arr[], int n) {
for (int gap = n / 2; gap > 0; gap /= 2) {
for (int i = gap; i < n; i++) {
struct Mahasiswa temp = arr[i];
int j;
for (j = i; j >= gap && strcmp(arr[j -
gap].Nama_Mahasiswa, temp.Nama_Mahasiswa) > 0; j -= gap) {
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
int main() {
const int numMahasiswa = 5;
struct Mahasiswa data[numMahasiswa] = {
{"100", "Basri", 80.5},
{"107", "Gani", 75.0},
{"109", "Citra", 88.2},
{"120", "Zimba", 92.7},
{"105", "Agus", 70.8}
};
// Urutkan data berdasarkan nama menggunakan Shell Sort
shellSort(data, numMahasiswa);

// Tampilkan hasil pengurutan


printf("Data Mahasiswa (berdasarkan Nama Mahasiswa):\n");
for (int i = 0; i < numMahasiswa; i++) {
printf("NIM: %s, Nama: %s, Nilai: %.2f\n",
data[i].NIM, data[i].Nama_Mahasiswa, data[i].Nilai);
}
return 0;
}
Output Program :

Penjelasan Program :
• Struct Mahasiswa berisi 3 field yaitu NIM, NamaMhs, dan Nilai. Dengan tipe data char
untuk NIM serta NamaMhs, dan float untuk nilai. Ketiga field ini digunakan untuk
menyimpan data mahasiswa.
• Fungsi Shell Sort : Merupakan sebuah fungsi yang digunakan untuk mengurutkan data
mahasiswa berdasarkan nama menggunakan algoritma Shell Sort. Fungsi ini menerima
sebuah array dari struktur Mahasiswa dan jumlah elemen dalam array tersebut.
• Fungsi main : Di dalam fungsi main, terdapat inisialisasi array “data” yang berisi data
mahasiswa, yaitu NIM, nama mahasiswa, dan nilai mahasiswa. Selanjutnya, program
memanggil fungsi shellSort untuk mengurutkan data berdasarkan nama menggunakan
algoritma Shell Sort.
• Output : Program akan menampilkan data mahasiswa yang telah diurutkan berdasarkan
nama mahasiswa, beserta NIM dan nilai masing-masing mahasiswa.

Anda mungkin juga menyukai