1. Buatlah ringkasan pemahaman anda mengenai perbedaan Struct dan Union serta berikan
contoh penerapannya.
Jawaban
Struct adalah pengelompokan suatu data, agar mudah dalam pemanggilan dan
pengidentifikasian contoh
struct Mahasiswa
{
char name;
char address;
int age;
};
Pada dasar nya union mirip dengan struct, hanya saja element-element pada union
menempati lokasi memori yang sama.
union{
int a;
}x;
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.
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
#include<stdio.h>
#include <stdlib.h>
#include<conio.h>
struct menu{
char nim[100],nama[100],matkul[100];
int hadir,tugas,quiz,forum,uas;
};
struct menu mhs[100];
int x = 1;
int n = 1;
int angka = 123;
void display_menu(){
printf("\n\n|=====Hitung Nilai Akhir=====|");
printf("\n|Menu 1. Input Data Mahasiswa|");
printf("\n|Menu 2. Input Nilai |");
printf("\n|Menu 3. Lihat Nilai & Status|");
printf("\n|Menu 4. Keluar |");
printf("\n|============================|");
}
void masukan_menu(void){
display_menu();
int menu;
float status;
do{
printf("\n\n|>> Masukan Nomor Menu : ");
scanf("%d",&menu);
switch(menu){
case 1:
printf(">>>>> Data Mahasiswa absen ke-%d <<<<<",x);
printf("\n|>> Nama : "); scanf("%s",&mhs[x].nama);
printf("\n|>> NIM : "); scanf("%s",&mhs[x].nim);
printf("\n|>> Matkul : "); scanf("%s",&mhs[x].matkul);
x++;
system("cls");
return masukan_menu();
case 2:
printf("\n\n|>> Masukan Nilai Mahasiswa absen ke-%d :
",n);
printf ("\n>> 1. Nilai Hadir : "); scanf
("%d",&mhs[n].hadir);
printf ("\n>> 2. Nilai Tugas : "); scanf
("%d",&mhs[n].tugas);
printf ("\n>> 3. Nilai Quiz : "); scanf
("%d",&mhs[n].quiz);
printf ("\n>> 4. Nilai Forum : "); scanf
("%d",&mhs[n].forum);
printf ("\n>> 5. Nilai UAS : "); scanf ("%d",&mhs[n].uas);
n++;
system("cls");
}
}while(menu!=4);
}
Output