NIM : 2401984681
Kelas : TXCA
1. Buatlah ringkasan pemahaman anda mengenai perbedaan Struct dan Union serta berikan
contoh penerapannya.
2. Buatlah program untuk menghitung nilai akhir mahasiswa, adapun aturannya adalah
a. Buatlah tampilaan menu sebagai berikut:
Menu 1 untuk Input data mahasiswa.
Menu 2 untuk Input nilai.
Menu 3 untuk melihat nilai mahasiswa dan status
Menu 4 keluar dari program
Catatan: Validasikan jika mahasiswa yang dimasukkan sudah pernah diinput sebelumnya.
Catatan
Rumus perhitungan: Nilai Hadir 10% +Nilai Tugas 20% + Nilai Quiz 10% + Nilai keaktifan
forum 10% dan Nilai UAS 50%.
Status grade
Grade A = 100 – 90 (Lulus)
Grade B = 89 – 80 (Lulus)
Grade C = 79 – 70 (Lulus)
Grade D = 69 – 60 (Lulus)
Grade E = 59 – 50 (Tidak Lulus)
Jawab:
Struct adalah tipe data yang digunakan untuk menyimpan lebih dari satu nilai. Struct
mengakses nilai-nilai yang disimpan dalam variabel berdasarkan nama yang dimiliki
Tiap anggota struct menyimpan nilai di lokasi yang berbeda beda, dan juga dengan
nama yang berbeda-beda. Satu variabel dengan tipe data struct bisa memiliki beberapa
Contoh Struct:
#include <stdio.h>
struct kelompok_bilangan{
float pecahan;
int bulat;
}bilangan;
angka->bulat/=2;
angka->pecahan/=2;
int main(){
setengah(&bilangan);
function.\n");
return 0;
Union adalah cara menginput data dengan menghemat memory, yaitu pada satu lokasi dapat
ditempati oleh beberapa variabel dengan tipe data variabel yang berbeda-beda. Jadi
union mirip seperti struct hanya saja variable - variable nya disimpan di lokasi
Contoh Union:
#include <stdio.h>
#include <string.h>
union Data
int i;
float f;
char str[20];
};
int main()
getchar();
return 0;
Compiler: onlinegdb
#include <stdio.h>
#include <string.h>
struct Mahasiswa{
char nama[50];
char nim[20];
char matakuliah[25];
int Hadir;
int Tugas;
int Quiz;
int Keaktifan;
int UAS;
};
int main() {
int pilihan;
float nilaiAkhir;
char cekNim[20];
while(1){
printf("4. Exit\n");
scanf("%d",&pilihan);
switch(pilihan)
case 1:
scanf("%s",&mhs.nama[0]);
printf("Masukkan nim:");
scanf("%s",&mhs.nim[0]);
printf("Masukkan matakuliah:");
scanf("%s",&mhs.matakuliah[0]);
break;
case 2:
scanf("%d",&mhs.Hadir);
scanf("%d",&mhs.Tugas);
scanf("%d",&mhs.Quiz);
scanf("%d",&mhs.Keaktifan);
scanf("%d",&mhs.UAS);
break;
case 3:
printf("Masukkan nim:");
scanf("%s",&cekNim[0]);
if(nilaiAkhir>=90){
printf("Grade: A");
printf("\nStatus: LULUS\n");
printf("Grade: B");
printf("\nStatus: LULUS\n");
printf("Grade: C");
printf("\nStatus: LULUS\n");
printf("Grade: D");
printf("\nStatus: LULUS\n");
printf("Grade: E");
}else{
printf("Grade: F");
break;
case 4:
printf("Keluar!\n");
return 0;
return 0;