Anda di halaman 1dari 4

Tugas Personal ke-2

(Minggu 7 / Sesi 11)

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;

    int b;   

}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

b. Jika pengguna memilih Menu 1


Input data mahasiswa antara lain: nim, nama dan mata kuliah

Catatan: Validasikan jika mahasiswa yang dimasukkan sudah pernah diinput sebelumnya.

c. Jika pengguna memilih menu 2


Input data nilai antara lain:
1) Nilai Hadir
2) Nilai Tugas
3) Nilai Quiz
4) Nilai Keaktifan Forum
5) Nilai UAS

d. Jika Pengguna memilih Menu 3.


Pengguna meng-input nim mahasiswa maka akan tampil hasil kalkulasi dari
penjumlahan dan status grade yang didapat.

COMP6599 – Algorithm and Programming


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
#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");

COMP6599 – Algorithm and Programming


return masukan_menu();
case 3:
printf(">>>> Nilai & Status mahasiswa <<<<<");
for(int i=1; i<x; i++){
printf("\n\nAbsen ke-%d",i);
printf("\nNama : %s \nNIM %s \nMatkul %s
",mhs[i].nama,mhs[i].nim,mhs[i].matkul);
printf("\nNilai: %d >> %d >> %d >> %d >>
%d",mhs[i].hadir,mhs[i].tugas,mhs[i].quiz,mhs[i].forum,mhs[i].uas);

status = (mhs[i].hadir*0.1)+ (mhs[i].tugas*0.2) +


(mhs[i].quiz*0.1) + (mhs[i].forum*0.1)+(mhs[i].uas*0.5);
//perhitungan status
printf("\nHasil perhitungan : %.2f",status);
//penentuan status lulus atau tidak
if(status <=100.00 && status >=90.00){
printf ("\nGrade A, ==LULUS==");
}
else if(status <=89.00 && status >=80.00){
printf ("\nGrade B, ==LULUS==");
}
else if(status <=79.00 && status >=70.00){
printf ("\nGrade C, ==LULUS==");
}
else if(status <=69.00 && status >=60.00){
printf ("\nGrade D, ==LULUS==");
}
else{
printf ("\n==TIDAK LULUS==");
}
}
return masukan_menu();
break;

}
}while(menu!=4);
}

int main (void){


masukan_menu();
}

Output

COMP6599 – Algorithm and Programming


COMP6599 – Algorithm and Programming

Anda mungkin juga menyukai